Moved most of data from kirby.039DF0.0.5 into their respective source files, incorporated more libreultra functions

This commit is contained in:
Mr-Wiseguy 2020-11-02 21:58:08 -05:00
parent 63ba8ffe89
commit bc989949de
35 changed files with 13583 additions and 14654 deletions

View File

@ -9,11 +9,12 @@ glabel func_800019BC
/* 0025D8 800019D8 2DE1000B */ sltiu $at, $t7, 0xb
/* 0025DC 800019DC 1020010B */ beqz $at, .L80001E0C_ovl0
/* 0025E0 800019E0 000F7880 */ sll $t7, $t7, 2
/* 0025E4 800019E4 3C018004 */ lui $at, 0x8004
/* 0025E4 800019E4 3C018004 */ lui $at, %hi(jtbl_8003FECC)
/* 0025E8 800019E8 002F0821 */ addu $at, $at, $t7
/* 0025EC 800019EC 8C2FFECC */ lw $t7, -0x134($at)
/* 0025EC 800019EC 8C2FFECC */ lw $t7, %lo(jtbl_8003FECC)($at)
/* 0025F0 800019F0 01E00008 */ jr $t7
/* 0025F4 800019F4 00000000 */ nop
glabel L800019F8_ovl0
/* 0025F8 800019F8 8E020068 */ lw $v0, 0x68($s0)
/* 0025FC 800019FC 3C198005 */ lui $t9, %hi(D_80048C5C) # $t9, 0x8005
/* 002600 80001A00 50400009 */ beql $v0, $zero, .L80001A28_ovl0
@ -52,6 +53,7 @@ glabel func_800019BC
/* 002678 80001A78 240E0001 */ li $t6, 1
/* 00267C 80001A7C 100000E3 */ b .L80001E0C_ovl0
/* 002680 80001A80 AFAE004C */ sw $t6, 0x4c($sp)
glabel L80001A84_ovl0
/* 002684 80001A84 0C00E328 */ jal osWritebackDCacheAll
/* 002688 80001A88 00000000 */ nop
/* 00268C 80001A8C 0C000649 */ jal func_80001924
@ -59,6 +61,7 @@ glabel func_800019BC
/* 002694 80001A94 240F0001 */ li $t7, 1
/* 002698 80001A98 100000DC */ b .L80001E0C_ovl0
/* 00269C 80001A9C AFAF004C */ sw $t7, 0x4c($sp)
glabel L80001AA0_ovl0
/* 0026A0 80001AA0 3C038005 */ lui $v1, %hi(D_80048B80) # $v1, 0x8005
/* 0026A4 80001AA4 24638B80 */ addiu $v1, %lo(D_80048B80) # addiu $v1, $v1, -0x7480
/* 0026A8 80001AA8 8E020024 */ lw $v0, 0x24($s0)
@ -73,6 +76,7 @@ glabel func_800019BC
/* 0026CC 80001ACC 8E05001C */ lw $a1, 0x1c($s0)
/* 0026D0 80001AD0 100000CF */ b .L80001E10_ovl0
/* 0026D4 80001AD4 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001AD8_ovl0
/* 0026D8 80001AD8 86190032 */ lh $t9, 0x32($s0)
/* 0026DC 80001ADC 8E040024 */ lw $a0, 0x24($s0)
/* 0026E0 80001AE0 8E050028 */ lw $a1, 0x28($s0)
@ -92,6 +96,7 @@ glabel func_800019BC
/* 002718 80001B18 8E05001C */ lw $a1, 0x1c($s0)
/* 00271C 80001B1C 100000BC */ b .L80001E10_ovl0
/* 002720 80001B20 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001B24_ovl0
/* 002724 80001B24 3C028005 */ lui $v0, %hi(D_80048C50) # $v0, 0x8005
/* 002728 80001B28 3C048005 */ lui $a0, %hi(D_80048C5C) # $a0, 0x8005
/* 00272C 80001B2C 24848C5C */ addiu $a0, %lo(D_80048C5C) # addiu $a0, $a0, -0x73a4
@ -111,6 +116,7 @@ glabel func_800019BC
/* 002760 80001B60 8E05001C */ lw $a1, 0x1c($s0)
/* 002764 80001B64 100000AA */ b .L80001E10_ovl0
/* 002768 80001B68 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001B6C_ovl0
/* 00276C 80001B6C 3C048005 */ lui $a0, %hi(D_80048B8C) # $a0, 0x8005
/* 002770 80001B70 8C848B8C */ lw $a0, %lo(D_80048B8C)($a0)
/* 002774 80001B74 00001825 */ move $v1, $zero
@ -218,6 +224,7 @@ glabel func_800019BC
/* 0028D8 80001CD8 8E05001C */ lw $a1, 0x1c($s0)
/* 0028DC 80001CDC 1000004C */ b .L80001E10_ovl0
/* 0028E0 80001CE0 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001CE4_ovl0
/* 0028E4 80001CE4 8E040020 */ lw $a0, 0x20($s0)
/* 0028E8 80001CE8 00003025 */ move $a2, $zero
/* 0028EC 80001CEC 50800048 */ beql $a0, $zero, .L80001E10_ovl0
@ -226,6 +233,7 @@ glabel func_800019BC
/* 0028F8 80001CF8 8E05001C */ lw $a1, 0x1c($s0)
/* 0028FC 80001CFC 10000044 */ b .L80001E10_ovl0
/* 002900 80001D00 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001D04_ovl0
/* 002904 80001D04 8E090024 */ lw $t1, 0x24($s0)
/* 002908 80001D08 3C018005 */ lui $at, %hi(D_80048C8C) # $at, 0x8005
/* 00290C 80001D0C 00003025 */ move $a2, $zero
@ -240,6 +248,7 @@ glabel func_800019BC
/* 002930 80001D30 8E05001C */ lw $a1, 0x1c($s0)
/* 002934 80001D34 10000036 */ b .L80001E10_ovl0
/* 002938 80001D38 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001D3C_ovl0
/* 00293C 80001D3C 24050001 */ li $a1, 1
/* 002940 80001D40 3C018005 */ lui $at, %hi(D_80048CD0) # $at, 0x8005
/* 002944 80001D44 AC258CD0 */ sw $a1, %lo(D_80048CD0)($at)
@ -254,6 +263,7 @@ glabel func_800019BC
/* 002968 80001D68 8E05001C */ lw $a1, 0x1c($s0)
/* 00296C 80001D6C 10000028 */ b .L80001E10_ovl0
/* 002970 80001D70 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001D74_ovl0
/* 002974 80001D74 3C018005 */ lui $at, %hi(D_80048CD0) # $at, 0x8005
/* 002978 80001D78 AC208CD0 */ sw $zero, %lo(D_80048CD0)($at)
/* 00297C 80001D7C 8E040020 */ lw $a0, 0x20($s0)
@ -264,6 +274,7 @@ glabel func_800019BC
/* 002990 80001D90 8E05001C */ lw $a1, 0x1c($s0)
/* 002994 80001D94 1000001E */ b .L80001E10_ovl0
/* 002998 80001D98 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80001D9C_ovl0
/* 00299C 80001D9C 3C048005 */ lui $a0, %hi(D_80048B84) # $a0, 0x8005
/* 0029A0 80001DA0 8C848B84 */ lw $a0, %lo(D_80048B84)($a0)
/* 0029A4 80001DA4 24050001 */ li $a1, 1

View File

@ -20,7 +20,7 @@ glabel func_80004250
/* 004E98 80004298 3C068005 */ lui $a2, %hi(D_80048E70) # $a2, 0x8005
/* 004E9C 8000429C 24C68E70 */ addiu $a2, %lo(D_80048E70) # addiu $a2, $a2, -0x7190
/* 004EA0 800042A0 02802025 */ move $a0, $s4
/* 004EA4 800042A4 0C00BD34 */ jal osContReset
/* 004EA4 800042A4 0C00BD34 */ jal osContInit
/* 004EA8 800042A8 27A50043 */ addiu $a1, $sp, 0x43
/* 004EAC 800042AC 3C118005 */ lui $s1, %hi(D_80048E70) # $s1, 0x8005
/* 004EB0 800042B0 3C128005 */ lui $s2, %hi(D_800490F0) # $s2, 0x8005

View File

@ -1,11 +1,11 @@
glabel func_80021618
/* 022218 80021618 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 02221C 8002161C 8FAE0030 */ lw $t6, 0x30($sp)
/* 022220 80021620 3C018004 */ lui $at, 0x8004
/* 022220 80021620 3C018004 */ lui $at, %hi(D_8003F660)
/* 022224 80021624 44866000 */ mtc1 $a2, $f12
/* 022228 80021628 000E7880 */ sll $t7, $t6, 2
/* 02222C 8002162C 002F0821 */ addu $at, $at, $t7
/* 022230 80021630 C424F660 */ lwc1 $f4, -0x9a0($at)
/* 022230 80021630 C424F660 */ lwc1 $f4, %lo(D_8003F660)($at)
/* 022234 80021634 8FB90034 */ lw $t9, 0x34($sp)
/* 022238 80021638 AFBF001C */ sw $ra, 0x1c($sp)
/* 02223C 8002163C 460C2182 */ mul.s $f6, $f4, $f12

View File

@ -24,8 +24,8 @@ glabel crash_screen_print
/* 022BFC 80021FFC 00408025 */ move $s0, $v0
/* 022C00 80022000 18400011 */ blez $v0, .L80022048_ovl0
/* 022C04 80022004 02608825 */ move $s1, $s3
/* 022C08 80022008 3C138004 */ lui $s3, %hi(D_8003F68C) # $s3, 0x8004
/* 022C0C 8002200C 2673F68C */ addiu $s3, %lo(D_8003F68C) # addiu $s3, $s3, -0x974
/* 022C08 80022008 3C138004 */ lui $s3, %hi(crashScreenGlyphTable) # $s3, 0x8004
/* 022C0C 8002200C 2673F68C */ addiu $s3, %lo(crashScreenGlyphTable) # addiu $s3, $s3, -0x974
/* 022C10 80022010 241400FF */ li $s4, 255
.L80022014_ovl0:
/* 022C14 80022014 922E0000 */ lbu $t6, ($s1)

View File

@ -36,9 +36,9 @@ glabel func_800222C4
/* 022F44 80022344 11E1000E */ beq $t7, $at, .L80022380_ovl0
/* 022F48 80022348 24050019 */ li $a1, 25
/* 022F4C 8002234C 0012C080 */ sll $t8, $s2, 2
/* 022F50 80022350 3C198004 */ lui $t9, 0x8004
/* 022F50 80022350 3C198004 */ lui $t9, %hi(D_8003F80C)
/* 022F54 80022354 0338C821 */ addu $t9, $t9, $t8
/* 022F58 80022358 8F39F80C */ lw $t9, -0x7f4($t9)
/* 022F58 80022358 8F39F80C */ lw $t9, %lo(D_8003F80C)($t9)
/* 022F5C 8002235C 3C068004 */ lui $a2, %hi(D_80040F40) # $a2, 0x8004
/* 022F60 80022360 8E070014 */ lw $a3, 0x14($s0)
/* 022F64 80022364 24C60F40 */ addiu $a2, %lo(D_80040F40) # addiu $a2, $a2, 0xf40
@ -104,9 +104,9 @@ glabel func_800222C4
/* 023044 80022444 24010002 */ li $at, 2
/* 023048 80022448 1161000D */ beq $t3, $at, .L80022480_ovl0
/* 02304C 8002244C 00126080 */ sll $t4, $s2, 2
/* 023050 80022450 3C0D8004 */ lui $t5, 0x8004
/* 023050 80022450 3C0D8004 */ lui $t5, %hi(D_8003F80C)
/* 023054 80022454 01AC6821 */ addu $t5, $t5, $t4
/* 023058 80022458 8DADF80C */ lw $t5, -0x7f4($t5)
/* 023058 80022458 8DADF80C */ lw $t5, %lo(D_8003F80C)($t5)
/* 02305C 8002245C 3C068004 */ lui $a2, %hi(D_80040FA4) # $a2, 0x8004
/* 023060 80022460 8E070014 */ lw $a3, 0x14($s0)
/* 023064 80022464 24C60FA4 */ addiu $a2, %lo(D_80040FA4) # addiu $a2, $a2, 0xfa4

View File

@ -21,12 +21,12 @@ glabel func_80022A58
/* 0236A4 80022AA4 00409825 */ move $s3, $v0
/* 0236A8 80022AA8 18400029 */ blez $v0, .L80022B50_ovl0
/* 0236AC 80022AAC 0200A025 */ move $s4, $s0
/* 0236B0 80022AB0 3C168004 */ lui $s6, %hi(D_8003F68C) # $s6, 0x8004
/* 0236B0 80022AB0 3C168004 */ lui $s6, %hi(crashScreenGlyphTable) # $s6, 0x8004
/* 0236B4 80022AB4 3C128004 */ lui $s2, %hi(D_8003F86C) # $s2, 0x8004
/* 0236B8 80022AB8 3C118004 */ lui $s1, %hi(D_8003F870) # $s1, 0x8004
/* 0236BC 80022ABC 2631F870 */ addiu $s1, %lo(D_8003F870) # addiu $s1, $s1, -0x790
/* 0236C0 80022AC0 2652F86C */ addiu $s2, %lo(D_8003F86C) # addiu $s2, $s2, -0x794
/* 0236C4 80022AC4 26D6F68C */ addiu $s6, %lo(D_8003F68C) # addiu $s6, $s6, -0x974
/* 0236C4 80022AC4 26D6F68C */ addiu $s6, %lo(crashScreenGlyphTable) # addiu $s6, $s6, -0x974
/* 0236C8 80022AC8 241E00FF */ li $fp, 255
/* 0236CC 80022ACC 2417000A */ li $s7, 10
/* 0236D0 80022AD0 2415001E */ li $s5, 30

View File

@ -193,13 +193,13 @@ glabel D_80098A88
glabel D_80098A8C
.word 0x00000000
glabel D_80098A90
glabel siAccessBuf
.word 0x00000000
glabel D_80098A94
.word 0x00000000
glabel D_80098A98
glabel __osSiAccessQueue
.word 0x00000000
glabel D_80098A9C

View File

@ -2,6 +2,12 @@
.set noreorder
.set gp=64
.include "macros.inc"
.section .data
glabel __osHwIntTable
.word 0x0, 0x0, 0x0, 0x0, 0x0
.section .text,"ax"
glabel __osExceptionPreamble
/* 02EB60 8002DF60 3C1A8003 */ lui $k0, %hi(__osException) # $k0, 0x8003

View File

@ -11,12 +11,12 @@ glabel osEepromRead
/* 039B68 80038F68 AFBF0024 */ sw $ra, 0x24($sp)
/* 039B6C 80038F6C AFB20020 */ sw $s2, 0x20($sp)
/* 039B70 80038F70 AFB00018 */ sw $s0, 0x18($sp)
/* 039B74 80038F74 3C11800A */ lui $s1, %hi(D_8009B500) # $s1, 0x800a
/* 039B74 80038F74 3C11800A */ lui $s1, %hi(__osEepPifRam) # $s1, 0x800a
/* 039B78 80038F78 00C08025 */ move $s0, $a2
/* 039B7C 80038F7C 00809025 */ move $s2, $a0
/* 039B80 80038F80 AFA50054 */ sw $a1, 0x54($sp)
/* 039B84 80038F84 0C00BD18 */ jal __osSiGetAccess
/* 039B88 80038F88 2631B500 */ addiu $s1, %lo(D_8009B500) # addiu $s1, $s1, -0x4b00
/* 039B88 80038F88 2631B500 */ addiu $s1, %lo(__osEepPifRam) # addiu $s1, $s1, -0x4b00
/* 039B8C 80038F8C 02402025 */ move $a0, $s2
/* 039B90 80038F90 0C00BE8D */ jal __osEepStatus
/* 039B94 80038F94 27A5003C */ addiu $a1, $sp, 0x3c
@ -65,16 +65,16 @@ glabel osEepromRead
.L8003902C_ovl0:
/* 039C2C 8003902C 0C00E449 */ jal __osPackEepReadData
/* 039C30 80039030 93A40057 */ lbu $a0, 0x57($sp)
/* 039C34 80039034 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 039C38 80039038 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 039C34 80039034 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 039C38 80039038 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 039C3C 8003903C 0C00C138 */ jal __osSiRawStartDma
/* 039C40 80039040 24040001 */ li $a0, 1
/* 039C44 80039044 02402025 */ move $a0, $s2
/* 039C48 80039048 00002825 */ move $a1, $zero
/* 039C4C 8003904C 0C00B540 */ jal osRecvMesg
/* 039C50 80039050 24060001 */ li $a2, 1
/* 039C54 80039054 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 039C58 80039058 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 039C54 80039054 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 039C58 80039058 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 039C5C 8003905C 0C00C138 */ jal __osSiRawStartDma
/* 039C60 80039060 00002025 */ move $a0, $zero
/* 039C64 80039064 240C0004 */ li $t4, 4
@ -132,22 +132,22 @@ glabel osEepromRead
glabel __osPackEepReadData
/* 039D24 80039124 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 039D28 80039128 3C03800A */ lui $v1, %hi(D_8009B500) # $v1, 0x800a
/* 039D2C 8003912C 2463B500 */ addiu $v1, %lo(D_8009B500) # addiu $v1, $v1, -0x4b00
/* 039D28 80039128 3C03800A */ lui $v1, %hi(__osEepPifRam) # $v1, 0x800a
/* 039D2C 8003912C 2463B500 */ addiu $v1, %lo(__osEepPifRam) # addiu $v1, $v1, -0x4b00
/* 039D30 80039130 240F0001 */ li $t7, 1
/* 039D34 80039134 AC6F003C */ sw $t7, 0x3c($v1)
/* 039D38 80039138 24180002 */ li $t8, 2
/* 039D3C 8003913C 24190008 */ li $t9, 8
/* 039D40 80039140 24080004 */ li $t0, 4
/* 039D44 80039144 3C01800A */ lui $at, %hi(D_8009B500) # $at, 0x800a
/* 039D48 80039148 3C02800A */ lui $v0, %hi(D_8009B501) # $v0, 0x800a
/* 039D44 80039144 3C01800A */ lui $at, %hi(__osEepPifRam) # $at, 0x800a
/* 039D48 80039148 3C02800A */ lui $v0, %hi(__osMaxControllers) # $v0, 0x800a
/* 039D4C 8003914C AFA40018 */ sw $a0, 0x18($sp)
/* 039D50 80039150 A3B80008 */ sb $t8, 8($sp)
/* 039D54 80039154 A3B90009 */ sb $t9, 9($sp)
/* 039D58 80039158 A3A8000A */ sb $t0, 0xa($sp)
/* 039D5C 8003915C A3A4000B */ sb $a0, 0xb($sp)
/* 039D60 80039160 2442B501 */ addiu $v0, %lo(D_8009B501) # addiu $v0, $v0, -0x4aff
/* 039D64 80039164 A020B500 */ sb $zero, %lo(D_8009B500)($at)
/* 039D60 80039160 2442B501 */ addiu $v0, %lo(__osMaxControllers) # addiu $v0, $v0, -0x4aff
/* 039D64 80039164 A020B500 */ sb $zero, %lo(__osEepPifRam)($at)
/* 039D68 80039168 A0400002 */ sb $zero, 2($v0)
/* 039D6C 8003916C A0400001 */ sb $zero, 1($v0)
/* 039D70 80039170 A0400000 */ sb $zero, ($v0)

File diff suppressed because it is too large Load Diff

View File

@ -5,557 +5,7 @@
.section .text, "ax"
glabel func_8002F040
/* 02FC40 8002F040 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 02FC44 8002F044 AFBF001C */ sw $ra, 0x1c($sp)
/* 02FC48 8002F048 AFB00018 */ sw $s0, 0x18($sp)
/* 02FC4C 8002F04C 8C8E0008 */ lw $t6, 8($a0)
/* 02FC50 8002F050 8C990000 */ lw $t9, ($a0)
/* 02FC54 8002F054 3C18800A */ lui $t8, %hi(D_80098990) # $t8, 0x800a
/* 02FC58 8002F058 27188990 */ addiu $t8, %lo(D_80098990) # addiu $t8, $t8, -0x7670
/* 02FC5C 8002F05C 000E7980 */ sll $t7, $t6, 6
/* 02FC60 8002F060 33290008 */ andi $t1, $t9, 8
/* 02FC64 8002F064 00808025 */ move $s0, $a0
/* 02FC68 8002F068 00A03825 */ move $a3, $a1
/* 02FC6C 8002F06C 15200003 */ bnez $t1, .L8002F07C_ovl0
/* 02FC70 8002F070 01F84021 */ addu $t0, $t7, $t8
/* 02FC74 8002F074 10000047 */ b .L8002F194_ovl0
/* 02FC78 8002F078 24020005 */ li $v0, 5
.L8002F07C_ovl0:
/* 02FC7C 8002F07C AFA70034 */ sw $a3, 0x34($sp)
/* 02FC80 8002F080 0C00BD18 */ jal __osSiGetAccess
/* 02FC84 8002F084 AFA80024 */ sw $t0, 0x24($sp)
/* 02FC88 8002F088 8E0B0008 */ lw $t3, 8($s0)
/* 02FC8C 8002F08C 3C06800A */ lui $a2, %hi(D_80098990) # $a2, 0x800a
/* 02FC90 8002F090 24C68990 */ addiu $a2, %lo(D_80098990) # addiu $a2, $a2, -0x7670
/* 02FC94 8002F094 000B6180 */ sll $t4, $t3, 6
/* 02FC98 8002F098 00CC6821 */ addu $t5, $a2, $t4
/* 02FC9C 8002F09C 240A0001 */ li $t2, 1
/* 02FCA0 8002F0A0 ADAA003C */ sw $t2, 0x3c($t5)
/* 02FCA4 8002F0A4 8FA80024 */ lw $t0, 0x24($sp)
/* 02FCA8 8002F0A8 8E0E0008 */ lw $t6, 8($s0)
/* 02FCAC 8002F0AC 8FA70034 */ lw $a3, 0x34($sp)
/* 02FCB0 8002F0B0 00001825 */ move $v1, $zero
/* 02FCB4 8002F0B4 010E4021 */ addu $t0, $t0, $t6
/* 02FCB8 8002F0B8 01001025 */ move $v0, $t0
/* 02FCBC 8002F0BC 24040020 */ li $a0, 32
.L8002F0C0_ovl0:
/* 02FCC0 8002F0C0 24630004 */ addiu $v1, $v1, 4
/* 02FCC4 8002F0C4 A0470007 */ sb $a3, 7($v0)
/* 02FCC8 8002F0C8 A0470008 */ sb $a3, 8($v0)
/* 02FCCC 8002F0CC A0470009 */ sb $a3, 9($v0)
/* 02FCD0 8002F0D0 24420004 */ addiu $v0, $v0, 4
/* 02FCD4 8002F0D4 1464FFFA */ bne $v1, $a0, .L8002F0C0_ovl0
/* 02FCD8 8002F0D8 A0470002 */ sb $a3, 2($v0)
/* 02FCDC 8002F0DC 240F00FE */ li $t7, 254
/* 02FCE0 8002F0E0 3C01800A */ lui $at, %hi(__osContLastCmd) # $at, 0x800a
/* 02FCE4 8002F0E4 A02F8AF0 */ sb $t7, %lo(__osContLastCmd)($at)
/* 02FCE8 8002F0E8 8E180008 */ lw $t8, 8($s0)
/* 02FCEC 8002F0EC AFA80024 */ sw $t0, 0x24($sp)
/* 02FCF0 8002F0F0 AFA70034 */ sw $a3, 0x34($sp)
/* 02FCF4 8002F0F4 0018C980 */ sll $t9, $t8, 6
/* 02FCF8 8002F0F8 00D92821 */ addu $a1, $a2, $t9
/* 02FCFC 8002F0FC 0C00C138 */ jal __osSiRawStartDma
/* 02FD00 8002F100 24040001 */ li $a0, 1
/* 02FD04 8002F104 8E040004 */ lw $a0, 4($s0)
/* 02FD08 8002F108 00002825 */ move $a1, $zero
/* 02FD0C 8002F10C 0C00B540 */ jal osRecvMesg
/* 02FD10 8002F110 24060001 */ li $a2, 1
/* 02FD14 8002F114 8E090008 */ lw $t1, 8($s0)
/* 02FD18 8002F118 3C0C800A */ lui $t4, %hi(D_80098990) # $t4, 0x800a
/* 02FD1C 8002F11C 258C8990 */ addiu $t4, %lo(D_80098990) # addiu $t4, $t4, -0x7670
/* 02FD20 8002F120 00095980 */ sll $t3, $t1, 6
/* 02FD24 8002F124 016C2821 */ addu $a1, $t3, $t4
/* 02FD28 8002F128 0C00C138 */ jal __osSiRawStartDma
/* 02FD2C 8002F12C 00002025 */ move $a0, $zero
/* 02FD30 8002F130 8E040004 */ lw $a0, 4($s0)
/* 02FD34 8002F134 00002825 */ move $a1, $zero
/* 02FD38 8002F138 0C00B540 */ jal osRecvMesg
/* 02FD3C 8002F13C 24060001 */ li $a2, 1
/* 02FD40 8002F140 8FA80024 */ lw $t0, 0x24($sp)
/* 02FD44 8002F144 8FA70034 */ lw $a3, 0x34($sp)
/* 02FD48 8002F148 91100002 */ lbu $s0, 2($t0)
/* 02FD4C 8002F14C 320A00C0 */ andi $t2, $s0, 0xc0
/* 02FD50 8002F150 1540000D */ bnez $t2, .L8002F188_ovl0
/* 02FD54 8002F154 01408025 */ move $s0, $t2
/* 02FD58 8002F158 54E00007 */ bnezl $a3, .L8002F178_ovl0
/* 02FD5C 8002F15C 910E0026 */ lbu $t6, 0x26($t0)
/* 02FD60 8002F160 910D0026 */ lbu $t5, 0x26($t0)
/* 02FD64 8002F164 11A00008 */ beqz $t5, .L8002F188_ovl0
/* 02FD68 8002F168 00000000 */ nop
/* 02FD6C 8002F16C 10000006 */ b .L8002F188_ovl0
/* 02FD70 8002F170 24100004 */ li $s0, 4
/* 02FD74 8002F174 910E0026 */ lbu $t6, 0x26($t0)
.L8002F178_ovl0:
/* 02FD78 8002F178 240100EB */ li $at, 235
/* 02FD7C 8002F17C 11C10002 */ beq $t6, $at, .L8002F188_ovl0
/* 02FD80 8002F180 00000000 */ nop
/* 02FD84 8002F184 24100004 */ li $s0, 4
.L8002F188_ovl0:
/* 02FD88 8002F188 0C00BD29 */ jal __osSiRelAccess
/* 02FD8C 8002F18C 00000000 */ nop
/* 02FD90 8002F190 02001025 */ move $v0, $s0
.L8002F194_ovl0:
/* 02FD94 8002F194 8FBF001C */ lw $ra, 0x1c($sp)
/* 02FD98 8002F198 8FB00018 */ lw $s0, 0x18($sp)
/* 02FD9C 8002F19C 27BD0030 */ addiu $sp, $sp, 0x30
/* 02FDA0 8002F1A0 03E00008 */ jr $ra
/* 02FDA4 8002F1A4 00000000 */ nop
glabel func_8002F1A8
/* 02FDA8 8002F1A8 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 02FDAC 8002F1AC AFBF0014 */ sw $ra, 0x14($sp)
/* 02FDB0 8002F1B0 00803025 */ move $a2, $a0
/* 02FDB4 8002F1B4 240E00FF */ li $t6, 255
/* 02FDB8 8002F1B8 240F0023 */ li $t7, 35
/* 02FDBC 8002F1BC 24180001 */ li $t8, 1
/* 02FDC0 8002F1C0 24190003 */ li $t9, 3
/* 02FDC4 8002F1C4 240800C0 */ li $t0, 192
/* 02FDC8 8002F1C8 A3AE0024 */ sb $t6, 0x24($sp)
/* 02FDCC 8002F1CC A3AF0025 */ sb $t7, 0x25($sp)
/* 02FDD0 8002F1D0 A3B80026 */ sb $t8, 0x26($sp)
/* 02FDD4 8002F1D4 A3B90027 */ sb $t9, 0x27($sp)
/* 02FDD8 8002F1D8 A3A80028 */ sb $t0, 0x28($sp)
/* 02FDDC 8002F1DC AFA60050 */ sw $a2, 0x50($sp)
/* 02FDE0 8002F1E0 24040600 */ li $a0, 1536
/* 02FDE4 8002F1E4 0C00DD54 */ jal func_80037550
/* 02FDE8 8002F1E8 AFA5004C */ sw $a1, 0x4c($sp)
/* 02FDEC 8002F1EC 8FA60050 */ lw $a2, 0x50($sp)
/* 02FDF0 8002F1F0 3449C000 */ ori $t1, $v0, 0xc000
/* 02FDF4 8002F1F4 A3A90029 */ sb $t1, 0x29($sp)
/* 02FDF8 8002F1F8 10C00012 */ beqz $a2, .L8002F244_ovl0
/* 02FDFC 8002F1FC 8FA3004C */ lw $v1, 0x4c($sp)
/* 02FE00 8002F200 18C00010 */ blez $a2, .L8002F244_ovl0
/* 02FE04 8002F204 00001025 */ move $v0, $zero
/* 02FE08 8002F208 30C50003 */ andi $a1, $a2, 3
/* 02FE0C 8002F20C 10A00006 */ beqz $a1, .L8002F228_ovl0
/* 02FE10 8002F210 00A02025 */ move $a0, $a1
.L8002F214_ovl0:
/* 02FE14 8002F214 24420001 */ addiu $v0, $v0, 1
/* 02FE18 8002F218 A0600000 */ sb $zero, ($v1)
/* 02FE1C 8002F21C 1482FFFD */ bne $a0, $v0, .L8002F214_ovl0
/* 02FE20 8002F220 24630001 */ addiu $v1, $v1, 1
/* 02FE24 8002F224 10460007 */ beq $v0, $a2, .L8002F244_ovl0
.L8002F228_ovl0:
/* 02FE28 8002F228 24420004 */ addiu $v0, $v0, 4
/* 02FE2C 8002F22C A0600001 */ sb $zero, 1($v1)
/* 02FE30 8002F230 A0600002 */ sb $zero, 2($v1)
/* 02FE34 8002F234 A0600003 */ sb $zero, 3($v1)
/* 02FE38 8002F238 24630004 */ addiu $v1, $v1, 4
/* 02FE3C 8002F23C 1446FFFA */ bne $v0, $a2, .L8002F228_ovl0
/* 02FE40 8002F240 A060FFFC */ sb $zero, -4($v1)
.L8002F244_ovl0:
/* 02FE44 8002F244 27AA0024 */ addiu $t2, $sp, 0x24
/* 02FE48 8002F248 254C0024 */ addiu $t4, $t2, 0x24
/* 02FE4C 8002F24C 00606825 */ move $t5, $v1
.L8002F250_ovl0:
/* 02FE50 8002F250 8D410000 */ lw $at, ($t2)
/* 02FE54 8002F254 254A000C */ addiu $t2, $t2, 0xc
/* 02FE58 8002F258 25AD000C */ addiu $t5, $t5, 0xc
/* 02FE5C 8002F25C A9A1FFF4 */ swl $at, -0xc($t5)
/* 02FE60 8002F260 B9A1FFF7 */ swr $at, -9($t5)
/* 02FE64 8002F264 8D41FFF8 */ lw $at, -8($t2)
/* 02FE68 8002F268 A9A1FFF8 */ swl $at, -8($t5)
/* 02FE6C 8002F26C B9A1FFFB */ swr $at, -5($t5)
/* 02FE70 8002F270 8D41FFFC */ lw $at, -4($t2)
/* 02FE74 8002F274 A9A1FFFC */ swl $at, -4($t5)
/* 02FE78 8002F278 154CFFF5 */ bne $t2, $t4, .L8002F250_ovl0
/* 02FE7C 8002F27C B9A1FFFF */ swr $at, -1($t5)
/* 02FE80 8002F280 91410000 */ lbu $at, ($t2)
/* 02FE84 8002F284 240E00FE */ li $t6, 254
/* 02FE88 8002F288 24630027 */ addiu $v1, $v1, 0x27
/* 02FE8C 8002F28C A1A10000 */ sb $at, ($t5)
/* 02FE90 8002F290 914C0001 */ lbu $t4, 1($t2)
/* 02FE94 8002F294 A1AC0001 */ sb $t4, 1($t5)
/* 02FE98 8002F298 91410002 */ lbu $at, 2($t2)
/* 02FE9C 8002F29C A1A10002 */ sb $at, 2($t5)
/* 02FEA0 8002F2A0 A06E0000 */ sb $t6, ($v1)
/* 02FEA4 8002F2A4 8FBF0014 */ lw $ra, 0x14($sp)
/* 02FEA8 8002F2A8 27BD0050 */ addiu $sp, $sp, 0x50
/* 02FEAC 8002F2AC 03E00008 */ jr $ra
/* 02FEB0 8002F2B0 00000000 */ nop
glabel func_8002F2B4
/* 02FEB4 8002F2B4 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 02FEB8 8002F2B8 AFBF001C */ sw $ra, 0x1c($sp)
/* 02FEBC 8002F2BC AFB00018 */ sw $s0, 0x18($sp)
/* 02FEC0 8002F2C0 AFA40048 */ sw $a0, 0x48($sp)
/* 02FEC4 8002F2C4 AFA60050 */ sw $a2, 0x50($sp)
/* 02FEC8 8002F2C8 ACA40004 */ sw $a0, 4($a1)
/* 02FECC 8002F2CC 8FAF0050 */ lw $t7, 0x50($sp)
/* 02FED0 8002F2D0 241800FF */ li $t8, 255
/* 02FED4 8002F2D4 00A08025 */ move $s0, $a1
/* 02FED8 8002F2D8 A0B80065 */ sb $t8, 0x65($a1)
/* 02FEDC 8002F2DC ACA00000 */ sw $zero, ($a1)
/* 02FEE0 8002F2E0 00A02025 */ move $a0, $a1
/* 02FEE4 8002F2E4 ACAF0008 */ sw $t7, 8($a1)
/* 02FEE8 8002F2E8 0C00D728 */ jal func_80035CA0
/* 02FEEC 8002F2EC 240500FE */ li $a1, 254
/* 02FEF0 8002F2F0 24010002 */ li $at, 2
/* 02FEF4 8002F2F4 14410005 */ bne $v0, $at, .L8002F30C_ovl0
/* 02FEF8 8002F2F8 00401825 */ move $v1, $v0
/* 02FEFC 8002F2FC 02002025 */ move $a0, $s0
/* 02FF00 8002F300 0C00D728 */ jal func_80035CA0
/* 02FF04 8002F304 24050080 */ li $a1, 128
/* 02FF08 8002F308 00401825 */ move $v1, $v0
.L8002F30C_ovl0:
/* 02FF0C 8002F30C 10400003 */ beqz $v0, .L8002F31C_ovl0
/* 02FF10 8002F310 8FA40048 */ lw $a0, 0x48($sp)
/* 02FF14 8002F314 10000039 */ b .L8002F3FC_ovl0
/* 02FF18 8002F318 00601025 */ move $v0, $v1
.L8002F31C_ovl0:
/* 02FF1C 8002F31C 8FA50050 */ lw $a1, 0x50($sp)
/* 02FF20 8002F320 24060400 */ li $a2, 1024
/* 02FF24 8002F324 0C00DCC8 */ jal func_80037320
/* 02FF28 8002F328 27A70024 */ addiu $a3, $sp, 0x24
/* 02FF2C 8002F32C 24010002 */ li $at, 2
/* 02FF30 8002F330 14410002 */ bne $v0, $at, .L8002F33C_ovl0
/* 02FF34 8002F334 00401825 */ move $v1, $v0
/* 02FF38 8002F338 24030004 */ li $v1, 4
.L8002F33C_ovl0:
/* 02FF3C 8002F33C 10600003 */ beqz $v1, .L8002F34C_ovl0
/* 02FF40 8002F340 93B90043 */ lbu $t9, 0x43($sp)
/* 02FF44 8002F344 1000002D */ b .L8002F3FC_ovl0
/* 02FF48 8002F348 00601025 */ move $v0, $v1
.L8002F34C_ovl0:
/* 02FF4C 8002F34C 240100FE */ li $at, 254
/* 02FF50 8002F350 17210003 */ bne $t9, $at, .L8002F360_ovl0
/* 02FF54 8002F354 02002025 */ move $a0, $s0
/* 02FF58 8002F358 10000028 */ b .L8002F3FC_ovl0
/* 02FF5C 8002F35C 2402000B */ li $v0, 11
.L8002F360_ovl0:
/* 02FF60 8002F360 0C00D728 */ jal func_80035CA0
/* 02FF64 8002F364 24050080 */ li $a1, 128
/* 02FF68 8002F368 24010002 */ li $at, 2
/* 02FF6C 8002F36C 14410002 */ bne $v0, $at, .L8002F378_ovl0
/* 02FF70 8002F370 00401825 */ move $v1, $v0
/* 02FF74 8002F374 24030004 */ li $v1, 4
.L8002F378_ovl0:
/* 02FF78 8002F378 10600003 */ beqz $v1, .L8002F388_ovl0
/* 02FF7C 8002F37C 8FA40048 */ lw $a0, 0x48($sp)
/* 02FF80 8002F380 1000001E */ b .L8002F3FC_ovl0
/* 02FF84 8002F384 00601025 */ move $v0, $v1
.L8002F388_ovl0:
/* 02FF88 8002F388 8FA50050 */ lw $a1, 0x50($sp)
/* 02FF8C 8002F38C 24060400 */ li $a2, 1024
/* 02FF90 8002F390 0C00DCC8 */ jal func_80037320
/* 02FF94 8002F394 27A70024 */ addiu $a3, $sp, 0x24
/* 02FF98 8002F398 24010002 */ li $at, 2
/* 02FF9C 8002F39C 14410002 */ bne $v0, $at, .L8002F3A8_ovl0
/* 02FFA0 8002F3A0 00401825 */ move $v1, $v0
/* 02FFA4 8002F3A4 24030004 */ li $v1, 4
.L8002F3A8_ovl0:
/* 02FFA8 8002F3A8 10600003 */ beqz $v1, .L8002F3B8_ovl0
/* 02FFAC 8002F3AC 93A80043 */ lbu $t0, 0x43($sp)
/* 02FFB0 8002F3B0 10000012 */ b .L8002F3FC_ovl0
/* 02FFB4 8002F3B4 00601025 */ move $v0, $v1
.L8002F3B8_ovl0:
/* 02FFB8 8002F3B8 24010080 */ li $at, 128
/* 02FFBC 8002F3BC 51010004 */ beql $t0, $at, .L8002F3D0_ovl0
/* 02FFC0 8002F3C0 8E090000 */ lw $t1, ($s0)
/* 02FFC4 8002F3C4 1000000D */ b .L8002F3FC_ovl0
/* 02FFC8 8002F3C8 2402000B */ li $v0, 11
/* 02FFCC 8002F3CC 8E090000 */ lw $t1, ($s0)
.L8002F3D0_ovl0:
/* 02FFD0 8002F3D0 8FA40050 */ lw $a0, 0x50($sp)
/* 02FFD4 8002F3D4 3C0D800A */ lui $t5, %hi(D_80098990) # $t5, 0x800a
/* 02FFD8 8002F3D8 312A0008 */ andi $t2, $t1, 8
/* 02FFDC 8002F3DC 15400004 */ bnez $t2, .L8002F3F0_ovl0
/* 02FFE0 8002F3E0 00046180 */ sll $t4, $a0, 6
/* 02FFE4 8002F3E4 25AD8990 */ addiu $t5, %lo(D_80098990) # addiu $t5, $t5, -0x7670
/* 02FFE8 8002F3E8 0C00BC6A */ jal func_8002F1A8
/* 02FFEC 8002F3EC 018D2821 */ addu $a1, $t4, $t5
.L8002F3F0_ovl0:
/* 02FFF0 8002F3F0 240E0008 */ li $t6, 8
/* 02FFF4 8002F3F4 AE0E0000 */ sw $t6, ($s0)
/* 02FFF8 8002F3F8 00001025 */ move $v0, $zero
.L8002F3FC_ovl0:
/* 02FFFC 8002F3FC 8FBF001C */ lw $ra, 0x1c($sp)
/* 030000 8002F400 8FB00018 */ lw $s0, 0x18($sp)
/* 030004 8002F404 27BD0048 */ addiu $sp, $sp, 0x48
/* 030008 8002F408 03E00008 */ jr $ra
/* 03000C 8002F40C 00000000 */ nop
glabel func_8002F410
/* 030010 8002F410 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 030014 8002F414 AFBF0014 */ sw $ra, 0x14($sp)
/* 030018 8002F418 240E0001 */ li $t6, 1
/* 03001C 8002F41C 3C018004 */ lui $at, %hi(D_8003FB70) # $at, 0x8004
/* 030020 8002F420 3C04800A */ lui $a0, %hi(D_80098A98) # $a0, 0x800a
/* 030024 8002F424 3C05800A */ lui $a1, %hi(D_80098A90) # $a1, 0x800a
/* 030028 8002F428 AC2EFB70 */ sw $t6, %lo(D_8003FB70)($at)
/* 03002C 8002F42C 24A58A90 */ addiu $a1, %lo(D_80098A90) # addiu $a1, $a1, -0x7570
/* 030030 8002F430 24848A98 */ addiu $a0, %lo(D_80098A98) # addiu $a0, $a0, -0x7568
/* 030034 8002F434 0C00CEB8 */ jal osCreateMesgQueue
/* 030038 8002F438 24060001 */ li $a2, 1
/* 03003C 8002F43C 3C04800A */ lui $a0, %hi(D_80098A98) # $a0, 0x800a
/* 030040 8002F440 24848A98 */ addiu $a0, %lo(D_80098A98) # addiu $a0, $a0, -0x7568
/* 030044 8002F444 00002825 */ move $a1, $zero
/* 030048 8002F448 0C00B4BC */ jal osSendMesg
/* 03004C 8002F44C 00003025 */ move $a2, $zero
/* 030050 8002F450 8FBF0014 */ lw $ra, 0x14($sp)
/* 030054 8002F454 27BD0018 */ addiu $sp, $sp, 0x18
/* 030058 8002F458 03E00008 */ jr $ra
/* 03005C 8002F45C 00000000 */ nop
glabel __osSiGetAccess
/* 030060 8002F460 3C0E8004 */ lui $t6, %hi(D_8003FB70) # $t6, 0x8004
/* 030064 8002F464 8DCEFB70 */ lw $t6, %lo(D_8003FB70)($t6)
/* 030068 8002F468 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 03006C 8002F46C AFBF0014 */ sw $ra, 0x14($sp)
/* 030070 8002F470 15C00003 */ bnez $t6, .L8002F480_ovl0
/* 030074 8002F474 00000000 */ nop
/* 030078 8002F478 0C00BD04 */ jal func_8002F410
/* 03007C 8002F47C 00000000 */ nop
.L8002F480_ovl0:
/* 030080 8002F480 3C04800A */ lui $a0, %hi(D_80098A98) # $a0, 0x800a
/* 030084 8002F484 24848A98 */ addiu $a0, %lo(D_80098A98) # addiu $a0, $a0, -0x7568
/* 030088 8002F488 27A5001C */ addiu $a1, $sp, 0x1c
/* 03008C 8002F48C 0C00B540 */ jal osRecvMesg
/* 030090 8002F490 24060001 */ li $a2, 1
/* 030094 8002F494 8FBF0014 */ lw $ra, 0x14($sp)
/* 030098 8002F498 27BD0020 */ addiu $sp, $sp, 0x20
/* 03009C 8002F49C 03E00008 */ jr $ra
/* 0300A0 8002F4A0 00000000 */ nop
glabel __osSiRelAccess
/* 0300A4 8002F4A4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0300A8 8002F4A8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0300AC 8002F4AC 3C04800A */ lui $a0, %hi(D_80098A98) # $a0, 0x800a
/* 0300B0 8002F4B0 24848A98 */ addiu $a0, %lo(D_80098A98) # addiu $a0, $a0, -0x7568
/* 0300B4 8002F4B4 00002825 */ move $a1, $zero
/* 0300B8 8002F4B8 0C00B4BC */ jal osSendMesg
/* 0300BC 8002F4BC 00003025 */ move $a2, $zero
/* 0300C0 8002F4C0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0300C4 8002F4C4 27BD0018 */ addiu $sp, $sp, 0x18
/* 0300C8 8002F4C8 03E00008 */ jr $ra
/* 0300CC 8002F4CC 00000000 */ nop
glabel osContReset
/* 0300D0 8002F4D0 27BDFF90 */ addiu $sp, $sp, -0x70
/* 0300D4 8002F4D4 3C0E8004 */ lui $t6, %hi(D_8003FB80) # $t6, 0x8004
/* 0300D8 8002F4D8 8DCEFB80 */ lw $t6, %lo(D_8003FB80)($t6)
/* 0300DC 8002F4DC AFBF0024 */ sw $ra, 0x24($sp)
/* 0300E0 8002F4E0 AFA40070 */ sw $a0, 0x70($sp)
/* 0300E4 8002F4E4 AFA50074 */ sw $a1, 0x74($sp)
/* 0300E8 8002F4E8 AFA60078 */ sw $a2, 0x78($sp)
/* 0300EC 8002F4EC 11C00003 */ beqz $t6, .L8002F4FC_ovl0
/* 0300F0 8002F4F0 AFA00068 */ sw $zero, 0x68($sp)
/* 0300F4 8002F4F4 1000004E */ b .L8002F630_ovl0
/* 0300F8 8002F4F8 00001025 */ move $v0, $zero
.L8002F4FC_ovl0:
/* 0300FC 8002F4FC 240F0001 */ li $t7, 1
/* 030100 8002F500 3C018004 */ lui $at, %hi(D_8003FB80) # $at, 0x8004
/* 030104 8002F504 0C00D184 */ jal osGetTime
/* 030108 8002F508 AC2FFB80 */ sw $t7, %lo(D_8003FB80)($at)
/* 03010C 8002F50C AFA20060 */ sw $v0, 0x60($sp)
/* 030110 8002F510 8FB80060 */ lw $t8, 0x60($sp)
/* 030114 8002F514 AFA30064 */ sw $v1, 0x64($sp)
/* 030118 8002F518 8FB90064 */ lw $t9, 0x64($sp)
/* 03011C 8002F51C 17000020 */ bnez $t8, .L8002F5A0_ovl0
/* 030120 8002F520 3C010165 */ lui $at, (0x0165A0BC >> 16) # lui $at, 0x165
/* 030124 8002F524 3421A0BC */ ori $at, (0x0165A0BC & 0xFFFF) # ori $at, $at, 0xa0bc
/* 030128 8002F528 0321082B */ sltu $at, $t9, $at
/* 03012C 8002F52C 1020001C */ beqz $at, .L8002F5A0_ovl0
/* 030130 8002F530 00000000 */ nop
/* 030134 8002F534 27A40028 */ addiu $a0, $sp, 0x28
/* 030138 8002F538 27A5006C */ addiu $a1, $sp, 0x6c
/* 03013C 8002F53C 0C00CEB8 */ jal osCreateMesgQueue
/* 030140 8002F540 24060001 */ li $a2, 1
/* 030144 8002F544 8FA80060 */ lw $t0, 0x60($sp)
/* 030148 8002F548 8FA90064 */ lw $t1, 0x64($sp)
/* 03014C 8002F54C 3C0B0165 */ lui $t3, (0x0165A0BC >> 16) # lui $t3, 0x165
/* 030150 8002F550 356BA0BC */ ori $t3, (0x0165A0BC & 0xFFFF) # ori $t3, $t3, 0xa0bc
/* 030154 8002F554 240A0000 */ li $t2, 0
/* 030158 8002F558 240C0000 */ li $t4, 0
/* 03015C 8002F55C 240D0000 */ li $t5, 0
/* 030160 8002F560 27AE0028 */ addiu $t6, $sp, 0x28
/* 030164 8002F564 27AF006C */ addiu $t7, $sp, 0x6c
/* 030168 8002F568 01483023 */ subu $a2, $t2, $t0
/* 03016C 8002F56C 0169082B */ sltu $at, $t3, $t1
/* 030170 8002F570 00C13023 */ subu $a2, $a2, $at
/* 030174 8002F574 AFAF001C */ sw $t7, 0x1c($sp)
/* 030178 8002F578 AFAE0018 */ sw $t6, 0x18($sp)
/* 03017C 8002F57C AFAD0014 */ sw $t5, 0x14($sp)
/* 030180 8002F580 AFAC0010 */ sw $t4, 0x10($sp)
/* 030184 8002F584 27A40040 */ addiu $a0, $sp, 0x40
/* 030188 8002F588 0C00DE14 */ jal osSetTimer
/* 03018C 8002F58C 01693823 */ subu $a3, $t3, $t1
/* 030190 8002F590 27A40028 */ addiu $a0, $sp, 0x28
/* 030194 8002F594 27A5006C */ addiu $a1, $sp, 0x6c
/* 030198 8002F598 0C00B540 */ jal osRecvMesg
/* 03019C 8002F59C 24060001 */ li $a2, 1
.L8002F5A0_ovl0:
/* 0301A0 8002F5A0 24180004 */ li $t8, 4
/* 0301A4 8002F5A4 3C01800A */ lui $at, %hi(D_80098AF1) # $at, 0x800a
/* 0301A8 8002F5A8 A0388AF1 */ sb $t8, %lo(D_80098AF1)($at)
/* 0301AC 8002F5AC 0C00BDC4 */ jal __osPackRequestData
/* 0301B0 8002F5B0 00002025 */ move $a0, $zero
/* 0301B4 8002F5B4 3C05800A */ lui $a1, %hi(__osContPifRam) # $a1, 0x800a
/* 0301B8 8002F5B8 24A58AB0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, -0x7550
/* 0301BC 8002F5BC 0C00C138 */ jal __osSiRawStartDma
/* 0301C0 8002F5C0 24040001 */ li $a0, 1
/* 0301C4 8002F5C4 AFA20068 */ sw $v0, 0x68($sp)
/* 0301C8 8002F5C8 8FA40070 */ lw $a0, 0x70($sp)
/* 0301CC 8002F5CC 27A5006C */ addiu $a1, $sp, 0x6c
/* 0301D0 8002F5D0 0C00B540 */ jal osRecvMesg
/* 0301D4 8002F5D4 24060001 */ li $a2, 1
/* 0301D8 8002F5D8 3C05800A */ lui $a1, %hi(__osContPifRam) # $a1, 0x800a
/* 0301DC 8002F5DC 24A58AB0 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, -0x7550
/* 0301E0 8002F5E0 0C00C138 */ jal __osSiRawStartDma
/* 0301E4 8002F5E4 00002025 */ move $a0, $zero
/* 0301E8 8002F5E8 AFA20068 */ sw $v0, 0x68($sp)
/* 0301EC 8002F5EC 8FA40070 */ lw $a0, 0x70($sp)
/* 0301F0 8002F5F0 27A5006C */ addiu $a1, $sp, 0x6c
/* 0301F4 8002F5F4 0C00B540 */ jal osRecvMesg
/* 0301F8 8002F5F8 24060001 */ li $a2, 1
/* 0301FC 8002F5FC 8FA40074 */ lw $a0, 0x74($sp)
/* 030200 8002F600 0C00BD90 */ jal __osContGetInitData
/* 030204 8002F604 8FA50078 */ lw $a1, 0x78($sp)
/* 030208 8002F608 3C01800A */ lui $at, %hi(__osContLastCmd) # $at, 0x800a
/* 03020C 8002F60C 0C00BD04 */ jal func_8002F410
/* 030210 8002F610 A0208AF0 */ sb $zero, %lo(__osContLastCmd)($at)
/* 030214 8002F614 3C04800A */ lui $a0, %hi(__osEepromTimerQ) # $a0, 0x800a
/* 030218 8002F618 3C05800A */ lui $a1, %hi(__osEepromTimerMsg) # $a1, 0x800a
/* 03021C 8002F61C 24A58B30 */ addiu $a1, %lo(__osEepromTimerMsg) # addiu $a1, $a1, -0x74d0
/* 030220 8002F620 24848B18 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, -0x74e8
/* 030224 8002F624 0C00CEB8 */ jal osCreateMesgQueue
/* 030228 8002F628 24060001 */ li $a2, 1
/* 03022C 8002F62C 8FA20068 */ lw $v0, 0x68($sp)
.L8002F630_ovl0:
/* 030230 8002F630 8FBF0024 */ lw $ra, 0x24($sp)
/* 030234 8002F634 27BD0070 */ addiu $sp, $sp, 0x70
/* 030238 8002F638 03E00008 */ jr $ra
/* 03023C 8002F63C 00000000 */ nop
glabel __osContGetInitData
/* 030240 8002F640 3C0F800A */ lui $t7, %hi(D_80098AF1) # $t7, 0x800a
/* 030244 8002F644 91EF8AF1 */ lbu $t7, %lo(D_80098AF1)($t7)
/* 030248 8002F648 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 03024C 8002F64C 3C0E800A */ lui $t6, %hi(__osContPifRam) # $t6, 0x800a
/* 030250 8002F650 25CE8AB0 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, -0x7550
/* 030254 8002F654 A3A00007 */ sb $zero, 7($sp)
/* 030258 8002F658 AFAE0014 */ sw $t6, 0x14($sp)
/* 03025C 8002F65C 19E00028 */ blez $t7, .L8002F700_ovl0
/* 030260 8002F660 AFA00008 */ sw $zero, 8($sp)
.L8002F664_ovl0:
/* 030264 8002F664 8FB90014 */ lw $t9, 0x14($sp)
/* 030268 8002F668 27B8000C */ addiu $t8, $sp, 0xc
/* 03026C 8002F66C 8B210000 */ lwl $at, ($t9)
/* 030270 8002F670 9B210003 */ lwr $at, 3($t9)
/* 030274 8002F674 AF010000 */ sw $at, ($t8)
/* 030278 8002F678 8B290004 */ lwl $t1, 4($t9)
/* 03027C 8002F67C 9B290007 */ lwr $t1, 7($t9)
/* 030280 8002F680 AF090004 */ sw $t1, 4($t8)
/* 030284 8002F684 93AA000E */ lbu $t2, 0xe($sp)
/* 030288 8002F688 314B00C0 */ andi $t3, $t2, 0xc0
/* 03028C 8002F68C 000B6103 */ sra $t4, $t3, 4
/* 030290 8002F690 A0AC0003 */ sb $t4, 3($a1)
/* 030294 8002F694 90AD0003 */ lbu $t5, 3($a1)
/* 030298 8002F698 15A0000E */ bnez $t5, .L8002F6D4_ovl0
/* 03029C 8002F69C 00000000 */ nop
/* 0302A0 8002F6A0 93AE0011 */ lbu $t6, 0x11($sp)
/* 0302A4 8002F6A4 93A80010 */ lbu $t0, 0x10($sp)
/* 0302A8 8002F6A8 240B0001 */ li $t3, 1
/* 0302AC 8002F6AC 000E7A00 */ sll $t7, $t6, 8
/* 0302B0 8002F6B0 01E8C025 */ or $t8, $t7, $t0
/* 0302B4 8002F6B4 A4B80000 */ sh $t8, ($a1)
/* 0302B8 8002F6B8 93B90012 */ lbu $t9, 0x12($sp)
/* 0302BC 8002F6BC A0B90002 */ sb $t9, 2($a1)
/* 0302C0 8002F6C0 8FAA0008 */ lw $t2, 8($sp)
/* 0302C4 8002F6C4 93A90007 */ lbu $t1, 7($sp)
/* 0302C8 8002F6C8 014B6004 */ sllv $t4, $t3, $t2
/* 0302CC 8002F6CC 012C6825 */ or $t5, $t1, $t4
/* 0302D0 8002F6D0 A3AD0007 */ sb $t5, 7($sp)
.L8002F6D4_ovl0:
/* 0302D4 8002F6D4 8FAE0008 */ lw $t6, 8($sp)
/* 0302D8 8002F6D8 3C19800A */ lui $t9, %hi(D_80098AF1) # $t9, 0x800a
/* 0302DC 8002F6DC 93398AF1 */ lbu $t9, %lo(D_80098AF1)($t9)
/* 0302E0 8002F6E0 8FA80014 */ lw $t0, 0x14($sp)
/* 0302E4 8002F6E4 25CF0001 */ addiu $t7, $t6, 1
/* 0302E8 8002F6E8 01F9082A */ slt $at, $t7, $t9
/* 0302EC 8002F6EC 25180008 */ addiu $t8, $t0, 8
/* 0302F0 8002F6F0 AFB80014 */ sw $t8, 0x14($sp)
/* 0302F4 8002F6F4 AFAF0008 */ sw $t7, 8($sp)
/* 0302F8 8002F6F8 1420FFDA */ bnez $at, .L8002F664_ovl0
/* 0302FC 8002F6FC 24A50004 */ addiu $a1, $a1, 4
.L8002F700_ovl0:
/* 030300 8002F700 93AB0007 */ lbu $t3, 7($sp)
/* 030304 8002F704 27BD0018 */ addiu $sp, $sp, 0x18
/* 030308 8002F708 03E00008 */ jr $ra
/* 03030C 8002F70C A08B0000 */ sb $t3, ($a0)
glabel __osPackRequestData
/* 030310 8002F710 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 030314 8002F714 308400FF */ andi $a0, $a0, 0xff
/* 030318 8002F718 AFA00000 */ sw $zero, ($sp)
.L8002F71C_ovl0:
/* 03031C 8002F71C 8FAE0000 */ lw $t6, ($sp)
/* 030320 8002F720 8FB80000 */ lw $t8, ($sp)
/* 030324 8002F724 3C01800A */ lui $at, 0x800a
/* 030328 8002F728 000E7880 */ sll $t7, $t6, 2
/* 03032C 8002F72C 002F0821 */ addu $at, $at, $t7
/* 030330 8002F730 AC208AB0 */ sw $zero, -0x7550($at)
/* 030334 8002F734 27190001 */ addiu $t9, $t8, 1
/* 030338 8002F738 2B21000F */ slti $at, $t9, 0xf
/* 03033C 8002F73C 1420FFF7 */ bnez $at, .L8002F71C_ovl0
/* 030340 8002F740 AFB90000 */ sw $t9, ($sp)
/* 030344 8002F744 3C19800A */ lui $t9, %hi(D_80098AF1) # $t9, 0x800a
/* 030348 8002F748 93398AF1 */ lbu $t9, %lo(D_80098AF1)($t9)
/* 03034C 8002F74C 3C09800A */ lui $t1, %hi(__osContPifRam) # $t1, 0x800a
/* 030350 8002F750 24080001 */ li $t0, 1
/* 030354 8002F754 3C01800A */ lui $at, %hi(D_80098AEC) # $at, 0x800a
/* 030358 8002F758 25298AB0 */ addiu $t1, %lo(__osContPifRam) # addiu $t1, $t1, -0x7550
/* 03035C 8002F75C 240A00FF */ li $t2, 255
/* 030360 8002F760 240B0001 */ li $t3, 1
/* 030364 8002F764 240C0003 */ li $t4, 3
/* 030368 8002F768 240D00FF */ li $t5, 255
/* 03036C 8002F76C 240E00FF */ li $t6, 255
/* 030370 8002F770 240F00FF */ li $t7, 255
/* 030374 8002F774 241800FF */ li $t8, 255
/* 030378 8002F778 AC288AEC */ sw $t0, %lo(D_80098AEC)($at)
/* 03037C 8002F77C AFA9000C */ sw $t1, 0xc($sp)
/* 030380 8002F780 A3AA0004 */ sb $t2, 4($sp)
/* 030384 8002F784 A3AB0005 */ sb $t3, 5($sp)
/* 030388 8002F788 A3AC0006 */ sb $t4, 6($sp)
/* 03038C 8002F78C A3A40007 */ sb $a0, 7($sp)
/* 030390 8002F790 A3AD0008 */ sb $t5, 8($sp)
/* 030394 8002F794 A3AE0009 */ sb $t6, 9($sp)
/* 030398 8002F798 A3AF000A */ sb $t7, 0xa($sp)
/* 03039C 8002F79C A3B8000B */ sb $t8, 0xb($sp)
/* 0303A0 8002F7A0 1B200013 */ blez $t9, .L8002F7F0_ovl0
/* 0303A4 8002F7A4 AFA00000 */ sw $zero, ($sp)
.L8002F7A8_ovl0:
/* 0303A8 8002F7A8 27A90004 */ addiu $t1, $sp, 4
/* 0303AC 8002F7AC 8D210000 */ lw $at, ($t1)
/* 0303B0 8002F7B0 8FA8000C */ lw $t0, 0xc($sp)
/* 0303B4 8002F7B4 3C18800A */ lui $t8, %hi(D_80098AF1) # $t8, 0x800a
/* 0303B8 8002F7B8 A9010000 */ swl $at, ($t0)
/* 0303BC 8002F7BC B9010003 */ swr $at, 3($t0)
/* 0303C0 8002F7C0 8D2B0004 */ lw $t3, 4($t1)
/* 0303C4 8002F7C4 A90B0004 */ swl $t3, 4($t0)
/* 0303C8 8002F7C8 B90B0007 */ swr $t3, 7($t0)
/* 0303CC 8002F7CC 8FAE0000 */ lw $t6, ($sp)
/* 0303D0 8002F7D0 93188AF1 */ lbu $t8, %lo(D_80098AF1)($t8)
/* 0303D4 8002F7D4 8FAC000C */ lw $t4, 0xc($sp)
/* 0303D8 8002F7D8 25CF0001 */ addiu $t7, $t6, 1
/* 0303DC 8002F7DC 01F8082A */ slt $at, $t7, $t8
/* 0303E0 8002F7E0 258D0008 */ addiu $t5, $t4, 8
/* 0303E4 8002F7E4 AFAF0000 */ sw $t7, ($sp)
/* 0303E8 8002F7E8 1420FFEF */ bnez $at, .L8002F7A8_ovl0
/* 0303EC 8002F7EC AFAD000C */ sw $t5, 0xc($sp)
.L8002F7F0_ovl0:
/* 0303F0 8002F7F0 8FAA000C */ lw $t2, 0xc($sp)
/* 0303F4 8002F7F4 241900FE */ li $t9, 254
/* 0303F8 8002F7F8 27BD0010 */ addiu $sp, $sp, 0x10
/* 0303FC 8002F7FC 03E00008 */ jr $ra
/* 030400 8002F800 A1590000 */ sb $t9, ($t2)
glabel func_8002F804
/* 030404 8002F804 00000000 */ nop
/* 030408 8002F808 00000000 */ nop
/* 03040C 8002F80C 00000000 */ nop
/* 030410 8002F810 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 030414 8002F814 AFBF001C */ sw $ra, 0x1c($sp)
/* 030418 8002F818 AFB10018 */ sw $s1, 0x18($sp)
@ -614,16 +64,16 @@ glabel func_8002F804
/* 0304D4 8002F8D4 93A4004F */ lbu $a0, 0x4f($sp)
/* 0304D8 8002F8D8 0C00BE62 */ jal func_8002F988
/* 0304DC 8002F8DC 8FA50050 */ lw $a1, 0x50($sp)
/* 0304E0 8002F8E0 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 0304E4 8002F8E4 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 0304E0 8002F8E0 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 0304E4 8002F8E4 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 0304E8 8002F8E8 0C00C138 */ jal __osSiRawStartDma
/* 0304EC 8002F8EC 24040001 */ li $a0, 1
/* 0304F0 8002F8F0 02202025 */ move $a0, $s1
/* 0304F4 8002F8F4 00002825 */ move $a1, $zero
/* 0304F8 8002F8F8 0C00B540 */ jal osRecvMesg
/* 0304FC 8002F8FC 24060001 */ li $a2, 1
/* 030500 8002F900 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 030504 8002F904 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 030500 8002F900 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 030504 8002F904 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 030508 8002F908 0C00C138 */ jal __osSiRawStartDma
/* 03050C 8002F90C 00002025 */ move $a0, $zero
/* 030510 8002F910 240C0005 */ li $t4, 5
@ -660,8 +110,8 @@ glabel func_8002F804
glabel func_8002F988
/* 030588 8002F988 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 03058C 8002F98C 3C07800A */ lui $a3, %hi(D_8009B500) # $a3, 0x800a
/* 030590 8002F990 24E7B500 */ addiu $a3, %lo(D_8009B500) # addiu $a3, $a3, -0x4b00
/* 03058C 8002F98C 3C07800A */ lui $a3, %hi(__osEepPifRam) # $a3, 0x800a
/* 030590 8002F990 24E7B500 */ addiu $a3, %lo(__osEepPifRam) # addiu $a3, $a3, -0x4b00
/* 030594 8002F994 240F0001 */ li $t7, 1
/* 030598 8002F998 2418000A */ li $t8, 10
/* 03059C 8002F99C 24190001 */ li $t9, 1
@ -681,10 +131,10 @@ glabel func_8002F988
/* 0305D0 8002F9D0 24A50001 */ addiu $a1, $a1, 1
/* 0305D4 8002F9D4 1420FFFB */ bnez $at, .L8002F9C4_ovl0
/* 0305D8 8002F9D8 A0C90003 */ sb $t1, 3($a2)
/* 0305DC 8002F9DC 3C01800A */ lui $at, %hi(D_8009B500) # $at, 0x800a
/* 0305DC 8002F9DC 3C01800A */ lui $at, %hi(__osEepPifRam) # $at, 0x800a
/* 0305E0 8002F9E0 3C02800A */ lui $v0, %hi(D_8009B501) # $v0, 0x800a
/* 0305E4 8002F9E4 2442B501 */ addiu $v0, %lo(D_8009B501) # addiu $v0, $v0, -0x4aff
/* 0305E8 8002F9E8 A020B500 */ sb $zero, %lo(D_8009B500)($at)
/* 0305E8 8002F9E8 A020B500 */ sb $zero, %lo(__osEepPifRam)($at)
/* 0305EC 8002F9EC A0400002 */ sb $zero, 2($v0)
/* 0305F0 8002F9F0 A0400001 */ sb $zero, 1($v0)
/* 0305F4 8002F9F4 A0400000 */ sb $zero, ($v0)
@ -706,20 +156,20 @@ glabel func_8002F988
glabel __osEepStatus
/* 030634 __osEepStatus 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 030638 8002FA38 3C02800A */ lui $v0, %hi(D_8009B500) # $v0, 0x800a
/* 030638 8002FA38 3C02800A */ lui $v0, %hi(__osEepPifRam) # $v0, 0x800a
/* 03063C 8002FA3C 3C03800A */ lui $v1, %hi(D_8009B540) # $v1, 0x800a
/* 030640 8002FA40 AFBF0014 */ sw $ra, 0x14($sp)
/* 030644 8002FA44 AFA40030 */ sw $a0, 0x30($sp)
/* 030648 8002FA48 AFA50034 */ sw $a1, 0x34($sp)
/* 03064C 8002FA4C 2463B540 */ addiu $v1, %lo(D_8009B540) # addiu $v1, $v1, -0x4ac0
/* 030650 8002FA50 2442B500 */ addiu $v0, %lo(D_8009B500) # addiu $v0, $v0, -0x4b00
/* 030650 8002FA50 2442B500 */ addiu $v0, %lo(__osEepPifRam) # addiu $v0, $v0, -0x4b00
.L8002FA54_ovl0:
/* 030654 8002FA54 24420004 */ addiu $v0, $v0, 4
/* 030658 8002FA58 0043082B */ sltu $at, $v0, $v1
/* 03065C 8002FA5C 1420FFFD */ bnez $at, .L8002FA54_ovl0
/* 030660 8002FA60 AC40FFFC */ sw $zero, -4($v0)
/* 030664 8002FA64 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 030668 8002FA68 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 030664 8002FA64 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 030668 8002FA68 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 03066C 8002FA6C 240E0001 */ li $t6, 1
/* 030670 8002FA70 ACAE003C */ sw $t6, 0x3c($a1)
/* 030674 8002FA74 00A01025 */ move $v0, $a1
@ -763,9 +213,9 @@ glabel __osEepStatus
/* 030708 8002FB08 24060001 */ li $a2, 1
/* 03070C 8002FB0C 241900FE */ li $t9, 254
/* 030710 8002FB10 3C01800A */ lui $at, %hi(__osContLastCmd) # $at, 0x800a
/* 030714 8002FB14 3C05800A */ lui $a1, %hi(D_8009B500) # $a1, 0x800a
/* 030714 8002FB14 3C05800A */ lui $a1, %hi(__osEepPifRam) # $a1, 0x800a
/* 030718 8002FB18 A0398AF0 */ sb $t9, %lo(__osContLastCmd)($at)
/* 03071C 8002FB1C 24A5B500 */ addiu $a1, %lo(D_8009B500) # addiu $a1, $a1, -0x4b00
/* 03071C 8002FB1C 24A5B500 */ addiu $a1, %lo(__osEepPifRam) # addiu $a1, $a1, -0x4b00
/* 030720 8002FB20 0C00C138 */ jal __osSiRawStartDma
/* 030724 8002FB24 00002025 */ move $a0, $zero
/* 030728 8002FB28 8FA40030 */ lw $a0, 0x30($sp)
@ -777,11 +227,11 @@ glabel __osEepStatus
/* 030740 8002FB40 3C02800A */ lui $v0, %hi(D_8009B501) # $v0, 0x800a
/* 030744 8002FB44 2442B501 */ addiu $v0, %lo(D_8009B501) # addiu $v0, $v0, -0x4aff
/* 030748 8002FB48 10600003 */ beqz $v1, .L8002FB58_ovl0
/* 03074C 8002FB4C 3C01800A */ lui $at, %hi(D_8009B500) # $at, 0x800a
/* 03074C 8002FB4C 3C01800A */ lui $at, %hi(__osEepPifRam) # $at, 0x800a
/* 030750 8002FB50 1000001E */ b .L8002FBCC_ovl0
/* 030754 8002FB54 00601025 */ move $v0, $v1
.L8002FB58_ovl0:
/* 030758 8002FB58 A020B500 */ sb $zero, %lo(D_8009B500)($at)
/* 030758 8002FB58 A020B500 */ sb $zero, %lo(__osEepPifRam)($at)
/* 03075C 8002FB5C 88410003 */ lwl $at, 3($v0)
/* 030760 8002FB60 98410006 */ lwr $at, 6($v0)
/* 030764 8002FB64 A0400002 */ sb $zero, 2($v0)
@ -940,8 +390,8 @@ glabel func_8002FD24
/* 0309B0 8002FDB0 00000000 */ nop
glabel func_8002FDB4
/* 0309B4 8002FDB4 3C05800A */ lui $a1, %hi(D_80098AF1) # $a1, 0x800a
/* 0309B8 8002FDB8 24A58AF1 */ addiu $a1, %lo(D_80098AF1) # addiu $a1, $a1, -0x750f
/* 0309B4 8002FDB4 3C05800A */ lui $a1, %hi(__osMaxControllers) # $a1, 0x800a
/* 0309B8 8002FDB8 24A58AF1 */ addiu $a1, %lo(__osMaxControllers) # addiu $a1, $a1, -0x750f
/* 0309BC 8002FDBC 90AE0000 */ lbu $t6, ($a1)
/* 0309C0 8002FDC0 3C02800A */ lui $v0, %hi(__osContPifRam) # $v0, 0x800a
/* 0309C4 8002FDC4 27BDFFF0 */ addiu $sp, $sp, -0x10
@ -993,8 +443,8 @@ glabel func_8002FE40
/* 030A64 8002FE64 0083082B */ sltu $at, $a0, $v1
/* 030A68 8002FE68 1420FFFD */ bnez $at, .L8002FE60_ovl0
/* 030A6C 8002FE6C AC80FFFC */ sw $zero, -4($a0)
/* 030A70 8002FE70 3C04800A */ lui $a0, %hi(D_80098AF1) # $a0, 0x800a
/* 030A74 8002FE74 24848AF1 */ addiu $a0, %lo(D_80098AF1) # addiu $a0, $a0, -0x750f
/* 030A70 8002FE70 3C04800A */ lui $a0, %hi(__osMaxControllers) # $a0, 0x800a
/* 030A74 8002FE74 24848AF1 */ addiu $a0, %lo(__osMaxControllers) # addiu $a0, $a0, -0x750f
/* 030A78 8002FE78 908C0000 */ lbu $t4, ($a0)
/* 030A7C 8002FE7C 240E0001 */ li $t6, 1
/* 030A80 8002FE80 240F00FF */ li $t7, 255

View File

@ -1191,8 +1191,8 @@ glabel func_80036AF0
/* 037764 80036B64 27A40037 */ addiu $a0, $sp, 0x37
/* 037768 80036B68 0C00DB58 */ jal func_80036D60
/* 03776C 80036B6C 27A50024 */ addiu $a1, $sp, 0x24
/* 037770 80036B70 3C0F800A */ lui $t7, %hi(D_80098AF1) # $t7, 0x800a
/* 037774 80036B74 91EF8AF1 */ lbu $t7, %lo(D_80098AF1)($t7)
/* 037770 80036B70 3C0F800A */ lui $t7, %hi(__osMaxControllers) # $t7, 0x800a
/* 037774 80036B74 91EF8AF1 */ lbu $t7, %lo(__osMaxControllers)($t7)
/* 037778 80036B78 AFA00020 */ sw $zero, 0x20($sp)
/* 03777C 80036B7C 19E00014 */ blez $t7, .L80036BD0_ovl0
/* 037780 80036B80 00000000 */ nop
@ -1210,16 +1210,16 @@ glabel func_80036AF0
/* 0377AC 80036BAC AFAB0018 */ sw $t3, 0x18($sp)
.L80036BB0_ovl0:
/* 0377B0 80036BB0 8FAC0020 */ lw $t4, 0x20($sp)
/* 0377B4 80036BB4 3C0E800A */ lui $t6, %hi(D_80098AF1) # $t6, 0x800a
/* 0377B8 80036BB8 91CE8AF1 */ lbu $t6, %lo(D_80098AF1)($t6)
/* 0377B4 80036BB4 3C0E800A */ lui $t6, %hi(__osMaxControllers) # $t6, 0x800a
/* 0377B8 80036BB8 91CE8AF1 */ lbu $t6, %lo(__osMaxControllers)($t6)
/* 0377BC 80036BBC 258D0001 */ addiu $t5, $t4, 1
/* 0377C0 80036BC0 AFAD0020 */ sw $t5, 0x20($sp)
/* 0377C4 80036BC4 01AE082A */ slt $at, $t5, $t6
/* 0377C8 80036BC8 1420FFEE */ bnez $at, .L80036B84_ovl0
/* 0377CC 80036BCC 00000000 */ nop
.L80036BD0_ovl0:
/* 0377D0 80036BD0 3C0F800A */ lui $t7, %hi(D_80098AF1) # $t7, 0x800a
/* 0377D4 80036BD4 91EF8AF1 */ lbu $t7, %lo(D_80098AF1)($t7)
/* 0377D0 80036BD0 3C0F800A */ lui $t7, %hi(__osMaxControllers) # $t7, 0x800a
/* 0377D4 80036BD4 91EF8AF1 */ lbu $t7, %lo(__osMaxControllers)($t7)
/* 0377D8 80036BD8 8FB80020 */ lw $t8, 0x20($sp)
/* 0377DC 80036BDC 15F80002 */ bne $t7, $t8, .L80036BE8_ovl0
/* 0377E0 80036BE0 00000000 */ nop
@ -1228,8 +1228,8 @@ glabel func_80036AF0
/* 0377E8 80036BE8 8FB90018 */ lw $t9, 0x18($sp)
/* 0377EC 80036BEC 1F20FFC9 */ bgtz $t9, .L80036B14_ovl0
/* 0377F0 80036BF0 00000000 */ nop
/* 0377F4 80036BF4 3C08800A */ lui $t0, %hi(D_80098AF1) # $t0, 0x800a
/* 0377F8 80036BF8 91088AF1 */ lbu $t0, %lo(D_80098AF1)($t0)
/* 0377F4 80036BF4 3C08800A */ lui $t0, %hi(__osMaxControllers) # $t0, 0x800a
/* 0377F8 80036BF8 91088AF1 */ lbu $t0, %lo(__osMaxControllers)($t0)
/* 0377FC 80036BFC AFA00020 */ sw $zero, 0x20($sp)
/* 037800 80036C00 19000019 */ blez $t0, .L80036C68_ovl0
/* 037804 80036C04 00000000 */ nop
@ -1252,8 +1252,8 @@ glabel func_80036AF0
/* 037844 80036C44 A3AA001F */ sb $t2, 0x1f($sp)
.L80036C48_ovl0:
/* 037848 80036C48 8FAB0020 */ lw $t3, 0x20($sp)
/* 03784C 80036C4C 3C0C800A */ lui $t4, %hi(D_80098AF1) # $t4, 0x800a
/* 037850 80036C50 918C8AF1 */ lbu $t4, %lo(D_80098AF1)($t4)
/* 03784C 80036C4C 3C0C800A */ lui $t4, %hi(__osMaxControllers) # $t4, 0x800a
/* 037850 80036C50 918C8AF1 */ lbu $t4, %lo(__osMaxControllers)($t4)
/* 037854 80036C54 256D0001 */ addiu $t5, $t3, 1
/* 037858 80036C58 AFAD0020 */ sw $t5, 0x20($sp)
/* 03785C 80036C5C 01AC082A */ slt $at, $t5, $t4
@ -1273,8 +1273,8 @@ glabel func_80036AF0
glabel func_80036C90
/* 037890 80036C90 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 037894 80036C94 3C0D800A */ lui $t5, %hi(D_80098AF1) # $t5, 0x800a
/* 037898 80036C98 91AD8AF1 */ lbu $t5, %lo(D_80098AF1)($t5)
/* 037894 80036C94 3C0D800A */ lui $t5, %hi(__osMaxControllers) # $t5, 0x800a
/* 037898 80036C98 91AD8AF1 */ lbu $t5, %lo(__osMaxControllers)($t5)
/* 03789C 80036C9C 308400FF */ andi $a0, $a0, 0xff
/* 0378A0 80036CA0 3C01800A */ lui $at, %hi(__osContLastCmd) # $at, 0x800a
/* 0378A4 80036CA4 3C0E800A */ lui $t6, %hi(D_8009A2A0) # $t6, 0x800a
@ -1305,14 +1305,14 @@ glabel func_80036C90
/* 037904 80036D04 27AF0004 */ addiu $t7, $sp, 4
/* 037908 80036D08 8DE10000 */ lw $at, ($t7)
/* 03790C 80036D0C 8FAE000C */ lw $t6, 0xc($sp)
/* 037910 80036D10 3C0C800A */ lui $t4, %hi(D_80098AF1) # $t4, 0x800a
/* 037910 80036D10 3C0C800A */ lui $t4, %hi(__osMaxControllers) # $t4, 0x800a
/* 037914 80036D14 A9C10000 */ swl $at, ($t6)
/* 037918 80036D18 B9C10003 */ swr $at, 3($t6)
/* 03791C 80036D1C 8DF90004 */ lw $t9, 4($t7)
/* 037920 80036D20 A9D90004 */ swl $t9, 4($t6)
/* 037924 80036D24 B9D90007 */ swr $t9, 7($t6)
/* 037928 80036D28 8FAA0000 */ lw $t2, ($sp)
/* 03792C 80036D2C 918C8AF1 */ lbu $t4, %lo(D_80098AF1)($t4)
/* 03792C 80036D2C 918C8AF1 */ lbu $t4, %lo(__osMaxControllers)($t4)
/* 037930 80036D30 8FA8000C */ lw $t0, 0xc($sp)
/* 037934 80036D34 254B0001 */ addiu $t3, $t2, 1
/* 037938 80036D38 016C082A */ slt $at, $t3, $t4
@ -1328,8 +1328,8 @@ glabel func_80036C90
/* 03795C 80036D5C A30D0000 */ sb $t5, ($t8)
glabel func_80036D60
/* 037960 80036D60 3C0F800A */ lui $t7, %hi(D_80098AF1) # $t7, 0x800a
/* 037964 80036D64 91EF8AF1 */ lbu $t7, %lo(D_80098AF1)($t7)
/* 037960 80036D60 3C0F800A */ lui $t7, %hi(__osMaxControllers) # $t7, 0x800a
/* 037964 80036D64 91EF8AF1 */ lbu $t7, %lo(__osMaxControllers)($t7)
/* 037968 80036D68 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 03796C 80036D6C 3C0E800A */ lui $t6, %hi(D_8009A2A0) # $t6, 0x800a
/* 037970 80036D70 25CEA2A0 */ addiu $t6, %lo(D_8009A2A0) # addiu $t6, $t6, -0x5d60
@ -1368,8 +1368,8 @@ glabel func_80036D60
/* 0379F0 80036DF0 A3AD0007 */ sb $t5, 7($sp)
.L80036DF4_ovl0:
/* 0379F4 80036DF4 8FAE0008 */ lw $t6, 8($sp)
/* 0379F8 80036DF8 3C19800A */ lui $t9, %hi(D_80098AF1) # $t9, 0x800a
/* 0379FC 80036DFC 93398AF1 */ lbu $t9, %lo(D_80098AF1)($t9)
/* 0379F8 80036DF8 3C19800A */ lui $t9, %hi(__osMaxControllers) # $t9, 0x800a
/* 0379FC 80036DFC 93398AF1 */ lbu $t9, %lo(__osMaxControllers)($t9)
/* 037A00 80036E00 8FA80014 */ lw $t0, 0x14($sp)
/* 037A04 80036E04 25CF0001 */ addiu $t7, $t6, 1
/* 037A08 80036E08 01F9082A */ slt $at, $t7, $t9

277
asm/ovl0/ovl0_beforeSiacs.s Normal file
View File

@ -0,0 +1,277 @@
.set noat
.set noreorder
.set gp=64
.include "macros.inc"
.section .text, "ax"
glabel func_8002F040
/* 02FC40 8002F040 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 02FC44 8002F044 AFBF001C */ sw $ra, 0x1c($sp)
/* 02FC48 8002F048 AFB00018 */ sw $s0, 0x18($sp)
/* 02FC4C 8002F04C 8C8E0008 */ lw $t6, 8($a0)
/* 02FC50 8002F050 8C990000 */ lw $t9, ($a0)
/* 02FC54 8002F054 3C18800A */ lui $t8, %hi(D_80098990) # $t8, 0x800a
/* 02FC58 8002F058 27188990 */ addiu $t8, %lo(D_80098990) # addiu $t8, $t8, -0x7670
/* 02FC5C 8002F05C 000E7980 */ sll $t7, $t6, 6
/* 02FC60 8002F060 33290008 */ andi $t1, $t9, 8
/* 02FC64 8002F064 00808025 */ move $s0, $a0
/* 02FC68 8002F068 00A03825 */ move $a3, $a1
/* 02FC6C 8002F06C 15200003 */ bnez $t1, .L8002F07C_ovl0
/* 02FC70 8002F070 01F84021 */ addu $t0, $t7, $t8
/* 02FC74 8002F074 10000047 */ b .L8002F194_ovl0
/* 02FC78 8002F078 24020005 */ li $v0, 5
.L8002F07C_ovl0:
/* 02FC7C 8002F07C AFA70034 */ sw $a3, 0x34($sp)
/* 02FC80 8002F080 0C00BD18 */ jal __osSiGetAccess
/* 02FC84 8002F084 AFA80024 */ sw $t0, 0x24($sp)
/* 02FC88 8002F088 8E0B0008 */ lw $t3, 8($s0)
/* 02FC8C 8002F08C 3C06800A */ lui $a2, %hi(D_80098990) # $a2, 0x800a
/* 02FC90 8002F090 24C68990 */ addiu $a2, %lo(D_80098990) # addiu $a2, $a2, -0x7670
/* 02FC94 8002F094 000B6180 */ sll $t4, $t3, 6
/* 02FC98 8002F098 00CC6821 */ addu $t5, $a2, $t4
/* 02FC9C 8002F09C 240A0001 */ li $t2, 1
/* 02FCA0 8002F0A0 ADAA003C */ sw $t2, 0x3c($t5)
/* 02FCA4 8002F0A4 8FA80024 */ lw $t0, 0x24($sp)
/* 02FCA8 8002F0A8 8E0E0008 */ lw $t6, 8($s0)
/* 02FCAC 8002F0AC 8FA70034 */ lw $a3, 0x34($sp)
/* 02FCB0 8002F0B0 00001825 */ move $v1, $zero
/* 02FCB4 8002F0B4 010E4021 */ addu $t0, $t0, $t6
/* 02FCB8 8002F0B8 01001025 */ move $v0, $t0
/* 02FCBC 8002F0BC 24040020 */ li $a0, 32
.L8002F0C0_ovl0:
/* 02FCC0 8002F0C0 24630004 */ addiu $v1, $v1, 4
/* 02FCC4 8002F0C4 A0470007 */ sb $a3, 7($v0)
/* 02FCC8 8002F0C8 A0470008 */ sb $a3, 8($v0)
/* 02FCCC 8002F0CC A0470009 */ sb $a3, 9($v0)
/* 02FCD0 8002F0D0 24420004 */ addiu $v0, $v0, 4
/* 02FCD4 8002F0D4 1464FFFA */ bne $v1, $a0, .L8002F0C0_ovl0
/* 02FCD8 8002F0D8 A0470002 */ sb $a3, 2($v0)
/* 02FCDC 8002F0DC 240F00FE */ li $t7, 254
/* 02FCE0 8002F0E0 3C01800A */ lui $at, %hi(__osContLastCmd) # $at, 0x800a
/* 02FCE4 8002F0E4 A02F8AF0 */ sb $t7, %lo(__osContLastCmd)($at)
/* 02FCE8 8002F0E8 8E180008 */ lw $t8, 8($s0)
/* 02FCEC 8002F0EC AFA80024 */ sw $t0, 0x24($sp)
/* 02FCF0 8002F0F0 AFA70034 */ sw $a3, 0x34($sp)
/* 02FCF4 8002F0F4 0018C980 */ sll $t9, $t8, 6
/* 02FCF8 8002F0F8 00D92821 */ addu $a1, $a2, $t9
/* 02FCFC 8002F0FC 0C00C138 */ jal __osSiRawStartDma
/* 02FD00 8002F100 24040001 */ li $a0, 1
/* 02FD04 8002F104 8E040004 */ lw $a0, 4($s0)
/* 02FD08 8002F108 00002825 */ move $a1, $zero
/* 02FD0C 8002F10C 0C00B540 */ jal osRecvMesg
/* 02FD10 8002F110 24060001 */ li $a2, 1
/* 02FD14 8002F114 8E090008 */ lw $t1, 8($s0)
/* 02FD18 8002F118 3C0C800A */ lui $t4, %hi(D_80098990) # $t4, 0x800a
/* 02FD1C 8002F11C 258C8990 */ addiu $t4, %lo(D_80098990) # addiu $t4, $t4, -0x7670
/* 02FD20 8002F120 00095980 */ sll $t3, $t1, 6
/* 02FD24 8002F124 016C2821 */ addu $a1, $t3, $t4
/* 02FD28 8002F128 0C00C138 */ jal __osSiRawStartDma
/* 02FD2C 8002F12C 00002025 */ move $a0, $zero
/* 02FD30 8002F130 8E040004 */ lw $a0, 4($s0)
/* 02FD34 8002F134 00002825 */ move $a1, $zero
/* 02FD38 8002F138 0C00B540 */ jal osRecvMesg
/* 02FD3C 8002F13C 24060001 */ li $a2, 1
/* 02FD40 8002F140 8FA80024 */ lw $t0, 0x24($sp)
/* 02FD44 8002F144 8FA70034 */ lw $a3, 0x34($sp)
/* 02FD48 8002F148 91100002 */ lbu $s0, 2($t0)
/* 02FD4C 8002F14C 320A00C0 */ andi $t2, $s0, 0xc0
/* 02FD50 8002F150 1540000D */ bnez $t2, .L8002F188_ovl0
/* 02FD54 8002F154 01408025 */ move $s0, $t2
/* 02FD58 8002F158 54E00007 */ bnezl $a3, .L8002F178_ovl0
/* 02FD5C 8002F15C 910E0026 */ lbu $t6, 0x26($t0)
/* 02FD60 8002F160 910D0026 */ lbu $t5, 0x26($t0)
/* 02FD64 8002F164 11A00008 */ beqz $t5, .L8002F188_ovl0
/* 02FD68 8002F168 00000000 */ nop
/* 02FD6C 8002F16C 10000006 */ b .L8002F188_ovl0
/* 02FD70 8002F170 24100004 */ li $s0, 4
/* 02FD74 8002F174 910E0026 */ lbu $t6, 0x26($t0)
.L8002F178_ovl0:
/* 02FD78 8002F178 240100EB */ li $at, 235
/* 02FD7C 8002F17C 11C10002 */ beq $t6, $at, .L8002F188_ovl0
/* 02FD80 8002F180 00000000 */ nop
/* 02FD84 8002F184 24100004 */ li $s0, 4
.L8002F188_ovl0:
/* 02FD88 8002F188 0C00BD29 */ jal __osSiRelAccess
/* 02FD8C 8002F18C 00000000 */ nop
/* 02FD90 8002F190 02001025 */ move $v0, $s0
.L8002F194_ovl0:
/* 02FD94 8002F194 8FBF001C */ lw $ra, 0x1c($sp)
/* 02FD98 8002F198 8FB00018 */ lw $s0, 0x18($sp)
/* 02FD9C 8002F19C 27BD0030 */ addiu $sp, $sp, 0x30
/* 02FDA0 8002F1A0 03E00008 */ jr $ra
/* 02FDA4 8002F1A4 00000000 */ nop
glabel func_8002F1A8
/* 02FDA8 8002F1A8 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 02FDAC 8002F1AC AFBF0014 */ sw $ra, 0x14($sp)
/* 02FDB0 8002F1B0 00803025 */ move $a2, $a0
/* 02FDB4 8002F1B4 240E00FF */ li $t6, 255
/* 02FDB8 8002F1B8 240F0023 */ li $t7, 35
/* 02FDBC 8002F1BC 24180001 */ li $t8, 1
/* 02FDC0 8002F1C0 24190003 */ li $t9, 3
/* 02FDC4 8002F1C4 240800C0 */ li $t0, 192
/* 02FDC8 8002F1C8 A3AE0024 */ sb $t6, 0x24($sp)
/* 02FDCC 8002F1CC A3AF0025 */ sb $t7, 0x25($sp)
/* 02FDD0 8002F1D0 A3B80026 */ sb $t8, 0x26($sp)
/* 02FDD4 8002F1D4 A3B90027 */ sb $t9, 0x27($sp)
/* 02FDD8 8002F1D8 A3A80028 */ sb $t0, 0x28($sp)
/* 02FDDC 8002F1DC AFA60050 */ sw $a2, 0x50($sp)
/* 02FDE0 8002F1E0 24040600 */ li $a0, 1536
/* 02FDE4 8002F1E4 0C00DD54 */ jal func_80037550
/* 02FDE8 8002F1E8 AFA5004C */ sw $a1, 0x4c($sp)
/* 02FDEC 8002F1EC 8FA60050 */ lw $a2, 0x50($sp)
/* 02FDF0 8002F1F0 3449C000 */ ori $t1, $v0, 0xc000
/* 02FDF4 8002F1F4 A3A90029 */ sb $t1, 0x29($sp)
/* 02FDF8 8002F1F8 10C00012 */ beqz $a2, .L8002F244_ovl0
/* 02FDFC 8002F1FC 8FA3004C */ lw $v1, 0x4c($sp)
/* 02FE00 8002F200 18C00010 */ blez $a2, .L8002F244_ovl0
/* 02FE04 8002F204 00001025 */ move $v0, $zero
/* 02FE08 8002F208 30C50003 */ andi $a1, $a2, 3
/* 02FE0C 8002F20C 10A00006 */ beqz $a1, .L8002F228_ovl0
/* 02FE10 8002F210 00A02025 */ move $a0, $a1
.L8002F214_ovl0:
/* 02FE14 8002F214 24420001 */ addiu $v0, $v0, 1
/* 02FE18 8002F218 A0600000 */ sb $zero, ($v1)
/* 02FE1C 8002F21C 1482FFFD */ bne $a0, $v0, .L8002F214_ovl0
/* 02FE20 8002F220 24630001 */ addiu $v1, $v1, 1
/* 02FE24 8002F224 10460007 */ beq $v0, $a2, .L8002F244_ovl0
.L8002F228_ovl0:
/* 02FE28 8002F228 24420004 */ addiu $v0, $v0, 4
/* 02FE2C 8002F22C A0600001 */ sb $zero, 1($v1)
/* 02FE30 8002F230 A0600002 */ sb $zero, 2($v1)
/* 02FE34 8002F234 A0600003 */ sb $zero, 3($v1)
/* 02FE38 8002F238 24630004 */ addiu $v1, $v1, 4
/* 02FE3C 8002F23C 1446FFFA */ bne $v0, $a2, .L8002F228_ovl0
/* 02FE40 8002F240 A060FFFC */ sb $zero, -4($v1)
.L8002F244_ovl0:
/* 02FE44 8002F244 27AA0024 */ addiu $t2, $sp, 0x24
/* 02FE48 8002F248 254C0024 */ addiu $t4, $t2, 0x24
/* 02FE4C 8002F24C 00606825 */ move $t5, $v1
.L8002F250_ovl0:
/* 02FE50 8002F250 8D410000 */ lw $at, ($t2)
/* 02FE54 8002F254 254A000C */ addiu $t2, $t2, 0xc
/* 02FE58 8002F258 25AD000C */ addiu $t5, $t5, 0xc
/* 02FE5C 8002F25C A9A1FFF4 */ swl $at, -0xc($t5)
/* 02FE60 8002F260 B9A1FFF7 */ swr $at, -9($t5)
/* 02FE64 8002F264 8D41FFF8 */ lw $at, -8($t2)
/* 02FE68 8002F268 A9A1FFF8 */ swl $at, -8($t5)
/* 02FE6C 8002F26C B9A1FFFB */ swr $at, -5($t5)
/* 02FE70 8002F270 8D41FFFC */ lw $at, -4($t2)
/* 02FE74 8002F274 A9A1FFFC */ swl $at, -4($t5)
/* 02FE78 8002F278 154CFFF5 */ bne $t2, $t4, .L8002F250_ovl0
/* 02FE7C 8002F27C B9A1FFFF */ swr $at, -1($t5)
/* 02FE80 8002F280 91410000 */ lbu $at, ($t2)
/* 02FE84 8002F284 240E00FE */ li $t6, 254
/* 02FE88 8002F288 24630027 */ addiu $v1, $v1, 0x27
/* 02FE8C 8002F28C A1A10000 */ sb $at, ($t5)
/* 02FE90 8002F290 914C0001 */ lbu $t4, 1($t2)
/* 02FE94 8002F294 A1AC0001 */ sb $t4, 1($t5)
/* 02FE98 8002F298 91410002 */ lbu $at, 2($t2)
/* 02FE9C 8002F29C A1A10002 */ sb $at, 2($t5)
/* 02FEA0 8002F2A0 A06E0000 */ sb $t6, ($v1)
/* 02FEA4 8002F2A4 8FBF0014 */ lw $ra, 0x14($sp)
/* 02FEA8 8002F2A8 27BD0050 */ addiu $sp, $sp, 0x50
/* 02FEAC 8002F2AC 03E00008 */ jr $ra
/* 02FEB0 8002F2B0 00000000 */ nop
glabel func_8002F2B4
/* 02FEB4 8002F2B4 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 02FEB8 8002F2B8 AFBF001C */ sw $ra, 0x1c($sp)
/* 02FEBC 8002F2BC AFB00018 */ sw $s0, 0x18($sp)
/* 02FEC0 8002F2C0 AFA40048 */ sw $a0, 0x48($sp)
/* 02FEC4 8002F2C4 AFA60050 */ sw $a2, 0x50($sp)
/* 02FEC8 8002F2C8 ACA40004 */ sw $a0, 4($a1)
/* 02FECC 8002F2CC 8FAF0050 */ lw $t7, 0x50($sp)
/* 02FED0 8002F2D0 241800FF */ li $t8, 255
/* 02FED4 8002F2D4 00A08025 */ move $s0, $a1
/* 02FED8 8002F2D8 A0B80065 */ sb $t8, 0x65($a1)
/* 02FEDC 8002F2DC ACA00000 */ sw $zero, ($a1)
/* 02FEE0 8002F2E0 00A02025 */ move $a0, $a1
/* 02FEE4 8002F2E4 ACAF0008 */ sw $t7, 8($a1)
/* 02FEE8 8002F2E8 0C00D728 */ jal func_80035CA0
/* 02FEEC 8002F2EC 240500FE */ li $a1, 254
/* 02FEF0 8002F2F0 24010002 */ li $at, 2
/* 02FEF4 8002F2F4 14410005 */ bne $v0, $at, .L8002F30C_ovl0
/* 02FEF8 8002F2F8 00401825 */ move $v1, $v0
/* 02FEFC 8002F2FC 02002025 */ move $a0, $s0
/* 02FF00 8002F300 0C00D728 */ jal func_80035CA0
/* 02FF04 8002F304 24050080 */ li $a1, 128
/* 02FF08 8002F308 00401825 */ move $v1, $v0
.L8002F30C_ovl0:
/* 02FF0C 8002F30C 10400003 */ beqz $v0, .L8002F31C_ovl0
/* 02FF10 8002F310 8FA40048 */ lw $a0, 0x48($sp)
/* 02FF14 8002F314 10000039 */ b .L8002F3FC_ovl0
/* 02FF18 8002F318 00601025 */ move $v0, $v1
.L8002F31C_ovl0:
/* 02FF1C 8002F31C 8FA50050 */ lw $a1, 0x50($sp)
/* 02FF20 8002F320 24060400 */ li $a2, 1024
/* 02FF24 8002F324 0C00DCC8 */ jal func_80037320
/* 02FF28 8002F328 27A70024 */ addiu $a3, $sp, 0x24
/* 02FF2C 8002F32C 24010002 */ li $at, 2
/* 02FF30 8002F330 14410002 */ bne $v0, $at, .L8002F33C_ovl0
/* 02FF34 8002F334 00401825 */ move $v1, $v0
/* 02FF38 8002F338 24030004 */ li $v1, 4
.L8002F33C_ovl0:
/* 02FF3C 8002F33C 10600003 */ beqz $v1, .L8002F34C_ovl0
/* 02FF40 8002F340 93B90043 */ lbu $t9, 0x43($sp)
/* 02FF44 8002F344 1000002D */ b .L8002F3FC_ovl0
/* 02FF48 8002F348 00601025 */ move $v0, $v1
.L8002F34C_ovl0:
/* 02FF4C 8002F34C 240100FE */ li $at, 254
/* 02FF50 8002F350 17210003 */ bne $t9, $at, .L8002F360_ovl0
/* 02FF54 8002F354 02002025 */ move $a0, $s0
/* 02FF58 8002F358 10000028 */ b .L8002F3FC_ovl0
/* 02FF5C 8002F35C 2402000B */ li $v0, 11
.L8002F360_ovl0:
/* 02FF60 8002F360 0C00D728 */ jal func_80035CA0
/* 02FF64 8002F364 24050080 */ li $a1, 128
/* 02FF68 8002F368 24010002 */ li $at, 2
/* 02FF6C 8002F36C 14410002 */ bne $v0, $at, .L8002F378_ovl0
/* 02FF70 8002F370 00401825 */ move $v1, $v0
/* 02FF74 8002F374 24030004 */ li $v1, 4
.L8002F378_ovl0:
/* 02FF78 8002F378 10600003 */ beqz $v1, .L8002F388_ovl0
/* 02FF7C 8002F37C 8FA40048 */ lw $a0, 0x48($sp)
/* 02FF80 8002F380 1000001E */ b .L8002F3FC_ovl0
/* 02FF84 8002F384 00601025 */ move $v0, $v1
.L8002F388_ovl0:
/* 02FF88 8002F388 8FA50050 */ lw $a1, 0x50($sp)
/* 02FF8C 8002F38C 24060400 */ li $a2, 1024
/* 02FF90 8002F390 0C00DCC8 */ jal func_80037320
/* 02FF94 8002F394 27A70024 */ addiu $a3, $sp, 0x24
/* 02FF98 8002F398 24010002 */ li $at, 2
/* 02FF9C 8002F39C 14410002 */ bne $v0, $at, .L8002F3A8_ovl0
/* 02FFA0 8002F3A0 00401825 */ move $v1, $v0
/* 02FFA4 8002F3A4 24030004 */ li $v1, 4
.L8002F3A8_ovl0:
/* 02FFA8 8002F3A8 10600003 */ beqz $v1, .L8002F3B8_ovl0
/* 02FFAC 8002F3AC 93A80043 */ lbu $t0, 0x43($sp)
/* 02FFB0 8002F3B0 10000012 */ b .L8002F3FC_ovl0
/* 02FFB4 8002F3B4 00601025 */ move $v0, $v1
.L8002F3B8_ovl0:
/* 02FFB8 8002F3B8 24010080 */ li $at, 128
/* 02FFBC 8002F3BC 51010004 */ beql $t0, $at, .L8002F3D0_ovl0
/* 02FFC0 8002F3C0 8E090000 */ lw $t1, ($s0)
/* 02FFC4 8002F3C4 1000000D */ b .L8002F3FC_ovl0
/* 02FFC8 8002F3C8 2402000B */ li $v0, 11
/* 02FFCC 8002F3CC 8E090000 */ lw $t1, ($s0)
.L8002F3D0_ovl0:
/* 02FFD0 8002F3D0 8FA40050 */ lw $a0, 0x50($sp)
/* 02FFD4 8002F3D4 3C0D800A */ lui $t5, %hi(D_80098990) # $t5, 0x800a
/* 02FFD8 8002F3D8 312A0008 */ andi $t2, $t1, 8
/* 02FFDC 8002F3DC 15400004 */ bnez $t2, .L8002F3F0_ovl0
/* 02FFE0 8002F3E0 00046180 */ sll $t4, $a0, 6
/* 02FFE4 8002F3E4 25AD8990 */ addiu $t5, %lo(D_80098990) # addiu $t5, $t5, -0x7670
/* 02FFE8 8002F3E8 0C00BC6A */ jal func_8002F1A8
/* 02FFEC 8002F3EC 018D2821 */ addu $a1, $t4, $t5
.L8002F3F0_ovl0:
/* 02FFF0 8002F3F0 240E0008 */ li $t6, 8
/* 02FFF4 8002F3F4 AE0E0000 */ sw $t6, ($s0)
/* 02FFF8 8002F3F8 00001025 */ move $v0, $zero
.L8002F3FC_ovl0:
/* 02FFFC 8002F3FC 8FBF001C */ lw $ra, 0x1c($sp)
/* 030000 8002F400 8FB00018 */ lw $s0, 0x18($sp)
/* 030004 8002F404 27BD0048 */ addiu $sp, $sp, 0x48
/* 030008 8002F408 03E00008 */ jr $ra
/* 03000C 8002F40C 00000000 */ nop

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +0,0 @@
#include <ultra64.h>
#include "types.h"
#include "segments.h"
#include "banks.h"
#include "src/ovl0/main.h"
u32 D_8003FDC0 = 0x2C000000;
u32 D_8003FDC4 = 0x0000311E;
u32 D_8003FDC8 = 0x00000140;
u32 D_8003FDCC = 0x04541E3A;
u32 D_8003FDD0 = 0x00000271;
u32 D_8003FDD4 = 0x00170C69;
u32 D_8003FDD8 = 0x0C6F0C6D;
u32 D_8003FDDC = 0x00800300;
u32 D_8003FDE0 = 0x00000200;
u32 D_8003FDE4 = 0x00000000;
u32 D_8003FDE8 = 0x00000280;
u32 D_8003FDEC = 0x00000400;
u32 D_8003FDF0 = 0x002F0269;
u32 D_8003FDF4 = 0x0009026B;
u32 D_8003FDF8 = 0x00000002;
u32 D_8003FDFC = 0x00000280;
u32 D_8003FE00 = 0x00000400;
u32 D_8003FE04 = 0x002F0269;
u32 D_8003FE08 = 0x0009026B;
u32 D_8003FE0C = 0x00000002;
u32 D_8003FE10 = 0xFFFFFFFF;
u32 D_8003FE14 = 0x00000000;
u32 D_8003FE18 = 0x00000000;
u32 D_8003FE1C = 0x00000000;
// // xlitob.c
// char ldigs[] = "0123456789abcdef";
// char udigs[] = "0123456789ABCDEF";
// u32 D_8003FE48 = 0x00000000;
// u32 D_8003FE4C = 0x00000000;

View File

@ -1,58 +0,0 @@
#include <ultra64.h>
#define FLT_MAX (3.40282346639e+38)
// u32 __osViDevMgr = 0x00000000;
// u32 D_8003FE54 = 0x00000000;
// u32 D_8003FE58 = 0x00000000;
// u32 D_8003FE5C = 0x00000000;
// u32 D_8003FE60 = 0x00000000;
// u32 D_8003FE64 = 0x00000000;
// u32 D_8003FE68 = 0x00000000;
// u32 D_8003FE6C = 0x00000000;
u32 hdwrBugFlag = 0x00000000;
u32 D_8003FE74 = 0x00000000;
u32 D_8003FE78 = 0x00000000;
u32 D_8003FE7C = 0x00000000;
u8 D_8003FE80[] = "thread stack overflow id = %d\n";
u8 D_8003FEA0[] = "rdp_output_buff over !! size = %d\n byte";
f32 D_8003FEC8 = 0.833f;
u32 D_8003FECC = 0x800019F8;
u32 D_8003FED0 = 0x80001A84;
u32 D_8003FED4 = 0x80001AA0;
u32 D_8003FED8 = 0x80001AD8;
u32 D_8003FEDC = 0x80001B24;
u32 D_8003FEE0 = 0x80001B6C;
u32 D_8003FEE4 = 0x80001CE4;
u32 D_8003FEE8 = 0x80001D04;
u32 D_8003FEEC = 0x80001D3C;
u32 D_8003FEF0 = 0x80001D74;
u32 D_8003FEF4 = 0x80001D9C;
u32 D_8003FEF8 = 0x00000000;
u32 D_8003FEFC = 0x00000000;

27
data/ovl0/ovl0_rodata.s Normal file
View File

@ -0,0 +1,27 @@
.include "macros.inc"
.section .rodata
glabel D_8003FEA0
.asciiz "rdp_output_buff over !! size = %d\n byte"
glabel D_8003FEC8
.float 0.833
glabel jtbl_8003FECC
.word L800019F8_ovl0
.word L80001A84_ovl0
.word L80001AA0_ovl0
.word L80001AD8_ovl0
.word L80001B24_ovl0
.word L80001B6C_ovl0
.word L80001CE4_ovl0
.word L80001D04_ovl0
.word L80001D3C_ovl0
.word L80001D74_ovl0
.word L80001D9C_ovl0
glabel D_8003FEF8
.word 0x00000000
glabel D_8003FEFC
.word 0x00000000

View File

@ -80,6 +80,9 @@ SECTIONS
BUILD_DIR/asm/ovl0/leo_interrupt.o(.text);
/*BUILD_DIR/libultra.a:leointerrupt.o(.text);*/
BUILD_DIR/asm/ovl0/ovl0_beforeSiacs.o(.text);
BUILD_DIR/libultra.a:siacs.o(.text);
BUILD_DIR/libultra.a:controller.o(.text);
BUILD_DIR/asm/ovl0/ovl0_afterException.o(.text);
BUILD_DIR/libultra.a:devmgr.o(.text);
@ -184,16 +187,31 @@ SECTIONS
BEGIN_SEG(ovl0Data2, gspS2DEX2_fifoTextEnd) {
/* BUILD_DIR/data/kirby.039DF0.0.1.o(.data); */
BUILD_DIR/src/ovl0/main.o(.data);
BUILD_DIR/src/ovl0/ovl0_2_5.o(.data);
BUILD_DIR/src/ovl0/rdp_reset.o(.data);
BUILD_DIR/src/ovl0/ovl0_2_5_2.o(.data);
BUILD_DIR/src/ovl0/ovl0_4.o(.data);
BUILD_DIR/src/ovl0/ovl0_6.o(.data);
BUILD_DIR/src/ovl0/ovl0_7.o(.data);
BUILD_DIR/src/ovl0/ovl0_8.o(.data);
BUILD_DIR/src/ovl0/ovl0_9.o(.data);
BUILD_DIR/asm/ovl0/exception.o(.data);
BUILD_DIR/libultra.a:thread.o(.data);
BUILD_DIR/libultra.a:siacs.o(.data);
/* siacs.c */
BUILD_DIR/data/kirby.039DF0.0.5.o(.data);
BUILD_DIR/libultra.a:timerintr.o(.data);
BUILD_DIR/libultra.a:vimodentsclan1.o(.data);
BUILD_DIR/libultra.a:vimodempallan1.o(.data);
BUILD_DIR/libultra.a:vi.o(.data);
BUILD_DIR/libultra.a:vimodepallan1.o(.data);
BUILD_DIR/data/kirby.039DF0.1.5.o(.data);
BUILD_DIR/src/ovl0/ovl0.o(.data);
BUILD_DIR/libultra.a:xlitob.o(.data);
BUILD_DIR/libultra.a:vimgr.o(.data);
BUILD_DIR/data/kirby.039DF0.2.o(.data);
BUILD_DIR/libultra.a:aisetnextbuf.o(.data);
BUILD_DIR/src/ovl0/main.o(.rodata);
BUILD_DIR/data/ovl0/ovl0_rodata.o(.rodata);
BUILD_DIR/src/ovl0/ovl0_1.o(.rodata);
BUILD_DIR/src/ovl0/ovl0_2.o(.rodata);
BUILD_DIR/data/kirby.039DF0.2.001.o(.rodata);

@ -1 +1 @@
Subproject commit c847ea657151ff3a55a717244d936a2060b738c2
Subproject commit 26db10cd0de574ff38726643c703a07839276ccf

View File

@ -3,9 +3,21 @@
#include "types.h"
#include "main.h"
#include "segments.h"
extern struct Overlay mainSegOverlay; //TODO: define and put into .data
extern u32 D_8003DC94;
struct Overlay mainSegOverlay = {
_ovl1SegmentRomStart,
_ovl1DataSegmentRomEnd,
_ovl1SegmentStart,
_ovl1SegmentStart,
_ovl1SegmentEnd,
_ovl1SegmentEnd,
_ovl1DataSegmentEnd,
_ovl1SegNoloadStart,
_ovl1SegNoloadEnd,
};
u32 D_8003DC94 = 0;
// .bss
u64 gEntryStack[ENTRY_STACK_LEN_U64]; // Stack pointer set to this by EntryPoint
@ -67,10 +79,9 @@ void check_sp_dmem(void) {
}
extern void fatal_printf(const char *fmt, ...);
extern const char D_8003FE80[];
void thread_crash_stack_overflow(s32 threadNum) {
fatal_printf(D_8003FE80, threadNum);
fatal_printf("thread stack overflow id = %d\n", threadNum);
while (1);
}

View File

@ -1,6 +1,23 @@
#include <ultra64.h>
#include <macros.h>
// ovl0
u32 D_8003FDC0[6][3] = {
{ 0x2C000000, 0x0000311E, 0x00000140 },
{ 0x04541E3A, 0x00000271, 0x00170C69 },
{ 0x0C6F0C6D, 0x00800300, 0x00000200 },
{ 0x00000000, 0x00000280, 0x00000400 },
{ 0x002F0269, 0x0009026B, 0x00000002 },
{ 0x00000280, 0x00000400, 0x002F0269 },
};
u32 D_8003FE08 = 0x0009026B;
u32 D_8003FE0C = 0x00000002;
u32 D_8003FE10 = 0xFFFFFFFF;
extern u32 D_80048CD8, D_80048CDC, D_80048CE0, D_80048CE4;
extern u32 D_80048B8C, D_80048B9C, D_80048BA4;
@ -38,15 +55,16 @@ struct UnkStruct800009E8 {
OSMesgQueue *unk4;
};
#ifdef MIPS_TO_C
void func_800009E8(struct UnkStruct800009E8 *arg0, OSMesgQueue *mq, OSMesg *arg2, s32 arg3) {
// struct UnkStruct800009E8 *sp3C;
s32 sp18[2];
void func_800009E8(void *arg0, OSMesgQueue *arg1, OSMesg *arg2, s32 arg3) {
void *sp3C;
?32 sp1C;
?32 sp18;
osCreateMesgQueue(mq, arg2, arg3);
arg0->unk4 = mq;
sp18[0] = 3;
sp18[1] = 0x64;
// sp3C = arg0;
osCreateMesgQueue(arg1, arg2, arg3);
arg0->unk4 = arg1;
sp18 = 3;
sp1C = 0x64;
sp3C = arg0;
func_80000980(&sp18);
}
#else
@ -54,23 +72,22 @@ GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_800009E8.s")
#endif
#ifdef MIPS_TO_C
void func_80000A44(void *arg0) {
? func_80000A44(void *arg0) {
s32 sp1C;
s32 temp_a0;
s32 temp_a0_2;
s32 temp_v0;
s32 temp_v1;
u16 *temp_v0;
void *temp_v1_2;
void *phi_v1;
if (D_80048C5C != 0) {
return;
return 1;
}
if (D_80048C60 != 0) {
} else {
sp1C = osViGetNextFramebuffer();
sp1C = osViGetNextFramebuffer(&D_80048C5C);
temp_v0 = osViGetCurrentFramebuffer();
temp_v1 = arg0->unk70;
if (temp_v1 != -1) {
@ -80,7 +97,7 @@ void func_80000A44(void *arg0) {
D_80048C60 = temp_a0;
D_80048C88 = 0;
D_80048C6C = osGetCount();
return;
return 1;
}
}
phi_v1 = &D_80048C50;
@ -91,13 +108,14 @@ loop_10:
D_80048C5C = temp_a0_2;
D_80048C88 = 0;
D_80048C6C = osGetCount();
return;
return 1;
}
phi_v1 = temp_v1_2;
if (temp_v1_2 != &D_80048C5C) {
goto loop_10;
}
}
return 0;
}
#else
GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_80000A44.s")
@ -372,7 +390,7 @@ block_6:
} else {
phi_v0 = temp_v0;
if (D_80000300 == 0) {
osViSetYScale(D_8003FEC8);
osViSetYScale(0.833f);
phi_v0_2 = D_80048C7C * 0x10;
goto block_6;
}
@ -390,8 +408,8 @@ void *func_80000F78(u32 arg0, u32 arg1, s32 arg2, s16 arg3, s16 arg4, s16 arg5,
s32 sp1C;
s32 sp14;
u32 sp0;
s16 temp_a1;
s16 temp_a2;
s32 temp_a1;
s32 temp_a2;
s32 temp_a3;
s32 temp_lo;
s32 temp_t7;
@ -472,11 +490,11 @@ void *func_80000F78(u32 arg0, u32 arg1, s32 arg2, s16 arg3, s16 arg4, s16 arg5,
D_80048C7C.unk0 = D_80048C7C.unk0 & 0xFFFE;
D_80048BF8.unk4 = D_80048BF8.unk4 & 0xFFFEFFFF;
}
if (arg2 & 0x10000) {
if ((arg2 << 0xF) < 0) {
D_80048C7C.unk1 = D_80048C7C.unk1 | 0x80;
D_80048BF8.unk4 = D_80048BF8.unk4 | 0x10;
}
if (arg2 & 0x20000) {
if ((arg2 << 0xE) < 0) {
D_80048C7C.unk1 = D_80048C7C.unk1 & 0xFF7F;
D_80048BF8.unk4 = D_80048BF8.unk4 & -0x11;
}
@ -536,8 +554,8 @@ block_47:
}
}
temp_a3 = phi_t2 == 0;
temp_a1 = arg5 & 0xFFFE;
temp_a2 = arg6 & 0xFFFE;
temp_a1 = ((arg5 & 0xFFFE) << 0x10) >> 0x10;
temp_a2 = ((arg6 & 0xFFFE) << 0x10) >> 0x10;
if ((temp_a3 != 0) && (phi_a0 == 0)) {
sp14 = 2;
} else {
@ -691,14 +709,15 @@ GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_80000F78.s")
#ifdef MIPS_TO_C
void func_80001774(void *arg0) {
// s32 temp_v0;
s32 temp_v0;
if ((D_80048C48 != 0) && (D_80048CDC == 0)) {
func_80000E9C(arg0);
}
if (D_80048CD0 != 0) {
arg0 = arg0;
osSendMesg(D_80048CD4, 1, 0);
if ((s32)arg0 == -1) {
if (arg0 == -1) {
gCurrFrameBuffer = D_80048C5C;
D_80048C5C = 0;
} else {
@ -707,12 +726,14 @@ block_12:
}
} else if (arg0 == -1) {
osViSwapBuffer(D_80048C5C);
if (D_80048C5C == D_80048C60) {
temp_v0 = D_80048C5C;
if (temp_v0 == D_80048C60) {
D_80048C64 = 1;
}
gCurrFrameBuffer = D_80048C5C;
gCurrFrameBuffer = temp_v0;
D_80048C5C = 0;
} else {
arg0 = arg0;
osViSwapBuffer(arg0);
goto block_12;
}
@ -739,7 +760,7 @@ void func_8000189C(OSTask *arg0) {
func_8002DB4C(temp_a0);
arg0->t.ucode_boot = 2;
}
D_80048B8C = arg0;
*0x80048B8C = arg0;
}
#else
GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_8000189C.s")
@ -771,12 +792,243 @@ GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_80001924.s")
#endif
#ifdef MIPS_TO_C
Failed to decompile function func_800019BC:
s32 func_800019BC(void *arg0) {
s32 sp4C;
void *sp34;
OSMesgQueue *temp_a0;
OSMesgQueue *temp_a0_10;
OSMesgQueue *temp_a0_12;
OSMesgQueue *temp_a0_2;
OSMesgQueue *temp_a0_3;
OSMesgQueue *temp_a0_6;
OSMesgQueue *temp_a0_7;
OSMesgQueue *temp_a0_8;
OSMesgQueue *temp_a0_9;
s32 temp_v0_11;
u32 temp_t7;
void *temp_a0_11;
void *temp_a0_4;
void *temp_a0_5;
void *temp_v0;
void *temp_v0_10;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
void *temp_v0_6;
void *temp_v0_7;
void *temp_v0_8;
void *temp_v0_9;
void *phi_v1;
void *phi_v0;
void *phi_v0_2;
void *phi_v0_3;
void *phi_v0_4;
void *phi_v1_2;
s32 phi_a1;
void *phi_a0;
void *phi_a0_2;
void *phi_v1_3;
void *phi_v1_4;
void *phi_v1_5;
void *phi_v1_6;
void *phi_v1_7;
void *phi_v1_8;
Unable to determine jump table for jr instruction.
There must be a read of a variable in the same block as
the instruction, which has a name starting with "jtbl".
sp4C = 0;
temp_t7 = arg0->unk0 - 1;
if (temp_t7 < 0xB) {
goto **(&jtbl_8003FECC + (temp_t7 * 4));
case 0:
temp_v0 = arg0->unk68;
if (temp_v0 != 0) {
*temp_v0 = *temp_v0 | D_80048C5C;
osWritebackDCache(arg0->unk68, 4);
}
if (arg0->unk50 == -1) {
arg0->unk50 = D_80048C8C + D_80048C88;
osWritebackDCache(arg0 + 0x50, 4);
}
if (1 == arg0->unk74) {
osInvalDCache(&D_80048C80, 8);
}
func_8000189C(arg0);
sp4C = 1;
goto block_63;
case 1:
osWritebackDCacheAll();
func_80001924(arg0);
sp4C = 1;
goto block_63;
case 2:
temp_v0_2 = arg0->unk24;
*temp_v0_2 = D_80048B80;
D_80048B80 = temp_v0_2;
temp_a0 = arg0->unk20;
if (temp_a0 != 0) {
osSendMesg(temp_a0, arg0->unk1C, 0);
goto block_63;
case 3:
func_80000F78(arg0->unk24, arg0->unk28, arg0->unk2C, arg0->unk30, arg0->unk32, arg0->unk34, arg0->unk36);
temp_a0_2 = arg0->unk20;
if (temp_a0_2 != 0) {
osSendMesg(temp_a0_2, arg0->unk1C, 0);
goto block_63;
case 4:
phi_v1 = arg0;
phi_v0 = &D_80048C50;
loop_15:
temp_v0_3 = phi_v0 + 4;
temp_v0_3->unk-4 = phi_v1->unk24;
phi_v1 = phi_v1 + 4;
phi_v0 = temp_v0_3;
if (temp_v0_3 != &D_80048C5C) {
goto loop_15;
}
temp_a0_3 = arg0->unk20;
if (temp_a0_3 != 0) {
osSendMesg(temp_a0_3, arg0->unk1C, 0);
goto block_63;
case 5:
temp_a0_4 = D_80048B8C;
phi_v1_8 = NULL;
if (temp_a0_4 != 0) {
phi_v1_8 = NULL;
if (1 == temp_a0_4->unk0) {
phi_v1_8 = NULL;
if (arg0->unk28 == temp_a0_4->unk80) {
phi_v1_8 = temp_a0_4;
}
}
}
temp_v0_4 = D_80048B94;
phi_v0_2 = temp_v0_4;
phi_v1_6 = phi_v1_8;
phi_v1_7 = phi_v1_8;
if (temp_v0_4 != 0) {
loop_23:
if ((1 == phi_v0_2->unk0) && (arg0->unk28 == phi_v0_2->unk80)) {
phi_v1_7 = phi_v0_2;
}
temp_v0_5 = phi_v0_2->unkC;
phi_v0_2 = temp_v0_5;
phi_v1_6 = phi_v1_7;
if (temp_v0_5 != 0) {
goto loop_23;
}
}
temp_v0_6 = D_80048B84;
phi_v0_3 = temp_v0_6;
phi_v1_4 = phi_v1_6;
phi_v1_5 = phi_v1_6;
if (temp_v0_6 != 0) {
loop_28:
if ((1 == phi_v0_3->unk0) && (arg0->unk28 == phi_v0_3->unk80)) {
phi_v1_5 = phi_v0_3;
}
temp_v0_7 = phi_v0_3->unkC;
phi_v0_3 = temp_v0_7;
phi_v1_4 = phi_v1_5;
if (temp_v0_7 != 0) {
goto loop_28;
}
}
temp_v0_8 = D_80048BA4;
if ((temp_v0_8 != 0) && (1 == *temp_v0_8) && (arg0->unk28 == temp_a0_4->unk80)) {
phi_v1_4 = temp_v0_8;
}
temp_v0_9 = D_80048B9C;
phi_v0_4 = temp_v0_9;
phi_v1_2 = phi_v1_4;
phi_v1_3 = phi_v1_4;
if (temp_v0_9 != 0) {
loop_37:
if ((1 == phi_v0_4->unk0) && (arg0->unk28 == phi_v0_4->unk80)) {
phi_v1_3 = phi_v0_4;
}
temp_v0_10 = phi_v0_4->unkC;
phi_v0_4 = temp_v0_10;
phi_v1_2 = phi_v1_3;
if (temp_v0_10 != 0) {
goto loop_37;
}
}
if (phi_v1_2 != 0) {
phi_v1_2->unk1C = arg0->unk1C;
phi_v1_2->unk20 = arg0->unk20;
phi_v1_2->unk6C = arg0->unk24;
} else {
temp_a0_5 = arg0->unk24;
if (temp_a0_5 != 0) {
func_80001774(temp_a0_5, 1);
}
temp_a0_6 = arg0->unk20;
if (temp_a0_6 != 0) {
osSendMesg(temp_a0_6, arg0->unk1C, 0);
goto block_63;
case 6:
temp_a0_7 = arg0->unk20;
if (temp_a0_7 != 0) {
osSendMesg(temp_a0_7, arg0->unk1C, 0);
goto block_63;
case 7:
D_80048C8C = arg0->unk24;
D_80048C90 = arg0->unk28;
temp_a0_8 = arg0->unk20;
if (temp_a0_8 != 0) {
osSendMesg(temp_a0_8, arg0->unk1C, 0);
goto block_63;
case 8:
D_80048CD0 = 1;
D_80048CD4 = arg0->unk24;
temp_a0_9 = arg0->unk20;
if (temp_a0_9 != 0) {
osSendMesg(temp_a0_9, arg0->unk1C, 0);
goto block_63;
case 9:
D_80048CD0 = 0;
temp_a0_10 = arg0->unk20;
if (temp_a0_10 != 0) {
osSendMesg(temp_a0_10, arg0->unk1C, 0);
goto block_63;
case 10:
temp_a0_11 = D_80048B84;
phi_a1 = 1;
phi_a0 = temp_a0_11;
if (temp_a0_11 != 0) {
loop_56:
temp_v0_11 = phi_a0->unk0;
if ((phi_a1 == temp_v0_11) || (temp_v0_11 == 4)) {
sp34 = phi_a0->unkC;
func_80000CE4(phi_a0, phi_a1);
phi_a0_2 = sp34;
phi_a1 = 1;
} else {
phi_a0_2 = phi_a0->unkC;
}
phi_a0 = phi_a0_2;
if (phi_a0_2 != 0) {
goto loop_56;
}
}
D_80048C60 = 0;
temp_a0_12 = arg0->unk20;
if (temp_a0_12 != 0) {
osSendMesg(temp_a0_12, arg0->unk1C, 0);
}
}
}
}
}
}
}
}
}
}
}
block_63:
return sp4C;
}
#else
GLOBAL_ASM("asm/non_matchings/ovl0/ovl0/func_800019BC.s")
#endif
@ -962,8 +1214,8 @@ u32 func_8000206C(void) {
if ((phi_v0 != 0) && (1 == phi_v0->unk18) && (phi_v0->unk8 != 5)) {
if ((1 == phi_v0->unk0) && (1 == phi_v0->unk74)) {
osInvalDCache(&D_80048C80, 8);
D_80048B8C->unk78 = (&D_80048C80)[1];
temp_t7 = (&D_80048C80)[1];
D_80048B8C->unk78 = D_80048C80.unk4;
temp_t7 = D_80048C80.unk4;
temp_t2 = D_80048C88 + temp_t7;
sp18 = D_80048C80.unk0;
temp_t6 = ((temp_t2 + 0xF) >> 4) * 0x10;
@ -974,7 +1226,7 @@ u32 func_8000206C(void) {
if (sp18 >= temp_t8) {
if (temp_t8 < sp18) {
block_17:
fatal_printf(&D_8003FEA0, temp_t6, 1, &D_80048B8C);
fatal_printf("rdp_output_buff over !! size = %d\n byte", temp_t6, 1, &D_80048B8C);
loop_18:
goto loop_18;
}
@ -1137,7 +1389,7 @@ void func_8000256C(u32 *arg0) {
}
#ifdef MIPS_TO_C
void func_80002598(void *arg0) {
void func_80002598(s32 arg0) {
s32 sp84;
? sp30;
? *temp_t5_2;
@ -1202,7 +1454,7 @@ void func_80002598(void *arg0) {
gCurrFrameBuffer = 0;
D_80048CD0 = 0;
D_80048CD8 = &D_80002AF8;
D_80048CDC = NULL;
D_80048CDC = 0;
D_80048CE0 = -1;
temp_v0 = D_80000300;
if (temp_v0 != 0) {
@ -1372,9 +1624,9 @@ loop_16:
D_80048C7C.unk1 = D_80048C7C.unk1 | 0x80;
osCreateMesgQueue(&gInterruptMesgQueue, &D_80048C98, 8);
osViSetEvent(&gInterruptMesgQueue, 1, 1);
osSetEventMesg(OS_EVENT_SP, &gInterruptMesgQueue, 2);
osSetEventMesg(OS_EVENT_DP, &gInterruptMesgQueue, 3);
osSetEventMesg(OS_EVENT_PRENMI, &gInterruptMesgQueue, 0x63);
osSetEventMesg(4, &gInterruptMesgQueue, 2);
osSetEventMesg(9, &gInterruptMesgQueue, 3);
osSetEventMesg(0xE, &gInterruptMesgQueue, 0x63);
osSendMesg(&D_80048A08, 1, 0);
loop_26:
osRecvMesg(&gInterruptMesgQueue, &sp84, 1);

View File

@ -234,7 +234,7 @@ void *func_80004250(void) {
osCreateMesgQueue(&D_80048DA0, &D_80048DB8, 1);
osSetEventMesg(5, &D_80048DA0, 1);
osContReset(&D_80048DA0, &sp43);
osContInit(&D_80048DA0, &sp43);
phi_s1 = &D_80048E70;
phi_s0 = 0;
loop_1:

View File

@ -6,6 +6,43 @@
#include "ovl0_2_5.h"
#include "types.h"
struct UcodeHandler {
u32 *text; // ucode text
u32 *data; // ucode data
};
extern long long int gspF3DEX2_fifoDataStart[];
extern long long int gspF3DEX2_fifoTextStart[];
extern long long int gspL3DEX2_fifoDataStart[];
extern long long int gspL3DEX2_fifoTextStart[];
extern long long int gspS2DEX2_fifoDataStart[];
extern long long int gspS2DEX2_fifoTextStart[];
u32 D_8003DCA0 = 0x00000000;
u32 D_8003DCA4 = 0x00000000;
u32 D_8003DCA8 = 0x00000000;
struct UcodeHandler D_8003DCAC[16] = {
{gspF3DEX2_fifoTextStart, gspF3DEX2_fifoDataStart},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{gspL3DEX2_fifoTextStart, gspL3DEX2_fifoDataStart},
{NULL, NULL},
{gspS2DEX2_fifoTextStart, gspS2DEX2_fifoDataStart},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL},
{NULL, NULL}
};
extern void (*D_8004A48C)(void);
extern void func_80000A44(void);
extern u32 *gObjectThreadMaybe;
@ -138,7 +175,6 @@ void func_800056DC(s32 arg0, u32 arg1) {
extern const char D_80040018[];
extern u32 D_8003DCA0;
// These are used in other functions too
extern u32 D_8004A438, D_8004A43C;
@ -287,11 +323,6 @@ void func_800059F8(void) {
func_80005530();
}
extern struct UcodeHandler {
u32 *text; // ucode text
u32 *data; // ucode data
} D_8003DCAC[];
extern u32 D_80049760[]; // TODO; is this a different type?
extern u32 D_80049358;
extern const char D_800400C0[];
@ -1056,8 +1087,6 @@ void func_80006EE4(struct unk_func8006E30 *arg0) {
}
}
extern s32 D_8003DCA8;
void func_80006F60(struct Unk80005A98 *arg0) {
s32 sp34;
struct Unk80005A98 *temp_a0;

View File

@ -13,6 +13,42 @@ extern struct ObjThread *gObjectThreadMaybe;
extern u8 D_80040230[];
extern u32 D_8004A544;
s32 D_8003DE50 = 10000000;
u32 D_8003DE54 = 0x00000000;
f32 D_8003DE58[7] = {
0.0f, 0.0f, 30.0f, 4.0f / 3.0f, 100.0f, 12800.0f, 1.0f
};
f32 D_8003DE74[8] = {
0.0f, -160.0f, 160.0f, -120.0f, 120.0f, 100.0f, 12800.0f, 1.0f
};
f32 D_8003DE94[3][3] = {
{ 0.0f, 0.0f, 0.0f },
{ 1500.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 1.0f }
};
u32 D_8003DEB8 = 0x00000000;
f32 D_8003DEBC[4] = {
0.0f, 0.0f, 0.0f, 0.0f
};
f32 D_8003DECC[5] = {
0.0f, 0.0f, 0.0f, 0.0f, 1.0f
};
f32 D_8003DEE0[5] = {
0.0f, 0.0f, 0.0f, 0.0f, 0.0f
};
f32 D_8003DEF4[4] = {
0.0f, 1.0f, 1.0f, 1.0f
};
struct ObjThread *get_gobj_thread(void) {
struct ObjThread *ret;
if (gObjectThreadMaybe == NULL) {
@ -526,7 +562,6 @@ void func_800089EC(struct Camera *arg0) {
extern u8 D_80040314[];
extern u8 D_80040340[];
extern s32 D_8003DE50; // thread ID
extern u32 D_8004A54C;
struct ObjThread *get_gobj_thread();
@ -1758,7 +1793,6 @@ loop_3:
GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_2_5/func_8000AAE0.s")
#endif
extern s32 D_8003DE54;
extern s32 D_8004A7D4;
u32 func_8000ABAC(struct UnkStruct8004A7C4 *arg0) {
u32 temp_a1;

View File

@ -2,14 +2,84 @@
#include <macros.h>
#include "ovl0_4.h"
extern u16 D_8003E320;
extern s32 D_8003E324;
extern u8 D_8003DF20[];
extern s32 D_8003DF10, D_8003DF14, D_8003DF18, D_8003DF1C;
extern s32 D_8004AB9C;
extern Gfx *gDisplayListHeads[4];
s32 D_8003DF10 = 0x0000000A;
s32 D_8003DF14 = 0x0000000A;
s32 D_8003DF18 = 0x0000000A;
s32 D_8003DF1C = 0x0000000A;
u8 D_8003DF20[0x400] = {
0x2B, 0xE6, 0xDB, 0xB9, 0xB1, 0xF3, 0x53, 0x81, 0x37, 0x01, 0x7F, 0x44, 0x23, 0x3C, 0x11, 0xD0,
0x48, 0x80, 0xD2, 0x15, 0x6A, 0x70, 0x9B, 0x9E, 0x27, 0x51, 0xB0, 0x4B, 0x6A, 0xDB, 0x1E, 0xFF,
0x2D, 0xBC, 0x5B, 0x38, 0x6D, 0xCA, 0xAA, 0xF5, 0xCB, 0x42, 0x56, 0x96, 0x0F, 0x28, 0x6A, 0x59,
0x08, 0x08, 0xB5, 0x1B, 0xA4, 0xEC, 0xAD, 0x8B, 0x7E, 0xD9, 0x6F, 0x4E, 0x8E, 0x40, 0x92, 0xA2,
0x7F, 0x27, 0x88, 0x8D, 0x65, 0x5B, 0x3A, 0xF6, 0xA2, 0x41, 0xC8, 0xA6, 0x4A, 0xA6, 0xDE, 0x28,
0x8C, 0x48, 0xD7, 0x90, 0x9B, 0xAB, 0xAB, 0x73, 0x9A, 0x44, 0x6F, 0x73, 0xF7, 0xE4, 0x15, 0x04,
0xE6, 0xFF, 0xD8, 0xCD, 0xE7, 0xA9, 0x1D, 0x56, 0x4B, 0xEE, 0xD5, 0xBE, 0x32, 0x93, 0xCF, 0x7F,
0x39, 0x4D, 0xA8, 0x15, 0x32, 0xF7, 0x68, 0x67, 0x9B, 0x6F, 0xD6, 0x84, 0x30, 0xE3, 0xDE, 0x52,
0x5C, 0x09, 0x34, 0x54, 0xAB, 0x76, 0x03, 0x5A, 0xDE, 0xE0, 0xE4, 0xA0, 0x49, 0xAF, 0x0B, 0x7B,
0x54, 0x2C, 0x82, 0xBC, 0xF4, 0xCE, 0xA4, 0x0A, 0x99, 0x42, 0x5C, 0xD0, 0x67, 0xAC, 0x46, 0x1C,
0x05, 0x09, 0x4C, 0x87, 0x64, 0x61, 0x5D, 0x57, 0x4E, 0x13, 0x39, 0x67, 0x7D, 0x02, 0x26, 0x2A,
0x04, 0x49, 0xAE, 0xC3, 0x69, 0x7B, 0x52, 0xEC, 0x7D, 0xA7, 0x45, 0x0F, 0xB4, 0x12, 0xAE, 0x44,
0xA5, 0x1A, 0x22, 0xBC, 0xF3, 0xD0, 0x35, 0x3A, 0x50, 0x43, 0xEB, 0x94, 0x66, 0x9D, 0x85, 0xBB,
0x0C, 0x02, 0xD9, 0x0B, 0xC5, 0xE8, 0xB2, 0x1D, 0x1A, 0x20, 0x66, 0x25, 0xAE, 0xF9, 0x33, 0xEF,
0xD8, 0x1F, 0xA1, 0xDF, 0x68, 0xFB, 0xB0, 0xC5, 0x91, 0xA5, 0x24, 0x8D, 0xCC, 0xC1, 0x06, 0xA2,
0x5D, 0xFD, 0x50, 0x45, 0xE6, 0x75, 0x4A, 0x5E, 0x02, 0xB7, 0x6C, 0xFE, 0x81, 0xB8, 0x93, 0x8C,
0x4C, 0x29, 0x1F, 0xB1, 0x9A, 0xFA, 0x85, 0x23, 0xCE, 0x43, 0x04, 0x76, 0x5B, 0x14, 0xAF, 0x32,
0xDA, 0xF7, 0x48, 0xBF, 0x0C, 0x3F, 0x30, 0x6D, 0x86, 0x2C, 0xE2, 0xA3, 0x31, 0x0D, 0xFF, 0xD3,
0xF0, 0x76, 0x7B, 0x89, 0xED, 0xAA, 0x97, 0x0E, 0x45, 0xB3, 0x5B, 0xAB, 0x92, 0xB5, 0x79, 0xD3,
0xCC, 0xFA, 0x4C, 0x7E, 0xA0, 0x25, 0x1A, 0xED, 0x56, 0xF4, 0xBE, 0xCA, 0xF2, 0xD7, 0x00, 0x6A,
0xF3, 0x62, 0xC0, 0xBF, 0xB3, 0x56, 0x46, 0x50, 0x91, 0x69, 0x65, 0x5C, 0xC2, 0xDB, 0xE1, 0x8E,
0x79, 0x03, 0xD9, 0xAC, 0xED, 0x10, 0xBB, 0x5E, 0x8B, 0xC1, 0xE5, 0xD4, 0xF1, 0xD7, 0x78, 0x6E,
0x4D, 0x44, 0x01, 0x80, 0xDC, 0xB1, 0x0A, 0x97, 0x72, 0x1E, 0x5D, 0xB4, 0x99, 0xC0, 0xB0, 0x20,
0x04, 0x39, 0xF6, 0xC1, 0xF7, 0x2B, 0x3D, 0x45, 0x59, 0xEC, 0x53, 0x4F, 0x9A, 0x86, 0xE5, 0x06,
0x55, 0x80, 0x40, 0x9C, 0x86, 0x83, 0x90, 0x2D, 0x9B, 0xD1, 0xEF, 0xB9, 0x68, 0xDC, 0x93, 0x1D,
0xC2, 0x6C, 0xB6, 0xE2, 0xCF, 0x28, 0x10, 0xB6, 0x16, 0x52, 0x33, 0x60, 0xDB, 0x82, 0x41, 0xD0,
0xFD, 0x47, 0x1C, 0x35, 0x58, 0x94, 0x58, 0xE5, 0xBB, 0x58, 0xA2, 0x4C, 0x64, 0xCE, 0xCA, 0x94,
0x13, 0x47, 0x6F, 0xA7, 0xF8, 0x5E, 0xC4, 0x3B, 0x76, 0x85, 0x01, 0x61, 0x26, 0x13, 0x28, 0x23,
0x52, 0xFB, 0x19, 0x89, 0x35, 0xEA, 0xDD, 0x88, 0xE7, 0xBE, 0xA9, 0x2F, 0xD5, 0x82, 0x9C, 0x51,
0x7F, 0x51, 0x29, 0x31, 0xDA, 0xF9, 0xFA, 0x2A, 0x06, 0xC2, 0xE3, 0x14, 0xD5, 0xEC, 0x79, 0xE9,
0xDD, 0x75, 0x72, 0x37, 0x84, 0xFE, 0x7D, 0x72, 0x8E, 0xCD, 0xF5, 0xC3, 0xA8, 0xBA, 0xD8, 0xC6,
0xD4, 0x42, 0x0B, 0xEE, 0x1B, 0xE0, 0xFE, 0xF0, 0xD7, 0xA6, 0xC6, 0x22, 0x12, 0x25, 0x49, 0x81,
0xC0, 0x9F, 0x33, 0x9F, 0x38, 0xB7, 0x3C, 0x38, 0x42, 0xE2, 0xCB, 0xA9, 0x17, 0x03, 0x4E, 0xD3,
0xF5, 0xE9, 0x77, 0x0E, 0xA8, 0x08, 0x3D, 0x47, 0x86, 0x98, 0xDA, 0x20, 0xD6, 0x9F, 0x7D, 0xFC,
0xEE, 0xD6, 0x14, 0x5F, 0xFC, 0x5F, 0x46, 0xDF, 0xF2, 0x87, 0x39, 0x19, 0xA1, 0x62, 0x65, 0xA7,
0x51, 0x64, 0x20, 0x7E, 0x77, 0xFD, 0xC9, 0xA7, 0x80, 0x5F, 0xFB, 0x41, 0xA0, 0xBD, 0x9D, 0x83,
0xFC, 0xDF, 0xF0, 0xE3, 0x05, 0x60, 0xA6, 0xBB, 0xD9, 0xB0, 0x59, 0x43, 0xFF, 0xD1, 0x30, 0x7C,
0xB2, 0xAF, 0x8D, 0x8C, 0xC7, 0x53, 0xF1, 0x47, 0x92, 0x38, 0xA3, 0x57, 0x9C, 0x0A, 0x72, 0x95,
0x4A, 0x7C, 0xE4, 0xBF, 0x84, 0x49, 0x15, 0x2E, 0x2D, 0x0C, 0x68, 0x7C, 0x3B, 0x84, 0xEF, 0x05,
0x1C, 0x78, 0x78, 0x2E, 0x6B, 0x11, 0x1D, 0x27, 0x3D, 0x87, 0x61, 0x1B, 0x3C, 0x93, 0x5A, 0x99,
0xE8, 0x89, 0x95, 0xD2, 0xE1, 0x3B, 0x0C, 0x99, 0x11, 0x9F, 0x67, 0x3C, 0xC7, 0x98, 0xF2, 0x8B,
0xCD, 0x21, 0x66, 0x19, 0x73, 0x96, 0xEB, 0xAA, 0x89, 0xCB, 0x4B, 0x8F, 0x33, 0xA5, 0x74, 0x4B,
0x2F, 0xA1, 0x2A, 0x55, 0x48, 0x5A, 0xAD, 0x13, 0x0A, 0x43, 0xB4, 0xFA, 0xD5, 0x3F, 0xAC, 0x79,
0x85, 0xD6, 0x9E, 0x9D, 0x60, 0x73, 0x74, 0xB2, 0x98, 0xE1, 0xBA, 0xB2, 0x6B, 0x29, 0xEB, 0x71,
0x7B, 0xF2, 0x40, 0x37, 0x12, 0x90, 0x1F, 0x9D, 0x62, 0x1E, 0xAE, 0x6C, 0x3A, 0x8B, 0xCB, 0x1E,
0x71, 0xBD, 0x2C, 0x9C, 0xBE, 0x8E, 0x10, 0x98, 0x70, 0xD4, 0x11, 0x4F, 0x07, 0x2F, 0x8F, 0x09,
0x57, 0xE8, 0x0D, 0x3E, 0xC2, 0xDC, 0xA1, 0xF5, 0x6C, 0x46, 0x24, 0x26, 0x16, 0x8A, 0xEA, 0xED,
0x1F, 0x00, 0x74, 0x00, 0x18, 0x2F, 0xF6, 0xCC, 0xC6, 0x02, 0x78, 0xC7, 0xB8, 0x2C, 0x2A, 0xE3,
0x91, 0xD4, 0xFC, 0xF4, 0xCF, 0x7A, 0x3D, 0xC3, 0x14, 0xCC, 0x3F, 0xA0, 0xDE, 0x22, 0x0D, 0x1A,
0x6D, 0xBD, 0xD1, 0x27, 0xBA, 0x6D, 0x08, 0x4D, 0x50, 0x07, 0xE7, 0x6B, 0x71, 0x36, 0x8C, 0x35,
0x18, 0x2B, 0xFD, 0xA8, 0x74, 0x7A, 0xB9, 0x0E, 0x3B, 0x5D, 0x17, 0xBF, 0xB3, 0x3A, 0x00, 0x83,
0xEF, 0x26, 0xF6, 0x2D, 0x31, 0xF9, 0x9E, 0xC1, 0xC9, 0x58, 0xE7, 0xC7, 0x41, 0x71, 0x36, 0x07,
0xB7, 0x63, 0x29, 0xFB, 0x06, 0x63, 0x05, 0x0B, 0xF0, 0x88, 0x1B, 0x6B, 0x4F, 0xB8, 0xD8, 0x75,
0x34, 0x70, 0x21, 0x92, 0xE2, 0x95, 0xC6, 0x70, 0x63, 0xDA, 0xEA, 0xB4, 0x77, 0xBC, 0xCF, 0x3E,
0xC9, 0xE0, 0xC4, 0x65, 0xE0, 0xC5, 0x40, 0xEA, 0xC8, 0xF1, 0xF8, 0xD3, 0x34, 0x32, 0x54, 0x61,
0x5F, 0xAD, 0x6E, 0x34, 0x17, 0xA3, 0x2E, 0xB3, 0xA3, 0xC3, 0x5C, 0xD2, 0x54, 0x16, 0x5A, 0x55,
0xAC, 0x94, 0xAD, 0x53, 0xAA, 0x96, 0xCA, 0xEE, 0x64, 0x30, 0xB7, 0x87, 0x82, 0x36, 0xF1, 0xDD,
0x31, 0x69, 0xCD, 0xA9, 0x91, 0xA5, 0x18, 0xC5, 0xF9, 0xE4, 0x8F, 0x97, 0x90, 0xE6, 0xCE, 0x23,
0xB8, 0x59, 0x0D, 0xB1, 0x95, 0x4E, 0x2E, 0xB5, 0x8A, 0x57, 0x7C, 0xC9, 0x77, 0x88, 0xC4, 0x21,
0x7A, 0xFE, 0x75, 0x83, 0x81, 0x63, 0x10, 0x3E, 0xB6, 0x0F, 0x7E, 0x36, 0x5E, 0x62, 0x6E, 0xD2,
0x55, 0x19, 0x4F, 0x16, 0xC4, 0xBA, 0xA4, 0xAF, 0xE9, 0xB9, 0x0E, 0x25, 0x9A, 0xF8, 0x09, 0x0F,
0x03, 0x12, 0xBD, 0x7A, 0xB6, 0xE9, 0x3E, 0x37, 0x24, 0x8A, 0xF8, 0x97, 0xF3, 0xE8, 0x4D, 0xE5,
0x4A, 0x60, 0x3F, 0xA4, 0x2B, 0x24, 0xC0, 0xDC, 0x17, 0x66, 0x69, 0x21, 0xB5, 0x8F, 0x8D, 0x6E,
0x96, 0x07, 0xF4, 0xD1, 0x1C, 0xC8, 0xE1, 0x18, 0xDD, 0xEB, 0x22, 0x01, 0x9E, 0xDF, 0xC8, 0x8A,
};
u16 D_8003E320 = 0x00000000;
s32 D_8003E324 = 0x00000001;
void func_80010B20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
D_8003DF10 = arg0;
D_8003DF14 = arg1;

View File

@ -4,11 +4,16 @@
#include "types.h"
#include "ovl0_6.h"
s16 D_8003E330[0x800] = {
#include "s16_sintable.h"
};
#define COMBINE_INTEGRAL(a, b) ((a & 0xffff0000 ) | ((b >> 16)))
#define COMBINE_FRACTIONAL(a, b) ((a << 16)) | (b & 0xffff)
typedef f32 Mat4[4][4];
// Seems to be a version of MtxF2L that uses unsigned values only
void func_80019A30(float mf[4][4], Mtx *m) {
u32 e1,e2;

View File

@ -41,4 +41,4 @@
// mat[0][0] = a0; \
// }
#endif
#endif

View File

@ -1,5 +1,55 @@
#include <ultra64.h>
#include <macros.h>
#include "segments.h"
u32 D_8003F330 = 0x00000000;
u32 D_8003F334 = 0x00000000;
u32 D_8003F338 = 0x00000001;
u32 D_8003F33C = 0x00000000;
u32 D_8003F340 = 0x00000000;
u32 D_8003F344 = 0x00000001;
u16 D_8003F348[] = {
0x0000, 0x0000, 0x0000, 0x0000
};
u32 D_8003F350 = 0x8004ADC0;
u32 D_8003F354 = 0x0004B000;
u32 D_8003F358 = 0x7D001018;
u32 D_8003F35C = 0x40400818;
u32 D_8003F360 = 0x00003214;
u32 *D_8003F364 = (u32*)_data_3E1400SegmentRomStart;
u32 *D_8003F368 = (u32*)_data_3E6BC0SegmentRomStart;
u32 *D_8003F36C = (u32*)_data_3E6BC0SegmentRomStart;
u32 *D_8003F370 = (u32*)_data_2A8CB0SegmentRomStart;
u32 *D_8003F374 = (u32*)_data_2B1510SegmentRomStart;
u32 *D_8003F378 = (u32*)_data_2B1510SegmentRomStart;
u32 *D_8003F37C = (u32*)_data_250320SegmentRomStart;
u32 D_8003F380 = 0x00100808;
u32 D_8003F384 = 0x00000000;
u32 D_8003F388 = 0x00000000;
u32 D_8003F38C = 0x00000000;
u32 D_8003F390 = 0x00000000;
u32 D_8003F394 = 0x00000000;
u32 D_8003F398 = 0x00000000;
u32 D_8003F39C = 0x00000000;
u32 *D_8003F3A0 = (u32*)_data_49F590SegmentRomStart;
u32 *D_8003F3A4 = (u32*)_data_49F590SegmentRomEnd;
u32 *D_8003F3A8 = (u32*)_data_4A0340SegmentRomStart;
u32 *D_8003F3AC = (u32*)_data_4A0340SegmentRomEnd;
u32 *D_8003F3B0 = (u32*)_data_4A3B60SegmentRomStart;
u32 *D_8003F3B4 = (u32*)_data_4A3B60SegmentRomEnd;
#ifdef MIPS_TO_C
//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6

View File

@ -1,5 +1,97 @@
#include <ultra64.h>
#include <macros.h>
#include "ovl0_8.h"
u32 D_8003F3C0 = 0x00000000;
u32 D_8003F3C4 = 0x00000000;
u32 D_8003F3C8 = 0x00000003;
u32 D_8003F3CC = 0x00000000;
u32 D_8003F3D0[0x7][4] = {
{ 0x00000000, 0x00000000, 0x00000000, 0x00000003 },
{ 0x00000003, 0x00000000, 0x00000003, 0x00000003 },
{ 0x00000000, 0x00000003, 0x00000003, 0x00000003 },
{ 0x00000000, 0x00000003, 0x00000000, 0x00000006 },
{ 0x00000003, 0x00000003, 0x00000003, 0x00000006 },
{ 0x00000000, 0x00000006, 0x00000003, 0x00000006 },
{ 0x00000005, 0x00000006, 0x00000005, 0x00000006 },
};
// Only the first 7 in each row are used, and each of the first 7 elements of the row corresponds to a row in the above array
u32 D_8003F440[0x11][8] = {
{ 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000 },
{ 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000000 },
{ 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000000 },
{ 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000000 },
{ 0x00000001, 0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000 },
{ 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
};
f32 D_8003F660[10] = {
1.0f, 10.0f, 100.0f, 1000.0f, 10000.0f, 100000.0f, 1000000.0f, 10000000.0f, 100000000.0f, 1000000000.0f
};
u8 D_8003F688 = 0;
u8 crashScreenGlyphTable[128] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x29, 0xFF, 0xFF, 0xFF, 0x2B, 0xFF, 0xFF, 0x25, 0x26, 0xFF, 0x2A, 0xFF, 0x27, 0x2C, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0x28,
0xFF, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
// Is this really a u32 array? It seems to be used as such based on the assembly of the function it's used in
u32 D_8003F70C[0x40] = {
0x70871C30, 0x8988A250, 0x88808290, 0x88831C90,
0x888402F8, 0x88882210, 0x71CF9C10, 0xF9CF9C70,
0x8228A288, 0xF200A288, 0x0BC11C78, 0x0A222208,
0x8A222288, 0x71C21C70, 0x23C738F8, 0x5228A480,
0x8A282280, 0x8BC822F0, 0xFA282280, 0x8A28A480,
0x8BC738F8, 0xF9C89C08, 0x82288808, 0x82088808,
0xF2EF8808, 0x82288888, 0x82288888, 0x81C89C70,
0x8A08A270, 0x920DA288, 0xA20AB288, 0xC20AAA88,
0xA208A688, 0x9208A288, 0x8BE8A270, 0xF1CF1CF8,
0x8A28A220, 0x8A28A020, 0xF22F1C20, 0x82AA0220,
0x82492220, 0x81A89C20, 0x8A28A288, 0x8A28A288,
0x8A289488, 0x8A2A8850, 0x894A9420, 0x894AA220,
0x70852220, 0xF8011000, 0x08020800, 0x10840400,
0x20040470, 0x40840400, 0x80020800, 0xF8011000,
0x70800000, 0x88822200, 0x08820400, 0x108F8800,
0x20821000, 0x00022200, 0x20800020, 0x00000000,
};
// Crash screen message pointers
const char *D_8003F80C[] = {
D_80040D10, D_80040D1C, D_80040D30, D_80040D48,
D_80040D60, D_80040D78, D_80040D90, D_80040DA4,
D_80040DB8, D_80040DD0, D_80040DE8, D_80040E00,
D_80040E18, D_80040E2C, D_80040E3C, D_80040E58,
D_80040E74, D_80040E8C,
};
// More crash screen message pointers
const char *D_8003F854[] = {
D_80040EA8, D_80040EC0, D_80040ED4, D_80040EE8,
D_80040EF4, D_80040F00,
};
u32 D_8003F86C = 0x0000001E;
u32 D_8003F870 = 0x00000019;
#ifdef MIPS_TO_C
// generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6
@ -286,7 +378,6 @@ GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_8/func_80021D34.s")
extern u16 *osViGetCurrentFramebuffer(void);
extern u32 D_8003F70C[];
extern u32 gCurrScreenWidth;
#ifdef MIPS_TO_C
void crash_screen_draw_glyph(s32 x, s32 y, s32 glyph) {
@ -394,7 +485,7 @@ char *write_to_buf(char *buffer, const char *data, size_t size) {
return (char *) memcpy(buffer, data, size) + size;
}
#include "libc/stdarg.h"
extern u8 D_8003F68C[128];
// something's screwy with this func
#ifdef MIPS_TO_C
void crash_screen_print(s32 x, s32 y, const char *fmt, ...) {
@ -413,7 +504,7 @@ void crash_screen_print(s32 x, s32 y, const char *fmt, ...) {
while (size > 0) {
glyph = D_8003F68C[*ptr & 0x7f];
glyph = crashScreenGlyphTable[*ptr & 0x7f];
if (glyph != 0xff) {
crash_screen_draw_glyph(x, y, glyph);
@ -456,7 +547,6 @@ void crash_screen_print_float_reg(s32 x, s32 y, s32 regNum, void *addr) {
extern const char *D_80040F38;
extern const char *D_80040F2C;
extern char *D_8003F854[];
void crash_screen_print_fpcsr(u32 fpcsr) {
s32 i;
u32 bit;
@ -677,7 +767,7 @@ void func_80022A58(s32 arg0, ? arg1) {
phi_s3 = temp_v0;
loop_3:
temp_v0_2 = *phi_s4;
temp_a2 = *(&D_8003F68C + (temp_v0_2 & 0x7F));
temp_a2 = *(&crashScreenGlyphTable + (temp_v0_2 & 0x7F));
if (0xA == temp_v0_2) {
D_8003F86C = 0x1E;
D_8003F870 = D_8003F870 + 0xA;
@ -717,7 +807,6 @@ GLOBAL_ASM("asm/non_matchings/ovl0/ovl0_8/func_80022B88.s")
extern OSThread *(*D_80096EF8)(void);
extern u8 D_8003F688;
extern OSMesgQueue *D_80096ED8;
#ifdef MIPS_TO_C
void func_80022BC4(s32 arg) {

75
src/ovl0/ovl0_9.c Normal file
View File

@ -0,0 +1,75 @@
#include <ultra64.h>
u32 D_8003F880[0x1A] = {
0x00000003, 0x00000FA0, 0x00000000, 0x00000870,
0x00002666, 0xFFFFD99A, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x000002F8, 0x000005F0,
0x00000CCC, 0xFFFFF334, 0x00003FFF, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000960,
0x00001388, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00005000,
};
u32 D_8003F8E8[0x22] = {
0x00000004, 0x00000FA0, 0x00000000, 0x00000A50,
0x00002666, 0xFFFFD99A, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000370, 0x00000870,
0x00000CCC, 0xFFFFF334, 0x00003FFF, 0x00000000,
0x00000000, 0x00000000, 0x00000A50, 0x00000E38,
0x00000CCC, 0xFFFFF334, 0x00003FFF, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000EB0,
0x00001F40, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00005000,
};
u32 D_8003F970[0xA] = {
0x00000001, 0x00001F40, 0x00000000, 0x00001BF8,
0x00002EE0, 0x00000000, 0x00007FFF, 0x00000000,
0x00000000, 0x00000000,
};
u32 D_8003F998[0xA] = {
0x00000001, 0x00000320, 0x00000000, 0x000000C8,
0x00004000, 0x00000000, 0x00007FFF, 0x00001DB0,
0x000002BC, 0x00000000,
};
u32 D_8003F9C0[0xA] = {
0x00000001, 0x00000320, 0x00000000, 0x000000C8,
0x00000000, 0x00005FFF, 0x00007FFF, 0x0000017C,
0x000001F4, 0x00000000,
};
u32 D_8003F9E8[0xA] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000,
};
s16 D_8003FA10[0x80] = {
0x7FFF, 0x7FFC, 0x7FF5, 0x7FE8, 0x7FD7, 0x7FC0, 0x7FA5, 0x7F84,
0x7F5F, 0x7F34, 0x7F05, 0x7ED0, 0x7E97, 0x7E58, 0x7E15, 0x7DCD,
0x7D7F, 0x7D2D, 0x7CD6, 0x7C7A, 0x7C1A, 0x7BB4, 0x7B49, 0x7ADA,
0x7A66, 0x79ED, 0x796F, 0x78ED, 0x7866, 0x77DA, 0x7749, 0x76B4,
0x761A, 0x757B, 0x74D8, 0x7430, 0x7384, 0x72D3, 0x721E, 0x7164,
0x70A6, 0x6FE3, 0x6F1C, 0x6E51, 0x6D81, 0x6CAD, 0x6BD5, 0x6AF9,
0x6A18, 0x6933, 0x684A, 0x675D, 0x666C, 0x6577, 0x647E, 0x6381,
0x6280, 0x617C, 0x6073, 0x5F67, 0x5E57, 0x5D43, 0x5C2C, 0x5B11,
0x59F2, 0x58D0, 0x57AA, 0x5681, 0x5555, 0x5425, 0x52F2, 0x51BC,
0x5082, 0x4F46, 0x4E06, 0x4CC3, 0x4B7D, 0x4A35, 0x48E9, 0x479B,
0x4649, 0x44F5, 0x439E, 0x4245, 0x40E9, 0x3F8A, 0x3E29, 0x3CC6,
0x3B60, 0x39F8, 0x388D, 0x3721, 0x35B2, 0x3441, 0x32CE, 0x3159,
0x2FE2, 0x2E69, 0x2CEF, 0x2B72, 0x29F4, 0x2875, 0x26F3, 0x2570,
0x23EC, 0x2266, 0x20DF, 0x1F57, 0x1DCE, 0x1C43, 0x1AB7, 0x192A,
0x179C, 0x160E, 0x147E, 0x12ED, 0x115C, 0x0FCA, 0x0E38, 0x0CA5,
0x0B11, 0x097D, 0x07E9, 0x0654, 0x04C0, 0x032A, 0x0195, 0x0000,
};
u32 D_8003FB10 = 0x00000000;
u32 D_8003FB14 = 0x00000000;
f32 D_8003FB18 = 1.0f;
u32 D_8003FB1C = 0xFFFF0000;
u32 D_8003FB20 = 0x00000001;
u32 D_8003FB24 = 0x00000001;
// Insert functions here

View File

@ -4,6 +4,43 @@
#include "ovl0_2_5.h"
void (*gScissorCallback)(Gfx **) = NULL;
Mtx identityMatrix = {{
65536, 0, 1, 0,
0, 65536, 0, 1,
0, 0, 0, 0,
0, 0, 0, 0,
}};
extern Vp gViewport;
Gfx resetRDPDisplayList[] = {
gsDPPipeSync(),
gsSPViewport(&gViewport),
gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH),
gsSPClipRatio(FRUSTRATIO_1),
gsSPTexture(0, 0, 0, G_TX_RENDERTILE, G_OFF),
gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH),
gsSPMatrix(&identityMatrix, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION),
gsSPMatrix(&identityMatrix, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW),
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPPipelineMode(G_PM_NPRIMITIVE),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetTextureLOD(G_TL_TILE),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetTextureConvert(G_TC_FILT),
gsDPSetCombineKey(G_CK_NONE),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF2),
gsDPSetColorDither(G_CD_MAGICSQ),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
extern s32 gCurrScreenWidth;
extern s32 gCurrScreenHeight;

256
src/ovl0/s16_sintable.h Normal file
View File

@ -0,0 +1,256 @@
0x0000, 0x0032, 0x0064, 0x0096, 0x00C9, 0x00FB, 0x012D, 0x015F,
0x0192, 0x01C4, 0x01F6, 0x0228, 0x025B, 0x028D, 0x02BF, 0x02F1,
0x0324, 0x0356, 0x0388, 0x03BA, 0x03ED, 0x041F, 0x0451, 0x0483,
0x04B6, 0x04E8, 0x051A, 0x054C, 0x057F, 0x05B1, 0x05E3, 0x0615,
0x0647, 0x067A, 0x06AC, 0x06DE, 0x0710, 0x0742, 0x0775, 0x07A7,
0x07D9, 0x080B, 0x083D, 0x086F, 0x08A2, 0x08D4, 0x0906, 0x0938,
0x096A, 0x099C, 0x09CE, 0x0A00, 0x0A33, 0x0A65, 0x0A97, 0x0AC9,
0x0AFB, 0x0B2D, 0x0B5F, 0x0B91, 0x0BC3, 0x0BF5, 0x0C27, 0x0C59,
0x0C8B, 0x0CBD, 0x0CEF, 0x0D21, 0x0D53, 0x0D85, 0x0DB7, 0x0DE9,
0x0E1B, 0x0E4D, 0x0E7F, 0x0EB1, 0x0EE3, 0x0F15, 0x0F47, 0x0F79,
0x0FAB, 0x0FDD, 0x100E, 0x1040, 0x1072, 0x10A4, 0x10D6, 0x1108,
0x1139, 0x116B, 0x119D, 0x11CF, 0x1201, 0x1232, 0x1264, 0x1296,
0x12C8, 0x12F9, 0x132B, 0x135D, 0x138E, 0x13C0, 0x13F2, 0x1423,
0x1455, 0x1487, 0x14B8, 0x14EA, 0x151B, 0x154D, 0x157F, 0x15B0,
0x15E2, 0x1613, 0x1645, 0x1676, 0x16A8, 0x16D9, 0x170A, 0x173C,
0x176D, 0x179F, 0x17D0, 0x1802, 0x1833, 0x1864, 0x1896, 0x18C7,
0x18F8, 0x192A, 0x195B, 0x198C, 0x19BD, 0x19EF, 0x1A20, 0x1A51,
0x1A82, 0x1AB3, 0x1AE4, 0x1B16, 0x1B47, 0x1B78, 0x1BA9, 0x1BDA,
0x1C0B, 0x1C3C, 0x1C6D, 0x1C9E, 0x1CCF, 0x1D00, 0x1D31, 0x1D62,
0x1D93, 0x1DC4, 0x1DF5, 0x1E25, 0x1E56, 0x1E87, 0x1EB8, 0x1EE9,
0x1F19, 0x1F4A, 0x1F7B, 0x1FAC, 0x1FDC, 0x200D, 0x203E, 0x206E,
0x209F, 0x20D0, 0x2100, 0x2131, 0x2161, 0x2192, 0x21C2, 0x21F3,
0x2223, 0x2254, 0x2284, 0x22B4, 0x22E5, 0x2315, 0x2345, 0x2376,
0x23A6, 0x23D6, 0x2407, 0x2437, 0x2467, 0x2497, 0x24C7, 0x24F7,
0x2528, 0x2558, 0x2588, 0x25B8, 0x25E8, 0x2618, 0x2648, 0x2678,
0x26A8, 0x26D8, 0x2707, 0x2737, 0x2767, 0x2797, 0x27C7, 0x27F6,
0x2826, 0x2856, 0x2886, 0x28B5, 0x28E5, 0x2915, 0x2944, 0x2974,
0x29A3, 0x29D3, 0x2A02, 0x2A32, 0x2A61, 0x2A91, 0x2AC0, 0x2AEF,
0x2B1F, 0x2B4E, 0x2B7D, 0x2BAD, 0x2BDC, 0x2C0B, 0x2C3A, 0x2C69,
0x2C98, 0x2CC8, 0x2CF7, 0x2D26, 0x2D55, 0x2D84, 0x2DB3, 0x2DE2,
0x2E11, 0x2E3F, 0x2E6E, 0x2E9D, 0x2ECC, 0x2EFB, 0x2F29, 0x2F58,
0x2F87, 0x2FB5, 0x2FE4, 0x3013, 0x3041, 0x3070, 0x309E, 0x30CD,
0x30FB, 0x312A, 0x3158, 0x3186, 0x31B5, 0x31E3, 0x3211, 0x3240,
0x326E, 0x329C, 0x32CA, 0x32F8, 0x3326, 0x3354, 0x3382, 0x33B0,
0x33DE, 0x340C, 0x343A, 0x3468, 0x3496, 0x34C4, 0x34F2, 0x351F,
0x354D, 0x357B, 0x35A8, 0x35D6, 0x3604, 0x3631, 0x365F, 0x368C,
0x36BA, 0x36E7, 0x3714, 0x3742, 0x376F, 0x379C, 0x37CA, 0x37F7,
0x3824, 0x3851, 0x387E, 0x38AB, 0x38D8, 0x3906, 0x3932, 0x395F,
0x398C, 0x39B9, 0x39E6, 0x3A13, 0x3A40, 0x3A6C, 0x3A99, 0x3AC6,
0x3AF2, 0x3B1F, 0x3B4C, 0x3B78, 0x3BA5, 0x3BD1, 0x3BFD, 0x3C2A,
0x3C56, 0x3C83, 0x3CAF, 0x3CDB, 0x3D07, 0x3D33, 0x3D60, 0x3D8C,
0x3DB8, 0x3DE4, 0x3E10, 0x3E3C, 0x3E68, 0x3E93, 0x3EBF, 0x3EEB,
0x3F17, 0x3F43, 0x3F6E, 0x3F9A, 0x3FC5, 0x3FF1, 0x401D, 0x4048,
0x4073, 0x409F, 0x40CA, 0x40F6, 0x4121, 0x414C, 0x4177, 0x41A2,
0x41CE, 0x41F9, 0x4224, 0x424F, 0x427A, 0x42A5, 0x42D0, 0x42FA,
0x4325, 0x4350, 0x437B, 0x43A5, 0x43D0, 0x43FB, 0x4425, 0x4450,
0x447A, 0x44A5, 0x44CF, 0x44FA, 0x4524, 0x454E, 0x4578, 0x45A3,
0x45CD, 0x45F7, 0x4621, 0x464B, 0x4675, 0x469F, 0x46C9, 0x46F3,
0x471C, 0x4746, 0x4770, 0x479A, 0x47C3, 0x47ED, 0x4816, 0x4840,
0x4869, 0x4893, 0x48BC, 0x48E6, 0x490F, 0x4938, 0x4961, 0x498A,
0x49B4, 0x49DD, 0x4A06, 0x4A2F, 0x4A58, 0x4A81, 0x4AA9, 0x4AD2,
0x4AFB, 0x4B24, 0x4B4C, 0x4B75, 0x4B9E, 0x4BC6, 0x4BEF, 0x4C17,
0x4C3F, 0x4C68, 0x4C90, 0x4CB8, 0x4CE1, 0x4D09, 0x4D31, 0x4D59,
0x4D81, 0x4DA9, 0x4DD1, 0x4DF9, 0x4E21, 0x4E48, 0x4E70, 0x4E98,
0x4EBF, 0x4EE7, 0x4F0F, 0x4F36, 0x4F5E, 0x4F85, 0x4FAC, 0x4FD4,
0x4FFB, 0x5022, 0x5049, 0x5070, 0x5097, 0x50BF, 0x50E5, 0x510C,
0x5133, 0x515A, 0x5181, 0x51A8, 0x51CE, 0x51F5, 0x521C, 0x5242,
0x5269, 0x528F, 0x52B5, 0x52DC, 0x5302, 0x5328, 0x534E, 0x5375,
0x539B, 0x53C1, 0x53E7, 0x540D, 0x5433, 0x5458, 0x547E, 0x54A4,
0x54CA, 0x54EF, 0x5515, 0x553A, 0x5560, 0x5585, 0x55AB, 0x55D0,
0x55F5, 0x561A, 0x5640, 0x5665, 0x568A, 0x56AF, 0x56D4, 0x56F9,
0x571D, 0x5742, 0x5767, 0x578C, 0x57B0, 0x57D5, 0x57F9, 0x581E,
0x5842, 0x5867, 0x588B, 0x58AF, 0x58D4, 0x58F8, 0x591C, 0x5940,
0x5964, 0x5988, 0x59AC, 0x59D0, 0x59F3, 0x5A17, 0x5A3B, 0x5A5E,
0x5A82, 0x5AA5, 0x5AC9, 0x5AEC, 0x5B10, 0x5B33, 0x5B56, 0x5B79,
0x5B9D, 0x5BC0, 0x5BE3, 0x5C06, 0x5C29, 0x5C4B, 0x5C6E, 0x5C91,
0x5CB4, 0x5CD6, 0x5CF9, 0x5D1B, 0x5D3E, 0x5D60, 0x5D83, 0x5DA5,
0x5DC7, 0x5DE9, 0x5E0B, 0x5E2D, 0x5E50, 0x5E71, 0x5E93, 0x5EB5,
0x5ED7, 0x5EF9, 0x5F1A, 0x5F3C, 0x5F5E, 0x5F7F, 0x5FA0, 0x5FC2,
0x5FE3, 0x6004, 0x6026, 0x6047, 0x6068, 0x6089, 0x60AA, 0x60CB,
0x60EC, 0x610D, 0x612D, 0x614E, 0x616F, 0x618F, 0x61B0, 0x61D0,
0x61F1, 0x6211, 0x6231, 0x6251, 0x6271, 0x6292, 0x62B2, 0x62D2,
0x62F2, 0x6311, 0x6331, 0x6351, 0x6371, 0x6390, 0x63B0, 0x63CF,
0x63EF, 0x640E, 0x642D, 0x644D, 0x646C, 0x648B, 0x64AA, 0x64C9,
0x64E8, 0x6507, 0x6526, 0x6545, 0x6563, 0x6582, 0x65A0, 0x65BF,
0x65DD, 0x65FC, 0x661A, 0x6639, 0x6657, 0x6675, 0x6693, 0x66B1,
0x66CF, 0x66ED, 0x670B, 0x6729, 0x6746, 0x6764, 0x6782, 0x679F,
0x67BD, 0x67DA, 0x67F7, 0x6815, 0x6832, 0x684F, 0x686C, 0x6889,
0x68A6, 0x68C3, 0x68E0, 0x68FD, 0x6919, 0x6936, 0x6953, 0x696F,
0x698C, 0x69A8, 0x69C4, 0x69E1, 0x69FD, 0x6A19, 0x6A35, 0x6A51,
0x6A6D, 0x6A89, 0x6AA5, 0x6AC1, 0x6ADC, 0x6AF8, 0x6B13, 0x6B2F,
0x6B4A, 0x6B66, 0x6B81, 0x6B9C, 0x6BB8, 0x6BD3, 0x6BEE, 0x6C09,
0x6C24, 0x6C3F, 0x6C59, 0x6C74, 0x6C8F, 0x6CA9, 0x6CC4, 0x6CDE,
0x6CF9, 0x6D13, 0x6D2D, 0x6D48, 0x6D62, 0x6D7C, 0x6D96, 0x6DB0,
0x6DCA, 0x6DE3, 0x6DFD, 0x6E17, 0x6E30, 0x6E4A, 0x6E63, 0x6E7D,
0x6E96, 0x6EAF, 0x6EC9, 0x6EE2, 0x6EFB, 0x6F14, 0x6F2D, 0x6F46,
0x6F5F, 0x6F77, 0x6F90, 0x6FA9, 0x6FC1, 0x6FDA, 0x6FF2, 0x700A,
0x7023, 0x703B, 0x7053, 0x706B, 0x7083, 0x709B, 0x70B3, 0x70CB,
0x70E2, 0x70FA, 0x7112, 0x7129, 0x7141, 0x7158, 0x716F, 0x7186,
0x719E, 0x71B5, 0x71CC, 0x71E3, 0x71FA, 0x7211, 0x7227, 0x723E,
0x7255, 0x726B, 0x7282, 0x7298, 0x72AF, 0x72C5, 0x72DB, 0x72F1,
0x7307, 0x731D, 0x7333, 0x7349, 0x735F, 0x7375, 0x738A, 0x73A0,
0x73B5, 0x73CB, 0x73E0, 0x73F6, 0x740B, 0x7420, 0x7435, 0x744A,
0x745F, 0x7474, 0x7489, 0x749E, 0x74B2, 0x74C7, 0x74DB, 0x74F0,
0x7504, 0x7519, 0x752D, 0x7541, 0x7555, 0x7569, 0x757D, 0x7591,
0x75A5, 0x75B9, 0x75CC, 0x75E0, 0x75F4, 0x7607, 0x761B, 0x762E,
0x7641, 0x7654, 0x7668, 0x767B, 0x768E, 0x76A0, 0x76B3, 0x76C6,
0x76D9, 0x76EB, 0x76FE, 0x7710, 0x7723, 0x7735, 0x7747, 0x775A,
0x776C, 0x777E, 0x7790, 0x77A2, 0x77B4, 0x77C5, 0x77D7, 0x77E9,
0x77FA, 0x780C, 0x781D, 0x782E, 0x7840, 0x7851, 0x7862, 0x7873,
0x7884, 0x7895, 0x78A6, 0x78B6, 0x78C7, 0x78D8, 0x78E8, 0x78F9,
0x7909, 0x7919, 0x792A, 0x793A, 0x794A, 0x795A, 0x796A, 0x797A,
0x798A, 0x7999, 0x79A9, 0x79B9, 0x79C8, 0x79D8, 0x79E7, 0x79F6,
0x7A05, 0x7A15, 0x7A24, 0x7A33, 0x7A42, 0x7A50, 0x7A5F, 0x7A6E,
0x7A7D, 0x7A8B, 0x7A9A, 0x7AA8, 0x7AB6, 0x7AC5, 0x7AD3, 0x7AE1,
0x7AEF, 0x7AFD, 0x7B0B, 0x7B19, 0x7B26, 0x7B34, 0x7B42, 0x7B4F,
0x7B5D, 0x7B6A, 0x7B77, 0x7B84, 0x7B92, 0x7B9F, 0x7BAC, 0x7BB9,
0x7BC5, 0x7BD2, 0x7BDF, 0x7BEB, 0x7BF8, 0x7C05, 0x7C11, 0x7C1D,
0x7C29, 0x7C36, 0x7C42, 0x7C4E, 0x7C5A, 0x7C66, 0x7C71, 0x7C7D,
0x7C89, 0x7C94, 0x7CA0, 0x7CAB, 0x7CB7, 0x7CC2, 0x7CCD, 0x7CD8,
0x7CE3, 0x7CEE, 0x7CF9, 0x7D04, 0x7D0F, 0x7D19, 0x7D24, 0x7D2F,
0x7D39, 0x7D43, 0x7D4E, 0x7D58, 0x7D62, 0x7D6C, 0x7D76, 0x7D80,
0x7D8A, 0x7D94, 0x7D9D, 0x7DA7, 0x7DB0, 0x7DBA, 0x7DC3, 0x7DCD,
0x7DD6, 0x7DDF, 0x7DE8, 0x7DF1, 0x7DFA, 0x7E03, 0x7E0C, 0x7E14,
0x7E1D, 0x7E26, 0x7E2E, 0x7E37, 0x7E3F, 0x7E47, 0x7E4F, 0x7E57,
0x7E5F, 0x7E67, 0x7E6F, 0x7E77, 0x7E7F, 0x7E86, 0x7E8E, 0x7E95,
0x7E9D, 0x7EA4, 0x7EAB, 0x7EB3, 0x7EBA, 0x7EC1, 0x7EC8, 0x7ECF,
0x7ED5, 0x7EDC, 0x7EE3, 0x7EE9, 0x7EF0, 0x7EF6, 0x7EFD, 0x7F03,
0x7F09, 0x7F0F, 0x7F15, 0x7F1B, 0x7F21, 0x7F27, 0x7F2D, 0x7F32,
0x7F38, 0x7F3D, 0x7F43, 0x7F48, 0x7F4D, 0x7F53, 0x7F58, 0x7F5D,
0x7F62, 0x7F67, 0x7F6B, 0x7F70, 0x7F75, 0x7F79, 0x7F7E, 0x7F82,
0x7F87, 0x7F8B, 0x7F8F, 0x7F93, 0x7F97, 0x7F9B, 0x7F9F, 0x7FA3,
0x7FA7, 0x7FAA, 0x7FAE, 0x7FB1, 0x7FB5, 0x7FB8, 0x7FBC, 0x7FBF,
0x7FC2, 0x7FC5, 0x7FC8, 0x7FCB, 0x7FCE, 0x7FD0, 0x7FD3, 0x7FD6,
0x7FD8, 0x7FDA, 0x7FDD, 0x7FDF, 0x7FE1, 0x7FE3, 0x7FE5, 0x7FE7,
0x7FE9, 0x7FEB, 0x7FED, 0x7FEE, 0x7FF0, 0x7FF2, 0x7FF3, 0x7FF4,
0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 0x7FFA, 0x7FFB, 0x7FFC, 0x7FFC,
0x7FFD, 0x7FFE, 0x7FFE, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x8000,
0x8000, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFE, 0x7FFE, 0x7FFD,
0x7FFC, 0x7FFC, 0x7FFB, 0x7FFA, 0x7FF9, 0x7FF8, 0x7FF7, 0x7FF6,
0x7FF4, 0x7FF3, 0x7FF2, 0x7FF0, 0x7FEE, 0x7FED, 0x7FEB, 0x7FE9,
0x7FE7, 0x7FE5, 0x7FE3, 0x7FE1, 0x7FDF, 0x7FDD, 0x7FDA, 0x7FD8,
0x7FD6, 0x7FD3, 0x7FD0, 0x7FCE, 0x7FCB, 0x7FC8, 0x7FC5, 0x7FC2,
0x7FBF, 0x7FBC, 0x7FB8, 0x7FB5, 0x7FB1, 0x7FAE, 0x7FAA, 0x7FA7,
0x7FA3, 0x7F9F, 0x7F9B, 0x7F97, 0x7F93, 0x7F8F, 0x7F8B, 0x7F87,
0x7F82, 0x7F7E, 0x7F79, 0x7F75, 0x7F70, 0x7F6B, 0x7F67, 0x7F62,
0x7F5D, 0x7F58, 0x7F53, 0x7F4D, 0x7F48, 0x7F43, 0x7F3D, 0x7F38,
0x7F32, 0x7F2D, 0x7F27, 0x7F21, 0x7F1B, 0x7F15, 0x7F0F, 0x7F09,
0x7F03, 0x7EFD, 0x7EF6, 0x7EF0, 0x7EE9, 0x7EE3, 0x7EDC, 0x7ED5,
0x7ECF, 0x7EC8, 0x7EC1, 0x7EBA, 0x7EB3, 0x7EAB, 0x7EA4, 0x7E9D,
0x7E95, 0x7E8E, 0x7E86, 0x7E7F, 0x7E77, 0x7E6F, 0x7E67, 0x7E5F,
0x7E57, 0x7E4F, 0x7E47, 0x7E3F, 0x7E37, 0x7E2E, 0x7E26, 0x7E1D,
0x7E14, 0x7E0C, 0x7E03, 0x7DFA, 0x7DF1, 0x7DE8, 0x7DDF, 0x7DD6,
0x7DCD, 0x7DC3, 0x7DBA, 0x7DB0, 0x7DA7, 0x7D9D, 0x7D94, 0x7D8A,
0x7D80, 0x7D76, 0x7D6C, 0x7D62, 0x7D58, 0x7D4E, 0x7D43, 0x7D39,
0x7D2F, 0x7D24, 0x7D19, 0x7D0F, 0x7D04, 0x7CF9, 0x7CEE, 0x7CE3,
0x7CD8, 0x7CCD, 0x7CC2, 0x7CB7, 0x7CAB, 0x7CA0, 0x7C94, 0x7C89,
0x7C7D, 0x7C71, 0x7C66, 0x7C5A, 0x7C4E, 0x7C42, 0x7C36, 0x7C29,
0x7C1D, 0x7C11, 0x7C05, 0x7BF8, 0x7BEB, 0x7BDF, 0x7BD2, 0x7BC5,
0x7BB9, 0x7BAC, 0x7B9F, 0x7B92, 0x7B84, 0x7B77, 0x7B6A, 0x7B5D,
0x7B4F, 0x7B42, 0x7B34, 0x7B26, 0x7B19, 0x7B0B, 0x7AFD, 0x7AEF,
0x7AE1, 0x7AD3, 0x7AC5, 0x7AB6, 0x7AA8, 0x7A9A, 0x7A8B, 0x7A7D,
0x7A6E, 0x7A5F, 0x7A50, 0x7A42, 0x7A33, 0x7A24, 0x7A15, 0x7A05,
0x79F6, 0x79E7, 0x79D8, 0x79C8, 0x79B9, 0x79A9, 0x7999, 0x798A,
0x797A, 0x796A, 0x795A, 0x794A, 0x793A, 0x792A, 0x7919, 0x7909,
0x78F9, 0x78E8, 0x78D8, 0x78C7, 0x78B6, 0x78A6, 0x7895, 0x7884,
0x7873, 0x7862, 0x7851, 0x7840, 0x782E, 0x781D, 0x780C, 0x77FA,
0x77E9, 0x77D7, 0x77C5, 0x77B4, 0x77A2, 0x7790, 0x777E, 0x776C,
0x775A, 0x7747, 0x7735, 0x7723, 0x7710, 0x76FE, 0x76EB, 0x76D9,
0x76C6, 0x76B3, 0x76A0, 0x768E, 0x767B, 0x7668, 0x7654, 0x7641,
0x762E, 0x761B, 0x7607, 0x75F4, 0x75E0, 0x75CC, 0x75B9, 0x75A5,
0x7591, 0x757D, 0x7569, 0x7555, 0x7541, 0x752D, 0x7519, 0x7504,
0x74F0, 0x74DB, 0x74C7, 0x74B2, 0x749E, 0x7489, 0x7474, 0x745F,
0x744A, 0x7435, 0x7420, 0x740B, 0x73F6, 0x73E0, 0x73CB, 0x73B5,
0x73A0, 0x738A, 0x7375, 0x735F, 0x7349, 0x7333, 0x731D, 0x7307,
0x72F1, 0x72DB, 0x72C5, 0x72AF, 0x7298, 0x7282, 0x726B, 0x7255,
0x723E, 0x7227, 0x7211, 0x71FA, 0x71E3, 0x71CC, 0x71B5, 0x719E,
0x7186, 0x716F, 0x7158, 0x7141, 0x7129, 0x7112, 0x70FA, 0x70E2,
0x70CB, 0x70B3, 0x709B, 0x7083, 0x706B, 0x7053, 0x703B, 0x7023,
0x700A, 0x6FF2, 0x6FDA, 0x6FC1, 0x6FA9, 0x6F90, 0x6F77, 0x6F5F,
0x6F46, 0x6F2D, 0x6F14, 0x6EFB, 0x6EE2, 0x6EC9, 0x6EAF, 0x6E96,
0x6E7D, 0x6E63, 0x6E4A, 0x6E30, 0x6E17, 0x6DFD, 0x6DE3, 0x6DCA,
0x6DB0, 0x6D96, 0x6D7C, 0x6D62, 0x6D48, 0x6D2D, 0x6D13, 0x6CF9,
0x6CDE, 0x6CC4, 0x6CA9, 0x6C8F, 0x6C74, 0x6C59, 0x6C3F, 0x6C24,
0x6C09, 0x6BEE, 0x6BD3, 0x6BB8, 0x6B9C, 0x6B81, 0x6B66, 0x6B4A,
0x6B2F, 0x6B13, 0x6AF8, 0x6ADC, 0x6AC1, 0x6AA5, 0x6A89, 0x6A6D,
0x6A51, 0x6A35, 0x6A19, 0x69FD, 0x69E1, 0x69C4, 0x69A8, 0x698C,
0x696F, 0x6953, 0x6936, 0x6919, 0x68FD, 0x68E0, 0x68C3, 0x68A6,
0x6889, 0x686C, 0x684F, 0x6832, 0x6815, 0x67F7, 0x67DA, 0x67BD,
0x679F, 0x6782, 0x6764, 0x6746, 0x6729, 0x670B, 0x66ED, 0x66CF,
0x66B1, 0x6693, 0x6675, 0x6657, 0x6639, 0x661A, 0x65FC, 0x65DD,
0x65BF, 0x65A0, 0x6582, 0x6563, 0x6545, 0x6526, 0x6507, 0x64E8,
0x64C9, 0x64AA, 0x648B, 0x646C, 0x644D, 0x642D, 0x640E, 0x63EF,
0x63CF, 0x63B0, 0x6390, 0x6371, 0x6351, 0x6331, 0x6311, 0x62F2,
0x62D2, 0x62B2, 0x6292, 0x6271, 0x6251, 0x6231, 0x6211, 0x61F1,
0x61D0, 0x61B0, 0x618F, 0x616F, 0x614E, 0x612D, 0x610D, 0x60EC,
0x60CB, 0x60AA, 0x6089, 0x6068, 0x6047, 0x6026, 0x6004, 0x5FE3,
0x5FC2, 0x5FA0, 0x5F7F, 0x5F5E, 0x5F3C, 0x5F1A, 0x5EF9, 0x5ED7,
0x5EB5, 0x5E93, 0x5E71, 0x5E50, 0x5E2D, 0x5E0B, 0x5DE9, 0x5DC7,
0x5DA5, 0x5D83, 0x5D60, 0x5D3E, 0x5D1B, 0x5CF9, 0x5CD6, 0x5CB4,
0x5C91, 0x5C6E, 0x5C4B, 0x5C29, 0x5C06, 0x5BE3, 0x5BC0, 0x5B9D,
0x5B79, 0x5B56, 0x5B33, 0x5B10, 0x5AEC, 0x5AC9, 0x5AA5, 0x5A82,
0x5A5E, 0x5A3B, 0x5A17, 0x59F3, 0x59D0, 0x59AC, 0x5988, 0x5964,
0x5940, 0x591C, 0x58F8, 0x58D4, 0x58AF, 0x588B, 0x5867, 0x5842,
0x581E, 0x57F9, 0x57D5, 0x57B0, 0x578C, 0x5767, 0x5742, 0x571D,
0x56F9, 0x56D4, 0x56AF, 0x568A, 0x5665, 0x5640, 0x561A, 0x55F5,
0x55D0, 0x55AB, 0x5585, 0x5560, 0x553A, 0x5515, 0x54EF, 0x54CA,
0x54A4, 0x547E, 0x5458, 0x5433, 0x540D, 0x53E7, 0x53C1, 0x539B,
0x5375, 0x534E, 0x5328, 0x5302, 0x52DC, 0x52B5, 0x528F, 0x5269,
0x5242, 0x521C, 0x51F5, 0x51CE, 0x51A8, 0x5181, 0x515A, 0x5133,
0x510C, 0x50E5, 0x50BF, 0x5097, 0x5070, 0x5049, 0x5022, 0x4FFB,
0x4FD4, 0x4FAC, 0x4F85, 0x4F5E, 0x4F36, 0x4F0F, 0x4EE7, 0x4EBF,
0x4E98, 0x4E70, 0x4E48, 0x4E21, 0x4DF9, 0x4DD1, 0x4DA9, 0x4D81,
0x4D59, 0x4D31, 0x4D09, 0x4CE1, 0x4CB8, 0x4C90, 0x4C68, 0x4C3F,
0x4C17, 0x4BEF, 0x4BC6, 0x4B9E, 0x4B75, 0x4B4C, 0x4B24, 0x4AFB,
0x4AD2, 0x4AA9, 0x4A81, 0x4A58, 0x4A2F, 0x4A06, 0x49DD, 0x49B4,
0x498A, 0x4961, 0x4938, 0x490F, 0x48E6, 0x48BC, 0x4893, 0x4869,
0x4840, 0x4816, 0x47ED, 0x47C3, 0x479A, 0x4770, 0x4746, 0x471C,
0x46F3, 0x46C9, 0x469F, 0x4675, 0x464B, 0x4621, 0x45F7, 0x45CD,
0x45A3, 0x4578, 0x454E, 0x4524, 0x44FA, 0x44CF, 0x44A5, 0x447A,
0x4450, 0x4425, 0x43FB, 0x43D0, 0x43A5, 0x437B, 0x4350, 0x4325,
0x42FA, 0x42D0, 0x42A5, 0x427A, 0x424F, 0x4224, 0x41F9, 0x41CE,
0x41A2, 0x4177, 0x414C, 0x4121, 0x40F6, 0x40CA, 0x409F, 0x4073,
0x4048, 0x401D, 0x3FF1, 0x3FC5, 0x3F9A, 0x3F6E, 0x3F43, 0x3F17,
0x3EEB, 0x3EBF, 0x3E93, 0x3E68, 0x3E3C, 0x3E10, 0x3DE4, 0x3DB8,
0x3D8C, 0x3D60, 0x3D33, 0x3D07, 0x3CDB, 0x3CAF, 0x3C83, 0x3C56,
0x3C2A, 0x3BFD, 0x3BD1, 0x3BA5, 0x3B78, 0x3B4C, 0x3B1F, 0x3AF2,
0x3AC6, 0x3A99, 0x3A6C, 0x3A40, 0x3A13, 0x39E6, 0x39B9, 0x398C,
0x395F, 0x3932, 0x3906, 0x38D8, 0x38AB, 0x387E, 0x3851, 0x3824,
0x37F7, 0x37CA, 0x379C, 0x376F, 0x3742, 0x3714, 0x36E7, 0x36BA,
0x368C, 0x365F, 0x3631, 0x3604, 0x35D6, 0x35A8, 0x357B, 0x354D,
0x351F, 0x34F2, 0x34C4, 0x3496, 0x3468, 0x343A, 0x340C, 0x33DE,
0x33B0, 0x3382, 0x3354, 0x3326, 0x32F8, 0x32CA, 0x329C, 0x326E,
0x3240, 0x3211, 0x31E3, 0x31B5, 0x3186, 0x3158, 0x312A, 0x30FB,
0x30CD, 0x309E, 0x3070, 0x3041, 0x3013, 0x2FE4, 0x2FB5, 0x2F87,
0x2F58, 0x2F29, 0x2EFB, 0x2ECC, 0x2E9D, 0x2E6E, 0x2E3F, 0x2E11,
0x2DE2, 0x2DB3, 0x2D84, 0x2D55, 0x2D26, 0x2CF7, 0x2CC8, 0x2C98,
0x2C69, 0x2C3A, 0x2C0B, 0x2BDC, 0x2BAD, 0x2B7D, 0x2B4E, 0x2B1F,
0x2AEF, 0x2AC0, 0x2A91, 0x2A61, 0x2A32, 0x2A02, 0x29D3, 0x29A3,
0x2974, 0x2944, 0x2915, 0x28E5, 0x28B5, 0x2886, 0x2856, 0x2826,
0x27F6, 0x27C7, 0x2797, 0x2767, 0x2737, 0x2707, 0x26D8, 0x26A8,
0x2678, 0x2648, 0x2618, 0x25E8, 0x25B8, 0x2588, 0x2558, 0x2528,
0x24F7, 0x24C7, 0x2497, 0x2467, 0x2437, 0x2407, 0x23D6, 0x23A6,
0x2376, 0x2345, 0x2315, 0x22E5, 0x22B4, 0x2284, 0x2254, 0x2223,
0x21F3, 0x21C2, 0x2192, 0x2161, 0x2131, 0x2100, 0x20D0, 0x209F,
0x206E, 0x203E, 0x200D, 0x1FDC, 0x1FAC, 0x1F7B, 0x1F4A, 0x1F19,
0x1EE9, 0x1EB8, 0x1E87, 0x1E56, 0x1E25, 0x1DF5, 0x1DC4, 0x1D93,
0x1D62, 0x1D31, 0x1D00, 0x1CCF, 0x1C9E, 0x1C6D, 0x1C3C, 0x1C0B,
0x1BDA, 0x1BA9, 0x1B78, 0x1B47, 0x1B16, 0x1AE4, 0x1AB3, 0x1A82,
0x1A51, 0x1A20, 0x19EF, 0x19BD, 0x198C, 0x195B, 0x192A, 0x18F8,
0x18C7, 0x1896, 0x1864, 0x1833, 0x1802, 0x17D0, 0x179F, 0x176D,
0x173C, 0x170A, 0x16D9, 0x16A8, 0x1676, 0x1645, 0x1613, 0x15E2,
0x15B0, 0x157F, 0x154D, 0x151B, 0x14EA, 0x14B8, 0x1487, 0x1455,
0x1423, 0x13F2, 0x13C0, 0x138E, 0x135D, 0x132B, 0x12F9, 0x12C8,
0x1296, 0x1264, 0x1232, 0x1201, 0x11CF, 0x119D, 0x116B, 0x1139,
0x1108, 0x10D6, 0x10A4, 0x1072, 0x1040, 0x100E, 0x0FDD, 0x0FAB,
0x0F79, 0x0F47, 0x0F15, 0x0EE3, 0x0EB1, 0x0E7F, 0x0E4D, 0x0E1B,
0x0DE9, 0x0DB7, 0x0D85, 0x0D53, 0x0D21, 0x0CEF, 0x0CBD, 0x0C8B,
0x0C59, 0x0C27, 0x0BF5, 0x0BC3, 0x0B91, 0x0B5F, 0x0B2D, 0x0AFB,
0x0AC9, 0x0A97, 0x0A65, 0x0A33, 0x0A00, 0x09CE, 0x099C, 0x096A,
0x0938, 0x0906, 0x08D4, 0x08A2, 0x086F, 0x083D, 0x080B, 0x07D9,
0x07A7, 0x0775, 0x0742, 0x0710, 0x06DE, 0x06AC, 0x067A, 0x0647,
0x0615, 0x05E3, 0x05B1, 0x057F, 0x054C, 0x051A, 0x04E8, 0x04B6,
0x0483, 0x0451, 0x041F, 0x03ED, 0x03BA, 0x0388, 0x0356, 0x0324,
0x02F1, 0x02BF, 0x028D, 0x025B, 0x0228, 0x01F6, 0x01C4, 0x0192,
0x015F, 0x012D, 0x00FB, 0x00C9, 0x0096, 0x0064, 0x0032, 0x0000,

View File

@ -91,12 +91,9 @@
8002F410 __osSiCreateAccessQueue
8002F460 __osSiGetAccess
8002F4A4 __osSiRelAccess
8002F4D0 osContInit
8002F640 __osContGetInitData
8002F710 __osPackRequestData
8002F810 osEepromWrite
8002F988 conteepwrite_text_0178
8002FA34 __osEepStatus
8002FBE0 osCreateThread
8002FD30 osContStartReadData
8002FDB4 osContGetReadData
@ -315,10 +312,6 @@
8009A2DC __osPfsPifRam
8009B490 vimgr_bss_11B0
8009B4D8 vimgr_bss_11F8
8009B500 __osEepPifRam
8009B501 __osEepPifRam
8009B504 __osEepPifRam
8009B540 __osEepPifRam
800A4740 osProfileStop
800A8F58 osBbUsbDevGetHandle
800AB01C osVoiceCheckWord

View File

@ -8,9 +8,7 @@ checking_symbols = [
"lh",
"sw",
"sb",
"sh",
"ld",
"sd"
"sh"
]
stagedRegs = {}
@ -18,6 +16,7 @@ stagedRegs = {}
lineNum = 0
def isProblemLine(l, sp):
print(l)
x = l.split(sp)
x2 = x[1].split()[-1]
xtok = x2.replace("("," ").replace(")"," ").split()

View File

@ -815,24 +815,20 @@ D_A5000510 = 0xA5000510;
__osEventStateTab_later_in_array = 0x8009A120;
D_8009A124 = 0x8009A124;
D_80098990 = 0x80098990;
__osSiGetAccess = 0x8002F460;
__osContLastCmd = 0x80098AF0;
__osSiRawStartDma = 0x800304E0;
__osSiRelAccess = 0x8002F4A4;
func_80037550 = 0x80037550;
func_80035CA0 = 0x80035CA0;
func_80037320 = 0x80037320;
func_8002F1A8 = 0x8002F1A8;
D_80098A90 = 0x80098A90;
D_80098A98 = 0x80098A98;
func_8002F410 = 0x8002F410;
D_80098AF1 = 0x80098AF1;
siAccessBuf = 0x80098A90;
__osMaxControllers = 0x80098AF1;
__osPackRequestData = 0x8002F710;
__osContPifRam = 0x80098AB0;
__osContGetInitData = 0x8002F640;
D_80098AEC = 0x80098AEC;
func_8002F988 = 0x8002F988;
D_8009B500 = 0x8009B500;
__osEepPifRam = 0x8009B500;
D_8009B504 = 0x8009B504;
D_8009B501 = 0x8009B501;
D_8009B540 = 0x8009B540;
@ -9478,5 +9474,9 @@ D_800E64D0 = 0x800E64D0;
D_800E6690 = 0x800E6690;
D_8003FE6C = 0x8003FE6C;
D_800F6BD0 = 0x800F6BD0;
D_8009793A = 0x8009793A;
D_8003FB0E = 0x8003FB0E;
D_80041A30 = 0x80041A30;
D_80041CC0 = 0x80041CC0;
/* Reserved section for symbols that wont need to be removed */
func_80300170 = D_80300170;