papermario/asm/nonmatchings/code_ebd0_len_6a0/step_battle.s
2020-08-13 01:03:47 -04:00

169 lines
8.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel step_battle
/* 00ECE4 800338E4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00ECE8 800338E8 AFB00010 */ sw $s0, 0x10($sp)
/* 00ECEC 800338EC 3C10800A */ lui $s0, 0x800a
/* 00ECF0 800338F0 26100900 */ addiu $s0, $s0, 0x900
/* 00ECF4 800338F4 24030005 */ addiu $v1, $zero, 5
/* 00ECF8 800338F8 AFBF0014 */ sw $ra, 0x14($sp)
/* 00ECFC 800338FC 82020000 */ lb $v0, ($s0)
/* 00ED00 80033900 1443000F */ bne $v0, $v1, .L80033940
/* 00ED04 80033904 92040000 */ lbu $a0, ($s0)
/* 00ED08 80033908 3C02800A */ lui $v0, 0x800a
/* 00ED0C 8003390C 8C42A658 */ lw $v0, -0x59a8($v0)
/* 00ED10 80033910 8C430004 */ lw $v1, 4($v0)
/* 00ED14 80033914 3C02800A */ lui $v0, 0x800a
/* 00ED18 80033918 8C42A64C */ lw $v0, -0x59b4($v0)
/* 00ED1C 8003391C 14620089 */ bne $v1, $v0, .L80033B44
/* 00ED20 80033920 2484FFFF */ addiu $a0, $a0, -1
/* 00ED24 80033924 3C02800A */ lui $v0, 0x800a
/* 00ED28 80033928 2442A650 */ addiu $v0, $v0, -0x59b0
/* 00ED2C 8003392C 8C430000 */ lw $v1, ($v0)
/* 00ED30 80033930 A2040000 */ sb $a0, ($s0)
/* 00ED34 80033934 34630008 */ ori $v1, $v1, 8
/* 00ED38 80033938 0C018028 */ jal nuContRmbForceStop
/* 00ED3C 8003393C AC430000 */ sw $v1, ($v0)
.L80033940:
/* 00ED40 80033940 82030000 */ lb $v1, ($s0)
/* 00ED44 80033944 04600071 */ bltz $v1, .L80033B0C
/* 00ED48 80033948 92020000 */ lbu $v0, ($s0)
/* 00ED4C 8003394C 18600003 */ blez $v1, .L8003395C
/* 00ED50 80033950 2442FFFF */ addiu $v0, $v0, -1
/* 00ED54 80033954 0800CED1 */ j .L80033B44
/* 00ED58 80033958 A2020000 */ sb $v0, ($s0)
.L8003395C:
/* 00ED5C 8003395C 3C048007 */ lui $a0, 0x8007
/* 00ED60 80033960 248478A0 */ addiu $a0, $a0, 0x78a0
/* 00ED64 80033964 24050002 */ addiu $a1, $zero, 2
/* 00ED68 80033968 2402FFFF */ addiu $v0, $zero, -1
/* 00ED6C 8003396C 0C017CBC */ jal nuGfxSetCfb
/* 00ED70 80033970 A2020000 */ sb $v0, ($s0)
/* 00ED74 80033974 0C018030 */ jal nuContRmbForceStopEnd
/* 00ED78 80033978 00000000 */ nop
/* 00ED7C 8003397C 0C05260E */ jal func_80149838
/* 00ED80 80033980 00000000 */ nop
/* 00ED84 80033984 0C00EC6A */ jal func_8003B1A8
/* 00ED88 80033988 00000000 */ nop
/* 00ED8C 8003398C 3C108007 */ lui $s0, 0x8007
/* 00ED90 80033990 2610419C */ addiu $s0, $s0, 0x419c
/* 00ED94 80033994 8E030000 */ lw $v1, ($s0)
/* 00ED98 80033998 24020001 */ addiu $v0, $zero, 1
/* 00ED9C 8003399C 0C016BA8 */ jal allocate_hit_tables
/* 00EDA0 800339A0 A0620070 */ sb $v0, 0x70($v1)
/* 00EDA4 800339A4 0C00B458 */ jal func_8002D160
/* 00EDA8 800339A8 00000000 */ nop
/* 00EDAC 800339AC 0C0AC82D */ jal func_802B20B4
/* 00EDB0 800339B0 00000000 */ nop
/* 00EDB4 800339B4 0C05259C */ jal func_80149670
/* 00EDB8 800339B8 0000202D */ daddu $a0, $zero, $zero
/* 00EDBC 800339BC 8E100000 */ lw $s0, ($s0)
/* 00EDC0 800339C0 3C03800E */ lui $v1, 0x800e
/* 00EDC4 800339C4 9063C4EA */ lbu $v1, -0x3b16($v1)
/* 00EDC8 800339C8 9205007E */ lbu $a1, 0x7e($s0)
/* 00EDCC 800339CC 3C04800E */ lui $a0, 0x800e
/* 00EDD0 800339D0 9084C4EB */ lbu $a0, -0x3b15($a0)
/* 00EDD4 800339D4 30A20001 */ andi $v0, $a1, 1
/* 00EDD8 800339D8 14400007 */ bnez $v0, .L800339F8
/* 00EDDC 800339DC 34A20001 */ ori $v0, $a1, 1
/* 00EDE0 800339E0 24020026 */ addiu $v0, $zero, 0x26
/* 00EDE4 800339E4 54620006 */ bnel $v1, $v0, .L80033A00
/* 00EDE8 800339E8 24040005 */ addiu $a0, $zero, 5
/* 00EDEC 800339EC 54800004 */ bnel $a0, $zero, .L80033A00
/* 00EDF0 800339F0 24040005 */ addiu $a0, $zero, 5
/* 00EDF4 800339F4 34A20001 */ ori $v0, $a1, 1
.L800339F8:
/* 00EDF8 800339F8 A202007E */ sb $v0, 0x7e($s0)
/* 00EDFC 800339FC 24040006 */ addiu $a0, $zero, 6
.L80033A00:
/* 00EE00 80033A00 0C0B763E */ jal func_802DD8F8
/* 00EE04 80033A04 00000000 */ nop
/* 00EE08 80033A08 0C045751 */ jal clear_model_data
/* 00EE0C 80033A0C 00000000 */ nop
/* 00EE10 80033A10 0C052010 */ jal func_80148040
/* 00EE14 80033A14 00000000 */ nop
/* 00EE18 80033A18 0C05177E */ jal func_80145DF8
/* 00EE1C 80033A1C 00000000 */ nop
/* 00EE20 80033A20 0C0482EC */ jal func_80120BB0
/* 00EE24 80033A24 00000000 */ nop
/* 00EE28 80033A28 0C047889 */ jal func_8011E224
/* 00EE2C 80033A2C 00000000 */ nop
/* 00EE30 80033A30 0C048C2E */ jal func_801230B8
/* 00EE34 80033A34 00000000 */ nop
/* 00EE38 80033A38 0000202D */ daddu $a0, $zero, $zero
/* 00EE3C 80033A3C 0C0514BA */ jal func_801452E8
/* 00EE40 80033A40 0080282D */ daddu $a1, $a0, $zero
/* 00EE44 80033A44 0C050440 */ jal func_80141100
/* 00EE48 80033A48 00000000 */ nop
/* 00EE4C 80033A4C 0C03A6EC */ jal reset_status_menu
/* 00EE50 80033A50 00000000 */ nop
/* 00EE54 80033A54 0C04C3FC */ jal clear_item_entity_data
/* 00EE58 80033A58 00000000 */ nop
/* 00EE5C 80033A5C 0C0B0C77 */ jal clear_script_list
/* 00EE60 80033A60 00000000 */ nop
/* 00EE64 80033A64 0C00E12F */ jal func_800384BC
/* 00EE68 80033A68 00000000 */ nop
/* 00EE6C 80033A6C 0C04432E */ jal func_80110CB8
/* 00EE70 80033A70 24040001 */ addiu $a0, $zero, 1
/* 00EE74 80033A74 0C0515A0 */ jal clear_trigger_data
/* 00EE78 80033A78 00000000 */ nop
/* 00EE7C 80033A7C 3C040017 */ lui $a0, 0x17
/* 00EE80 80033A80 2484C8E0 */ addiu $a0, $a0, -0x3720
/* 00EE84 80033A84 3C05001D */ lui $a1, 0x1d
/* 00EE88 80033A88 24A5C310 */ addiu $a1, $a1, -0x3cf0
/* 00EE8C 80033A8C 3C068024 */ lui $a2, 0x8024
/* 00EE90 80033A90 24C6E000 */ addiu $a2, $a2, -0x2000
/* 00EE94 80033A94 0C00A5CF */ jal dma_copy
/* 00EE98 80033A98 00000000 */ nop
/* 00EE9C 80033A9C 0C08F84C */ jal initialize_battle
/* 00EEA0 80033AA0 00000000 */ nop
/* 00EEA4 80033AA4 0C09027D */ jal func_802409F4
/* 00EEA8 80033AA8 00000000 */ nop
/* 00EEAC 80033AAC 0C01CAF7 */ jal func_80072BDC
/* 00EEB0 80033AB0 00000000 */ nop
/* 00EEB4 80033AB4 3C04800F */ lui $a0, 0x800f
/* 00EEB8 80033AB8 8C847B30 */ lw $a0, 0x7b30($a0)
/* 00EEBC 80033ABC 8C820004 */ lw $v0, 4($a0)
/* 00EEC0 80033AC0 2403FFBF */ addiu $v1, $zero, -0x41
/* 00EEC4 80033AC4 3C01800A */ lui $at, 0x800a
/* 00EEC8 80033AC8 AC220904 */ sw $v0, 0x904($at)
/* 00EECC 80033ACC 00431024 */ and $v0, $v0, $v1
/* 00EED0 80033AD0 0C009C64 */ jal func_80027190
/* 00EED4 80033AD4 AC820004 */ sw $v0, 4($a0)
/* 00EED8 80033AD8 3C01800A */ lui $at, 0x800a
/* 00EEDC 80033ADC AC220908 */ sw $v0, 0x908($at)
/* 00EEE0 80033AE0 0C009C22 */ jal func_80027088
/* 00EEE4 80033AE4 0000202D */ daddu $a0, $zero, $zero
/* 00EEE8 80033AE8 3C05800A */ lui $a1, 0x800a
/* 00EEEC 80033AEC 24A5A650 */ addiu $a1, $a1, -0x59b0
/* 00EEF0 80033AF0 2403FFF7 */ addiu $v1, $zero, -9
/* 00EEF4 80033AF4 8CA20000 */ lw $v0, ($a1)
/* 00EEF8 80033AF8 3C04800A */ lui $a0, 0x800a
/* 00EEFC 80033AFC 80840900 */ lb $a0, 0x900($a0)
/* 00EF00 80033B00 00431024 */ and $v0, $v0, $v1
/* 00EF04 80033B04 0481000F */ bgez $a0, .L80033B44
/* 00EF08 80033B08 ACA20000 */ sw $v0, ($a1)
.L80033B0C:
/* 00EF0C 80033B0C 0C00F949 */ jal func_8003E524
/* 00EF10 80033B10 00000000 */ nop
/* 00EF14 80033B14 0C08F90E */ jal update_battle_state
/* 00EF18 80033B18 00000000 */ nop
/* 00EF1C 80033B1C 0C00E64C */ jal func_80039930
/* 00EF20 80033B20 00000000 */ nop
/* 00EF24 80033B24 0C04C7BB */ jal update_item_entities
/* 00EF28 80033B28 00000000 */ nop
/* 00EF2C 80033B2C 0C016754 */ jal func_80059D50
/* 00EF30 80033B30 00000000 */ nop
/* 00EF34 80033B34 0C04599D */ jal func_80116674
/* 00EF38 80033B38 00000000 */ nop
/* 00EF3C 80033B3C 0C00B500 */ jal update_cameras
/* 00EF40 80033B40 00000000 */ nop
.L80033B44:
/* 00EF44 80033B44 8FBF0014 */ lw $ra, 0x14($sp)
/* 00EF48 80033B48 8FB00010 */ lw $s0, 0x10($sp)
/* 00EF4C 80033B4C 03E00008 */ jr $ra
/* 00EF50 80033B50 27BD0018 */ addiu $sp, $sp, 0x18