mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
259 lines
12 KiB
ArmAsm
259 lines
12 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_80034C3C
|
|
/* 01003C 80034C3C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 010040 80034C40 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 010044 80034C44 3C10800A */ lui $s0, 0x800a
|
|
/* 010048 80034C48 26100921 */ addiu $s0, $s0, 0x921
|
|
/* 01004C 80034C4C AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 010050 80034C50 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* 010054 80034C54 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* 010058 80034C58 82030000 */ lb $v1, ($s0)
|
|
/* 01005C 80034C5C 24020003 */ addiu $v0, $zero, 3
|
|
/* 010060 80034C60 106200B8 */ beq $v1, $v0, .L80034F44
|
|
/* 010064 80034C64 28620004 */ slti $v0, $v1, 4
|
|
/* 010068 80034C68 14400006 */ bnez $v0, .L80034C84
|
|
/* 01006C 80034C6C 28620002 */ slti $v0, $v1, 2
|
|
/* 010070 80034C70 24020004 */ addiu $v0, $zero, 4
|
|
/* 010074 80034C74 106200CA */ beq $v1, $v0, .L80034FA0
|
|
/* 010078 80034C78 00000000 */ nop
|
|
/* 01007C 80034C7C 0800D3F6 */ j .L80034FD8
|
|
/* 010080 80034C80 00000000 */ nop
|
|
|
|
.L80034C84:
|
|
/* 010084 80034C84 104000D4 */ beqz $v0, .L80034FD8
|
|
/* 010088 80034C88 00000000 */ nop
|
|
/* 01008C 80034C8C 046000D2 */ bltz $v1, .L80034FD8
|
|
/* 010090 80034C90 24020004 */ addiu $v0, $zero, 4
|
|
/* 010094 80034C94 3C06800A */ lui $a2, 0x800a
|
|
/* 010098 80034C98 24C60920 */ addiu $a2, $a2, 0x920
|
|
/* 01009C 80034C9C 80C30000 */ lb $v1, ($a2)
|
|
/* 0100A0 80034CA0 14620007 */ bne $v1, $v0, .L80034CC0
|
|
/* 0100A4 80034CA4 00000000 */ nop
|
|
/* 0100A8 80034CA8 3C03800A */ lui $v1, 0x800a
|
|
/* 0100AC 80034CAC 2463A650 */ addiu $v1, $v1, -0x59b0
|
|
/* 0100B0 80034CB0 8C620000 */ lw $v0, ($v1)
|
|
/* 0100B4 80034CB4 34420008 */ ori $v0, $v0, 8
|
|
/* 0100B8 80034CB8 AC620000 */ sw $v0, ($v1)
|
|
/* 0100BC 80034CBC 80C30000 */ lb $v1, ($a2)
|
|
.L80034CC0:
|
|
/* 0100C0 80034CC0 046000C5 */ bltz $v1, .L80034FD8
|
|
/* 0100C4 80034CC4 90C20000 */ lbu $v0, ($a2)
|
|
/* 0100C8 80034CC8 10600005 */ beqz $v1, .L80034CE0
|
|
/* 0100CC 80034CCC 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 0100D0 80034CD0 A0C20000 */ sb $v0, ($a2)
|
|
/* 0100D4 80034CD4 00021600 */ sll $v0, $v0, 0x18
|
|
/* 0100D8 80034CD8 144000BF */ bnez $v0, .L80034FD8
|
|
/* 0100DC 80034CDC 00000000 */ nop
|
|
.L80034CE0:
|
|
/* 0100E0 80034CE0 3C048007 */ lui $a0, 0x8007
|
|
/* 0100E4 80034CE4 24847950 */ addiu $a0, $a0, 0x7950
|
|
/* 0100E8 80034CE8 24050003 */ addiu $a1, $zero, 3
|
|
/* 0100EC 80034CEC 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 0100F0 80034CF0 0C017CBC */ jal nuGfxSetCfb
|
|
/* 0100F4 80034CF4 A0C20000 */ sb $v0, ($a2)
|
|
/* 0100F8 80034CF8 0C0911C2 */ jal func_80244708
|
|
/* 0100FC 80034CFC 00000000 */ nop
|
|
/* 010100 80034D00 3C04800A */ lui $a0, 0x800a
|
|
/* 010104 80034D04 2484A650 */ addiu $a0, $a0, -0x59b0
|
|
/* 010108 80034D08 8C820000 */ lw $v0, ($a0)
|
|
/* 01010C 80034D0C 2403FFF7 */ addiu $v1, $zero, -9
|
|
/* 010110 80034D10 00431024 */ and $v0, $v0, $v1
|
|
/* 010114 80034D14 0C016AFA */ jal get_current_map_header
|
|
/* 010118 80034D18 AC820000 */ sw $v0, ($a0)
|
|
/* 01011C 80034D1C 3C108007 */ lui $s0, 0x8007
|
|
/* 010120 80034D20 2610419C */ addiu $s0, $s0, 0x419c
|
|
/* 010124 80034D24 8E040000 */ lw $a0, ($s0)
|
|
/* 010128 80034D28 84830086 */ lh $v1, 0x86($a0)
|
|
/* 01012C 80034D2C 00031900 */ sll $v1, $v1, 4
|
|
/* 010130 80034D30 3C068009 */ lui $a2, 0x8009
|
|
/* 010134 80034D34 00C33021 */ addu $a2, $a2, $v1
|
|
/* 010138 80034D38 8CC634F4 */ lw $a2, 0x34f4($a2)
|
|
/* 01013C 80034D3C 0040902D */ daddu $s2, $v0, $zero
|
|
/* 010140 80034D40 A0800070 */ sb $zero, 0x70($a0)
|
|
/* 010144 80034D44 8484008C */ lh $a0, 0x8c($a0)
|
|
/* 010148 80034D48 8E050000 */ lw $a1, ($s0)
|
|
/* 01014C 80034D4C 00042140 */ sll $a0, $a0, 5
|
|
/* 010150 80034D50 94A30148 */ lhu $v1, 0x148($a1)
|
|
/* 010154 80034D54 00C48821 */ addu $s1, $a2, $a0
|
|
/* 010158 80034D58 3063FF0F */ andi $v1, $v1, 0xff0f
|
|
/* 01015C 80034D5C 0C016BE1 */ jal func_8005AF84
|
|
/* 010160 80034D60 A4A30148 */ sh $v1, 0x148($a1)
|
|
/* 010164 80034D64 0C00AB37 */ jal func_8002ACDC
|
|
/* 010168 80034D68 00000000 */ nop
|
|
/* 01016C 80034D6C 0C018030 */ jal nuContRmbForceStopEnd
|
|
/* 010170 80034D70 00000000 */ nop
|
|
/* 010174 80034D74 0C05259C */ jal func_80149670
|
|
/* 010178 80034D78 24040001 */ addiu $a0, $zero, 1
|
|
/* 01017C 80034D7C 8E020000 */ lw $v0, ($s0)
|
|
/* 010180 80034D80 0C0B763E */ jal func_802DD8F8
|
|
/* 010184 80034D84 80440084 */ lb $a0, 0x84($v0)
|
|
/* 010188 80034D88 0C0457FA */ jal init_model_data
|
|
/* 01018C 80034D8C 00000000 */ nop
|
|
/* 010190 80034D90 0C05203C */ jal func_801480F0
|
|
/* 010194 80034D94 00000000 */ nop
|
|
/* 010198 80034D98 0C048316 */ jal func_80120C58
|
|
/* 01019C 80034D9C 00000000 */ nop
|
|
/* 0101A0 80034DA0 0C0478C4 */ jal func_8011E310
|
|
/* 0101A4 80034DA4 00000000 */ nop
|
|
/* 0101A8 80034DA8 0C048C45 */ jal func_80123114
|
|
/* 0101AC 80034DAC 00000000 */ nop
|
|
/* 0101B0 80034DB0 0000202D */ daddu $a0, $zero, $zero
|
|
/* 0101B4 80034DB4 0C0514BA */ jal func_801452E8
|
|
/* 0101B8 80034DB8 0080282D */ daddu $a1, $a0, $zero
|
|
/* 0101BC 80034DBC 0C0504C0 */ jal init_menu_icon_list
|
|
/* 0101C0 80034DC0 00000000 */ nop
|
|
/* 0101C4 80034DC4 0C04C433 */ jal init_item_entity_list
|
|
/* 0101C8 80034DC8 00000000 */ nop
|
|
/* 0101CC 80034DCC 0C0B0CBB */ jal init_script_list
|
|
/* 0101D0 80034DD0 00000000 */ nop
|
|
/* 0101D4 80034DD4 0C00E14B */ jal init_npc_list
|
|
/* 0101D8 80034DD8 00000000 */ nop
|
|
/* 0101DC 80034DDC 0C044396 */ jal func_80110E58
|
|
/* 0101E0 80034DE0 00000000 */ nop
|
|
/* 0101E4 80034DE4 0C0515CA */ jal init_trigger_list
|
|
/* 0101E8 80034DE8 00000000 */ nop
|
|
/* 0101EC 80034DEC 3C04800A */ lui $a0, 0x800a
|
|
/* 0101F0 80034DF0 8C840924 */ lw $a0, 0x924($a0)
|
|
/* 0101F4 80034DF4 0C0525FF */ jal func_801497FC
|
|
/* 0101F8 80034DF8 00000000 */ nop
|
|
/* 0101FC 80034DFC 0C052B1C */ jal func_8014AC70
|
|
/* 010200 80034E00 00000000 */ nop
|
|
/* 010204 80034E04 0C0169B0 */ jal load_map_script_lib
|
|
/* 010208 80034E08 00000000 */ nop
|
|
/* 01020C 80034E0C 3C04800E */ lui $a0, 0x800e
|
|
/* 010210 80034E10 24849230 */ addiu $a0, $a0, -0x6dd0
|
|
/* 010214 80034E14 0C016B3A */ jal load_asset_by_name
|
|
/* 010218 80034E18 27A50010 */ addiu $a1, $sp, 0x10
|
|
/* 01021C 80034E1C 0040802D */ daddu $s0, $v0, $zero
|
|
/* 010220 80034E20 3C058021 */ lui $a1, 0x8021
|
|
/* 010224 80034E24 24A50000 */ addiu $a1, $a1, 0
|
|
/* 010228 80034E28 0C01BB7C */ jal decode_yay0
|
|
/* 01022C 80034E2C 0200202D */ daddu $a0, $s0, $zero
|
|
/* 010230 80034E30 0C00AB1E */ jal general_heap_free
|
|
/* 010234 80034E34 0200202D */ daddu $a0, $s0, $zero
|
|
/* 010238 80034E38 0C016BE5 */ jal initialize_collision
|
|
/* 01023C 80034E3C 00000000 */ nop
|
|
/* 010240 80034E40 0C016C16 */ jal load_collision
|
|
/* 010244 80034E44 00000000 */ nop
|
|
/* 010248 80034E48 8E240008 */ lw $a0, 8($s1)
|
|
/* 01024C 80034E4C 10800004 */ beqz $a0, .L80034E60
|
|
/* 010250 80034E50 00000000 */ nop
|
|
/* 010254 80034E54 8E25000C */ lw $a1, 0xc($s1)
|
|
/* 010258 80034E58 0C00A5CF */ jal dma_copy
|
|
/* 01025C 80034E5C 8E260010 */ lw $a2, 0x10($s1)
|
|
.L80034E60:
|
|
/* 010260 80034E60 0C05175C */ jal load_map_bg
|
|
/* 010264 80034E64 8E240014 */ lw $a0, 0x14($s1)
|
|
/* 010268 80034E68 8E440038 */ lw $a0, 0x38($s2)
|
|
/* 01026C 80034E6C 50800005 */ beql $a0, $zero, .L80034E84
|
|
/* 010270 80034E70 24040128 */ addiu $a0, $zero, 0x128
|
|
/* 010274 80034E74 0C05178A */ jal read_background_size
|
|
/* 010278 80034E78 00000000 */ nop
|
|
/* 01027C 80034E7C 0800D3A5 */ j .L80034E94
|
|
/* 010280 80034E80 00000000 */ nop
|
|
|
|
.L80034E84:
|
|
/* 010284 80034E84 240500C8 */ addiu $a1, $zero, 0xc8
|
|
/* 010288 80034E88 2406000C */ addiu $a2, $zero, 0xc
|
|
/* 01028C 80034E8C 0C05179C */ jal set_background_size
|
|
/* 010290 80034E90 24070014 */ addiu $a3, $zero, 0x14
|
|
.L80034E94:
|
|
/* 010294 80034E94 3C038007 */ lui $v1, 0x8007
|
|
/* 010298 80034E98 8C63419C */ lw $v1, 0x419c($v1)
|
|
/* 01029C 80034E9C 9462015E */ lhu $v0, 0x15e($v1)
|
|
/* 0102A0 80034EA0 0C04584B */ jal calculate_model_sizes
|
|
/* 0102A4 80034EA4 A462015C */ sh $v0, 0x15c($v1)
|
|
/* 0102A8 80034EA8 0C00EC6C */ jal func_8003B1B0
|
|
/* 0102AC 80034EAC 00000000 */ nop
|
|
/* 0102B0 80034EB0 0C051FB1 */ jal func_80147EC4
|
|
/* 0102B4 80034EB4 0000202D */ daddu $a0, $zero, $zero
|
|
/* 0102B8 80034EB8 0C03A631 */ jal status_menu_disable_ignore_changes
|
|
/* 0102BC 80034EBC 00000000 */ nop
|
|
/* 0102C0 80034EC0 0C009C22 */ jal func_80027088
|
|
/* 0102C4 80034EC4 24040001 */ addiu $a0, $zero, 1
|
|
/* 0102C8 80034EC8 24020003 */ addiu $v0, $zero, 3
|
|
/* 0102CC 80034ECC 3C048011 */ lui $a0, 0x8011
|
|
/* 0102D0 80034ED0 2484EFC8 */ addiu $a0, $a0, -0x1038
|
|
/* 0102D4 80034ED4 3C01800A */ lui $at, 0x800a
|
|
/* 0102D8 80034ED8 A0220921 */ sb $v0, 0x921($at)
|
|
/* 0102DC 80034EDC 9082000E */ lbu $v0, 0xe($a0)
|
|
/* 0102E0 80034EE0 3C03802E */ lui $v1, 0x802e
|
|
/* 0102E4 80034EE4 90639D70 */ lbu $v1, -0x6290($v1)
|
|
/* 0102E8 80034EE8 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 0102EC 80034EEC 24630001 */ addiu $v1, $v1, 1
|
|
/* 0102F0 80034EF0 A082000F */ sb $v0, 0xf($a0)
|
|
/* 0102F4 80034EF4 3C01802E */ lui $at, 0x802e
|
|
/* 0102F8 80034EF8 A0239D71 */ sb $v1, -0x628f($at)
|
|
/* 0102FC 80034EFC 0C00F949 */ jal func_8003E524
|
|
/* 010300 80034F00 00000000 */ nop
|
|
/* 010304 80034F04 0C00E64C */ jal func_80039930
|
|
/* 010308 80034F08 00000000 */ nop
|
|
/* 01030C 80034F0C 0C037DD0 */ jal func_800DF740
|
|
/* 010310 80034F10 00000000 */ nop
|
|
/* 010314 80034F14 0C016754 */ jal func_80059D50
|
|
/* 010318 80034F18 00000000 */ nop
|
|
/* 01031C 80034F1C 3C03800A */ lui $v1, 0x800a
|
|
/* 010320 80034F20 24630922 */ addiu $v1, $v1, 0x922
|
|
/* 010324 80034F24 94620000 */ lhu $v0, ($v1)
|
|
/* 010328 80034F28 2442FFEC */ addiu $v0, $v0, -0x14
|
|
/* 01032C 80034F2C A4620000 */ sh $v0, ($v1)
|
|
/* 010330 80034F30 00021400 */ sll $v0, $v0, 0x10
|
|
/* 010334 80034F34 04420028 */ bltzl $v0, .L80034FD8
|
|
/* 010338 80034F38 A4600000 */ sh $zero, ($v1)
|
|
/* 01033C 80034F3C 0800D3F6 */ j .L80034FD8
|
|
/* 010340 80034F40 00000000 */ nop
|
|
|
|
.L80034F44:
|
|
/* 010344 80034F44 0C00F949 */ jal func_8003E524
|
|
/* 010348 80034F48 00000000 */ nop
|
|
/* 01034C 80034F4C 0C00E64C */ jal func_80039930
|
|
/* 010350 80034F50 00000000 */ nop
|
|
/* 010354 80034F54 0C037DD0 */ jal func_800DF740
|
|
/* 010358 80034F58 00000000 */ nop
|
|
/* 01035C 80034F5C 0C016754 */ jal func_80059D50
|
|
/* 010360 80034F60 00000000 */ nop
|
|
/* 010364 80034F64 3C04800A */ lui $a0, 0x800a
|
|
/* 010368 80034F68 24840922 */ addiu $a0, $a0, 0x922
|
|
/* 01036C 80034F6C 84820000 */ lh $v0, ($a0)
|
|
/* 010370 80034F70 94830000 */ lhu $v1, ($a0)
|
|
/* 010374 80034F74 14400004 */ bnez $v0, .L80034F88
|
|
/* 010378 80034F78 2462FFEC */ addiu $v0, $v1, -0x14
|
|
/* 01037C 80034F7C 24020004 */ addiu $v0, $zero, 4
|
|
/* 010380 80034F80 0800D3F6 */ j .L80034FD8
|
|
/* 010384 80034F84 A2020000 */ sb $v0, ($s0)
|
|
|
|
.L80034F88:
|
|
/* 010388 80034F88 A4820000 */ sh $v0, ($a0)
|
|
/* 01038C 80034F8C 00021400 */ sll $v0, $v0, 0x10
|
|
/* 010390 80034F90 04420011 */ bltzl $v0, .L80034FD8
|
|
/* 010394 80034F94 A4800000 */ sh $zero, ($a0)
|
|
/* 010398 80034F98 0800D3F6 */ j .L80034FD8
|
|
/* 01039C 80034F9C 00000000 */ nop
|
|
|
|
.L80034FA0:
|
|
/* 0103A0 80034FA0 0C009C22 */ jal func_80027088
|
|
/* 0103A4 80034FA4 0000202D */ daddu $a0, $zero, $zero
|
|
/* 0103A8 80034FA8 0C00F949 */ jal func_8003E524
|
|
/* 0103AC 80034FAC 00000000 */ nop
|
|
/* 0103B0 80034FB0 0C00E64C */ jal func_80039930
|
|
/* 0103B4 80034FB4 00000000 */ nop
|
|
/* 0103B8 80034FB8 0C037DD0 */ jal func_800DF740
|
|
/* 0103BC 80034FBC 00000000 */ nop
|
|
/* 0103C0 80034FC0 0C016754 */ jal func_80059D50
|
|
/* 0103C4 80034FC4 00000000 */ nop
|
|
/* 0103C8 80034FC8 0C038069 */ jal func_800E01A4
|
|
/* 0103CC 80034FCC 00000000 */ nop
|
|
/* 0103D0 80034FD0 0C00CD3C */ jal set_game_mode
|
|
/* 0103D4 80034FD4 24040004 */ addiu $a0, $zero, 4
|
|
.L80034FD8:
|
|
/* 0103D8 80034FD8 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 0103DC 80034FDC 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* 0103E0 80034FE0 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* 0103E4 80034FE4 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0103E8 80034FE8 03E00008 */ jr $ra
|
|
/* 0103EC 80034FEC 27BD0028 */ addiu $sp, $sp, 0x28
|
|
|