diff options
author | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-03-21 17:31:49 +0100 |
---|---|---|
committer | Rémi Calixte <remicalixte.rmc@gmail.com> | 2021-03-21 19:25:54 +0100 |
commit | b43341ac3b516d02b07ca8b03b961cceb3026f25 (patch) | |
tree | 7fa7bc898f2d29c52a4900fed029239c76bda719 | |
parent | 7f951b36a4cdac81b9e7da235b73c79e84d51053 (diff) |
match unk_0208A998
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/asm/unk_0208A998.s | 13 | ||||
-rw-r--r-- | arm9/src/unk_0208A998.c | 146 | ||||
-rw-r--r-- | arm9/src/unk_0208A998_c.c | 414 | ||||
-rw-r--r-- | include/unk_0208A998.h | 39 |
5 files changed, 185 insertions, 428 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 7741c6d8..1b6a6d66 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -317,7 +317,6 @@ Static arm9 Object unk_0208A258.o Object unk_0208A300.o Object unk_0208A338.o - Object unk_0208A998_c.o Object unk_0208A998.o ### Third-party libraries ### Object unk_0208AC14.o diff --git a/arm9/asm/unk_0208A998.s b/arm9/asm/unk_0208A998.s deleted file mode 100644 index b63ba6d5..00000000 --- a/arm9/asm/unk_0208A998.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .section .rodata - - - .section .bss - .text - - - diff --git a/arm9/src/unk_0208A998.c b/arm9/src/unk_0208A998.c new file mode 100644 index 00000000..2112fbd1 --- /dev/null +++ b/arm9/src/unk_0208A998.c @@ -0,0 +1,146 @@ +#include "unk_0208A998.h" + +const u32 UNK_020FF49C[2] = { 0x1a030300, 0x00230112 }; + +const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 }; + +const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 }; + +const u32 UNK_020FF4BC[7] = { 0x00, 0x00, 0x0800, 0x00, 0x06000001, 0x0100, 0x00 }; + +const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 }; + +u32 sErrorMessagePrinterLock; + +extern void FUN_0200E3A0(PMLCDTarget, int); +extern void FUN_0201E6D8(); +extern void FUN_0201E7A0(); +extern void FUN_0201E66C(const struct GraphicsBanks *banks); +extern u32 *FUN_02016B94(u32 param0); +extern void FUN_02016BBC(const struct GraphicsModes *modes); +extern void FUN_02016C18(u32 *param0, u32 param1, void *param2, u32 param3); +extern void FUN_02018744(u32 *param0, u32 param1); +extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); +extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); +extern void FUN_02017FE4(u32 param0, u32 param1); +extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2); +extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16); +extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); +extern void FUN_0201E788(); +extern void FUN_0200E394(u32 param0); +extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); +extern BOOL FUN_02032DAC(void); +extern BOOL FUN_0202FB80(void); +extern BOOL FUN_02033678(void); +extern void FUN_02019178(u32 *param0); +extern void FUN_0201E740(); + +THUMB_FUNC void FUN_0208A998() +{ + *(vu32 *)HW_INTR_CHECK_BUF |= 1; + + MI_WaitDma(3); +} + +THUMB_FUNC void PrintErrorMessageAndReset() +{ + + u32 *ptr; + u32 buf[4]; + + if (sErrorMessagePrinterLock != 1) + { + sErrorMessagePrinterLock = 1; + OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN)); + OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN)); + + FUN_020166C8((u32 *)UNK_020FF4A4, 1, 1, 0); + FUN_0200E3A0(PM_LCD_TOP, 0); + FUN_0200E3A0(PM_LCD_BOTTOM, 0); + + OS_DisableIrqMask(1); + OS_SetIrqFunction(1, &FUN_0208A998); + OS_EnableIrqMask(1); + + Main_SetVBlankIntrCB(NULL, NULL); + + FUN_02015F34(NULL, NULL); + FUN_0201E6D8(); + FUN_0201E740(); + + reg_GX_DISPCNT &= 0xFFFFE0FF; + reg_GXS_DB_DISPCNT &= 0xFFFFE0FF; + + FUN_0201669C(4, 8); + + gMain.unk65 = 0; + FUN_0201E7A0(); + + reg_G2_BLDCNT = 0; + reg_G2S_DB_BLDCNT = 0; + reg_GX_DISPCNT &= 0xFFFF1FFF; + reg_GXS_DB_DISPCNT &= 0xFFFF1FFF; + + FUN_0201E66C(&UNK_020FF4D8); + ptr = FUN_02016B94(0); + FUN_02016BBC(&UNK_020FF4AC); + + FUN_02016C18(ptr, 0, UNK_020FF4BC, 0); + FUN_02018744(ptr, 0); + + FUN_0200CB00(ptr, 0, 503, 2, 0, 0); + + FUN_02002ED0(0, 0x20, 0); + FUN_02017F18(0, 0x20, 0, 0); + FUN_02017FE4(0, 0x6C21); + FUN_02017FE4(4, 0x6C21); + + struct MsgData *msg_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 0xc8, 0); + struct String *str = String_ctor(6 << 6, 0); + + FUN_0201BD5C(); + FUN_02019150(ptr, buf, UNK_020FF49C); + FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90); + FUN_0200CCA4(buf, 0, 0x1f7, 2); + + ReadMsgDataIntoString(msg_data, 3, str); + + AddTextPrinterParameterized((u32)buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf + + String_dtor(str); + FUN_0201E788(); + FUN_0200E394(0); + FUN_0200E394(1); + FUN_0200A274(0, 0x3f, 3); + FUN_02032DAC(); + + lid: + HandleDSLidAction(); + FUN_0202FB80(); + if (!FUN_02033678()) + { + OS_WaitIrq(1, 1); + goto lid; + } + + + lid2: + HandleDSLidAction(); + if (!((u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^ 0x2FFF) & 0x2FFF) & 1)) + { + OS_WaitIrq(1, 1); + goto lid2; + } + + FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); + FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); + + FUN_02019178(buf); + + DestroyMsgData(msg_data); + FreeToHeap(ptr); + + OS_ResetSystem(0); + } +}
\ No newline at end of file diff --git a/arm9/src/unk_0208A998_c.c b/arm9/src/unk_0208A998_c.c deleted file mode 100644 index bbff614b..00000000 --- a/arm9/src/unk_0208A998_c.c +++ /dev/null @@ -1,414 +0,0 @@ -#include "global.h" -#include "heap.h" -#include "SPI_pm.h" -#include "game_init.h" -#include "msgdata.h" -#include "text.h" - - -const u8 UNK_020FF49C[8] = {0x00, 0x03, 0x03, 0x1a, 0x12, 0x01, 0x23, 0x00}; - -const u8 UNK_020FF4A4[8] = {0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}; - - - - -const u8 UNK_020FF4AC[16] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00}; - - -const u8 UNK_020FF4BC[28] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - - -const u8 UNK_020FF4D8[40] = { - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -u32 sErrorMessagePrinterLock; - - -extern void FUN_0200E3A0(PMLCDTarget, int); -extern void FUN_0201E6D8(); -extern void FUN_0201E7A0(); -extern void FUN_0201E66C(u32 *param0); -extern u32 FUN_02016B94(u32 param0); -extern void FUN_02016BBC(u32 *param0); -extern void FUN_02016C18(u32 param0, u32 param1, u32 *param2, u32 param3); -extern void FUN_02018744(u32 param0, u32 param1); -extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); -extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); -extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); -extern void FUN_02017FE4(u32 param0, u32 param1); -extern void FUN_02019150(u32 param0, u32 *param1, u32 *param2); -extern void FUN_020196F4(u32 *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); -extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); -extern void FUN_0201E788(); -extern void FUN_0200E394(u32 param0); -extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); -extern void FUN_02032DAC(); -extern BOOL FUN_0202FB80(void); -extern BOOL FUN_02033678(void); -extern void FUN_02019178(u32 *param0); -extern void FUN_0201E740(); - - - - -THUMB_FUNC void FUN_0208A998() { - *(vu32 *)HW_INTR_CHECK_BUF |= 1; - - MI_WaitDma(3); -} - - - - -// thumb_func_start PrintErrorMessageAndReset -// PrintErrorMessageAndReset: ; 0x0208A9B8 -// push {r4-r7, lr} -// sub sp, #0x24 -// ldr r0, _0208ABC8 ; =sErrorMessagePrinterLock -// ldr r1, [r0, #0x0] -// cmp r1, #0x1 -// bne _0208A9C6 -// b _0208ABC4 -// _0208A9C6: -// mov r1, #0x1 -// str r1, [r0, #0x0] -// mov r0, #0x0 -// bl OS_GetInitArenaHi -// add r1, r0, #0x0 -// mov r0, #0x0 -// bl OS_SetArenaHi -// mov r0, #0x0 -// bl OS_GetInitArenaLo -// add r1, r0, #0x0 -// mov r0, #0x0 -// bl OS_SetArenaLo -// mov r1, #0x1 -// ldr r0, _0208ABCC ; =UNK_020FF4A4 -// add r2, r1, #0x0 -// mov r3, #0x0 -// bl FUN_020166C8 -// mov r0, #0x0 -// add r1, r0, #0x0 -// bl FUN_0200E3A0 -// mov r0, #0x1 -// mov r1, #0x0 -// bl FUN_0200E3A0 -// mov r0, #0x1 -// bl OS_DisableIrqMask -// ldr r1, _0208ABD0 ; =FUN_0208A998 -// mov r0, #0x1 -// bl OS_SetIrqFunction -// mov r0, #0x1 -// bl OS_EnableIrqMask -// mov r0, #0x0 -// add r1, r0, #0x0 -// bl Main_SetVBlankIntrCB -// mov r0, #0x0 -// add r1, r0, #0x0 -// bl FUN_02015F34 -// bl FUN_0201E6D8 -// bl FUN_0201E740 -// mov r2, #0x1 -// lsl r2, r2, #0x1a -// ldr r1, [r2, #0x0] -// ldr r0, _0208ABD4 ; =0xFFFFE0FF -// and r1, r0 -// str r1, [r2, #0x0] -// ldr r2, _0208ABD8 ; =0x04001000 -// ldr r1, [r2, #0x0] -// and r0, r1 -// str r0, [r2, #0x0] -// mov r0, #0x4 -// mov r1, #0x8 -// bl FUN_0201669C -// ldr r0, _0208ABDC ; =gMain + 0x60 -// mov r1, #0x0 -// strb r1, [r0, #0x5] -// bl FUN_0201E7A0 -// ldr r3, _0208ABE0 ; =0x04000050 -// mov r0, #0x0 -// strh r0, [r3, #0x0] -// ldr r2, _0208ABE4 ; =0x04001050 -// sub r3, #0x50 -// strh r0, [r2, #0x0] -// ldr r1, [r3, #0x0] -// ldr r0, _0208ABE8 ; =0xFFFF1FFF -// sub r2, #0x50 -// and r1, r0 -// str r1, [r3, #0x0] -// ldr r1, [r2, #0x0] -// and r0, r1 -// str r0, [r2, #0x0] -// ldr r0, _0208ABEC ; =UNK_020FF4D8 -// bl FUN_0201E66C -// mov r0, #0x0 -// bl FUN_02016B94 -// str r0, [sp, #0x10] -// ldr r0, _0208ABF0 ; =UNK_020FF4AC -// bl FUN_02016BBC -// mov r1, #0x0 -// ldr r0, [sp, #0x10] -// ldr r2, _0208ABF4 ; =UNK_020FF4BC -// add r3, r1, #0x0 -// bl FUN_02016C18 -// ldr r0, [sp, #0x10] -// mov r1, #0x0 -// bl FUN_02018744 -// mov r1, #0x0 -// str r1, [sp, #0x0] -// ldr r0, [sp, #0x10] -// ldr r2, _0208ABF8 ; =0x000001F7 -// mov r3, #0x2 -// str r1, [sp, #0x4] -// bl FUN_0200CB00 -// mov r0, #0x0 -// mov r1, #0x20 -// add r2, r0, #0x0 -// bl FUN_02002ED0 -// mov r0, #0x0 -// mov r1, #0x20 -// add r2, r0, #0x0 -// add r3, r0, #0x0 -// bl FUN_02017F18 -// ldr r1, _0208ABFC ; =0x00006C21 -// mov r0, #0x0 -// bl FUN_02017FE4 -// ldr r1, _0208ABFC ; =0x00006C21 -// mov r0, #0x4 -// bl FUN_02017FE4 -// mov r0, #0x1 -// mov r1, #0x1a -// mov r2, #0xc8 -// mov r3, #0x0 -// bl NewMsgDataFromNarc -// str r0, [sp, #0xc] -// mov r0, #0x6 -// lsl r0, r0, #0x6 -// mov r1, #0x0 -// bl String_ctor -// add r4, r0, #0x0 -// bl FUN_0201BD5C -// ldr r0, [sp, #0x10] -// ldr r2, _0208AC00 ; =UNK_020FF49C -// add r1, sp, #0x14 -// bl FUN_02019150 -// mov r0, #0xd0 -// str r0, [sp, #0x0] -// mov r0, #0x90 -// mov r2, #0x0 -// str r0, [sp, #0x4] -// add r0, sp, #0x14 -// mov r1, #0xf -// add r3, r2, #0x0 -// bl FUN_020196F4 -// ldr r2, _0208ABF8 ; =0x000001F7 -// add r0, sp, #0x14 -// mov r1, #0x0 -// mov r3, #0x2 -// bl FUN_0200CCA4 -// ldr r0, [sp, #0xc] -// mov r1, #0x3 -// add r2, r4, #0x0 -// bl ReadMsgDataIntoString -// mov r1, #0x0 -// str r1, [sp, #0x0] -// str r1, [sp, #0x4] -// add r0, sp, #0x14 -// add r2, r4, #0x0 -// add r3, r1, #0x0 -// str r1, [sp, #0x8] -// bl AddTextPrinterParameterized -// add r0, r4, #0x0 -// bl String_dtor -// bl FUN_0201E788 -// mov r0, #0x0 -// bl FUN_0200E394 -// mov r0, #0x1 -// bl FUN_0200E394 -// mov r0, #0x0 -// mov r1, #0x3f -// mov r2, #0x3 -// bl FUN_0200A274 -// bl FUN_02032DAC -// mov r4, #0x1 -// _0208AB58: -// bl HandleDSLidAction -// bl FUN_0202FB80 -// bl FUN_02033678 -// cmp r0, #0x0 -// bne _0208AB72 -// add r0, r4, #0x0 -// add r1, r4, #0x0 -// bl OS_WaitIrq -// b _0208AB58 -// _0208AB72: -// ldr r5, _0208AC04 ; =0x04000130 -// ldr r4, _0208AC08 ; =0x027FFFA8 -// ldr r7, _0208AC0C ; =0x00002FFF -// mov r6, #0x1 -// _0208AB7A: -// bl HandleDSLidAction -// ldrh r1, [r5, #0x0] -// ldrh r0, [r4, #0x0] -// orr r1, r0 -// ldr r0, _0208AC0C ; =0x00002FFF -// eor r0, r1 -// and r0, r7 -// lsl r0, r0, #0x10 -// lsr r0, r0, #0x10 -// tst r0, r6 -// bne _0208AB9C -// mov r0, #0x1 -// add r1, r0, #0x0 -// bl OS_WaitIrq -// b _0208AB7A -// _0208AB9C: -// ldr r1, _0208AC10 ; =0x00007FFF -// mov r0, #0x0 -// bl FUN_0200E3A0 -// ldr r1, _0208AC10 ; =0x00007FFF -// mov r0, #0x1 -// bl FUN_0200E3A0 -// add r0, sp, #0x14 -// bl FUN_02019178 -// ldr r0, [sp, #0xc] -// bl DestroyMsgData -// ldr r0, [sp, #0x10] -// bl FreeToHeap -// mov r0, #0x0 -// bl OS_ResetSystem -// _0208ABC4: -// add sp, #0x24 -// pop {r4-r7, pc} -// .balign 4 -// _0208ABC8: .word sErrorMessagePrinterLock -// _0208ABCC: .word UNK_020FF4A4 -// _0208ABD0: .word FUN_0208A998 -// _0208ABD4: .word 0xFFFFE0FF -// _0208ABD8: .word 0x04001000 -// _0208ABDC: .word gMain + 0x60 -// _0208ABE0: .word 0x04000050 -// _0208ABE4: .word 0x04001050 -// _0208ABE8: .word 0xFFFF1FFF -// _0208ABEC: .word UNK_020FF4D8 -// _0208ABF0: .word UNK_020FF4AC -// _0208ABF4: .word UNK_020FF4BC -// _0208ABF8: .word 0x000001F7 -// _0208ABFC: .word 0x00006C21 -// _0208AC00: .word UNK_020FF49C -// _0208AC04: .word 0x04000130 -// _0208AC08: .word 0x027FFFA8 -// _0208AC0C: .word 0x00002FFF -// _0208AC10: .word 0x00007FFF - -THUMB_FUNC void PrintErrorMessageAndReset() { - - struct StructPrintErrorMessage { - u32 *unk00; - u32 unk04[4]; - } data; - - if (sErrorMessagePrinterLock != 1) { - sErrorMessagePrinterLock = 1; - OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN)); - OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN)); - - - FUN_020166C8(UNK_020FF4A4, 1, 1, 0); - FUN_0200E3A0(PM_LCD_TOP,0); - FUN_0200E3A0(PM_LCD_BOTTOM,0); - - OS_DisableIrqMask(1); - OS_SetIrqFunction(1, &FUN_0208A998); - OS_EnableIrqMask(1); - - - Main_SetVBlankIntrCB(NULL, NULL); - - FUN_02015F34(NULL, NULL); - FUN_0201E6D8(); - FUN_0201E740(); - - - reg_GX_DISPCNT &= 0xFFFFE0FF; - reg_GXS_DB_DISPCNT &= 0xFFFFE0FF; - - FUN_0201669C(4, 8); - - - gMain.unk65 = 0; - FUN_0201E7A0(); - - - reg_G2_BLDCNT = 0; - reg_G2S_DB_BLDCNT = 0; - reg_GX_DISPCNT &= 0xFFFF1FFF; - reg_GXS_DB_DISPCNT &= 0xFFFF1FFF; - - FUN_0201E66C(UNK_020FF4D8); - data.unk00 = FUN_02016B94(0); - FUN_02016BBC(UNK_020FF4AC); - - FUN_02016C18(data.unk00, 0, UNK_020FF4BC, 0); - FUN_02018744(data.unk00, 0); - - FUN_0200CB00(data.unk00, 0, 503, 2, 0, param5); // don't match - - - FUN_02002ED0(0, 0x20, 0); - FUN_02017F18(0, 0x20, 0, 0); - FUN_02017FE4(0, 0x6C21); - FUN_02017FE4(4, 0x6C21); - - struct MsgData *msg_data = NewMsgDataFromNarc(1, 0x1a, 0xc8, 0); - struct String *str = String_ctor(6 << 6, 0); - - FUN_0201BD5C(); - FUN_02019150(data.unk00, data.unk04, UNK_020FF49C); - FUN_020196F4(data.unk04, 15, 0, 0, 0xd0, 0x90); - FUN_0200CCA4(data.unk04, 0, 0x1f7, 2); - - ReadMsgDataIntoString(msg_data, 3, str); - - AddTextPrinterParameterized((u32)data.unk04, 0, (const u16 *)str, 0, 0, 0, NULL); - - String_dtor(str); - FUN_0201E788(); - FUN_0200E394(0); - FUN_0200E394(1); - FUN_0200A274(0, 0x3f, 3); - FUN_02032DAC(); - - lid:HandleDSLidAction(); - FUN_0202FB80(); - if (!FUN_02033678()) { - OS_WaitIrq(1, 1); - goto lid; - } - - - lid2:HandleDSLidAction(); - if (!((u16)(((reg_PAD_KEYINPUT | *(vu16 *)HW_BUTTON_XY_BUF) ^ 0x2FFF) & 0x2FFF) & 1)) { - OS_WaitIrq(1,1); - goto lid2; - } - - - FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); - FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); - - FUN_02019178(data.unk04); - - DestroyMsgData(msg_data); - FreeToHeap(data.unk00); - - OS_ResetSystem(0); - } -}
\ No newline at end of file diff --git a/include/unk_0208A998.h b/include/unk_0208A998.h new file mode 100644 index 00000000..a3266398 --- /dev/null +++ b/include/unk_0208A998.h @@ -0,0 +1,39 @@ +#ifndef POKEDIAMOND_ERROR_MESSAGE_RESET_H +#define POKEDIAMOND_ERROR_MESSAGE_RESET_H + +#include "global.h" +#include "heap.h" +#include "SPI_pm.h" +#include "game_init.h" +#include "msgdata.h" +#include "text.h" + + + +struct GraphicsBanks +{ + s32 bg; + s32 bgextpltt; + s32 subbg; + s32 subbgextpltt; + s32 obj; + s32 objextpltt; + s32 subobj; + s32 subobjextpltt; + s32 tex; + s32 pltt; +}; + + +struct GraphicsModes { + u32 mode1; + u32 mode2; + u32 mode3; + u32 mode4; +}; + + +THUMB_FUNC void FUN_0208A998(); +THUMB_FUNC void PrintErrorMessageAndReset(); + +#endif //POKEDIAMOND_ERROR_MESSAGE_RESET_H
\ No newline at end of file |