From 9ec0be0b8be2b5d761ee937fae488820981a7a60 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 14:21:32 -0500 Subject: decomp scrcmd_6 based off of tgsm's work --- arm9/src/scrcmd_sound.c | 299 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 arm9/src/scrcmd_sound.c (limited to 'arm9/src') diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c new file mode 100644 index 00000000..14ffed61 --- /dev/null +++ b/arm9/src/scrcmd_sound.c @@ -0,0 +1,299 @@ +#include "global.h" +#include "script.h" +#include "scrcmd.h" + +extern BOOL FUN_020413C0(struct ScriptContext *ctx); +extern BOOL FUN_020413E8(struct ScriptContext *ctx); +extern BOOL FUN_020413F8(struct ScriptContext *ctx); +extern BOOL FUN_0204140C(struct ScriptContext *ctx); +extern BOOL FUN_02041424(struct ScriptContext *ctx); +extern BOOL FUN_0204143C(struct ScriptContext *ctx); +extern BOOL FUN_02041464(struct ScriptContext *ctx); +extern BOOL FUN_02041478(struct ScriptContext* ctx); +extern BOOL FUN_0204149C(struct ScriptContext* ctx); +extern BOOL FUN_020414B8(struct ScriptContext *ctx); +extern BOOL FUN_020414CC(struct ScriptContext* ctx); +extern BOOL FUN_020414E0(struct ScriptContext* ctx); +extern BOOL FUN_020414FC(struct ScriptContext* ctx); +extern BOOL FUN_02041518(struct ScriptContext* ctx); +extern BOOL FUN_02041540(struct ScriptContext* ctx); +extern BOOL FUN_02041558(struct ScriptContext* ctx); +extern BOOL ScrCmd_waitcry(struct ScriptContext* ctx); +extern BOOL FUN_02041598(struct ScriptContext* ctx); +extern BOOL FUN_020415BC(struct ScriptContext* ctx); +extern BOOL FUN_020415CC(struct ScriptContext* ctx); +extern BOOL ScrCmd_playbgm(struct ScriptContext* ctx); +extern BOOL FUN_020415E0(struct ScriptContext* ctx); +extern BOOL FUN_02041618(struct ScriptContext* ctx); +extern BOOL FUN_02041644(struct ScriptContext* ctx); +extern BOOL FUN_02041650(struct ScriptContext* ctx); +extern BOOL FUN_02041664(struct ScriptContext* ctx); +extern BOOL FUN_02041674(struct ScriptContext* ctx); + +extern void* FUN_02029EF8(struct SaveBlock2* sav2); +extern u32 FUN_02005D20(void *); +extern void FUN_02005E6C(void *); +extern void FUN_0200433C(u32, u32, u32); +extern u32 FUN_02005E28(void); +extern void FUN_02005E64(void); +extern BOOL FUN_02005CBC(void); +extern void PlayBGM(u16); +extern u32 FUN_02004124(u16); +extern void FUN_0204AB20(struct UnkSavStruct80 *ctx, u16); +extern u16 FUN_0204ABA8(struct UnkSavStruct80 *ctx, u32); +extern void FUN_0200521C(u16); +extern void FUN_02005308(u32, u16); +extern void FUN_02005350(u32, u32); +extern void FUN_0200538C(u32, u16, u32); +extern void FUN_020053CC(u16, u16); +extern BOOL FUN_02005404(void); +extern u16 FUN_02005410(u16); +extern void FUN_020054C8(u16); +extern void FUN_020054F0(u16, u32); +extern void FUN_020047C8(u8, u8); +extern void FUN_020040F4(u8); +extern BOOL FUN_02005508(u16); +extern void FUN_02005578(u16); +extern BOOL FUN_02005670(void); +extern void FUN_0200488C(u16, u16); + + +THUMB_FUNC BOOL FUN_020413C0(struct ScriptContext *ctx) +{ + u16 unk0; + u16 *unk1; + + unk0 = ScriptReadHalfword(ctx); + unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *unk1 = FUN_02005410(unk0); + + return FALSE; +} + +THUMB_FUNC BOOL FUN_020413E8(struct ScriptContext *ctx) +{ + FUN_0200521C(ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020413F8(struct ScriptContext *ctx) +{ + u32 unk0 = FUN_02004124(ScriptReadHalfword(ctx)); + FUN_02005350(unk0, 0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_0204140C(struct ScriptContext *ctx) +{ + u16 unk0 = FUN_0204ABA8(ctx->unk80, *ctx->unk80->mapId); + FUN_0200521C(unk0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041424(struct ScriptContext *ctx) +{ + FUN_0204AB20(ctx->unk80, ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_0204143C(struct ScriptContext* ctx) +{ + u16 unk1 = ScriptReadHalfword(ctx); + u16 unk2 = ScriptReadHalfword(ctx); + + FUN_020053CC(unk1, unk2); + SetupNativeScript(ctx, FUN_02041464); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041464(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + + if(!FUN_02005404()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) +{ + u16 unk = ScriptReadHalfword(ctx); + + FUN_0200538C(0x7F, unk, 0); + SetupNativeScript(ctx, FUN_02041464); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) +{ + + u8 PtrIndx0 = *ctx->scriptPtr++; + + u8 PtrIndx1 = *ctx->scriptPtr++; + + FUN_020047C8(PtrIndx0, PtrIndx1); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) +{ + FUN_02005308(4, ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) +{ + u8 PtrIndx0 = *ctx->scriptPtr++; + FUN_020040F4(PtrIndx0); + return FALSE; +} + + +THUMB_FUNC BOOL FUN_020414E0(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_020054C8(unk); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414FC(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_020054F0(unk, 0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + ctx->data[0] = unk; + SetupNativeScript(ctx, FUN_02041540); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) +{ + if(!FUN_02005508((u16)ctx->data[0])) + return 1; + else + return 0; +} + +THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) +{ + u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_02005578(unk0); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_waitcry(struct ScriptContext* ctx) +{ + SetupNativeScript(ctx, FUN_02041598); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041598(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + + if(!FUN_02005670()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) +{ + u16 bgm_id = ScriptReadHalfword(ctx); + PlayBGM(bgm_id); + + return FALSE; +} + +THUMB_FUNC BOOL FUN_020415BC(struct ScriptContext* ctx) +{ + SetupNativeScript(ctx, FUN_020415CC); + return TRUE; +} + +THUMB_FUNC BOOL FUN_020415CC(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + if (!FUN_02005CBC()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + if (FUN_02005D20(unk) == 1) + { + *ret_ptr = 1; + return FALSE; + } + else + { + *ret_ptr = 0; + return FALSE; + } +} + +THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + if (FUN_02005E28() == 0) + { + *ret_ptr = 1; + return FALSE; + } + else + { + *ret_ptr = 0; + return FALSE; + } +} + +THUMB_FUNC BOOL FUN_02041644(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + FUN_02005E64(); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) +{ + void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + FUN_02005E6C(unk); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041664(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + FUN_0200433C(0x3F, 0, 0); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041674(struct ScriptContext* ctx) +{ + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_0200488C(unk1, unk2); + + return FALSE; +} + -- cgit v1.2.3 From 44ed8160dfe35adba152d2ef508e2a58ae388799 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 14:43:49 -0500 Subject: address review comments --- arm9/src/scrcmd_sound.c | 40 +++++----------------------------------- 1 file changed, 5 insertions(+), 35 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 14ffed61..437c87c2 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -1,35 +1,5 @@ -#include "global.h" -#include "script.h" #include "scrcmd.h" -extern BOOL FUN_020413C0(struct ScriptContext *ctx); -extern BOOL FUN_020413E8(struct ScriptContext *ctx); -extern BOOL FUN_020413F8(struct ScriptContext *ctx); -extern BOOL FUN_0204140C(struct ScriptContext *ctx); -extern BOOL FUN_02041424(struct ScriptContext *ctx); -extern BOOL FUN_0204143C(struct ScriptContext *ctx); -extern BOOL FUN_02041464(struct ScriptContext *ctx); -extern BOOL FUN_02041478(struct ScriptContext* ctx); -extern BOOL FUN_0204149C(struct ScriptContext* ctx); -extern BOOL FUN_020414B8(struct ScriptContext *ctx); -extern BOOL FUN_020414CC(struct ScriptContext* ctx); -extern BOOL FUN_020414E0(struct ScriptContext* ctx); -extern BOOL FUN_020414FC(struct ScriptContext* ctx); -extern BOOL FUN_02041518(struct ScriptContext* ctx); -extern BOOL FUN_02041540(struct ScriptContext* ctx); -extern BOOL FUN_02041558(struct ScriptContext* ctx); -extern BOOL ScrCmd_waitcry(struct ScriptContext* ctx); -extern BOOL FUN_02041598(struct ScriptContext* ctx); -extern BOOL FUN_020415BC(struct ScriptContext* ctx); -extern BOOL FUN_020415CC(struct ScriptContext* ctx); -extern BOOL ScrCmd_playbgm(struct ScriptContext* ctx); -extern BOOL FUN_020415E0(struct ScriptContext* ctx); -extern BOOL FUN_02041618(struct ScriptContext* ctx); -extern BOOL FUN_02041644(struct ScriptContext* ctx); -extern BOOL FUN_02041650(struct ScriptContext* ctx); -extern BOOL FUN_02041664(struct ScriptContext* ctx); -extern BOOL FUN_02041674(struct ScriptContext* ctx); - extern void* FUN_02029EF8(struct SaveBlock2* sav2); extern u32 FUN_02005D20(void *); extern void FUN_02005E6C(void *); @@ -131,9 +101,9 @@ THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) { - u8 PtrIndx0 = *ctx->scriptPtr++; + u8 PtrIndx0 = ScriptReadByte(ctx); - u8 PtrIndx1 = *ctx->scriptPtr++; + u8 PtrIndx1 = ScriptReadByte(ctx); FUN_020047C8(PtrIndx0, PtrIndx1); return FALSE; @@ -147,7 +117,7 @@ THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) { - u8 PtrIndx0 = *ctx->scriptPtr++; + u8 PtrIndx0 = ScriptReadByte(ctx); FUN_020040F4(PtrIndx0); return FALSE; } @@ -180,9 +150,9 @@ THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) { if(!FUN_02005508((u16)ctx->data[0])) - return 1; + return TRUE; else - return 0; + return FALSE; } THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) -- cgit v1.2.3 From 1355615fe9dfea12a2800c182f6716c190b9a964 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 16:41:35 -0500 Subject: name scrcmd's in scrcmd_sound --- arm9/src/scrcmd_sound.c | 53 +++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 437c87c2..5acaae1e 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -28,46 +28,43 @@ extern BOOL FUN_02005670(void); extern void FUN_0200488C(u16, u16); -THUMB_FUNC BOOL FUN_020413C0(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx) { - u16 unk0; - u16 *unk1; - - unk0 = ScriptReadHalfword(ctx); - unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk0 = ScriptReadHalfword(ctx); + u16 *unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *unk1 = FUN_02005410(unk0); return FALSE; } -THUMB_FUNC BOOL FUN_020413E8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0050(struct ScriptContext *ctx) { FUN_0200521C(ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_020413F8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0051(struct ScriptContext *ctx) { u32 unk0 = FUN_02004124(ScriptReadHalfword(ctx)); FUN_02005350(unk0, 0); return FALSE; } -THUMB_FUNC BOOL FUN_0204140C(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0052(struct ScriptContext *ctx) { u16 unk0 = FUN_0204ABA8(ctx->unk80, *ctx->unk80->mapId); FUN_0200521C(unk0); return FALSE; } -THUMB_FUNC BOOL FUN_02041424(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0053(struct ScriptContext *ctx) { FUN_0204AB20(ctx->unk80, ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_0204143C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0054(struct ScriptContext *ctx) { u16 unk1 = ScriptReadHalfword(ctx); u16 unk2 = ScriptReadHalfword(ctx); @@ -88,7 +85,7 @@ THUMB_FUNC BOOL FUN_02041464(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0055(struct ScriptContext* ctx) { u16 unk = ScriptReadHalfword(ctx); @@ -98,7 +95,7 @@ THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0056(struct ScriptContext* ctx) { u8 PtrIndx0 = ScriptReadByte(ctx); @@ -109,13 +106,13 @@ THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0057(struct ScriptContext* ctx) { FUN_02005308(4, ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0058(struct ScriptContext* ctx) { u8 PtrIndx0 = ScriptReadByte(ctx); FUN_020040F4(PtrIndx0); @@ -123,21 +120,21 @@ THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) } -THUMB_FUNC BOOL FUN_020414E0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0049(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054C8(unk); return FALSE; } -THUMB_FUNC BOOL FUN_020414FC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004A(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054F0(unk, 0); return FALSE; } -THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004B(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -155,7 +152,7 @@ THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004C(struct ScriptContext* ctx) { u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -163,7 +160,7 @@ THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_waitcry(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayCryWait(struct ScriptContext* ctx) { SetupNativeScript(ctx, FUN_02041598); return TRUE; @@ -179,7 +176,7 @@ THUMB_FUNC BOOL FUN_02041598(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayBgm(struct ScriptContext* ctx) { u16 bgm_id = ScriptReadHalfword(ctx); PlayBGM(bgm_id); @@ -187,7 +184,7 @@ THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020415BC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004F(struct ScriptContext* ctx) { SetupNativeScript(ctx, FUN_020415CC); return TRUE; @@ -202,7 +199,7 @@ THUMB_FUNC BOOL FUN_020415CC(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0059(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -219,7 +216,7 @@ THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005A(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -235,14 +232,14 @@ THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL FUN_02041644(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005B(struct ScriptContext* ctx) { #pragma unused(ctx) FUN_02005E64(); return TRUE; } -THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005C(struct ScriptContext* ctx) { void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); FUN_02005E6C(unk); @@ -250,14 +247,14 @@ THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL FUN_02041664(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005D(struct ScriptContext* ctx) { #pragma unused(ctx) FUN_0200433C(0x3F, 0, 0); return TRUE; } -THUMB_FUNC BOOL FUN_02041674(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0283(struct ScriptContext* ctx) { u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); -- cgit v1.2.3