papermario/ver/us/asm/nonmatchings/state_battle/state_step_battle.s
2021-07-31 15:32:19 +01:00

167 lines
8.4 KiB
ArmAsm

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