|
|
This page is rather stubbly and could use some expansion. |
Tetris 64 (not to be confused with The New Tetris, which is probably what you're looking for) is a Japan-only rendition of the classic game for the Nintendo 64.
Being from Japan, it has some weird features, such as the Bio Tetris mode which changes the Tetriminos based on the player's heart rate, measured by a special accessory plugged into the controller and the player's ear... ouch!
Unused Text#
Starting at 0x4A628 is something which looks like a reference table of some sort for ASM instructions.
cache %s,IX
R(RD)=R(RT)%sB(SA)
R(RD)%s=B(SA)
nop
R(RD)=R(RT)%sR(RS)
R(RD)%s=R(RS)
R(RD)=0
R(RD)=R(RT)
R(RD)=R(RS)
R(RD)=R(RS)%sR(RT)
R(RD)%s=R(RT)
R(RD)=R(RS)%sR(RT)
R(RD)%s=R(RT)
!(R(RS))()
jalr R(RD),R(RS)
rts
jmp (R(RS))
bcf
bc;CP;f RL
bct
bc;CP;t RL
bcfl
bc;CP;fl RL
bctl
bc;CP;tl RL
tlbr
tlbr
tlbwi
tlbwi
tlbwr
tlbwr
tlbp
tlbp
eret
eret
mfc0
R(RT)=cp;CP( R(RD) )
dmfc0
d.R(RT)=cp;CP( R(RD) )
cfc0
cfc;CP R(RT),R(RD)
mtc0
cp;CP( R(RD) )=R(RT)
dmtc0
l.cp;CP( R(RD) )=R(RT)
ctc0
ctc;CP R(RT),R(RD)
��
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
fadd
FM.F(FD)=F(FS)+F(FT)
fsub
FM.F(FD)=F(FS)-F(FT)
fmul
FM.F(FD)=F(FS)*F(FT)
fdiv
FM.F(FD)=F(FS)/F(FT)
fsqrt
FM.F(FD)=fsqrt(F(FS))
fabs
FM.F(FD)=fabs(F(FS))
fmov
FM.F(FD)=F(FS)
fneg
FM.F(FD)=fneg(F(FS))
fround.l
d.F(FD)=FM.fround(F(FS))
ftrunc.l
d.F(FD)=FM.ftrunc(F(FS))
fceil.l
d.F(FD)=FM.fceil(F(FS))
ffloor.l
d.F(FD)=FM.ffloor(F(FS))
fround.w
l.F(FD)=FM.fround(F(FS))
ftrunc.w
l.F(FD)=FM.ftrunc(F(FS))
fceil.w
l.F(FD)=FM.fceil(F(FS))
ffloor.w
l.F(FD)=FM.ffloor(F(FS))
fcvt.s
fs.F(FD]=FM.F(FS)
fcvt.d
fd.F(FD]=FM.F(FS)
fcvt.w
l.F(FD]=FM.F(FS)
fcvt.l
d.F(FD]=FM.F(FS)
fc.f
fc.f F(FS),F(FT)
fc.un
fc.un F(FS),F(FT)
fc.eq
fc F(FS)==F(FT)
fc.ueq
fc.ueq F(FS),F(FT)
fc.olt
fc F(FS)<F(FT)
fc.ult
fc.ult F(FS),F(FT)
fc.ole
fc F(FS)<=F(FT)
fc.ule
fc.ule F(FS),F(FT)
fc.sf
fc.sf F(FS),F(FT)
fc.ngle
fc.ngle F(FS),F(FT)
fc.seq
fc F(FS).==F(FT)
fc.ngl
fc.ngl F(FS),F(FT)
fc.lt
fc F(FS).<F(FT)
fc.nge
fc.nge F(FS),F(FT)
fc.le
fc F(FS).<=F(FT)
fc.ngt
fc.ngt F(FS),F(FT)
mfc0
R(RT)=cp;CP( R(RD) )
dmfc0
d.R(RT)=cp;CP( R(RD) )
cfc0
cfc;CP R(RT),R(RD)
mtc0
cp;CP( R(RD) )=R(RT)
dmtc0
l.cp;CP( R(RD) )=R(RT)
ctc0
ctc;CP R(RT),R(RD)
��
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
sll
<<
srl
>>
sra
.>>
sllv
<<
srlv
>>
srav
.>>
jr
jalr
syscall
syscall RV
brk
brk RV
sync
sync RV
mfhi
R(RD)=hi
mthi
hi=R(RS)
mflo
R(RD)=lo
mtlo
lo=R(RS)
dsllv
d.R(RD)=R(RT)<<R(RS)
dsrlv
d.R(RD)=R(RT)>>R(RS)
dsrav
d.R(RD)=R(RT).>>R(RS)
mult
R(RS).*R(RT)
multu
R(RS)*R(RT)
div
R(RS)./R(RT)
divu
R(RS)/R(RT)
dmult
d.R(RS).*R(RT)
dmultu
d.R(RS)*R(RT)
ddiv
d.R(RS)./R(RT)
ddivu
d.R(RS)/R(RT)
add
.+
addu
+
sub
.-
subu
-
and
&
or
|
xor
^
nor
^|
slt
R(RD)=( R(RS).<R(RT) )
sltu
R(RD)=( R(RS)<R(RT) )
dadd
d.R(RD)=R(RS).+R(RT)
daddu
d.R(RD)=R(RS)+R(RT)
dsub
d.R(RD)=R(RS).-R(RT)
dsubu
d.R(RD)=R(RS)-R(RT)
tge
tge R(RS),R(RT)
tgeu
tgeu R(RS),R(RT)
tlt
tlt R(RS),R(RT)
tltu
tltu R(RS),R(RT)
teq
teq R(RS),R(RT)
tne
tne R(RS),R(RT)
dsll
d.R(RD)=R(RT)<<B(RS)
dsrl
d.R(RD)=R(RT)>>B(RS)
dsra
d.R(RD)=R(RT).>>B(RS)
dsll32
dsll32 R(RD),R(RT),B(SA)
dsrl32
dsrl32 R(RD),R(RT),B(SA)
dsra32
dsra32 R(RD),R(RT),B(SA)
bltz
if R(RS)<0 goto RL
bgez
if R(RS)>=0 goto RL
bltzl
if R(RS)<0 gotol RL
bgezl
if R(RS)>=0 gotol RL
tgei
tgei R(RS),SI
tgeiu
tgeiu R(RS),SI
tlti
tlti R(RS),SI
tltiu
tltiu R(RS),SI
teqi
teqi R(RS),SI
tnei
tnei R(RS),SI
bltzal
bltzal R(RS),RL
bgezal
bgezal R(RS),RL
bltzall
bltzall R(RS),RL
bgezall
bgezall R(RS),RL
?
��
j
jmp JA
jal
!JA()
beq
if R(RS)==R(RT) goto RL
bne
if R(RS)!=R(RT) goto RL
blez
if R(RS)<=0 goto RL
bgtz
if R(RS)>0 goto RL
addi
.
addiu
slti
R(RT)=( R(RS).<#SI )
sltiu
R(RT)=( R(RS)<#UI )
andi
&
ori
|
xori
^
lui
u.R(RT)=UI
��
��
beql
if R(RS)==R(RT) gotol RL
bnel
if R(RS)!=R(RT) gotol RL
blezl
if R(RS)<=0 gotol RL
bgtzl
if R(RS)>0 gotol RL
daddi
d.R(RT)=R(RS).+SI
daddiu
d.R(RT)=R(RS)+SI
ldl
ldl R(RT),IX
ldr
ldr R(RT),IX
lb
b.R(RT).=IX
lh
w.R(RT).=IX
lwl
l.R(RT)=IX
lw
l.R(RT)=IX
lbu
b.R(RT)=IX
lhu
w.R(RT)=IX
lwr
lwr R(RT),IX
lwu
lwu R(RT),IX
sb
b.IX=R(RT)
sh
w.IX=R(RT)
swl
swl IX,R(RT)
sw
l.IX=R(RT)
sdl
sdl IX,R(RT)
sdr
sdr IX,R(RT)
swr
swr IX,R(RT)
cache
ll
ll R(RT),IX
lwc1
l.cp1( R(RT) )=IX
lwc2
l.cp2( R(RT) )=IX
lld
lld R(RT),IX
ldc1
d.cp1( R(RT) )=IX
ldc2
d.cp1( R(RT) )=IX
ld
d.R(RT)=IX
sc
sc IX,R(RT)
swc1
l.IX=cp1( R(RT) )
swc2
l.IX=cp2( R(RT) )
scd
scd IX,R(RT)
sdc1
d.IX=cp1( R(RT) )
sdc2
d.IX=cp2( R(RT) )
sd
d.IX=R(RT)
At 0x49A509 is some help for a command-line tool:
Seta Polygon Editor Ver.2.09.e by K.Takahashi
Usage:spe2 [] [.spf]
-v : Verbose Mode
-z : Debug Mode
A similar help, for a different program, is present at 0x4FC63D:
Texture Viewer Ver.0.00 by K.Takahashi
Usage : tiv <files(tif&sbf)>