We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
User:Kojin/PS2 Disassembly
Jump to navigation
Jump to search
| To do: Everything |
Contents
C Standard Library
string.h
memchr
| Signature |
|---|
# void *__cdecl memchr(const void *ptr, int value, unsigned int num)
memchr:
sltiu $v0, $a2, 0x10
bnez $v0, loc_2E32A8
andi $a1, 0xFF
andi $v0, $a0, 0xF
bnez $v0, loc_2E32A8
move $a3, $a0
dsll $v1, $a1, 8
li $v0, 0x1010101
dsll $v0, 16
ori $v0, 0x101
dsll $v0, 16
ori $v0, 0x101
daddu $t2, $v1, $a1
li $v1, 0x80808080
dsll $v1, 16
ori $v1, 0x8080
dsll $v1, 16
ori $v1, 0x8080
pcpyh $t0, $t2
pcpyld $t1, $t0, $t0
move $a0, $v0
pcpyld $t0, $v1, $v1
loc_2E3268: # CODE XREF: memchr+94
lq $v0, 0($a3)
pxor $v0, $t1
pcpyld $t2, $a0, $a0
pnor $v1, $zero, $v0
psubb $v0, $t2
pand $v0, $v1
pand $v0, $t0
pcpyud $v1, $v0, $t1
or $v0, $v1
bnezl $v0, loc_2E32A8
move $a0, $a3
addiu $a2, -0x10
sltiu $v0, $a2, 0x10
beqz $v0, loc_2E3268
addiu $a3, 0x10
move $a0, $a3
loc_2E32A8: # CODE XREF: memchr+4,
memchr+10
lui $v0, 0xFFFF
addiu $a2, -1
li $v0, 0xFFFFFFFF
beq $a2, $v0, locret_2E32D8
nop
li $v1, 0xFFFFFFFF
loc_2E32C4: # CODE XREF: memchr+C8
lbu $v0, 0($a0)
beq $v0, $a1, locret_2E32E0
addiu $a2, -1
bne $a2, $v1, loc_2E32C4
addiu $a0, 1
locret_2E32D8: # CODE XREF: memchr+AC
jr $ra
move $v0, $zero
# ---------------------------------------------------------------------------
locret_2E32E0: # CODE XREF: memchr+C0
jr $ra
move $v0, $a0
# End of function memchr
|
memcmp
# int __cdecl memcmp(const void *ptr1, const void *ptr2, unsigned int num)
memcmp:
sltiu $v0, $a2, 0x10
bnez $v0, loc_2E3334
or $v0, $a0, $a1
andi $v0, 0xF
bnez $v0, loc_2E3334
nop
loc_2E3300: # CODE XREF: memcmp+44
lq $v1, 0($a0)
sltiu $a3, $a2, 0x20
lq $v0, 0($a1)
addiu $a0, 0x10
pxor $t0, $v0, $v1
addiu $v0, $a1, 0x10
pcpyud $t2, $t0, $a3
or $t1, $t2, $t0
movz $a1, $v0, $t1
bnezl $t1, loc_2E3334
addiu $a0, -0x10
beqz $a3, loc_2E3300
addiu $a2, -0x10
loc_2E3334: # CODE XREF: memcmp+4,
memcmp+10,
memcmp+3C
lui $v0, 0xFFFF
addiu $a2, -1
li $v0, 0xFFFFFFFF
beq $a2, $v0, locret_2E3374
nop
li $a3, 0xFFFFFFFF
loc_2E3350: # CODE XREF: memcmp+84
lbu $v1, 0($a0)
lbu $v0, 0($a1)
beq $v1, $v0, loc_2E3368
addiu $a0, 1
jr $ra
subu $v0, $v1, $v0
# ---------------------------------------------------------------------------
loc_2E3368: # CODE XREF: memcmp+70
addiu $a2, -1
bne $a2, $a3, loc_2E3350
addiu $a1, 1
locret_2E3374: # CODE XREF: memcmp+58
jr $ra
move $v0, $zero
# End of function memcmp
memcpy
# void *__cdecl memcpy(void *destination, const void *source, unsigned int num)
memcpy:
move $t0, $a0
sltiu $v0, $a2, 0x20
bnez $v0, loc_2E33FC
move $v1, $t0
or $v0, $a1, $t0
andi $v0, 0xF
bnezl $v0, loc_2E3400
addiu $a2, -1
move $a3, $t0
loc_2E33A4: # CODE XREF: memcpy+48
lq $v1, 0($a1)
addiu $a2, -0x20
addiu $a1, 0x10
sltiu $a0, $a2, 0x20
sq $v1, 0($a3)
addiu $a3, 0x10
lq $v0, 0($a1)
addiu $a1, 0x10
sq $v0, 0($a3)
beqz $a0, loc_2E33A4
addiu $a3, 0x10
sltiu $v0, $a2, 8
bnez $v0, loc_2E33FC
move $v1, $a3
loc_2E33DC: # CODE XREF: memcpy+70
ld $v1, 0($a1)
addiu $a2, -8
addiu $a1, 8
sltiu $v0, $a2, 8
sd $v1, 0($a3)
beqz $v0, loc_2E33DC
addiu $a3, 8
move $v1, $a3
loc_2E33FC: # CODE XREF: memcpy+8,
memcpy+54
addiu $a2, -1
loc_2E3400: # CODE XREF: memcpy+18
dli $v0, 0xFFFFFFFFFFFFFFFF
beq $a2, $v0, return
move $a0, $v0
loc_2E340C: # CODE XREF: memcpy+A0
lbu $v0, 0($a1)
addiu $a2, -1
addiu $a1, 1
sb $v0, 0($v1)
addiu $v1, 1
bne $a2, $a0, loc_2E340C
nop
return: # CODE XREF: memcpy+84
jr $ra
move $v0, $t0
# End of function memcpy
memmove
# void *__cdecl memmove(void *destination, const void *source, unsigned int num)
memmove:
move $t0, $a0
sltu $v0, $a1, $t0
beqz $v0, loc_2E3488
move $v1, $t0
addu $a3, $a1, $a2
sltu $v0, $t0, $a3
beqz $v0, loc_2E3488
dli $v0, 0xFFFFFFFFFFFFFFFF
addu $v1, $t0, $a2
addiu $a2, -1
beq $a2, $v0, locret_2E352C
move $a1, $a3
move $a0, $v0
loc_2E3464: # CODE XREF: memmove+48
addiu $a1, -1
addiu $v1, -1
lbu $v0, 0($a1)
addiu $a2, -1
sb $v0, 0($v1)
bne $a2, $a0, loc_2E3464
nop
jr $ra
move $v0, $t0
# ---------------------------------------------------------------------------
loc_2E3488: # CODE XREF: memmove+8,
memmove+18
sltiu $v0, $a2, 0x20
bnezl $v0, loc_2E3504
addiu $a2, -1
or $v0, $a1, $v1
andi $v0, 0xF
bnezl $v0, loc_2E3504
addiu $a2, -1
move $a3, $v1
loc_2E34A8: # CODE XREF: memmove+9C
lq $v1, 0($a1)
addiu $a2, -0x20
addiu $a1, 0x10
sltiu $a0, $a2, 0x20
sq $v1, 0($a3)
addiu $a3, 0x10
lq $v0, 0($a1)
addiu $a1, 0x10
sq $v0, 0($a3)
beqz $a0, loc_2E34A8
addiu $a3, 0x10
sltiu $v0, $a2, 8
bnez $v0, loc_2E3500
move $v1, $a3
loc_2E34E0: # CODE XREF: memmove+C4
ld $v1, 0($a1)
addiu $a2, -8
addiu $a1, 8
sltiu $v0, $a2, 8
sd $v1, 0($a3)
beqz $v0, loc_2E34E0
addiu $a3, 8
move $v1, $a3
loc_2E3500: # CODE XREF: memmove+A8
addiu $a2, -1
loc_2E3504: # CODE XREF: memmove+5C,
memmove+6C
dli $v0, 0xFFFFFFFFFFFFFFFF
beq $a2, $v0, locret_2E352C
move $a0, $v0
loc_2E3510: # CODE XREF: memmove+F4
lbu $v0, 0($a1)
addiu $a2, -1
addiu $a1, 1
sb $v0, 0($v1)
addiu $v1, 1
bne $a2, $a0, loc_2E3510
nop
locret_2E352C: # CODE XREF: memmove+28,
memmove+D8
jr $ra
move $v0, $t0
# End of function memmove
memset
# void *__cdecl memset(void *ptr, int value, size_t num)
memset:
sltiu $v0, $a2, 8
bnez $v0, loc_2E35B8
move $v1, $a0
andi $v0, $a0, 0xF
bnez $v0, loc_2E35B8
move $a3, $a0
andi $t1, $a1, 0xFF
sltiu $t2, $a2, 0x20
move $t0, $t1
dsll $v1, $t0, 8
or $t0, $v1, $t1
pcpyh $v1, $t0
bnez $t2, loc_2E35A4
sltiu $v0, $a2, 8
pcpyld $t0, $v1, $v1
loc_2E3574: # CODE XREF: memset+50
sq $t0, 0($a3)
addiu $a2, -0x20
addiu $a3, 0x10
sltiu $v0, $a2, 0x20
sq $t0, 0($a3)
beqz $v0, loc_2E3574
addiu $a3, 0x10
b loc_2E35A4
sltiu $v0, $a2, 8
# ---------------------------------------------------------------------------
loc_2E3598: # CODE XREF: memset+74
addiu $a2, -8
addiu $a3, 8
sltiu $v0, $a2, 8
loc_2E35A4: # CODE XREF: memset+30,
memset+58
nop
nop
beqzl $v0, loc_2E3598
sd $v1, 0($a3)
move $v1, $a3
loc_2E35B8: # CODE XREF: memset+4,
memset+10
lui $v0, 0xFFFF
addiu $a2, -1
li $v0, 0xFFFFFFFF
beq $a2, $v0, locret_2E35F0
nop
li $v0, 0xFFFFFFFF
loc_2E35D4: # CODE XREF: memset+B0
sb $a1, 0($v1)
addiu $a2, -1
addiu $v1, 1
nop
nop
bne $a2, $v0, loc_2E35D4
nop
locret_2E35F0: # CODE XREF: memset+8C
jr $ra
move $v0, $a0
# End of function memset
Sony
SCE Library
sceAdrDrive
sceAddDrv: # addiu sp, sp, $ff70 # 00115940:27bdff70 sd s1, $0050(sp) # 00115944:ffb10050 daddu s1, a0, zero # 00115948:0080882d sd s3, $0070(sp) # 0011594c:ffb30070 sd s0, $0040(sp) # 00115950:ffb00040 addiu a0, zero, $000f # 00115954:2404000f a0=$0000000f sd ra, $0080(sp) # 00115958:ffbf0080 lui s3, $0037 # 0011595c:3c130037 s3=rbuf sd s2, $0060(sp) # 00115960:ffb20060 jal $00113f08 # 00115964:0c044fc2 £_sceFsWaitS addiu s0, s3, $1cc0 # 00115968:26701cc0 s0=_send_data lui v1, $0033 # 0011596c:3c030033 v1=$00330000 lw v0, $8d20(v1) # 00115970:8c628d20 v0=_fs_init bnel v0, zero, $00115988 # 00115974:54400004 ¥__00115988 sw s1, $000c(s0) # 00115978:ae11000c [00371ccc] jal $00114008 # 0011597c:0c045002 £sceFsInit nop # 00115980:00000000 sw s1, $000c(s0) # 00115984:ae11000c [00371ccc] __00115988: # addiu v0, zero, $0001 # 00115988:24020001 v0=$00000001 sw v0, $0014(sp) # 0011598c:afa20014 addiu a0, sp, $0010 # 00115990:27a40010 sw zero, $0018(sp) # 00115994:afa00018 jal $001100e0 # 00115998:0c044038 £CreateSema sw zero, $0024(sp) # 0011599c:afa00024 daddu s1, v0, zero # 001159a0:0040882d s1=$00000001 addiu v1, sp, $0030 # 001159a4:27a30030 lui v0, $0037 # 001159a8:3c020037 v0=rbuf sw s1, $1cc0(s3) # 001159ac:ae711cc0 _send_data addiu s2, v0, $2900 # 001159b0:24522900 s2=_rcv_data_rpc lui a0, $0037 # 001159b4:3c040037 a0=rbuf addiu v0, zero, $0004 # 001159b8:24020004 v0=$00000004 sw v1, $0004(s0) # 001159bc:ae030004 [00371cc4] sw v0, $0008(s0) # 001159c0:ae020008 [00371cc8] addiu a0, a0, $2f80 # 001159c4:24842f80 a0=_cd daddu a3, s0, zero # 001159c8:0200382d a3=_send_data addiu a1, zero, $000f # 001159cc:2405000f a1=$0000000f sw zero, $0000(sp) # 001159d0:afa00000 daddu a2, zero, zero # 001159d4:0000302d addiu t0, zero, $0010 # 001159d8:24080010 t0=$00000010 daddu t1, s2, zero # 001159dc:0240482d t1=_rcv_data_rpc addiu t2, zero, $0004 # 001159e0:240a0004 t2=$00000004 jal $00113280 # 001159e4:0c044ca0 £sceSifCallRpc daddu t3, zero, zero # 001159e8:0000582d bgez v0, $00115a0c # 001159ec:04410007 ¥__00115a0c lui v0, $2000 # 001159f0:3c022000 v0=$20000000 jal $001100f0 # 001159f4:0c04403c £DeleteSema daddu a0, s1, zero # 001159f8:0220202d a0=$00000001 jal $00113f38 # 001159fc:0c044fce £_sceFsSigSema nop # 00115a00:00000000 beq zero, zero, $00115a44 # 00115a04:1000000f ¥__00115a44 addiu v0, zero, $ffff # 00115a08:2402ffff v0=_heap_size __00115a0c: # or v0, s2, v0 # 00115a0c:02421025 v0=_heap_size jal $00113f38 # 00115a10:0c044fce £_sceFsSigSema lw s0, $0000(v0) # 00115a14:8c500000 s0=_heap_size bne s0, zero, $00115a30 # 00115a18:16000005 ¥__00115a30 nop # 00115a1c:00000000 jal $001100f0 # 00115a20:0c04403c £DeleteSema daddu a0, s1, zero # 00115a24:0220202d a0=$00000001 beq zero, zero, $00115a44 # 00115a28:10000006 ¥__00115a44 addiu v0, zero, $ffff # 00115a2c:2402ffff v0=_heap_size __00115a30: # jal $00110120 # 00115a30:0c044048 £WaitSema daddu a0, s1, zero # 00115a34:0220202d jal $001100f0 # 00115a38:0c04403c £DeleteSema daddu a0, s1, zero # 00115a3c:0220202d lw v0, $0030(sp) # 00115a40:8fa20030 __00115a44: # ld ra, $0080(sp) # 00115a44:dfbf0080 ld s3, $0070(sp) # 00115a48:dfb30070 ld s2, $0060(sp) # 00115a4c:dfb20060 ld s1, $0050(sp) # 00115a50:dfb10050 ld s0, $0040(sp) # 00115a54:dfb00040 jr ra # 00115a58:03e00008 addiu sp, sp, $0090 # 00115a5c:27bd0090
sceCDBreak
sceCdBreak: # addiu sp, sp, $ffc0 # 00120a78:27bdffc0 addiu a0, zero, $001e # 00120a7c:2404001e a0=$0000001e sd ra, $0030(sp) # 00120a80:ffbf0030 sd s1, $0020(sp) # 00120a84:ffb10020 jal $00120020 # 00120a88:0c048008 £_sceCd_scmd_prechk sd s0, $0010(sp) # 00120a8c:ffb00010 bne v0, zero, $00120aa0 # 00120a90:14400003 ¥__00120aa0 lui v0, $0033 # 00120a94:3c020033 v0=$00330000 beq zero, zero, $00120b1c # 00120a98:10000020 ¥__00120b1c daddu v0, zero, zero # 00120a9c:0000102d __00120aa0: # lui s0, $0033 # 00120aa0:3c100033 s0=$00330000 addiu s1, v0, $adc0 # 00120aa4:2451adc0 s1=$ffffadc0 addiu v1, zero, $0008 # 00120aa8:24030008 v1=$00000008 lui a0, $0033 # 00120aac:3c040033 a0=$00330000 sw v1, $9c14(s0) # 00120ab0:ae039c14 sceCdCbfunc_num addiu a0, a0, $b608 # 00120ab4:2484b608 a0=_sceCd_cd_scmd sw zero, $0000(sp) # 00120ab8:afa00000 addiu a1, zero, $0016 # 00120abc:24050016 a1=$00000016 daddu a2, zero, zero # 00120ac0:0000302d daddu a3, zero, zero # 00120ac4:0000382d daddu t0, zero, zero # 00120ac8:0000402d daddu t1, s1, zero # 00120acc:0220482d t1=$ffffadc0 addiu t2, zero, $0004 # 00120ad0:240a0004 t2=$00000004 jal $00113280 # 00120ad4:0c044ca0 £sceSifCallRpc daddu t3, zero, zero # 00120ad8:0000582d bgez v0, $00120afc # 00120adc:04410007 ¥__00120afc lui v0, $0033 # 00120ae0:3c020033 v0=$00330000 lw a0, $9bec(v0) # 00120ae4:8c449bec a0=_sceCd_scmd_semid jal $00110100 # 00120ae8:0c044040 £SignalSema nop # 00120aec:00000000 sw zero, $9c14(s0) # 00120af0:ae009c14 sceCdCbfunc_num beq zero, zero, $00120b1c # 00120af4:10000009 ¥__00120b1c daddu v0, zero, zero # 00120af8:0000102d __00120afc: # sw zero, $9c14(s0) # 00120afc:ae009c14 sceCdCbfunc_num lui v1, $0033 # 00120b00:3c030033 v1=$00330000 lui v0, $2000 # 00120b04:3c022000 v0=$20000000 or v0, s1, v0 # 00120b08:02221025 v0=$ffffadc0 lw a0, $9bec(v1) # 00120b0c:8c649bec a0=_sceCd_scmd_semid jal $00110100 # 00120b10:0c044040 £SignalSema lw s0, $0000(v0) # 00120b14:8c500000 s0=$ffffadc0 daddu v0, s0, zero # 00120b18:0200102d __00120b1c: # ld ra, $0030(sp) # 00120b1c:dfbf0030 ld s1, $0020(sp) # 00120b20:dfb10020 ld s0, $0010(sp) # 00120b24:dfb00010 jr ra # 00120b28:03e00008 addiu sp, sp, $0040 # 00120b2c:27bd0040
sceCdDriveCallback
sceCdCallback: # addiu sp, sp, $ffd0 # 0011f4a8:27bdffd0 sd s1, $0010(sp) # 0011f4ac:ffb10010 daddu s1, a0, zero # 0011f4b0:0080882d sd ra, $0020(sp) # 0011f4b4:ffbf0020 sd s0, $0000(sp) # 0011f4b8:ffb00000 jal $0011ff10 # 0011f4bc:0c047fc4 ¥sceCdSync addiu a0, zero, $0001 # 0011f4c0:24040001 a0=$00000001 bne v0, zero, $0011f4e8 # 0011f4c4:14400008 ¥__0011f4e8 daddu v0, zero, zero # 0011f4c8:0000102d jal $00118be0 # 0011f4cc:0c0462f8 £DIntr nop # 0011f4d0:00000000 lui v1, $0037 # 0011f4d4:3c030037 v1=rbuf lw s0, $48c0(v1) # 0011f4d8:8c7048c0 s0=sceCdCbfunc jal $00118c28 # 0011f4dc:0c04630a £EIntr sw s1, $48c0(v1) # 0011f4e0:ac7148c0 sceCdCbfunc daddu v0, s0, zero # 0011f4e4:0200102d __0011f4e8: # ld ra, $0020(sp) # 0011f4e8:dfbf0020 ld s1, $0010(sp) # 0011f4ec:dfb10010 ld s0, $0000(sp) # 0011f4f0:dfb00000 jr ra # 0011f4f4:03e00008 addiu sp, sp, $0030 # 0011f4f8:27bd0030 nop # 0011f4fc:00000000
sceCdDelayThread
sceCdDelayThread: # addiu sp, sp, $ffb0 # 0011f440:27bdffb0 addiu v0, zero, $0001 # 0011f444:24020001 v0=$00000001 sd s1, $0030(sp) # 0011f448:ffb10030 andi s1, a0, $ffff # 0011f44c:3091ffff sd s0, $0020(sp) # 0011f450:ffb00020 sw v0, $0004(sp) # 0011f454:afa20004 sw zero, $0008(sp) # 0011f458:afa00008 sw zero, $0014(sp) # 0011f45c:afa00014 sd ra, $0040(sp) # 0011f460:ffbf0040 jal $001100e0 # 0011f464:0c044038 £CreateSema daddu a0, sp, zero # 0011f468:03a0202d daddu s0, v0, zero # 0011f46c:0040802d s0=$00000001 lui a1, $0012 # 0011f470:3c050012 a1=$00120000 daddu a2, s0, zero # 0011f474:0200302d a2=$00000001 daddu a0, s1, zero # 0011f478:0220202d jal $0010fe60 # 0011f47c:0c043f98 £SetAlarm addiu a1, a1, $f418 # 0011f480:24a5f418 a1=gcc2_compiled. jal $00110120 # 0011f484:0c044048 £WaitSema daddu a0, s0, zero # 0011f488:0200202d a0=$00000001 jal $001100f0 # 0011f48c:0c04403c £DeleteSema daddu a0, s0, zero # 0011f490:0200202d a0=$00000001 ld ra, $0040(sp) # 0011f494:dfbf0040 ld s1, $0030(sp) # 0011f498:dfb10030 ld s0, $0020(sp) # 0011f49c:dfb00020 jr ra # 0011f4a0:03e00008 addiu sp, sp, $0050 # 0011f4a4:27bd0050
sceCdDiskReady
sceCdDiskReady: # addiu sp, sp, $ff60 # 00120470:27bdff60 sd s6, $0070(sp) # 00120474:ffb60070 lui s6, $0033 # 00120478:3c160033 s6=$00330000 sd s2, $0030(sp) # 0012047c:ffb20030 lw v0, $9bd0(s6) # 00120480:8ec29bd0 v0=SCE_CD_debug daddu s2, a0, zero # 00120484:0080902d sd ra, $0090(sp) # 00120488:ffbf0090 sd s7, $0080(sp) # 0012048c:ffb70080 sd s5, $0060(sp) # 00120490:ffb50060 sd s4, $0050(sp) # 00120494:ffb40050 sd s3, $0040(sp) # 00120498:ffb30040 sd s1, $0020(sp) # 0012049c:ffb10020 blez v0, $001204b4 # 001204a0:18400004 ¥__001204b4 sd s0, $0010(sp) # 001204a4:ffb00010 lui a0, $0036 # 001204a8:3c040036 a0=$00360000 jal $00112298 # 001204ac:0c0448a6 £scePrintf addiu a0, a0, $8d90 # 001204b0:24848d90 a0="DiskReady 0\n" __001204b4: # jal $0011f7d8 # 001204b4:0c047df6 £cmd_sem_init lui s3, $0033 # 001204b8:3c130033 s3=$00330000 lw a0, $9bec(s3) # 001204bc:8e649bec a0=_sceCd_scmd_semid jal $00110130 # 001204c0:0c04404c £PollSema nop # 001204c4:00000000 lw v1, $9bec(s3) # 001204c8:8e639bec v1=_sceCd_scmd_semid bne v1, v0, $0012063c # 001204cc:1462005b ¥__0012063c addiu v0, zero, $0006 # 001204d0:24020006 v0=$00000006 jal $0011ffb0 # 001204d4:0c047fec £sceCdSyncS addiu a0, zero, $0001 # 001204d8:24040001 a0=$00000001 bne v0, zero, $001205f4 # 001204dc:14400045 ¥__001205f4 daddu a0, zero, zero # 001204e0:0000202d jal $00112a40 # 001204e4:0c044a90 £sceSifInitRpc lui s1, $0033 # 001204e8:3c110033 s1=$00330000 lw v0, $9c04(s1) # 001204ec:8e229c04 v0=_scmd_dr_bind bgez v0, $001205a4 # 001204f0:0441002c ¥__001205a4 lui s5, $0037 # 001204f4:3c150037 s5=rbuf lui s4, $0037 # 001204f8:3c140037 s4=rbuf beq zero, zero, $0012052c # 001204fc:1000000b ¥__0012052c lui s7, $0033 # 00120500:3c170033 s7=$00330000 nop # 00120504:00000000 __00120508: # addiu v1, zero, $ffff # 00120508:2403ffff v1=_heap_size nop # 0012050c:00000000 __00120510: # addiu v0, v0, $ffff # 00120510:2442ffff v0=$fffffffe nop # 00120514:00000000 nop # 00120518:00000000 nop # 0012051c:00000000 nop # 00120520:00000000 bne v0, v1, $00120510 # 00120524:1443fffa £__00120510 nop # 00120528:00000000 __0012052c: # addiu s0, s5, $4b10 # 0012052c:26b04b10 s0=cddr __00120530: # lui a1, $8000 # 00120530:3c058000 a1=$80000000 daddu a0, s0, zero # 00120534:0200202d a0=cddr ori a1, a1, $059a # 00120538:34a5059a a1=$8000059a jal $001130b0 # 0012053c:0c044c2c £sceSifBindRpc daddu a2, zero, zero # 00120540:0000302d bgezl v0, $00120594 # 00120544:04430013 ¥__00120594 lw v0, $0024(s0) # 00120548:8e020024 v0=$00374b34 lw v0, $9bd0(s6) # 0012054c:8ec29bd0 blez v0, $00120568 # 00120550:18400005 ¥__00120568 lui v0, $0010 # 00120554:3c020010 v0=.text lui a0, $0036 # 00120558:3c040036 a0=$00360000 jal $00112298 # 0012055c:0c0448a6 £scePrintf addiu a0, a0, $8da0 # 00120560:24848da0 a0="Libcdvd bind err CdDiskReady\n" lui v0, $0010 # 00120564:3c020010 v0=.text __00120568: # addiu v1, zero, $ffff # 00120568:2403ffff v1=_heap_size nop # 0012056c:00000000 __00120570: # addiu v0, v0, $ffff # 00120570:2442ffff v0=$000fffff nop # 00120574:00000000 nop # 00120578:00000000 nop # 0012057c:00000000 nop # 00120580:00000000 bne v0, v1, $00120570 # 00120584:1443fffa £__00120570 nop # 00120588:00000000 beq zero, zero, $00120530 # 0012058c:1000ffe8 £__00120530 addiu s0, s5, $4b10 # 00120590:26b04b10 s0=cddr __00120594: # beq v0, zero, $00120508 # 00120594:1040ffdc £__00120508 lui v0, $0010 # 00120598:3c020010 v0=.text beq zero, zero, $001205ac # 0012059c:10000003 ¥__001205ac sw zero, $9c04(s1) # 001205a0:ae209c04 __001205a4: # lui s4, $0037 # 001205a4:3c140037 s4=rbuf lui s7, $0033 # 001205a8:3c170033 s7=$00330000 __001205ac: # addiu s0, s4, $4b50 # 001205ac:26904b50 s0=_dr_mode sw s2, $4b50(s4) # 001205b0:ae924b50 _dr_mode daddu a0, s0, zero # 001205b4:0200202d a0=_dr_mode jal $00112990 # 001205b8:0c044a64 £sceSifWriteBackDCache addiu a1, zero, $0004 # 001205bc:24050004 a1=$00000004 addiu s1, s7, $adc0 # 001205c0:26f1adc0 s1=_sceCd_scmdrdata addiu a0, s5, $4b10 # 001205c4:26a44b10 daddu a3, s0, zero # 001205c8:0200382d a3=_dr_mode sw zero, $0000(sp) # 001205cc:afa00000 daddu a1, zero, zero # 001205d0:0000282d daddu a2, zero, zero # 001205d4:0000302d addiu t0, zero, $0004 # 001205d8:24080004 t0=$00000004 daddu t1, s1, zero # 001205dc:0220482d t1=_sceCd_scmdrdata addiu t2, zero, $0004 # 001205e0:240a0004 t2=$00000004 jal $00113280 # 001205e4:0c044ca0 £sceSifCallRpc daddu t3, zero, zero # 001205e8:0000582d bgezl v0, $00120614 # 001205ec:04430009 ¥__00120614 lw v0, $9bd0(s6) # 001205f0:8ec29bd0 __001205f4: # lw a0, $9bec(s3) # 001205f4:8e649bec jal $00110100 # 001205f8:0c044040 £SignalSema nop # 001205fc:00000000 xori a0, s2, $0008 # 00120600:3a440008 addiu v1, zero, $ffff # 00120604:2403ffff v1=_heap_size addiu v0, zero, $0006 # 00120608:24020006 v0=$00000006 beq zero, zero, $0012063c # 0012060c:1000000b ¥__0012063c movz v0, v1, a0 # 00120610:0064100a __00120614: # blez v0, $00120624 # 00120614:18400003 ¥__00120624 lui a0, $0036 # 00120618:3c040036 a0=$00360000 jal $00112298 # 0012061c:0c0448a6 £scePrintf addiu a0, a0, $8dc0 # 00120620:24848dc0 a0="DiskReady ended\n" __00120624: # lui v0, $2000 # 00120624:3c022000 v0=$20000000 lw a0, $9bec(s3) # 00120628:8e649bec or v0, s1, v0 # 0012062c:02221025 v0=$2032adc0 jal $00110100 # 00120630:0c044040 £SignalSema lw s0, $0000(v0) # 00120634:8c500000 s0=$2032adc0 daddu v0, s0, zero # 00120638:0200102d __0012063c: # ld ra, $0090(sp) # 0012063c:dfbf0090 ld s7, $0080(sp) # 00120640:dfb70080 ld s6, $0070(sp) # 00120644:dfb60070 ld s5, $0060(sp) # 00120648:dfb50060 ld s4, $0050(sp) # 0012064c:dfb40050 ld s3, $0040(sp) # 00120650:dfb30040 ld s2, $0030(sp) # 00120654:dfb20030 ld s1, $0020(sp) # 00120658:dfb10020 ld s0, $0010(sp) # 0012065c:dfb00010 jr ra # 00120660:03e00008 addiu sp, sp, $00a0 # 00120664:27bd00a0
sceCdGetError
sceCdGetError: # addiu sp, sp, $ffd0 # 001209e0:27bdffd0 addiu a0, zero, $0003 # 001209e4:24040003 a0=$00000003 sd ra, $0020(sp) # 001209e8:ffbf0020 jal $00120020 # 001209ec:0c048008 £_sceCd_scmd_prechk sd s0, $0010(sp) # 001209f0:ffb00010 bne v0, zero, $00120a04 # 001209f4:14400003 ¥__00120a04 lui v0, $0033 # 001209f8:3c020033 v0=$00330000 beq zero, zero, $00120a68 # 001209fc:1000001a ¥__00120a68 addiu v0, zero, $ffff # 00120a00:2402ffff v0=_heap_size __00120a04: # lui a0, $0033 # 00120a04:3c040033 a0=$00330000 addiu s0, v0, $adc0 # 00120a08:2450adc0 s0=$ffffadbf addiu a0, a0, $b608 # 00120a0c:2484b608 a0=_sceCd_cd_scmd sw zero, $0000(sp) # 00120a10:afa00000 addiu a1, zero, $0004 # 00120a14:24050004 a1=$00000004 daddu a2, zero, zero # 00120a18:0000302d daddu a3, zero, zero # 00120a1c:0000382d daddu t0, zero, zero # 00120a20:0000402d daddu t1, s0, zero # 00120a24:0200482d t1=$ffffadbf addiu t2, zero, $0004 # 00120a28:240a0004 t2=$00000004 jal $00113280 # 00120a2c:0c044ca0 £sceSifCallRpc daddu t3, zero, zero # 00120a30:0000582d bgez v0, $00120a50 # 00120a34:04410006 ¥__00120a50 lui v1, $0033 # 00120a38:3c030033 v1=$00330000 lui v0, $0033 # 00120a3c:3c020033 v0=$00330000 jal $00110100 # 00120a40:0c044040 £SignalSema lw a0, $9bec(v0) # 00120a44:8c449bec a0=_sceCd_scmd_semid beq zero, zero, $00120a68 # 00120a48:10000007 ¥__00120a68 addiu v0, zero, $ffff # 00120a4c:2402ffff v0=_heap_size __00120a50: # lui v0, $2000 # 00120a50:3c022000 v0=$20000000 or v0, s0, v0 # 00120a54:02021025 v0=$ffffadbf lw a0, $9bec(v1) # 00120a58:8c649bec a0=_sceCd_scmd_semid jal $00110100 # 00120a5c:0c044040 £SignalSema lw s0, $0000(v0) # 00120a60:8c500000 s0=$ffffadbf daddu v0, s0, zero # 00120a64:0200102d __00120a68: # ld ra, $0020(sp) # 00120a68:dfbf0020 ld s0, $0010(sp) # 00120a6c:dfb00010 jr ra # 00120a70:03e00008 addiu sp, sp, $0030 # 00120a74:27bd0030