From dbcd5075b036cdd700cdff2b863e9884037ddfca Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Sun, 7 Jan 2018 01:47:42 +0100 Subject: Split battle_anim_81258BC.s and decompile unused --- Makefile | 2 +- asm/battle_anim_81258BC.s | 732 -------------------------------------------- asm/battle_anim_sfx.s | 677 ++++++++++++++++++++++++++++++++++++++++ ld_script.txt | 6 +- src/battle/anim/sfx.c | 2 + src/unused/unused_8124F94.c | 126 ++++++++ src/unused/unused_81258BC.c | 36 +++ src/unused_8124F94.c | 126 -------- 8 files changed, 846 insertions(+), 861 deletions(-) delete mode 100644 asm/battle_anim_81258BC.s create mode 100644 asm/battle_anim_sfx.s create mode 100644 src/battle/anim/sfx.c create mode 100644 src/unused/unused_8124F94.c create mode 100644 src/unused/unused_81258BC.c delete mode 100644 src/unused_8124F94.c diff --git a/Makefile b/Makefile index c1f6a6b4f..275df021e 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_d $(VERSIONS) $(VERSIONS:%=compare_%) -$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs}})) +$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs,/unused}})) C_SRCS := $(shell find src -iname "*.c") ASM_SRCS := $(wildcard asm/*.s) diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s deleted file mode 100644 index 2c19ad731..000000000 --- a/asm/battle_anim_81258BC.s +++ /dev/null @@ -1,732 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start unref_sub_812AECC -unref_sub_812AECC: @ 812AECC - push {lr} - bl RunMysteryEventScript - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0812AEEA - cmp r0, 0x1 - ble _0812AF08 - cmp r1, 0x2 - beq _0812AEF4 - cmp r1, 0x3 - beq _0812AEFA - b _0812AF08 -_0812AEEA: - movs r0, 0x16 - bl PlaySE - movs r0, 0x1 - b _0812AF0A -_0812AEF4: - bl sub_812AF10 - b _0812AF08 -_0812AEFA: - movs r0, 0x16 - bl PlaySE - bl sub_812AF10 - movs r0, 0x1 - b _0812AF0A -_0812AF08: - movs r0, 0 -_0812AF0A: - pop {r1} - bx r1 - thumb_func_end unref_sub_812AECC - - thumb_func_start sub_812AF10 -sub_812AF10: @ 812AF10 - push {lr} - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _0812AF2C @ =gStringVar4 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_0812AF2C: .4byte gStringVar4 - thumb_func_end sub_812AF10 - - thumb_func_start sub_812AF30 -sub_812AF30: @ 812AF30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812AF8C @ =gTasks - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - adds r6, r1 - ldr r1, _0812AF90 @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r6, 0x8] - ldrh r0, [r1, 0x2] - strh r0, [r6, 0xA] - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl CalculatePanIncrement - strh r4, [r6, 0xC] - strh r5, [r6, 0xE] - lsls r0, 24 - asrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0xA - strh r0, [r6, 0x1C] - ldr r0, _0812AF94 @ =sub_812AF98 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812AF8C: .4byte gTasks -_0812AF90: .4byte gBattleAnimArgs -_0812AF94: .4byte sub_812AF98 - thumb_func_end sub_812AF30 - - thumb_func_start sub_812AF98 -sub_812AF98: @ 812AF98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0812AFC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r5, [r4, 0xC] - ldrb r6, [r4, 0x10] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - bne _0812AFD0 - movs r0, 0x5 - strh r0, [r4, 0x1C] - strh r1, [r4, 0x1E] - ldr r0, _0812AFCC @ =sub_812B004 - str r0, [r4] - b _0812AFFE - .align 2, 0 -_0812AFC8: .4byte gTasks -_0812AFCC: .4byte sub_812B004 -_0812AFD0: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0812AFEA - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x8] - lsls r1, r5, 24 - asrs r1, 24 - bl PlaySE12WithPanning -_0812AFEA: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_8077104 - strh r0, [r4, 0xC] -_0812AFFE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812AF98 - - thumb_func_start sub_812B004 -sub_812B004: @ 812B004 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _0812B04C - movs r0, 0 - strh r0, [r4, 0x1C] - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r1, r0, 0 - ldrh r0, [r4, 0xA] - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0812B04C - adds r0, r5, 0 - bl DestroyAnimSoundTask -_0812B04C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B054: .4byte gTasks - thumb_func_end sub_812B004 - - thumb_func_start sub_812B058 -sub_812B058: @ 812B058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B0FC @ =gBattleAnimArgs - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x6] - ldrb r3, [r0, 0x8] - mov r10, r3 - ldrb r7, [r0, 0xA] - ldrb r1, [r0, 0xC] - mov r9, r1 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B100 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, 0x8] - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r10 - strh r0, [r1, 0x10] - strh r7, [r1, 0x12] - mov r3, r9 - strh r3, [r1, 0x14] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - strh r3, [r1, 0x20] - ldr r2, _0812B104 @ =sub_812B108 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B0FC: .4byte gBattleAnimArgs -_0812B100: .4byte gTasks -_0812B104: .4byte sub_812B108 - thumb_func_end sub_812B058 - - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B14C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B150 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812B150 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _0812B182 - .align 2, 0 -_0812B14C: .4byte gTasks -_0812B150: - ldr r1, _0812B188 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B182 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B188: .4byte gTasks - thumb_func_end sub_812B108 - - thumb_func_start sub_812B18C -sub_812B18C: @ 812B18C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r6, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B1CC - ldr r0, _0812B1BC @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812B1C4 - ldr r0, _0812B1C0 @ =gSharedMem + 0x19348 - ldrh r4, [r0] - b _0812B272 - .align 2, 0 -_0812B1BC: .4byte gBattleAnimArgs -_0812B1C0: .4byte gSharedMem + 0x19348 -_0812B1C4: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B272 -_0812B1CC: - ldr r0, _0812B1E0 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _0812B1E8 - ldr r0, _0812B1E4 @ =gAnimBankAttacker - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1E0: .4byte gBattleAnimArgs -_0812B1E4: .4byte gAnimBankAttacker -_0812B1E8: - cmp r1, 0x1 - bne _0812B1F8 - ldr r0, _0812B1F4 @ =gAnimBankTarget - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1F4: .4byte gAnimBankTarget -_0812B1F8: - cmp r1, 0x2 - bne _0812B204 - ldr r0, _0812B200 @ =gAnimBankAttacker - b _0812B206 - .align 2, 0 -_0812B200: .4byte gAnimBankAttacker -_0812B204: - ldr r0, _0812B230 @ =gAnimBankTarget -_0812B206: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_0812B20E: - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0812B21A - cmp r0, 0x3 - bne _0812B234 -_0812B21A: - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _0812B234 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B2B0 - .align 2, 0 -_0812B230: .4byte gAnimBankTarget -_0812B234: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0812B258 - ldr r1, _0812B250 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B254 @ =gEnemyParty - b _0812B266 - .align 2, 0 -_0812B250: .4byte gBattlePartyID -_0812B254: .4byte gEnemyParty -_0812B258: - ldr r1, _0812B290 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B294 @ =gPlayerParty -_0812B266: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_0812B272: - cmp r4, 0 - beq _0812B2AA - ldr r0, _0812B298 @ =gBattleAnimArgs - ldrh r2, [r0, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - bne _0812B29C - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlayCry1 - b _0812B2AA - .align 2, 0 -_0812B290: .4byte gBattlePartyID -_0812B294: .4byte gPlayerParty -_0812B298: .4byte gBattleAnimArgs -_0812B29C: - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl PlayCry3 -_0812B2AA: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B2B0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812B18C - - thumb_func_start sub_812B2B8 -sub_812B2B8: @ 812B2B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B2DC - ldr r0, _0812B2D8 @ =gSharedMem + 0x19348 - b _0812B2E6 - .align 2, 0 -_0812B2D8: .4byte gSharedMem + 0x19348 -_0812B2DC: - ldr r1, _0812B304 @ =gAnimSpeciesByBanks - ldr r0, _0812B308 @ =gAnimBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 -_0812B2E6: - ldrh r0, [r0] - cmp r0, 0 - beq _0812B2F6 - lsls r1, r4, 24 - asrs r1, 24 - movs r2, 0x4 - bl PlayCry3 -_0812B2F6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B304: .4byte gAnimSpeciesByBanks -_0812B308: .4byte gAnimBankAttacker - thumb_func_end sub_812B2B8 - - thumb_func_start sub_812B30C -sub_812B30C: @ 812B30C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B33C @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE1WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B33C: .4byte gBattleAnimArgs - thumb_func_end sub_812B30C - - thumb_func_start sub_812B340 -sub_812B340: @ 812B340 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B370 @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE2WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B370: .4byte gBattleAnimArgs - thumb_func_end sub_812B340 - - thumb_func_start sub_812B374 -sub_812B374: @ 812B374 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B3F8 @ =gBattleAnimArgs - ldrb r5, [r0, 0x2] - ldrb r6, [r0, 0x4] - ldrh r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B3FC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r9 - strh r0, [r1, 0x12] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - ldr r2, _0812B400 @ =sub_812B404 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812B3F8: .4byte gBattleAnimArgs -_0812B3FC: .4byte gTasks -_0812B400: .4byte sub_812B404 - thumb_func_end sub_812B374 - - thumb_func_start sub_812B404 -sub_812B404: @ 812B404 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0812B45C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0812B43E - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r0, r2, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B43E: - ldr r1, _0812B460 @ =gUnknown_0202F7D2 - ldrh r0, [r4, 0x1E] - strb r0, [r1] - movs r3, 0x1E - ldrsh r1, [r4, r3] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812B456 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B456: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B45C: .4byte gTasks -_0812B460: .4byte gUnknown_0202F7D2 - thumb_func_end sub_812B404 - - .align 2, 0 @ Don't pad with nop. - \ No newline at end of file diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s new file mode 100644 index 000000000..520c119cb --- /dev/null +++ b/asm/battle_anim_sfx.s @@ -0,0 +1,677 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_812AF30 +sub_812AF30: @ 812AF30 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0812AF8C @ =gTasks + lsls r6, r0, 2 + adds r6, r0 + lsls r6, 3 + adds r6, r1 + ldr r1, _0812AF90 @ =gBattleAnimArgs + ldrh r0, [r1] + strh r0, [r6, 0x8] + ldrh r0, [r1, 0x2] + strh r0, [r6, 0xA] + movs r0, 0x40 + negs r0, r0 + bl BattleAnimAdjustPanning + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x3F + bl BattleAnimAdjustPanning + adds r5, r0, 0 + lsls r4, 24 + asrs r4, 24 + lsls r5, 24 + asrs r5, 24 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + bl CalculatePanIncrement + strh r4, [r6, 0xC] + strh r5, [r6, 0xE] + lsls r0, 24 + asrs r0, 24 + strh r0, [r6, 0x10] + movs r0, 0xA + strh r0, [r6, 0x1C] + ldr r0, _0812AF94 @ =sub_812AF98 + str r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0812AF8C: .4byte gTasks +_0812AF90: .4byte gBattleAnimArgs +_0812AF94: .4byte sub_812AF98 + thumb_func_end sub_812AF30 + + thumb_func_start sub_812AF98 +sub_812AF98: @ 812AF98 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0812AFC8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r5, [r4, 0xC] + ldrb r6, [r4, 0x10] + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6F + bne _0812AFD0 + movs r0, 0x5 + strh r0, [r4, 0x1C] + strh r1, [r4, 0x1E] + ldr r0, _0812AFCC @ =sub_812B004 + str r0, [r4] + b _0812AFFE + .align 2, 0 +_0812AFC8: .4byte gTasks +_0812AFCC: .4byte sub_812B004 +_0812AFD0: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _0812AFEA + strh r1, [r4, 0x1C] + ldrh r0, [r4, 0x8] + lsls r1, r5, 24 + asrs r1, 24 + bl PlaySE12WithPanning +_0812AFEA: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r5, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + bl sub_8077104 + strh r0, [r4, 0xC] +_0812AFFE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_812AF98 + + thumb_func_start sub_812B004 +sub_812B004: @ 812B004 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0812B054 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bne _0812B04C + movs r0, 0 + strh r0, [r4, 0x1C] + movs r0, 0x3F + bl BattleAnimAdjustPanning + adds r1, r0, 0 + ldrh r0, [r4, 0xA] + lsls r1, 24 + asrs r1, 24 + bl PlaySE12WithPanning + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _0812B04C + adds r0, r5, 0 + bl DestroyAnimSoundTask +_0812B04C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B054: .4byte gTasks + thumb_func_end sub_812B004 + + thumb_func_start sub_812B058 +sub_812B058: @ 812B058 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0812B0FC @ =gBattleAnimArgs + ldrh r1, [r0] + str r1, [sp] + ldrb r5, [r0, 0x4] + ldrb r6, [r0, 0x6] + ldrb r3, [r0, 0x8] + mov r10, r3 + ldrb r7, [r0, 0xA] + ldrb r1, [r0, 0xC] + mov r9, r1 + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + bl BattleAnimAdjustPanning + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + asrs r5, 24 + adds r0, r5, 0 + bl BattleAnimAdjustPanning + adds r5, r0, 0 + lsls r4, 24 + asrs r4, 24 + lsls r5, 24 + asrs r5, 24 + lsls r6, 24 + asrs r6, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl CalculatePanIncrement + ldr r2, _0812B100 @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + mov r6, sp + ldrh r6, [r6] + strh r6, [r1, 0x8] + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0xE] + mov r0, r10 + strh r0, [r1, 0x10] + strh r7, [r1, 0x12] + mov r3, r9 + strh r3, [r1, 0x14] + strh r2, [r1, 0x1C] + strh r4, [r1, 0x1E] + strh r3, [r1, 0x20] + ldr r2, _0812B104 @ =sub_812B108 + str r2, [r1] + mov r0, r8 + bl _call_via_r2 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0812B0FC: .4byte gBattleAnimArgs +_0812B100: .4byte gTasks +_0812B104: .4byte sub_812B108 + thumb_func_end sub_812B058 + + thumb_func_start sub_812B108 +sub_812B108: @ 812B108 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0812B14C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x20] + adds r1, r0, 0x1 + strh r1, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x14 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0812B150 + movs r0, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x8] + movs r1, 0x1E + ldrsb r1, [r4, r1] + bl PlaySE12WithPanning + ldrh r0, [r4, 0x10] + subs r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bne _0812B150 + adds r0, r5, 0 + bl DestroyAnimSoundTask + b _0812B182 + .align 2, 0 +_0812B14C: .4byte gTasks +_0812B150: + ldr r1, _0812B188 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0812B182 + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0xE] + ldrh r1, [r4, 0x1E] + adds r0, r1 + strh r0, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + bl sub_8077104 + strh r0, [r4, 0x1E] +_0812B182: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B188: .4byte gTasks + thumb_func_end sub_812B108 + + thumb_func_start sub_812B18C +sub_812B18C: @ 812B18C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + movs r0, 0x40 + negs r0, r0 + bl BattleAnimAdjustPanning + lsls r0, 24 + lsrs r6, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _0812B1CC + ldr r0, _0812B1BC @ =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0812B1C4 + ldr r0, _0812B1C0 @ =gSharedMem + 0x19348 + ldrh r4, [r0] + b _0812B272 + .align 2, 0 +_0812B1BC: .4byte gBattleAnimArgs +_0812B1C0: .4byte gSharedMem + 0x19348 +_0812B1C4: + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _0812B272 +_0812B1CC: + ldr r0, _0812B1E0 @ =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r2, r0, 0 + cmp r1, 0 + bne _0812B1E8 + ldr r0, _0812B1E4 @ =gAnimBankAttacker + ldrb r4, [r0] + b _0812B20E + .align 2, 0 +_0812B1E0: .4byte gBattleAnimArgs +_0812B1E4: .4byte gAnimBankAttacker +_0812B1E8: + cmp r1, 0x1 + bne _0812B1F8 + ldr r0, _0812B1F4 @ =gAnimBankTarget + ldrb r4, [r0] + b _0812B20E + .align 2, 0 +_0812B1F4: .4byte gAnimBankTarget +_0812B1F8: + cmp r1, 0x2 + bne _0812B204 + ldr r0, _0812B200 @ =gAnimBankAttacker + b _0812B206 + .align 2, 0 +_0812B200: .4byte gAnimBankAttacker +_0812B204: + ldr r0, _0812B230 @ =gAnimBankTarget +_0812B206: + ldrb r1, [r0] + movs r0, 0x2 + adds r4, r0, 0 + eors r4, r1 +_0812B20E: + movs r1, 0 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _0812B21A + cmp r0, 0x3 + bne _0812B234 +_0812B21A: + adds r0, r4, 0 + bl IsAnimBankSpriteVisible + lsls r0, 24 + cmp r0, 0 + bne _0812B234 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _0812B2B0 + .align 2, 0 +_0812B230: .4byte gAnimBankTarget +_0812B234: + adds r0, r4, 0 + bl GetBankSide + lsls r0, 24 + cmp r0, 0 + beq _0812B258 + ldr r1, _0812B250 @ =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0812B254 @ =gEnemyParty + b _0812B266 + .align 2, 0 +_0812B250: .4byte gBattlePartyID +_0812B254: .4byte gEnemyParty +_0812B258: + ldr r1, _0812B290 @ =gBattlePartyID + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0812B294 @ =gPlayerParty +_0812B266: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 +_0812B272: + cmp r4, 0 + beq _0812B2AA + ldr r0, _0812B298 @ =gBattleAnimArgs + ldrh r2, [r0, 0x2] + movs r1, 0x2 + ldrsh r0, [r0, r1] + cmp r0, 0xFF + bne _0812B29C + lsls r1, r6, 24 + asrs r1, 24 + adds r0, r4, 0 + bl PlayCry1 + b _0812B2AA + .align 2, 0 +_0812B290: .4byte gBattlePartyID +_0812B294: .4byte gPlayerParty +_0812B298: .4byte gBattleAnimArgs +_0812B29C: + lsls r1, r6, 24 + asrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + bl PlayCry3 +_0812B2AA: + adds r0, r5, 0 + bl DestroyAnimVisualTask +_0812B2B0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_812B18C + + thumb_func_start sub_812B2B8 +sub_812B2B8: @ 812B2B8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x40 + negs r0, r0 + bl BattleAnimAdjustPanning + lsls r0, 24 + lsrs r4, r0, 24 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _0812B2DC + ldr r0, _0812B2D8 @ =gSharedMem + 0x19348 + b _0812B2E6 + .align 2, 0 +_0812B2D8: .4byte gSharedMem + 0x19348 +_0812B2DC: + ldr r1, _0812B304 @ =gAnimSpeciesByBanks + ldr r0, _0812B308 @ =gAnimBankAttacker + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 +_0812B2E6: + ldrh r0, [r0] + cmp r0, 0 + beq _0812B2F6 + lsls r1, r4, 24 + asrs r1, 24 + movs r2, 0x4 + bl PlayCry3 +_0812B2F6: + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B304: .4byte gAnimSpeciesByBanks +_0812B308: .4byte gAnimBankAttacker + thumb_func_end sub_812B2B8 + + thumb_func_start sub_812B30C +sub_812B30C: @ 812B30C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0812B33C @ =gBattleAnimArgs + ldrh r5, [r0] + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + bl BattleAnimAdjustPanning + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl PlaySE1WithPanning + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B33C: .4byte gBattleAnimArgs + thumb_func_end sub_812B30C + + thumb_func_start sub_812B340 +sub_812B340: @ 812B340 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0812B370 @ =gBattleAnimArgs + ldrh r5, [r0] + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + bl BattleAnimAdjustPanning + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + adds r0, r5, 0 + bl PlaySE2WithPanning + adds r0, r4, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B370: .4byte gBattleAnimArgs + thumb_func_end sub_812B340 + + thumb_func_start sub_812B374 +sub_812B374: @ 812B374 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0812B3F8 @ =gBattleAnimArgs + ldrb r5, [r0, 0x2] + ldrb r6, [r0, 0x4] + ldrh r1, [r0, 0x6] + mov r9, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + bl BattleAnimAdjustPanning + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + asrs r5, 24 + adds r0, r5, 0 + bl BattleAnimAdjustPanning + adds r5, r0, 0 + lsls r4, 24 + asrs r4, 24 + lsls r5, 24 + asrs r5, 24 + lsls r6, 24 + asrs r6, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl CalculatePanIncrement + ldr r2, _0812B3FC @ =gTasks + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r4, [r1, 0xA] + strh r5, [r1, 0xC] + lsls r0, 24 + asrs r0, 24 + strh r0, [r1, 0xE] + mov r0, r9 + strh r0, [r1, 0x12] + strh r2, [r1, 0x1C] + strh r4, [r1, 0x1E] + ldr r2, _0812B400 @ =sub_812B404 + str r2, [r1] + mov r0, r8 + bl _call_via_r2 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0812B3F8: .4byte gBattleAnimArgs +_0812B3FC: .4byte gTasks +_0812B400: .4byte sub_812B404 + thumb_func_end sub_812B374 + + thumb_func_start sub_812B404 +sub_812B404: @ 812B404 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _0812B45C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r2, [r4, 0xE] + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x12 + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _0812B43E + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r0, r2, r1 + strh r0, [r4, 0x1E] + movs r2, 0x1E + ldrsh r0, [r4, r2] + bl sub_8077104 + strh r0, [r4, 0x1E] +_0812B43E: + ldr r1, _0812B460 @ =gUnknown_0202F7D2 + ldrh r0, [r4, 0x1E] + strb r0, [r1] + movs r3, 0x1E + ldrsh r1, [r4, r3] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0812B456 + adds r0, r5, 0 + bl DestroyAnimVisualTask +_0812B456: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0812B45C: .4byte gTasks +_0812B460: .4byte gUnknown_0202F7D2 + thumb_func_end sub_812B404 + + .align 2, 0 @ Don't pad with nop. + \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index 9a2cbe4e5..b2d17b5ec 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -350,12 +350,14 @@ SECTIONS { src/scene/cable_car.o(.text); asm/roulette_util.o(.text); src/engine/cable_car_util.o(.text); - src/unused_8124F94.o(.text); + src/unused/unused_8124F94.o(.text); src/engine/save.o(.text); src/engine/mystery_event_script.o(.text); src/field/field_effect_helpers.o(.text); asm/contest_ai.o(.text); - asm/battle_anim_81258BC.o(.text); + src/unused/unused_81258BC.o(.text); + src/battle/anim/sfx.o(.text); + asm/battle_anim_sfx.o(.text); src/battle/battle_controller_safari.o(.text); src/field/fldeff_sweetscent.o(.text); asm/battle_anim_812C144.o(.text); diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c new file mode 100644 index 000000000..265271ac5 --- /dev/null +++ b/src/battle/anim/sfx.c @@ -0,0 +1,2 @@ +#include "global.h" + diff --git a/src/unused/unused_8124F94.c b/src/unused/unused_8124F94.c new file mode 100644 index 000000000..5f76fa92e --- /dev/null +++ b/src/unused/unused_8124F94.c @@ -0,0 +1,126 @@ +#include "global.h" +#include "decompress.h" +#include "palette.h" + +struct UnknownStruct2 +{ + void *src; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; +}; + +struct UnknownStruct3 +{ + u16 *paletteSrc; + u8 unk4; + u8 paletteCount; +}; + +struct UnknownStruct1 +{ + u8 paletteNum; + u8 unk1; + u16 unk2; + u8 *dest; + struct UnknownStruct3 unk8[16]; + struct UnknownStruct2 unk88[32]; +}; + +void unref_sub_8124F94(struct UnknownStruct1 *a) +{ + a->unk1 = 0; + a->paletteNum = 0; + a->unk2 = 0; + a->dest = (void *)VRAM; + DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); + DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); +} + +u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) +{ + while (1) + { + s32 r6; + s32 temp; + + // Couldn't get it to match any other way + if (a->unk1 < 32 && b->src == NULL) + return 0; + if (a->unk1 >= 32) + break; + + a->unk88[a->unk1].src = b->src; + a->unk88[a->unk1].unk6 = b->unk6; + a->unk88[a->unk1].unk4 = b->unk4; + a->unk88[a->unk1].unk5 = b->unk5; + r6 = b->unk4 * b->unk5; + if (a->unk2 + r6 > 0x400) + return 2; + if (b->unk8 == 0) + { + DmaCopy16(3, b->src, a->dest + a->unk2 * 64, r6 * 32); + } + else + { + LZDecompressWram(b->src, a->dest + a->unk2 * 64); + } + a->unk88[a->unk1].unk8 = a->unk2; + temp = r6 + a->unk2; + a->unk2 = temp; + a->unk1++; + b++; + } + return 1; +} + +u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + while (1) + { + // Couldn't get it to match any other way + if (a->paletteNum < 16 && b->paletteSrc == NULL) + return 0; + if (a->paletteNum >= 16) + break; + + a->unk8[a->paletteNum].paletteSrc = b->paletteSrc; + a->unk8[a->paletteNum].unk4 = b->unk4; + if (b->paletteCount == 0) + { + LoadPalette(b->paletteSrc, a->paletteNum * 16, 32); + } + else + { + u16 palette[16]; + + LZDecompressWram(b->paletteSrc, palette); + LoadPalette(palette, a->paletteNum * 16, 32); + } + a->unk8[a->paletteNum].paletteCount = a->paletteNum; + a->paletteNum = a->paletteNum + 1; + b++; + } + return 1; +} + +u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + u16 palettes[16][16] = {0}; + u8 r7 = b->paletteCount; + u8 i; + + LZDecompressWram(b->paletteSrc, palettes); + for (i = a->paletteNum; i < r7; i++) + { + if (a->paletteNum + i >= 16) + return 1; + a->unk8[i].paletteSrc = b->paletteSrc; + a->unk8[i].unk4 = b->unk4 + i; + a->unk8[i].paletteCount = a->paletteNum; + LoadPalette(palettes[i], a->paletteNum * 16, sizeof(palettes[i])); + a->paletteNum++; + } + return 0; +} diff --git a/src/unused/unused_81258BC.c b/src/unused/unused_81258BC.c new file mode 100644 index 000000000..c509ea4c9 --- /dev/null +++ b/src/unused/unused_81258BC.c @@ -0,0 +1,36 @@ +#include "constants/songs.h" +#include "global.h" +#include "menu.h" +#include "mystery_event_script.h" +#include "sound.h" +#include "text.h" + +void sub_812AF10(void); + +bool8 unref_sub_812AECC(u8 *script) +{ + u8 result = RunMysteryEventScript(script); + switch (result) + { + case 0: + return FALSE; + case 1: + PlaySE(SE_BOO); + return TRUE; + case 2: + sub_812AF10(); + return FALSE; + case 3: + PlaySE(SE_BOO); + sub_812AF10(); + return TRUE; + default: + return FALSE; + } +} + +void sub_812AF10(void) +{ + MenuDrawTextWindow(2, 14, 27, 19); + MenuPrint(gStringVar4, 3, 15); +} \ No newline at end of file diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c deleted file mode 100644 index 5f76fa92e..000000000 --- a/src/unused_8124F94.c +++ /dev/null @@ -1,126 +0,0 @@ -#include "global.h" -#include "decompress.h" -#include "palette.h" - -struct UnknownStruct2 -{ - void *src; - u8 unk4; - u8 unk5; - u8 unk6; - u16 unk8; -}; - -struct UnknownStruct3 -{ - u16 *paletteSrc; - u8 unk4; - u8 paletteCount; -}; - -struct UnknownStruct1 -{ - u8 paletteNum; - u8 unk1; - u16 unk2; - u8 *dest; - struct UnknownStruct3 unk8[16]; - struct UnknownStruct2 unk88[32]; -}; - -void unref_sub_8124F94(struct UnknownStruct1 *a) -{ - a->unk1 = 0; - a->paletteNum = 0; - a->unk2 = 0; - a->dest = (void *)VRAM; - DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); - DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); -} - -u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) -{ - while (1) - { - s32 r6; - s32 temp; - - // Couldn't get it to match any other way - if (a->unk1 < 32 && b->src == NULL) - return 0; - if (a->unk1 >= 32) - break; - - a->unk88[a->unk1].src = b->src; - a->unk88[a->unk1].unk6 = b->unk6; - a->unk88[a->unk1].unk4 = b->unk4; - a->unk88[a->unk1].unk5 = b->unk5; - r6 = b->unk4 * b->unk5; - if (a->unk2 + r6 > 0x400) - return 2; - if (b->unk8 == 0) - { - DmaCopy16(3, b->src, a->dest + a->unk2 * 64, r6 * 32); - } - else - { - LZDecompressWram(b->src, a->dest + a->unk2 * 64); - } - a->unk88[a->unk1].unk8 = a->unk2; - temp = r6 + a->unk2; - a->unk2 = temp; - a->unk1++; - b++; - } - return 1; -} - -u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) -{ - while (1) - { - // Couldn't get it to match any other way - if (a->paletteNum < 16 && b->paletteSrc == NULL) - return 0; - if (a->paletteNum >= 16) - break; - - a->unk8[a->paletteNum].paletteSrc = b->paletteSrc; - a->unk8[a->paletteNum].unk4 = b->unk4; - if (b->paletteCount == 0) - { - LoadPalette(b->paletteSrc, a->paletteNum * 16, 32); - } - else - { - u16 palette[16]; - - LZDecompressWram(b->paletteSrc, palette); - LoadPalette(palette, a->paletteNum * 16, 32); - } - a->unk8[a->paletteNum].paletteCount = a->paletteNum; - a->paletteNum = a->paletteNum + 1; - b++; - } - return 1; -} - -u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) -{ - u16 palettes[16][16] = {0}; - u8 r7 = b->paletteCount; - u8 i; - - LZDecompressWram(b->paletteSrc, palettes); - for (i = a->paletteNum; i < r7; i++) - { - if (a->paletteNum + i >= 16) - return 1; - a->unk8[i].paletteSrc = b->paletteSrc; - a->unk8[i].unk4 = b->unk4 + i; - a->unk8[i].paletteCount = a->paletteNum; - LoadPalette(palettes[i], a->paletteNum * 16, sizeof(palettes[i])); - a->paletteNum++; - } - return 0; -} -- cgit v1.2.3 From 39810d713630fbadbd16f00862deca1f12d3a91d Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Sun, 7 Jan 2018 15:05:49 +0100 Subject: Started decompiling move animation sfx --- asm/battle_anim_sfx.s | 108 ----------------------------------------------- include/battle_anim.h | 2 + src/battle/anim/sfx.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 108 deletions(-) diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s index 520c119cb..ef6a0181d 100644 --- a/asm/battle_anim_sfx.s +++ b/asm/battle_anim_sfx.s @@ -5,114 +5,6 @@ .text - thumb_func_start sub_812AF30 -sub_812AF30: @ 812AF30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812AF8C @ =gTasks - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - adds r6, r1 - ldr r1, _0812AF90 @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r6, 0x8] - ldrh r0, [r1, 0x2] - strh r0, [r6, 0xA] - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl CalculatePanIncrement - strh r4, [r6, 0xC] - strh r5, [r6, 0xE] - lsls r0, 24 - asrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0xA - strh r0, [r6, 0x1C] - ldr r0, _0812AF94 @ =sub_812AF98 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812AF8C: .4byte gTasks -_0812AF90: .4byte gBattleAnimArgs -_0812AF94: .4byte sub_812AF98 - thumb_func_end sub_812AF30 - - thumb_func_start sub_812AF98 -sub_812AF98: @ 812AF98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0812AFC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r5, [r4, 0xC] - ldrb r6, [r4, 0x10] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - bne _0812AFD0 - movs r0, 0x5 - strh r0, [r4, 0x1C] - strh r1, [r4, 0x1E] - ldr r0, _0812AFCC @ =sub_812B004 - str r0, [r4] - b _0812AFFE - .align 2, 0 -_0812AFC8: .4byte gTasks -_0812AFCC: .4byte sub_812B004 -_0812AFD0: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0812AFEA - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x8] - lsls r1, r5, 24 - asrs r1, 24 - bl PlaySE12WithPanning -_0812AFEA: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_8077104 - strh r0, [r4, 0xC] -_0812AFFE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812AF98 - thumb_func_start sub_812B004 sub_812B004: @ 812B004 push {r4,r5,lr} diff --git a/include/battle_anim.h b/include/battle_anim.h index d456950f6..99167d7c6 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -60,5 +60,7 @@ void DestroyAnimVisualTask(u8 task); bool8 IsAnimBankSpriteVisible(u8); s8 BattleAnimAdjustPanning(s8 a); void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); +s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); +s16 sub_8077104(s16 a); #endif diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 265271ac5..a66a15371 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -1,2 +1,115 @@ #include "global.h" +#include "battle_anim.h" +#include "sound.h" +#include "task.h" + +extern s16 gBattleAnimArgs[]; + +void sub_812AF98(u8 taskId); +void sub_812B004(u8 taskId); +void sub_812B004(u8 taskId); + +void sub_812AF30(u8 taskId) +{ + s8 sourcePan, targetPan, incrementPan; + + TASK.data[0] = gBattleAnimArgs[0]; + TASK.data[1] = gBattleAnimArgs[1]; + + sourcePan = BattleAnimAdjustPanning(-64); + targetPan = BattleAnimAdjustPanning(63); + incrementPan = CalculatePanIncrement(sourcePan, targetPan, 2); + + TASK.data[2] = sourcePan; + TASK.data[3] = targetPan; + TASK.data[4] = incrementPan; + TASK.data[10] = 10; + + TASK.func = sub_812AF98; +} + +#ifdef NONMATCHING +void sub_812AF98(u8 taskId) // r4 := TASK +{ + s16 pan = TASK.data[2]; // r5 + s8 var0 = TASK.data[4]; // r6 + + if (++TASK.data[11] == 111) + { + TASK.data[10] = 5; + TASK.data[11] = 0; + TASK.func = sub_812B004; + } + else + { + if (++TASK.data[10] == 11) + { + TASK.data[10] = 0; + PlaySE12WithPanning(TASK.data[0], pan); + } + TASK.data[2] = sub_8077104(var0 + pan); + } +} +#else +__attribute__((naked)) +void sub_812AF98(u8 taskId) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r2, _0812AFC8 @ =gTasks\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r4, r1, r2\n\ + ldrh r5, [r4, 0xC]\n\ + ldrb r6, [r4, 0x10]\n\ + ldrh r0, [r4, 0x1E]\n\ + adds r0, 0x1\n\ + movs r1, 0\n\ + strh r0, [r4, 0x1E]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x6F\n\ + bne _0812AFD0\n\ + movs r0, 0x5\n\ + strh r0, [r4, 0x1C]\n\ + strh r1, [r4, 0x1E]\n\ + ldr r0, _0812AFCC @ =sub_812B004\n\ + str r0, [r4]\n\ + b _0812AFFE\n\ + .align 2, 0\n\ +_0812AFC8: .4byte gTasks\n\ +_0812AFCC: .4byte sub_812B004\n\ +_0812AFD0:\n\ + ldrh r0, [r4, 0x1C]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x1C]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xB\n\ + bne _0812AFEA\n\ + strh r1, [r4, 0x1C]\n\ + ldrh r0, [r4, 0x8]\n\ + lsls r1, r5, 24\n\ + asrs r1, 24\n\ + bl PlaySE12WithPanning\n\ +_0812AFEA:\n\ + lsls r1, r6, 24\n\ + asrs r1, 24\n\ + lsls r0, r5, 16\n\ + asrs r0, 16\n\ + adds r0, r1\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + bl sub_8077104\n\ + strh r0, [r4, 0xC]\n\ +_0812AFFE:\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif // NONMATCHING -- cgit v1.2.3 From 589df520baf710078abf2756d35662bda944861c Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Sun, 7 Jan 2018 16:20:21 +0100 Subject: sub_812B004 - sub_812B058 --- asm/battle_anim_sfx.s | 128 ---------------------------------------------- include/battle_anim.h | 1 + src/battle/anim/sfx.c | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+), 128 deletions(-) diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s index ef6a0181d..4e92cfcee 100644 --- a/asm/battle_anim_sfx.s +++ b/asm/battle_anim_sfx.s @@ -5,134 +5,6 @@ .text - thumb_func_start sub_812B004 -sub_812B004: @ 812B004 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _0812B04C - movs r0, 0 - strh r0, [r4, 0x1C] - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r1, r0, 0 - ldrh r0, [r4, 0xA] - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0812B04C - adds r0, r5, 0 - bl DestroyAnimSoundTask -_0812B04C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B054: .4byte gTasks - thumb_func_end sub_812B004 - - thumb_func_start sub_812B058 -sub_812B058: @ 812B058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B0FC @ =gBattleAnimArgs - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x6] - ldrb r3, [r0, 0x8] - mov r10, r3 - ldrb r7, [r0, 0xA] - ldrb r1, [r0, 0xC] - mov r9, r1 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B100 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, 0x8] - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r10 - strh r0, [r1, 0x10] - strh r7, [r1, 0x12] - mov r3, r9 - strh r3, [r1, 0x14] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - strh r3, [r1, 0x20] - ldr r2, _0812B104 @ =sub_812B108 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B0FC: .4byte gBattleAnimArgs -_0812B100: .4byte gTasks -_0812B104: .4byte sub_812B108 - thumb_func_end sub_812B058 - thumb_func_start sub_812B108 sub_812B108: @ 812B108 push {r4,r5,lr} diff --git a/include/battle_anim.h b/include/battle_anim.h index 99167d7c6..7b966cf4c 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -62,5 +62,6 @@ s8 BattleAnimAdjustPanning(s8 a); void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); s16 sub_8077104(s16 a); +void DestroyAnimSoundTask(u8 taskId); #endif diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index a66a15371..e7e3c867e 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -8,6 +8,7 @@ extern s16 gBattleAnimArgs[]; void sub_812AF98(u8 taskId); void sub_812B004(u8 taskId); void sub_812B004(u8 taskId); +void sub_812B108(u8 taskId); void sub_812AF30(u8 taskId) { @@ -113,3 +114,140 @@ _0812AFFE:\n\ } #endif // NONMATCHING +void sub_812B004(u8 taskId) +{ + s8 pan; + + if (++TASK.data[10] == 6) + { + TASK.data[10] = 0; + + pan = BattleAnimAdjustPanning(0x3f); + PlaySE12WithPanning(TASK.data[1], pan); + + if (++TASK.data[11] == 2) + { + DestroyAnimSoundTask(taskId); + } + } +} + +#ifdef NONMATCHING +void sub_812B058(u8 taskId) +{ + s16 sp, r10, r7, r9; + s8 r5, r6, r4, r0; + + sp = gBattleAnimArgs[0]; + r5 = gBattleAnimArgs[2]; + r6 = gBattleAnimArgs[3]; + r10 = gBattleAnimArgs[4]; + r7 = gBattleAnimArgs[5]; + r9 = gBattleAnimArgs[6]; + r4 = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + r5 = BattleAnimAdjustPanning(r5); + r0 = CalculatePanIncrement(r4, r5, r6); + + TASK.data[0] = sp; + TASK.data[1] = r4; + TASK.data[2] = r5; + TASK.data[3] = r0; + TASK.data[4] = r10; + TASK.data[5] = r7; + TASK.data[6] = r9; + TASK.data[10] = 0; + TASK.data[11] = r4; + TASK.data[12] = r9; + + TASK.func = sub_812B108; + sub_812B108(taskId); +} +#else +__attribute__((naked)) +void sub_812B058(u8 taskId) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + mov r8, r0\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + ldr r0, _0812B0FC @ =gBattleAnimArgs\n\ + ldrh r1, [r0]\n\ + str r1, [sp]\n\ + ldrb r5, [r0, 0x4]\n\ + ldrb r6, [r0, 0x6]\n\ + ldrb r3, [r0, 0x8]\n\ + mov r10, r3\n\ + ldrb r7, [r0, 0xA]\n\ + ldrb r1, [r0, 0xC]\n\ + mov r9, r1\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + bl BattleAnimAdjustPanning\n\ + adds r4, r0, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r5, 24\n\ + asrs r5, 24\n\ + adds r0, r5, 0\n\ + bl BattleAnimAdjustPanning\n\ + adds r5, r0, 0\n\ + lsls r4, 24\n\ + asrs r4, 24\n\ + lsls r5, 24\n\ + asrs r5, 24\n\ + lsls r6, 24\n\ + asrs r6, 24\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl CalculatePanIncrement\n\ + ldr r2, _0812B100 @ =gTasks\n\ + mov r3, r8\n\ + lsls r1, r3, 2\n\ + add r1, r8\n\ + lsls r1, 3\n\ + adds r1, r2\n\ + movs r2, 0\n\ + mov r6, sp\n\ + ldrh r6, [r6]\n\ + strh r6, [r1, 0x8]\n\ + strh r4, [r1, 0xA]\n\ + strh r5, [r1, 0xC]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + strh r0, [r1, 0xE]\n\ + mov r0, r10\n\ + strh r0, [r1, 0x10]\n\ + strh r7, [r1, 0x12]\n\ + mov r3, r9\n\ + strh r3, [r1, 0x14]\n\ + strh r2, [r1, 0x1C]\n\ + strh r4, [r1, 0x1E]\n\ + strh r3, [r1, 0x20]\n\ + ldr r2, _0812B104 @ =sub_812B108\n\ + str r2, [r1]\n\ + mov r0, r8\n\ + bl _call_via_r2\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0812B0FC: .4byte gBattleAnimArgs\n\ +_0812B100: .4byte gTasks\n\ +_0812B104: .4byte sub_812B108\n\ + .syntax divided\n"); +} +#endif // NONMATCHING -- cgit v1.2.3 From e99816d2082d009457105a5e74524f97b80661c0 Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Sun, 7 Jan 2018 23:12:28 +0100 Subject: Decompiled sub_812B108 --- asm/battle_anim_sfx.s | 69 --------------------------------------------------- src/battle/anim/sfx.c | 22 ++++++++++++++++ 2 files changed, 22 insertions(+), 69 deletions(-) diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s index 4e92cfcee..1d0358bee 100644 --- a/asm/battle_anim_sfx.s +++ b/asm/battle_anim_sfx.s @@ -5,75 +5,6 @@ .text - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B14C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B150 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812B150 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _0812B182 - .align 2, 0 -_0812B14C: .4byte gTasks -_0812B150: - ldr r1, _0812B188 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B182 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B188: .4byte gTasks - thumb_func_end sub_812B108 - thumb_func_start sub_812B18C sub_812B18C: @ 812B18C push {r4-r6,lr} diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index e7e3c867e..981022f1e 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -251,3 +251,25 @@ _0812B104: .4byte sub_812B108\n\ .syntax divided\n"); } #endif // NONMATCHING + +void sub_812B108(u8 taskId) +{ + if (TASK.data[12]++ == TASK.data[6]) + { + TASK.data[12] = 0; + PlaySE12WithPanning(TASK.data[0], TASK.data[11]); + + if (--TASK.data[4] == 0) + { + DestroyAnimSoundTask(taskId); + return; + } + } + + if (TASK.data[10]++ == TASK.data[5]) + { + TASK.data[10] = 0; + TASK.data[11] += TASK.data[3]; + TASK.data[11] = sub_8077104(TASK.data[11]); + } +} -- cgit v1.2.3 From 376e2470e9e4f5a0a7cc94b9d7677ea6f7601dfa Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Mon, 8 Jan 2018 01:49:16 +0100 Subject: Matched sub_812AF98 --- src/battle/anim/sfx.c | 72 ++++----------------------------------------------- 1 file changed, 5 insertions(+), 67 deletions(-) diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 981022f1e..99f050dcb 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -29,11 +29,10 @@ void sub_812AF30(u8 taskId) TASK.func = sub_812AF98; } -#ifdef NONMATCHING -void sub_812AF98(u8 taskId) // r4 := TASK +void sub_812AF98(u8 taskId) { - s16 pan = TASK.data[2]; // r5 - s8 var0 = TASK.data[4]; // r6 + s16 pan = TASK.data[2]; + s8 var0 = TASK.data[4]; if (++TASK.data[11] == 111) { @@ -48,71 +47,10 @@ void sub_812AF98(u8 taskId) // r4 := TASK TASK.data[10] = 0; PlaySE12WithPanning(TASK.data[0], pan); } - TASK.data[2] = sub_8077104(var0 + pan); + pan += var0; + TASK.data[2] = sub_8077104(pan); } } -#else -__attribute__((naked)) -void sub_812AF98(u8 taskId) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r2, _0812AFC8 @ =gTasks\n\ - lsls r1, r0, 2\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r4, r1, r2\n\ - ldrh r5, [r4, 0xC]\n\ - ldrb r6, [r4, 0x10]\n\ - ldrh r0, [r4, 0x1E]\n\ - adds r0, 0x1\n\ - movs r1, 0\n\ - strh r0, [r4, 0x1E]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0x6F\n\ - bne _0812AFD0\n\ - movs r0, 0x5\n\ - strh r0, [r4, 0x1C]\n\ - strh r1, [r4, 0x1E]\n\ - ldr r0, _0812AFCC @ =sub_812B004\n\ - str r0, [r4]\n\ - b _0812AFFE\n\ - .align 2, 0\n\ -_0812AFC8: .4byte gTasks\n\ -_0812AFCC: .4byte sub_812B004\n\ -_0812AFD0:\n\ - ldrh r0, [r4, 0x1C]\n\ - adds r0, 0x1\n\ - strh r0, [r4, 0x1C]\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - cmp r0, 0xB\n\ - bne _0812AFEA\n\ - strh r1, [r4, 0x1C]\n\ - ldrh r0, [r4, 0x8]\n\ - lsls r1, r5, 24\n\ - asrs r1, 24\n\ - bl PlaySE12WithPanning\n\ -_0812AFEA:\n\ - lsls r1, r6, 24\n\ - asrs r1, 24\n\ - lsls r0, r5, 16\n\ - asrs r0, 16\n\ - adds r0, r1\n\ - lsls r0, 16\n\ - asrs r0, 16\n\ - bl sub_8077104\n\ - strh r0, [r4, 0xC]\n\ -_0812AFFE:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void sub_812B004(u8 taskId) { -- cgit v1.2.3 From 7f3eb30bcb9da4a3a651f1aca7a8fd6b7980491a Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Mon, 8 Jan 2018 16:03:33 +0100 Subject: Matched sub_812B058 --- src/battle/anim/sfx.c | 95 ++------------------------------------------------- 1 file changed, 3 insertions(+), 92 deletions(-) diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 99f050dcb..484548d4d 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -70,16 +70,16 @@ void sub_812B004(u8 taskId) } } -#ifdef NONMATCHING void sub_812B058(u8 taskId) { - s16 sp, r10, r7, r9; + s16 sp; + u8 r10, r7, r9; s8 r5, r6, r4, r0; sp = gBattleAnimArgs[0]; r5 = gBattleAnimArgs[2]; r6 = gBattleAnimArgs[3]; - r10 = gBattleAnimArgs[4]; + r10 = gBattleAnimArgs[4]; r7 = gBattleAnimArgs[5]; r9 = gBattleAnimArgs[6]; r4 = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -100,95 +100,6 @@ void sub_812B058(u8 taskId) TASK.func = sub_812B108; sub_812B108(taskId); } -#else -__attribute__((naked)) -void sub_812B058(u8 taskId) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - mov r8, r0\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r8, r0\n\ - ldr r0, _0812B0FC @ =gBattleAnimArgs\n\ - ldrh r1, [r0]\n\ - str r1, [sp]\n\ - ldrb r5, [r0, 0x4]\n\ - ldrb r6, [r0, 0x6]\n\ - ldrb r3, [r0, 0x8]\n\ - mov r10, r3\n\ - ldrb r7, [r0, 0xA]\n\ - ldrb r1, [r0, 0xC]\n\ - mov r9, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - bl BattleAnimAdjustPanning\n\ - adds r4, r0, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r5, 24\n\ - asrs r5, 24\n\ - adds r0, r5, 0\n\ - bl BattleAnimAdjustPanning\n\ - adds r5, r0, 0\n\ - lsls r4, 24\n\ - asrs r4, 24\n\ - lsls r5, 24\n\ - asrs r5, 24\n\ - lsls r6, 24\n\ - asrs r6, 24\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - bl CalculatePanIncrement\n\ - ldr r2, _0812B100 @ =gTasks\n\ - mov r3, r8\n\ - lsls r1, r3, 2\n\ - add r1, r8\n\ - lsls r1, 3\n\ - adds r1, r2\n\ - movs r2, 0\n\ - mov r6, sp\n\ - ldrh r6, [r6]\n\ - strh r6, [r1, 0x8]\n\ - strh r4, [r1, 0xA]\n\ - strh r5, [r1, 0xC]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - strh r0, [r1, 0xE]\n\ - mov r0, r10\n\ - strh r0, [r1, 0x10]\n\ - strh r7, [r1, 0x12]\n\ - mov r3, r9\n\ - strh r3, [r1, 0x14]\n\ - strh r2, [r1, 0x1C]\n\ - strh r4, [r1, 0x1E]\n\ - strh r3, [r1, 0x20]\n\ - ldr r2, _0812B104 @ =sub_812B108\n\ - str r2, [r1]\n\ - mov r0, r8\n\ - bl _call_via_r2\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0812B0FC: .4byte gBattleAnimArgs\n\ -_0812B100: .4byte gTasks\n\ -_0812B104: .4byte sub_812B108\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void sub_812B108(u8 taskId) { -- cgit v1.2.3 From 4bdab579016705c6dc914e3d2af2d608eb256a9b Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Mon, 8 Jan 2018 18:40:57 +0100 Subject: Decompiled sub_812B18C --- asm/battle_anim_sfx.s | 148 -------------------------------------------------- src/battle/anim/sfx.c | 60 ++++++++++++++++++++ 2 files changed, 60 insertions(+), 148 deletions(-) diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s index 1d0358bee..7d196ce97 100644 --- a/asm/battle_anim_sfx.s +++ b/asm/battle_anim_sfx.s @@ -5,154 +5,6 @@ .text - thumb_func_start sub_812B18C -sub_812B18C: @ 812B18C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r6, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B1CC - ldr r0, _0812B1BC @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812B1C4 - ldr r0, _0812B1C0 @ =gSharedMem + 0x19348 - ldrh r4, [r0] - b _0812B272 - .align 2, 0 -_0812B1BC: .4byte gBattleAnimArgs -_0812B1C0: .4byte gSharedMem + 0x19348 -_0812B1C4: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B272 -_0812B1CC: - ldr r0, _0812B1E0 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _0812B1E8 - ldr r0, _0812B1E4 @ =gAnimBankAttacker - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1E0: .4byte gBattleAnimArgs -_0812B1E4: .4byte gAnimBankAttacker -_0812B1E8: - cmp r1, 0x1 - bne _0812B1F8 - ldr r0, _0812B1F4 @ =gAnimBankTarget - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1F4: .4byte gAnimBankTarget -_0812B1F8: - cmp r1, 0x2 - bne _0812B204 - ldr r0, _0812B200 @ =gAnimBankAttacker - b _0812B206 - .align 2, 0 -_0812B200: .4byte gAnimBankAttacker -_0812B204: - ldr r0, _0812B230 @ =gAnimBankTarget -_0812B206: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_0812B20E: - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0812B21A - cmp r0, 0x3 - bne _0812B234 -_0812B21A: - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _0812B234 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B2B0 - .align 2, 0 -_0812B230: .4byte gAnimBankTarget -_0812B234: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0812B258 - ldr r1, _0812B250 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B254 @ =gEnemyParty - b _0812B266 - .align 2, 0 -_0812B250: .4byte gBattlePartyID -_0812B254: .4byte gEnemyParty -_0812B258: - ldr r1, _0812B290 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B294 @ =gPlayerParty -_0812B266: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_0812B272: - cmp r4, 0 - beq _0812B2AA - ldr r0, _0812B298 @ =gBattleAnimArgs - ldrh r2, [r0, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - bne _0812B29C - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlayCry1 - b _0812B2AA - .align 2, 0 -_0812B290: .4byte gBattlePartyID -_0812B294: .4byte gPlayerParty -_0812B298: .4byte gBattleAnimArgs -_0812B29C: - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl PlayCry3 -_0812B2AA: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B2B0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812B18C - thumb_func_start sub_812B2B8 sub_812B2B8: @ 812B2B8 push {r4,r5,lr} diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 484548d4d..cb61a566f 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -1,9 +1,15 @@ #include "global.h" #include "battle_anim.h" +#include "contest.h" +#include "ewram.h" +#include "rom_8077ABC.h" #include "sound.h" #include "task.h" extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; +extern u16 gBattlePartyID[]; void sub_812AF98(u8 taskId); void sub_812B004(u8 taskId); @@ -122,3 +128,57 @@ void sub_812B108(u8 taskId) TASK.data[11] = sub_8077104(TASK.data[11]); } } + +// #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) +// #define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348)) + +void sub_812B18C(u8 taskId) +{ + u16 species = 0; + s8 pan = BattleAnimAdjustPanning(-64); + + if (IsContest()) + { + if (!gBattleAnimArgs[0]) + species = shared19348.unk0; + else + DestroyAnimVisualTask(taskId); + } + else + { + u8 bank; + if (gBattleAnimArgs[0] == 0) + bank = gAnimBankAttacker; + else if (gBattleAnimArgs[0] == 1) + bank = gAnimBankTarget; + else if (gBattleAnimArgs[0] == 2) + bank = gAnimBankAttacker ^ 0x2; + else + bank = gAnimBankTarget ^ 0x2; + + if (gBattleAnimArgs[0] == 1 || gBattleAnimArgs[0] == 3) + { + if (!IsAnimBankSpriteVisible(bank)) + { + DestroyAnimVisualTask(taskId); + return; + } + } + + if (GetBankSide(bank)) + species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], 0xB); + else + species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], 0xB); + } + + if (species != 0) + { + s16 mode = gBattleAnimArgs[1]; + if (mode == 0xFF) + PlayCry1(species, pan); + else + PlayCry3(species, pan, mode); + } + + DestroyAnimVisualTask(taskId); +} \ No newline at end of file -- cgit v1.2.3 From 353a083d97be81cbc612ecb8de46b62a0e523362 Mon Sep 17 00:00:00 2001 From: "Marco Willems (M17.1)" Date: Tue, 9 Jan 2018 02:38:57 +0100 Subject: Finished decompiling battle_anim_sfx --- asm/battle_anim_sfx.s | 224 ----------------------------------------------- include/battle_anim.h | 2 +- ld_script.txt | 1 - src/battle/anim/sfx.c | 149 +++++++++++++++++++++++++------ src/battle/battle_anim.c | 6 +- 5 files changed, 127 insertions(+), 255 deletions(-) delete mode 100644 asm/battle_anim_sfx.s diff --git a/asm/battle_anim_sfx.s b/asm/battle_anim_sfx.s deleted file mode 100644 index 7d196ce97..000000000 --- a/asm/battle_anim_sfx.s +++ /dev/null @@ -1,224 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_812B2B8 -sub_812B2B8: @ 812B2B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B2DC - ldr r0, _0812B2D8 @ =gSharedMem + 0x19348 - b _0812B2E6 - .align 2, 0 -_0812B2D8: .4byte gSharedMem + 0x19348 -_0812B2DC: - ldr r1, _0812B304 @ =gAnimSpeciesByBanks - ldr r0, _0812B308 @ =gAnimBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 -_0812B2E6: - ldrh r0, [r0] - cmp r0, 0 - beq _0812B2F6 - lsls r1, r4, 24 - asrs r1, 24 - movs r2, 0x4 - bl PlayCry3 -_0812B2F6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B304: .4byte gAnimSpeciesByBanks -_0812B308: .4byte gAnimBankAttacker - thumb_func_end sub_812B2B8 - - thumb_func_start sub_812B30C -sub_812B30C: @ 812B30C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B33C @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE1WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B33C: .4byte gBattleAnimArgs - thumb_func_end sub_812B30C - - thumb_func_start sub_812B340 -sub_812B340: @ 812B340 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B370 @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE2WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B370: .4byte gBattleAnimArgs - thumb_func_end sub_812B340 - - thumb_func_start sub_812B374 -sub_812B374: @ 812B374 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B3F8 @ =gBattleAnimArgs - ldrb r5, [r0, 0x2] - ldrb r6, [r0, 0x4] - ldrh r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B3FC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r9 - strh r0, [r1, 0x12] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - ldr r2, _0812B400 @ =sub_812B404 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812B3F8: .4byte gBattleAnimArgs -_0812B3FC: .4byte gTasks -_0812B400: .4byte sub_812B404 - thumb_func_end sub_812B374 - - thumb_func_start sub_812B404 -sub_812B404: @ 812B404 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0812B45C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0812B43E - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r0, r2, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B43E: - ldr r1, _0812B460 @ =gUnknown_0202F7D2 - ldrh r0, [r4, 0x1E] - strb r0, [r1] - movs r3, 0x1E - ldrsh r1, [r4, r3] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812B456 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B456: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B45C: .4byte gTasks -_0812B460: .4byte gUnknown_0202F7D2 - thumb_func_end sub_812B404 - - .align 2, 0 @ Don't pad with nop. - \ No newline at end of file diff --git a/include/battle_anim.h b/include/battle_anim.h index 7b966cf4c..a94e6d13c 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -61,7 +61,7 @@ bool8 IsAnimBankSpriteVisible(u8); s8 BattleAnimAdjustPanning(s8 a); void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); -s16 sub_8077104(s16 a); +s16 sub_8077104(s16 newPan, int oldPan); void DestroyAnimSoundTask(u8 taskId); #endif diff --git a/ld_script.txt b/ld_script.txt index b2d17b5ec..4f99cff99 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -357,7 +357,6 @@ SECTIONS { asm/contest_ai.o(.text); src/unused/unused_81258BC.o(.text); src/battle/anim/sfx.o(.text); - asm/battle_anim_sfx.o(.text); src/battle/battle_controller_safari.o(.text); src/field/fldeff_sweetscent.o(.text); asm/battle_anim_812C144.o(.text); diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index cb61a566f..470fea3cc 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -10,26 +10,31 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u16 gBattlePartyID[]; +extern u16 gAnimSpeciesByBanks[]; +extern u8 gUnknown_0202F7D2; void sub_812AF98(u8 taskId); void sub_812B004(u8 taskId); void sub_812B004(u8 taskId); void sub_812B108(u8 taskId); +void sub_812B404(u8 taskId); +// used in 1 move: +// Move_FIRE_BLAST void sub_812AF30(u8 taskId) { - s8 sourcePan, targetPan, incrementPan; + s8 sourcePan, targetPan, panIncrement; TASK.data[0] = gBattleAnimArgs[0]; TASK.data[1] = gBattleAnimArgs[1]; sourcePan = BattleAnimAdjustPanning(-64); targetPan = BattleAnimAdjustPanning(63); - incrementPan = CalculatePanIncrement(sourcePan, targetPan, 2); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, 2); TASK.data[2] = sourcePan; TASK.data[3] = targetPan; - TASK.data[4] = incrementPan; + TASK.data[4] = panIncrement; TASK.data[10] = 10; TASK.func = sub_812AF98; @@ -38,7 +43,7 @@ void sub_812AF30(u8 taskId) void sub_812AF98(u8 taskId) { s16 pan = TASK.data[2]; - s8 var0 = TASK.data[4]; + s8 dPan = TASK.data[4]; if (++TASK.data[11] == 111) { @@ -53,8 +58,8 @@ void sub_812AF98(u8 taskId) TASK.data[10] = 0; PlaySE12WithPanning(TASK.data[0], pan); } - pan += var0; - TASK.data[2] = sub_8077104(pan); + pan += dPan; + TASK.data[2] = sub_8077104(pan, dPan); } } @@ -66,7 +71,7 @@ void sub_812B004(u8 taskId) { TASK.data[10] = 0; - pan = BattleAnimAdjustPanning(0x3f); + pan = BattleAnimAdjustPanning(63); PlaySE12WithPanning(TASK.data[1], pan); if (++TASK.data[11] == 2) @@ -76,31 +81,32 @@ void sub_812B004(u8 taskId) } } +// used in 7 moves: +// Move_ICE_BEAM, Move_AURORA_BEAM, Move_PSYBEAM, +// Move_PSYWAVE, Move_SHADOW_BALL, Move_TRI_ATTACK, +// Move_HYPER_BEAM void sub_812B058(u8 taskId) { - s16 sp; - u8 r10, r7, r9; - s8 r5, r6, r4, r0; - - sp = gBattleAnimArgs[0]; - r5 = gBattleAnimArgs[2]; - r6 = gBattleAnimArgs[3]; - r10 = gBattleAnimArgs[4]; - r7 = gBattleAnimArgs[5]; - r9 = gBattleAnimArgs[6]; - r4 = BattleAnimAdjustPanning(gBattleAnimArgs[1]); - r5 = BattleAnimAdjustPanning(r5); - r0 = CalculatePanIncrement(r4, r5, r6); + s16 sp = gBattleAnimArgs[0]; + s8 r5 = gBattleAnimArgs[2]; + s8 panIncrement = gBattleAnimArgs[3]; + u8 r10 = gBattleAnimArgs[4]; // number of times the sound must be played + u8 r7 = gBattleAnimArgs[5]; + u8 r9 = gBattleAnimArgs[6]; + + s8 pan1 = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + s8 pan2 = BattleAnimAdjustPanning(r5); + panIncrement = CalculatePanIncrement(pan1, pan2, panIncrement); TASK.data[0] = sp; - TASK.data[1] = r4; - TASK.data[2] = r5; - TASK.data[3] = r0; + TASK.data[1] = pan1; + TASK.data[2] = pan2; + TASK.data[3] = panIncrement; TASK.data[4] = r10; TASK.data[5] = r7; TASK.data[6] = r9; TASK.data[10] = 0; - TASK.data[11] = r4; + TASK.data[11] = pan1; TASK.data[12] = r9; TASK.func = sub_812B108; @@ -123,15 +129,20 @@ void sub_812B108(u8 taskId) if (TASK.data[10]++ == TASK.data[5]) { + u16 dPan, oldPan; TASK.data[10] = 0; - TASK.data[11] += TASK.data[3]; - TASK.data[11] = sub_8077104(TASK.data[11]); + dPan = TASK.data[3]; + oldPan = TASK.data[11]; + TASK.data[11] = dPan + oldPan; + TASK.data[11] = sub_8077104(TASK.data[11], oldPan); } } // #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) // #define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348)) +// used in 3 moves: +// Move_HOWL, Move_ROAR, Move_GROWL void sub_812B18C(u8 taskId) { u16 species = 0; @@ -181,4 +192,90 @@ void sub_812B18C(u8 taskId) } DestroyAnimVisualTask(taskId); +} + +// used in Move_HYPER_VOICE +void sub_812B2B8(u8 taskId) +{ + u16 species; + s8 pan = BattleAnimAdjustPanning(-64); + + if (IsContest()) + species = shared19348.unk0; + else + species = gAnimSpeciesByBanks[gAnimBankAttacker]; + + if (species != 0) + PlayCry3(species, pan, 4); + + DestroyAnimVisualTask(taskId); +} + +// used in 6 moves: +// Move_SKY_ATTACK, Move_LUSTER_PURGE, Move_FLATTER, +// Move_DRAGON_CLAW, Move_RETURN, Move_COSMIC_POWER, +void sub_812B30C(u8 taskId) +{ + u16 songNum = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + PlaySE1WithPanning(songNum, pan); + + DestroyAnimVisualTask(taskId); +} + +// used in 6 moves: +// Move_SKY_ATTACK, Move_SUPERPOWER, Move_ENCORE, +// Move_FLATTER, Move_RETURN, Move_COSMIC_POWER +void sub_812B340(u8 taskId) +{ + u16 songNum = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + PlaySE2WithPanning(songNum, pan); + + DestroyAnimVisualTask(taskId); +} + +// used in 2 moves: +// Move_CONFUSE_RAY, Move_WILL_O_WISP +void sub_812B374(u8 taskId) +{ + u8 r5 = gBattleAnimArgs[1]; + s8 panIncrement = gBattleAnimArgs[2]; + s16 r9 = gBattleAnimArgs[3]; + s8 r1 = gBattleAnimArgs[0]; + + s8 sourcePan = BattleAnimAdjustPanning(r1); + s8 targetPan = BattleAnimAdjustPanning(r5); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement); + + TASK.data[1] = sourcePan; + TASK.data[2] = targetPan; + TASK.data[3] = panIncrement; + TASK.data[5] = r9; + TASK.data[10] = 0; + TASK.data[11] = sourcePan; + + TASK.func = sub_812B404; + sub_812B404(taskId); +} + +void sub_812B404(u8 taskId) +{ + u16 dPan = TASK.data[3]; + + if (TASK.data[10]++ == TASK.data[5]) + { + u16 oldPan; + TASK.data[10] = 0; + oldPan = TASK.data[11]; + TASK.data[11] = dPan + oldPan; + TASK.data[11] = sub_8077104(TASK.data[11], oldPan); + } + + gUnknown_0202F7D2 = TASK.data[11]; + + if (TASK.data[11] == TASK.data[2]) + { + DestroyAnimVisualTask(taskId); + } } \ No newline at end of file diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index 8242a1ddd..a0c74be1d 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -43,7 +43,7 @@ EWRAM_DATA u16 sAnimMoveIndex = 0; // set but unused. EWRAM_DATA u8 gAnimBankAttacker = 0; EWRAM_DATA u8 gAnimBankTarget = 0; EWRAM_DATA u16 gAnimSpeciesByBanks[4] = {0}; -EWRAM_DATA u8 gUnknown_0202F7D2 = 0; +EWRAM_DATA u8 gUnknown_0202F7D2 = 0; // some global pan variable extern u16 gBattle_BG1_Y; extern u16 gBattle_WIN1H; extern u16 gBattle_WIN0V; @@ -1489,9 +1489,9 @@ s8 BattleAnimAdjustPanning2(s8 pan) return pan; } -s16 sub_8077104(s16 a) +s16 sub_8077104(s16 newPan, int oldPan) { - s16 var = a; + s16 var = newPan; if (var > 63) var = 63; -- cgit v1.2.3 From 84118e6fed04b1533458b891bcd0317683fe38c2 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 8 Jan 2018 19:23:43 -0800 Subject: Move unused files back to src/ level --- Makefile | 2 +- ld_script.txt | 4 +- src/battle/anim/sfx.c | 21 ++++---- src/unused/unused_8124F94.c | 126 -------------------------------------------- src/unused/unused_81258BC.c | 36 ------------- src/unused_8124F94.c | 126 ++++++++++++++++++++++++++++++++++++++++++++ src/unused_81258BC.c | 36 +++++++++++++ 7 files changed, 175 insertions(+), 176 deletions(-) delete mode 100644 src/unused/unused_8124F94.c delete mode 100644 src/unused/unused_81258BC.c create mode 100644 src/unused_8124F94.c create mode 100644 src/unused_81258BC.c diff --git a/Makefile b/Makefile index 275df021e..c1f6a6b4f 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_d $(VERSIONS) $(VERSIONS:%=compare_%) -$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs,/unused}})) +$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs}})) C_SRCS := $(shell find src -iname "*.c") ASM_SRCS := $(wildcard asm/*.s) diff --git a/ld_script.txt b/ld_script.txt index 894a70d4d..11a430764 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -349,12 +349,12 @@ SECTIONS { src/scene/cable_car.o(.text); src/roulette_util.o(.text); src/engine/cable_car_util.o(.text); - src/unused/unused_8124F94.o(.text); + src/unused_8124F94.o(.text); src/engine/save.o(.text); src/engine/mystery_event_script.o(.text); src/field/field_effect_helpers.o(.text); asm/contest_ai.o(.text); - src/unused/unused_81258BC.o(.text); + src/unused_81258BC.o(.text); src/battle/anim/sfx.o(.text); src/battle/battle_controller_safari.o(.text); src/field/fldeff_sweetscent.o(.text); diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c index 470fea3cc..10ef1681e 100644 --- a/src/battle/anim/sfx.c +++ b/src/battle/anim/sfx.c @@ -13,11 +13,10 @@ extern u16 gBattlePartyID[]; extern u16 gAnimSpeciesByBanks[]; extern u8 gUnknown_0202F7D2; -void sub_812AF98(u8 taskId); -void sub_812B004(u8 taskId); -void sub_812B004(u8 taskId); -void sub_812B108(u8 taskId); -void sub_812B404(u8 taskId); +static void sub_812AF98(u8 taskId); +static void sub_812B004(u8 taskId); +static void sub_812B108(u8 taskId); +static void sub_812B404(u8 taskId); // used in 1 move: // Move_FIRE_BLAST @@ -40,7 +39,7 @@ void sub_812AF30(u8 taskId) TASK.func = sub_812AF98; } -void sub_812AF98(u8 taskId) +static void sub_812AF98(u8 taskId) { s16 pan = TASK.data[2]; s8 dPan = TASK.data[4]; @@ -63,7 +62,7 @@ void sub_812AF98(u8 taskId) } } -void sub_812B004(u8 taskId) +static void sub_812B004(u8 taskId) { s8 pan; @@ -110,10 +109,10 @@ void sub_812B058(u8 taskId) TASK.data[12] = r9; TASK.func = sub_812B108; - sub_812B108(taskId); + TASK.func(taskId); } -void sub_812B108(u8 taskId) +static void sub_812B108(u8 taskId) { if (TASK.data[12]++ == TASK.data[6]) { @@ -256,10 +255,10 @@ void sub_812B374(u8 taskId) TASK.data[11] = sourcePan; TASK.func = sub_812B404; - sub_812B404(taskId); + TASK.func(taskId); } -void sub_812B404(u8 taskId) +static void sub_812B404(u8 taskId) { u16 dPan = TASK.data[3]; diff --git a/src/unused/unused_8124F94.c b/src/unused/unused_8124F94.c deleted file mode 100644 index 5f76fa92e..000000000 --- a/src/unused/unused_8124F94.c +++ /dev/null @@ -1,126 +0,0 @@ -#include "global.h" -#include "decompress.h" -#include "palette.h" - -struct UnknownStruct2 -{ - void *src; - u8 unk4; - u8 unk5; - u8 unk6; - u16 unk8; -}; - -struct UnknownStruct3 -{ - u16 *paletteSrc; - u8 unk4; - u8 paletteCount; -}; - -struct UnknownStruct1 -{ - u8 paletteNum; - u8 unk1; - u16 unk2; - u8 *dest; - struct UnknownStruct3 unk8[16]; - struct UnknownStruct2 unk88[32]; -}; - -void unref_sub_8124F94(struct UnknownStruct1 *a) -{ - a->unk1 = 0; - a->paletteNum = 0; - a->unk2 = 0; - a->dest = (void *)VRAM; - DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); - DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); -} - -u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) -{ - while (1) - { - s32 r6; - s32 temp; - - // Couldn't get it to match any other way - if (a->unk1 < 32 && b->src == NULL) - return 0; - if (a->unk1 >= 32) - break; - - a->unk88[a->unk1].src = b->src; - a->unk88[a->unk1].unk6 = b->unk6; - a->unk88[a->unk1].unk4 = b->unk4; - a->unk88[a->unk1].unk5 = b->unk5; - r6 = b->unk4 * b->unk5; - if (a->unk2 + r6 > 0x400) - return 2; - if (b->unk8 == 0) - { - DmaCopy16(3, b->src, a->dest + a->unk2 * 64, r6 * 32); - } - else - { - LZDecompressWram(b->src, a->dest + a->unk2 * 64); - } - a->unk88[a->unk1].unk8 = a->unk2; - temp = r6 + a->unk2; - a->unk2 = temp; - a->unk1++; - b++; - } - return 1; -} - -u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) -{ - while (1) - { - // Couldn't get it to match any other way - if (a->paletteNum < 16 && b->paletteSrc == NULL) - return 0; - if (a->paletteNum >= 16) - break; - - a->unk8[a->paletteNum].paletteSrc = b->paletteSrc; - a->unk8[a->paletteNum].unk4 = b->unk4; - if (b->paletteCount == 0) - { - LoadPalette(b->paletteSrc, a->paletteNum * 16, 32); - } - else - { - u16 palette[16]; - - LZDecompressWram(b->paletteSrc, palette); - LoadPalette(palette, a->paletteNum * 16, 32); - } - a->unk8[a->paletteNum].paletteCount = a->paletteNum; - a->paletteNum = a->paletteNum + 1; - b++; - } - return 1; -} - -u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) -{ - u16 palettes[16][16] = {0}; - u8 r7 = b->paletteCount; - u8 i; - - LZDecompressWram(b->paletteSrc, palettes); - for (i = a->paletteNum; i < r7; i++) - { - if (a->paletteNum + i >= 16) - return 1; - a->unk8[i].paletteSrc = b->paletteSrc; - a->unk8[i].unk4 = b->unk4 + i; - a->unk8[i].paletteCount = a->paletteNum; - LoadPalette(palettes[i], a->paletteNum * 16, sizeof(palettes[i])); - a->paletteNum++; - } - return 0; -} diff --git a/src/unused/unused_81258BC.c b/src/unused/unused_81258BC.c deleted file mode 100644 index c509ea4c9..000000000 --- a/src/unused/unused_81258BC.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "constants/songs.h" -#include "global.h" -#include "menu.h" -#include "mystery_event_script.h" -#include "sound.h" -#include "text.h" - -void sub_812AF10(void); - -bool8 unref_sub_812AECC(u8 *script) -{ - u8 result = RunMysteryEventScript(script); - switch (result) - { - case 0: - return FALSE; - case 1: - PlaySE(SE_BOO); - return TRUE; - case 2: - sub_812AF10(); - return FALSE; - case 3: - PlaySE(SE_BOO); - sub_812AF10(); - return TRUE; - default: - return FALSE; - } -} - -void sub_812AF10(void) -{ - MenuDrawTextWindow(2, 14, 27, 19); - MenuPrint(gStringVar4, 3, 15); -} \ No newline at end of file diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c new file mode 100644 index 000000000..5f76fa92e --- /dev/null +++ b/src/unused_8124F94.c @@ -0,0 +1,126 @@ +#include "global.h" +#include "decompress.h" +#include "palette.h" + +struct UnknownStruct2 +{ + void *src; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; +}; + +struct UnknownStruct3 +{ + u16 *paletteSrc; + u8 unk4; + u8 paletteCount; +}; + +struct UnknownStruct1 +{ + u8 paletteNum; + u8 unk1; + u16 unk2; + u8 *dest; + struct UnknownStruct3 unk8[16]; + struct UnknownStruct2 unk88[32]; +}; + +void unref_sub_8124F94(struct UnknownStruct1 *a) +{ + a->unk1 = 0; + a->paletteNum = 0; + a->unk2 = 0; + a->dest = (void *)VRAM; + DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); + DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); +} + +u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) +{ + while (1) + { + s32 r6; + s32 temp; + + // Couldn't get it to match any other way + if (a->unk1 < 32 && b->src == NULL) + return 0; + if (a->unk1 >= 32) + break; + + a->unk88[a->unk1].src = b->src; + a->unk88[a->unk1].unk6 = b->unk6; + a->unk88[a->unk1].unk4 = b->unk4; + a->unk88[a->unk1].unk5 = b->unk5; + r6 = b->unk4 * b->unk5; + if (a->unk2 + r6 > 0x400) + return 2; + if (b->unk8 == 0) + { + DmaCopy16(3, b->src, a->dest + a->unk2 * 64, r6 * 32); + } + else + { + LZDecompressWram(b->src, a->dest + a->unk2 * 64); + } + a->unk88[a->unk1].unk8 = a->unk2; + temp = r6 + a->unk2; + a->unk2 = temp; + a->unk1++; + b++; + } + return 1; +} + +u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + while (1) + { + // Couldn't get it to match any other way + if (a->paletteNum < 16 && b->paletteSrc == NULL) + return 0; + if (a->paletteNum >= 16) + break; + + a->unk8[a->paletteNum].paletteSrc = b->paletteSrc; + a->unk8[a->paletteNum].unk4 = b->unk4; + if (b->paletteCount == 0) + { + LoadPalette(b->paletteSrc, a->paletteNum * 16, 32); + } + else + { + u16 palette[16]; + + LZDecompressWram(b->paletteSrc, palette); + LoadPalette(palette, a->paletteNum * 16, 32); + } + a->unk8[a->paletteNum].paletteCount = a->paletteNum; + a->paletteNum = a->paletteNum + 1; + b++; + } + return 1; +} + +u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + u16 palettes[16][16] = {0}; + u8 r7 = b->paletteCount; + u8 i; + + LZDecompressWram(b->paletteSrc, palettes); + for (i = a->paletteNum; i < r7; i++) + { + if (a->paletteNum + i >= 16) + return 1; + a->unk8[i].paletteSrc = b->paletteSrc; + a->unk8[i].unk4 = b->unk4 + i; + a->unk8[i].paletteCount = a->paletteNum; + LoadPalette(palettes[i], a->paletteNum * 16, sizeof(palettes[i])); + a->paletteNum++; + } + return 0; +} diff --git a/src/unused_81258BC.c b/src/unused_81258BC.c new file mode 100644 index 000000000..c509ea4c9 --- /dev/null +++ b/src/unused_81258BC.c @@ -0,0 +1,36 @@ +#include "constants/songs.h" +#include "global.h" +#include "menu.h" +#include "mystery_event_script.h" +#include "sound.h" +#include "text.h" + +void sub_812AF10(void); + +bool8 unref_sub_812AECC(u8 *script) +{ + u8 result = RunMysteryEventScript(script); + switch (result) + { + case 0: + return FALSE; + case 1: + PlaySE(SE_BOO); + return TRUE; + case 2: + sub_812AF10(); + return FALSE; + case 3: + PlaySE(SE_BOO); + sub_812AF10(); + return TRUE; + default: + return FALSE; + } +} + +void sub_812AF10(void) +{ + MenuDrawTextWindow(2, 14, 27, 19); + MenuPrint(gStringVar4, 3, 15); +} \ No newline at end of file -- cgit v1.2.3