1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-04-08 15:46:42 +00:00

Decomp game.c (#129)

* decomp most of game.c

* improve GameState_DrawInputDisplay matching

* fix merge conflicts

* pr suggestions

* remove builtin math functions
This commit is contained in:
krimtonz 2020-05-14 18:11:33 -05:00 committed by GitHub
parent efa9742984
commit 44ffb7ec62
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 1494 additions and 1977 deletions

1423
asm/game.s

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,142 @@
.rdata
glabel D_80144D50
.asciz "../game.c"
.balign 4
glabel D_80144D5C
.asciz " %08x (game_alloc)\n"
# EUC-JP: %08x (game_alloc) | % 08x bytes (game_alloc) remaining until Hailal's demise
.balign 4
glabel D_80144D8C
.asciz "../game.c"
.balign 4
.text
glabel GameState_Draw
/* B3B88C 800C46EC 27BDFF80 */ addiu $sp, $sp, -0x80
/* B3B890 800C46F0 AFBF0014 */ sw $ra, 0x14($sp)
/* B3B894 800C46F4 AFA40080 */ sw $a0, 0x80($sp)
/* B3B898 800C46F8 3C068014 */ lui $a2, %hi(D_80144D50) # $a2, 0x8014
/* B3B89C 800C46FC AFA50084 */ sw $a1, 0x84($sp)
/* B3B8A0 800C4700 24C64D50 */ addiu $a2, %lo(D_80144D50) # addiu $a2, $a2, 0x4d50
/* B3B8A4 800C4704 27A40064 */ addiu $a0, $sp, 0x64
/* B3B8A8 800C4708 0C031AB1 */ jal Graph_OpenDisps
/* B3B8AC 800C470C 240702EA */ li $a3, 746
/* B3B8B0 800C4710 8FAE0084 */ lw $t6, 0x84($sp)
/* B3B8B4 800C4714 8DC402C0 */ lw $a0, 0x2c0($t6)
/* B3B8B8 800C4718 0C031B08 */ jal Graph_GfxPlusOne
/* B3B8BC 800C471C AFA40078 */ sw $a0, 0x78($sp)
/* B3B8C0 800C4720 8FAF0084 */ lw $t7, 0x84($sp)
/* B3B8C4 800C4724 AFA2007C */ sw $v0, 0x7c($sp)
/* B3B8C8 800C4728 3C19DE00 */ lui $t9, 0xde00
/* B3B8CC 800C472C 8DE302B0 */ lw $v1, 0x2b0($t7)
/* B3B8D0 800C4730 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* B3B8D4 800C4734 24010001 */ li $at, 1
/* B3B8D8 800C4738 24780008 */ addiu $t8, $v1, 8
/* B3B8DC 800C473C ADF802B0 */ sw $t8, 0x2b0($t7)
/* B3B8E0 800C4740 AC790000 */ sw $t9, ($v1)
/* B3B8E4 800C4744 8FA8007C */ lw $t0, 0x7c($sp)
/* B3B8E8 800C4748 AC680004 */ sw $t0, 4($v1)
/* B3B8EC 800C474C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* B3B8F0 800C4750 84490184 */ lh $t1, 0x184($v0)
/* B3B8F4 800C4754 55210006 */ bnel $t1, $at, .L800C4770
/* B3B8F8 800C4758 8FAA0080 */ lw $t2, 0x80($sp)
/* B3B8FC 800C475C 0C03107C */ jal GameState_SetFBFilter
/* B3B900 800C4760 27A4007C */ addiu $a0, $sp, 0x7c
/* B3B904 800C4764 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* B3B908 800C4768 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* B3B90C 800C476C 8FAA0080 */ lw $t2, 0x80($sp)
.L800C4770:
/* B3B910 800C4770 3C038016 */ lui $v1, %hi(sLastButtonPressed) # $v1, 0x8016
/* B3B914 800C4774 246365C0 */ addiu $v1, %lo(sLastButtonPressed) # addiu $v1, $v1, 0x65c0
/* B3B918 800C4778 954B0014 */ lhu $t3, 0x14($t2)
/* B3B91C 800C477C 954C0020 */ lhu $t4, 0x20($t2)
/* B3B920 800C4780 016C6825 */ or $t5, $t3, $t4
/* B3B924 800C4784 A46D0000 */ sh $t5, ($v1)
/* B3B928 800C4788 844E1032 */ lh $t6, 0x1032($v0)
/* B3B92C 800C478C 31A4FFFF */ andi $a0, $t5, 0xffff
/* B3B930 800C4790 55C00006 */ bnezl $t6, .L800C47AC
/* B3B934 800C4794 8458011C */ lh $t8, 0x11c($v0)
/* B3B938 800C4798 0C031156 */ jal GameState_DrawInputDisplay
/* B3B93C 800C479C 27A5007C */ addiu $a1, $sp, 0x7c
/* B3B940 800C47A0 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* B3B944 800C47A4 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* B3B948 800C47A8 8458011C */ lh $t8, 0x11c($v0)
.L800C47AC:
/* B3B94C 800C47AC 330F0001 */ andi $t7, $t8, 1
/* B3B950 800C47B0 51E00010 */ beql $t7, $zero, .L800C47F4
/* B3B954 800C47B4 845900D4 */ lh $t9, 0xd4($v0)
/* B3B958 800C47B8 0C03EEE3 */ jal GfxPrint_Ctor
/* B3B95C 800C47BC 27A4002C */ addiu $a0, $sp, 0x2c
/* B3B960 800C47C0 27A4002C */ addiu $a0, $sp, 0x2c
/* B3B964 800C47C4 0C03EF07 */ jal GfxPrint_Open
/* B3B968 800C47C8 8FA5007C */ lw $a1, 0x7c($sp)
/* B3B96C 800C47CC 0C03BA94 */ jal func_800EEA50
/* B3B970 800C47D0 27A4002C */ addiu $a0, $sp, 0x2c
/* B3B974 800C47D4 0C03EF19 */ jal GfxPrint_Close
/* B3B978 800C47D8 27A4002C */ addiu $a0, $sp, 0x2c
/* B3B97C 800C47DC AFA2007C */ sw $v0, 0x7c($sp)
/* B3B980 800C47E0 0C03EF05 */ jal GfxPrint_Dtor
/* B3B984 800C47E4 27A4002C */ addiu $a0, $sp, 0x2c
/* B3B988 800C47E8 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* B3B98C 800C47EC 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* B3B990 800C47F0 845900D4 */ lh $t9, 0xd4($v0)
.L800C47F4:
/* B3B994 800C47F4 07230010 */ bgezl $t9, .L800C4838
/* B3B998 800C47F8 8FA9007C */ lw $t1, 0x7c($sp)
/* B3B99C 800C47FC 0C034F7E */ jal DebugArena_Display
/* B3B9A0 800C4800 00000000 */ nop
/* B3B9A4 800C4804 0C03F616 */ jal SystemArena_Display
/* B3B9A8 800C4808 00000000 */ nop
/* B3B9AC 800C480C 8FA40080 */ lw $a0, 0x80($sp)
/* B3B9B0 800C4810 0C030EE2 */ jal THA_GetSize
/* B3B9B4 800C4814 24840074 */ addiu $a0, $a0, 0x74
/* B3B9B8 800C4818 3C048014 */ lui $a0, %hi(D_80144D5C) # $a0, 0x8014
/* B3B9BC 800C481C 24844D5C */ addiu $a0, %lo(D_80144D5C) # addiu $a0, $a0, 0x4d5c
/* B3B9C0 800C4820 0C00084C */ jal osSyncPrintf
/* B3B9C4 800C4824 00402825 */ move $a1, $v0
/* B3B9C8 800C4828 3C088016 */ lui $t0, %hi(gGameInfo) # $t0, 0x8016
/* B3B9CC 800C482C 8D08FA90 */ lw $t0, %lo(gGameInfo)($t0)
/* B3B9D0 800C4830 A50000D4 */ sh $zero, 0xd4($t0)
/* B3B9D4 800C4834 8FA9007C */ lw $t1, 0x7c($sp)
.L800C4838:
/* B3B9D8 800C4838 3C0BDF00 */ lui $t3, 0xdf00
/* B3B9DC 800C483C 252A0008 */ addiu $t2, $t1, 8
/* B3B9E0 800C4840 AFAA007C */ sw $t2, 0x7c($sp)
/* B3B9E4 800C4844 AD200004 */ sw $zero, 4($t1)
/* B3B9E8 800C4848 AD2B0000 */ sw $t3, ($t1)
/* B3B9EC 800C484C 8FA5007C */ lw $a1, 0x7c($sp)
/* B3B9F0 800C4850 0C031B0A */ jal Graph_BranchDlist
/* B3B9F4 800C4854 8FA40078 */ lw $a0, 0x78($sp)
/* B3B9F8 800C4858 8FAC007C */ lw $t4, 0x7c($sp)
/* B3B9FC 800C485C 8FAD0084 */ lw $t5, 0x84($sp)
/* B3BA00 800C4860 3C068014 */ lui $a2, %hi(D_80144D8C) # $a2, 0x8014
/* B3BA04 800C4864 24C64D8C */ addiu $a2, %lo(D_80144D8C) # addiu $a2, $a2, 0x4d8c
/* B3BA08 800C4868 ADAC02C0 */ sw $t4, 0x2c0($t5)
/* B3BA0C 800C486C 8FA50084 */ lw $a1, 0x84($sp)
/* B3BA10 800C4870 27A40064 */ addiu $a0, $sp, 0x64
/* B3BA14 800C4874 0C031AD5 */ jal Graph_CloseDisps
/* B3BA18 800C4878 24070320 */ li $a3, 800
/* B3BA1C 800C487C 0C018F5F */ jal func_80063D7C
/* B3BA20 800C4880 8FA40084 */ lw $a0, 0x84($sp)
/* B3BA24 800C4884 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* B3BA28 800C4888 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* B3BA2C 800C488C 3C048016 */ lui $a0, %hi(D_801664D0) # $a0, 0x8016
/* B3BA30 800C4890 248464D0 */ addiu $a0, %lo(D_801664D0) # addiu $a0, $a0, 0x64d0
/* B3BA34 800C4894 85D800D4 */ lh $t8, 0xd4($t6)
/* B3BA38 800C4898 53000009 */ beql $t8, $zero, .L800C48C0
/* B3BA3C 800C489C 8FBF0014 */ lw $ra, 0x14($sp)
/* B3BA40 800C48A0 0C032671 */ jal SpeedMeter_DrawTimeEntries
/* B3BA44 800C48A4 8FA50084 */ lw $a1, 0x84($sp)
/* B3BA48 800C48A8 3C048016 */ lui $a0, %hi(D_801664D0) # $a0, 0x8016
/* B3BA4C 800C48AC 248464D0 */ addiu $a0, %lo(D_801664D0) # addiu $a0, $a0, 0x64d0
/* B3BA50 800C48B0 8FA50084 */ lw $a1, 0x84($sp)
/* B3BA54 800C48B4 0C032841 */ jal SpeedMeter_DrawAllocEntries
/* B3BA58 800C48B8 8FA60080 */ lw $a2, 0x80($sp)
/* B3BA5C 800C48BC 8FBF0014 */ lw $ra, 0x14($sp)
.L800C48C0:
/* B3BA60 800C48C0 27BD0080 */ addiu $sp, $sp, 0x80
/* B3BA64 800C48C4 03E00008 */ jr $ra
/* B3BA68 800C48C8 00000000 */ nop

View file

@ -0,0 +1,111 @@
.rdata
glabel D_80144D30
.incbin "baserom.z64", 0xBBBED0, 0x20
.text
glabel GameState_DrawInputDisplay
/* B3B6F8 800C4558 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B3B6FC 800C455C AFB30014 */ sw $s3, 0x14($sp)
/* B3B700 800C4560 AFB20010 */ sw $s2, 0x10($sp)
/* B3B704 800C4564 AFB1000C */ sw $s1, 0xc($sp)
/* B3B708 800C4568 AFB00008 */ sw $s0, 8($sp)
/* B3B70C 800C456C AFA40018 */ sw $a0, 0x18($sp)
/* B3B710 800C4570 8CA20000 */ lw $v0, ($a1)
/* B3B714 800C4574 3087FFFF */ andi $a3, $a0, 0xffff
/* B3B718 800C4578 3C03E700 */ lui $v1, 0xe700
/* B3B71C 800C457C 00402025 */ move $a0, $v0
/* B3B720 800C4580 AC830000 */ sw $v1, ($a0)
/* B3B724 800C4584 AC800004 */ sw $zero, 4($a0)
/* B3B728 800C4588 24420008 */ addiu $v0, $v0, 8
/* B3B72C 800C458C 00402025 */ move $a0, $v0
/* B3B730 800C4590 3C0EEF30 */ lui $t6, 0xef30
/* B3B734 800C4594 AC8E0000 */ sw $t6, ($a0)
/* B3B738 800C4598 AC800004 */ sw $zero, 4($a0)
/* B3B73C 800C459C 3C128014 */ lui $s2, %hi(D_80144D30) # $s2, 0x8014
/* B3B740 800C45A0 24420008 */ addiu $v0, $v0, 8
/* B3B744 800C45A4 26524D30 */ addiu $s2, %lo(D_80144D30) # addiu $s2, $s2, 0x4d30
/* B3B748 800C45A8 00002025 */ move $a0, $zero
/* B3B74C 800C45AC 3C10F700 */ lui $s0, 0xf700
/* B3B750 800C45B0 3C11F600 */ lui $s1, 0xf600
/* B3B754 800C45B4 24130010 */ li $s3, 16
/* B3B758 800C45B8 240A0001 */ li $t2, 1
/* B3B75C 800C45BC 240B0002 */ li $t3, 2
.L800C45C0:
/* B3B760 800C45C0 240F0001 */ li $t7, 1
/* B3B764 800C45C4 008FC004 */ sllv $t8, $t7, $a0
/* B3B768 800C45C8 00F8C824 */ and $t9, $a3, $t8
/* B3B76C 800C45CC 1320001C */ beqz $t9, .L800C4640
/* B3B770 800C45D0 00047040 */ sll $t6, $a0, 1
/* B3B774 800C45D4 00403025 */ move $a2, $v0
/* B3B778 800C45D8 ACD00000 */ sw $s0, ($a2)
/* B3B77C 800C45DC 024E4021 */ addu $t0, $s2, $t6
/* B3B780 800C45E0 95090000 */ lhu $t1, ($t0)
/* B3B784 800C45E4 000A6080 */ sll $t4, $t2, 2
/* B3B788 800C45E8 258C00E1 */ addiu $t4, $t4, 0xe1
/* B3B78C 800C45EC 00097C00 */ sll $t7, $t1, 0x10
/* B3B790 800C45F0 319903FF */ andi $t9, $t4, 0x3ff
/* B3B794 800C45F4 012FC025 */ or $t8, $t1, $t7
/* B3B798 800C45F8 00046880 */ sll $t5, $a0, 2
/* B3B79C 800C45FC 00197380 */ sll $t6, $t9, 0xe
/* B3B7A0 800C4600 25AD00E2 */ addiu $t5, $t5, 0xe2
/* B3B7A4 800C4604 ACD80004 */ sw $t8, 4($a2)
/* B3B7A8 800C4608 24420008 */ addiu $v0, $v0, 8
/* B3B7AC 800C460C 01D17825 */ or $t7, $t6, $s1
/* B3B7B0 800C4610 00403025 */ move $a2, $v0
/* B3B7B4 800C4614 31B903FF */ andi $t9, $t5, 0x3ff
/* B3B7B8 800C4618 00197380 */ sll $t6, $t9, 0xe
/* B3B7BC 800C461C 35F8037C */ ori $t8, $t7, 0x37c
/* B3B7C0 800C4620 35CF0370 */ ori $t7, $t6, 0x370
/* B3B7C4 800C4624 ACCF0004 */ sw $t7, 4($a2)
/* B3B7C8 800C4628 ACD80000 */ sw $t8, ($a2)
/* B3B7CC 800C462C 24420008 */ addiu $v0, $v0, 8
/* B3B7D0 800C4630 00403025 */ move $a2, $v0
/* B3B7D4 800C4634 ACC30000 */ sw $v1, ($a2)
/* B3B7D8 800C4638 ACC00004 */ sw $zero, 4($a2)
/* B3B7DC 800C463C 24420008 */ addiu $v0, $v0, 8
.L800C4640:
/* B3B7E0 800C4640 24180001 */ li $t8, 1
/* B3B7E4 800C4644 0158C804 */ sllv $t9, $t8, $t2
/* B3B7E8 800C4648 00F97024 */ and $t6, $a3, $t9
/* B3B7EC 800C464C 11C0001C */ beqz $t6, .L800C46C0
/* B3B7F0 800C4650 00403025 */ move $a2, $v0
/* B3B7F4 800C4654 00047840 */ sll $t7, $a0, 1
/* B3B7F8 800C4658 024FC021 */ addu $t8, $s2, $t7
/* B3B7FC 800C465C ACD00000 */ sw $s0, ($a2)
/* B3B800 800C4660 97080002 */ lhu $t0, 2($t8)
/* B3B804 800C4664 000B4880 */ sll $t1, $t3, 2
/* B3B808 800C4668 252900E1 */ addiu $t1, $t1, 0xe1
/* B3B80C 800C466C 0008CC00 */ sll $t9, $t0, 0x10
/* B3B810 800C4670 312F03FF */ andi $t7, $t1, 0x3ff
/* B3B814 800C4674 01197025 */ or $t6, $t0, $t9
/* B3B818 800C4678 000FC380 */ sll $t8, $t7, 0xe
/* B3B81C 800C467C 000A6080 */ sll $t4, $t2, 2
/* B3B820 800C4680 258C00E2 */ addiu $t4, $t4, 0xe2
/* B3B824 800C4684 0311C825 */ or $t9, $t8, $s1
/* B3B828 800C4688 ACCE0004 */ sw $t6, 4($a2)
/* B3B82C 800C468C 24420008 */ addiu $v0, $v0, 8
/* B3B830 800C4690 00403025 */ move $a2, $v0
/* B3B834 800C4694 318F03FF */ andi $t7, $t4, 0x3ff
/* B3B838 800C4698 000FC380 */ sll $t8, $t7, 0xe
/* B3B83C 800C469C 372E037C */ ori $t6, $t9, 0x37c
/* B3B840 800C46A0 37190370 */ ori $t9, $t8, 0x370
/* B3B844 800C46A4 ACD90004 */ sw $t9, 4($a2)
/* B3B848 800C46A8 ACCE0000 */ sw $t6, ($a2)
/* B3B84C 800C46AC 24420008 */ addiu $v0, $v0, 8
/* B3B850 800C46B0 00403025 */ move $a2, $v0
/* B3B854 800C46B4 ACC30000 */ sw $v1, ($a2)
/* B3B858 800C46B8 ACC00004 */ sw $zero, 4($a2)
/* B3B85C 800C46BC 24420008 */ addiu $v0, $v0, 8
.L800C46C0:
/* B3B860 800C46C0 01602025 */ move $a0, $t3
/* B3B864 800C46C4 254A0002 */ addiu $t2, $t2, 2
/* B3B868 800C46C8 1573FFBD */ bne $t3, $s3, .L800C45C0
/* B3B86C 800C46CC 256B0002 */ addiu $t3, $t3, 2
/* B3B870 800C46D0 ACA20000 */ sw $v0, ($a1)
/* B3B874 800C46D4 8FB30014 */ lw $s3, 0x14($sp)
/* B3B878 800C46D8 8FB20010 */ lw $s2, 0x10($sp)
/* B3B87C 800C46DC 8FB1000C */ lw $s1, 0xc($sp)
/* B3B880 800C46E0 8FB00008 */ lw $s0, 8($sp)
/* B3B884 800C46E4 03E00008 */ jr $ra
/* B3B888 800C46E8 27BD0018 */ addiu $sp, $sp, 0x18

View file

@ -0,0 +1,143 @@
.rdata
glabel D_80144E28
.asciz "!!\n"
# EUC-JP: !! | Hyal temporary release!
.balign 4
glabel D_80144E3C
.asciz "%c"
.balign 4
glabel D_80144E40
.asciz "\x1b[31m"
.balign 4
glabel D_80144E48
.asciz "\n"
# EUC-JP: | Not enough memory. Change Hyrule size to maximum possible
.balign 4
glabel D_80144E88
.asciz "(hyral=%08x max=%08x free=%08x alloc=%08x)\n"
.balign 4
glabel D_80144EB4
.asciz "\x1b[m"
.balign 4
glabel D_80144EB8
.asciz " %u \n"
# EUC-JP: %u | Hyal re-allocation size =%u bytes
.balign 4
glabel D_80144EDC
.asciz "../game.c"
.balign 4
glabel D_80144EE8
.asciz "\n"
# EUC-JP: | Successful Hyal Reacquisition
.balign 4
glabel D_80144EFC
.asciz "\n"
# EUC-JP: | Hyal reacquisition failure
.balign 4
glabel D_80144F10
.asciz "../game.c"
.balign 4
.text
glabel GameState_Realloc
/* B3C0C0 800C4F20 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B3C0C4 800C4F24 AFBF001C */ sw $ra, 0x1c($sp)
/* B3C0C8 800C4F28 AFA50044 */ sw $a1, 0x44($sp)
/* B3C0CC 800C4F2C 8C8E0078 */ lw $t6, 0x78($a0)
/* B3C0D0 800C4F30 00803025 */ move $a2, $a0
/* B3C0D4 800C4F34 24840074 */ addiu $a0, $a0, 0x74
/* B3C0D8 800C4F38 AFA40020 */ sw $a0, 0x20($sp)
/* B3C0DC 800C4F3C AFA60040 */ sw $a2, 0x40($sp)
/* B3C0E0 800C4F40 0C030EFE */ jal THA_Dt
/* B3C0E4 800C4F44 AFAE0028 */ sw $t6, 0x28($sp)
/* B3C0E8 800C4F48 8FA60040 */ lw $a2, 0x40($sp)
/* B3C0EC 800C4F4C 8FA50028 */ lw $a1, 0x28($sp)
/* B3C0F0 800C4F50 24C40084 */ addiu $a0, $a2, 0x84
/* B3C0F4 800C4F54 0C0315C9 */ jal GameAlloc_Free
/* B3C0F8 800C4F58 AFA40024 */ sw $a0, 0x24($sp)
/* B3C0FC 800C4F5C 3C048014 */ lui $a0, %hi(D_80144E28) # $a0, 0x8014
/* B3C100 800C4F60 0C00084C */ jal osSyncPrintf
/* B3C104 800C4F64 24844E28 */ addiu $a0, %lo(D_80144E28) # addiu $a0, $a0, 0x4e28
/* B3C108 800C4F68 27A40034 */ addiu $a0, $sp, 0x34
/* B3C10C 800C4F6C 27A50030 */ addiu $a1, $sp, 0x30
/* B3C110 800C4F70 0C03F622 */ jal SystemArena_GetSizes
/* B3C114 800C4F74 27A6002C */ addiu $a2, $sp, 0x2c
/* B3C118 800C4F78 8FB80034 */ lw $t8, 0x34($sp)
/* B3C11C 800C4F7C 8FAF0044 */ lw $t7, 0x44($sp)
/* B3C120 800C4F80 3C048014 */ lui $a0, %hi(D_80144E3C) # $a0, 0x8014
/* B3C124 800C4F84 2719FFF0 */ addiu $t9, $t8, -0x10
/* B3C128 800C4F88 032F082B */ sltu $at, $t9, $t7
/* B3C12C 800C4F8C 10200017 */ beqz $at, .L800C4FEC
/* B3C130 800C4F90 24844E3C */ addiu $a0, %lo(D_80144E3C) # addiu $a0, $a0, 0x4e3c
/* B3C134 800C4F94 0C00084C */ jal osSyncPrintf
/* B3C138 800C4F98 24050007 */ li $a1, 7
/* B3C13C 800C4F9C 3C048014 */ lui $a0, %hi(D_80144E40) # $a0, 0x8014
/* B3C140 800C4FA0 0C00084C */ jal osSyncPrintf
/* B3C144 800C4FA4 24844E40 */ addiu $a0, %lo(D_80144E40) # addiu $a0, $a0, 0x4e40
/* B3C148 800C4FA8 3C048014 */ lui $a0, %hi(D_80144E48) # $a0, 0x8014
/* B3C14C 800C4FAC 0C00084C */ jal osSyncPrintf
/* B3C150 800C4FB0 24844E48 */ addiu $a0, %lo(D_80144E48) # addiu $a0, $a0, 0x4e48
/* B3C154 800C4FB4 8FA8002C */ lw $t0, 0x2c($sp)
/* B3C158 800C4FB8 3C048014 */ lui $a0, %hi(D_80144E88) # $a0, 0x8014
/* B3C15C 800C4FBC 24844E88 */ addiu $a0, %lo(D_80144E88) # addiu $a0, $a0, 0x4e88
/* B3C160 800C4FC0 8FA50044 */ lw $a1, 0x44($sp)
/* B3C164 800C4FC4 8FA60034 */ lw $a2, 0x34($sp)
/* B3C168 800C4FC8 8FA70030 */ lw $a3, 0x30($sp)
/* B3C16C 800C4FCC 0C00084C */ jal osSyncPrintf
/* B3C170 800C4FD0 AFA80010 */ sw $t0, 0x10($sp)
/* B3C174 800C4FD4 3C048014 */ lui $a0, %hi(D_80144EB4) # $a0, 0x8014
/* B3C178 800C4FD8 0C00084C */ jal osSyncPrintf
/* B3C17C 800C4FDC 24844EB4 */ addiu $a0, %lo(D_80144EB4) # addiu $a0, $a0, 0x4eb4
/* B3C180 800C4FE0 8FA90034 */ lw $t1, 0x34($sp)
/* B3C184 800C4FE4 252AFFF0 */ addiu $t2, $t1, -0x10
/* B3C188 800C4FE8 AFAA0044 */ sw $t2, 0x44($sp)
.L800C4FEC:
/* B3C18C 800C4FEC 3C048014 */ lui $a0, %hi(D_80144EB8) # $a0, 0x8014
/* B3C190 800C4FF0 24844EB8 */ addiu $a0, %lo(D_80144EB8) # addiu $a0, $a0, 0x4eb8
/* B3C194 800C4FF4 0C00084C */ jal osSyncPrintf
/* B3C198 800C4FF8 8FA50044 */ lw $a1, 0x44($sp)
/* B3C19C 800C4FFC 3C068014 */ lui $a2, %hi(D_80144EDC) # $a2, 0x8014
/* B3C1A0 800C5000 24C64EDC */ addiu $a2, %lo(D_80144EDC) # addiu $a2, $a2, 0x4edc
/* B3C1A4 800C5004 8FA40024 */ lw $a0, 0x24($sp)
/* B3C1A8 800C5008 8FA50044 */ lw $a1, 0x44($sp)
/* B3C1AC 800C500C 0C03158F */ jal GameAlloc_MallocDebug
/* B3C1B0 800C5010 24070409 */ li $a3, 1033
/* B3C1B4 800C5014 10400009 */ beqz $v0, .L800C503C
/* B3C1B8 800C5018 00402825 */ move $a1, $v0
/* B3C1BC 800C501C 8FA40020 */ lw $a0, 0x20($sp)
/* B3C1C0 800C5020 0C030EF5 */ jal THA_Ct
/* B3C1C4 800C5024 8FA60044 */ lw $a2, 0x44($sp)
/* B3C1C8 800C5028 3C048014 */ lui $a0, %hi(D_80144EE8) # $a0, 0x8014
/* B3C1CC 800C502C 0C00084C */ jal osSyncPrintf
/* B3C1D0 800C5030 24844EE8 */ addiu $a0, %lo(D_80144EE8) # addiu $a0, $a0, 0x4ee8
/* B3C1D4 800C5034 1000000F */ b .L800C5074
/* B3C1D8 800C5038 8FBF001C */ lw $ra, 0x1c($sp)
.L800C503C:
/* B3C1DC 800C503C 8FA40020 */ lw $a0, 0x20($sp)
/* B3C1E0 800C5040 00002825 */ move $a1, $zero
/* B3C1E4 800C5044 0C030EF5 */ jal THA_Ct
/* B3C1E8 800C5048 00003025 */ move $a2, $zero
/* B3C1EC 800C504C 3C048014 */ lui $a0, %hi(D_80144EFC) # $a0, 0x8014
/* B3C1F0 800C5050 0C00084C */ jal osSyncPrintf
/* B3C1F4 800C5054 24844EFC */ addiu $a0, %lo(D_80144EFC) # addiu $a0, $a0, 0x4efc
/* B3C1F8 800C5058 0C03F616 */ jal SystemArena_Display
/* B3C1FC 800C505C 00000000 */ nop
/* B3C200 800C5060 3C048014 */ lui $a0, %hi(D_80144F10) # $a0, 0x8014
/* B3C204 800C5064 24844F10 */ addiu $a0, %lo(D_80144F10) # addiu $a0, $a0, 0x4f10
/* B3C208 800C5068 0C0359C3 */ jal Fault_AddHungupAndCrash
/* B3C20C 800C506C 24050414 */ li $a1, 1044
/* B3C210 800C5070 8FBF001C */ lw $ra, 0x1c($sp)
.L800C5074:
/* B3C214 800C5074 27BD0040 */ addiu $sp, $sp, 0x40
/* B3C218 800C5078 03E00008 */ jr $ra
/* B3C21C 800C507C 00000000 */ nop

View file

@ -0,0 +1,266 @@
.late_rodata
glabel D_801450E8
.float 0.833
.text
glabel GameState_Update
/* B3BC68 800C4AC8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B3BC6C 800C4ACC AFBF0014 */ sw $ra, 0x14($sp)
/* B3BC70 800C4AD0 AFA40020 */ sw $a0, 0x20($sp)
/* B3BC74 800C4AD4 8C860000 */ lw $a2, ($a0)
/* B3BC78 800C4AD8 00C02025 */ move $a0, $a2
/* B3BC7C 800C4ADC 0C031233 */ jal GameState_SetFrameBuffer
/* B3BC80 800C4AE0 AFA6001C */ sw $a2, 0x1c($sp)
/* B3BC84 800C4AE4 8FA40020 */ lw $a0, 0x20($sp)
/* B3BC88 800C4AE8 8C990004 */ lw $t9, 4($a0)
/* B3BC8C 800C4AEC 0320F809 */ jalr $t9
/* B3BC90 800C4AF0 00000000 */ nop
/* B3BC94 800C4AF4 0C0310D1 */ jal func_800C4344
/* B3BC98 800C4AF8 8FA40020 */ lw $a0, 0x20($sp)
/* B3BC9C 800C4AFC 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016
/* B3BCA0 800C4B00 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570
/* B3BCA4 800C4B04 8CE20000 */ lw $v0, ($a3)
/* B3BCA8 800C4B08 24040001 */ li $a0, 1
/* B3BCAC 800C4B0C 8FA6001C */ lw $a2, 0x1c($sp)
/* B3BCB0 800C4B10 84430152 */ lh $v1, 0x152($v0)
/* B3BCB4 800C4B14 1483002D */ bne $a0, $v1, .L800C4BCC
/* B3BCB8 800C4B18 28610002 */ slti $at, $v1, 2
/* B3BCBC 800C4B1C 84430134 */ lh $v1, 0x134($v0)
/* B3BCC0 800C4B20 3C0F8001 */ lui $t7, %hi(gViConfigMode) # $t7, 0x8001
/* B3BCC4 800C4B24 25EF3910 */ addiu $t7, %lo(gViConfigMode) # addiu $t7, $t7, 0x3910
/* B3BCC8 800C4B28 04610010 */ bgez $v1, .L800C4B6C
/* B3BCCC 800C4B2C 3C188001 */ lui $t8, %hi(gViConfigFeatures) # $t8, 0x8001
/* B3BCD0 800C4B30 A4400134 */ sh $zero, 0x134($v0)
/* B3BCD4 800C4B34 ACCF0284 */ sw $t7, 0x284($a2)
/* B3BCD8 800C4B38 8F18943C */ lw $t8, %lo(gViConfigFeatures)($t8)
/* B3BCDC 800C4B3C 3C018001 */ lui $at, %hi(gViConfigXScale)
/* B3BCE0 800C4B40 24050002 */ li $a1, 2
/* B3BCE4 800C4B44 ACD802E4 */ sw $t8, 0x2e4($a2)
/* B3BCE8 800C4B48 C4249440 */ lwc1 $f4, %lo(gViConfigXScale)($at)
/* B3BCEC 800C4B4C 3C018001 */ lui $at, %hi(gViConfigYScale)
/* B3BCF0 800C4B50 E4C402F4 */ swc1 $f4, 0x2f4($a2)
/* B3BCF4 800C4B54 C4269444 */ lwc1 $f6, %lo(gViConfigYScale)($at)
/* B3BCF8 800C4B58 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BCFC 800C4B5C 44810000 */ mtc1 $at, $f0
/* B3BD00 800C4B60 E4C602F8 */ swc1 $f6, 0x2f8($a2)
/* B3BD04 800C4B64 1000006D */ b .L800C4D1C
/* B3BD08 800C4B68 8CE20000 */ lw $v0, ($a3)
.L800C4B6C:
/* B3BD0C 800C4B6C 18600013 */ blez $v1, .L800C4BBC
/* B3BD10 800C4B70 3C048016 */ lui $a0, %hi(D_80166528) # $a0, 0x8016
/* B3BD14 800C4B74 8FA50020 */ lw $a1, 0x20($sp)
/* B3BD18 800C4B78 24846528 */ addiu $a0, %lo(D_80166528) # addiu $a0, $a0, 0x6528
/* B3BD1C 800C4B7C AFA6001C */ sw $a2, 0x1c($sp)
/* B3BD20 800C4B80 0C02B2BE */ jal func_800ACAF8
/* B3BD24 800C4B84 24A50014 */ addiu $a1, $a1, 0x14
/* B3BD28 800C4B88 8FA6001C */ lw $a2, 0x1c($sp)
/* B3BD2C 800C4B8C 3C038016 */ lui $v1, %hi(D_80166528) # $v1, 0x8016
/* B3BD30 800C4B90 24636528 */ addiu $v1, %lo(D_80166528) # addiu $v1, $v1, 0x6528
/* B3BD34 800C4B94 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BD38 800C4B98 44810000 */ mtc1 $at, $f0
/* B3BD3C 800C4B9C ACC30284 */ sw $v1, 0x284($a2)
/* B3BD40 800C4BA0 8C690080 */ lw $t1, 0x80($v1)
/* B3BD44 800C4BA4 3C078016 */ lui $a3, %hi(gGameInfo) # $a3, 0x8016
/* B3BD48 800C4BA8 24E7FA90 */ addiu $a3, %lo(gGameInfo) # addiu $a3, $a3, -0x570
/* B3BD4C 800C4BAC E4C002F4 */ swc1 $f0, 0x2f4($a2)
/* B3BD50 800C4BB0 E4C002F8 */ swc1 $f0, 0x2f8($a2)
/* B3BD54 800C4BB4 ACC902E4 */ sw $t1, 0x2e4($a2)
/* B3BD58 800C4BB8 8CE20000 */ lw $v0, ($a3)
.L800C4BBC:
/* B3BD5C 800C4BBC 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BD60 800C4BC0 44810000 */ mtc1 $at, $f0
/* B3BD64 800C4BC4 10000055 */ b .L800C4D1C
/* B3BD68 800C4BC8 24050002 */ li $a1, 2
.L800C4BCC:
/* B3BD6C 800C4BCC 1420004F */ bnez $at, .L800C4D0C
/* B3BD70 800C4BD0 24050002 */ li $a1, 2
/* B3BD74 800C4BD4 3C0A8001 */ lui $t2, %hi(gViConfigMode) # $t2, 0x8001
/* B3BD78 800C4BD8 254A3910 */ addiu $t2, %lo(gViConfigMode) # addiu $t2, $t2, 0x3910
/* B3BD7C 800C4BDC ACCA0284 */ sw $t2, 0x284($a2)
/* B3BD80 800C4BE0 3C0B8001 */ lui $t3, %hi(gViConfigFeatures) # $t3, 0x8001
/* B3BD84 800C4BE4 8D6B943C */ lw $t3, %lo(gViConfigFeatures)($t3)
/* B3BD88 800C4BE8 3C018001 */ lui $at, %hi(gViConfigXScale)
/* B3BD8C 800C4BEC 3C198001 */ lui $t9, %hi(osViModeMpalLan1) # $t9, 0x8001
/* B3BD90 800C4BF0 ACCB02E4 */ sw $t3, 0x2e4($a2)
/* B3BD94 800C4BF4 C4289440 */ lwc1 $f8, %lo(gViConfigXScale)($at)
/* B3BD98 800C4BF8 3C018001 */ lui $at, %hi(gViConfigYScale)
/* B3BD9C 800C4BFC 3C188001 */ lui $t8, %hi(osViModePalLan1) # $t8, 0x8001
/* B3BDA0 800C4C00 E4C802F4 */ swc1 $f8, 0x2f4($a2)
/* B3BDA4 800C4C04 C42A9444 */ lwc1 $f10, %lo(gViConfigYScale)($at)
/* B3BDA8 800C4C08 24010006 */ li $at, 6
/* B3BDAC 800C4C0C 3C0A8001 */ lui $t2, %hi(osViModeFpalLan1) # $t2, 0x8001
/* B3BDB0 800C4C10 E4CA02F8 */ swc1 $f10, 0x2f8($a2)
/* B3BDB4 800C4C14 8CE20000 */ lw $v0, ($a3)
/* B3BDB8 800C4C18 24050002 */ li $a1, 2
/* B3BDBC 800C4C1C 3C0D8001 */ lui $t5, %hi(osViModeNtscLan1) # $t5, 0x8001
/* B3BDC0 800C4C20 84430152 */ lh $v1, 0x152($v0)
/* B3BDC4 800C4C24 2739AE50 */ addiu $t9, %lo(osViModeMpalLan1) # addiu $t9, $t9, -0x51b0
/* B3BDC8 800C4C28 2718ACA0 */ addiu $t8, %lo(osViModePalLan1) # addiu $t8, $t8, -0x5360
/* B3BDCC 800C4C2C 10610006 */ beq $v1, $at, .L800C4C48
/* B3BDD0 800C4C30 254AAF20 */ addiu $t2, %lo(osViModeFpalLan1) # addiu $t2, $t2, -0x50e0
/* B3BDD4 800C4C34 14A3000C */ bne $a1, $v1, .L800C4C68
/* B3BDD8 800C4C38 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000
/* B3BDDC 800C4C3C 25080300 */ addiu $t0, %lo(osTvType) # addiu $t0, $t0, 0x300
/* B3BDE0 800C4C40 8D0C0000 */ lw $t4, ($t0)
/* B3BDE4 800C4C44 148C0008 */ bne $a0, $t4, .L800C4C68
.L800C4C48:
/* B3BDE8 800C4C48 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BDEC 800C4C4C 44810000 */ mtc1 $at, $f0
/* B3BDF0 800C4C50 25ADAE00 */ addiu $t5, %lo(osViModeNtscLan1) # addiu $t5, $t5, -0x5200
/* B3BDF4 800C4C54 ACCD0284 */ sw $t5, 0x284($a2)
/* B3BDF8 800C4C58 E4C002F8 */ swc1 $f0, 0x2f8($a2)
/* B3BDFC 800C4C5C 8CE20000 */ lw $v0, ($a3)
/* B3BE00 800C4C60 24050002 */ li $a1, 2
/* B3BE04 800C4C64 84430152 */ lh $v1, 0x152($v0)
.L800C4C68:
/* B3BE08 800C4C68 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BE0C 800C4C6C 44810000 */ mtc1 $at, $f0
/* B3BE10 800C4C70 3C088000 */ lui $t0, %hi(osTvType) # $t0, 0x8000
/* B3BE14 800C4C74 24010005 */ li $at, 5
/* B3BE18 800C4C78 10610006 */ beq $v1, $at, .L800C4C94
/* B3BE1C 800C4C7C 25080300 */ addiu $t0, %lo(osTvType) # addiu $t0, $t0, 0x300
/* B3BE20 800C4C80 54A30009 */ bnel $a1, $v1, .L800C4CA8
/* B3BE24 800C4C84 24010004 */ li $at, 4
/* B3BE28 800C4C88 8D0E0000 */ lw $t6, ($t0)
/* B3BE2C 800C4C8C 54AE0006 */ bnel $a1, $t6, .L800C4CA8
/* B3BE30 800C4C90 24010004 */ li $at, 4
.L800C4C94:
/* B3BE34 800C4C94 ACD90284 */ sw $t9, 0x284($a2)
/* B3BE38 800C4C98 E4C002F8 */ swc1 $f0, 0x2f8($a2)
/* B3BE3C 800C4C9C 8CE20000 */ lw $v0, ($a3)
/* B3BE40 800C4CA0 84430152 */ lh $v1, 0x152($v0)
/* B3BE44 800C4CA4 24010004 */ li $at, 4
.L800C4CA8:
/* B3BE48 800C4CA8 50610007 */ beql $v1, $at, .L800C4CC8
/* B3BE4C 800C4CAC ACD80284 */ sw $t8, 0x284($a2)
/* B3BE50 800C4CB0 54A30009 */ bnel $a1, $v1, .L800C4CD8
/* B3BE54 800C4CB4 24010003 */ li $at, 3
/* B3BE58 800C4CB8 8D0F0000 */ lw $t7, ($t0)
/* B3BE5C 800C4CBC 55E00006 */ bnezl $t7, .L800C4CD8
/* B3BE60 800C4CC0 24010003 */ li $at, 3
/* B3BE64 800C4CC4 ACD80284 */ sw $t8, 0x284($a2)
.L800C4CC8:
/* B3BE68 800C4CC8 E4C002F8 */ swc1 $f0, 0x2f8($a2)
/* B3BE6C 800C4CCC 8CE20000 */ lw $v0, ($a3)
/* B3BE70 800C4CD0 84430152 */ lh $v1, 0x152($v0)
/* B3BE74 800C4CD4 24010003 */ li $at, 3
.L800C4CD8:
/* B3BE78 800C4CD8 50610007 */ beql $v1, $at, .L800C4CF8
/* B3BE7C 800C4CDC ACCA0284 */ sw $t2, 0x284($a2)
/* B3BE80 800C4CE0 54A3000F */ bnel $a1, $v1, .L800C4D20
/* B3BE84 800C4CE4 844B1074 */ lh $t3, 0x1074($v0)
/* B3BE88 800C4CE8 8D090000 */ lw $t1, ($t0)
/* B3BE8C 800C4CEC 5520000C */ bnezl $t1, .L800C4D20
/* B3BE90 800C4CF0 844B1074 */ lh $t3, 0x1074($v0)
/* B3BE94 800C4CF4 ACCA0284 */ sw $t2, 0x284($a2)
.L800C4CF8:
/* B3BE98 800C4CF8 3C018014 */ lui $at, %hi(D_801450E8)
/* B3BE9C 800C4CFC C43050E8 */ lwc1 $f16, %lo(D_801450E8)($at)
/* B3BEA0 800C4D00 E4D002F8 */ swc1 $f16, 0x2f8($a2)
/* B3BEA4 800C4D04 10000005 */ b .L800C4D1C
/* B3BEA8 800C4D08 8CE20000 */ lw $v0, ($a3)
.L800C4D0C:
/* B3BEAC 800C4D0C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3BEB0 800C4D10 ACC00284 */ sw $zero, 0x284($a2)
/* B3BEB4 800C4D14 44810000 */ mtc1 $at, $f0
/* B3BEB8 800C4D18 8CE20000 */ lw $v0, ($a3)
.L800C4D1C:
/* B3BEBC 800C4D1C 844B1074 */ lh $t3, 0x1074($v0)
.L800C4D20:
/* B3BEC0 800C4D20 24030015 */ li $v1, 21
/* B3BEC4 800C4D24 546B0046 */ bnel $v1, $t3, .L800C4E40
/* B3BEC8 800C4D28 84490190 */ lh $t1, 0x190($v0)
/* B3BECC 800C4D2C 844C1092 */ lh $t4, 0x1092($v0)
/* B3BED0 800C4D30 24090030 */ li $t1, 48
/* B3BED4 800C4D34 506C000F */ beql $v1, $t4, .L800C4D74
/* B3BED8 800C4D38 84431078 */ lh $v1, 0x1078($v0)
/* B3BEDC 800C4D3C A4431092 */ sh $v1, 0x1092($v0)
/* B3BEE0 800C4D40 8CED0000 */ lw $t5, ($a3)
/* B3BEE4 800C4D44 3C048001 */ lui $a0, %hi(gViConfigAdditionalScanLines) # $a0, 0x8001
/* B3BEE8 800C4D48 24849438 */ addiu $a0, %lo(gViConfigAdditionalScanLines) # addiu $a0, $a0, -0x6bc8
/* B3BEEC 800C4D4C A5A01076 */ sh $zero, 0x1076($t5)
/* B3BEF0 800C4D50 8CF90000 */ lw $t9, ($a3)
/* B3BEF4 800C4D54 908E0000 */ lbu $t6, ($a0)
/* B3BEF8 800C4D58 A72E1078 */ sh $t6, 0x1078($t9)
/* B3BEFC 800C4D5C 8CEF0000 */ lw $t7, ($a3)
/* B3BF00 800C4D60 A5E0107A */ sh $zero, 0x107a($t7)
/* B3BF04 800C4D64 8CF80000 */ lw $t8, ($a3)
/* B3BF08 800C4D68 A700107C */ sh $zero, 0x107c($t8)
/* B3BF0C 800C4D6C 8CE20000 */ lw $v0, ($a3)
/* B3BF10 800C4D70 84431078 */ lh $v1, 0x1078($v0)
.L800C4D74:
/* B3BF14 800C4D74 3C048001 */ lui $a0, %hi(gViConfigAdditionalScanLines)
/* B3BF18 800C4D78 24849438 */ addiu $a0, %lo(gViConfigAdditionalScanLines) # addiu $a0, $a0, -0x6bc8
/* B3BF1C 800C4D7C 04630005 */ bgezl $v1, .L800C4D94
/* B3BF20 800C4D80 28610031 */ slti $at, $v1, 0x31
/* B3BF24 800C4D84 A4401078 */ sh $zero, 0x1078($v0)
/* B3BF28 800C4D88 8CE20000 */ lw $v0, ($a3)
/* B3BF2C 800C4D8C 84431078 */ lh $v1, 0x1078($v0)
/* B3BF30 800C4D90 28610031 */ slti $at, $v1, 0x31
.L800C4D94:
/* B3BF34 800C4D94 54200005 */ bnezl $at, .L800C4DAC
/* B3BF38 800C4D98 844A107A */ lh $t2, 0x107a($v0)
/* B3BF3C 800C4D9C A4491078 */ sh $t1, 0x1078($v0)
/* B3BF40 800C4DA0 8CE20000 */ lw $v0, ($a3)
/* B3BF44 800C4DA4 84431078 */ lh $v1, 0x1078($v0)
/* B3BF48 800C4DA8 844A107A */ lh $t2, 0x107a($v0)
.L800C4DAC:
/* B3BF4C 800C4DAC 55430006 */ bnel $t2, $v1, .L800C4DC8
/* B3BF50 800C4DB0 A443107A */ sh $v1, 0x107a($v0)
/* B3BF54 800C4DB4 844B107C */ lh $t3, 0x107c($v0)
/* B3BF58 800C4DB8 844C1076 */ lh $t4, 0x1076($v0)
/* B3BF5C 800C4DBC 516C0020 */ beql $t3, $t4, .L800C4E40
/* B3BF60 800C4DC0 84490190 */ lh $t1, 0x190($v0)
/* B3BF64 800C4DC4 A443107A */ sh $v1, 0x107a($v0)
.L800C4DC8:
/* B3BF68 800C4DC8 8CE20000 */ lw $v0, ($a3)
/* B3BF6C 800C4DCC 3C014370 */ li $at, 0x43700000 # 0.000000
/* B3BF70 800C4DD0 844D1076 */ lh $t5, 0x1076($v0)
/* B3BF74 800C4DD4 A44D107C */ sh $t5, 0x107c($v0)
/* B3BF78 800C4DD8 8CE20000 */ lw $v0, ($a3)
/* B3BF7C 800C4DDC 844E1078 */ lh $t6, 0x1078($v0)
/* B3BF80 800C4DE0 A08E0000 */ sb $t6, ($a0)
/* B3BF84 800C4DE4 84591076 */ lh $t9, 0x1076($v0)
/* B3BF88 800C4DE8 31CF00FF */ andi $t7, $t6, 0xff
/* B3BF8C 800C4DEC 1720000E */ bnez $t9, .L800C4E28
/* B3BF90 800C4DF0 00000000 */ nop
/* B3BF94 800C4DF4 448F9000 */ mtc1 $t7, $f18
/* B3BF98 800C4DF8 44810000 */ mtc1 $at, $f0
/* B3BF9C 800C4DFC 05E10005 */ bgez $t7, .L800C4E14
/* B3BFA0 800C4E00 46809120 */ cvt.s.w $f4, $f18
/* B3BFA4 800C4E04 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B3BFA8 800C4E08 44813000 */ mtc1 $at, $f6
/* B3BFAC 800C4E0C 00000000 */ nop
/* B3BFB0 800C4E10 46062100 */ add.s $f4, $f4, $f6
.L800C4E14:
/* B3BFB4 800C4E14 46002200 */ add.s $f8, $f4, $f0
/* B3BFB8 800C4E18 3C018001 */ lui $at, %hi(gViConfigYScale)
/* B3BFBC 800C4E1C 46080283 */ div.s $f10, $f0, $f8
/* B3BFC0 800C4E20 10000003 */ b .L800C4E30
/* B3BFC4 800C4E24 E42A9444 */ swc1 $f10, %lo(gViConfigYScale)($at)
.L800C4E28:
/* B3BFC8 800C4E28 3C018001 */ lui $at, %hi(gViConfigYScale)
/* B3BFCC 800C4E2C E4209444 */ swc1 $f0, %lo(gViConfigYScale)($at)
.L800C4E30:
/* B3BFD0 800C4E30 24180001 */ li $t8, 1
/* B3BFD4 800C4E34 3C018001 */ lui $at, %hi(D_80009430) # $at, 0x8001
/* B3BFD8 800C4E38 A0389430 */ sb $t8, %lo(D_80009430)($at)
/* B3BFDC 800C4E3C 84490190 */ lh $t1, 0x190($v0)
.L800C4E40:
/* B3BFE0 800C4E40 50A90008 */ beql $a1, $t1, .L800C4E64
/* B3BFE4 800C4E44 8FA20020 */ lw $v0, 0x20($sp)
/* B3BFE8 800C4E48 8FA40020 */ lw $a0, 0x20($sp)
/* B3BFEC 800C4E4C 00C02825 */ move $a1, $a2
/* B3BFF0 800C4E50 0C0311BB */ jal GameState_Draw
/* B3BFF4 800C4E54 AFA6001C */ sw $a2, 0x1c($sp)
/* B3BFF8 800C4E58 0C03127D */ jal func_800C49F4
/* B3BFFC 800C4E5C 8FA4001C */ lw $a0, 0x1c($sp)
/* B3C000 800C4E60 8FA20020 */ lw $v0, 0x20($sp)
.L800C4E64:
/* B3C004 800C4E64 8C4A009C */ lw $t2, 0x9c($v0)
/* B3C008 800C4E68 254B0001 */ addiu $t3, $t2, 1
/* B3C00C 800C4E6C AC4B009C */ sw $t3, 0x9c($v0)
/* B3C010 800C4E70 8FBF0014 */ lw $ra, 0x14($sp)
/* B3C014 800C4E74 27BD0020 */ addiu $sp, $sp, 0x20
/* B3C018 800C4E78 03E00008 */ jr $ra
/* B3C01C 800C4E7C 00000000 */ nop

View file

@ -175,9 +175,9 @@ glabel Graph_Update
/* B3D42C 800C628C AC4D0004 */ sw $t5, 4($v0)
/* B3D430 800C6290 0C031AD5 */ jal Graph_CloseDisps
/* B3D434 800C6294 AC480000 */ sw $t0, ($v0)
/* B3D438 800C6298 0C0312A6 */ jal func_800C4A98
/* B3D438 800C6298 0C0312A6 */ jal GameState_ReqPadData
/* B3D43C 800C629C 8FA400CC */ lw $a0, 0xcc($sp)
/* B3D440 800C62A0 0C0312B2 */ jal func_800C4AC8
/* B3D440 800C62A0 0C0312B2 */ jal GameState_Update
/* B3D444 800C62A4 8FA400CC */ lw $a0, 0xcc($sp)
/* B3D448 800C62A8 3C068014 */ lui $a2, %hi(D_80145308) # $a2, 0x8014
/* B3D44C 800C62AC 24C65308 */ addiu $a2, %lo(D_80145308) # addiu $a2, $a2, 0x5308
@ -327,7 +327,7 @@ glabel Graph_Update
.L800C64E4:
/* B3D684 800C64E4 3C04A404 */ lui $a0, 0xa404
/* B3D688 800C64E8 04610009 */ bgez $v1, .L800C6510
/* B3D68C 800C64EC 00000000 */ nop
/* B3D68C 800C64EC 00000000 */ nop
/* B3D690 800C64F0 0C000AC4 */ jal LogUtils_LogHexDump
/* B3D694 800C64F4 24050020 */ li $a1, 32
/* B3D698 800C64F8 3C04A410 */ lui $a0, 0xa410
@ -431,7 +431,7 @@ glabel Graph_Update
.L800C6668:
/* B3D808 800C6668 8FA900C4 */ lw $t1, 0xc4($sp)
/* B3D80C 800C666C 15200009 */ bnez $t1, .L800C6694
/* B3D810 800C6670 00000000 */ nop
/* B3D810 800C6670 00000000 */ nop
/* B3D814 800C6674 0C031770 */ jal Graph_TaskSet00
/* B3D818 800C6678 02002025 */ move $a0, $s0
/* B3D81C 800C667C 8E0A02D8 */ lw $t2, 0x2d8($s0)
@ -442,9 +442,9 @@ glabel Graph_Update
/* B3D830 800C6690 AE0D02E8 */ sw $t5, 0x2e8($s0)
.L800C6694:
/* B3D834 800C6694 0C03CC15 */ jal func_800F3054
/* B3D838 800C6698 00000000 */ nop
/* B3D838 800C6698 00000000 */ nop
/* B3D83C 800C669C 0C001A78 */ jal osGetTime
/* B3D840 800C66A0 00000000 */ nop
/* B3D840 800C66A0 00000000 */ nop
/* B3D844 800C66A4 3C048017 */ lui $a0, %hi(D_8016A568) # $a0, 0x8017
/* B3D848 800C66A8 2484A568 */ addiu $a0, %lo(D_8016A568) # addiu $a0, $a0, -0x5a98
/* B3D84C 800C66AC 8C8E0000 */ lw $t6, ($a0)
@ -510,7 +510,7 @@ glabel Graph_Update
/* B3D934 800C6794 94580020 */ lhu $t8, 0x20($v0)
/* B3D938 800C6798 0301C827 */ nor $t9, $t8, $at
/* B3D93C 800C679C 1720000F */ bnez $t9, .L800C67DC
/* B3D940 800C67A0 00000000 */ nop
/* B3D940 800C67A0 00000000 */ nop
/* B3D944 800C67A4 944A0014 */ lhu $t2, 0x14($v0)
/* B3D948 800C67A8 2401FFCF */ li $at, -49
/* B3D94C 800C67AC 3C0C8080 */ lui $t4, %hi(func_80801E44) # $t4, 0x8080
@ -553,4 +553,4 @@ glabel Graph_Update
/* B3D9D4 800C6834 8FB00018 */ lw $s0, 0x18($sp)
/* B3D9D8 800C6838 27BD00C8 */ addiu $sp, $sp, 0xc8
/* B3D9DC 800C683C 03E00008 */ jr $ra
/* B3D9E0 800C6840 00000000 */ nop
/* B3D9E0 800C6840 00000000 */ nop

View file

@ -28,7 +28,7 @@ glabel func_8003E3AC
/* AB55B0 8003E410 24C68AB4 */ addiu $a2, %lo(D_80138AB4) # addiu $a2, $a2, -0x754c
/* AB55B4 8003E414 8FA40018 */ lw $a0, 0x18($sp)
/* AB55B8 8003E418 8FA50024 */ lw $a1, 0x24($sp)
/* AB55BC 8003E41C 0C031521 */ jal Game_Alloc
/* AB55BC 8003E41C 0C031521 */ jal GameState_AllocEnd
/* AB55C0 8003E420 2407175B */ li $a3, 5979
/* AB55C4 8003E424 8FA8001C */ lw $t0, 0x1c($sp)
/* AB55C8 8003E428 3C048014 */ lui $a0, %hi(D_80138AC4) # $a0, 0x8014
@ -43,7 +43,7 @@ glabel func_8003E3AC
/* AB55E8 8003E448 8FBF0014 */ lw $ra, 0x14($sp)
/* AB55EC 8003E44C 27BD0018 */ addiu $sp, $sp, 0x18
/* AB55F0 8003E450 03E00008 */ jr $ra
/* AB55F4 8003E454 00000000 */ nop
/* AB55F4 8003E454 00000000 */ nop
/* AB55F8 8003E458 27BDFFE0 */ addiu $sp, $sp, -0x20
/* AB55FC 8003E45C AFBF0014 */ sw $ra, 0x14($sp)

View file

@ -108,7 +108,7 @@ glabel D_80154FE8
.balign 4
glabel D_80155028
.asciz "%x\n"
.asciz "%x\n"
.balign 4
.text
@ -173,7 +173,7 @@ glabel func_801109B0
/* B87C34 80110A94 24C64D78 */ addiu $a2, %lo(D_80154D78) # addiu $a2, $a2, 0x4d78
/* B87C38 80110A98 8FA40058 */ lw $a0, 0x58($sp)
/* B87C3C 80110A9C 8FA5002C */ lw $a1, 0x2c($sp)
/* B87C40 80110AA0 0C031521 */ jal Game_Alloc
/* B87C40 80110AA0 0C031521 */ jal GameState_AllocEnd
/* B87C44 80110AA4 2407009F */ li $a3, 159
/* B87C48 80110AA8 3C048015 */ lui $a0, %hi(D_80154D8C) # $a0, 0x8015
/* B87C4C 80110AAC AE020130 */ sw $v0, 0x130($s0)
@ -182,7 +182,7 @@ glabel func_801109B0
/* B87C58 80110AB8 00402825 */ move $a1, $v0
/* B87C5C 80110ABC 8E040130 */ lw $a0, 0x130($s0)
/* B87C60 80110AC0 14800008 */ bnez $a0, .L80110AE4
/* B87C64 80110AC4 00000000 */ nop
/* B87C64 80110AC4 00000000 */ nop
/* B87C68 80110AC8 3C048015 */ lui $a0, %hi(D_80154DAC) # $a0, 0x8015
/* B87C6C 80110ACC 3C058015 */ lui $a1, %hi(D_80154DD0) # $a1, 0x8015
/* B87C70 80110AD0 24A54DD0 */ addiu $a1, %lo(D_80154DD0) # addiu $a1, $a1, 0x4dd0
@ -202,7 +202,7 @@ glabel func_801109B0
/* B87CA4 80110B04 24C64DF8 */ addiu $a2, %lo(D_80154DF8) # addiu $a2, $a2, 0x4df8
/* B87CA8 80110B08 8FA40058 */ lw $a0, 0x58($sp)
/* B87CAC 80110B0C 24050480 */ li $a1, 1152
/* B87CB0 80110B10 0C031521 */ jal Game_Alloc
/* B87CB0 80110B10 0C031521 */ jal GameState_AllocEnd
/* B87CB4 80110B14 240700A6 */ li $a3, 166
/* B87CB8 80110B18 3C048015 */ lui $a0, %hi(D_80154E0C) # $a0, 0x8015
/* B87CBC 80110B1C AE020134 */ sw $v0, 0x134($s0)
@ -270,7 +270,7 @@ glabel func_801109B0
/* B87DA0 80110C00 24C64EB0 */ addiu $a2, %lo(D_80154EB0) # addiu $a2, $a2, 0x4eb0
/* B87DA4 80110C04 8FA40058 */ lw $a0, 0x58($sp)
/* B87DA8 80110C08 24054000 */ li $a1, 16384
/* B87DAC 80110C0C 0C031521 */ jal Game_Alloc
/* B87DAC 80110C0C 0C031521 */ jal GameState_AllocEnd
/* B87DB0 80110C10 240700BE */ li $a3, 190
/* B87DB4 80110C14 3C048015 */ lui $a0, %hi(D_80154EC4) # $a0, 0x8015
/* B87DB8 80110C18 AE020138 */ sw $v0, 0x138($s0)

View file

@ -52,8 +52,8 @@ glabel func_800272B0
/* A9E4CC 8002732C 8FA40028 */ lw $a0, 0x28($sp)
/* A9E4D0 80027330 24070121 */ li $a3, 289
/* A9E4D4 80027334 00002812 */ mflo $a1
/* A9E4D8 80027338 0C031521 */ jal Game_Alloc
/* A9E4DC 8002733C 00000000 */ nop
/* A9E4D8 80027338 0C031521 */ jal GameState_AllocEnd
/* A9E4DC 8002733C 00000000 */ nop
/* A9E4E0 80027340 3C118011 */ lui $s1, %hi(EffectSS2Info) # $s1, 0x8011
/* A9E4E4 80027344 263158B0 */ addiu $s1, %lo(EffectSS2Info) # addiu $s1, $s1, 0x58b0
/* A9E4E8 80027348 AE220000 */ sw $v0, ($s1)
@ -76,7 +76,7 @@ glabel func_800272B0
/* A9E528 80027388 01636021 */ addu $t4, $t3, $v1
/* A9E52C 8002738C 006C082B */ sltu $at, $v1, $t4
/* A9E530 80027390 1020000C */ beqz $at, .L800273C4
/* A9E534 80027394 00000000 */ nop
/* A9E534 80027394 00000000 */ nop
.L80027398:
/* A9E538 80027398 0C009D4F */ jal Effect_SS_ResetEntry
/* A9E53C 8002739C 02002025 */ move $a0, $s0
@ -88,7 +88,7 @@ glabel func_800272B0
/* A9E554 800273B4 01CFC021 */ addu $t8, $t6, $t7
/* A9E558 800273B8 0218082B */ sltu $at, $s0, $t8
/* A9E55C 800273BC 1420FFF6 */ bnez $at, .L80027398
/* A9E560 800273C0 00000000 */ nop
/* A9E560 800273C0 00000000 */ nop
.L800273C4:
/* A9E564 800273C4 3C018011 */ lui $at, %hi(D_801159C0) # $at, 0x8011
/* A9E568 800273C8 3C028011 */ lui $v0, %hi(D_801159CC) # $v0, 0x8011

View file

@ -61,7 +61,7 @@ glabel Gameplay_Init
/* B33C58 800BCAB8 00000000 */ nop
/* B33C5C 800BCABC 3C05001D */ lui $a1, (0x001D4790 >> 16) # lui $a1, 0x1d
/* B33C60 800BCAC0 34A54790 */ ori $a1, (0x001D4790 & 0xFFFF) # ori $a1, $a1, 0x4790
/* B33C64 800BCAC4 0C0313C8 */ jal func_800C4F20
/* B33C64 800BCAC4 0C0313C8 */ jal GameState_Realloc
/* B33C68 800BCAC8 02202025 */ move $a0, $s1
/* B33C6C 800BCACC 0C02EF6D */ jal KaleidoManager_Init
/* B33C70 800BCAD0 02202025 */ move $a0, $s1
@ -495,7 +495,7 @@ glabel Gameplay_Init
/* B342B4 800BD114 24C64244 */ addiu $a2, %lo(D_80144244) # addiu $a2, $a2, 0x4244
/* B342B8 800BD118 02202025 */ move $a0, $s1
/* B342BC 800BD11C 00402825 */ move $a1, $v0
/* B342C0 800BD120 0C031521 */ jal Game_Alloc
/* B342C0 800BD120 0C031521 */ jal GameState_AllocEnd
/* B342C4 800BD124 24070B66 */ li $a3, 2918
/* B342C8 800BD128 8FA9007C */ lw $t1, 0x7c($sp)
/* B342CC 800BD12C 24460008 */ addiu $a2, $v0, 8

View file

@ -95,7 +95,7 @@ glabel func_80096FE8
/* B0E248 800970A8 92AB1D34 */ lbu $t3, 0x1d34($s5)
/* B0E24C 800970AC 00008825 */ move $s1, $zero
/* B0E250 800970B0 19600029 */ blez $t3, .L80097158
/* B0E254 800970B4 00000000 */ nop
/* B0E254 800970B4 00000000 */ nop
/* B0E258 800970B8 82470000 */ lb $a3, ($s2)
.L800970BC:
/* B0E25C 800970BC 3C048014 */ lui $a0, %hi(D_8013F164) # $a0, 0x8014
@ -155,23 +155,23 @@ glabel func_80096FE8
/* B0E318 80097178 468021A0 */ cvt.s.w $f6, $f4
/* B0E31C 8009717C 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B0E320 80097180 44814000 */ mtc1 $at, $f8
/* B0E324 80097184 00000000 */ nop
/* B0E324 80097184 00000000 */ nop
/* B0E328 80097188 46083180 */ add.s $f6, $f6, $f8
.L8009718C:
/* B0E32C 8009718C 3C013A80 */ li $at, 0x3A800000 # 0.000000
/* B0E330 80097190 44815000 */ mtc1 $at, $f10
/* B0E334 80097194 00000000 */ nop
/* B0E334 80097194 00000000 */ nop
/* B0E338 80097198 460A3402 */ mul.s $f16, $f6, $f10
/* B0E33C 8009719C 460084A1 */ cvt.d.s $f18, $f16
/* B0E340 800971A0 44079000 */ mfc1 $a3, $f18
/* B0E344 800971A4 44069800 */ mfc1 $a2, $f19
/* B0E348 800971A8 0C00084C */ jal osSyncPrintf
/* B0E34C 800971AC 00000000 */ nop
/* B0E34C 800971AC 00000000 */ nop
/* B0E350 800971B0 3C068014 */ lui $a2, %hi(D_8013F1BC) # $a2, 0x8014
/* B0E354 800971B4 24C6F1BC */ addiu $a2, %lo(D_8013F1BC) # addiu $a2, $a2, -0xe44
/* B0E358 800971B8 8FA40040 */ lw $a0, 0x40($sp)
/* B0E35C 800971BC 02602825 */ move $a1, $s3
/* B0E360 800971C0 0C031521 */ jal Game_Alloc
/* B0E360 800971C0 0C031521 */ jal GameState_AllocEnd
/* B0E364 800971C4 240703B2 */ li $a3, 946
/* B0E368 800971C8 8FAB0044 */ lw $t3, 0x44($sp)
/* B0E36C 800971CC 3C048014 */ lui $a0, %hi(D_8013F1C8) # $a0, 0x8014

View file

@ -5,7 +5,7 @@ glabel func_800A9CD4
/* B20E80 800A9CE0 3C068014 */ lui $a2, %hi(D_80140F88) # $a2, 0x8014
/* B20E84 800A9CE4 24C60F88 */ addiu $a2, %lo(D_80140F88) # addiu $a2, $a2, 0xf88
/* B20E88 800A9CE8 34058000 */ li $a1, 32768
/* B20E8C 800A9CEC 0C031521 */ jal Game_Alloc
/* B20E8C 800A9CEC 0C031521 */ jal GameState_AllocEnd
/* B20E90 800A9CF0 2407050E */ li $a3, 1294
/* B20E94 800A9CF4 8FAE001C */ lw $t6, 0x1c($sp)
/* B20E98 800A9CF8 3C048014 */ lui $a0, %hi(D_80140F94) # $a0, 0x8014
@ -20,5 +20,5 @@ glabel func_800A9CD4
/* B20EB8 800A9D18 8FBF0014 */ lw $ra, 0x14($sp)
/* B20EBC 800A9D1C 27BD0018 */ addiu $sp, $sp, 0x18
/* B20EC0 800A9D20 03E00008 */ jr $ra
/* B20EC4 800A9D24 00000000 */ nop
/* B20EC4 800A9D24 00000000 */ nop

View file

@ -173,7 +173,7 @@ glabel D_80141CA0
glabel D_80141CB0
.asciz " = %d\n"
# EUC-JP: = %d
# EUC-JP: = %d
.balign 4
glabel D_80141CC0
@ -326,7 +326,7 @@ glabel D_80141FD8
glabel D_80141FE8
.asciz " = %d\n"
# EUC-JP: = %d
# EUC-JP: = %d
.balign 4
glabel D_80141FF8
@ -434,15 +434,15 @@ glabel D_80142218
.balign 4
glabel D_80142240
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142250
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142260
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142270
@ -450,15 +450,15 @@ glabel D_80142270
.balign 4
glabel D_80142298
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801422A8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801422B8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801422C8
@ -466,15 +466,15 @@ glabel D_801422C8
.balign 4
glabel D_801422F0
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142300
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142310
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142320
@ -482,15 +482,15 @@ glabel D_80142320
.balign 4
glabel D_80142348
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142358
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142368
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142378
@ -498,15 +498,15 @@ glabel D_80142378
.balign 4
glabel D_801423A0
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801423B0
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801423C0
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801423D0
@ -514,11 +514,11 @@ glabel D_801423D0
.balign 4
glabel D_801423F8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142408
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142418
@ -530,15 +530,15 @@ glabel D_80142428
.balign 4
glabel D_80142450
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142460
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142470
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_80142480
@ -546,15 +546,15 @@ glabel D_80142480
.balign 4
glabel D_801424A8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801424B8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801424C8
.asciz "../z_vr_box.c"
.asciz "../z_vr_box.c"
.balign 4
glabel D_801424D8
@ -977,7 +977,7 @@ glabel func_800AF218
/* B263EC 800AF24C 002E0821 */ addu $at, $at, $t6
/* B263F0 800AF250 8C2E2DC0 */ lw $t6, %lo(jtbl_80142DC0)($at)
/* B263F4 800AF254 01C00008 */ jr $t6
/* B263F8 800AF258 00000000 */ nop
/* B263F8 800AF258 00000000 */ nop
glabel L800AF25C
/* B263FC 800AF25C 3C088016 */ lui $t0, %hi(gSaveContext) # $t0, 0x8016
@ -1052,10 +1052,10 @@ glabel L800AF25C
/* B26500 800AF360 8FAC0048 */ lw $t4, 0x48($sp)
/* B26504 800AF364 444AF800 */ cfc1 $t2, $31
/* B26508 800AF368 44CBF800 */ ctc1 $t3, $31
/* B2650C 800AF36C 00000000 */ nop
/* B2650C 800AF36C 00000000 */ nop
/* B26510 800AF370 46003224 */ cvt.w.s $f8, $f6
/* B26514 800AF374 444BF800 */ cfc1 $t3, $31
/* B26518 800AF378 00000000 */ nop
/* B26518 800AF378 00000000 */ nop
/* B2651C 800AF37C 316B0078 */ andi $t3, $t3, 0x78
/* B26520 800AF380 51600013 */ beql $t3, $zero, .L800AF3D0
/* B26524 800AF384 440B4000 */ mfc1 $t3, $f8
@ -1063,13 +1063,13 @@ glabel L800AF25C
/* B2652C 800AF38C 240B0001 */ li $t3, 1
/* B26530 800AF390 46083201 */ sub.s $f8, $f6, $f8
/* B26534 800AF394 44CBF800 */ ctc1 $t3, $31
/* B26538 800AF398 00000000 */ nop
/* B26538 800AF398 00000000 */ nop
/* B2653C 800AF39C 46004224 */ cvt.w.s $f8, $f8
/* B26540 800AF3A0 444BF800 */ cfc1 $t3, $31
/* B26544 800AF3A4 00000000 */ nop
/* B26544 800AF3A4 00000000 */ nop
/* B26548 800AF3A8 316B0078 */ andi $t3, $t3, 0x78
/* B2654C 800AF3AC 15600005 */ bnez $t3, .L800AF3C4
/* B26550 800AF3B0 00000000 */ nop
/* B26550 800AF3B0 00000000 */ nop
/* B26554 800AF3B4 440B4000 */ mfc1 $t3, $f8
/* B26558 800AF3B8 3C018000 */ lui $at, 0x8000
/* B2655C 800AF3BC 10000007 */ b .L800AF3DC
@ -1079,9 +1079,9 @@ glabel L800AF25C
/* B26568 800AF3C8 240BFFFF */ li $t3, -1
/* B2656C 800AF3CC 440B4000 */ mfc1 $t3, $f8
.L800AF3D0:
/* B26570 800AF3D0 00000000 */ nop
/* B26570 800AF3D0 00000000 */ nop
/* B26574 800AF3D4 0560FFFB */ bltz $t3, .L800AF3C4
/* B26578 800AF3D8 00000000 */ nop
/* B26578 800AF3D8 00000000 */ nop
.L800AF3DC:
/* B2657C 800AF3DC 3C010001 */ lui $at, 1
/* B26580 800AF3E0 002C0821 */ addu $at, $at, $t4
@ -1110,7 +1110,7 @@ glabel L800AF25C
/* B265CC 800AF42C AFA50044 */ sw $a1, 0x44($sp)
/* B265D0 800AF430 AFA20030 */ sw $v0, 0x30($sp)
/* B265D4 800AF434 8FA40048 */ lw $a0, 0x48($sp)
/* B265D8 800AF438 0C031521 */ jal Game_Alloc
/* B265D8 800AF438 0C031521 */ jal GameState_AllocEnd
/* B265DC 800AF43C 2407041E */ li $a3, 1054
/* B265E0 800AF440 14400007 */ bnez $v0, .L800AF460
/* B265E4 800AF444 AE020128 */ sw $v0, 0x128($s0)
@ -1143,7 +1143,7 @@ glabel L800AF25C
/* B2664C 800AF4AC AFA50044 */ sw $a1, 0x44($sp)
/* B26650 800AF4B0 AFA3002C */ sw $v1, 0x2c($sp)
/* B26654 800AF4B4 8FA40048 */ lw $a0, 0x48($sp)
/* B26658 800AF4B8 0C031521 */ jal Game_Alloc
/* B26658 800AF4B8 0C031521 */ jal GameState_AllocEnd
/* B2665C 800AF4BC 24070424 */ li $a3, 1060
/* B26660 800AF4C0 14400007 */ bnez $v0, .L800AF4E0
/* B26664 800AF4C4 AE02012C */ sw $v0, 0x12c($s0)
@ -1180,7 +1180,7 @@ glabel L800AF25C
/* B266DC 800AF53C 24070430 */ li $a3, 1072
/* B266E0 800AF540 01CF1023 */ subu $v0, $t6, $t7
/* B266E4 800AF544 00022840 */ sll $a1, $v0, 1
/* B266E8 800AF548 0C031521 */ jal Game_Alloc
/* B266E8 800AF548 0C031521 */ jal GameState_AllocEnd
/* B266EC 800AF54C AFA20044 */ sw $v0, 0x44($sp)
/* B266F0 800AF550 14400007 */ bnez $v0, .L800AF570
/* B266F4 800AF554 AE020130 */ sw $v0, 0x130($s0)
@ -1219,7 +1219,7 @@ glabel L800AF25C
/* B26770 800AF5D0 2407043D */ li $a3, 1085
/* B26774 800AF5D4 01CF1023 */ subu $v0, $t6, $t7
/* B26778 800AF5D8 00022840 */ sll $a1, $v0, 1
/* B2677C 800AF5DC 0C031521 */ jal Game_Alloc
/* B2677C 800AF5DC 0C031521 */ jal GameState_AllocEnd
/* B26780 800AF5E0 AFA20044 */ sw $v0, 0x44($sp)
/* B26784 800AF5E4 14400007 */ bnez $v0, .L800AF604
/* B26788 800AF5E8 AE020130 */ sw $v0, 0x130($s0)
@ -1265,7 +1265,7 @@ glabel L800AF658
/* B2681C 800AF67C AFA5002C */ sw $a1, 0x2c($sp)
/* B26820 800AF680 AFA20030 */ sw $v0, 0x30($sp)
/* B26824 800AF684 8FA40048 */ lw $a0, 0x48($sp)
/* B26828 800AF688 0C031521 */ jal Game_Alloc
/* B26828 800AF688 0C031521 */ jal GameState_AllocEnd
/* B2682C 800AF68C 24070467 */ li $a3, 1127
/* B26830 800AF690 14400007 */ bnez $v0, .L800AF6B0
/* B26834 800AF694 AE020128 */ sw $v0, 0x128($s0)
@ -1294,7 +1294,7 @@ glabel L800AF658
/* B2688C 800AF6EC AFA5002C */ sw $a1, 0x2c($sp)
/* B26890 800AF6F0 AFA30030 */ sw $v1, 0x30($sp)
/* B26894 800AF6F4 8FA40048 */ lw $a0, 0x48($sp)
/* B26898 800AF6F8 0C031521 */ jal Game_Alloc
/* B26898 800AF6F8 0C031521 */ jal GameState_AllocEnd
/* B2689C 800AF6FC 2407046C */ li $a3, 1132
/* B268A0 800AF700 14400007 */ bnez $v0, .L800AF720
/* B268A4 800AF704 AE020130 */ sw $v0, 0x130($s0)
@ -1329,7 +1329,7 @@ glabel L800AF750
/* B2690C 800AF76C AFA5002C */ sw $a1, 0x2c($sp)
/* B26910 800AF770 AFA20030 */ sw $v0, 0x30($sp)
/* B26914 800AF774 8FA40048 */ lw $a0, 0x48($sp)
/* B26918 800AF778 0C031521 */ jal Game_Alloc
/* B26918 800AF778 0C031521 */ jal GameState_AllocEnd
/* B2691C 800AF77C 24070483 */ li $a3, 1155
/* B26920 800AF780 14400007 */ bnez $v0, .L800AF7A0
/* B26924 800AF784 AE020128 */ sw $v0, 0x128($s0)
@ -1352,7 +1352,7 @@ glabel L800AF750
/* B26964 800AF7C4 24C61B98 */ addiu $a2, %lo(D_80141B98) # addiu $a2, $a2, 0x1b98
/* B26968 800AF7C8 8FA40048 */ lw $a0, 0x48($sp)
/* B2696C 800AF7CC 8FA5002C */ lw $a1, 0x2c($sp)
/* B26970 800AF7D0 0C031521 */ jal Game_Alloc
/* B26970 800AF7D0 0C031521 */ jal GameState_AllocEnd
/* B26974 800AF7D4 2407048A */ li $a3, 1162
/* B26978 800AF7D8 14400007 */ bnez $v0, .L800AF7F8
/* B2697C 800AF7DC AE02012C */ sw $v0, 0x12c($s0)
@ -1382,7 +1382,7 @@ glabel L800AF750
/* B269D8 800AF838 AFA8002C */ sw $t0, 0x2c($sp)
/* B269DC 800AF83C AFA30030 */ sw $v1, 0x30($sp)
/* B269E0 800AF840 8FA40048 */ lw $a0, 0x48($sp)
/* B269E4 800AF844 0C031521 */ jal Game_Alloc
/* B269E4 800AF844 0C031521 */ jal GameState_AllocEnd
/* B269E8 800AF848 24070492 */ li $a3, 1170
/* B269EC 800AF84C 14400007 */ bnez $v0, .L800AF86C
/* B269F0 800AF850 AE020130 */ sw $v0, 0x130($s0)
@ -1426,7 +1426,7 @@ glabel L800AF8B8
/* B26A7C 800AF8DC AFA5002C */ sw $a1, 0x2c($sp)
/* B26A80 800AF8E0 AFA20030 */ sw $v0, 0x30($sp)
/* B26A84 800AF8E4 8FA40048 */ lw $a0, 0x48($sp)
/* B26A88 800AF8E8 0C031521 */ jal Game_Alloc
/* B26A88 800AF8E8 0C031521 */ jal GameState_AllocEnd
/* B26A8C 800AF8EC 2407049E */ li $a3, 1182
/* B26A90 800AF8F0 14400007 */ bnez $v0, .L800AF910
/* B26A94 800AF8F4 AE020128 */ sw $v0, 0x128($s0)
@ -1459,7 +1459,7 @@ glabel L800AF8B8
/* B26AFC 800AF95C 24C61CC0 */ addiu $a2, %lo(D_80141CC0) # addiu $a2, $a2, 0x1cc0
/* B26B00 800AF960 8FA40048 */ lw $a0, 0x48($sp)
/* B26B04 800AF964 8FA5002C */ lw $a1, 0x2c($sp)
/* B26B08 800AF968 0C031521 */ jal Game_Alloc
/* B26B08 800AF968 0C031521 */ jal GameState_AllocEnd
/* B26B0C 800AF96C 240704A4 */ li $a3, 1188
/* B26B10 800AF970 14400007 */ bnez $v0, .L800AF990
/* B26B14 800AF974 AE020130 */ sw $v0, 0x130($s0)
@ -1492,7 +1492,7 @@ glabel L800AF9B8
/* B26B74 800AF9D4 AFA5002C */ sw $a1, 0x2c($sp)
/* B26B78 800AF9D8 AFA20030 */ sw $v0, 0x30($sp)
/* B26B7C 800AF9DC 8FA40048 */ lw $a0, 0x48($sp)
/* B26B80 800AF9E0 0C031521 */ jal Game_Alloc
/* B26B80 800AF9E0 0C031521 */ jal GameState_AllocEnd
/* B26B84 800AF9E4 240704AC */ li $a3, 1196
/* B26B88 800AF9E8 14400007 */ bnez $v0, .L800AFA08
/* B26B8C 800AF9EC AE020128 */ sw $v0, 0x128($s0)
@ -1521,7 +1521,7 @@ glabel L800AF9B8
/* B26BE4 800AFA44 AFA5002C */ sw $a1, 0x2c($sp)
/* B26BE8 800AFA48 AFA30030 */ sw $v1, 0x30($sp)
/* B26BEC 800AFA4C 8FA40048 */ lw $a0, 0x48($sp)
/* B26BF0 800AFA50 0C031521 */ jal Game_Alloc
/* B26BF0 800AFA50 0C031521 */ jal GameState_AllocEnd
/* B26BF4 800AFA54 240704B3 */ li $a3, 1203
/* B26BF8 800AFA58 14400007 */ bnez $v0, .L800AFA78
/* B26BFC 800AFA5C AE02012C */ sw $v0, 0x12c($s0)
@ -1551,7 +1551,7 @@ glabel L800AF9B8
/* B26C58 800AFAB8 AFA8002C */ sw $t0, 0x2c($sp)
/* B26C5C 800AFABC AFA30030 */ sw $v1, 0x30($sp)
/* B26C60 800AFAC0 8FA40048 */ lw $a0, 0x48($sp)
/* B26C64 800AFAC4 0C031521 */ jal Game_Alloc
/* B26C64 800AFAC4 0C031521 */ jal GameState_AllocEnd
/* B26C68 800AFAC8 240704BB */ li $a3, 1211
/* B26C6C 800AFACC 14400007 */ bnez $v0, .L800AFAEC
/* B26C70 800AFAD0 AE020130 */ sw $v0, 0x130($s0)
@ -1596,7 +1596,7 @@ glabel L800AFB3C
/* B26D00 800AFB60 AFA5002C */ sw $a1, 0x2c($sp)
/* B26D04 800AFB64 AFA20030 */ sw $v0, 0x30($sp)
/* B26D08 800AFB68 8FA40048 */ lw $a0, 0x48($sp)
/* B26D0C 800AFB6C 0C031521 */ jal Game_Alloc
/* B26D0C 800AFB6C 0C031521 */ jal GameState_AllocEnd
/* B26D10 800AFB70 240704CA */ li $a3, 1226
/* B26D14 800AFB74 14400007 */ bnez $v0, .L800AFB94
/* B26D18 800AFB78 AE020128 */ sw $v0, 0x128($s0)
@ -1625,7 +1625,7 @@ glabel L800AFB3C
/* B26D70 800AFBD0 AFA5002C */ sw $a1, 0x2c($sp)
/* B26D74 800AFBD4 AFA30030 */ sw $v1, 0x30($sp)
/* B26D78 800AFBD8 8FA40048 */ lw $a0, 0x48($sp)
/* B26D7C 800AFBDC 0C031521 */ jal Game_Alloc
/* B26D7C 800AFBDC 0C031521 */ jal GameState_AllocEnd
/* B26D80 800AFBE0 240704CF */ li $a3, 1231
/* B26D84 800AFBE4 14400007 */ bnez $v0, .L800AFC04
/* B26D88 800AFBE8 AE020130 */ sw $v0, 0x130($s0)
@ -1660,7 +1660,7 @@ glabel L800AFC2C
/* B26DF0 800AFC50 AFA5002C */ sw $a1, 0x2c($sp)
/* B26DF4 800AFC54 AFA20030 */ sw $v0, 0x30($sp)
/* B26DF8 800AFC58 8FA40048 */ lw $a0, 0x48($sp)
/* B26DFC 800AFC5C 0C031521 */ jal Game_Alloc
/* B26DFC 800AFC5C 0C031521 */ jal GameState_AllocEnd
/* B26E00 800AFC60 240704E9 */ li $a3, 1257
/* B26E04 800AFC64 14400007 */ bnez $v0, .L800AFC84
/* B26E08 800AFC68 AE020128 */ sw $v0, 0x128($s0)
@ -1689,7 +1689,7 @@ glabel L800AFC2C
/* B26E60 800AFCC0 AFA5002C */ sw $a1, 0x2c($sp)
/* B26E64 800AFCC4 AFA30030 */ sw $v1, 0x30($sp)
/* B26E68 800AFCC8 8FA40048 */ lw $a0, 0x48($sp)
/* B26E6C 800AFCCC 0C031521 */ jal Game_Alloc
/* B26E6C 800AFCCC 0C031521 */ jal GameState_AllocEnd
/* B26E70 800AFCD0 240704EE */ li $a3, 1262
/* B26E74 800AFCD4 14400007 */ bnez $v0, .L800AFCF4
/* B26E78 800AFCD8 AE020130 */ sw $v0, 0x130($s0)
@ -1724,7 +1724,7 @@ glabel L800AFD1C
/* B26EE0 800AFD40 AFA5002C */ sw $a1, 0x2c($sp)
/* B26EE4 800AFD44 AFA20030 */ sw $v0, 0x30($sp)
/* B26EE8 800AFD48 8FA40048 */ lw $a0, 0x48($sp)
/* B26EEC 800AFD4C 0C031521 */ jal Game_Alloc
/* B26EEC 800AFD4C 0C031521 */ jal GameState_AllocEnd
/* B26EF0 800AFD50 240704F7 */ li $a3, 1271
/* B26EF4 800AFD54 14400007 */ bnez $v0, .L800AFD74
/* B26EF8 800AFD58 AE020128 */ sw $v0, 0x128($s0)
@ -1757,7 +1757,7 @@ glabel L800AFD1C
/* B26F60 800AFDC0 24C61FF8 */ addiu $a2, %lo(D_80141FF8) # addiu $a2, $a2, 0x1ff8
/* B26F64 800AFDC4 8FA40048 */ lw $a0, 0x48($sp)
/* B26F68 800AFDC8 8FA5002C */ lw $a1, 0x2c($sp)
/* B26F6C 800AFDCC 0C031521 */ jal Game_Alloc
/* B26F6C 800AFDCC 0C031521 */ jal GameState_AllocEnd
/* B26F70 800AFDD0 240704FD */ li $a3, 1277
/* B26F74 800AFDD4 14400007 */ bnez $v0, .L800AFDF4
/* B26F78 800AFDD8 AE020130 */ sw $v0, 0x130($s0)
@ -1792,7 +1792,7 @@ glabel L800AFE1C
/* B26FE0 800AFE40 AFA5002C */ sw $a1, 0x2c($sp)
/* B26FE4 800AFE44 AFA20030 */ sw $v0, 0x30($sp)
/* B26FE8 800AFE48 8FA40048 */ lw $a0, 0x48($sp)
/* B26FEC 800AFE4C 0C031521 */ jal Game_Alloc
/* B26FEC 800AFE4C 0C031521 */ jal GameState_AllocEnd
/* B26FF0 800AFE50 24070506 */ li $a3, 1286
/* B26FF4 800AFE54 14400007 */ bnez $v0, .L800AFE74
/* B26FF8 800AFE58 AE020128 */ sw $v0, 0x128($s0)
@ -1821,7 +1821,7 @@ glabel L800AFE1C
/* B27050 800AFEB0 AFA5002C */ sw $a1, 0x2c($sp)
/* B27054 800AFEB4 AFA30030 */ sw $v1, 0x30($sp)
/* B27058 800AFEB8 8FA40048 */ lw $a0, 0x48($sp)
/* B2705C 800AFEBC 0C031521 */ jal Game_Alloc
/* B2705C 800AFEBC 0C031521 */ jal GameState_AllocEnd
/* B27060 800AFEC0 2407050B */ li $a3, 1291
/* B27064 800AFEC4 14400007 */ bnez $v0, .L800AFEE4
/* B27068 800AFEC8 AE020130 */ sw $v0, 0x130($s0)
@ -1858,7 +1858,7 @@ glabel L800AFF14
/* B270D8 800AFF38 AFA5002C */ sw $a1, 0x2c($sp)
/* B270DC 800AFF3C AFA20030 */ sw $v0, 0x30($sp)
/* B270E0 800AFF40 8FA40048 */ lw $a0, 0x48($sp)
/* B270E4 800AFF44 0C031521 */ jal Game_Alloc
/* B270E4 800AFF44 0C031521 */ jal GameState_AllocEnd
/* B270E8 800AFF48 24070515 */ li $a3, 1301
/* B270EC 800AFF4C 14400007 */ bnez $v0, .L800AFF6C
/* B270F0 800AFF50 AE020128 */ sw $v0, 0x128($s0)
@ -1887,7 +1887,7 @@ glabel L800AFF14
/* B27148 800AFFA8 AFA5002C */ sw $a1, 0x2c($sp)
/* B2714C 800AFFAC AFA30030 */ sw $v1, 0x30($sp)
/* B27150 800AFFB0 8FA40048 */ lw $a0, 0x48($sp)
/* B27154 800AFFB4 0C031521 */ jal Game_Alloc
/* B27154 800AFFB4 0C031521 */ jal GameState_AllocEnd
/* B27158 800AFFB8 2407051A */ li $a3, 1306
/* B2715C 800AFFBC 14400007 */ bnez $v0, .L800AFFDC
/* B27160 800AFFC0 AE020130 */ sw $v0, 0x130($s0)
@ -1922,7 +1922,7 @@ glabel L800B0004
/* B271C8 800B0028 AFA5002C */ sw $a1, 0x2c($sp)
/* B271CC 800B002C AFA20030 */ sw $v0, 0x30($sp)
/* B271D0 800B0030 8FA40048 */ lw $a0, 0x48($sp)
/* B271D4 800B0034 0C031521 */ jal Game_Alloc
/* B271D4 800B0034 0C031521 */ jal GameState_AllocEnd
/* B271D8 800B0038 24070533 */ li $a3, 1331
/* B271DC 800B003C 14400007 */ bnez $v0, .L800B005C
/* B271E0 800B0040 AE020128 */ sw $v0, 0x128($s0)
@ -1951,7 +1951,7 @@ glabel L800B0004
/* B27238 800B0098 AFA5002C */ sw $a1, 0x2c($sp)
/* B2723C 800B009C AFA30030 */ sw $v1, 0x30($sp)
/* B27240 800B00A0 8FA40048 */ lw $a0, 0x48($sp)
/* B27244 800B00A4 0C031521 */ jal Game_Alloc
/* B27244 800B00A4 0C031521 */ jal GameState_AllocEnd
/* B27248 800B00A8 24070538 */ li $a3, 1336
/* B2724C 800B00AC 14400007 */ bnez $v0, .L800B00CC
/* B27250 800B00B0 AE020130 */ sw $v0, 0x130($s0)
@ -1986,7 +1986,7 @@ glabel L800B00F4
/* B272B8 800B0118 AFA5002C */ sw $a1, 0x2c($sp)
/* B272BC 800B011C AFA20030 */ sw $v0, 0x30($sp)
/* B272C0 800B0120 8FA40048 */ lw $a0, 0x48($sp)
/* B272C4 800B0124 0C031521 */ jal Game_Alloc
/* B272C4 800B0124 0C031521 */ jal GameState_AllocEnd
/* B272C8 800B0128 24070541 */ li $a3, 1345
/* B272CC 800B012C 14400007 */ bnez $v0, .L800B014C
/* B272D0 800B0130 AE020128 */ sw $v0, 0x128($s0)
@ -2015,7 +2015,7 @@ glabel L800B00F4
/* B27328 800B0188 AFA5002C */ sw $a1, 0x2c($sp)
/* B2732C 800B018C AFA30030 */ sw $v1, 0x30($sp)
/* B27330 800B0190 8FA40048 */ lw $a0, 0x48($sp)
/* B27334 800B0194 0C031521 */ jal Game_Alloc
/* B27334 800B0194 0C031521 */ jal GameState_AllocEnd
/* B27338 800B0198 24070546 */ li $a3, 1350
/* B2733C 800B019C 14400007 */ bnez $v0, .L800B01BC
/* B27340 800B01A0 AE020130 */ sw $v0, 0x130($s0)
@ -2050,7 +2050,7 @@ glabel L800B01E4
/* B273A8 800B0208 AFA5002C */ sw $a1, 0x2c($sp)
/* B273AC 800B020C AFA20030 */ sw $v0, 0x30($sp)
/* B273B0 800B0210 8FA40048 */ lw $a0, 0x48($sp)
/* B273B4 800B0214 0C031521 */ jal Game_Alloc
/* B273B4 800B0214 0C031521 */ jal GameState_AllocEnd
/* B273B8 800B0218 2407054F */ li $a3, 1359
/* B273BC 800B021C 14400007 */ bnez $v0, .L800B023C
/* B273C0 800B0220 AE020128 */ sw $v0, 0x128($s0)
@ -2079,7 +2079,7 @@ glabel L800B01E4
/* B27418 800B0278 AFA5002C */ sw $a1, 0x2c($sp)
/* B2741C 800B027C AFA30030 */ sw $v1, 0x30($sp)
/* B27420 800B0280 8FA40048 */ lw $a0, 0x48($sp)
/* B27424 800B0284 0C031521 */ jal Game_Alloc
/* B27424 800B0284 0C031521 */ jal GameState_AllocEnd
/* B27428 800B0288 24070554 */ li $a3, 1364
/* B2742C 800B028C 14400007 */ bnez $v0, .L800B02AC
/* B27430 800B0290 AE020130 */ sw $v0, 0x130($s0)
@ -2114,7 +2114,7 @@ glabel L800B02D4
/* B27498 800B02F8 AFA5002C */ sw $a1, 0x2c($sp)
/* B2749C 800B02FC AFA20030 */ sw $v0, 0x30($sp)
/* B274A0 800B0300 8FA40048 */ lw $a0, 0x48($sp)
/* B274A4 800B0304 0C031521 */ jal Game_Alloc
/* B274A4 800B0304 0C031521 */ jal GameState_AllocEnd
/* B274A8 800B0308 2407055D */ li $a3, 1373
/* B274AC 800B030C 14400007 */ bnez $v0, .L800B032C
/* B274B0 800B0310 AE020128 */ sw $v0, 0x128($s0)
@ -2143,7 +2143,7 @@ glabel L800B02D4
/* B27508 800B0368 AFA5002C */ sw $a1, 0x2c($sp)
/* B2750C 800B036C AFA30030 */ sw $v1, 0x30($sp)
/* B27510 800B0370 8FA40048 */ lw $a0, 0x48($sp)
/* B27514 800B0374 0C031521 */ jal Game_Alloc
/* B27514 800B0374 0C031521 */ jal GameState_AllocEnd
/* B27518 800B0378 24070562 */ li $a3, 1378
/* B2751C 800B037C 14400007 */ bnez $v0, .L800B039C
/* B27520 800B0380 AE020130 */ sw $v0, 0x130($s0)
@ -2180,7 +2180,7 @@ glabel L800B03CC
/* B27590 800B03F0 AFA5002C */ sw $a1, 0x2c($sp)
/* B27594 800B03F4 AFA20030 */ sw $v0, 0x30($sp)
/* B27598 800B03F8 8FA40048 */ lw $a0, 0x48($sp)
/* B2759C 800B03FC 0C031521 */ jal Game_Alloc
/* B2759C 800B03FC 0C031521 */ jal GameState_AllocEnd
/* B275A0 800B0400 2407057D */ li $a3, 1405
/* B275A4 800B0404 14400007 */ bnez $v0, .L800B0424
/* B275A8 800B0408 AE020128 */ sw $v0, 0x128($s0)
@ -2209,7 +2209,7 @@ glabel L800B03CC
/* B27600 800B0460 AFA5002C */ sw $a1, 0x2c($sp)
/* B27604 800B0464 AFA30030 */ sw $v1, 0x30($sp)
/* B27608 800B0468 8FA40048 */ lw $a0, 0x48($sp)
/* B2760C 800B046C 0C031521 */ jal Game_Alloc
/* B2760C 800B046C 0C031521 */ jal GameState_AllocEnd
/* B27610 800B0470 24070582 */ li $a3, 1410
/* B27614 800B0474 14400007 */ bnez $v0, .L800B0494
/* B27618 800B0478 AE020130 */ sw $v0, 0x130($s0)
@ -2246,7 +2246,7 @@ glabel L800B04C4
/* B27688 800B04E8 AFA5002C */ sw $a1, 0x2c($sp)
/* B2768C 800B04EC AFA20030 */ sw $v0, 0x30($sp)
/* B27690 800B04F0 8FA40048 */ lw $a0, 0x48($sp)
/* B27694 800B04F4 0C031521 */ jal Game_Alloc
/* B27694 800B04F4 0C031521 */ jal GameState_AllocEnd
/* B27698 800B04F8 2407058C */ li $a3, 1420
/* B2769C 800B04FC 14400007 */ bnez $v0, .L800B051C
/* B276A0 800B0500 AE020128 */ sw $v0, 0x128($s0)
@ -2275,7 +2275,7 @@ glabel L800B04C4
/* B276F8 800B0558 AFA5002C */ sw $a1, 0x2c($sp)
/* B276FC 800B055C AFA30030 */ sw $v1, 0x30($sp)
/* B27700 800B0560 8FA40048 */ lw $a0, 0x48($sp)
/* B27704 800B0564 0C031521 */ jal Game_Alloc
/* B27704 800B0564 0C031521 */ jal GameState_AllocEnd
/* B27708 800B0568 24070591 */ li $a3, 1425
/* B2770C 800B056C 14400007 */ bnez $v0, .L800B058C
/* B27710 800B0570 AE020130 */ sw $v0, 0x130($s0)
@ -2312,7 +2312,7 @@ glabel L800B05BC
/* B27780 800B05E0 AFA5002C */ sw $a1, 0x2c($sp)
/* B27784 800B05E4 AFA20030 */ sw $v0, 0x30($sp)
/* B27788 800B05E8 8FA40048 */ lw $a0, 0x48($sp)
/* B2778C 800B05EC 0C031521 */ jal Game_Alloc
/* B2778C 800B05EC 0C031521 */ jal GameState_AllocEnd
/* B27790 800B05F0 240705AB */ li $a3, 1451
/* B27794 800B05F4 14400007 */ bnez $v0, .L800B0614
/* B27798 800B05F8 AE020128 */ sw $v0, 0x128($s0)
@ -2341,7 +2341,7 @@ glabel L800B05BC
/* B277F0 800B0650 AFA5002C */ sw $a1, 0x2c($sp)
/* B277F4 800B0654 AFA30030 */ sw $v1, 0x30($sp)
/* B277F8 800B0658 8FA40048 */ lw $a0, 0x48($sp)
/* B277FC 800B065C 0C031521 */ jal Game_Alloc
/* B277FC 800B065C 0C031521 */ jal GameState_AllocEnd
/* B27800 800B0660 240705B0 */ li $a3, 1456
/* B27804 800B0664 14400007 */ bnez $v0, .L800B0684
/* B27808 800B0668 AE020130 */ sw $v0, 0x130($s0)
@ -2378,7 +2378,7 @@ glabel L800B06B4
/* B27878 800B06D8 AFA5002C */ sw $a1, 0x2c($sp)
/* B2787C 800B06DC AFA20030 */ sw $v0, 0x30($sp)
/* B27880 800B06E0 8FA40048 */ lw $a0, 0x48($sp)
/* B27884 800B06E4 0C031521 */ jal Game_Alloc
/* B27884 800B06E4 0C031521 */ jal GameState_AllocEnd
/* B27888 800B06E8 240705BA */ li $a3, 1466
/* B2788C 800B06EC 14400007 */ bnez $v0, .L800B070C
/* B27890 800B06F0 AE020128 */ sw $v0, 0x128($s0)
@ -2407,7 +2407,7 @@ glabel L800B06B4
/* B278E8 800B0748 AFA5002C */ sw $a1, 0x2c($sp)
/* B278EC 800B074C AFA30030 */ sw $v1, 0x30($sp)
/* B278F0 800B0750 8FA40048 */ lw $a0, 0x48($sp)
/* B278F4 800B0754 0C031521 */ jal Game_Alloc
/* B278F4 800B0754 0C031521 */ jal GameState_AllocEnd
/* B278F8 800B0758 240705BF */ li $a3, 1471
/* B278FC 800B075C 14400007 */ bnez $v0, .L800B077C
/* B27900 800B0760 AE020130 */ sw $v0, 0x130($s0)
@ -2444,7 +2444,7 @@ glabel L800B07AC
/* B27970 800B07D0 AFA5002C */ sw $a1, 0x2c($sp)
/* B27974 800B07D4 AFA20030 */ sw $v0, 0x30($sp)
/* B27978 800B07D8 8FA40048 */ lw $a0, 0x48($sp)
/* B2797C 800B07DC 0C031521 */ jal Game_Alloc
/* B2797C 800B07DC 0C031521 */ jal GameState_AllocEnd
/* B27980 800B07E0 240705C9 */ li $a3, 1481
/* B27984 800B07E4 14400007 */ bnez $v0, .L800B0804
/* B27988 800B07E8 AE020128 */ sw $v0, 0x128($s0)
@ -2473,7 +2473,7 @@ glabel L800B07AC
/* B279E0 800B0840 AFA5002C */ sw $a1, 0x2c($sp)
/* B279E4 800B0844 AFA30030 */ sw $v1, 0x30($sp)
/* B279E8 800B0848 8FA40048 */ lw $a0, 0x48($sp)
/* B279EC 800B084C 0C031521 */ jal Game_Alloc
/* B279EC 800B084C 0C031521 */ jal GameState_AllocEnd
/* B279F0 800B0850 240705CE */ li $a3, 1486
/* B279F4 800B0854 14400007 */ bnez $v0, .L800B0874
/* B279F8 800B0858 AE020130 */ sw $v0, 0x130($s0)
@ -2510,7 +2510,7 @@ glabel L800B08A4
/* B27A68 800B08C8 AFA5002C */ sw $a1, 0x2c($sp)
/* B27A6C 800B08CC AFA20030 */ sw $v0, 0x30($sp)
/* B27A70 800B08D0 8FA40048 */ lw $a0, 0x48($sp)
/* B27A74 800B08D4 0C031521 */ jal Game_Alloc
/* B27A74 800B08D4 0C031521 */ jal GameState_AllocEnd
/* B27A78 800B08D8 240705E8 */ li $a3, 1512
/* B27A7C 800B08DC 14400007 */ bnez $v0, .L800B08FC
/* B27A80 800B08E0 AE020128 */ sw $v0, 0x128($s0)
@ -2539,7 +2539,7 @@ glabel L800B08A4
/* B27AD8 800B0938 AFA5002C */ sw $a1, 0x2c($sp)
/* B27ADC 800B093C AFA30030 */ sw $v1, 0x30($sp)
/* B27AE0 800B0940 8FA40048 */ lw $a0, 0x48($sp)
/* B27AE4 800B0944 0C031521 */ jal Game_Alloc
/* B27AE4 800B0944 0C031521 */ jal GameState_AllocEnd
/* B27AE8 800B0948 240705ED */ li $a3, 1517
/* B27AEC 800B094C 14400007 */ bnez $v0, .L800B096C
/* B27AF0 800B0950 AE020130 */ sw $v0, 0x130($s0)
@ -2574,7 +2574,7 @@ glabel L800B0994
/* B27B58 800B09B8 AFA5002C */ sw $a1, 0x2c($sp)
/* B27B5C 800B09BC AFA20030 */ sw $v0, 0x30($sp)
/* B27B60 800B09C0 8FA40048 */ lw $a0, 0x48($sp)
/* B27B64 800B09C4 0C031521 */ jal Game_Alloc
/* B27B64 800B09C4 0C031521 */ jal GameState_AllocEnd
/* B27B68 800B09C8 240705F6 */ li $a3, 1526
/* B27B6C 800B09CC 14400007 */ bnez $v0, .L800B09EC
/* B27B70 800B09D0 AE020128 */ sw $v0, 0x128($s0)
@ -2603,7 +2603,7 @@ glabel L800B0994
/* B27BC8 800B0A28 AFA5002C */ sw $a1, 0x2c($sp)
/* B27BCC 800B0A2C AFA30030 */ sw $v1, 0x30($sp)
/* B27BD0 800B0A30 8FA40048 */ lw $a0, 0x48($sp)
/* B27BD4 800B0A34 0C031521 */ jal Game_Alloc
/* B27BD4 800B0A34 0C031521 */ jal GameState_AllocEnd
/* B27BD8 800B0A38 240705FB */ li $a3, 1531
/* B27BDC 800B0A3C 14400007 */ bnez $v0, .L800B0A5C
/* B27BE0 800B0A40 AE020130 */ sw $v0, 0x130($s0)
@ -2638,7 +2638,7 @@ glabel L800B0A84
/* B27C48 800B0AA8 AFA5002C */ sw $a1, 0x2c($sp)
/* B27C4C 800B0AAC AFA20030 */ sw $v0, 0x30($sp)
/* B27C50 800B0AB0 8FA40048 */ lw $a0, 0x48($sp)
/* B27C54 800B0AB4 0C031521 */ jal Game_Alloc
/* B27C54 800B0AB4 0C031521 */ jal GameState_AllocEnd
/* B27C58 800B0AB8 24070604 */ li $a3, 1540
/* B27C5C 800B0ABC 14400007 */ bnez $v0, .L800B0ADC
/* B27C60 800B0AC0 AE020128 */ sw $v0, 0x128($s0)
@ -2667,7 +2667,7 @@ glabel L800B0A84
/* B27CB8 800B0B18 AFA5002C */ sw $a1, 0x2c($sp)
/* B27CBC 800B0B1C AFA30030 */ sw $v1, 0x30($sp)
/* B27CC0 800B0B20 8FA40048 */ lw $a0, 0x48($sp)
/* B27CC4 800B0B24 0C031521 */ jal Game_Alloc
/* B27CC4 800B0B24 0C031521 */ jal GameState_AllocEnd
/* B27CC8 800B0B28 24070609 */ li $a3, 1545
/* B27CCC 800B0B2C 14400007 */ bnez $v0, .L800B0B4C
/* B27CD0 800B0B30 AE020130 */ sw $v0, 0x130($s0)
@ -2702,7 +2702,7 @@ glabel L800B0B74
/* B27D38 800B0B98 AFA5002C */ sw $a1, 0x2c($sp)
/* B27D3C 800B0B9C AFA20030 */ sw $v0, 0x30($sp)
/* B27D40 800B0BA0 8FA40048 */ lw $a0, 0x48($sp)
/* B27D44 800B0BA4 0C031521 */ jal Game_Alloc
/* B27D44 800B0BA4 0C031521 */ jal GameState_AllocEnd
/* B27D48 800B0BA8 24070618 */ li $a3, 1560
/* B27D4C 800B0BAC 14400007 */ bnez $v0, .L800B0BCC
/* B27D50 800B0BB0 AE020128 */ sw $v0, 0x128($s0)
@ -2731,7 +2731,7 @@ glabel L800B0B74
/* B27DA8 800B0C08 AFA5002C */ sw $a1, 0x2c($sp)
/* B27DAC 800B0C0C AFA30030 */ sw $v1, 0x30($sp)
/* B27DB0 800B0C10 8FA40048 */ lw $a0, 0x48($sp)
/* B27DB4 800B0C14 0C031521 */ jal Game_Alloc
/* B27DB4 800B0C14 0C031521 */ jal GameState_AllocEnd
/* B27DB8 800B0C18 2407061D */ li $a3, 1565
/* B27DBC 800B0C1C 14400007 */ bnez $v0, .L800B0C3C
/* B27DC0 800B0C20 AE020130 */ sw $v0, 0x130($s0)
@ -2766,7 +2766,7 @@ glabel L800B0C64
/* B27E28 800B0C88 AFA5002C */ sw $a1, 0x2c($sp)
/* B27E2C 800B0C8C AFA20030 */ sw $v0, 0x30($sp)
/* B27E30 800B0C90 8FA40048 */ lw $a0, 0x48($sp)
/* B27E34 800B0C94 0C031521 */ jal Game_Alloc
/* B27E34 800B0C94 0C031521 */ jal GameState_AllocEnd
/* B27E38 800B0C98 24070626 */ li $a3, 1574
/* B27E3C 800B0C9C 14400007 */ bnez $v0, .L800B0CBC
/* B27E40 800B0CA0 AE020128 */ sw $v0, 0x128($s0)
@ -2795,7 +2795,7 @@ glabel L800B0C64
/* B27E98 800B0CF8 AFA5002C */ sw $a1, 0x2c($sp)
/* B27E9C 800B0CFC AFA30030 */ sw $v1, 0x30($sp)
/* B27EA0 800B0D00 8FA40048 */ lw $a0, 0x48($sp)
/* B27EA4 800B0D04 0C031521 */ jal Game_Alloc
/* B27EA4 800B0D04 0C031521 */ jal GameState_AllocEnd
/* B27EA8 800B0D08 2407062B */ li $a3, 1579
/* B27EAC 800B0D0C 14400007 */ bnez $v0, .L800B0D2C
/* B27EB0 800B0D10 AE020130 */ sw $v0, 0x130($s0)
@ -2830,7 +2830,7 @@ glabel L800B0D54
/* B27F18 800B0D78 AFA5002C */ sw $a1, 0x2c($sp)
/* B27F1C 800B0D7C AFA20030 */ sw $v0, 0x30($sp)
/* B27F20 800B0D80 8FA40048 */ lw $a0, 0x48($sp)
/* B27F24 800B0D84 0C031521 */ jal Game_Alloc
/* B27F24 800B0D84 0C031521 */ jal GameState_AllocEnd
/* B27F28 800B0D88 24070634 */ li $a3, 1588
/* B27F2C 800B0D8C 14400007 */ bnez $v0, .L800B0DAC
/* B27F30 800B0D90 AE020128 */ sw $v0, 0x128($s0)
@ -2859,7 +2859,7 @@ glabel L800B0D54
/* B27F88 800B0DE8 AFA5002C */ sw $a1, 0x2c($sp)
/* B27F8C 800B0DEC AFA30030 */ sw $v1, 0x30($sp)
/* B27F90 800B0DF0 8FA40048 */ lw $a0, 0x48($sp)
/* B27F94 800B0DF4 0C031521 */ jal Game_Alloc
/* B27F94 800B0DF4 0C031521 */ jal GameState_AllocEnd
/* B27F98 800B0DF8 24070639 */ li $a3, 1593
/* B27F9C 800B0DFC 14400007 */ bnez $v0, .L800B0E1C
/* B27FA0 800B0E00 AE020130 */ sw $v0, 0x130($s0)
@ -2886,5 +2886,5 @@ glabel L800B0E3C
/* B27FE0 800B0E40 8FB00020 */ lw $s0, 0x20($sp)
/* B27FE4 800B0E44 27BD0048 */ addiu $sp, $sp, 0x48
/* B27FE8 800B0E48 03E00008 */ jr $ra
/* B27FEC 800B0E4C 00000000 */ nop
/* B27FEC 800B0E4C 00000000 */ nop

View file

@ -102,7 +102,7 @@ glabel func_800B0E50
/* B28068 800B0EC8 24C62C74 */ addiu $a2, %lo(D_80142C74) # addiu $a2, $a2, 0x2c74
/* B2806C 800B0ECC 8FA40020 */ lw $a0, 0x20($sp)
/* B28070 800B0ED0 24052580 */ li $a1, 9600
/* B28074 800B0ED4 0C031521 */ jal Game_Alloc
/* B28074 800B0ED4 0C031521 */ jal GameState_AllocEnd
/* B28078 800B0ED8 24070664 */ li $a3, 1636
/* B2807C 800B0EDC 14400007 */ bnez $v0, .L800B0EFC
/* B28080 800B0EE0 AE020134 */ sw $v0, 0x134($s0)
@ -117,7 +117,7 @@ glabel func_800B0E50
/* B280A0 800B0F00 24C62CAC */ addiu $a2, %lo(D_80142CAC) # addiu $a2, $a2, 0x2cac
/* B280A4 800B0F04 8FA40020 */ lw $a0, 0x20($sp)
/* B280A8 800B0F08 24051000 */ li $a1, 4096
/* B280AC 800B0F0C 0C031521 */ jal Game_Alloc
/* B280AC 800B0F0C 0C031521 */ jal GameState_AllocEnd
/* B280B0 800B0F10 24070667 */ li $a3, 1639
/* B280B4 800B0F14 14400007 */ bnez $v0, .L800B0F34
/* B280B8 800B0F18 AE02013C */ sw $v0, 0x13c($s0)
@ -132,10 +132,10 @@ glabel func_800B0E50
/* B280D8 800B0F38 0C02BBF2 */ jal func_800AEFC8
/* B280DC 800B0F3C 87A5002A */ lh $a1, 0x2a($sp)
/* B280E0 800B0F40 10000033 */ b .L800B1010
/* B280E4 800B0F44 00000000 */ nop
/* B280E4 800B0F44 00000000 */ nop
.L800B0F48:
/* B280E8 800B0F48 24C62CE4 */ addiu $a2, %lo(D_80142CE4)
/* B280EC 800B0F4C 0C031521 */ jal Game_Alloc
/* B280EC 800B0F4C 0C031521 */ jal GameState_AllocEnd
/* B280F0 800B0F50 2407066B */ li $a3, 1643
/* B280F4 800B0F54 14400007 */ bnez $v0, .L800B0F74
/* B280F8 800B0F58 AE020134 */ sw $v0, 0x134($s0)
@ -155,7 +155,7 @@ glabel func_800B0E50
/* B2812C 800B0F8C 24C62D1C */ addiu $a2, %lo(D_80142D1C) # addiu $a2, $a2, 0x2d1c
/* B28130 800B0F90 8FA40020 */ lw $a0, 0x20($sp)
/* B28134 800B0F94 24050C00 */ li $a1, 3072
/* B28138 800B0F98 0C031521 */ jal Game_Alloc
/* B28138 800B0F98 0C031521 */ jal GameState_AllocEnd
/* B2813C 800B0F9C 24070670 */ li $a3, 1648
/* B28140 800B0FA0 14400007 */ bnez $v0, .L800B0FC0
/* B28144 800B0FA4 AE02013C */ sw $v0, 0x13c($s0)
@ -170,11 +170,11 @@ glabel func_800B0E50
/* B28164 800B0FC4 0C02BC5E */ jal func_800AF178
/* B28168 800B0FC8 24050006 */ li $a1, 6
/* B2816C 800B0FCC 10000010 */ b .L800B1010
/* B28170 800B0FD0 00000000 */ nop
/* B28170 800B0FD0 00000000 */ nop
.L800B0FD4:
/* B28174 800B0FD4 3C068014 */ lui $a2, %hi(D_80142D54) # $a2, 0x8014
/* B28178 800B0FD8 24C62D54 */ addiu $a2, %lo(D_80142D54) # addiu $a2, $a2, 0x2d54
/* B2817C 800B0FDC 0C031521 */ jal Game_Alloc
/* B2817C 800B0FDC 0C031521 */ jal GameState_AllocEnd
/* B28180 800B0FE0 24070675 */ li $a3, 1653
/* B28184 800B0FE4 14400007 */ bnez $v0, .L800B1004
/* B28188 800B0FE8 AE02013C */ sw $v0, 0x13c($s0)
@ -197,4 +197,4 @@ glabel func_800B0E50
/* B281C0 800B1020 8FB00018 */ lw $s0, 0x18($sp)
/* B281C4 800B1024 27BD0020 */ addiu $sp, $sp, 0x20
/* B281C8 800B1028 03E00008 */ jr $ra
/* B281CC 800B102C 00000000 */ nop
/* B281CC 800B102C 00000000 */ nop

View file

@ -2,82 +2,82 @@ glabel func_80811A20
/* 0DCE0 80811A20 3C0F8016 */ lui $t7, %hi(gGameInfo)
/* 0DCE4 80811A24 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* 0DCE8 80811A28 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0DCEC 80811A2C AFB00020 */ sw $s0, 0x0020($sp)
/* 0DCEC 80811A2C AFB00020 */ sw $s0, 0x0020($sp)
/* 0DCF0 80811A30 3C0201AA */ lui $v0, %hi(_title_staticSegmentRomStart)
/* 0DCF4 80811A34 3C1801AF */ lui $t8, %hi(_title_staticSegmentRomEnd)
/* 0DCF8 80811A38 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0DCFC 80811A3C AFBF0024 */ sw $ra, 0x0024($sp)
/* 0DCFC 80811A3C AFBF0024 */ sw $ra, 0x0024($sp)
/* 0DD00 80811A40 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 0DD04 80811A44 2718B440 */ addiu $t8, %lo(_title_staticSegmentRomEnd)
/* 0DD08 80811A48 24424000 */ addiu $v0, %lo(_title_staticSegmentRomStart)
/* 0DD0C 80811A4C 03022823 */ subu $a1, $t8, $v0
/* 0DD0C 80811A4C 03022823 */ subu $a1, $t8, $v0
/* 0DD10 80811A50 3C048081 */ lui $a0, %hi(D_80812F48) ## $a0 = 80810000
/* 0DD14 80811A54 A5EE0110 */ sh $t6, 0x0110($t7) ## 80160110
/* 0DD18 80811A58 AFA5002C */ sw $a1, 0x002C($sp)
/* 0DD1C 80811A5C AFA20030 */ sw $v0, 0x0030($sp)
/* 0DD18 80811A58 AFA5002C */ sw $a1, 0x002C($sp)
/* 0DD1C 80811A5C AFA20030 */ sw $v0, 0x0030($sp)
/* 0DD20 80811A60 0C00084C */ jal osSyncPrintf
/* 0DD24 80811A64 24842F48 */ addiu $a0, $a0, %lo(D_80812F48) ## $a0 = 80812F48
/* 0DD28 80811A68 3C068081 */ lui $a2, %hi(D_80812F54) ## $a2 = 80810000
/* 0DD2C 80811A6C 24C62F54 */ addiu $a2, $a2, %lo(D_80812F54) ## $a2 = 80812F54
/* 0DD30 80811A70 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0DD34 80811A74 8FA5002C */ lw $a1, 0x002C($sp)
/* 0DD38 80811A78 0C031521 */ jal Game_Alloc
/* 0DD34 80811A74 8FA5002C */ lw $a1, 0x002C($sp)
/* 0DD38 80811A78 0C031521 */ jal GameState_AllocEnd
/* 0DD3C 80811A7C 24070D40 */ addiu $a3, $zero, 0x0D40 ## $a3 = 00000D40
/* 0DD40 80811A80 14400007 */ bne $v0, $zero, .L80811AA0
/* 0DD40 80811A80 14400007 */ bne $v0, $zero, .L80811AA0
/* 0DD44 80811A84 AE0200A8 */ sw $v0, 0x00A8($s0) ## 000000A8
/* 0DD48 80811A88 3C048081 */ lui $a0, %hi(D_80812F68) ## $a0 = 80810000
/* 0DD4C 80811A8C 3C058081 */ lui $a1, %hi(D_80812F84) ## $a1 = 80810000
/* 0DD50 80811A90 24A52F84 */ addiu $a1, $a1, %lo(D_80812F84) ## $a1 = 80812F84
/* 0DD54 80811A94 24842F68 */ addiu $a0, $a0, %lo(D_80812F68) ## $a0 = 80812F68
/* 0DD58 80811A98 0C0007FC */ jal __assert
/* 0DD5C 80811A9C 24060D41 */ addiu $a2, $zero, 0x0D41 ## $a2 = 00000D41
.L80811AA0:
/* 0DD60 80811AA0 8E0400A8 */ lw $a0, 0x00A8($s0) ## 000000A8
/* 0DD64 80811AA4 3C078081 */ lui $a3, %hi(D_80812F98) ## $a3 = 80810000
/* 0DD68 80811AA8 24190D42 */ addiu $t9, $zero, 0x0D42 ## $t9 = 00000D42
/* 0DD6C 80811AAC AFB90010 */ sw $t9, 0x0010($sp)
/* 0DD6C 80811AAC AFB90010 */ sw $t9, 0x0010($sp)
/* 0DD70 80811AB0 24E72F98 */ addiu $a3, $a3, %lo(D_80812F98) ## $a3 = 80812F98
/* 0DD74 80811AB4 8FA50030 */ lw $a1, 0x0030($sp)
/* 0DD78 80811AB8 0C0006A8 */ jal DmaMgr_SendRequest1
/* 0DD7C 80811ABC 8FA6002C */ lw $a2, 0x002C($sp)
/* 0DD74 80811AB4 8FA50030 */ lw $a1, 0x0030($sp)
/* 0DD78 80811AB8 0C0006A8 */ jal DmaMgr_SendRequest1
/* 0DD7C 80811ABC 8FA6002C */ lw $a2, 0x002C($sp)
/* 0DD80 80811AC0 3C0301AF */ lui $v1, %hi(_parameter_staticSegmentRomStart)
/* 0DD84 80811AC4 3C0801AF */ lui $t0, %hi(_parameter_staticSegmentRomEnd)
/* 0DD88 80811AC8 2508FB00 */ addiu $t0, %lo(_parameter_staticSegmentRomEnd)
/* 0DD8C 80811ACC 2463C000 */ addiu $v1, %lo(_parameter_staticSegmentRomStart)
/* 0DD90 80811AD0 01032823 */ subu $a1, $t0, $v1
/* 0DD90 80811AD0 01032823 */ subu $a1, $t0, $v1
/* 0DD94 80811AD4 3C068081 */ lui $a2, %hi(D_80812FAC) ## $a2 = 80810000
/* 0DD98 80811AD8 24C62FAC */ addiu $a2, $a2, %lo(D_80812FAC) ## $a2 = 80812FAC
/* 0DD9C 80811ADC AFA5002C */ sw $a1, 0x002C($sp)
/* 0DDA0 80811AE0 AFA30030 */ sw $v1, 0x0030($sp)
/* 0DD9C 80811ADC AFA5002C */ sw $a1, 0x002C($sp)
/* 0DDA0 80811AE0 AFA30030 */ sw $v1, 0x0030($sp)
/* 0DDA4 80811AE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0DDA8 80811AE8 0C031521 */ jal Game_Alloc
/* 0DDA8 80811AE8 0C031521 */ jal GameState_AllocEnd
/* 0DDAC 80811AEC 24070D46 */ addiu $a3, $zero, 0x0D46 ## $a3 = 00000D46
/* 0DDB0 80811AF0 14400007 */ bne $v0, $zero, .L80811B10
/* 0DDB0 80811AF0 14400007 */ bne $v0, $zero, .L80811B10
/* 0DDB4 80811AF4 AE0200AC */ sw $v0, 0x00AC($s0) ## 000000AC
/* 0DDB8 80811AF8 3C048081 */ lui $a0, %hi(D_80812FC0) ## $a0 = 80810000
/* 0DDBC 80811AFC 3C058081 */ lui $a1, %hi(D_80812FE0) ## $a1 = 80810000
/* 0DDC0 80811B00 24A52FE0 */ addiu $a1, $a1, %lo(D_80812FE0) ## $a1 = 80812FE0
/* 0DDC4 80811B04 24842FC0 */ addiu $a0, $a0, %lo(D_80812FC0) ## $a0 = 80812FC0
/* 0DDC8 80811B08 0C0007FC */ jal __assert
/* 0DDCC 80811B0C 24060D47 */ addiu $a2, $zero, 0x0D47 ## $a2 = 00000D47
.L80811B10:
/* 0DDD0 80811B10 8E0400AC */ lw $a0, 0x00AC($s0) ## 000000AC
/* 0DDD4 80811B14 3C078081 */ lui $a3, %hi(D_80812FF4) ## $a3 = 80810000
/* 0DDD8 80811B18 24090D48 */ addiu $t1, $zero, 0x0D48 ## $t1 = 00000D48
/* 0DDDC 80811B1C AFA90010 */ sw $t1, 0x0010($sp)
/* 0DDDC 80811B1C AFA90010 */ sw $t1, 0x0010($sp)
/* 0DDE0 80811B20 24E72FF4 */ addiu $a3, $a3, %lo(D_80812FF4) ## $a3 = 80812FF4
/* 0DDE4 80811B24 8FA50030 */ lw $a1, 0x0030($sp)
/* 0DDE8 80811B28 0C0006A8 */ jal DmaMgr_SendRequest1
/* 0DDEC 80811B2C 8FA6002C */ lw $a2, 0x002C($sp)
/* 0DDF0 80811B30 0C034204 */ jal Matrix_Init
/* 0DDE4 80811B24 8FA50030 */ lw $a1, 0x0030($sp)
/* 0DDE8 80811B28 0C0006A8 */ jal DmaMgr_SendRequest1
/* 0DDEC 80811B2C 8FA6002C */ lw $a2, 0x002C($sp)
/* 0DDF0 80811B30 0C034204 */ jal Matrix_Init
/* 0DDF4 80811B34 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0DDF8 80811B38 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8
/* 0DDFC 80811B3C 0C02A89E */ jal View_Init
/* 0DDFC 80811B3C 0C02A89E */ jal View_Init
/* 0DE00 80811B40 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 0DE04 80811B44 3C0A8081 */ lui $t2, %hi(func_80810DAC) ## $t2 = 80810000
/* 0DE08 80811B48 3C0B8081 */ lui $t3, %hi(func_80811A18) ## $t3 = 80810000
@ -85,25 +85,25 @@ glabel func_80811A20
/* 0DE10 80811B50 256B1A18 */ addiu $t3, $t3, %lo(func_80811A18) ## $t3 = 80811A18
/* 0DE14 80811B54 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
/* 0DE18 80811B58 AE0B0008 */ sw $t3, 0x0008($s0) ## 00000008
/* 0DE1C 80811B5C 0C2044EA */ jal func_808113A8
/* 0DE1C 80811B5C 0C2044EA */ jal func_808113A8
/* 0DE20 80811B60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0DE24 80811B64 3401E760 */ ori $at, $zero, 0xE760 ## $at = 0000E760
/* 0DE28 80811B68 0C01BBC4 */ jal func_8006EF10
/* 0DE2C 80811B6C 02012021 */ addu $a0, $s0, $at
/* 0DE28 80811B68 0C01BBC4 */ jal func_8006EF10
/* 0DE2C 80811B6C 02012021 */ addu $a0, $s0, $at
/* 0DE30 80811B70 3C04F000 */ lui $a0, 0xF000 ## $a0 = F0000000
/* 0DE34 80811B74 0C03E803 */ jal Audio_SetBGM
/* 0DE38 80811B78 3484000A */ ori $a0, $a0, 0x000A ## $a0 = F000000A
/* 0DE3C 80811B7C 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 0DE40 80811B80 AFAC0010 */ sw $t4, 0x0010($sp)
/* 0DE40 80811B80 AFAC0010 */ sw $t4, 0x0010($sp)
/* 0DE44 80811B84 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 0DE48 80811B88 24050057 */ addiu $a1, $zero, 0x0057 ## $a1 = 00000057
/* 0DE4C 80811B8C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0DE50 80811B90 0C03D786 */ jal func_800F5E18
/* 0DE50 80811B90 0C03D786 */ jal func_800F5E18
/* 0DE54 80811B94 24070007 */ addiu $a3, $zero, 0x0007 ## $a3 = 00000007
/* 0DE58 80811B98 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0DE5C 80811B9C 8FB00020 */ lw $s0, 0x0020($sp)
/* 0DE58 80811B98 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0DE5C 80811B9C 8FB00020 */ lw $s0, 0x0020($sp)
/* 0DE60 80811BA0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 0DE64 80811BA4 03E00008 */ jr $ra
/* 0DE64 80811BA4 03E00008 */ jr $ra
/* 0DE68 80811BA8 00000000 */ nop
/* 0DE6C 80811BAC 00000000 */ nop

View file

@ -1,7 +1,7 @@
glabel func_80801E44
/* 012B4 80801E44 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 012B8 80801E48 AFB00020 */ sw $s0, 0x0020($sp)
/* 012BC 80801E4C AFBF0024 */ sw $ra, 0x0024($sp)
/* 012B8 80801E48 AFB00020 */ sw $s0, 0x0020($sp)
/* 012BC 80801E4C AFBF0024 */ sw $ra, 0x0024($sp)
/* 012C0 80801E50 3C0E8080 */ lui $t6, %hi(func_80801DE4) ## $t6 = 80800000
/* 012C4 80801E54 3C0F8080 */ lui $t7, %hi(func_80801E0C) ## $t7 = 80800000
/* 012C8 80801E58 3C188080 */ lui $t8, %hi(D_80801FC0) ## $t8 = 80800000
@ -32,7 +32,7 @@ glabel func_80801E44
/* 0132C 80801EBC AC800208 */ sw $zero, 0x0208($a0) ## 00000208
/* 01330 80801EC0 AC8D01D0 */ sw $t5, 0x01D0($a0) ## 000001D0
/* 01334 80801EC4 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 01338 80801EC8 0C02A89E */ jal View_Init
/* 01338 80801EC8 0C02A89E */ jal View_Init
/* 0133C 80801ECC 248400A8 */ addiu $a0, $a0, 0x00A8 ## $a0 = 000000A8
/* 01340 80801ED0 3C048016 */ lui $a0, %hi(gGameInfo)
/* 01344 80801ED4 240E000A */ addiu $t6, $zero, 0x000A ## $t6 = 0000000A
@ -51,11 +51,11 @@ glabel func_80801E44
/* 01378 80801F08 84431434 */ lh $v1, 0x1434($v0) ## 00001434
/* 0137C 80801F0C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 01380 80801F10 24C635CC */ addiu $a2, $a2, %lo(D_808035CC) ## $a2 = 808035CC
/* 01384 80801F14 0460000D */ bltz $v1, .L80801F4C
/* 01384 80801F14 0460000D */ bltz $v1, .L80801F4C
/* 01388 80801F18 256B0200 */ addiu $t3, %lo(_z_select_staticSegmentRomEnd)
/* 0138C 80801F1C 8E0F01D0 */ lw $t7, 0x01D0($s0) ## 000001D0
/* 01390 80801F20 006F082A */ slt $at, $v1, $t7
/* 01394 80801F24 10200009 */ beq $at, $zero, .L80801F4C
/* 01390 80801F20 006F082A */ slt $at, $v1, $t7
/* 01394 80801F24 10200009 */ beq $at, $zero, .L80801F4C
/* 01398 80801F28 00000000 */ nop
/* 0139C 80801F2C AE0301D8 */ sw $v1, 0x01D8($s0) ## 000001D8
/* 013A0 80801F30 8C980000 */ lw $t8, 0x0000($a0) ## 8015FA90
@ -69,29 +69,29 @@ glabel func_80801E44
/* 013BC 80801F4C 3C0301AA */ lui $v1, %hi(_z_select_staticSegmentRomStart)
/* 013C0 80801F50 2463E000 */ addiu $v1, %lo(_z_select_staticSegmentRomStart)
/* 013C4 80801F54 A44A0110 */ sh $t2, 0x0110($v0) ## 00000110
/* 013C8 80801F58 01632823 */ subu $a1, $t3, $v1
/* 013CC 80801F5C AFA5002C */ sw $a1, 0x002C($sp)
/* 013D0 80801F60 AFA30030 */ sw $v1, 0x0030($sp)
/* 013C8 80801F58 01632823 */ subu $a1, $t3, $v1
/* 013CC 80801F5C AFA5002C */ sw $a1, 0x002C($sp)
/* 013D0 80801F60 AFA30030 */ sw $v1, 0x0030($sp)
/* 013D4 80801F64 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 013D8 80801F68 0C031521 */ jal Game_Alloc
/* 013D8 80801F68 0C031521 */ jal GameState_AllocEnd
/* 013DC 80801F6C 2407045A */ addiu $a3, $zero, 0x045A ## $a3 = 0000045A
/* 013E0 80801F70 AE020238 */ sw $v0, 0x0238($s0) ## 00000238
/* 013E4 80801F74 3C078080 */ lui $a3, %hi(D_808035DC) ## $a3 = 80800000
/* 013E8 80801F78 240C045B */ addiu $t4, $zero, 0x045B ## $t4 = 0000045B
/* 013EC 80801F7C AFAC0010 */ sw $t4, 0x0010($sp)
/* 013EC 80801F7C AFAC0010 */ sw $t4, 0x0010($sp)
/* 013F0 80801F80 24E735DC */ addiu $a3, $a3, %lo(D_808035DC) ## $a3 = 808035DC
/* 013F4 80801F84 8FA6002C */ lw $a2, 0x002C($sp)
/* 013F8 80801F88 8FA50030 */ lw $a1, 0x0030($sp)
/* 013FC 80801F8C 0C0006A8 */ jal DmaMgr_SendRequest1
/* 013F4 80801F84 8FA6002C */ lw $a2, 0x002C($sp)
/* 013F8 80801F88 8FA50030 */ lw $a1, 0x0030($sp)
/* 013FC 80801F8C 0C0006A8 */ jal DmaMgr_SendRequest1
/* 01400 80801F90 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000
/* 01404 80801F94 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01404 80801F94 8FBF0024 */ lw $ra, 0x0024($sp)
/* 01408 80801F98 3C038016 */ lui $v1, %hi(gSaveContext)
/* 0140C 80801F9C 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 01410 80801FA0 340D8000 */ ori $t5, $zero, 0x8000 ## $t5 = 00008000
/* 01414 80801FA4 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 01418 80801FA8 8FB00020 */ lw $s0, 0x0020($sp)
/* 01418 80801FA8 8FB00020 */ lw $s0, 0x0020($sp)
/* 0141C 80801FAC AC6D0008 */ sw $t5, 0x0008($v1) ## 8015E668
/* 01420 80801FB0 AC6E0004 */ sw $t6, 0x0004($v1) ## 8015E664
/* 01424 80801FB4 03E00008 */ jr $ra
/* 01424 80801FB4 03E00008 */ jr $ra
/* 01428 80801FB8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 0142C 80801FBC 00000000 */ nop

View file

@ -1,29 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .bss
glabel gSpeedMeter
.space 0x20
glabel D_801664F0
.space 0x10
glabel D_80166500
.space 0x10
glabel D_80166510
.space 0x18
glabel D_80166528
.space 0x88
glabel D_801665B0
.space 0x10
glabel D_801665C0
.space 0x10

View file

@ -1,11 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel D_8012D210
.incbin "baserom.z64", 0xBA43B0, 0x20

View file

@ -1,212 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
.align 4
glabel D_80144D10
.asciz "last_button=%04x\n"
.balign 4
glabel D_80144D24
.asciz "%08x"
.balign 4
glabel D_80144D2C
.asciz "%c"
.balign 4
glabel D_80144D30
.incbin "baserom.z64", 0xBBBED0, 0x20
glabel D_80144D50
.asciz "../game.c"
.balign 4
glabel D_80144D5C
.asciz " %08x (game_alloc)\n"
# EUC-JP: %08x (game_alloc) | % 08x bytes (game_alloc) remaining until Hailal's demise
.balign 4
glabel D_80144D8C
.asciz "../game.c"
.balign 4
glabel D_80144D98
.asciz "../game.c"
.balign 4
glabel D_80144DA4
.asciz "../game.c"
.balign 4
glabel D_80144DB0
.asciz "../game.c"
.balign 4
glabel D_80144DBC
.asciz "../game.c"
.balign 4
glabel D_80144DC8
.asciz " %u \n"
# EUC-JP: %u | Hyal secured size =% u bytes
.balign 4
glabel D_80144DE8
.asciz "../game.c"
.balign 4
glabel D_80144DF4
.asciz "\n"
# EUC-JP: | Success in securing hyal
.balign 4
glabel D_80144E08
.asciz "\n"
# EUC-JP: | Hyal securing failure
.balign 4
glabel D_80144E1C
.asciz "../game.c"
.balign 4
glabel D_80144E28
.asciz "!!\n"
# EUC-JP: !! | Hyal temporary release!
.balign 4
glabel D_80144E3C
.asciz "%c"
.balign 4
glabel D_80144E40
.asciz "\x1b[31m"
.balign 4
glabel D_80144E48
.asciz "\n"
# EUC-JP: | Not enough memory. Change Hyrule size to maximum possible
.balign 4
glabel D_80144E88
.asciz "(hyral=%08x max=%08x free=%08x alloc=%08x)\n"
.balign 4
glabel D_80144EB4
.asciz "\x1b[m"
.balign 4
glabel D_80144EB8
.asciz " %u \n"
# EUC-JP: %u | Hyal re-allocation size =%u bytes
.balign 4
glabel D_80144EDC
.asciz "../game.c"
.balign 4
glabel D_80144EE8
.asciz "\n"
# EUC-JP: | Successful Hyal Reacquisition
.balign 4
glabel D_80144EFC
.asciz "\n"
# EUC-JP: | Hyal reacquisition failure
.balign 4
glabel D_80144F10
.asciz "../game.c"
.balign 4
glabel D_80144F1C
.asciz "game \n"
# EUC-JP: | Constructor start
.balign 4
glabel D_80144F38
.asciz "game_set_next_game_null %d us\n"
# EUC-JP: | Processing time
.balign 4
glabel D_80144F60
.asciz "gamealloc_init %d us\n"
# EUC-JP: | Processing time
.balign 4
glabel D_80144F80
.asciz "init %d us\n"
# EUC-JP: | Processing time
.balign 4
glabel D_80144F98
.asciz "this->cleanup"
.balign 4
glabel D_80144FA8
.asciz "../game.c"
.balign 4
glabel D_80144FB4
.asciz " %d us\n"
# EUC-JP: | processing time
.balign 4
glabel D_80144FD4
.asciz "game \n"
# EUC-JP: | Constructor end
.balign 4
glabel D_80144FF0
.asciz "game \n"
# EUC-JP: | Destructor start
.balign 4
glabel D_80145008
.asciz "this->cleanup"
.balign 4
glabel D_80145018
.asciz "../game.c"
.balign 4
glabel D_80145024
.asciz "game \n"
# EUC-JP: | Destructor end
.balign 4
glabel D_8014503C
.asciz "\n"
# EUC-JP: | Hyrule is gone
.balign 4
glabel D_80145054
.asciz " %d %d \n"
# EUC-JP: %d %d | Hailal on the verge of destruction has% d bytes of reserve (% d bytes left before destruction)
.balign 4
glabel D_8014509C
.asciz "\n"
# EUC-JP: | Hyrule has perished
.balign 4
glabel D_801450B8
.asciz "\x1b[32m"
.balign 4
glabel D_801450C0
.asciz "game_alloc(%08x) %08x-%08x [%s:%d]\n"
.balign 4
glabel D_801450E4
.asciz "\x1b[m"
.balign 4
glabel D_801450E8
.float 0.833

View file

@ -80,16 +80,6 @@ s32 osRecvMesg(OSMesgQueue* mq, OSMesg* msg, s32 flag);
void __createSpeedParam(void);
void __osInitialize_common(void);
void __osInitialize_autodetect();
// ? __ull_rshift(?);
// ? __ull_rem(?);
// ? __ull_div(?);
// ? __ll_lshift(?);
// ? __ll_rem(?);
// ? __ll_div(?);
// ? __ll_mul(?);
// ? __ull_divremi(?);
// ? __ll_mod(?);
// ? __ll_rshift(?);
void __osExceptionPreamble();
// ? __osException(?);
void __osEnqueueAndYield(OSThread**);
@ -801,9 +791,9 @@ void SaveContext_Init(void);
void func_8006375C(s32 arg0, s32 arg1, float* d_80855320);
// ? func_8006376C(?);
// ? func_80063828(?);
// ? func_8006390C(?);
void func_8006390C(Input* input);
// ? func_80063C04(?);
// ? func_80063D7C(?);
void func_80063D7C(GraphicsContext* gfxCtx);
void DebugDisplay_Init(void);
DebugDispObject* DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, f32 scaleX,
f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type,
@ -1316,15 +1306,15 @@ s32 func_800ABE74(f32 eyeX, f32 eyeY, f32 eyeZ);
// ? func_800ACAF8(?);
// ? func_800ACE70(?);
// ? func_800ACE90(?);
// ? func_800ACE98(?);
void func_800ACE98(struct_801664F0*, Gfx**);
// ? func_800AD000(?);
// ? func_800AD054(?);
// ? func_800AD080(?);
// ? func_800AD394(?);
void func_800AD5C0(UNK_PTR, Gfx**);
void func_800AD5C0(VisMonoStruct*, Gfx**);
// ? func_800AD920(?);
// ? func_800AD950(?);
// ? func_800AD958(?);
void func_800AD958(struct_801664F0*, Gfx**);
// ? func_800ADBB0(?);
// ? func_800AE2C0(?);
// ? func_800AEFC8(?);
@ -1524,22 +1514,22 @@ void AudioMgr_Start(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, SchedCo
void TitleSetup_InitImpl(GameState* gameState);
void TitleSetup_Destroy(GameState* gameState);
void TitleSetup_Init(GameState* gameState);
// ? func_800C4130(?);
// ? func_800C41F0(?);
void GameState_FaultPrint(void);
void GameState_SetFBFilter(Gfx** gfx);
// ? func_800C4344(?);
// ? func_800C4558(?);
// ? func_800C46EC(?);
// ? func_800C48CC(?);
void GameState_DrawInputDisplay(u16 input, Gfx** gfx);
void GameState_Draw(GameState* gameState, GraphicsContext* gfxCtx);
void GameState_SetFrameBuffer(GraphicsContext* gfxCtx);
// ? func_800C49F4(?);
// ? func_800C4A98(?);
// ? func_800C4AC8(?);
// ? func_800C4E80(?);
// ? func_800C4F20(?);
// ? func_800C5080(?);
// ? func_800C5360(?);
// ? func_800C546C(?);
// ? func_800C547C(?);
void* Game_Alloc(GameState* gameState, size_t size, char* file, s32 line);
void GameState_ReqPadData(GameState* gameState);
void GameState_Update(GameState* gameState);
void GameState_InitArena(GameState* gameState, size_t size);
void GameState_Realloc(GameState* gameState, size_t size);
void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* gfxCtx);
void GameState_Destroy(GameState* gameState);
GameStateFunc GameState_GetInit(GameState* gameState);
u32 GameState_IsRunning(GameState* gameState);
void* GameState_AllocEnd(GameState* gameState, size_t size, char* file, s32 line);
void func_800C55D0(GameAlloc* this);
void* GameAlloc_MallocDebug(GameAlloc* this, u32 size, const char* file, s32 line);
void* GameAlloc_Malloc(GameAlloc* this, u32 size);
@ -1550,7 +1540,7 @@ void Graph_FaultClient();
void Graph_DisassembleUCode(void* arg0);
void Graph_UCodeFaultClient(void* arg0);
void* Graph_InitTHGA(GraphicsContext* gfxCtx);
GameStateOverlay* Graph_GetNextGameState();
GameStateOverlay* Graph_GetNextGameState(GameState* gameState);
void Graph_Init(GraphicsContext* gfxCtx);
void Graph_Destroy(GraphicsContext* gfxCtx);
void Graph_TaskSet00(GraphicsContext* gfxCtx);

View file

@ -38,55 +38,63 @@
#define kREG(r) BASE_REG(27, r)
#define bREG(r) BASE_REG(28, r)
#define R_RUN_SPEED_LIMIT REG(45)
#define R_UPDATE_RATE SREG(30)
#define R_PAUSE_MENU_MODE SREG(94)
#define R_C_UP_ICON_X YREG(88)
#define R_C_UP_ICON_Y YREG(89)
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i)
#define R_C_BTN_COLOR(i) ZREG(39 + i)
#define R_B_BTN_COLOR(i) ZREG(43 + i)
#define R_START_LABEL_DD(i) ZREG(48 + i)
#define R_START_LABEL_Y(i) ZREG(51 + i)
#define R_START_LABEL_X(i) ZREG(54 + i)
#define R_C_UP_BTN_X ZREG(62)
#define R_C_UP_BTN_Y ZREG(63)
#define R_START_BTN_X ZREG(68)
#define R_START_BTN_Y ZREG(69)
#define R_ITEM_BTN_X(i) ZREG(70 + i)
#define R_ITEM_BTN_Y(i) ZREG(74 + i)
#define R_ITEM_BTN_DD(i) ZREG(78 + i)
#define R_ITEM_ICON_X(i) ZREG(82 + i)
#define R_ITEM_ICON_Y(i) ZREG(86 + i)
#define R_ITEM_ICON_DD(i) ZREG(90 + i)
#define R_A_BTN_Y XREG(16)
#define R_A_BTN_X XREG(17)
#define R_A_ICON_Y XREG(19)
#define R_A_ICON_X XREG(20)
#define R_A_BTN_COLOR(i) XREG(22 + i)
#define R_MAGIC_BAR_SMALL_Y XREG(48)
#define R_MAGIC_BAR_X XREG(49)
#define R_MAGIC_BAR_LARGE_Y XREG(50)
#define R_MAGIC_FILL_X XREG(51)
#define R_B_LABEL_DD WREG(0)
#define R_OW_MINIMAP_X WREG(29)
#define R_OW_MINIMAP_Y WREG(30)
#define R_MINIMAP_TOGGLED WREG(31)
#define R_B_LABEL_X(i) WREG(40 + i)
#define R_B_LABEL_Y(i) WREG(43 + i)
#define R_DGN_MINIMAP_X WREG(68)
#define R_DGN_MINIMAP_Y WREG(69)
#define R_MAP_INDEX VREG(11)
#define R_MAP_TEX_INDEX_BASE VREG(12)
#define R_MAP_TEX_INDEX VREG(13)
#define R_COMPASS_SCALE_X VREG(14)
#define R_COMPASS_SCALE_Y VREG(15)
#define R_COMPASS_OFFSET_X VREG(16)
#define R_COMPASS_OFFSET_Y VREG(17)
#define R_MINIMAP_COLOR(i) VREG(18 + i)
#define R_ITEM_AMMO_X(i) VREG(64 + i)
#define R_ITEM_AMMO_Y(i) VREG(68 + i)
#define R_ITEM_ICON_WIDTH(i) VREG(76 + i)
#define R_ITEM_BTN_WIDTH(i) VREG(80 + i)
#define R_RUN_SPEED_LIMIT REG(45)
#define R_ENABLE_ARENA_DBG SREG(0)
#define R_UPDATE_RATE SREG(30)
#define R_ENABLE_AUDIO_DBG SREG(36)
#define R_FB_FILTER_TYPE SREG(80)
#define R_FB_FILTER_PRIM_COLOR(c) SREG(81 + c)
#define R_FB_FILTER_A SREG(84)
#define R_FB_FILTER_ENV_COLOR(c) SREG(85 + c)
#define R_ENABLE_FB_FILTER SREG(88)
#define R_PAUSE_MENU_MODE SREG(94)
#define R_C_UP_ICON_X YREG(88)
#define R_C_UP_ICON_Y YREG(89)
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i)
#define R_C_BTN_COLOR(i) ZREG(39 + i)
#define R_B_BTN_COLOR(i) ZREG(43 + i)
#define R_START_LABEL_DD(i) ZREG(48 + i)
#define R_START_LABEL_Y(i) ZREG(51 + i)
#define R_START_LABEL_X(i) ZREG(54 + i)
#define R_C_UP_BTN_X ZREG(62)
#define R_C_UP_BTN_Y ZREG(63)
#define R_START_BTN_X ZREG(68)
#define R_START_BTN_Y ZREG(69)
#define R_ITEM_BTN_X(i) ZREG(70 + i)
#define R_ITEM_BTN_Y(i) ZREG(74 + i)
#define R_ITEM_BTN_DD(i) ZREG(78 + i)
#define R_ITEM_ICON_X(i) ZREG(82 + i)
#define R_ITEM_ICON_Y(i) ZREG(86 + i)
#define R_ITEM_ICON_DD(i) ZREG(90 + i)
#define R_A_BTN_Y XREG(16)
#define R_A_BTN_X XREG(17)
#define R_A_ICON_Y XREG(19)
#define R_A_ICON_X XREG(20)
#define R_A_BTN_COLOR(i) XREG(22 + i)
#define R_MAGIC_BAR_SMALL_Y XREG(48)
#define R_MAGIC_BAR_X XREG(49)
#define R_MAGIC_BAR_LARGE_Y XREG(50)
#define R_MAGIC_FILL_X XREG(51)
#define R_B_LABEL_DD WREG(0)
#define R_OW_MINIMAP_X WREG(29)
#define R_OW_MINIMAP_Y WREG(30)
#define R_MINIMAP_TOGGLED WREG(31)
#define R_B_LABEL_X(i) WREG(40 + i)
#define R_B_LABEL_Y(i) WREG(43 + i)
#define R_DGN_MINIMAP_X WREG(68)
#define R_DGN_MINIMAP_Y WREG(69)
#define R_MAP_INDEX VREG(11)
#define R_MAP_TEX_INDEX_BASE VREG(12)
#define R_MAP_TEX_INDEX VREG(13)
#define R_COMPASS_SCALE_X VREG(14)
#define R_COMPASS_SCALE_Y VREG(15)
#define R_COMPASS_OFFSET_X VREG(16)
#define R_COMPASS_OFFSET_Y VREG(17)
#define R_MINIMAP_COLOR(i) VREG(18 + i)
#define R_ITEM_AMMO_X(i) VREG(64 + i)
#define R_ITEM_AMMO_Y(i) VREG(68 + i)
#define R_ITEM_ICON_WIDTH(i) VREG(76 + i)
#define R_ITEM_BTN_WIDTH(i) VREG(80 + i)
#define R_DISABLE_INPUT_DISPLAY HREG(47)
#endif

View file

@ -88,6 +88,8 @@ extern u8 osAppNmiBuffer[];
extern u8 D_80009320[];
extern u8 D_800093F0[];
extern u8 D_80009430;
extern u32 D_80009460;
extern u32 gDmaMgrDmaBuffSize;
extern volatile u8 gViConfigUseDefault;
extern u8 gViConfigAdditionalScanLines;
extern u32 gViConfigFeatures;

View file

@ -971,11 +971,15 @@ typedef struct {
/* 0x10 */ GameAllocEntry* head;
} GameAlloc; // size = 0x14
struct GameState;
typedef void (*GameStateFunc)(struct GameState* gameState);
typedef struct GameState {
/* 0x00 */ GraphicsContext* gfxCtx;
/* 0x04 */ void (*main)(struct GameState*);
/* 0x08 */ void (*destroy)(struct GameState*); // "cleanup"
/* 0x0C */ void (*init)(struct GameState*);
/* 0x04 */ GameStateFunc main;
/* 0x08 */ GameStateFunc destroy; // "cleanup"
/* 0x0C */ GameStateFunc init;
/* 0x10 */ u32 size;
/* 0x14 */ Input input[4];
/* 0x74 */ TwoHeadArena tha;
@ -1693,11 +1697,21 @@ typedef struct {
} JpegContext; // size = 0xB8
typedef struct {
/* 0x00 */ char unk_00[0x08];
/* 0x08 */ Color_RGBA8 color;
/* 0x0C */ char unk_0C[0x0C];
/* 0x00 */ s32 colorFormat;
/* 0x04 */ s32 setScissor;
/* 0x08 */ Color_RGBA8 primColor;
/* 0x0C */ Color_RGBA8 envColor;
/* 0x10 */ u16* texture;
/* 0x14 */ Gfx* monoDList;
} VisMonoStruct; // size = 0x18
typedef struct {
/* 0x00 */ u32 type;
/* 0x04 */ u32 setScissor;
/* 0x08 */ Color_RGBA8 color;
/* 0x0C */ Color_RGBA8 envColor;
} struct_801664F0; // size = 0x10
typedef struct {
/* 0x000 */ u8 rumbleEnable[4];
/* 0x004 */ u8 unk_04[0x40];

5
spec
View file

@ -404,10 +404,7 @@ beginseg
include "build/data/code_800C3C20.data.o"
include "build/src/code/audioMgr.o"
include "build/src/code/title_setup.o"
include "build/asm/game.o"
include "build/data/game.data.o"
include "build/data/game.rodata.o"
include "build/data/game.bss.o"
include "build/src/code/game.o"
include "build/src/code/gamealloc.o"
include "build/src/code/graph.o"
include "build/src/code/listalloc.o"

View file

@ -11,7 +11,7 @@ const char* sDmaMgrCurFileName;
s32 sDmaMgrCurFileLine;
u32 D_80009460 = 0;
u32 sDmaMgrDmaBuffSize = 0x2000;
u32 gDmaMgrDmaBuffSize = 0x2000;
u32 sDmaMgrDataExistError = 0;
const char* sDmaMgrFileNames[0x5FC] = {
"makerom",
@ -1577,7 +1577,7 @@ s32 DmaMgr_DMARomToRam(u32 rom, u32 ram, u32 size) {
u32 buffSize;
u32 pad[2];
buffSize = sDmaMgrDmaBuffSize;
buffSize = gDmaMgrDmaBuffSize;
if (buffSize == 0) {
buffSize = 0x2000;
}

View file

@ -1,12 +1,5 @@
#include <global.h>
typedef struct {
/* 0x00 */ u32 type;
/* 0x04 */ u32 setScissor;
/* 0x08 */ Color_RGBA8 color;
/* 0x0C */ u32 unk_0C;
} struct_801664F0;
Gfx D_8012AC00[] = {
gsDPSetOtherMode(G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_CONV | G_TF_POINT | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,

526
src/code/game.c Normal file
View file

@ -0,0 +1,526 @@
#include <global.h>
#include "vt.h"
typedef struct {
/* 0x0000 */ OSViMode viMode;
/* 0x0050 */ char unk_50[0x30];
/* 0x0080 */ u32 viFeatures;
/* 0x0084 */ char unk_84[4];
} unk_80166528;
SpeedMeter D_801664D0;
struct_801664F0 D_801664F0;
struct_801664F0 D_80166500;
VisMonoStruct sMonoColors;
unk_80166528 D_80166528;
FaultClient sGameFaultClient;
u16 sLastButtonPressed;
char sBtnChars[] = {
'A', 'B', 'Z', 'S', 'u', 'l', 'd', 'r', '*', '+', 'L', 'R', 'u', 'd', 'l', 'r', '\0',
};
void GameState_FaultPrint(void) {
s32 i;
osSyncPrintf("last_button=%04x\n", sLastButtonPressed);
FaultDrawer_DrawText(120, 180, "%08x", sLastButtonPressed);
for (i = 0; i < ARRAY_COUNT(sBtnChars); i++) {
if (sLastButtonPressed & (1 << i)) {
FaultDrawer_DrawText((i * 8) + 0x78, 0xBE, "%c", sBtnChars[i]);
}
}
}
void GameState_SetFBFilter(Gfx** gfx) {
Gfx* gfxP;
gfxP = *gfx;
if ((R_FB_FILTER_TYPE > 0) && (R_FB_FILTER_TYPE < 5)) {
D_801664F0.type = R_FB_FILTER_TYPE;
D_801664F0.color.r = R_FB_FILTER_PRIM_COLOR(0);
D_801664F0.color.g = R_FB_FILTER_PRIM_COLOR(1);
D_801664F0.color.b = R_FB_FILTER_PRIM_COLOR(2);
D_801664F0.color.a = R_FB_FILTER_A;
func_800ACE98(&D_801664F0, &gfxP);
} else if ((R_FB_FILTER_TYPE == 5) || (R_FB_FILTER_TYPE == 6)) {
D_80166500.type = (R_FB_FILTER_TYPE == 6);
D_80166500.color.r = R_FB_FILTER_PRIM_COLOR(0);
D_80166500.color.g = R_FB_FILTER_PRIM_COLOR(1);
D_80166500.color.b = R_FB_FILTER_PRIM_COLOR(2);
D_80166500.color.a = R_FB_FILTER_A;
D_80166500.envColor.r = R_FB_FILTER_ENV_COLOR(0);
D_80166500.envColor.g = R_FB_FILTER_ENV_COLOR(1);
D_80166500.envColor.b = R_FB_FILTER_ENV_COLOR(2);
D_80166500.envColor.a = R_FB_FILTER_A;
func_800AD958(&D_80166500, &gfxP);
} else if (R_FB_FILTER_TYPE == 7) {
sMonoColors.colorFormat = 0;
sMonoColors.primColor.r = R_FB_FILTER_PRIM_COLOR(0);
sMonoColors.primColor.g = R_FB_FILTER_PRIM_COLOR(1);
sMonoColors.primColor.b = R_FB_FILTER_PRIM_COLOR(2);
sMonoColors.primColor.a = R_FB_FILTER_A;
sMonoColors.envColor.r = R_FB_FILTER_ENV_COLOR(0);
sMonoColors.envColor.g = R_FB_FILTER_ENV_COLOR(1);
sMonoColors.envColor.b = R_FB_FILTER_ENV_COLOR(2);
sMonoColors.envColor.a = R_FB_FILTER_A;
func_800AD5C0(&sMonoColors, &gfxP);
}
*gfx = gfxP;
}
void func_800C4344(GameState* gameState) {
Input* selectedInput;
s32 hexDumpSize;
u16 hReg82;
if (HREG(80) == 0x14) {
__osMalloc_FreeBlockTest_Enable = HREG(82);
}
if (HREG(80) == 0xC) {
selectedInput = &gameState->input[HREG(81) < 4U ? HREG(81) : 0];
hReg82 = HREG(82);
HREG(83) = selectedInput->cur.in.button;
HREG(84) = selectedInput->press.in.button;
HREG(85) = selectedInput->rel.in.x;
HREG(86) = selectedInput->rel.in.y;
HREG(87) = selectedInput->rel.in.x;
HREG(88) = selectedInput->rel.in.y;
HREG(89) = selectedInput->cur.in.x;
HREG(90) = selectedInput->cur.in.y;
HREG(93) = (selectedInput->cur.in.button == hReg82);
HREG(94) = (~(selectedInput->cur.in.button | ~hReg82) == 0);
HREG(95) = (~(selectedInput->press.in.button | ~hReg82) == 0);
}
if (D_8012DBC0 != 0) {
func_8006390C(&gameState->input[1]);
}
D_80009460 = HREG(60);
gDmaMgrDmaBuffSize = SREG(21) != 0 ? ALIGN16(SREG(21)) : 0x2000;
gSystemArenaLogSeverity = HREG(61);
gZeldaArenaLogSeverity = HREG(62);
if (HREG(80) == 8) {
if (HREG(94) != 8) {
HREG(94) = 8;
HREG(81) = 0;
HREG(82) = 0;
HREG(83) = 0;
}
if (HREG(81) < 0) {
HREG(81) = 0;
// & 0xFFFFFFFF necessary for matching.
hexDumpSize = (HREG(83) == 0 ? 0x100 : HREG(83) * 0x10) & 0xFFFFFFFF;
LogUtils_LogHexDump(PHYSICAL_TO_VIRTUAL(HREG(82) << 8), hexDumpSize);
}
}
}
#ifdef NON_MATCHING
// Regalloc mostly
void GameState_DrawInputDisplay(u16 input, Gfx** gfx) {
static const u16 sInpDispBtnColors[] = {
GPACK_RGBA5551(31, 31, 0, 1), GPACK_RGBA5551(31, 31, 0, 1), GPACK_RGBA5551(31, 31, 0, 1),
GPACK_RGBA5551(31, 31, 0, 1), GPACK_RGBA5551(15, 15, 15, 1), GPACK_RGBA5551(15, 15, 15, 1),
GPACK_RGBA5551(31, 0, 31, 1), GPACK_RGBA5551(0, 31, 31, 1), GPACK_RGBA5551(15, 15, 15, 1),
GPACK_RGBA5551(15, 15, 15, 1), GPACK_RGBA5551(15, 15, 15, 1), GPACK_RGBA5551(15, 15, 15, 1),
GPACK_RGBA5551(31, 0, 0, 1), GPACK_RGBA5551(15, 15, 15, 1), GPACK_RGBA5551(0, 31, 15, 1),
GPACK_RGBA5551(0, 0, 31, 1),
};
s32 i, j;
s32 lrx, lry, ulx, uly;
Gfx* gfxP = *gfx;
gDPPipeSync(gfxP++);
gDPSetOtherMode(gfxP++,
G_AD_PATTERN | G_CD_MAGICSQ | G_CK_NONE | G_TC_CONV | G_TF_POINT | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_FILL | G_PM_NPRIMITIVE,
G_AC_NONE | G_ZS_PIXEL | G_RM_NOOP | G_RM_NOOP2);
for (i = 0, j = 1; i < 0x10; i++, j++) {
if (input & (1 << i)) {
gDPSetFillColor(gfxP++, (sInpDispBtnColors[i] << 0x10) | sInpDispBtnColors[i]);
ulx = i * 4 + 226;
uly = 220;
lrx = j * 4 + 225;
lry = 223;
gDPFillRectangle(gfxP++, ulx, uly, lrx, lry);
gDPPipeSync(gfxP++);
}
};
*gfx = gfxP;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/game/GameState_DrawInputDisplay.s")
#endif
void GameState_Draw(GameState* gameState, GraphicsContext* gfxCtx) {
Gfx* newDList;
Gfx* polyOpaP;
Gfx* dispRefs[5];
char pad[0x10];
GfxPrint printChars[2];
Graph_OpenDisps(dispRefs, gfxCtx, "../game.c", 746);
newDList = Graph_GfxPlusOne(polyOpaP = gfxCtx->polyOpa.p);
gSPDisplayList(gfxCtx->overlay.p++, newDList);
if (R_ENABLE_FB_FILTER == 1) {
GameState_SetFBFilter(&newDList);
}
sLastButtonPressed = gameState->input[0].press.in.button | gameState->input[0].cur.in.button;
if (R_DISABLE_INPUT_DISPLAY == 0) {
GameState_DrawInputDisplay(sLastButtonPressed, &newDList);
}
if (R_ENABLE_AUDIO_DBG & 1) {
GfxPrint_Ctor(printChars);
GfxPrint_Open(printChars, newDList);
func_800EEA50(printChars);
newDList = GfxPrint_Close(printChars);
GfxPrint_Dtor(printChars);
}
if (R_ENABLE_ARENA_DBG < 0) {
DebugArena_Display();
SystemArena_Display();
//% 08x bytes left until the death of Hyrule (game_alloc)
osSyncPrintf("ハイラル滅亡まであと %08x バイト(game_alloc)\n", THA_GetSize(&gameState->tha));
R_ENABLE_ARENA_DBG = 0;
}
if (1) {
gSPEndDisplayList(newDList++);
Graph_BranchDlist(polyOpaP, newDList);
gfxCtx->polyOpa.p = newDList;
}
Graph_CloseDisps(dispRefs, gfxCtx, "../game.c", 800);
func_80063D7C(gfxCtx);
if (R_ENABLE_ARENA_DBG != 0) {
SpeedMeter_DrawTimeEntries(&D_801664D0, gfxCtx);
SpeedMeter_DrawAllocEntries(&D_801664D0, gfxCtx, gameState);
}
}
void GameState_SetFrameBuffer(GraphicsContext* gfxCtx) {
Gfx* dispRef[5];
Graph_OpenDisps(dispRef, gfxCtx, "../game.c", 814);
gSPSegment(gfxCtx->polyOpa.p++, 0, 0);
gSPSegment(gfxCtx->polyOpa.p++, 0xF, gfxCtx->curFrameBuffer);
gSPSegment(gfxCtx->polyOpa.p++, 0xE, gZBuffer);
gSPSegment(gfxCtx->polyXlu.p++, 0, 0);
gSPSegment(gfxCtx->polyXlu.p++, 0xF, gfxCtx->curFrameBuffer);
gSPSegment(gfxCtx->polyXlu.p++, 0xE, gZBuffer);
gSPSegment(gfxCtx->overlay.p++, 0, 0);
gSPSegment(gfxCtx->overlay.p++, 0xF, gfxCtx->curFrameBuffer);
gSPSegment(gfxCtx->overlay.p++, 0xE, gZBuffer);
Graph_CloseDisps(dispRef, gfxCtx, "../game.c", 838);
}
void func_800C49F4(GraphicsContext* gfxCtx) {
Gfx* newDlist;
Gfx* polyOpaP;
Gfx* dispRefs[5];
Graph_OpenDisps(dispRefs, gfxCtx, "../game.c", 846);
newDlist = Graph_GfxPlusOne(polyOpaP = gfxCtx->polyOpa.p);
gSPDisplayList(gfxCtx->overlay.p++, newDlist);
// necessary to match
if (1) {
gSPEndDisplayList(newDlist++);
Graph_BranchDlist(polyOpaP, newDlist);
gfxCtx->polyOpa.p = newDlist;
}
Graph_CloseDisps(dispRefs, gfxCtx, "../game.c", 865);
}
void GameState_ReqPadData(GameState* gameState) {
PadMgr_RequestPadData(&gPadMgr, &gameState->input, 1);
}
#ifdef NON_MATCHING
// Minor reodering and regalloc
void GameState_Update(GameState* gameState) {
GraphicsContext* gfxCtx = gameState->gfxCtx;
GameState_SetFrameBuffer(gameState->gfxCtx);
gameState->main(gameState);
func_800C4344(gameState);
if (SREG(63) == 1) {
if (SREG(48) < 0) {
SREG(48) = 0;
gfxCtx->viMode = &gViConfigMode;
gfxCtx->viFeatures = gViConfigFeatures;
gfxCtx->xScale = gViConfigXScale;
gfxCtx->yScale = gViConfigYScale;
} else if (SREG(48) > 0) {
func_800ACAF8(&D_80166528, gameState->input, gfxCtx);
gfxCtx->viMode = &D_80166528.viMode;
gfxCtx->xScale = 1.0f;
gfxCtx->yScale = 1.0f;
gfxCtx->viFeatures = D_80166528.viFeatures;
}
} else if (SREG(63) >= 2) {
gfxCtx->viMode = &gViConfigMode;
gfxCtx->viFeatures = gViConfigFeatures;
gfxCtx->xScale = gViConfigXScale;
gfxCtx->yScale = gViConfigYScale;
if (SREG(63) == 6 || (SREG(63) == 2 && osTvType == 1)) {
gfxCtx->viMode = &osViModeNtscLan1;
gfxCtx->yScale = 1.0f;
}
if (SREG(63) == 5 || (SREG(63) == 2 && osTvType == 2)) {
gfxCtx->viMode = &osViModeMpalLan1;
gfxCtx->yScale = 1.0f;
}
if (SREG(63) == 4 || (SREG(63) == 2 && osTvType == 0)) {
gfxCtx->viMode = &osViModePalLan1;
gfxCtx->yScale = 1.0f;
}
if (SREG(63) == 3 || (SREG(63) == 2 && osTvType == 0)) {
gfxCtx->viMode = &osViModeFpalLan1;
gfxCtx->yScale = 0.833f;
}
} else {
gfxCtx->viMode = NULL;
}
if (HREG(80) == 0x15) {
if (HREG(95) != 0x15) {
HREG(95) = 0x15;
HREG(81) = 0;
HREG(82) = gViConfigAdditionalScanLines;
HREG(83) = 0;
HREG(84) = 0;
}
HREG(82) = CLAMP(HREG(82), 0, 0x30);
if ((HREG(83) != HREG(82)) || HREG(84) != HREG(81)) {
HREG(83) = HREG(82);
HREG(84) = HREG(81);
gViConfigAdditionalScanLines = HREG(82);
gViConfigYScale = HREG(81) == 0 ? 240.0f / ((u8)HREG(82) + 240.0f) : 1.0f;
D_80009430 = 1;
}
}
if (SREG(94) != 2) {
GameState_Draw(gameState, gameState->gfxCtx);
func_800C49F4(gameState->gfxCtx);
}
gameState->frames++;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/game/GameState_Update.s")
#endif
void GameState_InitArena(GameState* gameState, size_t size) {
void* arena;
// Hyrule reserved size =% u bytes
osSyncPrintf("ハイラル確保 サイズ=%u バイト\n");
arena = GameAlloc_MallocDebug(&gameState->alloc, size, "../game.c", 992);
if (arena != NULL) {
THA_Ct(&gameState->tha, arena, size);
// Successful Hyral
osSyncPrintf("ハイラル確保成功\n");
} else {
THA_Ct(&gameState->tha, NULL, 0);
// Failure to secure Hyrule
osSyncPrintf("ハイラル確保失敗\n");
Fault_AddHungupAndCrash("../game.c", 999);
}
}
#ifdef NON_MATCHING
// stack
void GameState_Realloc(GameState* gameState, size_t size) {
s32 pad;
void* gameArena;
u32 systemMaxFree;
u32 systemFree;
u32 systemAlloc;
void* thaBufp;
thaBufp = gameState->tha.bufp;
THA_Dt(&gameState->tha);
GameAlloc_Free(&gameState->alloc, thaBufp);
// Hyrule temporarily released !!
osSyncPrintf("ハイラル一時解放!!\n");
SystemArena_GetSizes(&systemMaxFree, &systemFree, &systemAlloc);
if ((systemMaxFree - 0x10) < size) {
osSyncPrintf("%c", 7);
osSyncPrintf(VT_FGCOL(RED));
// Not enough memory. Change the hyral size to the largest possible value
osSyncPrintf("メモリが足りません。ハイラルサイズを可能な最大値に変更します\n");
osSyncPrintf("(hyral=%08x max=%08x free=%08x alloc=%08x)\n", size, systemMaxFree, systemFree, systemAlloc);
osSyncPrintf(VT_RST);
size = systemMaxFree - 0x10;
}
// Hyral reallocate size =% u bytes
osSyncPrintf("ハイラル再確保 サイズ=%u バイト\n", size);
gameArena = GameAlloc_MallocDebug(&gameState->alloc, size, "../game.c", 1033);
if (gameArena != NULL) {
THA_Ct(&gameState->tha, gameArena, size);
// Successful reacquisition of Hyrule
osSyncPrintf("ハイラル再確保成功\n");
} else {
THA_Ct(&gameState->tha, NULL, 0);
// Failure to secure Hyral
osSyncPrintf("ハイラル再確保失敗\n");
SystemArena_Display();
Fault_AddHungupAndCrash("../game.c", 1044);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/game/GameState_Realloc.s")
#endif
void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* gfxCtx) {
u64 startTime;
u64 endTime;
// game constructor start
osSyncPrintf("game コンストラクタ開始\n");
gameState->gfxCtx = gfxCtx;
gameState->frames = 0;
gameState->main = NULL;
gameState->destroy = NULL;
gameState->running = 1;
startTime = osGetTime();
gameState->size = 0;
gameState->init = NULL;
endTime = osGetTime();
// game_set_next_game_null processing time% d us
osSyncPrintf("game_set_next_game_null 処理時間 %d us\n", OS_CYCLES_TO_USEC(endTime - startTime));
startTime = endTime;
GameAlloc_Init(&gameState->alloc);
endTime = osGetTime();
// gamealloc_init processing time% d us
osSyncPrintf("gamealloc_init 処理時間 %d us\n", OS_CYCLES_TO_USEC(endTime - startTime));
startTime = endTime;
GameState_InitArena(gameState, 0x100000);
SREG(30) = 3;
init(gameState);
endTime = osGetTime();
// init processing time% d us
osSyncPrintf("init 処理時間 %d us\n", OS_CYCLES_TO_USEC(endTime - startTime));
startTime = endTime;
LogUtils_CheckNullPointer("this->cleanup", gameState->destroy, "../game.c", 1088);
func_800ACE70(&D_801664F0);
func_800AD920(&D_80166500);
func_800AD000(&sMonoColors);
if (SREG(48) == 0) {
func_800ACA28(&D_80166528);
}
SpeedMeter_Init(&D_801664D0);
func_800AA0B4();
osSendMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK);
endTime = osGetTime();
// Other initialization processing time% d us
osSyncPrintf("その他初期化 処理時間 %d us\n", OS_CYCLES_TO_USEC(endTime - startTime));
Fault_AddClient(&sGameFaultClient, &GameState_FaultPrint, NULL, NULL);
// game constructor end
osSyncPrintf("game コンストラクタ終了\n");
}
void GameState_Destroy(GameState* gameState) {
// game destructor start
osSyncPrintf("game デストラクタ開始\n");
func_800C3C20();
func_800F3054();
osRecvMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK);
LogUtils_CheckNullPointer("this->cleanup", gameState->destroy, "../game.c", 1139);
if (gameState->destroy != NULL) {
gameState->destroy(gameState);
}
func_800AA0F0();
SpeedMeter_Destroy(&D_801664D0);
func_800ACE90(&D_801664F0);
func_800AD950(&D_80166500);
func_800AD054(&sMonoColors);
if (SREG(48) == 0) {
func_800ACA90(&D_80166528);
}
THA_Dt(&gameState->tha);
GameAlloc_Cleanup(&gameState->alloc);
SystemArena_Display();
Fault_RemoveClient(&sGameFaultClient);
// game destructor end
osSyncPrintf("game デストラクタ終了\n");
}
GameStateFunc GameState_GetInit(GameState* gameState) {
return gameState->init;
}
size_t GameState_GetSize(GameState* gameState) {
return gameState->size;
}
u32 GameState_IsRunning(GameState* gameState) {
return gameState->running;
}
void* GameState_AllocEnd(GameState* gameState, size_t size, char* file, s32 line) {
void* ret;
if (THA_IsCrash(&gameState->tha)) {
osSyncPrintf("ハイラルは滅亡している\n");
ret = NULL;
} else if (THA_GetSize(&gameState->tha) < size) {
// Hyral on the verge of extinction does not have% d bytes left (% d bytes until extinction)
osSyncPrintf("滅亡寸前のハイラルには %d バイトの余力もない(滅亡まであと %d バイト)\n", size,
THA_GetSize(&gameState->tha));
ret = NULL;
} else {
ret = THA_AllocEndAlign16(&gameState->tha, size);
if (THA_IsCrash(&gameState->tha)) {
// Hyrule has been destroyed
osSyncPrintf("ハイラルは滅亡してしまった\n");
ret = NULL;
}
}
if (ret != NULL) {
osSyncPrintf(VT_FGCOL(GREEN));
osSyncPrintf("game_alloc(%08x) %08x-%08x [%s:%d]\n", size, ret, (u32)ret + size, file, line);
osSyncPrintf(VT_RST);
}
return ret;
}
void* GameState_AllocEndAlign16(GameState* gameState, size_t size) {
return THA_AllocEndAlign16(&gameState->tha, size);
}
s32 GameState_GetArenaSize(GameState* gameState) {
return THA_GetSize(&gameState->tha);
}

View file

@ -105,10 +105,10 @@ void* Graph_InitTHGA(GraphicsContext* gfxCtx) {
gfxCtx->unk_014 = 0;
}
GameStateOverlay* Graph_GetNextGameState() {
GameStateOverlay* Graph_GetNextGameState(GameState* gameState) {
void* gameStateInitFunc;
gameStateInitFunc = func_800C546C();
gameStateInitFunc = GameState_GetInit(gameState);
if (gameStateInitFunc == TitleSetup_Init) {
return &gGameStateOverlayTable[0];
}
@ -285,8 +285,8 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
gDPNoOpString(gfxCtx->overlay.p++, "OVERLAY_DISP 開始", 0);
Graph_CloseDisps(dispRefs, gfxCtx, "../graph.c", 975);
func_800C4A98(gameState); // Game_ReqPadData
func_800C4AC8(gameState); // Game_SetGameFrame
GameState_ReqPadData(gameState);
GameState_Update(gameState);
Graph_OpenDisps(dispRefs2, gfxCtx, "../graph.c", 987);
gDPNoOpString(gfxCtx->work.p++, "WORK_DISP 終了", 0);
@ -435,14 +435,14 @@ void Graph_ThreadEntry(void* arg0) {
sprintf(faultMsg, "CLASS SIZE= %d bytes", size);
Fault_AddHungupAndCrashImpl("GAME CLASS MALLOC FAILED", faultMsg);
}
func_800C5080(gameState, ovl->init, &gfxCtx); // Game_Ct
GameState_Init(gameState, ovl->init, &gfxCtx);
while (func_800C547C(gameState)) { // Game_IsGameStateRunning
while (GameState_IsRunning(gameState)) {
Graph_Update(&gfxCtx, gameState);
}
nextOvl = Graph_GetNextGameState(gameState);
func_800C5360(gameState); // Game_Dt
GameState_Destroy(gameState);
SystemArena_FreeDebug(gameState, "../graph.c", 1227);
Overlay_FreeGameState(ovl);
}

View file

@ -66,7 +66,7 @@ void Main(void* arg0) {
DebugArena_Init(debugHeap, debugHeapSize);
func_800636C0();
SREG(0) = 0;
R_ENABLE_ARENA_DBG = 0;
osCreateMesgQueue(&sSiIntMsgQ, sSiIntMsgBuf, 1);
osSetEventMesg(5, &sSiIntMsgQ, 0);

View file

@ -21,7 +21,7 @@ MtxF* sMatrixStack; // "Matrix_stack"
MtxF* sCurrentMatrix; // "Matrix_now"
void Matrix_Init(GameState* gameState) {
sCurrentMatrix = Game_Alloc(gameState, 20 * sizeof(MtxF), "../sys_matrix.c", 153);
sCurrentMatrix = GameState_AllocEnd(gameState, 20 * sizeof(MtxF), "../sys_matrix.c", 153);
sMatrixStack = sCurrentMatrix;
}

View file

@ -40,7 +40,7 @@ void func_801109B0(GlobalContext* globalCtx) {
// Translates to: "Permanent PARAMETER Segment = %x"
osSyncPrintf("常駐PARAMETERセグメント=%x\n", parameterSize);
interfaceCtx->parameterSegment = Game_Alloc(&globalCtx->state, parameterSize, "../z_construct.c", 159);
interfaceCtx->parameterSegment = GameState_AllocEnd(&globalCtx->state, parameterSize, "../z_construct.c", 159);
osSyncPrintf("parameter->parameterSegment=%x", interfaceCtx->parameterSegment);
@ -50,7 +50,7 @@ void func_801109B0(GlobalContext* globalCtx) {
DmaMgr_SendRequest1(interfaceCtx->parameterSegment, parameterStart, parameterSize, "../z_construct.c", 162);
interfaceCtx->do_actionSegment = Game_Alloc(&globalCtx->state, 0x480, "../z_construct.c", 166);
interfaceCtx->do_actionSegment = GameState_AllocEnd(&globalCtx->state, 0x480, "../z_construct.c", 166);
// Translates to: "DO Action Texture Initialization"
osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480);
@ -84,7 +84,7 @@ void func_801109B0(GlobalContext* globalCtx) {
DmaMgr_SendRequest1((void*)((u32)interfaceCtx->do_actionSegment + 0x300), do_actionStart + do_actionOffset, 0x180,
"../z_construct.c", 178);
interfaceCtx->icon_itemSegment = Game_Alloc(&globalCtx->state, 0x4000, "../z_construct.c", 190);
interfaceCtx->icon_itemSegment = GameState_AllocEnd(&globalCtx->state, 0x4000, "../z_construct.c", 190);
// Translates to: "Icon Item Texture Initialization = %x"
osSyncPrintf("アイコンアイテム テクスチャ初期=%x\n", 0x4000);
@ -201,7 +201,7 @@ void func_80110F68(GlobalContext* globalCtx) {
View_Init(&msgCtx->view, globalCtx->state.gfxCtx);
msgCtx->textboxSegment = Game_Alloc(&globalCtx->state, 0x2200, "../z_construct.c", 349);
msgCtx->textboxSegment = GameState_AllocEnd(&globalCtx->state, 0x2200, "../z_construct.c", 349);
osSyncPrintf("message->fukidashiSegment=%x\n", msgCtx->textboxSegment);

View file

@ -53,7 +53,7 @@ void KaleidoManager_Init(GlobalContext* globalCtx) {
osSyncPrintf(VT_FGCOL(GREEN));
osSyncPrintf("KaleidoArea の最大サイズは %d バイトを確保します\n", largestOvl);
osSyncPrintf(VT_RST);
sKaleidoAreaPtr = Game_Alloc(&globalCtx->state, largestOvl, "../z_kaleido_manager.c", 150);
sKaleidoAreaPtr = GameState_AllocEnd(&globalCtx->state, largestOvl, "../z_kaleido_manager.c", 150);
LogUtils_CheckNullPointer("KaleidoArea_allocp", sKaleidoAreaPtr, "../z_kaleido_manager.c", 151);
osSyncPrintf(VT_FGCOL(GREEN));
osSyncPrintf("KaleidoArea %08x - %08x\n", sKaleidoAreaPtr, (u32)sKaleidoAreaPtr + largestOvl);

View file

@ -232,7 +232,7 @@ void Map_Init(GlobalContext* globalCtx) {
interfaceCtx->unk_258 = -1;
interfaceCtx->unk_25A = -1;
interfaceCtx->mapSegment = Game_Alloc(&globalCtx->state, 0x1000, "../z_map_exp.c", 457);
interfaceCtx->mapSegment = GameState_AllocEnd(&globalCtx->state, 0x1000, "../z_map_exp.c", 457);
// Translates to " TEXTURE INITIALIZATION scene_data_ID=%d mapSegment=%x"
osSyncPrintf("\n\n\n テクスチャ初期化 scene_data_ID=%d\nmapSegment=%x\n\n", globalCtx->sceneNum,
interfaceCtx->mapSegment, globalCtx);

View file

@ -57,7 +57,7 @@ void MapMark_Init(GlobalContext* globalCtx) {
MapMarkDataOverlay* overlay = &sMapMarkDataOvl;
u32 overlaySize = (u32)overlay->vramEnd - (u32)overlay->vramStart;
overlay->loadedRamAddr = Game_Alloc(&globalCtx->state, overlaySize, "../z_map_mark.c", 235);
overlay->loadedRamAddr = GameState_AllocEnd(&globalCtx->state, overlaySize, "../z_map_mark.c", 235);
LogUtils_CheckNullPointer("dlftbl->allocp", overlay->loadedRamAddr, "../z_map_mark.c", 236);
Overlay_Load(overlay->vromStart, overlay->vromEnd, overlay->vramStart, overlay->vramEnd, overlay->loadedRamAddr);

View file

@ -213,7 +213,7 @@ void Gameplay_Init(GlobalContext* globalCtx) {
}
SystemArena_Display();
func_800C4F20(globalCtx, 0x1D4790);
GameState_Realloc(globalCtx, 0x1D4790);
KaleidoManager_Init(globalCtx);
View_Init(&globalCtx->view, gfxCtx);
func_800F6828(0);
@ -371,7 +371,7 @@ void Gameplay_Init(GlobalContext* globalCtx) {
osSyncPrintf("ZELDA ALLOC SIZE=%x\n", THA_GetSize(&globalCtx->state.tha));
zAllocSize = THA_GetSize(&globalCtx->state.tha);
zAlloc = Game_Alloc(&globalCtx->state, zAllocSize, "../z_play.c", 2918);
zAlloc = GameState_AllocEnd(&globalCtx->state, zAllocSize, "../z_play.c", 2918);
zAllocAligned = (void*)(((u32)zAlloc + 8) & ~0xF);
ZeldaArena_Init(zAllocAligned, zAllocSize - (u32)zAllocAligned + (u32)zAlloc);
osSyncPrintf("ゼルダヒープ %08x-%08x\n", zAllocAligned,
@ -1150,7 +1150,7 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
TransitionFade_Draw(&globalCtx->transitionFade, &gfxP);
if (D_801614B0.a > 0x00) {
D_80161498.color.rgba = D_801614B0.rgba;
D_80161498.primColor.rgba = D_801614B0.rgba;
func_800AD5C0(&D_80161498, &gfxP);
}
@ -1456,7 +1456,7 @@ void* Gameplay_LoadFile(GlobalContext* globalCtx, RomFile* file) {
void* allocp;
size = file->vromEnd - file->vromStart;
allocp = Game_Alloc(&globalCtx->state, size, "../z_play.c", 4692);
allocp = GameState_AllocEnd(&globalCtx->state, size, "../z_play.c", 4692);
DmaMgr_SendRequest1(allocp, file->vromStart, size, "../z_play.c", 4694);
return allocp;

View file

@ -566,7 +566,7 @@ u32 func_80096FE8(GlobalContext* globalCtx, RoomContext* roomCtx) {
osSyncPrintf(VT_FGCOL(YELLOW));
// Translates to: "ROOM BUFFER SIZE=%08x(%5.1fK)"
osSyncPrintf("部屋バッファサイズ=%08x(%5.1fK)\n", maxRoomSize, (f64)(maxRoomSize * 0.0009765625f));
roomCtx->bufPtrs[0] = Game_Alloc(&globalCtx->state, maxRoomSize, "../z_room.c", 946);
roomCtx->bufPtrs[0] = GameState_AllocEnd(&globalCtx->state, maxRoomSize, "../z_room.c", 946);
// Translates to: "ROOM BUFFER INITIAL POINTER=%08x"
osSyncPrintf("部屋バッファ開始ポインタ=%08x\n", roomCtx->bufPtrs[0]);
roomCtx->bufPtrs[1] = (void*)((s32)roomCtx->bufPtrs[0] + maxRoomSize);

View file

@ -82,7 +82,7 @@ void Sample_SetupView(SampleContext* this) {
void Sample_LoadTitleStatic(SampleContext* this) {
u32 size = _title_staticSegmentRomEnd - _title_staticSegmentRomStart;
this->staticSegment = Game_Alloc(&this->state, size, "../z_sample.c", 163);
this->staticSegment = GameState_AllocEnd(&this->state, size, "../z_sample.c", 163);
DmaMgr_SendRequest1(this->staticSegment, _title_staticSegmentRomStart, size, "../z_sample.c", 164);
}

View file

@ -72,7 +72,7 @@ void Object_InitBank(GlobalContext* globalCtx, ObjectContext* objectCtx) {
osSyncPrintf(VT_RST);
objectCtx->spaceStart = objectCtx->status[0].segment =
Game_Alloc(&globalCtx->state, spaceSize, "../z_scene.c", 219);
GameState_AllocEnd(&globalCtx->state, spaceSize, "../z_scene.c", 219);
objectCtx->spaceEnd = (void*)((s32)objectCtx->spaceStart + spaceSize);
objectCtx->mainKeepIndex = Object_Spawn(objectCtx, OBJECT_GAMEPLAY_KEEP);

View file

@ -164,7 +164,7 @@ void Title_Init(TitleContext* this) {
u32 size = (u32)_nintendo_rogo_staticSegmentRomEnd - (u32)_nintendo_rogo_staticSegmentRomStart;
u32 pad;
this->staticSegment = Game_Alloc(&this->state, size, "../z_title.c", 611);
this->staticSegment = GameState_AllocEnd(&this->state, size, "../z_title.c", 611);
osSyncPrintf("z_title.c\n");
if (this->staticSegment == NULL) {
__assert("this->staticSegment != NULL", "../z_title.c", 614);

View file

@ -113,7 +113,7 @@ func_800A2000 SkelAnime_GetFrameCount
func_800A457C SkelAnime_Init
func_800A49FC SkelAnime_FrameUpdateMatrix
func_800A51A0 SkelAnime_ChangeAnim
func_800C5484 Game_Alloc
func_800C5484 GameState_AllocEnd
func_800C69CC Graph_Alloc
func_800D0664 atan2s
func_800D07D4 atan2f