diff options
-rw-r--r-- | arm9/asm/scrcmd_20.s | 56 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 2 | ||||
-rw-r--r-- | arm9/global.inc | 2 | ||||
-rw-r--r-- | arm9/src/scrcmd_20.c | 38 | ||||
-rw-r--r-- | include/scrcmd.h | 3 |
5 files changed, 43 insertions, 58 deletions
diff --git a/arm9/asm/scrcmd_20.s b/arm9/asm/scrcmd_20.s deleted file mode 100644 index 31de1e77..00000000 --- a/arm9/asm/scrcmd_20.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F4528 -UNK_020F4528: ; 0x020F4528 - .byte 0xFB, 0x00 - - .global UNK_020F452A -UNK_020F452A: ; 0x020F452A - .byte 0xE8, 0x03, 0x09, 0x01, 0xE8, 0x03, 0x14, 0x01, 0xE8, 0x03, 0x15, 0x01, 0xE8, 0x03, 0xA1, 0x01 - .byte 0xD0, 0x07, 0x81, 0x01, 0xD0, 0x07, 0x92, 0x01, 0xA0, 0x0F, 0x67, 0x01, 0xA0, 0x0F, 0x73, 0x01 - .byte 0x70, 0x17, 0xA0, 0x01, 0x70, 0x17, 0x51, 0x01, 0x70, 0x17, 0x62, 0x01, 0x40, 0x1F, 0x5C, 0x01 - .byte 0x40, 0x1F, 0x6A, 0x01, 0x10, 0x27, 0x5F, 0x01, 0x10, 0x27, 0x54, 0x01, 0x10, 0x27, 0x64, 0x01 - .byte 0x10, 0x27, 0x91, 0x01, 0x98, 0x3A, 0x8B, 0x01, 0x20, 0x4E - - .text - - thumb_func_start FUN_020453A0 -FUN_020453A0: ; 0x020453A0 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - ldr r1, _020453EC ; =UNK_020F4528 - lsl r2, r4, #0x2 - ldrh r1, [r1, r2] - strh r1, [r6, #0x0] - ldr r1, _020453F0 ; =UNK_020F452A - ldrh r1, [r1, r2] - strh r1, [r0, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 -_020453EC: .word UNK_020F4528 -_020453F0: .word UNK_020F452A diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index c876dcc6..d880340e 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -827,7 +827,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203F988 .word FUN_0203F9B0 .word FUN_0203B914 - .word FUN_020453A0 + .word ScrCmd_Unk02A6 .word FUN_0203FA14 .word FUN_02043B54 .word FUN_02043BD0 diff --git a/arm9/global.inc b/arm9/global.inc index cac00e2d..69746e05 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3361,7 +3361,7 @@ .extern ScrCmd_Unk01F5 .extern ScrCmd_Unk01F2 .extern ScrCmd_Unk01F3 -.extern FUN_020453A0 +.extern ScrCmd_Unk02A6 .extern FUN_020453F4 .extern FUN_02045424 .extern FUN_02045438 diff --git a/arm9/src/scrcmd_20.c b/arm9/src/scrcmd_20.c new file mode 100644 index 00000000..bf4fb7f1 --- /dev/null +++ b/arm9/src/scrcmd_20.c @@ -0,0 +1,38 @@ +#include "scrcmd.h" + +extern u16 VarGet(struct UnkSavStruct80* arg, u16); +extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16); + +const u16 UNK_020F452A[19][2] = { + { 0x00FB, 0x03E8 }, + { 0x0109, 0x03E8 }, + { 0x0114, 0x03E8 }, + { 0x0115, 0x03E8 }, + { 0x01A1, 0x07D0 }, + { 0x0181, 0x07D0 }, + { 0x0192, 0x0FA0 }, + { 0x0167, 0x0FA0 }, + { 0x0173, 0x1770 }, + { 0x01A0, 0x1770 }, + { 0x0151, 0x1770 }, + { 0x0162, 0x1F40 }, + { 0x015C, 0x1F40 }, + { 0x016A, 0x2710 }, + { 0x015F, 0x2710 }, + { 0x0154, 0x2710 }, + { 0x0164, 0x2710 }, + { 0x0191, 0x3A98 }, + { 0x018B, 0x4E20 }, +}; + +THUMB_FUNC BOOL ScrCmd_Unk02A6(struct ScriptContext * ctx) +{ + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr1 = UNK_020F452A[idx][0]; + *ret_ptr2 = UNK_020F452A[idx][1]; + + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 35d1a45d..04e22867 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -95,6 +95,9 @@ BOOL ScrCmd_Unk01F5(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F2(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); +//scrcmd_20.c +BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); + //scrcmd_25.c BOOL ScrCmd_Unk02EF(struct ScriptContext* ctx); BOOL ScrCmd_Unk02F0(struct ScriptContext* ctx); |