From 351ee943db92ac091197512921a0e58b286b7bb4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 12:22:36 -0500 Subject: [PATCH 01/49] Fame Checker START --- asm/fame_checker.s | 57 ---------------------------------------------- ld_script.txt | 1 + src/fame_checker.c | 51 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 57 deletions(-) create mode 100644 src/fame_checker.c diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 9e352e8ae..d0236d696 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,63 +5,6 @@ .text - thumb_func_start sub_812C380 -sub_812C380: @ 812C380 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_812C380 - - thumb_func_start sub_812C394 -sub_812C394: @ 812C394 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_812C394 - - thumb_func_start sub_812C3AC -sub_812C3AC: @ 812C3AC - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0 - bl SetVBlankCallback - ldr r4, _0812C3F0 @ =gUnknown_203B0FC - movs r0, 0x24 - bl AllocZeroed - str r0, [r4] - str r5, [r0] - movs r1, 0 - strb r1, [r0, 0x9] - ldr r0, [r4] - strb r1, [r0, 0xA] - ldr r0, [r4] - strb r1, [r0, 0xB] - ldr r1, [r4] - adds r1, 0x23 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0xC7 - bl PlaySE - ldr r0, _0812C3F4 @ =sub_812C3F8 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812C3F0: .4byte gUnknown_203B0FC -_0812C3F4: .4byte sub_812C3F8 - thumb_func_end sub_812C3AC - thumb_func_start sub_812C3F8 sub_812C3F8: @ 812C3F8 push {r4-r6,lr} diff --git a/ld_script.txt b/ld_script.txt index 67f21c48f..e821a34ca 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -226,6 +226,7 @@ SECTIONS { asm/union_room_chat.o(.text); asm/help_system_812B1E0.o(.text); src/quest_log_battle.o(.text); + src/fame_checker.o(.text); asm/fame_checker.o(.text); asm/menu2.o(.text); asm/oak_speech.o(.text); diff --git a/src/fame_checker.c b/src/fame_checker.c new file mode 100644 index 000000000..889b96214 --- /dev/null +++ b/src/fame_checker.c @@ -0,0 +1,51 @@ +#include "global.h" +#include "constants/songs.h" +#include "palette.h" +#include "task.h" +#include "malloc.h" +#include "main.h" +#include "sound.h" + +struct FameCheckerData +{ + u32 unk_00; + u8 filler_04[5]; + u8 unk_09; + u8 unk_0A; + u8 unk_0B; + u8 filler_0C[23]; + u8 unk_23_0:1; + u8 unk_23_1:7; +}; + +EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; + +void sub_812C3F8(void); + +void sub_812C380(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_812C394(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_812C3AC(u32 a0) +{ + SetVBlankCallback(NULL); + gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); + gUnknown_203B0FC->unk_00 = a0; + gUnknown_203B0FC->unk_09 = 0; + gUnknown_203B0FC->unk_0A = 0; + gUnknown_203B0FC->unk_0B = 0; + gUnknown_203B0FC->unk_23_0 = FALSE; + PlaySE(SE_W202); + SetMainCallback2(sub_812C3F8); +} From 5a262eec73614998a87f3466a0c0924c7317be36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 13:08:18 -0500 Subject: [PATCH 02/49] sub_812C3F8 --- asm/fame_checker.s | 241 --------------------------------------------- include/bg.h | 6 +- src/bg.c | 18 ++-- src/fame_checker.c | 118 +++++++++++++++++++++- sym_ewram.txt | 18 +--- 5 files changed, 130 insertions(+), 271 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index d0236d696..949de51f9 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,247 +5,6 @@ .text - thumb_func_start sub_812C3F8 -sub_812C3F8: @ 812C3F8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - ldr r0, _0812C41C @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x7 - bls _0812C410 - b _0812C626 -_0812C410: - lsls r0, 2 - ldr r1, _0812C420 @ =_0812C424 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0812C41C: .4byte gMain -_0812C420: .4byte _0812C424 - .align 2, 0 -_0812C424: - .4byte _0812C444 - .4byte _0812C450 - .4byte _0812C456 - .4byte _0812C4C0 - .4byte _0812C540 - .4byte _0812C578 - .4byte _0812C5A0 - .4byte _0812C5D4 -_0812C444: - movs r0, 0 - bl SetVBlankCallback - bl sub_812D420 - b _0812C5BE -_0812C450: - bl sub_812D558 - b _0812C5BE -_0812C456: - ldr r6, _0812C4B0 @ =gUnknown_203B0F0 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r6] - ldr r1, _0812C4B4 @ =gUnknown_203B0F4 - mov r8, r1 - movs r0, 0x80 - lsls r0, 5 - bl AllocZeroed - mov r1, r8 - str r0, [r1] - ldr r5, _0812C4B8 @ =gUnknown_203B0F8 - adds r0, r4, 0 - bl AllocZeroed - str r0, [r5] - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0812C4BC @ =gUnknown_845FBF4 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r1, [r6] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, [r5] - movs r0, 0x2 - bl SetBgTilemapBuffer - mov r0, r8 - ldr r1, [r0] - movs r0, 0x1 - bl SetBgTilemapBuffer - bl sub_812D594 - b _0812C5BE - .align 2, 0 -_0812C4B0: .4byte gUnknown_203B0F0 -_0812C4B4: .4byte gUnknown_203B0F4 -_0812C4B8: .4byte gUnknown_203B0F8 -_0812C4BC: .4byte gUnknown_845FBF4 -_0812C4C0: - ldr r1, _0812C52C @ =gUnknown_8E9F260 - movs r2, 0xA5 - lsls r2, 5 - movs r0, 0x3 - movs r3, 0 - bl LoadBgTiles - ldr r1, _0812C530 @ =gUnknown_8EA0700 - movs r5, 0x20 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect - ldr r4, _0812C534 @ =gUnknown_8E9F220 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - adds r4, 0x20 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _0812C538 @ =gUnknown_8EA0F00 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBufferRect - ldr r1, _0812C53C @ =gUnknown_845C600 - str r5, [sp] - str r5, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x1E - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x2 - bl stdpal_get - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - b _0812C5BE - .align 2, 0 -_0812C52C: .4byte gUnknown_8E9F260 -_0812C530: .4byte gUnknown_8EA0700 -_0812C534: .4byte gUnknown_8E9F220 -_0812C538: .4byte gUnknown_8EA0F00 -_0812C53C: .4byte gUnknown_845C600 -_0812C540: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812C626 - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _0812C5BE -_0812C578: - ldr r0, _0812C598 @ =gUnknown_845FC04 - bl InitWindows - bl DeactivateAllTextPrinters - bl sub_812CEC0 - ldr r4, _0812C59C @ =gUnknown_203B100 - movs r0, 0x88 - bl AllocZeroed - str r0, [r4] - bl sub_812DB28 - b _0812C5BE - .align 2, 0 -_0812C598: .4byte gUnknown_845FC04 -_0812C59C: .4byte gUnknown_203B100 -_0812C5A0: - bl sub_812C648 - movs r0, 0 - bl sub_812D1A8 - bl sub_812CE9C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0812C5BE: - ldr r1, _0812C5D0 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0812C626 - .align 2, 0 -_0812C5D0: .4byte gMain -_0812C5D4: - bl sub_812D584 - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0x7 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x8 - bl SetGpuReg - ldr r0, _0812C634 @ =sub_812C380 - bl SetVBlankCallback - ldr r0, _0812C638 @ =gUnknown_203B0FC - ldr r1, [r0] - movs r4, 0 - movs r0, 0 - strh r0, [r1, 0x4] - bl sub_812E000 - movs r0, 0x1 - movs r1, 0x4 - bl sub_812E178 - ldr r0, _0812C63C @ =sub_812C664 - movs r1, 0x8 - bl CreateTask - ldr r0, _0812C640 @ =sub_812C394 - bl SetMainCallback2 - ldr r0, _0812C644 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - strb r4, [r0] -_0812C626: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812C634: .4byte sub_812C380 -_0812C638: .4byte gUnknown_203B0FC -_0812C63C: .4byte sub_812C664 -_0812C640: .4byte sub_812C394 -_0812C644: .4byte gMain - thumb_func_end sub_812C3F8 - thumb_func_start sub_812C648 sub_812C648: @ 812C648 push {lr} diff --git a/include/bg.h b/include/bg.h index 55927a5a4..003ffc916 100644 --- a/include/bg.h +++ b/include/bg.h @@ -77,9 +77,9 @@ void UnsetBgTilemapBuffer(u8 bg); void* GetBgTilemapBuffer(u8 bg); void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset); void CopyBgTilemapBufferToVram(u8 bg); -void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height); -void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); -void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2); +void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height); +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette); +void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2); void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height); void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette); void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta); diff --git a/src/bg.c b/src/bg.c index df91e9d4a..5cbd7658e 100644 --- a/src/bg.c +++ b/src/bg.c @@ -391,7 +391,7 @@ void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numT } } #else -__attribute__((naked)) +NAKED void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates) { asm(".syntax unified\n\ @@ -634,7 +634,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void) return FALSE; } #else -__attribute__((naked)) +NAKED bool8 IsDma3ManagerBusyWithBgCopy(void) { asm("push {r4-r7,lr}\n\ @@ -1065,7 +1065,7 @@ void CopyBgTilemapBufferToVram(u8 bg) } } -void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height) +void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height) { u16 destX16; u16 destY16; @@ -1077,7 +1077,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u { case 0: { - u16 * srcCopy = src; + const u16 * srcCopy = src; for (destY16 = destY; destY16 < (destY + height); destY16++) { for (destX16 = destX; destX16 < (destX + width); destX16++) @@ -1089,7 +1089,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u } case 1: { - u8 * srcCopy = src; + const u8 * srcCopy = src; mode = GetBgMetricAffineMode(bg, 0x1); for (destY16 = destY; destY16 < (destY + height); destY16++) { @@ -1104,7 +1104,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u } } -void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) { CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0); } @@ -1151,8 +1151,8 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid } } }*/ -__attribute__((naked)) -void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) +NAKED +void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) { asm("push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -1598,7 +1598,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal *dest = test; } #else -__attribute__((naked)) +NAKED void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2) { asm("push {r4-r6,lr}\n\ diff --git a/src/fame_checker.c b/src/fame_checker.c index 889b96214..d311ecb94 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,15 +1,21 @@ #include "global.h" #include "constants/songs.h" +#include "bg.h" +#include "gpu_regs.h" #include "palette.h" #include "task.h" #include "malloc.h" #include "main.h" #include "sound.h" +#include "text.h" +#include "window.h" +#include "text_window.h" struct FameCheckerData { u32 unk_00; - u8 filler_04[5]; + u16 unk_04; + u8 filler_06[3]; u8 unk_09; u8 unk_0A; u8 unk_0B; @@ -18,9 +24,40 @@ struct FameCheckerData u8 unk_23_1:7; }; +struct FameCheckerData2 +{ + u8 filler_00[0x88]; +}; + +EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; +EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; +EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; +EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; +EWRAM_DATA u32 gUnknown_203B104 = 0; void sub_812C3F8(void); +void sub_812C648(void); +void sub_812C664(u8 taskId); +void sub_812CE9C(void); +void sub_812CEC0(void); +void sub_812D1A8(u8 a0); +void sub_812D420(void); +void sub_812D558(void); +void sub_812D584(void); +void sub_812D594(void); +void sub_812DB28(void); +void sub_812E000(void); +void sub_812E178(u8 a0, s16 a1); + +extern const struct BgTemplate gUnknown_845FBF4[4]; +extern const struct WindowTemplate gUnknown_845FC04[]; +extern const u16 gUnknown_845C600[0x40]; + +extern const u16 gUnknown_8E9F220[0x30]; +extern const u16 gUnknown_8E9F260[0xa50]; +extern const u16 gUnknown_8EA0700[0x400]; +extern const u16 gUnknown_8EA0F00[0x400]; void sub_812C380(void) { @@ -49,3 +86,82 @@ void sub_812C3AC(u32 a0) PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); } + +void sub_812C3F8(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + sub_812D420(); + gMain.state++; + break; + case 1: + sub_812D558(); + gMain.state++; + break; + case 2: + gUnknown_203B0F0 = AllocZeroed(0x800); + gUnknown_203B0F4 = AllocZeroed(0x1000); + gUnknown_203B0F8 = AllocZeroed(0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); + SetBgTilemapBuffer(3, gUnknown_203B0F0); + SetBgTilemapBuffer(2, gUnknown_203B0F8); + SetBgTilemapBuffer(1, gUnknown_203B0F4); + sub_812D594(); + gMain.state++; + break; + case 3: + LoadBgTiles(3, gUnknown_8E9F260, sizeof(gUnknown_8E9F260), 0); + CopyToBgTilemapBufferRect(3, gUnknown_8EA0700, 0, 0, 32, 32); + LoadPalette(gUnknown_8E9F220 + 0x00, 0x00, 0x40); + LoadPalette(gUnknown_8E9F220 + 0x10, 0x10, 0x20); + CopyToBgTilemapBufferRect(2, gUnknown_8EA0F00, 0, 0, 32, 32); + CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_845C600, 30, 0, 32, 32, 0x11); + LoadPalette(stdpal_get(2), 0xF0, 0x20); + gMain.state++; + break; + case 4: + if (IsDma3ManagerBusyWithBgCopy() != TRUE) + { + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + gMain.state++; + } + break; + case 5: + InitWindows(gUnknown_845FC04); + DeactivateAllTextPrinters(); + sub_812CEC0(); + gUnknown_203B100 = AllocZeroed(sizeof(struct FameCheckerData2)); + sub_812DB28(); + gMain.state++; + break; + case 6: + sub_812C648(); + sub_812D1A8(0); + sub_812CE9C(); + BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); + gMain.state++; + break; + case 7: + sub_812D584(); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); + SetGpuReg(REG_OFFSET_BLDY, 0x08); + SetVBlankCallback(sub_812C380); + gUnknown_203B0FC->unk_04 = 0; + sub_812E000(); + sub_812E178(1, 4); + CreateTask(sub_812C664, 0x08); + SetMainCallback2(sub_812C394); + gMain.state = 0; + break; + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 16a1e7ddd..83fdcf763 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1556,23 +1556,7 @@ gUnknown_203B0EC: @ 203B0EC gUnknown_203B0EE: @ 203B0EE .space 0x2 -gUnknown_203B0F0: @ 203B0F0 - .space 0x4 - -gUnknown_203B0F4: @ 203B0F4 - .space 0x4 - -gUnknown_203B0F8: @ 203B0F8 - .space 0x4 - -gUnknown_203B0FC: @ 203B0FC - .space 0x4 - -gUnknown_203B100: @ 203B100 - .space 0x4 - -gUnknown_203B104: @ 203B104 - .space 0x4 + .include "src/fame_checker.o" gUnknown_203B108: @ 203B108 .space 0x4 From 2571ba516cb0f21c19405e943c53eebf5d19ab7a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 15:51:55 -0500 Subject: [PATCH 03/49] through sub_812C694 --- asm/fame_checker.s | 324 --------------- common_syms/fame_checker.txt | 2 + data/data_83FECCC.s | 773 ----------------------------------- data/data_845FD54.s | 686 +++++++++++++++++++++++++++++++ data/fame_checker.s | 92 +++++ include/graphics.h | 7 + include/item_menu.h | 1 + ld_script.txt | 3 + src/fame_checker.c | 136 +++++- sym_common.txt | 6 +- 10 files changed, 918 insertions(+), 1112 deletions(-) create mode 100644 common_syms/fame_checker.txt create mode 100644 data/data_845FD54.s create mode 100644 data/fame_checker.s diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 949de51f9..059b19291 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,330 +5,6 @@ .text - thumb_func_start sub_812C648 -sub_812C648: @ 812C648 - push {lr} - ldr r0, _0812C65C @ =gUnknown_845FB9C - bl LoadSpriteSheets - ldr r0, _0812C660 @ =gUnknown_845FBDC - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_0812C65C: .4byte gUnknown_845FB9C -_0812C660: .4byte gUnknown_845FBDC - thumb_func_end sub_812C648 - - thumb_func_start sub_812C664 -sub_812C664: @ 812C664 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0812C688 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812C684 - ldr r0, _0812C68C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _0812C690 @ =sub_812C694 - str r0, [r1] -_0812C684: - pop {r0} - bx r0 - .align 2, 0 -_0812C688: .4byte gPaletteFade -_0812C68C: .4byte gTasks -_0812C690: .4byte sub_812C694 - thumb_func_end sub_812C664 - - thumb_func_start sub_812C694 -sub_812C694: @ 812C694 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - ldr r0, _0812C714 @ =gTasks - adds r7, r1, r0 - adds r0, 0x8 - adds r1, r0 - mov r8, r1 - ldr r0, _0812C718 @ =sub_812E110 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0812C6C0 - b _0812C8EA -_0812C6C0: - bl RunTextPrinters - ldr r0, _0812C71C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0812C6E8 - ldr r0, _0812C720 @ =gUnknown_203B0FC - ldr r2, [r0] - ldrb r1, [r2, 0x7] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0812C6E8 - ldr r1, [r2] - ldr r0, _0812C724 @ =sub_8107EB8 - cmp r1, r0 - beq _0812C6E8 - b _0812C8DA -_0812C6E8: - ldr r0, _0812C71C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0812C7DC - bl sub_812E064 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - bl sub_812C8F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812C728 - movs r0, 0xCB - bl PlaySE - b _0812C8EA - .align 2, 0 -_0812C714: .4byte gTasks -_0812C718: .4byte sub_812E110 -_0812C71C: .4byte gMain -_0812C720: .4byte gUnknown_203B0FC -_0812C724: .4byte sub_8107EB8 -_0812C728: - ldr r5, _0812C7D0 @ =gUnknown_203B0FC - ldr r0, [r5] - ldrb r0, [r0, 0x7] - lsrs r0, 2 - subs r0, 0x1 - cmp r4, r0 - bne _0812C738 - b _0812C8EA -_0812C738: - movs r0, 0xCB - bl PlaySE - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - movs r0, 0x3 - bl sub_812CEE0 - movs r0, 0x2 - movs r1, 0x4 - bl sub_812E178 - movs r0, 0x1 - movs r1, 0x5 - bl sub_812E178 - movs r0, 0x1 - bl sub_812D0F4 - ldr r0, [r5] - adds r0, 0xC - adds r0, r4 - ldrb r0, [r0] - bl sub_812D888 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0xC] - ldr r4, _0812C7D4 @ =gSprites - movs r0, 0xC - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0xF0 - strh r6, [r0, 0x24] - movs r3, 0xC - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r5, 0x1 - strh r5, [r0, 0x2E] - bl sub_812D7E4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0xE] - movs r0, 0xE - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r6, [r0, 0x24] - movs r3, 0xE - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r5, [r0, 0x2E] - ldr r0, _0812C7D8 @ =sub_812C9BC - str r0, [r7] - b _0812C8EA - .align 2, 0 -_0812C7D0: .4byte gUnknown_203B0FC -_0812C7D4: .4byte gSprites -_0812C7D8: .4byte sub_812C9BC -_0812C7DC: - movs r6, 0x1 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0812C8C4 - movs r0, 0 - bl ListMenuHandleInput - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0812C824 @ =gUnknown_203B0FC - ldr r0, [r0] - ldrb r1, [r0, 0x7] - lsrs r0, r1, 2 - subs r0, 0x1 - cmp r4, r0 - beq _0812C8DA - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812C828 - movs r0, 0x2 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0812C8EA - bl sub_812D6B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812C8EA - bl sub_812CD3C - b _0812C8EA - .align 2, 0 -_0812C824: .4byte gUnknown_203B0FC -_0812C828: - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0812C8EA - movs r0, 0x5 - bl PlaySE - movs r1, 0xA - ldrsh r0, [r7, r1] - bl sub_812D724 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x8] - movs r4, 0 -_0812C846: - movs r3, 0xA - ldrsh r0, [r7, r3] - cmp r4, r0 - beq _0812C85E - ldr r0, _0812C8B4 @ =gUnknown_203B0FC - ldr r0, [r0] - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_812CEFC -_0812C85E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812C846 - ldr r1, _0812C8B8 @ =gUnknown_3005EC8 - movs r0, 0xFF - strb r0, [r1] - movs r0, 0 - bl sub_812E4A4 - movs r0, 0x2 - bl sub_812D0F4 - ldr r2, _0812C8BC @ =gSprites - ldr r0, _0812C8B4 @ =gUnknown_203B0FC - ldr r0, [r0] - movs r3, 0xA - ldrsh r1, [r7, r3] - adds r0, 0x1D - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x30 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - beq _0812C8A8 - adds r0, r5, 0 - bl sub_812CE04 - mov r3, r8 - ldrb r0, [r3, 0x2] - bl sub_812DA14 -_0812C8A8: - bl sub_812E048 - ldr r0, _0812C8C0 @ =sub_812CAD8 - str r0, [r7] - b _0812C8EA - .align 2, 0 -_0812C8B4: .4byte gUnknown_203B0FC -_0812C8B8: .4byte gUnknown_3005EC8 -_0812C8BC: .4byte gSprites -_0812C8C0: .4byte sub_812CAD8 -_0812C8C4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812C8E4 - adds r0, r5, 0 - bl sub_812C8F8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0812C8EA -_0812C8DA: - ldr r0, _0812C8E0 @ =sub_812CF3C - str r0, [r7] - b _0812C8EA - .align 2, 0 -_0812C8E0: .4byte sub_812CF3C -_0812C8E4: - movs r0, 0 - bl ListMenuHandleInput -_0812C8EA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_812C694 - thumb_func_start sub_812C8F8 sub_812C8F8: @ 812C8F8 push {r4,r5,lr} diff --git a/common_syms/fame_checker.txt b/common_syms/fame_checker.txt new file mode 100644 index 000000000..22330180e --- /dev/null +++ b/common_syms/fame_checker.txt @@ -0,0 +1,2 @@ +gUnknown_3005EB0 +gUnknown_3005EC8 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index dfa4bee5d..ed542acc9 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -3549,776 +3549,3 @@ gUnknown_845C5BC:: @ 845C5BC gUnknown_845C5CE:: @ 845C5CE .incbin "baserom.gba", 0x45C5CE, 0x32 - -gUnknown_845C600:: @ 845C600 - .incbin "baserom.gba", 0x45C600, 0x1720 - -gUnknown_845DD20:: @ 845DD20 - .incbin "baserom.gba", 0x45DD20, 0x820 - -gUnknown_845E540:: @ 845E540 - .incbin "baserom.gba", 0x45E540, 0x820 - -gUnknown_845ED60:: @ 845ED60 - .incbin "baserom.gba", 0x45ED60, 0x820 - -gUnknown_845F580:: @ 845F580 - .incbin "baserom.gba", 0x45F580, 0x40 - -gUnknown_845F5C0:: @ 845F5C0 - .incbin "baserom.gba", 0x45F5C0, 0x20 - -gUnknown_845F5E0:: @ 845F5E0 - .incbin "baserom.gba", 0x45F5E0, 0x3 - -gUnknown_845F5E3:: @ 845F5E3 - .incbin "baserom.gba", 0x45F5E3, 0x3 - -gUnknown_845F5E6:: @ 845F5E6 - .incbin "baserom.gba", 0x45F5E6, 0x4 - -gUnknown_845F5EA:: @ 845F5EA - .incbin "baserom.gba", 0x45F5EA, 0x22 - -gUnknown_845F60C:: @ 845F60C - .incbin "baserom.gba", 0x45F60C, 0x10 - -gUnknown_845F61C:: @ 845F61C - .incbin "baserom.gba", 0x45F61C, 0x20 - -gUnknown_845F63C:: @ 845F63C - .incbin "baserom.gba", 0x45F63C, 0x80 - -gUnknown_845F6BC:: @ 845F6BC - .incbin "baserom.gba", 0x45F6BC, 0x180 - -gUnknown_845F83C:: @ 845F83C - .incbin "baserom.gba", 0x45F83C, 0x60 - -gUnknown_845F89C:: @ 845F89C - .incbin "baserom.gba", 0x45F89C, 0x180 - -gUnknown_845FA1C:: @ 845FA1C - .incbin "baserom.gba", 0x45FA1C, 0x180 - -gUnknown_845FB9C:: @ 845FB9C - .incbin "baserom.gba", 0x45FB9C, 0x40 - -gUnknown_845FBDC:: @ 845FBDC - .incbin "baserom.gba", 0x45FBDC, 0x18 - -gUnknown_845FBF4:: @ 845FBF4 - .incbin "baserom.gba", 0x45FBF4, 0x10 - -gUnknown_845FC04:: @ 845FC04 - .incbin "baserom.gba", 0x45FC04, 0x40 - -gUnknown_845FC44:: @ 845FC44 - .incbin "baserom.gba", 0x45FC44, 0x34 - -gUnknown_845FC78:: @ 845FC78 - .incbin "baserom.gba", 0x45FC78, 0x40 - -gUnknown_845FCB8:: @ 845FCB8 - .incbin "baserom.gba", 0x45FCB8, 0x2C - -gUnknown_845FCE4:: @ 845FCE4 - .incbin "baserom.gba", 0x45FCE4, 0x18 - -gUnknown_845FCFC:: @ 845FCFC - .incbin "baserom.gba", 0x45FCFC, 0x18 - -gUnknown_845FD14:: @ 845FD14 - .incbin "baserom.gba", 0x45FD14, 0x18 - -gUnknown_845FD2C:: @ 845FD2C - .incbin "baserom.gba", 0x45FD2C, 0x18 - -gUnknown_845FD44:: @ 845FD44 - .incbin "baserom.gba", 0x45FD44, 0x10 - -gUnknown_845FD54:: @ 845FD54 - .incbin "baserom.gba", 0x45FD54, 0x814 - -gUnknown_8460568:: @ 8460568 - .incbin "baserom.gba", 0x460568, 0x80 - -gUnknown_84605E8:: @ 84605E8 - .incbin "baserom.gba", 0x4605E8, 0x5C0 - -gUnknown_8460BA8:: @ 8460BA8 - .incbin "baserom.gba", 0x460BA8, 0xFC - -gUnknown_8460CA4:: @ 8460CA4 - .incbin "baserom.gba", 0x460CA4, 0x44 - -gUnknown_8460CE8:: @ 8460CE8 - .incbin "baserom.gba", 0x460CE8, 0xAC - -gUnknown_8460D94:: @ 8460D94 - .incbin "baserom.gba", 0x460D94, 0xA0 - -gUnknown_8460E34:: @ 8460E34 - .incbin "baserom.gba", 0x460E34, 0xA0 - -gUnknown_8460ED4:: @ 8460ED4 - .incbin "baserom.gba", 0x460ED4, 0x40 - -gUnknown_8460F14:: @ 8460F14 - .incbin "baserom.gba", 0x460F14, 0x6E8 - -gUnknown_84615FC:: @ 84615FC - .incbin "baserom.gba", 0x4615FC, 0x40 - -gUnknown_846163C:: @ 846163C - .incbin "baserom.gba", 0x46163C, 0x698 - -gUnknown_8461CD4:: @ 8461CD4 - .incbin "baserom.gba", 0x461CD4, 0x40 - -gUnknown_8461D14:: @ 8461D14 - .incbin "baserom.gba", 0x461D14, 0x698 - -gUnknown_84623AC:: @ 84623AC - .incbin "baserom.gba", 0x4623AC, 0x40 - -gUnknown_84623EC:: @ 84623EC - .incbin "baserom.gba", 0x4623EC, 0xA6C - -gUnknown_8462E58:: @ 8462E58 - .incbin "baserom.gba", 0x462E58, 0x5C - -gUnknown_8462EB4:: @ 8462EB4 - .incbin "baserom.gba", 0x462EB4, 0xC - -gUnknown_8462EC0:: @ 8462EC0 - .incbin "baserom.gba", 0x462EC0, 0x8 - -gUnknown_8462EC8:: @ 8462EC8 - .incbin "baserom.gba", 0x462EC8, 0x8 - -gUnknown_8462ED0:: @ 8462ED0 - .incbin "baserom.gba", 0x462ED0, 0x8 - -gUnknown_8462ED8:: @ 8462ED8 - .incbin "baserom.gba", 0x462ED8, 0x10 - -gUnknown_8462EE8:: @ 8462EE8 - .incbin "baserom.gba", 0x462EE8, 0x4 - -gUnknown_8462EEC:: @ 8462EEC - .incbin "baserom.gba", 0x462EEC, 0x4 - -gUnknown_8462EF0:: @ 8462EF0 - .incbin "baserom.gba", 0x462EF0, 0xC - -gUnknown_8462EFC:: @ 8462EFC - .incbin "baserom.gba", 0x462EFC, 0x18 - -gUnknown_8462F14:: @ 8462F14 - .incbin "baserom.gba", 0x462F14, 0x8 - -gUnknown_8462F1C:: @ 8462F1C - .incbin "baserom.gba", 0x462F1C, 0x8 - -gUnknown_8462F24:: @ 8462F24 - .incbin "baserom.gba", 0x462F24, 0x2C - -gUnknown_8462F50:: @ 8462F50 - .incbin "baserom.gba", 0x462F50, 0xDC - -gUnknown_846302C:: @ 846302C - .incbin "baserom.gba", 0x46302C, 0x48 - -gUnknown_8463074:: @ 8463074 - .incbin "baserom.gba", 0x463074, 0x18 - -gUnknown_846308C:: @ 846308C - .incbin "baserom.gba", 0x46308C, 0x4C - -gUnknown_84630D8:: @ 84630D8 - .incbin "baserom.gba", 0x4630D8, 0x4C - -gUnknown_8463124:: @ 8463124 - .incbin "baserom.gba", 0x463124, 0x10 - -gUnknown_8463134:: @ 8463134 - .incbin "baserom.gba", 0x463134, 0xC - -gUnknown_8463140:: @ 8463140 - .incbin "baserom.gba", 0x463140, 0x10 - -gUnknown_8463150:: @ 8463150 - .incbin "baserom.gba", 0x463150, 0x18 - -gUnknown_8463168:: @ 8463168 - .incbin "baserom.gba", 0x463168, 0x3 - -gUnknown_846316B:: @ 846316B - .incbin "baserom.gba", 0x46316B, 0x5 - -gUnknown_8463170:: @ 8463170 - .incbin "baserom.gba", 0x463170, 0x8 - -gUnknown_8463178:: @ 8463178 - .incbin "baserom.gba", 0x463178, 0x4 - -gUnknown_846317C:: @ 846317C - .incbin "baserom.gba", 0x46317C, 0x4 - -gUnknown_8463180:: @ 8463180 - .incbin "baserom.gba", 0x463180, 0x4 - -gUnknown_8463184:: @ 8463184 - .incbin "baserom.gba", 0x463184, 0xC - -gUnknown_8463190:: @ 8463190 - .incbin "baserom.gba", 0x463190, 0x50 - -gUnknown_84631E0:: @ 84631E0 - .incbin "baserom.gba", 0x4631E0, 0x8 - -gUnknown_84631E8:: @ 84631E8 - .incbin "baserom.gba", 0x4631E8, 0x30 - -gUnknown_8463218:: @ 8463218 - .incbin "baserom.gba", 0x463218, 0x8 - -gUnknown_8463220:: @ 8463220 - .incbin "baserom.gba", 0x463220, 0x18 - -gUnknown_8463238:: @ 8463238 - .incbin "baserom.gba", 0x463238, 0x24 - -gUnknown_846325C:: @ 846325C - .incbin "baserom.gba", 0x46325C, 0x48 - -gUnknown_84632A4:: @ 84632A4 - .incbin "baserom.gba", 0x4632A4, 0x18 - -gUnknown_84632BC:: @ 84632BC - .incbin "baserom.gba", 0x4632BC, 0x4 - -gUnknown_84632C0:: @ 84632C0 - .incbin "baserom.gba", 0x4632C0, 0x4 - -gUnknown_84632C4:: @ 84632C4 - .incbin "baserom.gba", 0x4632C4, 0x4 - -gUnknown_84632C8:: @ 84632C8 - .incbin "baserom.gba", 0x4632C8, 0x4 - -gUnknown_84632CC:: @ 84632CC - .incbin "baserom.gba", 0x4632CC, 0x4 - -gUnknown_84632D0:: @ 84632D0 - .incbin "baserom.gba", 0x4632D0, 0x4 - -gUnknown_84632D4:: @ 84632D4 - .incbin "baserom.gba", 0x4632D4, 0x4 - -gUnknown_84632D8:: @ 84632D8 - .incbin "baserom.gba", 0x4632D8, 0x18 - -gUnknown_84632F0:: @ 84632F0 - .incbin "baserom.gba", 0x4632F0, 0x18 - -gUnknown_8463308:: @ 8463308 - .incbin "baserom.gba", 0x463308, 0x20 - -gUnknown_8463328:: @ 8463328 - .incbin "baserom.gba", 0x463328, 0x70 - -gUnknown_8463398:: @ 8463398 - .incbin "baserom.gba", 0x463398, 0x40 - -gUnknown_84633D8:: @ 84633D8 - .incbin "baserom.gba", 0x4633D8, 0x44 - -gUnknown_846341C:: @ 846341C - .incbin "baserom.gba", 0x46341C, 0x20 - -gUnknown_846343C:: @ 846343C - .incbin "baserom.gba", 0x46343C, 0x128 - -gUnknown_8463564:: @ 8463564 - .incbin "baserom.gba", 0x463564, 0x1C - -gUnknown_8463580:: @ 8463580 - .incbin "baserom.gba", 0x463580, 0x140 - -gUnknown_84636C0:: @ 84636C0 - .incbin "baserom.gba", 0x4636C0, 0x20 - -gUnknown_84636E0:: @ 84636E0 - .incbin "baserom.gba", 0x4636E0, 0x20 - -gUnknown_8463700:: @ 8463700 - .incbin "baserom.gba", 0x463700, 0x20 - -gUnknown_8463720:: @ 8463720 - .incbin "baserom.gba", 0x463720, 0x20 - -gUnknown_8463740:: @ 8463740 - .incbin "baserom.gba", 0x463740, 0x12C - -gUnknown_846386C:: @ 846386C - .incbin "baserom.gba", 0x46386C, 0x120 - -gUnknown_846398C:: @ 846398C - .incbin "baserom.gba", 0x46398C, 0x18 - -gUnknown_84639A4:: @ 84639A4 - .incbin "baserom.gba", 0x4639A4, 0x8 - -gUnknown_84639AC:: @ 84639AC - .incbin "baserom.gba", 0x4639AC, 0x48 - -gUnknown_84639F4:: @ 84639F4 - .incbin "baserom.gba", 0x4639F4, 0x20 - -gUnknown_8463A14:: @ 8463A14 - .incbin "baserom.gba", 0x463A14, 0x68 - -gUnknown_8463A7C:: @ 8463A7C - .incbin "baserom.gba", 0x463A7C, 0x70 - -gUnknown_8463AEC:: @ 8463AEC - .incbin "baserom.gba", 0x463AEC, 0x10 - -gUnknown_8463AFC:: @ 8463AFC - .incbin "baserom.gba", 0x463AFC, 0x4 - -gUnknown_8463B00:: @ 8463B00 - .incbin "baserom.gba", 0x463B00, 0x20 - -gUnknown_8463B20:: @ 8463B20 - .incbin "baserom.gba", 0x463B20, 0x10 - -gUnknown_8463B30:: @ 8463B30 - .incbin "baserom.gba", 0x463B30, 0x10 - -gUnknown_8463B40:: @ 8463B40 - .incbin "baserom.gba", 0x463B40, 0x4 - -gUnknown_8463B44:: @ 8463B44 - .incbin "baserom.gba", 0x463B44, 0x20 - -gUnknown_8463B64:: @ 8463B64 - .incbin "baserom.gba", 0x463B64, 0x24 - -gUnknown_8463B88:: @ 8463B88 - .incbin "baserom.gba", 0x463B88, 0xF8 - -gUnknown_8463C80:: @ 8463C80 - .incbin "baserom.gba", 0x463C80, 0x1E0 - -gUnknown_8463E60:: @ 8463E60 - .incbin "baserom.gba", 0x463E60, 0x64 - -gUnknown_8463EC4:: @ 8463EC4 - .incbin "baserom.gba", 0x463EC4, 0x10 - -gUnknown_8463ED4:: @ 8463ED4 - .incbin "baserom.gba", 0x463ED4, 0x1C - -gUnknown_8463EF0:: @ 8463EF0 - .incbin "baserom.gba", 0x463EF0, 0xC - -gUnknown_8463EFC:: @ 8463EFC - .incbin "baserom.gba", 0x463EFC, 0x10 - -gUnknown_8463F0C:: @ 8463F0C - .incbin "baserom.gba", 0x463F0C, 0x18 - -gUnknown_8463F24:: @ 8463F24 - .incbin "baserom.gba", 0x463F24, 0x18 - -gUnknown_8463F3C:: @ 8463F3C - .incbin "baserom.gba", 0x463F3C, 0x20 - -gUnknown_8463F5C:: @ 8463F5C - .incbin "baserom.gba", 0x463F5C, 0x20 - -gUnknown_8463F7C:: @ 8463F7C - .incbin "baserom.gba", 0x463F7C, 0x20 - -gUnknown_8463F9C:: @ 8463F9C - .incbin "baserom.gba", 0x463F9C, 0x8 - -gUnknown_8463FA4:: @ 8463FA4 - .incbin "baserom.gba", 0x463FA4, 0x3 - -gUnknown_8463FA7:: @ 8463FA7 - .incbin "baserom.gba", 0x463FA7, 0x11 - -gUnknown_8463FB8:: @ 8463FB8 - .incbin "baserom.gba", 0x463FB8, 0x6 - -gUnknown_8463FBE:: @ 8463FBE - .incbin "baserom.gba", 0x463FBE, 0x3 - -gUnknown_8463FC1:: @ 8463FC1 - .incbin "baserom.gba", 0x463FC1, 0x5 - -gUnknown_8463FC6:: @ 8463FC6 - .incbin "baserom.gba", 0x463FC6, 0x7 - -gUnknown_8463FCD:: @ 8463FCD - .incbin "baserom.gba", 0x463FCD, 0x7 - -gUnknown_8463FD4:: @ 8463FD4 - .incbin "baserom.gba", 0x463FD4, 0xB - -gUnknown_8463FDF:: @ 8463FDF - .incbin "baserom.gba", 0x463FDF, 0xB - -gUnknown_8463FEA:: @ 8463FEA - .incbin "baserom.gba", 0x463FEA, 0x12 - -gUnknown_8463FFC:: @ 8463FFC - .incbin "baserom.gba", 0x463FFC, 0xC - -gUnknown_8464008:: @ 8464008 - .incbin "baserom.gba", 0x464008, 0x120 - -gUnknown_8464128:: @ 8464128 - .incbin "baserom.gba", 0x464128, 0x20 - -gUnknown_8464148:: @ 8464148 - .incbin "baserom.gba", 0x464148, 0x174 - -gUnknown_84642BC:: @ 84642BC - .incbin "baserom.gba", 0x4642BC, 0x4 - -gUnknown_84642C0:: @ 84642C0 - .incbin "baserom.gba", 0x4642C0, 0x34 - -gUnknown_84642F4:: @ 84642F4 - .incbin "baserom.gba", 0x4642F4, 0xC - -gUnknown_8464300:: @ 8464300 - .incbin "baserom.gba", 0x464300, 0x4C - -gUnknown_846434C:: @ 846434C - .incbin "baserom.gba", 0x46434C, 0xC - -gUnknown_8464358:: @ 8464358 - .incbin "baserom.gba", 0x464358, 0x14 - -gUnknown_846436C:: @ 846436C - .incbin "baserom.gba", 0x46436C, 0x8 - -gUnknown_8464374:: @ 8464374 - .incbin "baserom.gba", 0x464374, 0x8 - -gUnknown_846437C:: @ 846437C - .incbin "baserom.gba", 0x46437C, 0x28 - -gUnknown_84643A4:: @ 84643A4 - .incbin "baserom.gba", 0x4643A4, 0x4 - -gUnknown_84643A8:: @ 84643A8 - .incbin "baserom.gba", 0x4643A8, 0x4 - -gUnknown_84643AC:: @ 84643AC - .incbin "baserom.gba", 0x4643AC, 0x4 - -gUnknown_84643B0:: @ 84643B0 - .incbin "baserom.gba", 0x4643B0, 0x4 - -gUnknown_84643B4:: @ 84643B4 - .incbin "baserom.gba", 0x4643B4, 0x4 - -gUnknown_84643B8:: @ 84643B8 - .incbin "baserom.gba", 0x4643B8, 0x20 - -gUnknown_84643D8:: @ 84643D8 - .incbin "baserom.gba", 0x4643D8, 0x18 - -gUnknown_84643F0:: @ 84643F0 - .incbin "baserom.gba", 0x4643F0, 0x8 - -gUnknown_84643F8:: @ 84643F8 - .incbin "baserom.gba", 0x4643F8, 0x8 - -gUnknown_8464400:: @ 8464400 - .incbin "baserom.gba", 0x464400, 0x48 - -gUnknown_8464448:: @ 8464448 - .incbin "baserom.gba", 0x464448, 0x60 - -gUnknown_84644A8:: @ 84644A8 - .incbin "baserom.gba", 0x4644A8, 0x8 - -gUnknown_84644B0:: @ 84644B0 - .incbin "baserom.gba", 0x4644B0, 0x8 - -gUnknown_84644B8:: @ 84644B8 - .incbin "baserom.gba", 0x4644B8, 0x32C - -gUnknown_84647E4:: @ 84647E4 - .incbin "baserom.gba", 0x4647E4, 0x18 - -gUnknown_84647FC:: @ 84647FC - .incbin "baserom.gba", 0x4647FC, 0x8 - -gUnknown_8464804:: @ 8464804 - .incbin "baserom.gba", 0x464804, 0x38 - -gUnknown_846483C:: @ 846483C - .incbin "baserom.gba", 0x46483C, 0x40 - -gUnknown_846487C:: @ 846487C - .incbin "baserom.gba", 0x46487C, 0x8 - -gUnknown_8464884:: @ 8464884 - .incbin "baserom.gba", 0x464884, 0xC - -gUnknown_8464890:: @ 8464890 - .incbin "baserom.gba", 0x464890, 0x1E - -gUnknown_84648AE:: @ 84648AE - .incbin "baserom.gba", 0x4648AE, 0xF - -gUnknown_84648BD:: @ 84648BD - .incbin "baserom.gba", 0x4648BD, 0x15 - -gUnknown_84648D2:: @ 84648D2 - .incbin "baserom.gba", 0x4648D2, 0x54 - -gUnknown_8464926:: @ 8464926 - .incbin "baserom.gba", 0x464926, 0x40 - -gUnknown_8464966:: @ 8464966 - .incbin "baserom.gba", 0x464966, 0xC4A - -gUnknown_84655B0:: @ 84655B0 - .incbin "baserom.gba", 0x4655B0, 0x18 - -gUnknown_84655C8:: @ 84655C8 - .incbin "baserom.gba", 0x4655C8, 0x40 - -gUnknown_8465608:: @ 8465608 - .incbin "baserom.gba", 0x465608, 0xE - -gUnknown_8465616:: @ 8465616 - .incbin "baserom.gba", 0x465616, 0xC0 - -gUnknown_84656D6:: @ 84656D6 - .incbin "baserom.gba", 0x4656D6, 0x10E - -gUnknown_84657E4:: @ 84657E4 - .incbin "baserom.gba", 0x4657E4, 0x98 - -gUnknown_846587C:: @ 846587C - .incbin "baserom.gba", 0x46587C, 0x5C - -gUnknown_84658D8:: @ 84658D8 - .incbin "baserom.gba", 0x4658D8, 0x18 - -gUnknown_84658F0:: @ 84658F0 - .incbin "baserom.gba", 0x4658F0, 0x40 - -gUnknown_8465930:: @ 8465930 - .incbin "baserom.gba", 0x465930, 0x20 - -gUnknown_8465950:: @ 8465950 - .incbin "baserom.gba", 0x465950, 0x80 - -gUnknown_84659D0:: @ 84659D0 - .incbin "baserom.gba", 0x4659D0, 0x804 - -gUnknown_84661D4:: @ 84661D4 - .incbin "baserom.gba", 0x4661D4, 0x2E8 - -gUnknown_84664BC:: @ 84664BC - .incbin "baserom.gba", 0x4664BC, 0x20 - -gUnknown_84664DC:: @ 84664DC - .incbin "baserom.gba", 0x4664DC, 0x60 - -gUnknown_846653C:: @ 846653C - .incbin "baserom.gba", 0x46653C, 0x84 - -gUnknown_84665C0:: @ 84665C0 - .incbin "baserom.gba", 0x4665C0, 0x60 - -gUnknown_8466620:: @ 8466620 - .incbin "baserom.gba", 0x466620, 0x378 - -gUnknown_8466998:: @ 8466998 - .incbin "baserom.gba", 0x466998, 0x178 - -gUnknown_8466B10:: @ 8466B10 - .incbin "baserom.gba", 0x466B10, 0x10 - -gUnknown_8466B20:: @ 8466B20 - .incbin "baserom.gba", 0x466B20, 0xEC - -gUnknown_8466C0C:: @ 8466C0C - .incbin "baserom.gba", 0x466C0C, 0x28 - -gUnknown_8466C34:: @ 8466C34 - .incbin "baserom.gba", 0x466C34, 0x4 - -gUnknown_8466C38:: @ 8466C38 - .incbin "baserom.gba", 0x466C38, 0x8 - -gUnknown_8466C40:: @ 8466C40 - .incbin "baserom.gba", 0x466C40, 0x18 - -gUnknown_8466C58:: @ 8466C58 - .incbin "baserom.gba", 0x466C58, 0xB8 - -gUnknown_8466D10:: @ 8466D10 - .incbin "baserom.gba", 0x466D10, 0x20 - -gUnknown_8466D30:: @ 8466D30 - .incbin "baserom.gba", 0x466D30, 0x30 - -gUnknown_8466D60:: @ 8466D60 - .incbin "baserom.gba", 0x466D60, 0x10 - -gUnknown_8466D70:: @ 8466D70 - .incbin "baserom.gba", 0x466D70, 0x20 - -gUnknown_8466D90:: @ 8466D90 - .incbin "baserom.gba", 0x466D90, 0x8 - -gUnknown_8466D98:: @ 8466D98 - .incbin "baserom.gba", 0x466D98, 0x8 - -gUnknown_8466DA0:: @ 8466DA0 - .incbin "baserom.gba", 0x466DA0, 0x8 - -gUnknown_8466DA8:: @ 8466DA8 - .incbin "baserom.gba", 0x466DA8, 0x8 - -gUnknown_8466DB0:: @ 8466DB0 - .incbin "baserom.gba", 0x466DB0, 0x8 - -gUnknown_8466DB8:: @ 8466DB8 - .incbin "baserom.gba", 0x466DB8, 0x8 - -gUnknown_8466DC0:: @ 8466DC0 - .incbin "baserom.gba", 0x466DC0, 0x8 - -gUnknown_8466DC8:: @ 8466DC8 - .incbin "baserom.gba", 0x466DC8, 0x8 - -gUnknown_8466DD0:: @ 8466DD0 - .incbin "baserom.gba", 0x466DD0, 0x18 - -gUnknown_8466DE8:: @ 8466DE8 - .incbin "baserom.gba", 0x466DE8, 0x18 - -gUnknown_8466E00:: @ 8466E00 - .incbin "baserom.gba", 0x466E00, 0x78 - -gUnknown_8466E78:: @ 8466E78 - .incbin "baserom.gba", 0x466E78, 0x18 - -gUnknown_8466E90:: @ 8466E90 - .incbin "baserom.gba", 0x466E90, 0x18 - -gUnknown_8466EA8:: @ 8466EA8 - .incbin "baserom.gba", 0x466EA8, 0x18 - -gUnknown_8466EC0:: @ 8466EC0 - .incbin "baserom.gba", 0x466EC0, 0x28 - -gUnknown_8466EE8:: @ 8466EE8 - .incbin "baserom.gba", 0x466EE8, 0x8 - -gUnknown_8466EF0:: @ 8466EF0 - .incbin "baserom.gba", 0x466EF0, 0x10 - -gUnknown_8466F00:: @ 8466F00 - .incbin "baserom.gba", 0x466F00, 0x28 - - .align 2 -gUnknown_8466F28:: @ 8466F28 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c" - - .align 2 -gUnknown_8466F5C:: @ 8466F5C - .asciz "0" - - .align 2 -gUnknown_8466F60:: @ 8466F60 - .incbin "baserom.gba", 0x466F60, 0x20 - - .align 2 -gUnknown_8466F80:: @ 8466F80 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c" - - .align 2 -gUnknown_8466FB8:: @ 8466FB8 - .asciz "size <= ME_SEND_BUF_SIZE" - - .align 2 -gUnknown_8466FD4:: @ 8466FD4 - .asciz "cmd->parameter == NULL" - - .align 2 -gUnknown_8466FEC:: @ 8466FEC - .asciz "cmd->flag == FALSE" - - .align 2 -gUnknown_8467000:: @ 8467000 - .asciz "cmd->flag == FALSE && cmd->parameter == NULL" - - .align 2 -gUnknown_8467030:: @ 8467030 - .incbin "baserom.gba", 0x467030, 0x14 - - .align 2 -gUnknown_8467044:: @ 8467044 - .asciz "svr->mainseqno < NELEMS(func_tbl)" - - .align 2 -gUnknown_8467068:: @ 8467068 - .incbin "baserom.gba", 0x467068, 0x8 - -gUnknown_8467070:: @ 8467070 - .incbin "baserom.gba", 0x467070, 0x4 - -gUnknown_8467074:: @ 8467074 - .incbin "baserom.gba", 0x467074, 0xEE4 - -gUnknown_8467F58:: @ 8467F58 - .incbin "baserom.gba", 0x467F58, 0x8 - -gUnknown_8467F60:: @ 8467F60 - .incbin "baserom.gba", 0x467F60, 0x40 - -gUnknown_8467FA0:: @ 8467FA0 - .incbin "baserom.gba", 0x467FA0, 0x18 - -gUnknown_8467FB8:: @ 8467FB8 - .incbin "baserom.gba", 0x467FB8, 0x80 - -gUnknown_8468038:: @ 8468038 - .incbin "baserom.gba", 0x468038, 0x8 - -gUnknown_8468040:: @ 8468040 - .incbin "baserom.gba", 0x468040, 0x10 - -gUnknown_8468050:: @ 8468050 - .incbin "baserom.gba", 0x468050, 0x6D0 - -gUnknown_8468720:: @ 8468720 - .incbin "baserom.gba", 0x468720, 0xC0 - -gUnknown_84687E0:: @ 84687E0 - .incbin "baserom.gba", 0x4687E0, 0x38C - -gUnknown_8468B6C:: @ 8468B6C - .incbin "baserom.gba", 0x468B6C, 0x60 - -gUnknown_8468BCC:: @ 8468BCC - .incbin "baserom.gba", 0x468BCC, 0x90 - - - diff --git a/data/data_845FD54.s b/data/data_845FD54.s new file mode 100644 index 000000000..d2b52192d --- /dev/null +++ b/data/data_845FD54.s @@ -0,0 +1,686 @@ + .section .rodata + + .align 2 + // oak_speech +gUnknown_845FD54:: @ 845FD54 + .incbin "baserom.gba", 0x45FD54, 0x814 + +gUnknown_8460568:: @ 8460568 + .incbin "baserom.gba", 0x460568, 0x80 + +gUnknown_84605E8:: @ 84605E8 + .incbin "baserom.gba", 0x4605E8, 0x5C0 + +gUnknown_8460BA8:: @ 8460BA8 + .incbin "baserom.gba", 0x460BA8, 0xFC + +gUnknown_8460CA4:: @ 8460CA4 + .incbin "baserom.gba", 0x460CA4, 0x44 + +gUnknown_8460CE8:: @ 8460CE8 + .incbin "baserom.gba", 0x460CE8, 0xAC + +gUnknown_8460D94:: @ 8460D94 + .incbin "baserom.gba", 0x460D94, 0xA0 + +gUnknown_8460E34:: @ 8460E34 + .incbin "baserom.gba", 0x460E34, 0xA0 + +gUnknown_8460ED4:: @ 8460ED4 + .incbin "baserom.gba", 0x460ED4, 0x40 + +gUnknown_8460F14:: @ 8460F14 + .incbin "baserom.gba", 0x460F14, 0x6E8 + +gUnknown_84615FC:: @ 84615FC + .incbin "baserom.gba", 0x4615FC, 0x40 + +gUnknown_846163C:: @ 846163C + .incbin "baserom.gba", 0x46163C, 0x698 + +gUnknown_8461CD4:: @ 8461CD4 + .incbin "baserom.gba", 0x461CD4, 0x40 + +gUnknown_8461D14:: @ 8461D14 + .incbin "baserom.gba", 0x461D14, 0x698 + +gUnknown_84623AC:: @ 84623AC + .incbin "baserom.gba", 0x4623AC, 0x40 + +gUnknown_84623EC:: @ 84623EC + .incbin "baserom.gba", 0x4623EC, 0xA6C + +gUnknown_8462E58:: @ 8462E58 + .incbin "baserom.gba", 0x462E58, 0x5C + +gUnknown_8462EB4:: @ 8462EB4 + .incbin "baserom.gba", 0x462EB4, 0xC + +gUnknown_8462EC0:: @ 8462EC0 + .incbin "baserom.gba", 0x462EC0, 0x8 + +gUnknown_8462EC8:: @ 8462EC8 + .incbin "baserom.gba", 0x462EC8, 0x8 + +gUnknown_8462ED0:: @ 8462ED0 + .incbin "baserom.gba", 0x462ED0, 0x8 + +gUnknown_8462ED8:: @ 8462ED8 + .incbin "baserom.gba", 0x462ED8, 0x10 + +gUnknown_8462EE8:: @ 8462EE8 + .incbin "baserom.gba", 0x462EE8, 0x4 + +gUnknown_8462EEC:: @ 8462EEC + .incbin "baserom.gba", 0x462EEC, 0x4 + +gUnknown_8462EF0:: @ 8462EF0 + .incbin "baserom.gba", 0x462EF0, 0xC + +gUnknown_8462EFC:: @ 8462EFC + .incbin "baserom.gba", 0x462EFC, 0x18 + +gUnknown_8462F14:: @ 8462F14 + .incbin "baserom.gba", 0x462F14, 0x8 + +gUnknown_8462F1C:: @ 8462F1C + .incbin "baserom.gba", 0x462F1C, 0x8 + +gUnknown_8462F24:: @ 8462F24 + .incbin "baserom.gba", 0x462F24, 0x2C + +gUnknown_8462F50:: @ 8462F50 + .incbin "baserom.gba", 0x462F50, 0xDC + +gUnknown_846302C:: @ 846302C + .incbin "baserom.gba", 0x46302C, 0x48 + +gUnknown_8463074:: @ 8463074 + .incbin "baserom.gba", 0x463074, 0x18 + +gUnknown_846308C:: @ 846308C + .incbin "baserom.gba", 0x46308C, 0x4C + +gUnknown_84630D8:: @ 84630D8 + .incbin "baserom.gba", 0x4630D8, 0x4C + +gUnknown_8463124:: @ 8463124 + .incbin "baserom.gba", 0x463124, 0x10 + +gUnknown_8463134:: @ 8463134 + .incbin "baserom.gba", 0x463134, 0xC + +gUnknown_8463140:: @ 8463140 + .incbin "baserom.gba", 0x463140, 0x10 + +gUnknown_8463150:: @ 8463150 + .incbin "baserom.gba", 0x463150, 0x18 + +gUnknown_8463168:: @ 8463168 + .incbin "baserom.gba", 0x463168, 0x3 + +gUnknown_846316B:: @ 846316B + .incbin "baserom.gba", 0x46316B, 0x5 + +gUnknown_8463170:: @ 8463170 + .incbin "baserom.gba", 0x463170, 0x8 + +gUnknown_8463178:: @ 8463178 + .incbin "baserom.gba", 0x463178, 0x4 + +gUnknown_846317C:: @ 846317C + .incbin "baserom.gba", 0x46317C, 0x4 + +gUnknown_8463180:: @ 8463180 + .incbin "baserom.gba", 0x463180, 0x4 + +gUnknown_8463184:: @ 8463184 + .incbin "baserom.gba", 0x463184, 0xC + +gUnknown_8463190:: @ 8463190 + .incbin "baserom.gba", 0x463190, 0x50 + +gUnknown_84631E0:: @ 84631E0 + .incbin "baserom.gba", 0x4631E0, 0x8 + +gUnknown_84631E8:: @ 84631E8 + .incbin "baserom.gba", 0x4631E8, 0x30 + +gUnknown_8463218:: @ 8463218 + .incbin "baserom.gba", 0x463218, 0x8 + +gUnknown_8463220:: @ 8463220 + .incbin "baserom.gba", 0x463220, 0x18 + +gUnknown_8463238:: @ 8463238 + .incbin "baserom.gba", 0x463238, 0x24 + +gUnknown_846325C:: @ 846325C + .incbin "baserom.gba", 0x46325C, 0x48 + +gUnknown_84632A4:: @ 84632A4 + .incbin "baserom.gba", 0x4632A4, 0x18 + +gUnknown_84632BC:: @ 84632BC + .incbin "baserom.gba", 0x4632BC, 0x4 + +gUnknown_84632C0:: @ 84632C0 + .incbin "baserom.gba", 0x4632C0, 0x4 + +gUnknown_84632C4:: @ 84632C4 + .incbin "baserom.gba", 0x4632C4, 0x4 + +gUnknown_84632C8:: @ 84632C8 + .incbin "baserom.gba", 0x4632C8, 0x4 + +gUnknown_84632CC:: @ 84632CC + .incbin "baserom.gba", 0x4632CC, 0x4 + +gUnknown_84632D0:: @ 84632D0 + .incbin "baserom.gba", 0x4632D0, 0x4 + +gUnknown_84632D4:: @ 84632D4 + .incbin "baserom.gba", 0x4632D4, 0x4 + +gUnknown_84632D8:: @ 84632D8 + .incbin "baserom.gba", 0x4632D8, 0x18 + +gUnknown_84632F0:: @ 84632F0 + .incbin "baserom.gba", 0x4632F0, 0x18 + +gUnknown_8463308:: @ 8463308 + .incbin "baserom.gba", 0x463308, 0x20 + +gUnknown_8463328:: @ 8463328 + .incbin "baserom.gba", 0x463328, 0x70 + +gUnknown_8463398:: @ 8463398 + .incbin "baserom.gba", 0x463398, 0x40 + +gUnknown_84633D8:: @ 84633D8 + .incbin "baserom.gba", 0x4633D8, 0x44 + +gUnknown_846341C:: @ 846341C + .incbin "baserom.gba", 0x46341C, 0x20 + +gUnknown_846343C:: @ 846343C + .incbin "baserom.gba", 0x46343C, 0x128 + +gUnknown_8463564:: @ 8463564 + .incbin "baserom.gba", 0x463564, 0x1C + +gUnknown_8463580:: @ 8463580 + .incbin "baserom.gba", 0x463580, 0x140 + +gUnknown_84636C0:: @ 84636C0 + .incbin "baserom.gba", 0x4636C0, 0x20 + +gUnknown_84636E0:: @ 84636E0 + .incbin "baserom.gba", 0x4636E0, 0x20 + +gUnknown_8463700:: @ 8463700 + .incbin "baserom.gba", 0x463700, 0x20 + +gUnknown_8463720:: @ 8463720 + .incbin "baserom.gba", 0x463720, 0x20 + +gUnknown_8463740:: @ 8463740 + .incbin "baserom.gba", 0x463740, 0x12C + +gUnknown_846386C:: @ 846386C + .incbin "baserom.gba", 0x46386C, 0x120 + +gUnknown_846398C:: @ 846398C + .incbin "baserom.gba", 0x46398C, 0x18 + +gUnknown_84639A4:: @ 84639A4 + .incbin "baserom.gba", 0x4639A4, 0x8 + +gUnknown_84639AC:: @ 84639AC + .incbin "baserom.gba", 0x4639AC, 0x48 + +gUnknown_84639F4:: @ 84639F4 + .incbin "baserom.gba", 0x4639F4, 0x20 + +gUnknown_8463A14:: @ 8463A14 + .incbin "baserom.gba", 0x463A14, 0x68 + +gUnknown_8463A7C:: @ 8463A7C + .incbin "baserom.gba", 0x463A7C, 0x70 + +gUnknown_8463AEC:: @ 8463AEC + .incbin "baserom.gba", 0x463AEC, 0x10 + +gUnknown_8463AFC:: @ 8463AFC + .incbin "baserom.gba", 0x463AFC, 0x4 + +gUnknown_8463B00:: @ 8463B00 + .incbin "baserom.gba", 0x463B00, 0x20 + +gUnknown_8463B20:: @ 8463B20 + .incbin "baserom.gba", 0x463B20, 0x10 + +gUnknown_8463B30:: @ 8463B30 + .incbin "baserom.gba", 0x463B30, 0x10 + +gUnknown_8463B40:: @ 8463B40 + .incbin "baserom.gba", 0x463B40, 0x4 + +gUnknown_8463B44:: @ 8463B44 + .incbin "baserom.gba", 0x463B44, 0x20 + +gUnknown_8463B64:: @ 8463B64 + .incbin "baserom.gba", 0x463B64, 0x24 + +gUnknown_8463B88:: @ 8463B88 + .incbin "baserom.gba", 0x463B88, 0xF8 + +gUnknown_8463C80:: @ 8463C80 + .incbin "baserom.gba", 0x463C80, 0x1E0 + +gUnknown_8463E60:: @ 8463E60 + .incbin "baserom.gba", 0x463E60, 0x64 + +gUnknown_8463EC4:: @ 8463EC4 + .incbin "baserom.gba", 0x463EC4, 0x10 + +gUnknown_8463ED4:: @ 8463ED4 + .incbin "baserom.gba", 0x463ED4, 0x1C + +gUnknown_8463EF0:: @ 8463EF0 + .incbin "baserom.gba", 0x463EF0, 0xC + +gUnknown_8463EFC:: @ 8463EFC + .incbin "baserom.gba", 0x463EFC, 0x10 + +gUnknown_8463F0C:: @ 8463F0C + .incbin "baserom.gba", 0x463F0C, 0x18 + +gUnknown_8463F24:: @ 8463F24 + .incbin "baserom.gba", 0x463F24, 0x18 + +gUnknown_8463F3C:: @ 8463F3C + .incbin "baserom.gba", 0x463F3C, 0x20 + +gUnknown_8463F5C:: @ 8463F5C + .incbin "baserom.gba", 0x463F5C, 0x20 + +gUnknown_8463F7C:: @ 8463F7C + .incbin "baserom.gba", 0x463F7C, 0x20 + +gUnknown_8463F9C:: @ 8463F9C + .incbin "baserom.gba", 0x463F9C, 0x8 + +gUnknown_8463FA4:: @ 8463FA4 + .incbin "baserom.gba", 0x463FA4, 0x3 + +gUnknown_8463FA7:: @ 8463FA7 + .incbin "baserom.gba", 0x463FA7, 0x11 + +gUnknown_8463FB8:: @ 8463FB8 + .incbin "baserom.gba", 0x463FB8, 0x6 + +gUnknown_8463FBE:: @ 8463FBE + .incbin "baserom.gba", 0x463FBE, 0x3 + +gUnknown_8463FC1:: @ 8463FC1 + .incbin "baserom.gba", 0x463FC1, 0x5 + +gUnknown_8463FC6:: @ 8463FC6 + .incbin "baserom.gba", 0x463FC6, 0x7 + +gUnknown_8463FCD:: @ 8463FCD + .incbin "baserom.gba", 0x463FCD, 0x7 + +gUnknown_8463FD4:: @ 8463FD4 + .incbin "baserom.gba", 0x463FD4, 0xB + +gUnknown_8463FDF:: @ 8463FDF + .incbin "baserom.gba", 0x463FDF, 0xB + +gUnknown_8463FEA:: @ 8463FEA + .incbin "baserom.gba", 0x463FEA, 0x12 + +gUnknown_8463FFC:: @ 8463FFC + .incbin "baserom.gba", 0x463FFC, 0xC + +gUnknown_8464008:: @ 8464008 + .incbin "baserom.gba", 0x464008, 0x120 + +gUnknown_8464128:: @ 8464128 + .incbin "baserom.gba", 0x464128, 0x20 + +gUnknown_8464148:: @ 8464148 + .incbin "baserom.gba", 0x464148, 0x174 + +gUnknown_84642BC:: @ 84642BC + .incbin "baserom.gba", 0x4642BC, 0x4 + +gUnknown_84642C0:: @ 84642C0 + .incbin "baserom.gba", 0x4642C0, 0x34 + +gUnknown_84642F4:: @ 84642F4 + .incbin "baserom.gba", 0x4642F4, 0xC + +gUnknown_8464300:: @ 8464300 + .incbin "baserom.gba", 0x464300, 0x4C + +gUnknown_846434C:: @ 846434C + .incbin "baserom.gba", 0x46434C, 0xC + +gUnknown_8464358:: @ 8464358 + .incbin "baserom.gba", 0x464358, 0x14 + +gUnknown_846436C:: @ 846436C + .incbin "baserom.gba", 0x46436C, 0x8 + +gUnknown_8464374:: @ 8464374 + .incbin "baserom.gba", 0x464374, 0x8 + +gUnknown_846437C:: @ 846437C + .incbin "baserom.gba", 0x46437C, 0x28 + +gUnknown_84643A4:: @ 84643A4 + .incbin "baserom.gba", 0x4643A4, 0x4 + +gUnknown_84643A8:: @ 84643A8 + .incbin "baserom.gba", 0x4643A8, 0x4 + +gUnknown_84643AC:: @ 84643AC + .incbin "baserom.gba", 0x4643AC, 0x4 + +gUnknown_84643B0:: @ 84643B0 + .incbin "baserom.gba", 0x4643B0, 0x4 + +gUnknown_84643B4:: @ 84643B4 + .incbin "baserom.gba", 0x4643B4, 0x4 + +gUnknown_84643B8:: @ 84643B8 + .incbin "baserom.gba", 0x4643B8, 0x20 + +gUnknown_84643D8:: @ 84643D8 + .incbin "baserom.gba", 0x4643D8, 0x18 + +gUnknown_84643F0:: @ 84643F0 + .incbin "baserom.gba", 0x4643F0, 0x8 + +gUnknown_84643F8:: @ 84643F8 + .incbin "baserom.gba", 0x4643F8, 0x8 + +gUnknown_8464400:: @ 8464400 + .incbin "baserom.gba", 0x464400, 0x48 + +gUnknown_8464448:: @ 8464448 + .incbin "baserom.gba", 0x464448, 0x60 + +gUnknown_84644A8:: @ 84644A8 + .incbin "baserom.gba", 0x4644A8, 0x8 + +gUnknown_84644B0:: @ 84644B0 + .incbin "baserom.gba", 0x4644B0, 0x8 + +gUnknown_84644B8:: @ 84644B8 + .incbin "baserom.gba", 0x4644B8, 0x32C + +gUnknown_84647E4:: @ 84647E4 + .incbin "baserom.gba", 0x4647E4, 0x18 + +gUnknown_84647FC:: @ 84647FC + .incbin "baserom.gba", 0x4647FC, 0x8 + +gUnknown_8464804:: @ 8464804 + .incbin "baserom.gba", 0x464804, 0x38 + +gUnknown_846483C:: @ 846483C + .incbin "baserom.gba", 0x46483C, 0x40 + +gUnknown_846487C:: @ 846487C + .incbin "baserom.gba", 0x46487C, 0x8 + +gUnknown_8464884:: @ 8464884 + .incbin "baserom.gba", 0x464884, 0xC + +gUnknown_8464890:: @ 8464890 + .incbin "baserom.gba", 0x464890, 0x1E + +gUnknown_84648AE:: @ 84648AE + .incbin "baserom.gba", 0x4648AE, 0xF + +gUnknown_84648BD:: @ 84648BD + .incbin "baserom.gba", 0x4648BD, 0x15 + +gUnknown_84648D2:: @ 84648D2 + .incbin "baserom.gba", 0x4648D2, 0x54 + +gUnknown_8464926:: @ 8464926 + .incbin "baserom.gba", 0x464926, 0x40 + +gUnknown_8464966:: @ 8464966 + .incbin "baserom.gba", 0x464966, 0xC4A + +gUnknown_84655B0:: @ 84655B0 + .incbin "baserom.gba", 0x4655B0, 0x18 + +gUnknown_84655C8:: @ 84655C8 + .incbin "baserom.gba", 0x4655C8, 0x40 + +gUnknown_8465608:: @ 8465608 + .incbin "baserom.gba", 0x465608, 0xE + +gUnknown_8465616:: @ 8465616 + .incbin "baserom.gba", 0x465616, 0xC0 + +gUnknown_84656D6:: @ 84656D6 + .incbin "baserom.gba", 0x4656D6, 0x10E + +gUnknown_84657E4:: @ 84657E4 + .incbin "baserom.gba", 0x4657E4, 0x98 + +gUnknown_846587C:: @ 846587C + .incbin "baserom.gba", 0x46587C, 0x5C + +gUnknown_84658D8:: @ 84658D8 + .incbin "baserom.gba", 0x4658D8, 0x18 + +gUnknown_84658F0:: @ 84658F0 + .incbin "baserom.gba", 0x4658F0, 0x40 + +gUnknown_8465930:: @ 8465930 + .incbin "baserom.gba", 0x465930, 0x20 + +gUnknown_8465950:: @ 8465950 + .incbin "baserom.gba", 0x465950, 0x80 + +gUnknown_84659D0:: @ 84659D0 + .incbin "baserom.gba", 0x4659D0, 0x804 + +gUnknown_84661D4:: @ 84661D4 + .incbin "baserom.gba", 0x4661D4, 0x2E8 + +gUnknown_84664BC:: @ 84664BC + .incbin "baserom.gba", 0x4664BC, 0x20 + +gUnknown_84664DC:: @ 84664DC + .incbin "baserom.gba", 0x4664DC, 0x60 + +gUnknown_846653C:: @ 846653C + .incbin "baserom.gba", 0x46653C, 0x84 + +gUnknown_84665C0:: @ 84665C0 + .incbin "baserom.gba", 0x4665C0, 0x60 + +gUnknown_8466620:: @ 8466620 + .incbin "baserom.gba", 0x466620, 0x378 + +gUnknown_8466998:: @ 8466998 + .incbin "baserom.gba", 0x466998, 0x178 + +gUnknown_8466B10:: @ 8466B10 + .incbin "baserom.gba", 0x466B10, 0x10 + +gUnknown_8466B20:: @ 8466B20 + .incbin "baserom.gba", 0x466B20, 0xEC + +gUnknown_8466C0C:: @ 8466C0C + .incbin "baserom.gba", 0x466C0C, 0x28 + +gUnknown_8466C34:: @ 8466C34 + .incbin "baserom.gba", 0x466C34, 0x4 + +gUnknown_8466C38:: @ 8466C38 + .incbin "baserom.gba", 0x466C38, 0x8 + +gUnknown_8466C40:: @ 8466C40 + .incbin "baserom.gba", 0x466C40, 0x18 + +gUnknown_8466C58:: @ 8466C58 + .incbin "baserom.gba", 0x466C58, 0xB8 + +gUnknown_8466D10:: @ 8466D10 + .incbin "baserom.gba", 0x466D10, 0x20 + +gUnknown_8466D30:: @ 8466D30 + .incbin "baserom.gba", 0x466D30, 0x30 + +gUnknown_8466D60:: @ 8466D60 + .incbin "baserom.gba", 0x466D60, 0x10 + +gUnknown_8466D70:: @ 8466D70 + .incbin "baserom.gba", 0x466D70, 0x20 + +gUnknown_8466D90:: @ 8466D90 + .incbin "baserom.gba", 0x466D90, 0x8 + +gUnknown_8466D98:: @ 8466D98 + .incbin "baserom.gba", 0x466D98, 0x8 + +gUnknown_8466DA0:: @ 8466DA0 + .incbin "baserom.gba", 0x466DA0, 0x8 + +gUnknown_8466DA8:: @ 8466DA8 + .incbin "baserom.gba", 0x466DA8, 0x8 + +gUnknown_8466DB0:: @ 8466DB0 + .incbin "baserom.gba", 0x466DB0, 0x8 + +gUnknown_8466DB8:: @ 8466DB8 + .incbin "baserom.gba", 0x466DB8, 0x8 + +gUnknown_8466DC0:: @ 8466DC0 + .incbin "baserom.gba", 0x466DC0, 0x8 + +gUnknown_8466DC8:: @ 8466DC8 + .incbin "baserom.gba", 0x466DC8, 0x8 + +gUnknown_8466DD0:: @ 8466DD0 + .incbin "baserom.gba", 0x466DD0, 0x18 + +gUnknown_8466DE8:: @ 8466DE8 + .incbin "baserom.gba", 0x466DE8, 0x18 + +gUnknown_8466E00:: @ 8466E00 + .incbin "baserom.gba", 0x466E00, 0x78 + +gUnknown_8466E78:: @ 8466E78 + .incbin "baserom.gba", 0x466E78, 0x18 + +gUnknown_8466E90:: @ 8466E90 + .incbin "baserom.gba", 0x466E90, 0x18 + +gUnknown_8466EA8:: @ 8466EA8 + .incbin "baserom.gba", 0x466EA8, 0x18 + +gUnknown_8466EC0:: @ 8466EC0 + .incbin "baserom.gba", 0x466EC0, 0x28 + +gUnknown_8466EE8:: @ 8466EE8 + .incbin "baserom.gba", 0x466EE8, 0x8 + +gUnknown_8466EF0:: @ 8466EF0 + .incbin "baserom.gba", 0x466EF0, 0x10 + +gUnknown_8466F00:: @ 8466F00 + .incbin "baserom.gba", 0x466F00, 0x28 + + .align 2 +gUnknown_8466F28:: @ 8466F28 + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c" + + .align 2 +gUnknown_8466F5C:: @ 8466F5C + .asciz "0" + + .align 2 +gUnknown_8466F60:: @ 8466F60 + .incbin "baserom.gba", 0x466F60, 0x20 + + .align 2 +gUnknown_8466F80:: @ 8466F80 + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c" + + .align 2 +gUnknown_8466FB8:: @ 8466FB8 + .asciz "size <= ME_SEND_BUF_SIZE" + + .align 2 +gUnknown_8466FD4:: @ 8466FD4 + .asciz "cmd->parameter == NULL" + + .align 2 +gUnknown_8466FEC:: @ 8466FEC + .asciz "cmd->flag == FALSE" + + .align 2 +gUnknown_8467000:: @ 8467000 + .asciz "cmd->flag == FALSE && cmd->parameter == NULL" + + .align 2 +gUnknown_8467030:: @ 8467030 + .incbin "baserom.gba", 0x467030, 0x14 + + .align 2 +gUnknown_8467044:: @ 8467044 + .asciz "svr->mainseqno < NELEMS(func_tbl)" + + .align 2 +gUnknown_8467068:: @ 8467068 + .incbin "baserom.gba", 0x467068, 0x8 + +gUnknown_8467070:: @ 8467070 + .incbin "baserom.gba", 0x467070, 0x4 + +gUnknown_8467074:: @ 8467074 + .incbin "baserom.gba", 0x467074, 0xEE4 + +gUnknown_8467F58:: @ 8467F58 + .incbin "baserom.gba", 0x467F58, 0x8 + +gUnknown_8467F60:: @ 8467F60 + .incbin "baserom.gba", 0x467F60, 0x40 + +gUnknown_8467FA0:: @ 8467FA0 + .incbin "baserom.gba", 0x467FA0, 0x18 + +gUnknown_8467FB8:: @ 8467FB8 + .incbin "baserom.gba", 0x467FB8, 0x80 + +gUnknown_8468038:: @ 8468038 + .incbin "baserom.gba", 0x468038, 0x8 + +gUnknown_8468040:: @ 8468040 + .incbin "baserom.gba", 0x468040, 0x10 + +gUnknown_8468050:: @ 8468050 + .incbin "baserom.gba", 0x468050, 0x6D0 + +gUnknown_8468720:: @ 8468720 + .incbin "baserom.gba", 0x468720, 0xC0 + +gUnknown_84687E0:: @ 84687E0 + .incbin "baserom.gba", 0x4687E0, 0x38C + +gUnknown_8468B6C:: @ 8468B6C + .incbin "baserom.gba", 0x468B6C, 0x60 + +gUnknown_8468BCC:: @ 8468BCC + .incbin "baserom.gba", 0x468BCC, 0x90 diff --git a/data/fame_checker.s b/data/fame_checker.s new file mode 100644 index 000000000..037891818 --- /dev/null +++ b/data/fame_checker.s @@ -0,0 +1,92 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_845C600:: @ 845C600 + .incbin "baserom.gba", 0x45C600, 0x1720 + +gUnknown_845DD20:: @ 845DD20 + .incbin "baserom.gba", 0x45DD20, 0x820 + +gUnknown_845E540:: @ 845E540 + .incbin "baserom.gba", 0x45E540, 0x820 + +gUnknown_845ED60:: @ 845ED60 + .incbin "baserom.gba", 0x45ED60, 0x820 + +gUnknown_845F580:: @ 845F580 + .incbin "baserom.gba", 0x45F580, 0x40 + +gUnknown_845F5C0:: @ 845F5C0 + .incbin "baserom.gba", 0x45F5C0, 0x20 + +gUnknown_845F5E0:: @ 845F5E0 + .incbin "baserom.gba", 0x45F5E0, 0x3 + +gUnknown_845F5E3:: @ 845F5E3 + .incbin "baserom.gba", 0x45F5E3, 0x3 + +gUnknown_845F5E6:: @ 845F5E6 + .incbin "baserom.gba", 0x45F5E6, 0x4 + +gUnknown_845F5EA:: @ 845F5EA + .incbin "baserom.gba", 0x45F5EA, 0x22 + +gUnknown_845F60C:: @ 845F60C + .incbin "baserom.gba", 0x45F60C, 0x10 + +gUnknown_845F61C:: @ 845F61C + .incbin "baserom.gba", 0x45F61C, 0x20 + +gUnknown_845F63C:: @ 845F63C + .incbin "baserom.gba", 0x45F63C, 0x80 + +gUnknown_845F6BC:: @ 845F6BC + .incbin "baserom.gba", 0x45F6BC, 0x180 + +gUnknown_845F83C:: @ 845F83C + .incbin "baserom.gba", 0x45F83C, 0x60 + +gUnknown_845F89C:: @ 845F89C + .incbin "baserom.gba", 0x45F89C, 0x180 + +gUnknown_845FA1C:: @ 845FA1C + .incbin "baserom.gba", 0x45FA1C, 0x180 + +gUnknown_845FB9C:: @ 845FB9C + .incbin "baserom.gba", 0x45FB9C, 0x40 + +gUnknown_845FBDC:: @ 845FBDC + .incbin "baserom.gba", 0x45FBDC, 0x18 + +gUnknown_845FBF4:: @ 845FBF4 + .incbin "baserom.gba", 0x45FBF4, 0x10 + +gUnknown_845FC04:: @ 845FC04 + .incbin "baserom.gba", 0x45FC04, 0x40 + +gUnknown_845FC44:: @ 845FC44 + .incbin "baserom.gba", 0x45FC44, 0x34 + +gUnknown_845FC78:: @ 845FC78 + .incbin "baserom.gba", 0x45FC78, 0x40 + +gUnknown_845FCB8:: @ 845FCB8 + .incbin "baserom.gba", 0x45FCB8, 0x2C + +gUnknown_845FCE4:: @ 845FCE4 + .incbin "baserom.gba", 0x45FCE4, 0x18 + +gUnknown_845FCFC:: @ 845FCFC + .incbin "baserom.gba", 0x45FCFC, 0x18 + +gUnknown_845FD14:: @ 845FD14 + .incbin "baserom.gba", 0x45FD14, 0x18 + +gUnknown_845FD2C:: @ 845FD2C + .incbin "baserom.gba", 0x45FD2C, 0x18 + +gUnknown_845FD44:: @ 845FD44 + .incbin "baserom.gba", 0x45FD44, 0x10 diff --git a/include/graphics.h b/include/graphics.h index 9888d2f7c..c5544428e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -143,4 +143,11 @@ extern const u8 gUnknown_08DDB020[]; extern const u8 gUnknown_08DDB2C4[]; extern const u16 gUnknown_08DDAFE0[]; +// fame_checker + +extern const u16 gUnknown_8E9F220[0x30]; +extern const u16 gUnknown_8E9F260[0xa50]; +extern const u16 gUnknown_8EA0700[0x400]; +extern const u16 gUnknown_8EA0F00[0x400]; + #endif //GUARD_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h index 731c7cf2b..64cb2d762 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -12,5 +12,6 @@ extern u16 gUnknown_203AD30; // Exported ROM declarations void sub_81AAC50(void); void sub_81AAC70(void); +void sub_8107EB8(void); #endif //GUARD_ITEM_MENU_H diff --git a/ld_script.txt b/ld_script.txt index e821a34ca..cab20382b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -377,6 +377,9 @@ SECTIONS { data/data_83FECCC.o(.rodata.8453F6C); src/quest_log.o(.rodata); data/data_83FECCC.o(.rodata.8456C74); + src/fame_checker.o(.rodata); + data/fame_checker.o(.rodata); + data/data_845FD54.o(.rodata); src/menews_jisan.o(.rodata); src/menews_jisan.o(.rodata.str1.4); data/data_8468C98.o(.rodata); diff --git a/src/fame_checker.c b/src/fame_checker.c index d311ecb94..0f047f612 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,6 +1,9 @@ #include "global.h" #include "constants/songs.h" #include "bg.h" +#include "graphics.h" +#include "item_menu.h" +#include "list_menu.h" #include "gpu_regs.h" #include "palette.h" #include "task.h" @@ -13,13 +16,18 @@ struct FameCheckerData { - u32 unk_00; + void (*unk_00)(void); u16 unk_04; - u8 filler_06[3]; + u8 filler_06[1]; + u8 unk_07_0:1; + u8 unk_07_1:1; + u8 unk_07_2:6; + u8 filler_08[1]; u8 unk_09; u8 unk_0A; u8 unk_0B; - u8 filler_0C[23]; + u8 unk_0C[17]; + u8 unk_1D[6]; u8 unk_23_0:1; u8 unk_23_1:7; }; @@ -36,28 +44,48 @@ EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; EWRAM_DATA u32 gUnknown_203B104 = 0; +struct ListMenuTemplate gUnknown_3005EB0; +u8 gUnknown_3005EC8; + void sub_812C3F8(void); void sub_812C648(void); void sub_812C664(u8 taskId); +void sub_812C694(u8 taskId); +bool8 sub_812C8F8(u8 taskId); +void sub_812C9BC(u8 taskId); +void sub_812CAD8(u8 taskId); +void sub_812CD3C(void); +void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); +void sub_812CEE0(u8 windowId); +void sub_812CEFC(u8 taskId, u8 a1); +void sub_812CF3C(u8 taskId); +void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); +bool8 sub_812D6B4(void); +u8 sub_812D724(s16 a0); +u8 sub_812D7E4(void); +u8 sub_812D888(u8 a0); +void sub_812DA14(u8 a0); void sub_812DB28(void); void sub_812E000(void); +void sub_812E048(void); +u16 sub_812E064(void); +void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); +void sub_812E4A4(u8 a0); + +extern const u16 gUnknown_845C600[]; extern const struct BgTemplate gUnknown_845FBF4[4]; +extern const struct SpriteSheet gUnknown_845FB9C[]; +extern const struct SpritePalette gUnknown_845FBDC[]; extern const struct WindowTemplate gUnknown_845FC04[]; -extern const u16 gUnknown_845C600[0x40]; - -extern const u16 gUnknown_8E9F220[0x30]; -extern const u16 gUnknown_8E9F260[0xa50]; -extern const u16 gUnknown_8EA0700[0x400]; -extern const u16 gUnknown_8EA0F00[0x400]; void sub_812C380(void) { @@ -74,7 +102,7 @@ void sub_812C394(void) UpdatePaletteFade(); } -void sub_812C3AC(u32 a0) +void sub_812C3AC(void (*a0)(void)) { SetVBlankCallback(NULL); gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); @@ -165,3 +193,91 @@ void sub_812C3F8(void) break; } } + +void sub_812C648(void) +{ + LoadSpriteSheets(gUnknown_845FB9C); + LoadSpritePalettes(gUnknown_845FBDC); +} + +void sub_812C664(u8 taskId) +{ + if (!gPaletteFade.active) + gTasks[taskId].func = sub_812C694; +} + +void sub_812C694(u8 taskId) +{ + u16 r4; + u8 r4_2; + struct Task *task = &gTasks[taskId]; + s16 * data = gTasks[taskId].data; + if (FindTaskIdByFunc(sub_812E110) == 0xFF) + { + RunTextPrinters(); + if ((gMain.newKeys & SELECT_BUTTON) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + task->func = sub_812CF3C; + else if (gMain.newKeys & START_BUTTON) + { + r4 = sub_812E064(); + if (sub_812C8F8(taskId) == TRUE) + { + PlaySE(SE_W100); + } + else if (r4 != gUnknown_203B0FC->unk_07_2 - 1) + { + PlaySE(SE_W100); + FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); + sub_812CEE0(3); + sub_812E178(2, 4); + sub_812E178(1, 5); + sub_812D0F4(1); + task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[r4]); + gSprites[task->data[2]].pos2.x = 0xF0; + gSprites[task->data[2]].data[0] = 1; + task->data[3] = sub_812D7E4(); + gSprites[task->data[3]].pos2.x = 0xF0; + gSprites[task->data[3]].data[0] = 1; + task->func = sub_812C9BC; + } + } + else if (gMain.newKeys & A_BUTTON) + { + r4 = ListMenuHandleInput(0); + if (r4 == gUnknown_203B0FC->unk_07_2 - 1) + task->func = sub_812CF3C; + else if (gUnknown_203B0FC->unk_07_1) + { + if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) + sub_812CD3C(); + } + else if (gUnknown_203B0FC->unk_07_0) + { + PlaySE(SE_SELECT); + task->data[0] = sub_812D724(task->data[1]); + for (r4_2 = 0; r4_2 < 6; r4_2++) + { + if (r4_2 != task->data[1]) + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], 1); + } + gUnknown_3005EC8 = 0xFF; + sub_812E4A4(0); + sub_812D0F4(2); + if (gSprites[gUnknown_203B0FC->unk_1D[task->data[1]]].data[1] != 0xFF) + { + sub_812CE04(taskId); + sub_812DA14(data[1]); + } + sub_812E048(); + task->func = sub_812CAD8; + } + } + else if (gMain.newKeys & B_BUTTON) + { + if (sub_812C8F8(taskId) != TRUE) + task->func = sub_812CF3C; + } + else + ListMenuHandleInput(0); + } +} diff --git a/sym_common.txt b/sym_common.txt index 6c213ca4d..af6d7ba4f 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -324,11 +324,7 @@ gUnknown_3005E9C: @ 3005E9C gUnknown_3005EA0: @ 3005EA0 .space 0x10 -gUnknown_3005EB0: @ 3005EB0 - .space 0x18 - -gUnknown_3005EC8: @ 3005EC8 - .space 0x4 + .include "fame_checker.o" gUnknown_3005ECC: @ 3005ECC .space 0x4 From 8ef1594d204e0b933fcfc048e17471191dfae720 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 16:28:05 -0500 Subject: [PATCH 04/49] through sub_812CA1C --- asm/fame_checker.s | 240 --------------------------------------------- src/fame_checker.c | 65 +++++++++++- 2 files changed, 64 insertions(+), 241 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 059b19291..f87b8622f 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,246 +5,6 @@ .text - thumb_func_start sub_812C8F8 -sub_812C8F8: @ 812C8F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0812C91C @ =gTasks - adds r4, r1, r0 - ldr r5, _0812C920 @ =gUnknown_203B0FC - ldr r0, [r5] - ldrb r1, [r0, 0x7] - movs r3, 0x2 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0812C924 - movs r0, 0 - b _0812C982 - .align 2, 0 -_0812C91C: .4byte gTasks -_0812C920: .4byte gUnknown_203B0FC -_0812C924: - ldr r2, _0812C988 @ =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x2E] - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0xA - strh r1, [r0, 0x24] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x24] - adds r1, 0xA - strh r1, [r0, 0x24] - bl sub_812CE9C - ldr r0, _0812C98C @ =sub_812CA1C - str r0, [r4] - bl sub_812C990 - ldr r1, [r5] - adds r1, 0x23 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x1 -_0812C982: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812C988: .4byte gSprites -_0812C98C: .4byte sub_812CA1C - thumb_func_end sub_812C8F8 - - thumb_func_start sub_812C990 -sub_812C990: @ 812C990 - push {lr} - sub sp, 0x10 - ldr r2, _0812C9B8 @ =gUnknown_84181E4 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParametrized - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0812C9B8: .4byte gUnknown_84181E4 - thumb_func_end sub_812C990 - - thumb_func_start sub_812C9BC -sub_812C9BC: @ 812C9BC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0812C9F8 @ =gTasks - adds r4, r1, r0 - ldr r2, _0812C9FC @ =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812CA08 - bl sub_812CD3C - ldr r0, _0812CA00 @ =gUnknown_203B0FC - ldr r2, [r0] - ldrb r0, [r2, 0x7] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x7] - ldr r0, _0812CA04 @ =sub_812C694 - str r0, [r4] - b _0812CA14 - .align 2, 0 -_0812C9F8: .4byte gTasks -_0812C9FC: .4byte gSprites -_0812CA00: .4byte gUnknown_203B0FC -_0812CA04: .4byte sub_812C694 -_0812CA08: - movs r1, 0xA0 - lsls r1, 4 - movs r0, 0x1 - movs r2, 0x1 - bl ChangeBgX -_0812CA14: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812C9BC - - thumb_func_start sub_812CA1C -sub_812CA1C: @ 812CA1C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0812CA44 @ =gTasks - adds r5, r0, r1 - movs r0, 0x1 - bl GetBgX - cmp r0, 0 - beq _0812CA48 - movs r1, 0xA0 - lsls r1, 4 - movs r0, 0x1 - movs r2, 0x2 - bl ChangeBgX - b _0812CA52 - .align 2, 0 -_0812CA44: .4byte gTasks -_0812CA48: - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX -_0812CA52: - ldr r7, _0812CAC8 @ =gSprites - movs r1, 0xC - ldrsh r0, [r5, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0812CAC0 - ldr r6, _0812CACC @ =gUnknown_203B0FC - ldr r0, [r6] - ldrb r1, [r0, 0x7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812CA7C - movs r0, 0 - bl sub_812D0F4 -_0812CA7C: - movs r0, 0x1 - movs r1, 0x4 - bl sub_812E178 - movs r0, 0x2 - movs r1, 0x2 - bl sub_812E178 - ldr r2, [r6] - ldrb r1, [r2, 0x7] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x7] - bl sub_812E064 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_812D9A8 - ldr r0, _0812CAD0 @ =sub_812C694 - str r0, [r5] - movs r0, 0xE - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r7, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0812CAD4 @ =sub_812D800 - str r1, [r0] -_0812CAC0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CAC8: .4byte gSprites -_0812CACC: .4byte gUnknown_203B0FC -_0812CAD0: .4byte sub_812C694 -_0812CAD4: .4byte sub_812D800 - thumb_func_end sub_812CA1C - thumb_func_start sub_812CAD8 sub_812CAD8: @ 812CAD8 push {r4-r6,lr} diff --git a/src/fame_checker.c b/src/fame_checker.c index 0f047f612..81aeb7aee 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -2,6 +2,7 @@ #include "constants/songs.h" #include "bg.h" #include "graphics.h" +#include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" #include "gpu_regs.h" @@ -29,7 +30,8 @@ struct FameCheckerData u8 unk_0C[17]; u8 unk_1D[6]; u8 unk_23_0:1; - u8 unk_23_1:7; + u8 unk_23_1:1; + u8 unk_23_2:1; }; struct FameCheckerData2 @@ -52,7 +54,9 @@ void sub_812C648(void); void sub_812C664(u8 taskId); void sub_812C694(u8 taskId); bool8 sub_812C8F8(u8 taskId); +void sub_812C990(void); void sub_812C9BC(u8 taskId); +void sub_812CA1C(u8 taskId); void sub_812CAD8(u8 taskId); void sub_812CD3C(void); void sub_812CE04(u8 taskId); @@ -70,7 +74,9 @@ void sub_812D594(void); bool8 sub_812D6B4(void); u8 sub_812D724(s16 a0); u8 sub_812D7E4(void); +void sub_812D800(struct Sprite *sprite); u8 sub_812D888(u8 a0); +void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB28(void); void sub_812E000(void); @@ -80,6 +86,7 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; extern const struct BgTemplate gUnknown_845FBF4[4]; @@ -281,3 +288,59 @@ void sub_812C694(u8 taskId) ListMenuHandleInput(0); } } + +bool8 sub_812C8F8(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (gUnknown_203B0FC->unk_07_1) + { + gSprites[task->data[2]].data[0] = 2; + gSprites[task->data[2]].pos2.x += 10; + gSprites[task->data[3]].data[0] = 2; + gSprites[task->data[3]].pos2.x += 10; + sub_812CE9C(); + task->func = sub_812CA1C; + sub_812C990(); + gUnknown_203B0FC->unk_23_2 = FALSE; + return TRUE; + } + return FALSE; +} + +void sub_812C990(void) +{ + AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); +} + +void sub_812C9BC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (gSprites[task->data[2]].data[0] == 0) + { + sub_812CD3C(); + gUnknown_203B0FC->unk_07_1 = TRUE; + task->func = sub_812C694; + } + else + ChangeBgX(1, 0xA00, 1); +} + +void sub_812CA1C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (GetBgX(1) != 0) + ChangeBgX(1, 0xA00, 2); + else + ChangeBgX(1, 0x000, 0); + if (gSprites[task->data[2]].data[0] == 0) + { + if (gUnknown_203B0FC->unk_07_0) + sub_812D0F4(0); + sub_812E178(1, 4); + sub_812E178(2, 2); + gUnknown_203B0FC->unk_07_1 = FALSE; + sub_812D9A8(taskId, sub_812E064()); + task->func = sub_812C694; + gSprites[task->data[3]].callback = sub_812D800; + } +} From 93f67f9557109d85e191283b171f7f5e8028b7bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 20:04:50 -0500 Subject: [PATCH 05/49] sub_812CAD8 New macro `PRESSED(x)` tests `gMain.newKeys & (x)`. The macro itself is inoptimal. However, its use is required to match this function. We suspect this macro may have been implemented globally, hence we put it in `global.h`. Propagating its use through the remainder of this project, as well as [Ruby](/pret/pokeruby) and [Emerald](/pret/pokeemerald), has been left as a to-do item. --- asm/fame_checker.s | 194 --------------------------------------------- include/global.h | 7 ++ src/fame_checker.c | 81 ++++++++++++++++++- 3 files changed, 84 insertions(+), 198 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index f87b8622f..80c8fa2a8 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,200 +5,6 @@ .text - thumb_func_start sub_812CAD8 -sub_812CAD8: @ 812CAD8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - ldr r0, _0812CB9C @ =gTasks - adds r5, r1, r0 - adds r0, 0x8 - adds r6, r1, r0 - bl RunTextPrinters - ldr r0, _0812CBA0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812CB2E - movs r0, 0x2 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0812CB2E - ldr r0, _0812CBA4 @ =gUnknown_203B0FC - ldr r0, [r0] - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r0, 0x1D - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0812CBA8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x30 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - beq _0812CB2E - adds r0, r4, 0 - bl sub_812CE04 -_0812CB2E: - ldr r0, _0812CBA0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812CBB8 - movs r0, 0x5 - bl PlaySE - movs r4, 0 - ldr r6, _0812CBA4 @ =gUnknown_203B0FC -_0812CB44: - ldr r0, [r6] - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl sub_812CEFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812CB44 - bl sub_812CE9C - ldr r2, _0812CBA8 @ =gSprites - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0812CBAC @ =sub_812D764 - str r1, [r0] - ldr r0, _0812CBB0 @ =gUnknown_3005EC8 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0812CB80 - bl sub_812DB10 -_0812CB80: - movs r0, 0x1 - bl sub_812E4A4 - movs r0, 0 - bl sub_812D0F4 - bl sub_812E000 - bl sub_812C990 - ldr r0, _0812CBB4 @ =sub_812C694 - str r0, [r5] - b _0812CC62 - .align 2, 0 -_0812CB9C: .4byte gTasks -_0812CBA0: .4byte gMain -_0812CBA4: .4byte gUnknown_203B0FC -_0812CBA8: .4byte gSprites -_0812CBAC: .4byte sub_812D764 -_0812CBB0: .4byte gUnknown_3005EC8 -_0812CBB4: .4byte sub_812C694 -_0812CBB8: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0812CBC8 - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0812CBF4 -_0812CBC8: - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0x2 - ble _0812CBE4 - subs r0, r1, 0x3 - strh r0, [r5, 0xA] - movs r2, 0x1B - negs r2, r2 - adds r0, r4, 0 - movs r1, 0 - bl sub_812CC68 - b _0812CC62 -_0812CBE4: - adds r0, r1, 0x3 - strh r0, [r5, 0xA] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1B - bl sub_812CC68 - b _0812CC62 -_0812CBF4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0812CC26 - ldrh r6, [r5, 0xA] - movs r1, 0xA - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0812CC12 - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _0812CC1C -_0812CC12: - adds r0, r6, 0x2 - strh r0, [r5, 0xA] - adds r0, r4, 0 - movs r1, 0x5E - b _0812CC4A -_0812CC1C: - subs r0, r6, 0x1 - strh r0, [r5, 0xA] - movs r1, 0x2F - negs r1, r1 - b _0812CC48 -_0812CC26: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0812CC62 - movs r1, 0xA - ldrsh r0, [r5, r1] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - cmp r0, 0 - bne _0812CC52 - ldrh r0, [r5, 0xA] - subs r0, 0x2 - strh r0, [r5, 0xA] - movs r1, 0x5E - negs r1, r1 -_0812CC48: - adds r0, r4, 0 -_0812CC4A: - movs r2, 0 - bl sub_812CC68 - b _0812CC62 -_0812CC52: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - adds r0, r4, 0 - movs r1, 0x2F - movs r2, 0 - bl sub_812CC68 -_0812CC62: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812CAD8 - thumb_func_start sub_812CC68 sub_812CC68: @ 812CC68 push {r4-r7,lr} diff --git a/include/global.h b/include/global.h index 050e200f9..3dc11bfbd 100644 --- a/include/global.h +++ b/include/global.h @@ -62,6 +62,13 @@ #define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) #define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) +// This macro is required to prevent the compiler from optimizing +// a dpad up/down check in sub_812CAD8 (fame_checker.c). +// We suspect it was used globally. +// GameFreak never ceases to amaze. +// TODO: Propagate use of this macro +#define PRESSED(button) ({gMain.newKeys & (button);}) + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; diff --git a/src/fame_checker.c b/src/fame_checker.c index 81aeb7aee..e83eaa301 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/songs.h" +#include "sprite.h" #include "bg.h" #include "graphics.h" #include "new_menu_helpers.h" @@ -58,6 +59,7 @@ void sub_812C990(void); void sub_812C9BC(u8 taskId); void sub_812CA1C(u8 taskId); void sub_812CAD8(u8 taskId); +void sub_812CC68(u8 taskId, s8 dx, s8 dy); void sub_812CD3C(void); void sub_812CE04(u8 taskId); void sub_812CE9C(void); @@ -73,11 +75,13 @@ void sub_812D584(void); void sub_812D594(void); bool8 sub_812D6B4(void); u8 sub_812D724(s16 a0); +void sub_812D764(struct Sprite *sprite); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); u8 sub_812D888(u8 a0); void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); +void sub_812DB10(void); void sub_812DB28(void); void sub_812E000(void); void sub_812E048(void); @@ -222,9 +226,9 @@ void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((gMain.newKeys & SELECT_BUTTON) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) task->func = sub_812CF3C; - else if (gMain.newKeys & START_BUTTON) + else if (PRESSED(START_BUTTON)) { r4 = sub_812E064(); if (sub_812C8F8(taskId) == TRUE) @@ -248,7 +252,7 @@ void sub_812C694(u8 taskId) task->func = sub_812C9BC; } } - else if (gMain.newKeys & A_BUTTON) + else if (PRESSED(A_BUTTON)) { r4 = ListMenuHandleInput(0); if (r4 == gUnknown_203B0FC->unk_07_2 - 1) @@ -279,7 +283,7 @@ void sub_812C694(u8 taskId) task->func = sub_812CAD8; } } - else if (gMain.newKeys & B_BUTTON) + else if (PRESSED(B_BUTTON)) { if (sub_812C8F8(taskId) != TRUE) task->func = sub_812CF3C; @@ -344,3 +348,72 @@ void sub_812CA1C(u8 taskId) gSprites[task->data[3]].callback = sub_812D800; } } + +void sub_812CAD8(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *data = gTasks[taskId].data; + + RunTextPrinters(); + if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) + { + u8 spriteId = gUnknown_203B0FC->unk_1D[data[1]]; + if (gSprites[spriteId].data[1] != 0xFF) + sub_812CE04(taskId); + } + if (PRESSED(B_BUTTON)) + { + u8 r4; + PlaySE(SE_SELECT); + for (r4 = 0; r4 < 6; r4++) + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], 0); + sub_812CE9C(); + gSprites[task->data[0]].callback = sub_812D764; + if (gUnknown_3005EC8 != 0xFF) + sub_812DB10(); + sub_812E4A4(1); + sub_812D0F4(0); + sub_812E000(); + sub_812C990(); + task->func = sub_812C694; + } + else if (PRESSED(DPAD_UP) || PRESSED(DPAD_DOWN)) + { + if (task->data[1] >= 3) + { + task->data[1] -= 3; + sub_812CC68(taskId, 0, -0x1b); + } + else + { + task->data[1] += 3; + sub_812CC68(taskId, 0, +0x1b); + } + } + else if (PRESSED(DPAD_LEFT)) + { + if (task->data[1] == 0 || task->data[1] % 3 == 0) + { + task->data[1] += 2; + sub_812CC68(taskId, +0x5e, 0); + } + else + { + task->data[1]--; + sub_812CC68(taskId, -0x2f, 0); + } + } + else if (PRESSED(DPAD_RIGHT)) + { + if ((task->data[1] + 1) % 3 == 0) + { + task->data[1] -= 2; + sub_812CC68(taskId, -0x5e, 0); + } + else + { + task->data[1]++; + sub_812CC68(taskId, +0x2f, 0); + } + } +} From c60b28011871abaf987a46a6da6823ce451fa66d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 21:41:18 -0500 Subject: [PATCH 06/49] through sub_812CD3C --- asm/fame_checker.s | 197 ------------------------------------- charmap.txt | 7 +- data/event_scripts.s | 7 +- data/fame_checker.s | 34 ++++++- data/text/fame_checker.inc | 185 ++++++++++++++++++++++++++++++++++ include/global.h | 8 +- include/new_menu_helpers.h | 1 + src/fame_checker.c | 44 ++++++++- 8 files changed, 281 insertions(+), 202 deletions(-) create mode 100644 data/text/fame_checker.inc diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 80c8fa2a8..9cc4bf4ee 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,203 +5,6 @@ .text - thumb_func_start sub_812CC68 -sub_812CC68: @ 812CC68 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _0812CD18 @ =gTasks+0x8 - adds r6, r0, r1 - movs r0, 0xBB - bl PlaySE - ldr r2, _0812CD1C @ =gSprites - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - lsls r4, 24 - asrs r4, 24 - ldrh r1, [r0, 0x20] - adds r4, r1 - strh r4, [r0, 0x20] - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - lsls r5, 24 - asrs r5, 24 - ldrh r1, [r0, 0x22] - adds r5, r1 - strh r5, [r0, 0x22] - movs r4, 0 - ldr r5, _0812CD20 @ =gUnknown_203B0FC -_0812CCBE: - ldr r0, [r5] - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_812CEFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812CCBE - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_812C990 - ldr r0, _0812CD20 @ =gUnknown_203B0FC - ldr r0, [r0] - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r0, 0x1D - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_812CEFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812CD24 - adds r0, r7, 0 - bl sub_812CE04 - ldrb r0, [r6, 0x2] - bl sub_812DA14 - b _0812CD30 - .align 2, 0 -_0812CD18: .4byte gTasks+0x8 -_0812CD1C: .4byte gSprites -_0812CD20: .4byte gUnknown_203B0FC -_0812CD24: - ldr r0, _0812CD38 @ =gUnknown_3005EC8 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0812CD30 - bl sub_812DB10 -_0812CD30: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CD38: .4byte gUnknown_3005EC8 - thumb_func_end sub_812CC68 - - thumb_func_start sub_812CD3C -sub_812CD3C: @ 812CD3C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - bl sub_812E064 - lsls r0, 16 - lsrs r0, 16 - adds r6, r0, 0 - ldr r0, _0812CD7C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r7, _0812CD80 @ =gUnknown_203B0FC - ldr r0, [r7] - adds r0, 0xC - adds r0, r6 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, _0812CD84 @ =0x00003a54 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - lsrs r5, r0, 30 - cmp r5, 0x2 - beq _0812CD88 - bl sub_812CE9C - bl sub_812C990 - b _0812CDEE - .align 2, 0 -_0812CD7C: .4byte gSaveBlock1Ptr -_0812CD80: .4byte gUnknown_203B0FC -_0812CD84: .4byte 0x00003a54 -_0812CD88: - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_812D6B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812CDAC - movs r0, 0x10 - mov r8, r0 -_0812CDAC: - ldr r4, _0812CDFC @ =gStringVar4 - ldr r1, _0812CE00 @ =gUnknown_845F63C - ldr r0, [r7] - adds r0, 0xC - adds r0, r6 - ldrb r0, [r0] - add r0, r8 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80F78A8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0x2 - bl sub_812CEE0 -_0812CDEE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CDFC: .4byte gStringVar4 -_0812CE00: .4byte gUnknown_845F63C - thumb_func_end sub_812CD3C - thumb_func_start sub_812CE04 sub_812CE04: @ 812CE04 push {r4-r6,lr} diff --git a/charmap.txt b/charmap.txt index f89919509..fc9cbc0a8 100644 --- a/charmap.txt +++ b/charmap.txt @@ -383,6 +383,11 @@ ENG = FC 16 PAUSE_MUSIC = FC 17 RESUME_MUSIC = FC 18 +@ font sizes + +SMALL = FC 06 00 +BIG = FC 06 04 + @ colors TRANSPARENT = 00 @@ -393,7 +398,7 @@ BLUE = 04 YELLOW = 05 CYAN = 06 MAGENTA = 07 -LIGHT_GREY = 08 +LIGHT_GRAY = 08 BLACK = 09 BLACK2 = 0A @ duplicate of black? SILVER = 0B diff --git a/data/event_scripts.s b/data/event_scripts.s index 6bfa500cc..4161c97d7 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -226,7 +226,12 @@ gUnknown_81A8DD8:: @ 81A8DD8 .incbin "baserom.gba", 0x1A8DD8, 0x25 gUnknown_81A8DFD:: @ 81A8DFD - .incbin "baserom.gba", 0x1A8DFD, 0xA072 + .incbin "baserom.gba", 0x1A8DFD, 0x738b + + .include "data/text/fame_checker.inc" + +gUnknown_81B0C45:: @ 0x81B0C45 + .incbin "baserom.gba", 0x1B0C45, 0x222A gUnknown_81B2E6F:: @ 81B2E6F .incbin "baserom.gba", 0x1B2E6F, 0x15A diff --git a/data/fame_checker.s b/data/fame_checker.s index 037891818..7f58fde76 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -40,8 +40,40 @@ gUnknown_845F60C:: @ 845F60C gUnknown_845F61C:: @ 845F61C .incbin "baserom.gba", 0x45F61C, 0x20 + gUnknown_845F63C:: @ 845F63C - .incbin "baserom.gba", 0x45F63C, 0x80 + .4byte gUnknown_81B0188 + .4byte gUnknown_81B0251 + .4byte gUnknown_81B030F + .4byte gUnknown_81B03B3 + .4byte gUnknown_81B0446 + .4byte gUnknown_81B0504 + .4byte gUnknown_81B05C2 + .4byte gUnknown_81B0667 + .4byte gUnknown_81B06FB + .4byte gUnknown_81B079F + .4byte gUnknown_81B0845 + .4byte gUnknown_81B08EE + .4byte gUnknown_81B097F + .4byte gUnknown_81B0A45 + .4byte gUnknown_81B0AFF + .4byte gUnknown_81B0BA6 + .4byte gUnknown_81B0198 + .4byte gUnknown_81B025D + .4byte gUnknown_81B031B + .4byte gUnknown_81B03BF + .4byte gUnknown_81B0456 + .4byte gUnknown_81B0510 + .4byte gUnknown_81B05CD + .4byte gUnknown_81B0675 + .4byte gUnknown_81B0708 + .4byte gUnknown_81B07AD + .4byte gUnknown_81B0851 + .4byte gUnknown_81B08FB + .4byte gUnknown_81B098B + .4byte gUnknown_81B0A50 + .4byte gUnknown_81B0B0E + .4byte gUnknown_81B0BB5 gUnknown_845F6BC:: @ 845F6BC .incbin "baserom.gba", 0x45F6BC, 0x180 diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc new file mode 100644 index 000000000..4462ce62f --- /dev/null +++ b/data/text/fame_checker.inc @@ -0,0 +1,185 @@ +gUnknown_81B0188:: @ 0x81B0188 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}PROF. OAK$" + +gUnknown_81B0198:: @ 0x81B0198 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: PROF. OAK\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Why do POKéMON compete and battle\n" + .string "so hard for you?\p" + .string "They do so because they can see\n" + .string "the love and trust you have\l" + .string "towards POKéMON.\p" + .string "Never forget that.$" + +gUnknown_81B0251:: @ 0x81B0251 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}DAISY$" + +gUnknown_81B025D:: @ 0x81B025D + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: DAISY\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}While I was comfortably enjoying\n" + .string "my tea breaks, you’ve grown very\l" + .string "skilled and powerful.\p" + .string "I hope you’ll remain a good rival\n" + .string "to my little brother.$" + +gUnknown_81B030F:: @ 0x81B030F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BROCK$" + +gUnknown_81B031B:: @ 0x81B031B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BROCK\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}In this big world of ours, there\n" + .string "must be many tough TRAINERS.\p" + .string "Let’s both keep training and\n" + .string "making ourselves stronger!$" + +gUnknown_81B03B3:: @ 0x81B03B3 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MISTY$" + +gUnknown_81B03BF:: @ 0x81B03BF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MISTY\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I’m going to keep training here at\n" + .string "this GYM.\p" + .string "When I get better, I’d love to hit\n" + .string "the road and travel.$" + +gUnknown_81B0446:: @ 0x81B0446 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LT. SURGE$" + +gUnknown_81B0456:: @ 0x81B0456 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LT. SURGE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, kid!\n" + .string "You electrified me in our battle!\p" + .string "I didn’t know that there were\n" + .string "gutsy TRAINERS like you.\p" + .string "It made me change my mind about\n" + .string "you!$" + +gUnknown_81B0504:: @ 0x81B0504 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}ERIKA$" + +gUnknown_81B0510:: @ 0x81B0510 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: ERIKA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am so glad that there are strong\n" + .string "TRAINERS like you.\p" + .string "That awareness alone inspires and\n" + .string "motivates me to try harder.\p" + .string "Please visit me again.\n" + .string "Zzz…$" + +gUnknown_81B05C2:: @ 0x81B05C2 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}KOGA$" + +gUnknown_81B05CD:: @ 0x81B05CD + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: KOGA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You and I, we must both set our\n" + .string "sights higher and work towards\l" + .string "meeting our challenges.\p" + .string "Now, I must go train my daughter.$" + +gUnknown_81B0667:: @ 0x81B0667 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}SABRINA$" + +gUnknown_81B0675:: @ 0x81B0675 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: SABRINA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}The love you have towards your\n" + .string "POKéMON…\p" + .string "It was a power that was never\n" + .string "bested by my psychic power.$" + +gUnknown_81B06FB:: @ 0x81B06FB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BLAINE$" + +gUnknown_81B0708:: @ 0x81B0708 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BLAINE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fire POKéMON!\n" + .string "They’ll become even more powerful!\p" + .string "And now, a quiz. How many kinds of\n" + .string "FIRE-type POKéMON are there?$" + +gUnknown_81B079F:: @ 0x81B079F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LORELEI$" + +gUnknown_81B07AD:: @ 0x81B07AD + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LORELEI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I needed to thank you for your\n" + .string "help.\p" + .string "But that has nothing to do with our\n" + .string "battles.\p" + .string "You’d better watch out next time!$" + +gUnknown_81B0845:: @ 0x81B0845 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BRUNO$" + +gUnknown_81B0851:: @ 0x81B0851 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BRUNO\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The super power of your POKéMON\n" + .string "and you I’ve experienced myself.\p" + .string "Next time, maybe I should show you\n" + .string "how to train yourself.$" + +gUnknown_81B08EE:: @ 0x81B08EE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}AGATHA$" + +gUnknown_81B08FB:: @ 0x81B08FB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: AGATHA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}When you grow older, don’t you\n" + .string "dare go soft like that coot OAK!\p" + .string "Be like me and keep battling on!$" + +gUnknown_81B097F:: @ 0x81B097F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LANCE$" + +gUnknown_81B098B:: @ 0x81B098B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LANCE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’m considering going back to my\n" + .string "hometown.\p" + .string "I want to retrain my DRAGON-type\n" + .string "POKéMON and strengthen them.\p" + .string "I’d like to invite you to my\n" + .string "hometown one day.$" + +gUnknown_81B0A45:: @ 0x81B0A45 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BILL$" + +gUnknown_81B0A50:: @ 0x81B0A50 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BILL\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, there! CELIO had nothing but\n" + .string "praise for you.\p" + .string "Hearing that makes me happy.\p" + .string "When you catch some rare POKéMON,\n" + .string "come show me, okay? Promise!$" + +gUnknown_81B0AFF:: @ 0x81B0AFF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MR. FUJI$" + +gUnknown_81B0B0E:: @ 0x81B0B0E + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MR. FUJI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Instead of hoping for the happiness\n" + .string "of just your POKéMON…\p" + .string "…Can I get you to wish for the\n" + .string "happiness of all POKéMON?$" + +gUnknown_81B0BA6:: @ 0x81B0BA6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}GIOVANNI$" + +gUnknown_81B0BB5:: @ 0x81B0BB5 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: GIOVANNI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There is nothing that I wish to say\n" + .string "to you.\p" + .string "I will concentrate solely on\n" + .string "bettering myself, and none other.$" diff --git a/include/global.h b/include/global.h index 3dc11bfbd..568ece2be 100644 --- a/include/global.h +++ b/include/global.h @@ -570,6 +570,11 @@ struct QuestLog /*0x0668*/ u16 end[0]; }; +struct FameCheckerSaveData +{ + /*3a54*/ u8 unk_0_0:2; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 288 // 300 @@ -634,7 +639,8 @@ struct SaveBlock1 /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; - /*0x3A54*/ u8 filler3A54[0x2E4]; + /*0x3A54*/ struct FameCheckerSaveData fameChecker[17]; + /*0x3A98*/ u8 filler3A94[0x2A0]; u32 unkArray[4][3]; }; diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 639395941..432d06c81 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -16,5 +16,6 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_80F6F54(u8, u8); +u8 sub_80F78A8(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index e83eaa301..70fad0094 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -14,6 +14,7 @@ #include "sound.h" #include "text.h" #include "window.h" +#include "string_util.h" #include "text_window.h" struct FameCheckerData @@ -65,7 +66,7 @@ void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); void sub_812CEE0(u8 windowId); -void sub_812CEFC(u8 taskId, u8 a1); +bool8 sub_812CEFC(u8 taskId, u8 a1); void sub_812CF3C(u8 taskId); void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); @@ -93,6 +94,7 @@ void sub_812E4A4(u8 a0); extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; +extern const u8 *const gUnknown_845F63C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -417,3 +419,43 @@ void sub_812CAD8(u8 taskId) } } } + +void sub_812CC68(u8 taskId, s8 dx, s8 dy) +{ + u8 i; + s16 *data = gTasks[taskId].data; + PlaySE(SE_W155); + gSprites[data[0]].pos1.x += dx; + gSprites[data[0]].pos1.y += dy; + for (i = 0; i < 6; i++) + sub_812CEFC(gUnknown_203B0FC->unk_1D[i], 1); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812C990(); + if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], 0) == TRUE) + { + sub_812CE04(taskId); + sub_812DA14(data[1]); + } + else if (gUnknown_3005EC8 != 0xFF) + sub_812DB10(); +} + +void sub_812CD3C(void) +{ + u8 r8 = 0; + u16 r6 = sub_812E064(); + if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[r6]].unk_0_0 != 2) + { + sub_812CE9C(); + sub_812C990(); + } + else + { + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + if (sub_812D6B4() == TRUE) + r8 = 16; + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), 0, 2, 1, 3); + sub_812CEE0(2); + } +} From 3bbaaa4a737193294499176cce4638100c0941f5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 22:13:10 -0500 Subject: [PATCH 07/49] sub_812CE04 --- asm/fame_checker.s | 71 ----- data/event_scripts.s | 2 +- data/fame_checker.s | 97 +++++- data/text/fame_checker.inc | 613 +++++++++++++++++++++++++++++++++++++ src/fame_checker.c | 13 +- 5 files changed, 722 insertions(+), 74 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 9cc4bf4ee..5a8b79754 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,77 +5,6 @@ .text - thumb_func_start sub_812CE04 -sub_812CE04: @ 812CE04 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0812CE8C @ =gTasks+0x8 - adds r4, r0 - bl sub_812E064 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - ldr r6, _0812CE90 @ =gStringVar4 - ldr r2, _0812CE94 @ =gUnknown_845F6BC - ldr r0, _0812CE98 @ =gUnknown_203B0FC - ldr r0, [r0] - adds r0, 0xC - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - movs r3, 0x2 - ldrsh r1, [r4, r3] - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, [r0] - adds r0, r6, 0 - bl StringExpandPlaceholders - bl sub_80F78A8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r6, 0 - bl AddTextPrinterParametrized - movs r0, 0x2 - bl sub_812CEE0 - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812CE8C: .4byte gTasks+0x8 -_0812CE90: .4byte gStringVar4 -_0812CE94: .4byte gUnknown_845F6BC -_0812CE98: .4byte gUnknown_203B0FC - thumb_func_end sub_812CE04 - thumb_func_start sub_812CE9C sub_812CE9C: @ 812CE9C push {lr} diff --git a/data/event_scripts.s b/data/event_scripts.s index 4161c97d7..764de7637 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -226,7 +226,7 @@ gUnknown_81A8DD8:: @ 81A8DD8 .incbin "baserom.gba", 0x1A8DD8, 0x25 gUnknown_81A8DFD:: @ 81A8DFD - .incbin "baserom.gba", 0x1A8DFD, 0x738b + .incbin "baserom.gba", 0x1A8DFD, 0x4309 .include "data/text/fame_checker.inc" diff --git a/data/fame_checker.s b/data/fame_checker.s index 7f58fde76..e1659f86b 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -76,7 +76,102 @@ gUnknown_845F63C:: @ 845F63C .4byte gUnknown_81B0BB5 gUnknown_845F6BC:: @ 845F6BC - .incbin "baserom.gba", 0x45F6BC, 0x180 + .4byte gUnknown_81AD106 + .4byte gUnknown_81AD145 + .4byte gUnknown_81AD1BB + .4byte gUnknown_81AD258 + .4byte gUnknown_81AD2B9 + .4byte gUnknown_81AD377 + .4byte gUnknown_81AD40C + .4byte gUnknown_81AD4AE + .4byte gUnknown_81AD516 + .4byte gUnknown_81AD5A7 + .4byte gUnknown_81AD608 + .4byte gUnknown_81AD69F + .4byte gUnknown_81AD705 + .4byte gUnknown_81AD771 + .4byte gUnknown_81AD840 + .4byte gUnknown_81AD908 + .4byte gUnknown_81AD99A + .4byte gUnknown_81ADA27 + .4byte gUnknown_81ADA91 + .4byte gUnknown_81ADAF6 + .4byte gUnknown_81ADB5A + .4byte gUnknown_81ADBD9 + .4byte gUnknown_81ADC72 + .4byte gUnknown_81ADCEB + .4byte gUnknown_81ADD3C + .4byte gUnknown_81ADDA7 + .4byte gUnknown_81ADE0B + .4byte gUnknown_81ADE82 + .4byte gUnknown_81ADEEC + .4byte gUnknown_81ADF6A + .4byte gUnknown_81AE009 + .4byte gUnknown_81AE072 + .4byte gUnknown_81AE0F3 + .4byte gUnknown_81AE15B + .4byte gUnknown_81AE1E5 + .4byte gUnknown_81AE247 + .4byte gUnknown_81AE2B6 + .4byte gUnknown_81AE31D + .4byte gUnknown_81AE37D + .4byte gUnknown_81AE407 + .4byte gUnknown_81AE48D + .4byte gUnknown_81AE51B + .4byte gUnknown_81AE5E8 + .4byte gUnknown_81AE656 + .4byte gUnknown_81AE6D7 + .4byte gUnknown_81AE762 + .4byte gUnknown_81AE7CB + .4byte gUnknown_81AE841 + .4byte gUnknown_81AE89E + .4byte gUnknown_81AE90A + .4byte gUnknown_81AE990 + .4byte gUnknown_81AEA59 + .4byte gUnknown_81AEAEE + .4byte gUnknown_81AEB69 + .4byte gUnknown_81AEBDF + .4byte gUnknown_81AEC28 + .4byte gUnknown_81AEC82 + .4byte gUnknown_81AED27 + .4byte gUnknown_81AEDAA + .4byte gUnknown_81AEE51 + .4byte gUnknown_81AEF25 + .4byte gUnknown_81AEF6C + .4byte gUnknown_81AEFC6 + .4byte gUnknown_81AF04C + .4byte gUnknown_81AF0F0 + .4byte gUnknown_81AF19A + .4byte gUnknown_81AF200 + .4byte gUnknown_81AF248 + .4byte gUnknown_81AF2B7 + .4byte gUnknown_81AF34E + .4byte gUnknown_81AF3BE + .4byte gUnknown_81AF47C + .4byte gUnknown_81AF4FD + .4byte gUnknown_81AF567 + .4byte gUnknown_81AF641 + .4byte gUnknown_81AF6BA + .4byte gUnknown_81AF758 + .4byte gUnknown_81AF7CB + .4byte gUnknown_81AF83E + .4byte gUnknown_81AF8CA + .4byte gUnknown_81AF929 + .4byte gUnknown_81AF998 + .4byte gUnknown_81AFA20 + .4byte gUnknown_81AFAB9 + .4byte gUnknown_81AFB0C + .4byte gUnknown_81AFB76 + .4byte gUnknown_81AFC38 + .4byte gUnknown_81AFCE9 + .4byte gUnknown_81AFD49 + .4byte gUnknown_81AFDC4 + .4byte gUnknown_81AFE68 + .4byte gUnknown_81AFF23 + .4byte gUnknown_81AFFA8 + .4byte gUnknown_81B0022 + .4byte gUnknown_81B00A6 + .4byte gUnknown_81B0106 gUnknown_845F83C:: @ 845F83C .incbin "baserom.gba", 0x45F83C, 0x60 diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc index 4462ce62f..fd4864dc8 100644 --- a/data/text/fame_checker.inc +++ b/data/text/fame_checker.inc @@ -1,3 +1,616 @@ +gUnknown_81AD106:: @ 0x81AD106 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}OAK POKéMON RESEARCH LAB$" + +gUnknown_81AD145:: @ 0x81AD145 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}To make a complete guide on all\n" + .string "the POKéMON in the world…\p" + .string "That was my dream!$" + +gUnknown_81AD1BB:: @ 0x81AD1BB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}PROF. OAK may not look like much,\n" + .string "but he’s the authority on POKéMON.\p" + .string "Many POKéMON TRAINERS hold him in\n" + .string "high regard.$" + +gUnknown_81AD258:: @ 0x81AD258 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{COLOR RED}{SHADOW GREEN}PROF. OAK reportedly lives with his\n" + .string "grandchildren, DAISY and {RIVAL}.$" + +gUnknown_81AD2B9:: @ 0x81AD2B9 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He’s a shadow of his former self.$" + +gUnknown_81AD377:: @ 0x81AD377 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}PROF. OAK is going to have his own\n" + .string "radio show soon.\p" + .string "The program will be called PROF.\n" + .string "OAK’S POKéMON SEMINAR.$" + +gUnknown_81AD40C:: @ 0x81AD40C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}If you show DAISY your POKéMON,\n" + .string "she can tell how much it likes you.\p" + .string "Occasionally, she will even groom\n" + .string "a POKéMON for you.$" + +gUnknown_81AD4AE:: @ 0x81AD4AE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}But the person who is most liked by\n" + .string "POKéMON is DAISY, I think.$" + +gUnknown_81AD516:: @ 0x81AD516 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}She was gently grooming POKéMON…\n" + .string "She was a little angel.\p" + .string "That little girl’s name…\n" + .string "I think it was DAISY.$" + +gUnknown_81AD5A7:: @ 0x81AD5A7 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{COLOR RED}{SHADOW GREEN}PROF. OAK reportedly lives with his\n" + .string "grandchildren, DAISY and {RIVAL}.$" + +gUnknown_81AD608:: @ 0x81AD608 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}A girl from PALLET TOWN, DAISY,\n" + .string "she enjoys TEA every day.\p" + .string "She visits the CELADON DEPT. STORE\n" + .string "to buy some TEA.$" + +gUnknown_81AD69F:: @ 0x81AD69F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}The Spring POKéMON CONTEST’s\n" + .string "Grand Champion is DAISY OAK of\l" + .string "PALLET TOWN!$" + +gUnknown_81AD705:: @ 0x81AD705 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}PEWTER CITY POKéMON GYM\n" + .string "LEADER: BROCK\l" + .string "The Rock-Solid POKéMON TRAINER!$" + +gUnknown_81AD771:: @ 0x81AD771 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My rock-hard willpower is evident\n" + .string "in even my POKéMON.\p" + .string "My POKéMON are all rock hard and\n" + .string "have true-grit determination.\p" + .string "That’s right - my POKéMON are all\n" + .string "the ROCK type!$" + +gUnknown_81AD840:: @ 0x81AD840 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There aren’t many serious POKéMON\n" + .string "TRAINERS here.\p" + .string "They’re all like BUG CATCHERS,\n" + .string "you know, just hobbyists.\p" + .string "But PEWTER GYM’s BROCK isn’t like\n" + .string "that, not one bit.$" + +gUnknown_81AD908:: @ 0x81AD908 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BROCK is cool. He’s not just tough.\n" + .string "People like and respect him.\p" + .string "I want to become a GYM LEADER\n" + .string "like him.$" + +gUnknown_81AD99A:: @ 0x81AD99A + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hi, I’m excavating for fossils here\n" + .string "under MT. MOON.\p" + .string "Sometimes, BROCK of PEWTER GYM\n" + .string "lends me a hand.$" + +gUnknown_81ADA27:: @ 0x81ADA27 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{COLOR RED}{SHADOW GREEN}BROCK rarely laughs, but is said to\n" + .string "be unable to stop if he starts.$" + +gUnknown_81ADA91:: @ 0x81ADA91 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}CERULEAN CITY POKéMON GYM\n" + .string "LEADER: MISTY\l" + .string "The Tomboyish Mermaid!$" + +gUnknown_81ADAF6:: @ 0x81ADAF6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}My policy is an all-out offensive\n" + .string "with WATER-type POKéMON!$" + +gUnknown_81ADB5A:: @ 0x81ADB5A + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}MISTY is a TRAINER who’s going to\n" + .string "keep improving.\p" + .string "She won’t lose to someone like you!$" + +gUnknown_81ADBD9:: @ 0x81ADBD9 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Strong TRAINERS and WATER POKéMON\n" + .string "are common sights in these parts.\p" + .string "They say that MISTY of the\n" + .string "CERULEAN GYM trains here.$" + +gUnknown_81ADC72:: @ 0x81ADC72 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}This cape is a famous date spot.\p" + .string "MISTY, the GYM LEADER, has high\n" + .string "hopes about this place.$" + +gUnknown_81ADCEB:: @ 0x81ADCEB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}MISTY is said to worship LORELEI\n" + .string "of the ELITE FOUR.$" + +gUnknown_81ADD3C:: @ 0x81ADD3C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}VERMILION CITY POKéMON GYM\n" + .string "LEADER: LT. SURGE\l" + .string "The Lightning American!$" + +gUnknown_81ADDA7:: @ 0x81ADDA7 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I tell you, kid, electric POKéMON\n" + .string "saved me during the war!$" + +gUnknown_81ADE0B:: @ 0x81ADE0B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}When I was in the Army, LT. SURGE\n" + .string "was my strict CO.\p" + .string "He was a hard taskmaster.$" + +gUnknown_81ADE82:: @ 0x81ADE82 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}LT. SURGE was always famous for\n" + .string "his cautious nature in the Army.$" + +gUnknown_81ADEEC:: @ 0x81ADEEC + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}LT. SURGE installed the traps in\n" + .string "the GYM himself.\p" + .string "He set up double locks everywhere.$" + +gUnknown_81ADF6A:: @ 0x81ADF6A + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}LT. SURGE is rumored to have been\n" + .string "a pilot while home in America.\p" + .string "He used the electricity generated\n" + .string "by POKéMON to power his plane.$" + +gUnknown_81AE009:: @ 0x81AE009 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}CELADON CITY POKéMON GYM\n" + .string "LEADER: ERIKA\l" + .string "The Nature-Loving Princess!$" + +gUnknown_81AE072:: @ 0x81AE072 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am a student of the art of\n" + .string "flower arranging.\p" + .string "My POKéMON are solely of the\n" + .string "GRASS type.$" + +gUnknown_81AE0F3:: @ 0x81AE0F3 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Our LEADER ERIKA might be quiet,\n" + .string "but she’s famous around here.$" + +gUnknown_81AE15B:: @ 0x81AE15B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}We only use GRASS-type POKéMON at\n" + .string "our GYM.\p" + .string "Why? We also use them for making\n" + .string "flower arrangements!$" + +gUnknown_81AE1E5:: @ 0x81AE1E5 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I would never collect POKéMON if\n" + .string "they were unattractive.$" + +gUnknown_81AE247:: @ 0x81AE247 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}Rumor has it that if you peek into\n" + .string "CELADON GYM, you can often\l" + .string "see ERIKA snoozing.$" + +gUnknown_81AE2B6:: @ 0x81AE2B6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}FUCHSIA CITY POKéMON GYM\n" + .string "LEADER: KOGA\l" + .string "The Poisonous Ninja Master$" + +gUnknown_81AE31D:: @ 0x81AE31D + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Despair to the creeping horror of\n" + .string "POISON-type POKéMON!$" + +gUnknown_81AE37D:: @ 0x81AE37D + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even though I’ve lost, I will keep\n" + .string "training according to the teachings\l" + .string "of KOGA, my ninja master.$" + +gUnknown_81AE407:: @ 0x81AE407 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}My father is the GYM LEADER of\n" + .string "this town.\p" + .string "I’m training to use POISON POKéMON\n" + .string "as well as my father.$" + +gUnknown_81AE48D:: @ 0x81AE48D + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}KOGA is said to have a thorough\n" + .string "knowledge of medicine.\p" + .string "He even concocts medicine to nurse\n" + .string "his POKéMON to health.$" + +gUnknown_81AE51B:: @ 0x81AE51B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The SAFARI ZONE’s huge, wouldn’t\n" + .string "you say?\p" + .string "FUCHSIA’s GYM LEADER, KOGA, \n" + .string "patrols the grounds every so often.\p" + .string "Thanks to him, we can play here\n" + .string "knowing that we’re safe.$" + +gUnknown_81AE5E8:: @ 0x81AE5E8 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}SAFFRON CITY POKéMON GYM\n" + .string "LEADER: SABRINA\l" + .string "The Master of PSYCHIC POKéMON!$" + +gUnknown_81AE656:: @ 0x81AE656 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You know about a girl GYM LEADER\n" + .string "in SAFFRON CITY?\p" + .string "She uses PSYCHIC-type POKéMON,\n" + .string "right?$" + +gUnknown_81AE6D7:: @ 0x81AE6D7 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I have had psychic powers since\n" + .string "I was a child.\p" + .string "It started when a spoon I\n" + .string "carelessly tossed, bent.$" + +gUnknown_81AE762:: @ 0x81AE762 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I dislike battling, but if you wish,\n" + .string "I will show you my powers!$" + +gUnknown_81AE7CB:: @ 0x81AE7CB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}People say that SABRINA can\n" + .string "communicate with her POKéMON\l" + .string "during battle without speaking.$" + +gUnknown_81AE841:: @ 0x81AE841 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}SABRINA just wiped out the KARATE\n" + .string "MASTER next door.$" + +gUnknown_81AE89E:: @ 0x81AE89E + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{COLOR RED}{SHADOW GREEN}CINNABAR ISLAND POKéMON GYM\n" + .string "LEADER: BLAINE\l" + .string "The Hotheaded Quiz Master!$" + +gUnknown_81AE90A:: @ 0x81AE90A + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fiery POKéMON are all rough\n" + .string "and ready with intense heat!\p" + .string "They incinerate all challengers!$" + +gUnknown_81AE990:: @ 0x81AE990 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Our LEADER, BLAINE, became lost\n" + .string "in the mountains but good.\p" + .string "Night fell when a fiery bird\n" + .string "POKéMON appeared.\p" + .string "Its light allowed BLAINE to find\n" + .string "his way down safely.$" + +gUnknown_81AEA59:: @ 0x81AEA59 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}CINNABAR GYM’s BLAINE is quite the\n" + .string "odd fellow.\p" + .string "He’s lived on the island since way\n" + .string "before the LAB was built.$" + +gUnknown_81AEAEE:: @ 0x81AEAEE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They’re standing shoulder to\n" + .string "shoulder with big grins.$" + +gUnknown_81AEB69:: @ 0x81AEB69 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}BLAINE is said to remove his dark\n" + .string "shades only when he is thinking up\l" + .string "new quiz questions.$" + +gUnknown_81AEBDF:: @ 0x81AEBDF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am LORELEI of the ELITE FOUR.$" + +gUnknown_81AEC28:: @ 0x81AEC28 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}No one can best me when it comes\n" + .string "to icy POKéMON.$" + +gUnknown_81AEC82:: @ 0x81AEC82 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Where was this person born?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}We’ve had a great and powerful\n" + .string "TRAINER grow up on this island.\p" + .string "I bet even you’d know her.\n" + .string "It’s LORELEI of the ELITE FOUR!$" + +gUnknown_81AED27:: @ 0x81AED27 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{COLOR RED}{SHADOW GREEN}Known for her logical, calculated,\n" + .string "and cool battling style, LORELEI\l" + .string "has a surprising secret!$" + +gUnknown_81AEDAA:: @ 0x81AEDAA + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Did you know that LORELEI has lots\n" + .string "and lots of stuffed dolls?\p" + .string "Every time she comes back to\n" + .string "FOUR ISLAND, her collection grows!$" + +gUnknown_81AEE51:: @ 0x81AEE51 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}The LAPRAS she has, I imagine it\n" + .string "to be the one she met as a child.\p" + .string "I believe it was in ICEFALL CAVE\n" + .string "that she caught it.\p" + .string "Perhaps that POKéMON has been with\n" + .string "her ever since.$" + +gUnknown_81AEF25:: @ 0x81AEF25 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I am BRUNO of the ELITE FOUR!$" + +gUnknown_81AEF6C:: @ 0x81AEF6C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’ve lived and trained with my\n" + .string "fighting POKéMON!$" + +gUnknown_81AEFC6:: @ 0x81AEFC6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{COLOR RED}{SHADOW GREEN}BRUNO apparently joined the ELITE\n" + .string "FOUR out of his burning ambition to\l" + .string "battle the best TRAINERS.$" + +gUnknown_81AF04C:: @ 0x81AF04C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BRUNO, who’s a senior ahead of me,\n" + .string "visits the SPA on occasion.\p" + .string "He comes to rehab injuries, both\n" + .string "his own and his POKéMON’s.$" + +gUnknown_81AF0F0:: @ 0x81AF0F0 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s one of the ELITE FOUR.\n" + .string "His name is BRUNO.\p" + .string "He went away disappointed when he\n" + .string "found out that they were all sold\l" + .string "out of Rage Candybars.$" + +gUnknown_81AF19A:: @ 0x81AF19A + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even BRUNO…\n" + .string "He trained with a fellow by the\l" + .string "name of BRAWLY before.$" + +gUnknown_81AF200:: @ 0x81AF200 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am AGATHA of the ELITE FOUR.$" + +gUnknown_81AF248:: @ 0x81AF248 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}AGATHA’s GHOST-type POKéMON are\n" + .string "horrifically terrifying in toughness.$" + +gUnknown_81AF2B7:: @ 0x81AF2B7 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}That old lady’s also got a really\n" + .string "short fuse, too.\p" + .string "It doesn’t take anything to get\n" + .string "that scary lady hollering.$" + +gUnknown_81AF34E:: @ 0x81AF34E + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{COLOR RED}{SHADOW GREEN}In her youth, AGATHA and PROF.\n" + .string "OAK were rivals who vied for\l" + .string "supremacy as TRAINERS.$" + +gUnknown_81AF3BE:: @ 0x81AF3BE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" + .string "interest in you, child.\p" + .string "That old duff was once tough and\n" + .string "handsome.\p" + .string "But that was decades ago.\n" + .string "He’s a shadow of his former self.$" + +gUnknown_81AF47C:: @ 0x81AF47C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Take AGATHA, for example.\p" + .string "She set a record for being the\n" + .string "oldest-ever ELITE FOUR member.$" + +gUnknown_81AF4FD:: @ 0x81AF4FD + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I lead the ELITE FOUR.\p" + .string "You can call me LANCE the dragon\n" + .string "TRAINER.$" + +gUnknown_81AF567:: @ 0x81AF567 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You know that dragons are\n" + .string "mythical POKéMON.\p" + .string "They’re hard to catch and raise,\n" + .string "but their powers are superior.\p" + .string "They’re virtually indestructible.\n" + .string "There’s no being clever with them.$" + +gUnknown_81AF641:: @ 0x81AF641 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He stands for justice!\n" + .string "He’s cool, and yet passionate!\l" + .string "He’s the greatest, LANCE!$" + +gUnknown_81AF6BA:: @ 0x81AF6BA + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}We have a customer, LANCE, who\n" + .string "occasionally comes.\p" + .string "He always buys capes.\p" + .string "I wonder… Does he have many\n" + .string "identical capes at home?$" + +gUnknown_81AF758:: @ 0x81AF758 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{COLOR RED}{SHADOW GREEN}LANCE’s grandfather is thought to\n" + .string "be the elder of a famous clan of\l" + .string "dragon masters.$" + +gUnknown_81AF7CB:: @ 0x81AF7CB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}From what I’ve heard, LANCE has\n" + .string "a cousin who’s a GYM LEADER\l" + .string "somewhere far away.$" + +gUnknown_81AF83E:: @ 0x81AF83E + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}After all, BILL’s world-famous as a\n" + .string "POKéMANIAC.\p" + .string "He invented the POKéMON Storage\n" + .string "System on PC, too.$" + +gUnknown_81AF8CA:: @ 0x81AF8CA + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL has lots of POKéMON!\n" + .string "He collects rare ones, too!$" + +gUnknown_81AF929:: @ 0x81AF929 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}He’s my grandson!\p" + .string "He always liked collecting things,\n" + .string "even as a child!$" + +gUnknown_81AF998:: @ 0x81AF998 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL is a POKéMANIAC, so he loves\n" + .string "every kind.\p" + .string "Apparently, the first one he caught\n" + .string "was an ABRA.$" + +gUnknown_81AFA20:: @ 0x81AFA20 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL’s hometown is GOLDENROD CITY,\n" + .string "where his folks still live.\p" + .string "I’ve heard that it’s quite the\n" + .string "festive, bustling city.$" + +gUnknown_81AFAB9:: @ 0x81AFAB9 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Apparently, BILL simply can’t\n" + .string "stomach milk at all.$" + +gUnknown_81AFB0C:: @ 0x81AFB0C + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s really kind.\p" + .string "He looks after abandoned and\n" + .string "orphaned POKéMON.$" + +gUnknown_81AFB76:: @ 0x81AFB76 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}This old guy marched right up to\n" + .string "our HIDEOUT.\p" + .string "Then, he starts ranting about how\n" + .string "TEAM ROCKET’s abusing POKéMON.\p" + .string "So, we’re just talking it over as\n" + .string "adults.$" + +gUnknown_81AFC38:: @ 0x81AFC38 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{COLOR RED}{SHADOW GREEN}POKéMON FAN MAGAZINE\n" + .string "Monthly Grand Prize Drawing!\p" + .string "The application form is…\p" + .string "Gone! It’s been clipped out.\n" + .string "Someone must have applied already.$" + +gUnknown_81AFCE9:: @ 0x81AFCE9 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I hear that MR. FUJI’s not from\n" + .string "these parts originally, either.$" + +gUnknown_81AFD49:: @ 0x81AFD49 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" + .string "MR. FUJI.\p" + .string "They’re standing shoulder to\n" + .string "shoulder with big grins.$" + +gUnknown_81AFDC4:: @ 0x81AFDC4 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{COLOR RED}{SHADOW GREEN}Editor: The shy MR. FUJI turned\n" + .string "down our interview requests.\p" + .string "He is a kindly man who is adored\n" + .string "and respected in LAVENDER TOWN.$" + +gUnknown_81AFE68:: @ 0x81AFE68 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET captures POKéMON from\n" + .string "around the world.\p" + .string "They’re important tools for keeping\n" + .string "our criminal enterprise going.\p" + .string "I am the leader, GIOVANNI!$" + +gUnknown_81AFF23:: @ 0x81AFF23 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Those thugs that took over our\n" + .string "building…\p" + .string "Their BOSS said he was looking for\n" + .string "strong POKéMON.$" + +gUnknown_81AFFA8:: @ 0x81AFFA8 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET’s BOSS is terribly\n" + .string "cruel!\p" + .string "To him, POKéMON are just tools to\n" + .string "be used.$" + +gUnknown_81B0022:: @ 0x81B0022 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Welcome to my hideout!\p" + .string "It shall be so until I can restore\n" + .string "TEAM ROCKET to its former glory.$" + +gUnknown_81B00A6:: @ 0x81B00A6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Blow me away! GIOVANNI was the\n" + .string "GYM LEADER of VIRIDIAN?$" + +gUnknown_81B0106:: @ 0x81B0106 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You… You’re not GIOVANNI’s kid,\n" + .string "are you?\p" + .string "No, that can’t be right.\n" + .string "GIOVANNI’s kid has red hair.$" + + gUnknown_81B0188:: @ 0x81B0188 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}PROF. OAK$" diff --git a/src/fame_checker.c b/src/fame_checker.c index 70fad0094..a7feb0cf8 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -95,6 +95,7 @@ extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; +extern const u8 *const gUnknown_845F6BC[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -455,7 +456,17 @@ void sub_812CD3C(void) if (sub_812D6B4() == TRUE) r8 = 16; StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), 0, 2, 1, 3); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } } + +void sub_812CE04(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 r5 = sub_812E064(); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unk_0C[r5] * 6 + data[1]]); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + sub_812CEE0(2); +} From 8f9ec933264a3ecfe204b653c508feacde3c976d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 23:02:38 -0500 Subject: [PATCH 08/49] through sub_812D094 --- asm/fame_checker.s | 258 ------------------------------------- include/list_menu.h | 1 + include/new_menu_helpers.h | 2 + src/fame_checker.c | 102 ++++++++++++++- 4 files changed, 98 insertions(+), 265 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 5a8b79754..a99054d8b 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,264 +5,6 @@ .text - thumb_func_start sub_812CE9C -sub_812CE9C: @ 812CE9C - push {lr} - sub sp, 0x8 - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - movs r0, 0x2 - bl sub_812CEE0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_812CE9C - - thumb_func_start sub_812CEC0 -sub_812CEC0: @ 812CEC0 - push {lr} - bl sub_80F6E9C - movs r0, 0x2 - movs r1, 0x1 - bl sub_80F6EE4 - movs r0, 0x2 - bl sub_812CEE0 - movs r0, 0 - bl sub_812CEE0 - pop {r0} - bx r0 - thumb_func_end sub_812CEC0 - - thumb_func_start sub_812CEE0 -sub_812CEE0: @ 812CEE0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812CEE0 - - thumb_func_start sub_812CEFC -sub_812CEFC: @ 812CEFC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r2, _0812CF1C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r2 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0xFF - bne _0812CF20 - movs r0, 0 - b _0812CF36 - .align 2, 0 -_0812CF1C: .4byte gSprites -_0812CF20: - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] - movs r0, 0x1 -_0812CF36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812CEFC - - thumb_func_start sub_812CF3C -sub_812CF3C: @ 812CF3C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xC7 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0812CF74 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0812CF78 @ =sub_812CF7C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812CF74: .4byte gTasks -_0812CF78: .4byte sub_812CF7C - thumb_func_end sub_812CF3C - - thumb_func_start sub_812CF7C -sub_812CF7C: @ 812CF7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0812D074 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812D06C - ldr r0, _0812D078 @ =gUnknown_203B0FC - ldr r0, [r0] - ldrb r1, [r0, 0x7] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812CFD8 - bl sub_812E064 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r6, 0 - bl sub_812D9A8 - ldr r0, _0812D07C @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _0812D080 @ =gSprites - adds r0, r5 - bl FreeSpriteOamMatrix - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_0812CFD8: - movs r4, 0 -_0812CFDA: - ldr r5, _0812D078 @ =gUnknown_203B0FC - ldr r0, [r5] - adds r0, 0x1D - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0812D080 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812CFDA - bl sub_812D814 - bl sub_812D7C8 - bl sub_812D70C - bl sub_812D770 - bl sub_812E048 - ldr r0, [r5] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r5] - ldrb r0, [r0, 0x8] - movs r1, 0 - movs r2, 0 - bl sub_810713C - ldr r0, _0812D084 @ =gUnknown_203B0F0 - ldr r0, [r0] - bl Free - ldr r0, _0812D088 @ =gUnknown_203B0F4 - ldr r0, [r0] - bl Free - ldr r0, _0812D08C @ =gUnknown_203B0F8 - ldr r0, [r0] - bl Free - ldr r0, [r5] - bl Free - ldr r0, _0812D090 @ =gUnknown_203B100 - ldr r0, [r0] - bl Free - movs r0, 0 - bl sub_812D094 - movs r0, 0x1 - bl sub_812D094 - movs r0, 0x2 - bl sub_812D094 - movs r0, 0x3 - bl sub_812D094 - bl FreeAllWindowBuffers - adds r0, r6, 0 - bl DestroyTask -_0812D06C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812D074: .4byte gPaletteFade -_0812D078: .4byte gUnknown_203B0FC -_0812D07C: .4byte gTasks -_0812D080: .4byte gSprites -_0812D084: .4byte gUnknown_203B0F0 -_0812D088: .4byte gUnknown_203B0F4 -_0812D08C: .4byte gUnknown_203B0F8 -_0812D090: .4byte gUnknown_203B100 - thumb_func_end sub_812CF7C - - thumb_func_start sub_812D094 -sub_812D094: @ 812D094 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - bl ClearWindowTilemap - adds r0, r4, 0 - movs r1, 0x2 - bl CopyWindowToVram - adds r0, r4, 0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D094 - thumb_func_start sub_812D0C0 sub_812D0C0: @ 812D0C0 push {r4,lr} diff --git a/include/list_menu.h b/include/list_menu.h index f547801bd..89adeaba0 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -54,5 +54,6 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2); s32 ListMenuHandleInput(u8 id); void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2); void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); +void sub_810713C(u8, u8, u8); #endif //GUARD_LIST_MENU_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 432d06c81..2ff20eb39 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -17,5 +17,7 @@ void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_80F6F54(u8, u8); u8 sub_80F78A8(void); +void sub_80F6E9C(void); +void sub_80F6EE4(u8, u8); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index a7feb0cf8..bb2fe29b5 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -19,13 +19,13 @@ struct FameCheckerData { - void (*unk_00)(void); + MainCallback unk_00; u16 unk_04; u8 filler_06[1]; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; - u8 filler_08[1]; + u8 unk_08; u8 unk_09; u8 unk_0A; u8 unk_0B; @@ -66,8 +66,10 @@ void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); void sub_812CEE0(u8 windowId); -bool8 sub_812CEFC(u8 taskId, u8 a1); +bool8 sub_812CEFC(u8 taskId, u8 objMode); void sub_812CF3C(u8 taskId); +void sub_812CF7C(u8 taskId); +void sub_812D094(u8 windowId); void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); void sub_812D420(void); @@ -75,10 +77,14 @@ void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); bool8 sub_812D6B4(void); +void sub_812D70C(void); u8 sub_812D724(s16 a0); void sub_812D764(struct Sprite *sprite); +void sub_812D770(void); +void sub_812D7C8(void); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); +void sub_812D814(void); u8 sub_812D888(u8 a0); void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); @@ -272,7 +278,7 @@ void sub_812C694(u8 taskId) for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], 1); + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); @@ -369,7 +375,7 @@ void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], 0); + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -429,10 +435,10 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[i], 1); + sub_812CEFC(gUnknown_203B0FC->unk_1D[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], 0) == TRUE) + if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -470,3 +476,85 @@ void sub_812CE04(u8 taskId) AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } + +void sub_812CE9C(void) +{ + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812CEE0(2); +} + +void sub_812CEC0(void) +{ + sub_80F6E9C(); + sub_80F6EE4(2, 1); + sub_812CEE0(2); + sub_812CEE0(0); +} + +void sub_812CEE0(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +bool8 sub_812CEFC(u8 spriteId, u8 objMode) +{ + if (gSprites[spriteId].data[1] != 0xFF) + { + gSprites[spriteId].oam.objMode = objMode; + return TRUE; + } + return FALSE; +} + +void sub_812CF3C(u8 taskId) +{ + PlaySE(SE_W202); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_812CF7C; +} + +void sub_812CF7C(u8 taskId) +{ + u8 r4; + + if (!gPaletteFade.active) + { + if (gUnknown_203B0FC->unk_07_1) + { + sub_812D9A8(taskId, sub_812E064()); + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); + DestroySprite(&gSprites[gTasks[taskId].data[3]]); + } + for (r4 = 0; r4 < 6; r4++) + { + DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + } + sub_812D814(); + sub_812D7C8(); + sub_812D70C(); + sub_812D770(); + sub_812E048(); + SetMainCallback2(gUnknown_203B0FC->unk_00); + sub_810713C(gUnknown_203B0FC->unk_08, 0, 0); + Free(gUnknown_203B0F0); + Free(gUnknown_203B0F4); + Free(gUnknown_203B0F8); + Free(gUnknown_203B0FC); + Free(gUnknown_203B100); + sub_812D094(0); + sub_812D094(1); + sub_812D094(2); + sub_812D094(3); + FreeAllWindowBuffers(); + DestroyTask(taskId); + } +} + +void sub_812D094(u8 windowId) +{ + FillWindowPixelBuffer(windowId, 0); + ClearWindowTilemap(windowId); + CopyWindowToVram(windowId, 2); + RemoveWindow(windowId); +} From b09bbc65bed4716bc944306f64b89301dcaaffe6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 23:41:08 -0500 Subject: [PATCH 09/49] through sub_812D174 --- asm/fame_checker.s | 121 --------------------------------------------- src/fame_checker.c | 43 ++++++++++++++++ 2 files changed, 43 insertions(+), 121 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index a99054d8b..49226ae15 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,127 +5,6 @@ .text - thumb_func_start sub_812D0C0 -sub_812D0C0: @ 812D0C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xAF - lsls r0, 1 - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812D0EA - cmp r4, 0x9 - bne _0812D0DE - movs r0, 0xF - b _0812D0EC -_0812D0DE: - cmp r4, 0x9 - bls _0812D0EA - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _0812D0EC -_0812D0EA: - adds r0, r4, 0 -_0812D0EC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812D0C0 - - thumb_func_start sub_812D0F4 -sub_812D0F4: @ 812D0F4 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - ldr r5, _0812D164 @ =gUnknown_841E5A4 - cmp r0, 0 - beq _0812D10A - ldr r5, _0812D168 @ =gUnknown_841E5D2 - cmp r0, 0x1 - bne _0812D10A - ldr r5, _0812D16C @ =gUnknown_841E5B9 -_0812D10A: - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - adds r4, r0, 0 - movs r0, 0xC0 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - movs r0, 0x44 - negs r0, r0 - adds r2, r0, 0 - subs r2, r4 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - ldr r0, _0812D170 @ =gUnknown_845F5E0 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - str r5, [sp, 0x10] - movs r0, 0x1 - movs r1, 0 - movs r3, 0 - bl AddTextPrinterParametrized2 - movs r0, 0x1 - bl sub_812CEE0 - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812D164: .4byte gUnknown_841E5A4 -_0812D168: .4byte gUnknown_841E5D2 -_0812D16C: .4byte gUnknown_841E5B9 -_0812D170: .4byte gUnknown_845F5E0 - thumb_func_end sub_812D0F4 - - thumb_func_start sub_812D174 -sub_812D174: @ 812D174 - push {r4,lr} - movs r4, 0 -_0812D178: - ldr r0, _0812D1A0 @ =gUnknown_203B0FC - ldr r0, [r0] - adds r0, 0x1D - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0812D1A4 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812D178 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D1A0: .4byte gUnknown_203B0FC -_0812D1A4: .4byte gSprites - thumb_func_end sub_812D174 - thumb_func_start sub_812D1A8 sub_812D1A8: @ 812D1A8 push {r4-r7,lr} diff --git a/src/fame_checker.c b/src/fame_checker.c index bb2fe29b5..ed7544d98 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -3,6 +3,8 @@ #include "sprite.h" #include "bg.h" #include "graphics.h" +#include "battle_setup.h" +#include "menu.h" #include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" @@ -98,9 +100,13 @@ void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); extern const u8 gUnknown_84181E4[]; +extern const u8 gUnknown_841E5A4[]; +extern const u8 gUnknown_841E5B9[]; +extern const u8 gUnknown_841E5D2[]; extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; +extern const struct TextColor gUnknown_845F5E0; extern const u8 *const gUnknown_845F6BC[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; @@ -558,3 +564,40 @@ void sub_812D094(u8 windowId) CopyWindowToVram(windowId, 2); RemoveWindow(windowId); } + +u8 sub_812D0C0(u8 a0) +{ + if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) + { + if (a0 == 9) + return 15; + if (a0 > 9) + return a0 - 1; + } + return a0; +} + +void sub_812D0F4(u8 a0) +{ + const u8 * r5 = gUnknown_841E5A4; + s32 width; + if (a0 != 0) + { + r5 = gUnknown_841E5D2; + if (a0 == 1) + r5 = gUnknown_841E5B9; + } + width = GetStringWidth(0, r5, 0); + FillWindowPixelRect(1, 0x00, 0, 0, 0xc0, 0x10); + AddTextPrinterParametrized2(1, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, r5); + sub_812CEE0(1); +} + +void sub_812D174(void) +{ + u8 r4; + for (r4 = 0; r4 < 6; r4++) + { + DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + } +} From 5b30b664bebb2ba890b86cd09f40c7c53da05659 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 08:21:08 -0500 Subject: [PATCH 10/49] sub_812D1A8 --- asm/fame_checker.s | 169 ---------------------------------------- include/field_map_obj.h | 1 + include/global.h | 3 +- src/fame_checker.c | 47 ++++++++++- 4 files changed, 49 insertions(+), 171 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 49226ae15..6104d97bd 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,175 +5,6 @@ .text - thumb_func_start sub_812D1A8 -sub_812D1A8: @ 812D1A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - movs r6, 0 - ldr r7, _0812D238 @ =gUnknown_203B0FC -_0812D1BA: - ldr r0, _0812D23C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, [r7] - adds r0, 0xC - add r0, r8 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _0812D240 @ =0x00003a54 - adds r1, r0 - ldrh r0, [r1] - lsls r0, 18 - lsrs r0, 20 - asrs r0, r6 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0812D248 - ldr r1, _0812D244 @ =gUnknown_845F83C - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - adds r0, r6 - adds r0, r1 - ldrb r5, [r0] - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 4 - subs r4, r0 - adds r4, 0x72 - lsls r4, 16 - asrs r4, 16 - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 3 - subs r3, r0 - lsls r3, 2 - subs r3, r0 - adds r3, 0x2F - lsls r3, 16 - asrs r3, 16 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_805EB44 - ldr r1, [r7] - adds r1, 0x1D - adds r1, r6 - strb r0, [r1] - movs r5, 0x1 - b _0812D2A0 - .align 2, 0 -_0812D238: .4byte gUnknown_203B0FC -_0812D23C: .4byte gSaveBlock1Ptr -_0812D240: .4byte 0x00003a54 -_0812D244: .4byte gUnknown_845F83C -_0812D248: - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 4 - subs r4, r0 - adds r4, 0x72 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - subs r1, r0 - adds r1, 0x1F - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_812D780 - ldr r1, [r7] - adds r1, 0x1D - adds r1, r6 - strb r0, [r1] - ldr r2, _0812D2D0 @ =gSprites - ldr r0, [r7] - adds r0, 0x1D - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0xFF - strh r1, [r0, 0x30] -_0812D2A0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _0812D1BA - cmp r5, 0x1 - bne _0812D2E0 - ldr r3, _0812D2D4 @ =gUnknown_203B0FC - ldr r2, [r3] - ldrb r0, [r2, 0x7] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x7] - ldr r0, [r3] - ldrb r1, [r0, 0x7] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812D2D8 - movs r0, 0x1 - bl sub_812D0F4 - b _0812D2F4 - .align 2, 0 -_0812D2D0: .4byte gSprites -_0812D2D4: .4byte gUnknown_203B0FC -_0812D2D8: - movs r0, 0 - bl sub_812D0F4 - b _0812D2F4 -_0812D2E0: - ldr r0, _0812D300 @ =gUnknown_203B0FC - ldr r2, [r0] - ldrb r1, [r2, 0x7] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x7] - movs r0, 0x1 - bl sub_812D0F4 -_0812D2F4: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0812D300: .4byte gUnknown_203B0FC - thumb_func_end sub_812D1A8 - thumb_func_start sub_812D304 sub_812D304: @ 812D304 push {r4-r7,lr} diff --git a/include/field_map_obj.h b/include/field_map_obj.h index ded970a83..685701e89 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -86,6 +86,7 @@ void npc_set_running_behaviour_etc(struct MapObject *, u8); u8 sub_80634F0(u8 direction); u8 sub_8063500(u8 a0); void sub_805F060(struct MapObject *mapObject, u8 a1); +u8 sub_805EB44(u8, u8, s16, s16); // Exported data declarations diff --git a/include/global.h b/include/global.h index 568ece2be..31bb77f9f 100644 --- a/include/global.h +++ b/include/global.h @@ -572,7 +572,8 @@ struct QuestLog struct FameCheckerSaveData { - /*3a54*/ u8 unk_0_0:2; + /*3a54*/ u16 unk_0_0:2; + u16 unk_0_2:12; }; #define MAP_OBJECTS_COUNT 16 diff --git a/src/fame_checker.c b/src/fame_checker.c index ed7544d98..e13fc1913 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -17,6 +17,7 @@ #include "text.h" #include "window.h" #include "string_util.h" +#include "field_map_obj.h" #include "text_window.h" struct FameCheckerData @@ -73,7 +74,7 @@ void sub_812CF3C(u8 taskId); void sub_812CF7C(u8 taskId); void sub_812D094(u8 windowId); void sub_812D0F4(u8 a0); -void sub_812D1A8(u8 a0); +bool8 sub_812D1A8(u8 a0); void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); @@ -83,6 +84,7 @@ void sub_812D70C(void); u8 sub_812D724(s16 a0); void sub_812D764(struct Sprite *sprite); void sub_812D770(void); +u8 sub_812D780(u8, u8); void sub_812D7C8(void); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); @@ -108,6 +110,7 @@ extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; extern const struct TextColor gUnknown_845F5E0; extern const u8 *const gUnknown_845F6BC[]; +extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -601,3 +604,45 @@ void sub_812D174(void) DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); } } + +bool8 sub_812D1A8(u8 a0) +{ + // r8 <- a0 + bool8 r5 = FALSE; + u8 r6; + for (r6 = 0; r6 < 6; r6++) + { + if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[a0]].unk_0_2 >> r6) & 1) + { + gUnknown_203B0FC->unk_1D[r6] = sub_805EB44( + gUnknown_845F83C[gUnknown_203B0FC->unk_0C[a0] * 6 + r6], + r6, + 47 * (r6 % 3) + 0x72, + 27 * (r6 / 3) + 0x2F + ); + r5 = TRUE; + } + else + { + gUnknown_203B0FC->unk_1D[r6] = sub_812D780( + 47 * (r6 % 3) + 0x72, + 27 * (r6 / 3) + 0x1F + ); + gSprites[gUnknown_203B0FC->unk_1D[r6]].data[1] = 0xFF; + } + } + if (r5 == TRUE) + { + gUnknown_203B0FC->unk_07_0 = TRUE; + if (gUnknown_203B0FC->unk_07_1) + sub_812D0F4(TRUE); + else + sub_812D0F4(FALSE); + } + else + { + gUnknown_203B0FC->unk_07_0 = FALSE; + sub_812D0F4(TRUE); + } + return r5; +} From 83dc744b85346386dea95ba70323917ca1e2a3ed Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 18:32:21 -0500 Subject: [PATCH 11/49] through sub_812D388 --- asm/fame_checker.s | 146 --------------------------------------------- include/global.h | 5 +- src/fame_checker.c | 25 ++++++++ 3 files changed, 28 insertions(+), 148 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 6104d97bd..49b957eb3 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,152 +5,6 @@ .text - thumb_func_start sub_812D304 -sub_812D304: @ 812D304 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0 - ldr r0, _0812D378 @ =gSaveBlock1Ptr - mov r9, r0 - mov r6, r9 - ldr r5, _0812D37C @ =0x00003a54 - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ldr r0, _0812D380 @ =0xffffc003 - mov r12, r0 - ldr r7, _0812D384 @ =0x00003a55 -_0812D322: - ldr r1, [r6] - lsls r3, r4, 2 - adds r1, r3 - adds r1, r5 - ldrb r2, [r1] - mov r0, r8 - ands r0, r2 - strb r0, [r1] - ldr r1, [r6] - adds r1, r3 - adds r3, r1, r5 - ldrh r2, [r3] - mov r0, r12 - ands r0, r2 - strh r0, [r3] - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _0812D322 - mov r0, r9 - ldr r2, [r0] - ldr r0, _0812D37C @ =0x00003a54 - adds r2, r0 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812D378: .4byte gSaveBlock1Ptr -_0812D37C: .4byte 0x00003a54 -_0812D380: .4byte 0xffffc003 -_0812D384: .4byte 0x00003a55 - thumb_func_end sub_812D304 - - thumb_func_start sub_812D388 -sub_812D388: @ 812D388 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r5, 0 - ldr r0, _0812D410 @ =gSaveBlock1Ptr - mov r12, r0 - ldr r7, _0812D414 @ =0x00003a54 - movs r1, 0x4 - negs r1, r1 - mov r10, r1 - ldr r6, _0812D418 @ =0xffffc003 - mov r9, r6 - movs r0, 0x1 - mov r8, r0 -_0812D3AA: - mov r1, r12 - ldr r2, [r1] - lsls r3, r5, 2 - adds r2, r3 - adds r2, r7 - ldrb r1, [r2] - mov r0, r10 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r4, 0 - adds r5, 0x1 - str r5, [sp] - adds r5, r3, 0 -_0812D3C8: - mov r6, r12 - ldr r2, [r6] - adds r2, r5 - adds r2, r7 - ldrh r3, [r2] - lsls r0, r3, 18 - lsrs r0, 20 - mov r1, r8 - lsls r1, r4 - orrs r1, r0 - ldr r6, _0812D41C @ =0x00000fff - adds r0, r6, 0 - ands r1, r0 - lsls r1, 2 - mov r0, r9 - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812D3C8 - ldr r1, [sp] - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _0812D3AA - 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 -_0812D410: .4byte gSaveBlock1Ptr -_0812D414: .4byte 0x00003a54 -_0812D418: .4byte 0xffffc003 -_0812D41C: .4byte 0x00000fff - thumb_func_end sub_812D388 - thumb_func_start sub_812D420 sub_812D420: @ 812D420 push {r4-r7,lr} diff --git a/include/global.h b/include/global.h index 31bb77f9f..9fb7703cd 100644 --- a/include/global.h +++ b/include/global.h @@ -574,6 +574,7 @@ struct FameCheckerSaveData { /*3a54*/ u16 unk_0_0:2; u16 unk_0_2:12; + u16 unk_0_E:2; }; #define MAP_OBJECTS_COUNT 16 @@ -640,8 +641,8 @@ struct SaveBlock1 /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; - /*0x3A54*/ struct FameCheckerSaveData fameChecker[17]; - /*0x3A98*/ u8 filler3A94[0x2A0]; + /*0x3A54*/ struct FameCheckerSaveData fameChecker[16]; + /*0x3A94*/ u8 filler3A94[0x2A4]; u32 unkArray[4][3]; }; diff --git a/src/fame_checker.c b/src/fame_checker.c index e13fc1913..436e60b3a 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -646,3 +646,28 @@ bool8 sub_812D1A8(u8 a0) } return r5; } + +void sub_812D304(void) +{ + u8 r4; + for (r4 = 0; r4 < 16; r4++) + { + gSaveBlock1Ptr->fameChecker[r4].unk_0_0 = 0; + gSaveBlock1Ptr->fameChecker[r4].unk_0_2 = 0; + gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; + } + gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; +} + +void sub_812D388(void) +{ + u8 r5, r4; + for (r5 = 0; r5 < 16; r5++) + { + gSaveBlock1Ptr->fameChecker[r5].unk_0_0 = 2; + for (r4 = 0; r4 < 6; r4++) + { + gSaveBlock1Ptr->fameChecker[r5].unk_0_2 |= (1 << r4); + } + } +} From 5090c3fab25806fd972fd47360fef30ab095317d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 18:46:32 -0500 Subject: [PATCH 12/49] sub_812D420 --- asm/fame_checker.s | 140 -------------------------------------------- include/gba/macro.h | 3 + src/fame_checker.c | 28 +++++++++ 3 files changed, 31 insertions(+), 140 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 49b957eb3..f04455117 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,146 +5,6 @@ .text - thumb_func_start sub_812D420 -sub_812D420: @ 812D420 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _0812D550 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _0812D554 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0812D446: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _0812D446 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _0812D550 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812D550: .4byte 0x040000d4 -_0812D554: .4byte 0x81000800 - thumb_func_end sub_812D420 - thumb_func_start sub_812D558 sub_812D558: @ 812D558 push {lr} diff --git a/include/gba/macro.h b/include/gba/macro.h index 462d3589d..c0a4e481b 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -125,6 +125,9 @@ #define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) +#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + #define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ { \ const void *_src = src; \ diff --git a/src/fame_checker.c b/src/fame_checker.c index 436e60b3a..543fd8b87 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -671,3 +671,31 @@ void sub_812D388(void) } } } + +void sub_812D420(void) +{ + void * vram = (void *)VRAM; + DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); +} From f05f41b89a0de0e0c32a06d6477de0d5e2fad243 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 19:21:05 -0500 Subject: [PATCH 13/49] through sub_812D5EC --- asm/fame_checker.s | 118 -------------------------------------- include/field_map_obj.h | 1 + include/scanline_effect.h | 6 ++ src/fame_checker.c | 43 ++++++++++++++ 4 files changed, 50 insertions(+), 118 deletions(-) create mode 100644 include/scanline_effect.h diff --git a/asm/fame_checker.s b/asm/fame_checker.s index f04455117..37bce8ba5 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,124 +5,6 @@ .text - thumb_func_start sub_812D558 -sub_812D558: @ 812D558 - push {lr} - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl dp13_810BB8C - bl ResetPaletteFade - movs r0, 0 - bl npc_paltag_set_load - ldr r1, _0812D580 @ =gReservedSpritePaletteCount - movs r0, 0x7 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812D580: .4byte gReservedSpritePaletteCount - thumb_func_end sub_812D558 - - thumb_func_start sub_812D584 -sub_812D584: @ 812D584 - push {lr} - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_812D584 - - thumb_func_start sub_812D594 -sub_812D594: @ 812D594 - push {lr} - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_812D594 - - thumb_func_start sub_812D5EC -sub_812D5EC: @ 812D5EC - push {r4-r6,lr} - ldr r1, _0812D638 @ =gUnknown_20370C0 - ldrh r0, [r1] - cmp r0, 0xF - bhi _0812D632 - ldr r5, _0812D63C @ =gSpecialVar_0x8005 - ldrh r0, [r5] - cmp r0, 0x5 - bhi _0812D632 - ldr r0, _0812D640 @ =gSaveBlock1Ptr - ldr r2, [r0] - ldrh r0, [r1] - lsls r0, 2 - adds r2, r0 - ldr r0, _0812D644 @ =0x00003a54 - adds r2, r0 - ldrh r3, [r2] - lsls r0, r3, 18 - lsrs r0, 20 - movs r4, 0x1 - adds r1, r4, 0 - ldrh r6, [r5] - lsls r1, r6 - orrs r1, r0 - ldr r6, _0812D648 @ =0x00000fff - adds r0, r6, 0 - ands r1, r0 - lsls r1, 2 - ldr r0, _0812D64C @ =0xffffc003 - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - strh r4, [r5] - bl sub_812D650 -_0812D632: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812D638: .4byte gUnknown_20370C0 -_0812D63C: .4byte gSpecialVar_0x8005 -_0812D640: .4byte gSaveBlock1Ptr -_0812D644: .4byte 0x00003a54 -_0812D648: .4byte 0x00000fff -_0812D64C: .4byte 0xffffc003 - thumb_func_end sub_812D5EC - thumb_func_start sub_812D650 sub_812D650: @ 812D650 push {r4,lr} diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 685701e89..d2ec58979 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -87,6 +87,7 @@ u8 sub_80634F0(u8 direction); u8 sub_8063500(u8 a0); void sub_805F060(struct MapObject *mapObject, u8 a1); u8 sub_805EB44(u8, u8, s16, s16); +void npc_paltag_set_load(u8 mode); // Exported data declarations diff --git a/include/scanline_effect.h b/include/scanline_effect.h new file mode 100644 index 000000000..d49f5b4d6 --- /dev/null +++ b/include/scanline_effect.h @@ -0,0 +1,6 @@ +#ifndef GUARD_SCANLINE_EFFECT_H +#define GUARD_SCANLINE_EFFECT_H + +void remove_some_task(void); + +#endif //GUARD_SCANLINE_EFFECT_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 543fd8b87..d309e59a3 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -2,9 +2,12 @@ #include "constants/songs.h" #include "sprite.h" #include "bg.h" +#include "event_data.h" #include "graphics.h" #include "battle_setup.h" #include "menu.h" +#include "battle_dome_cards.h" +#include "scanline_effect.h" #include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" @@ -79,6 +82,7 @@ void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); +void sub_812D650(void); bool8 sub_812D6B4(void); void sub_812D70C(void); u8 sub_812D724(s16 a0); @@ -699,3 +703,42 @@ void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); } + +void sub_812D558(void) +{ + remove_some_task(); + ResetTasks(); + ResetSpriteData(); + dp13_810BB8C(); + ResetPaletteFade(); + npc_paltag_set_load(0); + gReservedSpritePaletteCount = 7; + +} + +void sub_812D584(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); +} + +void sub_812D594(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); +} + +void sub_812D5EC(void) +{ + if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) + { + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_2 |= (1 << gSpecialVar_0x8005); + gSpecialVar_0x8005 = 1; + sub_812D650(); + } +} From 1f9c58abedd92168b75e2d44abd6521fd82c78b2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 20:14:34 -0500 Subject: [PATCH 14/49] through sub_812D814 --- asm/fame_checker.s | 267 --------------------------------------------- src/fame_checker.c | 91 +++++++++++++++ 2 files changed, 91 insertions(+), 267 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 37bce8ba5..f907c448e 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,273 +5,6 @@ .text - thumb_func_start sub_812D650 -sub_812D650: @ 812D650 - push {r4,lr} - ldr r1, _0812D6A4 @ =gUnknown_20370C0 - ldrh r0, [r1] - cmp r0, 0xF - bhi _0812D69E - ldr r0, _0812D6A8 @ =gSpecialVar_0x8005 - ldrh r4, [r0] - adds r0, r4, 0 - cmp r0, 0x2 - bhi _0812D69E - cmp r0, 0 - beq _0812D69E - ldr r2, _0812D6AC @ =gSaveBlock1Ptr - ldrh r3, [r1] - cmp r0, 0x1 - bne _0812D684 - ldr r0, [r2] - lsls r1, r3, 2 - adds r0, r1 - ldr r1, _0812D6B0 @ =0x00003a54 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - beq _0812D69E -_0812D684: - ldr r2, [r2] - lsls r0, r3, 2 - adds r2, r0 - ldr r0, _0812D6B0 @ =0x00003a54 - adds r2, r0 - movs r1, 0x3 - ands r1, r4 - ldrb r3, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_0812D69E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D6A4: .4byte gUnknown_20370C0 -_0812D6A8: .4byte gSpecialVar_0x8005 -_0812D6AC: .4byte gSaveBlock1Ptr -_0812D6B0: .4byte 0x00003a54 - thumb_func_end sub_812D650 - - thumb_func_start sub_812D6B4 -sub_812D6B4: @ 812D6B4 - push {r4,lr} - ldr r0, _0812D6EC @ =gUnknown_203B0FC - ldr r4, [r0] - bl sub_812E064 - lsls r0, 16 - lsrs r0, 16 - adds r4, 0xC - adds r4, r0 - ldrb r1, [r4] - movs r2, 0 - ldr r0, _0812D6F0 @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, 2 - adds r0, r1 - ldr r1, _0812D6F4 @ =0x00003a54 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 18 - movs r3, 0x1 -_0812D6DC: - lsrs r0, r1, 20 - asrs r0, r2 - ands r0, r3 - cmp r0, 0 - bne _0812D6F8 - movs r0, 0 - b _0812D704 - .align 2, 0 -_0812D6EC: .4byte gUnknown_203B0FC -_0812D6F0: .4byte gSaveBlock1Ptr -_0812D6F4: .4byte 0x00003a54 -_0812D6F8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0812D6DC - movs r0, 0x1 -_0812D704: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_812D6B4 - - thumb_func_start sub_812D70C -sub_812D70C: @ 812D70C - push {r4,lr} - movs r4, 0xFA - lsls r4, 2 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D70C - - thumb_func_start sub_812D724 -sub_812D724: @ 812D724 - push {r4,lr} - lsls r0, 16 - asrs r0, 16 - movs r4, 0x22 - cmp r0, 0x2 - ble _0812D732 - movs r4, 0x3D -_0812D732: - movs r1, 0x3 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 4 - subs r1, r0 - adds r1, 0x72 - ldr r0, _0812D760 @ =gUnknown_845FC44 - lsls r1, 16 - asrs r1, 16 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812D760: .4byte gUnknown_845FC44 - thumb_func_end sub_812D724 - - thumb_func_start sub_812D764 -sub_812D764: @ 812D764 - push {lr} - bl DestroySprite - pop {r0} - bx r0 - thumb_func_end sub_812D764 - - thumb_func_start sub_812D770 -sub_812D770: @ 812D770 - push {lr} - ldr r0, _0812D77C @ =0x000003e9 - bl FreeSpriteTilesByTag - pop {r0} - bx r0 - .align 2, 0 -_0812D77C: .4byte 0x000003e9 - thumb_func_end sub_812D770 - - thumb_func_start sub_812D780 -sub_812D780: @ 812D780 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 24 - lsrs r3, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _0812D7C0 @ =gUnknown_845FC78 - adds r1, r3, 0 - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812D7C4 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x8 - orrs r1, r3 - movs r3, 0xF - ands r1, r3 - movs r3, 0x20 - orrs r1, r3 - strb r1, [r2, 0x5] - pop {r1} - bx r1 - .align 2, 0 -_0812D7C0: .4byte gUnknown_845FC78 -_0812D7C4: .4byte gSprites - thumb_func_end sub_812D780 - - thumb_func_start sub_812D7C8 -sub_812D7C8: @ 812D7C8 - push {r4,lr} - ldr r4, _0812D7E0 @ =0x000003ea - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812D7E0: .4byte 0x000003ea - thumb_func_end sub_812D7C8 - - thumb_func_start sub_812D7E4 -sub_812D7E4: @ 812D7E4 - push {lr} - ldr r0, _0812D7FC @ =gUnknown_845FCB8 - movs r1, 0xE2 - movs r2, 0x42 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0812D7FC: .4byte gUnknown_845FCB8 - thumb_func_end sub_812D7E4 - - thumb_func_start sub_812D800 -sub_812D800: @ 812D800 - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D800 - - thumb_func_start sub_812D814 -sub_812D814: @ 812D814 - push {lr} - ldr r0, _0812D834 @ =0x000003ee - bl FreeSpriteTilesByTag - ldr r0, _0812D838 @ =0x000003ef - bl FreeSpriteTilesByTag - movs r0, 0xFC - lsls r0, 2 - bl FreeSpriteTilesByTag - ldr r0, _0812D83C @ =0x000003f1 - bl FreeSpriteTilesByTag - pop {r0} - bx r0 - .align 2, 0 -_0812D834: .4byte 0x000003ee -_0812D838: .4byte 0x000003ef -_0812D83C: .4byte 0x000003f1 - thumb_func_end sub_812D814 - thumb_func_start sub_812D840 sub_812D840: @ 812D840 push {lr} diff --git a/src/fame_checker.c b/src/fame_checker.c index d309e59a3..c5039fa5f 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -23,6 +23,14 @@ #include "field_map_obj.h" #include "text_window.h" +#define SPRITETAG_1000 1000 +#define SPRITETAG_1001 1001 +#define SPRITETAG_1002 1002 +#define SPRITETAG_1006 1006 +#define SPRITETAG_1007 1007 +#define SPRITETAG_1008 1008 +#define SPRITETAG_1009 1009 + struct FameCheckerData { MainCallback unk_00; @@ -119,6 +127,9 @@ extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; extern const struct WindowTemplate gUnknown_845FC04[]; +extern const struct SpriteTemplate gUnknown_845FC44; +extern const struct SpriteTemplate gUnknown_845FC78; +extern const struct SpriteTemplate gUnknown_845FCB8; void sub_812C380(void) { @@ -742,3 +753,83 @@ void sub_812D5EC(void) sub_812D650(); } } + +void sub_812D650(void) +{ + if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) + { + if (gSpecialVar_0x8005 == 0) + return; + if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 == 2) + return; + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 = gSpecialVar_0x8005; + } +} + +bool8 sub_812D6B4(void) +{ + u8 r2; + u8 r1 = gUnknown_203B0FC->unk_0C[sub_812E064()]; + for (r2 = 0; r2 < 6; r2++) + { + if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) + return FALSE; + } + return TRUE; +} + +void sub_812D70C(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1000); + FreeSpritePaletteByTag(SPRITETAG_1000); +} + +u8 sub_812D724(s16 a0) +{ + s16 r4 = a0 >= 3 ? 61 : 34; + s16 r1 = 47 * (a0 % 3) + 0x72; + return CreateSprite(&gUnknown_845FC44, r1, r4, 0); +} + +void sub_812D764(struct Sprite * sprite) +{ + DestroySprite(sprite); +} + +void sub_812D770(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1001); +} + +u8 sub_812D780(u8 x, u8 y) +{ + u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].oam.paletteNum = 2; + return spriteId; +} + +void sub_812D7C8(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1002); + FreeSpritePaletteByTag(SPRITETAG_1002); +} + +u8 sub_812D7E4(void) +{ + return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); +} + +void sub_812D800(struct Sprite * sprite) +{ + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); +} + +void sub_812D814(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1006); + FreeSpriteTilesByTag(SPRITETAG_1007); + FreeSpriteTilesByTag(SPRITETAG_1008); + FreeSpriteTilesByTag(SPRITETAG_1009); +} From 5c013a089798efa1819986528de4af8470a9c329 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 21:12:07 -0500 Subject: [PATCH 15/49] through sub_812DA14 --- asm/fame_checker.s | 355 ------------------------------------ include/battle_dome_cards.h | 2 + include/text.h | 24 +-- src/fame_checker.c | 108 ++++++++++- src/text.c | 22 +-- 5 files changed, 132 insertions(+), 379 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index f907c448e..aa0cb17c4 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,361 +5,6 @@ .text - thumb_func_start sub_812D840 -sub_812D840: @ 812D840 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0812D864 - movs r3, 0x24 - ldrsh r0, [r2, r3] - subs r0, 0xA - cmp r0, 0 - bge _0812D85E - movs r0, 0 - strh r0, [r2, 0x24] - strh r0, [r2, 0x2E] - b _0812D882 -_0812D85E: - ldrh r0, [r2, 0x24] - subs r0, 0xA - b _0812D880 -_0812D864: - cmp r0, 0x2 - bne _0812D882 - ldrh r1, [r2, 0x24] - movs r3, 0x24 - ldrsh r0, [r2, r3] - cmp r0, 0xF0 - ble _0812D87C - movs r1, 0 - movs r0, 0xF0 - strh r0, [r2, 0x24] - strh r1, [r2, 0x2E] - b _0812D882 -_0812D87C: - adds r0, r1, 0 - adds r0, 0xA -_0812D880: - strh r0, [r2, 0x24] -_0812D882: - pop {r0} - bx r0 - thumb_func_end sub_812D840 - - thumb_func_start sub_812D888 -sub_812D888: @ 812D888 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _0812D8B0 - ldr r0, _0812D8A8 @ =gUnknown_845FCE4 - movs r1, 0x94 - movs r2, 0x42 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0812D8AC @ =gUnknown_845ED60 - b _0812D906 - .align 2, 0 -_0812D8A8: .4byte gUnknown_845FCE4 -_0812D8AC: .4byte gUnknown_845ED60 -_0812D8B0: - cmp r5, 0xE - bne _0812D8D0 - ldr r0, _0812D8C8 @ =gUnknown_845FCFC - movs r1, 0x94 - movs r2, 0x42 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0812D8CC @ =gUnknown_845DD20 - b _0812D906 - .align 2, 0 -_0812D8C8: .4byte gUnknown_845FCFC -_0812D8CC: .4byte gUnknown_845DD20 -_0812D8D0: - cmp r5, 0 - bne _0812D8F0 - ldr r0, _0812D8E8 @ =gUnknown_845FD14 - movs r1, 0x94 - movs r2, 0x42 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0812D8EC @ =gUnknown_845F580 - b _0812D906 - .align 2, 0 -_0812D8E8: .4byte gUnknown_845FD14 -_0812D8EC: .4byte gUnknown_845F580 -_0812D8F0: - cmp r5, 0xD - bne _0812D934 - ldr r0, _0812D928 @ =gUnknown_845FD2C - movs r1, 0x94 - movs r2, 0x42 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0812D92C @ =gUnknown_845E540 -_0812D906: - movs r1, 0xB0 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - ldr r1, _0812D930 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xF - ands r1, r2 - movs r2, 0x60 - orrs r1, r2 - strb r1, [r0, 0x5] - b _0812D950 - .align 2, 0 -_0812D928: .4byte gUnknown_845FD2C -_0812D92C: .4byte gUnknown_845E540 -_0812D930: .4byte gSprites -_0812D934: - ldr r0, _0812D98C @ =gUnknown_845F61C - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x6 - str r1, [sp] - ldr r1, _0812D990 @ =0x0000ffff - str r1, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x94 - movs r3, 0x42 - bl sub_810C2A4 - lsls r0, 24 - lsrs r4, r0, 24 -_0812D950: - ldr r1, _0812D994 @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0812D998 @ =sub_812D840 - str r1, [r0] - ldr r0, _0812D99C @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, r1 - ldr r1, _0812D9A0 @ =0x00003a54 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _0812D982 - ldr r0, _0812D9A4 @ =gUnknown_845F5C0 - movs r1, 0xB0 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette -_0812D982: - adds r0, r4, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0812D98C: .4byte gUnknown_845F61C -_0812D990: .4byte 0x0000ffff -_0812D994: .4byte gSprites -_0812D998: .4byte sub_812D840 -_0812D99C: .4byte gSaveBlock1Ptr -_0812D9A0: .4byte 0x00003a54 -_0812D9A4: .4byte gUnknown_845F5C0 - thumb_func_end sub_812D888 - - thumb_func_start sub_812D9A8 -sub_812D9A8: @ 812D9A8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, _0812D9FC @ =gTasks+0x8 - adds r4, r2, r0 - lsrs r1, 16 - ldr r0, _0812DA00 @ =gUnknown_203B0FC - ldr r2, [r0] - ldrb r0, [r2, 0x7] - lsrs r3, r0, 2 - subs r0, r3, 0x1 - cmp r1, r0 - bne _0812D9D0 - subs r0, r3, 0x2 - lsls r0, 16 - lsrs r1, r0, 16 -_0812D9D0: - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0812D9E8 - cmp r0, 0xE - beq _0812D9E8 - cmp r0, 0 - beq _0812D9E8 - cmp r0, 0xD - bne _0812DA08 -_0812D9E8: - movs r0, 0x4 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0812DA04 @ =gSprites - adds r0, r1 - bl DestroySprite - b _0812DA0E - .align 2, 0 -_0812D9FC: .4byte gTasks+0x8 -_0812DA00: .4byte gUnknown_203B0FC -_0812DA04: .4byte gSprites -_0812DA08: - ldrh r0, [r4, 0x4] - bl sub_810C2E8 -_0812DA0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812D9A8 - - thumb_func_start sub_812DA14 -sub_812DA14: @ 812DA14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_812E064 - ldr r1, _0812DAF8 @ =gUnknown_203B0FC - ldr r1, [r1] - lsls r0, 16 - lsrs r0, 16 - adds r1, 0xC - adds r1, r0 - ldrb r0, [r1] - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 1 - adds r5, r4 - movs r0, 0x1 - bl sub_812E094 - ldr r1, _0812DAFC @ =gUnknown_3005EC8 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x58 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - ldr r0, _0812DB00 @ =gUnknown_845F89C - lsls r5, 2 - adds r0, r5, r0 - ldr r6, [r0] - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - movs r4, 0x54 - subs r0, r4, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r2, r0, 24 - lsrs r2, 24 - movs r7, 0 - str r7, [sp] - movs r0, 0x2 - mov r10, r0 - str r0, [sp, 0x4] - ldr r0, _0812DB04 @ =gUnknown_845F5E3 - mov r9, r0 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - mov r8, r0 - str r0, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - movs r3, 0 - bl AddTextPrinterParametrized2 - ldr r6, _0812DB08 @ =gStringVar1 - ldr r0, _0812DB0C @ =gUnknown_845FA1C - adds r5, r0 - ldr r1, [r5] - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0 - adds r1, r6, 0 - movs r2, 0 - bl GetStringWidth - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r0, r4, 1 - lsls r2, r0, 24 - lsrs r2, 24 - str r7, [sp] - mov r0, r10 - str r0, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0x3 - movs r1, 0 - movs r3, 0xA - bl AddTextPrinterParametrized2 - movs r0, 0x3 - bl sub_812CEE0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812DAF8: .4byte gUnknown_203B0FC -_0812DAFC: .4byte gUnknown_3005EC8 -_0812DB00: .4byte gUnknown_845F89C -_0812DB04: .4byte gUnknown_845F5E3 -_0812DB08: .4byte gStringVar1 -_0812DB0C: .4byte gUnknown_845FA1C - thumb_func_end sub_812DA14 - thumb_func_start sub_812DB10 sub_812DB10: @ 812DB10 push {lr} diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h index 48d165e9c..94c9876f3 100644 --- a/include/battle_dome_cards.h +++ b/include/battle_dome_cards.h @@ -11,5 +11,7 @@ u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 u16 sub_818D8F0(u16 spriteId); u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); u8 sub_818D97C(u8 a0, u8 a1); +u8 sub_810C2A4(u16, u8, s16, s16, u8, u16); +void sub_810C2E8(u16); #endif //GUARD_BATTLE_DOME_CARDS_H diff --git a/include/text.h b/include/text.h index 2bda590c1..e127f103a 100644 --- a/include/text.h +++ b/include/text.h @@ -161,7 +161,7 @@ extern const struct FontInfo *gFonts; struct GlyphWidthFunc { u32 font_id; - u32 (*func)(u16 glyphId, bool32 isJapanese); + s32 (*func)(u16 glyphId, bool32 isJapanese); }; struct KeypadIcon @@ -224,9 +224,9 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); bool16 TextPrinterWait(struct TextPrinter *textPrinter); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex); u16 RenderText(struct TextPrinter *textPrinter); -u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); -u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); -u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); +s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); +s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); +s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 GetKeypadIconTileOffset(u8 keypadIconId); @@ -236,19 +236,19 @@ void SetDefaultFontsPointer(void); u8 GetFontAttribute(u8 fontId, u8 attributeId); u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension); void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont7(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont7(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont8(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont8(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont9(u16 glyphId); -u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese); -u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese); +s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese); void sub_80062B0(struct Sprite *sprite); #endif // GUARD_TEXT_H diff --git a/src/fame_checker.c b/src/fame_checker.c index c5039fa5f..0c7072fb4 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -109,6 +109,7 @@ void sub_812DB28(void); void sub_812E000(void); void sub_812E048(void); u16 sub_812E064(void); +void sub_812E094(u8); void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); @@ -119,9 +120,18 @@ extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; extern const u16 gUnknown_845C600[]; -extern const u8 *const gUnknown_845F63C[]; +extern const u16 gUnknown_845DD20[]; +extern const u16 gUnknown_845E540[]; +extern const u16 gUnknown_845ED60[]; +extern const u16 gUnknown_845F580[]; +extern const u16 gUnknown_845F5C0[]; extern const struct TextColor gUnknown_845F5E0; +extern const struct TextColor gUnknown_845F5E3; +extern const u8 gUnknown_845F61C[]; +extern const u8 *const gUnknown_845F63C[]; extern const u8 *const gUnknown_845F6BC[]; +extern const u8 *const gUnknown_845F89C[]; +extern const u8 *const gUnknown_845FA1C[]; extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; @@ -130,6 +140,10 @@ extern const struct WindowTemplate gUnknown_845FC04[]; extern const struct SpriteTemplate gUnknown_845FC44; extern const struct SpriteTemplate gUnknown_845FC78; extern const struct SpriteTemplate gUnknown_845FCB8; +extern const struct SpriteTemplate gUnknown_845FCE4; +extern const struct SpriteTemplate gUnknown_845FCFC; +extern const struct SpriteTemplate gUnknown_845FD14; +extern const struct SpriteTemplate gUnknown_845FD2C; void sub_812C380(void) { @@ -833,3 +847,95 @@ void sub_812D814(void) FreeSpriteTilesByTag(SPRITETAG_1008); FreeSpriteTilesByTag(SPRITETAG_1009); } + +void sub_812D840(struct Sprite * sprite) +{ + if (sprite->data[0] == 1) + { + if (sprite->pos2.x - 10 < 0) + { + sprite->pos2.x = 0; + sprite->data[0] = 0; + } + else + sprite->pos2.x -= 10; + } + else if (sprite->data[0] == 2) + { + if (sprite->pos2.x > 240) + { + sprite->pos2.x = 240; + sprite->data[0] = 0; + } + else + sprite->pos2.x += 10; + } +} + +u8 sub_812D888(u8 a0) +{ + u8 r4; + if (a0 == 1) + { + r4 = CreateSprite(&gUnknown_845FCE4, 0x94, 0x42, 0); + LoadPalette(gUnknown_845ED60, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 14) + { + r4 = CreateSprite(&gUnknown_845FCFC, 0x94, 0x42, 0); + LoadPalette(gUnknown_845DD20, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 0) + { + r4 = CreateSprite(&gUnknown_845FD14, 0x94, 0x42, 0); + LoadPalette(gUnknown_845F580, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 13) + { + r4 = CreateSprite(&gUnknown_845FD2C, 0x94, 0x42, 0); + LoadPalette(gUnknown_845E540, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else + { + r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); + } + gSprites[r4].callback = sub_812D840; + if (gSaveBlock1Ptr->fameChecker[a0].unk_0_0 == 1) + LoadPalette(gUnknown_845F5C0, 0x160, 0x20); + return r4; +} + +void sub_812D9A8(u8 taskId, u16 a1) +{ + s16 * data = gTasks[taskId].data; + u16 r1 = a1; + if (a1 == gUnknown_203B0FC->unk_07_2 - 1) + r1 = a1 - 1; + if ( gUnknown_203B0FC->unk_0C[r1] == 1 + || gUnknown_203B0FC->unk_0C[r1] == 14 + || gUnknown_203B0FC->unk_0C[r1] == 0 + || gUnknown_203B0FC->unk_0C[r1] == 13 + ) + DestroySprite(&gSprites[data[2]]); + else + sub_810C2E8(data[2]); +} + +void sub_812DA14(u8 a0) +{ + s32 width; + u32 r5 = 6 * gUnknown_203B0FC->unk_0C[sub_812E064()] + a0; + sub_812E094(1); + gUnknown_3005EC8 = 1; + FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); + width = (0x54 - GetStringWidth(0, gUnknown_845F89C[r5], 0)) / 2; + AddTextPrinterParametrized2(3, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, gUnknown_845F89C[r5]); + StringExpandPlaceholders(gStringVar1, gUnknown_845FA1C[r5]); + width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; + AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + sub_812CEE0(3); +} diff --git a/src/text.c b/src/text.c index d4d25b5aa..874e12fd5 100644 --- a/src/text.c +++ b/src/text.c @@ -17,7 +17,7 @@ extern void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 extern u8 GetKeypadIconWidth(u8 keypadIconId); extern void CopyWindowToVram(u8 windowId, u8 mode); extern u16 Font6Func(struct TextPrinter *textPrinter); -extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); +extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); extern u8* UnkTextUtil_GetPtrI(u8 a1); @@ -1388,7 +1388,7 @@ _08005D6A:\n\ .syntax divided"); } -u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) +s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) { int i; u8 width; @@ -1479,7 +1479,7 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) return (u8)(GetFontAttribute(fontId, 0) + letterSpacing) * width; } -u32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) +s32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) { u32 i; @@ -1492,11 +1492,11 @@ u32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) return NULL; } -u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) +s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) { bool8 isJapanese; int minGlyphWidth; - u32 (*func)(u16 glyphId, bool32 isJapanese); + s32 (*func)(u16 glyphId, bool32 isJapanese); int localLetterSpacing; register u32 lineWidth asm("r5"); u8 *bufferPointer; @@ -1863,7 +1863,7 @@ void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) return 8; @@ -1896,7 +1896,7 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) return 8; @@ -1962,7 +1962,7 @@ void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) { @@ -2012,7 +2012,7 @@ void DecompressGlyphFont3(u16 glyphId, bool32 isJapanese) DecompressGlyphFont2(glyphId, isJapanese); } -u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) return 10; @@ -2078,7 +2078,7 @@ void DecompressGlyphFont4(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) { @@ -2149,7 +2149,7 @@ void DecompressGlyphFont5(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) { From 82c7bd49aa07293c840254bccc144836057f2c65 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 21:58:52 -0500 Subject: [PATCH 16/49] through sub_812DB64 --- asm/fame_checker.s | 91 --------------------------------------------- include/list_menu.h | 29 ++++++++------- src/fame_checker.c | 49 ++++++++++++++++++++---- 3 files changed, 57 insertions(+), 112 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index aa0cb17c4..471e9921b 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,97 +5,6 @@ .text - thumb_func_start sub_812DB10 -sub_812DB10: @ 812DB10 - push {lr} - movs r0, 0 - bl sub_812E094 - ldr r1, _0812DB24 @ =gUnknown_3005EC8 - movs r0, 0xFF - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812DB24: .4byte gUnknown_3005EC8 - thumb_func_end sub_812DB10 - - thumb_func_start sub_812DB28 -sub_812DB28: @ 812DB28 - push {r4,lr} - bl sub_812DB64 - bl sub_812DEF0 - ldr r4, _0812DB5C @ =gUnknown_203B0FC - ldr r3, [r4] - lsls r0, 2 - ldrb r2, [r3, 0x7] - movs r1, 0x3 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x7] - ldr r0, _0812DB60 @ =gUnknown_3005EB0 - movs r1, 0 - movs r2, 0 - bl ListMenuInit - ldr r1, [r4] - strb r0, [r1, 0x8] - movs r0, 0 - bl sub_812DFE4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DB5C: .4byte gUnknown_203B0FC -_0812DB60: .4byte gUnknown_3005EB0 - thumb_func_end sub_812DB28 - - thumb_func_start sub_812DB64 -sub_812DB64: @ 812DB64 - ldr r2, _0812DBB4 @ =gUnknown_3005EB0 - ldr r0, _0812DBB8 @ =gUnknown_203B100 - ldr r0, [r0] - str r0, [r2] - ldr r0, _0812DBBC @ =sub_812DBC0 - str r0, [r2, 0x4] - movs r0, 0 - str r0, [r2, 0x8] - movs r1, 0 - movs r0, 0x1 - strh r0, [r2, 0xC] - strh r0, [r2, 0xE] - strb r1, [r2, 0x10] - strb r1, [r2, 0x11] - movs r0, 0x8 - strb r0, [r2, 0x12] - strb r1, [r2, 0x13] - ldrb r1, [r2, 0x14] - subs r0, 0x18 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x14] - movs r0, 0x30 - strb r0, [r2, 0x15] - movs r3, 0x3F - movs r0, 0 - strb r0, [r2, 0x16] - ldrb r1, [r2, 0x17] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - ands r0, r3 - strb r0, [r2, 0x17] - bx lr - .align 2, 0 -_0812DBB4: .4byte gUnknown_3005EB0 -_0812DBB8: .4byte gUnknown_203B100 -_0812DBBC: .4byte sub_812DBC0 - thumb_func_end sub_812DB64 - thumb_func_start sub_812DBC0 sub_812DBC0: @ 812DBC0 push {r4-r7,lr} diff --git a/include/list_menu.h b/include/list_menu.h index 89adeaba0..fc829940e 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -18,22 +18,23 @@ struct ListMenu; struct ListMenuTemplate { const struct ListMenuItem *items; - void (* unk_04)(u32, bool8, struct ListMenu *); - void (* unk_08)(u8, s32, u8); + void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list); + void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y); u16 totalItems; u16 maxShowed; - u8 unk_10; - u8 unk_11; - u8 unk_12; - u8 cursor_Y; - u32 upText_Y:4; // x1, x2, x4, x8 = xF - u32 cursorColor:4; // x10, x20, x40, x80 = xF0 - u32 fillColor:4; // x100, x200, x400, x800 = xF00 - u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000 - u32 unk_16_0:1; // x10000 - u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000 - u32 unk_16_7:1; // x800000 - u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000 + u8 windowId; + u8 header_X; + u8 item_X; + u8 cursor_X; + u8 upText_Y:4; // x1, x2, x4, x8 = xF + u8 cursorPal:4; // x10, x20, x40, x80 = xF0 + u8 fillValue:4; // x1, x2, x4, x8 = xF + u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0 + u8 lettersSpacing:3; + u8 itemVerticalPadding:3; + u8 scrollMultiple:2; // x40, x80 = xC0 + u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F + u8 cursorKind:2; // x40, x80 }; struct ListMenu { diff --git a/src/fame_checker.c b/src/fame_checker.c index 0c7072fb4..203d1ca6c 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -50,16 +50,11 @@ struct FameCheckerData u8 unk_23_2:1; }; -struct FameCheckerData2 -{ - u8 filler_00[0x88]; -}; - EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; -EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; +EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; EWRAM_DATA u32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; @@ -106,6 +101,10 @@ void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB10(void); void sub_812DB28(void); +void sub_812DB64(void); +void sub_812DBC0(s32, bool8, struct ListMenu *); +u8 sub_812DEF0(void); +void sub_812DFE4(u8); void sub_812E000(void); void sub_812E048(void); u16 sub_812E064(void); @@ -225,7 +224,7 @@ void sub_812C3F8(void) InitWindows(gUnknown_845FC04); DeactivateAllTextPrinters(); sub_812CEC0(); - gUnknown_203B100 = AllocZeroed(sizeof(struct FameCheckerData2)); + gUnknown_203B100 = AllocZeroed(17 * sizeof(struct ListMenuItem)); sub_812DB28(); gMain.state++; break; @@ -939,3 +938,39 @@ void sub_812DA14(u8 a0) AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); sub_812CEE0(3); } + +void sub_812DB10(void) +{ + sub_812E094(0); + gUnknown_3005EC8 = 0xFF; +} + +void sub_812DB28(void) +{ + sub_812DB64(); + gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); + gUnknown_203B0FC->unk_08 = ListMenuInit(&gUnknown_3005EB0, 0, 0); + sub_812DFE4(0); +} + +void sub_812DB64(void) +{ + gUnknown_3005EB0.items = gUnknown_203B100; + gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; + gUnknown_3005EB0.itemPrintFunc = NULL; + gUnknown_3005EB0.totalItems = 1; + gUnknown_3005EB0.maxShowed = 1; + gUnknown_3005EB0.windowId = 0; + gUnknown_3005EB0.header_X = 0; + gUnknown_3005EB0.item_X = 8; + gUnknown_3005EB0.cursor_X = 0; + gUnknown_3005EB0.upText_Y = 4; + gUnknown_3005EB0.cursorPal = 2; + gUnknown_3005EB0.fillValue = 0; + gUnknown_3005EB0.cursorShadowPal = 3; + gUnknown_3005EB0.lettersSpacing = 0; + gUnknown_3005EB0.itemVerticalPadding = 0; + gUnknown_3005EB0.scrollMultiple = 0; + gUnknown_3005EB0.fontId = 2; + gUnknown_3005EB0.cursorKind = 0; +} From 03af56b30e397e432f8815ba66de173a5be6501b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 08:48:14 -0500 Subject: [PATCH 17/49] nonmatching sub_812DBC0 --- asm/fame_checker.s | 195 -------------------------------- src/fame_checker.c | 270 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 269 insertions(+), 196 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 471e9921b..b0a357af1 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,201 +5,6 @@ .text - thumb_func_start sub_812DBC0 -sub_812DBC0: @ 812DBC0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0812DC68 @ =gUnknown_203B104 - mov r10, r0 - movs r2, 0 - mov r8, r2 - str r2, [r0] - ldr r6, _0812DC6C @ =gUnknown_203B0FC - ldr r0, [r6] - ldrb r2, [r0, 0xA] - ldrb r0, [r0, 0xB] - adds r2, r0 - mov r9, r2 - adds r0, r7, 0 - bl sub_812DDF0 - ldr r0, _0812DC70 @ =sub_812C694 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _0812DBFE - b _0812DD3A -_0812DBFE: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0812DC74 @ =gTasks - adds r5, r0, r1 - movs r0, 0x5 - bl PlaySE - mov r0, r8 - strh r0, [r5, 0xA] - ldr r0, [r6] - ldrb r0, [r0, 0x8] - add r1, sp, 0x8 - movs r2, 0 - bl get_coro_args_x18_x1A - ldr r1, [r6] - add r0, sp, 0x8 - ldrh r0, [r0] - strh r0, [r1, 0x4] - ldrb r0, [r1, 0x7] - lsrs r0, 2 - subs r0, 0x1 - cmp r7, r0 - beq _0812DCD8 - bl sub_812D174 - lsls r0, r7, 24 - lsrs r0, 24 - bl sub_812D1A8 - ldr r2, [r6] - ldrb r1, [r2, 0x7] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812DCBC - adds r0, r2, 0 - adds r0, 0x23 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0812DC7C - adds r0, r4, 0 - mov r1, r9 - bl sub_812D9A8 - mov r1, r10 - str r7, [r1] - ldr r0, _0812DC78 @ =sub_812DD50 - str r0, [r5] - b _0812DD3A - .align 2, 0 -_0812DC68: .4byte gUnknown_203B104 -_0812DC6C: .4byte gUnknown_203B0FC -_0812DC70: .4byte sub_812C694 -_0812DC74: .4byte gTasks -_0812DC78: .4byte sub_812DD50 -_0812DC7C: - ldr r4, _0812DCB8 @ =gSprites - movs r2, 0xC - ldrsh r0, [r5, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x23 - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r8 - strh r1, [r0, 0x2E] - bl sub_812CD3C - b _0812DD3A - .align 2, 0 -_0812DCB8: .4byte gSprites -_0812DCBC: - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - movs r0, 0x2 - bl sub_812CEE0 - b _0812DD3A -_0812DCD8: - bl sub_812DDAC - ldr r0, [r6] - ldrb r1, [r0, 0x7] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0812DD10 - ldr r2, _0812DD0C @ =gSprites - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r1, [r6] - adds r1, 0x23 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - b _0812DD3A - .align 2, 0 -_0812DD0C: .4byte gSprites -_0812DD10: - movs r2, 0 - ldr r5, _0812DD4C @ =gSprites - adds r4, r6, 0 - movs r3, 0x4 -_0812DD18: - ldr r0, [r4] - adds r0, 0x1D - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0812DD18 -_0812DD3A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812DD4C: .4byte gSprites - thumb_func_end sub_812DBC0 - thumb_func_start sub_812DD50 sub_812DD50: @ 812DD50 push {r4,lr} diff --git a/src/fame_checker.c b/src/fame_checker.c index 203d1ca6c..02afdc937 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -55,7 +55,7 @@ EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; -EWRAM_DATA u32 gUnknown_203B104 = 0; +EWRAM_DATA s32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; u8 gUnknown_3005EC8; @@ -103,6 +103,9 @@ void sub_812DB10(void); void sub_812DB28(void); void sub_812DB64(void); void sub_812DBC0(s32, bool8, struct ListMenu *); +void sub_812DD50(u8 taskId); +void sub_812DDAC(void); +void sub_812DDF0(s32 itemIndex, bool8 onInit); u8 sub_812DEF0(void); void sub_812DFE4(u8); void sub_812E000(void); @@ -974,3 +977,268 @@ void sub_812DB64(void) gUnknown_3005EB0.fontId = 2; gUnknown_3005EB0.cursorKind = 0; } + +#ifdef NONMATCHING +void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u16 sp8[2]; + u8 taskId; + s32 r9; + gUnknown_203B104 = 0; + r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; + sub_812DDF0(itemIndex, onInit); + taskId = FindTaskIdByFunc(sub_812C694); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + PlaySE(SE_SELECT); + task->data[1] = 0; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, sp8, NULL); + gUnknown_203B0FC->unk_04 = sp8[0]; + if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) + { + sub_812D174(); + sub_812D1A8(itemIndex); + if (gUnknown_203B0FC->unk_07_1) + { + if (!gUnknown_203B0FC->unk_23_2) + { + /* + * The following two instructions compile in the wrong order: + * adds r0, r4, 0 + * mov r1, r9 + */ + sub_812D9A8(taskId, r9); + gUnknown_203B104 = itemIndex; + task->func = sub_812DD50; + } + else + { + gSprites[task->data[2]].invisible = FALSE; + gUnknown_203B0FC->unk_23_2 = FALSE; + gSprites[task->data[2]].data[0] = 0; + sub_812CD3C(); + } + } + else + { + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812CEE0(2); + } + } + else + { + sub_812DDAC(); + if (gUnknown_203B0FC->unk_07_1) + { + gSprites[task->data[2]].invisible = TRUE; + gUnknown_203B0FC->unk_23_2 = TRUE; + } + else + { + u8 r2; + for (r2 = 0; r2 < 6; r2++) + { + gSprites[gUnknown_203B0FC->unk_1D[r2]].invisible = TRUE; + } + } + } + } +} +#else +NAKED +void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu * list) +{ + asm_unified( "push {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0xC\n" + "\tadds r7, r0, 0\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tldr r0, _0812DC68 @ =gUnknown_203B104\n" + "\tmov r10, r0\n" + "\tmovs r2, 0\n" + "\tmov r8, r2\n" + "\tstr r2, [r0]\n" + "\tldr r6, _0812DC6C @ =gUnknown_203B0FC\n" + "\tldr r0, [r6]\n" + "\tldrb r2, [r0, 0xA]\n" + "\tldrb r0, [r0, 0xB]\n" + "\tadds r2, r0\n" + "\tmov r9, r2\n" + "\tadds r0, r7, 0\n" + "\tbl sub_812DDF0\n" + "\tldr r0, _0812DC70 @ =sub_812C694\n" + "\tbl FindTaskIdByFunc\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0xFF\n" + "\tbne _0812DBFE\n" + "\tb _0812DD3A\n" + "_0812DBFE:\n" + "\tlsls r0, r4, 2\n" + "\tadds r0, r4\n" + "\tlsls r0, 3\n" + "\tldr r1, _0812DC74 @ =gTasks\n" + "\tadds r5, r0, r1\n" + "\tmovs r0, 0x5\n" + "\tbl PlaySE\n" + "\tmov r0, r8\n" + "\tstrh r0, [r5, 0xA]\n" + "\tldr r0, [r6]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tadd r1, sp, 0x8\n" + "\tmovs r2, 0\n" + "\tbl get_coro_args_x18_x1A\n" + "\tldr r1, [r6]\n" + "\tadd r0, sp, 0x8\n" + "\tldrh r0, [r0]\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrb r0, [r1, 0x7]\n" + "\tlsrs r0, 2\n" + "\tsubs r0, 0x1\n" + "\tcmp r7, r0\n" + "\tbeq _0812DCD8\n" + "\tbl sub_812D174\n" + "\tlsls r0, r7, 24\n" + "\tlsrs r0, 24\n" + "\tbl sub_812D1A8\n" + "\tldr r2, [r6]\n" + "\tldrb r1, [r2, 0x7]\n" + "\tmovs r0, 0x2\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0812DCBC\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x23\n" + "\tldrb r1, [r0]\n" + "\tmovs r0, 0x4\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0812DC7C\n" + "\tadds r0, r4, 0\n" + "\tmov r1, r9\n" + "\tbl sub_812D9A8\n" + "\tmov r1, r10\n" + "\tstr r7, [r1]\n" + "\tldr r0, _0812DC78 @ =sub_812DD50\n" + "\tstr r0, [r5]\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DC68: .4byte gUnknown_203B104\n" + "_0812DC6C: .4byte gUnknown_203B0FC\n" + "_0812DC70: .4byte sub_812C694\n" + "_0812DC74: .4byte gTasks\n" + "_0812DC78: .4byte sub_812DD50\n" + "_0812DC7C:\n" + "\tldr r4, _0812DCB8 @ =gSprites\n" + "\tmovs r2, 0xC\n" + "\tldrsh r0, [r5, r2]\n" + "\tlsls r1, r0, 4\n" + "\tadds r1, r0\n" + "\tlsls r1, 2\n" + "\tadds r1, r4\n" + "\tadds r1, 0x3E\n" + "\tldrb r3, [r1]\n" + "\tmovs r2, 0x5\n" + "\tnegs r2, r2\n" + "\tadds r0, r2, 0\n" + "\tands r0, r3\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x23\n" + "\tldrb r1, [r0]\n" + "\tands r2, r1\n" + "\tstrb r2, [r0]\n" + "\tmovs r0, 0xC\n" + "\tldrsh r1, [r5, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r4\n" + "\tmov r1, r8\n" + "\tstrh r1, [r0, 0x2E]\n" + "\tbl sub_812CD3C\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DCB8: .4byte gSprites\n" + "_0812DCBC:\n" + "\tmovs r0, 0xD0\n" + "\tstr r0, [sp]\n" + "\tmovs r0, 0x20\n" + "\tstr r0, [sp, 0x4]\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0x11\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tbl FillWindowPixelRect\n" + "\tmovs r0, 0x2\n" + "\tbl sub_812CEE0\n" + "\tb _0812DD3A\n" + "_0812DCD8:\n" + "\tbl sub_812DDAC\n" + "\tldr r0, [r6]\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x2\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0812DD10\n" + "\tldr r2, _0812DD0C @ =gSprites\n" + "\tmovs r0, 0xC\n" + "\tldrsh r1, [r5, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tadds r0, 0x3E\n" + "\tldrb r1, [r0]\n" + "\tmovs r2, 0x4\n" + "\torrs r1, r2\n" + "\tstrb r1, [r0]\n" + "\tldr r1, [r6]\n" + "\tadds r1, 0x23\n" + "\tldrb r0, [r1]\n" + "\torrs r0, r2\n" + "\tstrb r0, [r1]\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DD0C: .4byte gSprites\n" + "_0812DD10:\n" + "\tmovs r2, 0\n" + "\tldr r5, _0812DD4C @ =gSprites\n" + "\tadds r4, r6, 0\n" + "\tmovs r3, 0x4\n" + "_0812DD18:\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x1D\n" + "\tadds r0, r2\n" + "\tldrb r1, [r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tadds r0, 0x3E\n" + "\tldrb r1, [r0]\n" + "\torrs r1, r3\n" + "\tstrb r1, [r0]\n" + "\tadds r0, r2, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tcmp r2, 0x5\n" + "\tbls _0812DD18\n" + "_0812DD3A:\n" + "\tadd sp, 0xC\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0812DD4C: .4byte gSprites"); +} +#endif // NONMATCHING From 840f8037e77885b664470910b072ee8dc4cd140d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 09:28:23 -0500 Subject: [PATCH 18/49] through sub_812DDAC; match sub_812DBC0 --- asm/fame_checker.s | 79 ---------------- src/fame_checker.c | 218 ++++----------------------------------------- 2 files changed, 16 insertions(+), 281 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index b0a357af1..fc6489bdd 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,85 +5,6 @@ .text - thumb_func_start sub_812DD50 -sub_812DD50: @ 812DD50 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _0812DD98 @ =gTasks - adds r4, r0 - ldr r0, _0812DD9C @ =gUnknown_203B0FC - ldr r0, [r0] - ldr r1, _0812DDA0 @ =gUnknown_203B104 - adds r0, 0xC - ldr r1, [r1] - adds r0, r1 - ldrb r0, [r0] - bl sub_812D888 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - strh r0, [r4, 0xC] - ldr r2, _0812DDA4 @ =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x2E] - bl sub_812CD3C - ldr r0, _0812DDA8 @ =sub_812C694 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812DD98: .4byte gTasks -_0812DD9C: .4byte gUnknown_203B0FC -_0812DDA0: .4byte gUnknown_203B104 -_0812DDA4: .4byte gSprites -_0812DDA8: .4byte sub_812C694 - thumb_func_end sub_812DD50 - - thumb_func_start sub_812DDAC -sub_812DDAC: @ 812DDAC - push {lr} - sub sp, 0x10 - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - ldr r2, _0812DDEC @ =gUnknown_84181C3 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParametrized - movs r0, 0x2 - bl sub_812CEE0 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_0812DDEC: .4byte gUnknown_84181C3 - thumb_func_end sub_812DDAC - thumb_func_start sub_812DDF0 sub_812DDF0: @ 812DDF0 push {r4-r7,lr} diff --git a/src/fame_checker.c b/src/fame_checker.c index 02afdc937..8637f6e86 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -116,6 +116,7 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84181C3[]; extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; @@ -978,12 +979,11 @@ void sub_812DB64(void) gUnknown_3005EB0.cursorKind = 0; } -#ifdef NONMATCHING void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8[2]; u8 taskId; - s32 r9; + u16 r9; gUnknown_203B104 = 0; r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; sub_812DDF0(itemIndex, onInit); @@ -1003,11 +1003,6 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (!gUnknown_203B0FC->unk_23_2) { - /* - * The following two instructions compile in the wrong order: - * adds r0, r4, 0 - * mov r1, r9 - */ sub_812D9A8(taskId, r9); gUnknown_203B104 = itemIndex; task->func = sub_812DD50; @@ -1045,200 +1040,19 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) } } } -#else -NAKED -void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu * list) + +void sub_812DD50(u8 taskId) { - asm_unified( "push {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0xC\n" - "\tadds r7, r0, 0\n" - "\tlsls r1, 24\n" - "\tlsrs r1, 24\n" - "\tldr r0, _0812DC68 @ =gUnknown_203B104\n" - "\tmov r10, r0\n" - "\tmovs r2, 0\n" - "\tmov r8, r2\n" - "\tstr r2, [r0]\n" - "\tldr r6, _0812DC6C @ =gUnknown_203B0FC\n" - "\tldr r0, [r6]\n" - "\tldrb r2, [r0, 0xA]\n" - "\tldrb r0, [r0, 0xB]\n" - "\tadds r2, r0\n" - "\tmov r9, r2\n" - "\tadds r0, r7, 0\n" - "\tbl sub_812DDF0\n" - "\tldr r0, _0812DC70 @ =sub_812C694\n" - "\tbl FindTaskIdByFunc\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0xFF\n" - "\tbne _0812DBFE\n" - "\tb _0812DD3A\n" - "_0812DBFE:\n" - "\tlsls r0, r4, 2\n" - "\tadds r0, r4\n" - "\tlsls r0, 3\n" - "\tldr r1, _0812DC74 @ =gTasks\n" - "\tadds r5, r0, r1\n" - "\tmovs r0, 0x5\n" - "\tbl PlaySE\n" - "\tmov r0, r8\n" - "\tstrh r0, [r5, 0xA]\n" - "\tldr r0, [r6]\n" - "\tldrb r0, [r0, 0x8]\n" - "\tadd r1, sp, 0x8\n" - "\tmovs r2, 0\n" - "\tbl get_coro_args_x18_x1A\n" - "\tldr r1, [r6]\n" - "\tadd r0, sp, 0x8\n" - "\tldrh r0, [r0]\n" - "\tstrh r0, [r1, 0x4]\n" - "\tldrb r0, [r1, 0x7]\n" - "\tlsrs r0, 2\n" - "\tsubs r0, 0x1\n" - "\tcmp r7, r0\n" - "\tbeq _0812DCD8\n" - "\tbl sub_812D174\n" - "\tlsls r0, r7, 24\n" - "\tlsrs r0, 24\n" - "\tbl sub_812D1A8\n" - "\tldr r2, [r6]\n" - "\tldrb r1, [r2, 0x7]\n" - "\tmovs r0, 0x2\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0812DCBC\n" - "\tadds r0, r2, 0\n" - "\tadds r0, 0x23\n" - "\tldrb r1, [r0]\n" - "\tmovs r0, 0x4\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0812DC7C\n" - "\tadds r0, r4, 0\n" - "\tmov r1, r9\n" - "\tbl sub_812D9A8\n" - "\tmov r1, r10\n" - "\tstr r7, [r1]\n" - "\tldr r0, _0812DC78 @ =sub_812DD50\n" - "\tstr r0, [r5]\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DC68: .4byte gUnknown_203B104\n" - "_0812DC6C: .4byte gUnknown_203B0FC\n" - "_0812DC70: .4byte sub_812C694\n" - "_0812DC74: .4byte gTasks\n" - "_0812DC78: .4byte sub_812DD50\n" - "_0812DC7C:\n" - "\tldr r4, _0812DCB8 @ =gSprites\n" - "\tmovs r2, 0xC\n" - "\tldrsh r0, [r5, r2]\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r4\n" - "\tadds r1, 0x3E\n" - "\tldrb r3, [r1]\n" - "\tmovs r2, 0x5\n" - "\tnegs r2, r2\n" - "\tadds r0, r2, 0\n" - "\tands r0, r3\n" - "\tstrb r0, [r1]\n" - "\tldr r0, [r6]\n" - "\tadds r0, 0x23\n" - "\tldrb r1, [r0]\n" - "\tands r2, r1\n" - "\tstrb r2, [r0]\n" - "\tmovs r0, 0xC\n" - "\tldrsh r1, [r5, r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r4\n" - "\tmov r1, r8\n" - "\tstrh r1, [r0, 0x2E]\n" - "\tbl sub_812CD3C\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DCB8: .4byte gSprites\n" - "_0812DCBC:\n" - "\tmovs r0, 0xD0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x20\n" - "\tstr r0, [sp, 0x4]\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0x11\n" - "\tmovs r2, 0\n" - "\tmovs r3, 0\n" - "\tbl FillWindowPixelRect\n" - "\tmovs r0, 0x2\n" - "\tbl sub_812CEE0\n" - "\tb _0812DD3A\n" - "_0812DCD8:\n" - "\tbl sub_812DDAC\n" - "\tldr r0, [r6]\n" - "\tldrb r1, [r0, 0x7]\n" - "\tmovs r0, 0x2\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0812DD10\n" - "\tldr r2, _0812DD0C @ =gSprites\n" - "\tmovs r0, 0xC\n" - "\tldrsh r1, [r5, r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r2\n" - "\tadds r0, 0x3E\n" - "\tldrb r1, [r0]\n" - "\tmovs r2, 0x4\n" - "\torrs r1, r2\n" - "\tstrb r1, [r0]\n" - "\tldr r1, [r6]\n" - "\tadds r1, 0x23\n" - "\tldrb r0, [r1]\n" - "\torrs r0, r2\n" - "\tstrb r0, [r1]\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DD0C: .4byte gSprites\n" - "_0812DD10:\n" - "\tmovs r2, 0\n" - "\tldr r5, _0812DD4C @ =gSprites\n" - "\tadds r4, r6, 0\n" - "\tmovs r3, 0x4\n" - "_0812DD18:\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x1D\n" - "\tadds r0, r2\n" - "\tldrb r1, [r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r5\n" - "\tadds r0, 0x3E\n" - "\tldrb r1, [r0]\n" - "\torrs r1, r3\n" - "\tstrb r1, [r0]\n" - "\tadds r0, r2, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r2, r0, 24\n" - "\tcmp r2, 0x5\n" - "\tbls _0812DD18\n" - "_0812DD3A:\n" - "\tadd sp, 0xC\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0812DD4C: .4byte gSprites"); + struct Task * task = &gTasks[taskId]; + task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[gUnknown_203B104]); + gSprites[task->data[2]].data[0] = 0; + sub_812CD3C(); + task->func = sub_812C694; +} + +void sub_812DDAC(void) +{ + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); + sub_812CEE0(2); } -#endif // NONMATCHING From eb8dface178fed90656ea7a7726b6835ee5a1229 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 10:26:12 -0500 Subject: [PATCH 19/49] through sub_812E064 --- asm/fame_checker.s | 345 -------------------------------------- include/menu_indicators.h | 9 + src/fame_checker.c | 103 +++++++++++- 3 files changed, 108 insertions(+), 349 deletions(-) diff --git a/asm/fame_checker.s b/asm/fame_checker.s index fc6489bdd..9807f15dc 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,351 +5,6 @@ .text - thumb_func_start sub_812DDF0 -sub_812DDF0: @ 812DDF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x18 - mov r8, r0 - lsls r5, r1, 24 - lsrs r5, 24 - ldr r7, _0812DE68 @ =gUnknown_203B0FC - ldr r0, [r7] - ldrb r0, [r0, 0x8] - mov r4, sp - adds r4, 0x16 - add r1, sp, 0x14 - adds r2, r4, 0 - bl get_coro_args_x18_x1A - add r1, sp, 0x14 - ldrh r0, [r4] - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrh r0, [r4] - lsls r3, r0, 3 - subs r3, r0 - lsls r3, 25 - movs r0, 0x80 - lsls r0, 19 - adds r3, r0 - lsrs r3, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r0, _0812DE6C @ =gUnknown_845F5E6 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, _0812DE70 @ =gUnknown_203B100 - ldr r1, [r0] - mov r2, r8 - lsls r0, r2, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x8 - bl AddTextPrinterParametrized2 - cmp r5, 0 - bne _0812DEC0 - add r0, sp, 0x14 - ldr r1, [r7] - ldrh r2, [r0] - ldrb r0, [r1, 0xA] - cmp r2, r0 - bcs _0812DE74 - ldrb r0, [r1, 0xB] - adds r0, 0x1 - b _0812DE86 - .align 2, 0 -_0812DE68: .4byte gUnknown_203B0FC -_0812DE6C: .4byte gUnknown_845F5E6 -_0812DE70: .4byte gUnknown_203B100 -_0812DE74: - cmp r2, r0 - bls _0812DE88 - ldrb r0, [r1, 0x7] - lsrs r0, 2 - subs r0, 0x1 - cmp r6, r0 - beq _0812DE88 - ldrb r0, [r1, 0xB] - subs r0, 0x1 -_0812DE86: - strb r0, [r1, 0xB] -_0812DE88: - ldr r0, _0812DEE4 @ =gUnknown_203B0FC - ldr r2, [r0] - ldrb r0, [r2, 0xB] - lsls r3, r0, 3 - subs r3, r0 - lsls r3, 25 - movs r0, 0x80 - lsls r0, 19 - adds r3, r0 - lsrs r3, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r0, _0812DEE8 @ =gUnknown_845F5E3 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldrb r0, [r2, 0x9] - ldr r1, _0812DEEC @ =gUnknown_203B100 - ldr r1, [r1] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x8 - bl AddTextPrinterParametrized2 -_0812DEC0: - ldr r1, _0812DEE4 @ =gUnknown_203B0FC - ldr r0, [r1] - mov r2, r8 - strb r2, [r0, 0x9] - ldr r2, [r1] - ldrh r0, [r4] - strb r0, [r2, 0xB] - ldr r1, [r1] - add r0, sp, 0x14 - ldrh r0, [r0] - strb r0, [r1, 0xA] - add sp, 0x18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812DEE4: .4byte gUnknown_203B0FC -_0812DEE8: .4byte gUnknown_845F5E3 -_0812DEEC: .4byte gUnknown_203B100 - thumb_func_end sub_812DDF0 - - thumb_func_start sub_812DEF0 -sub_812DEF0: @ 812DEF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - movs r6, 0 - ldr r0, _0812DF44 @ =0x0000fdff - mov r8, r0 - ldr r7, _0812DF48 @ =gUnknown_845F60C -_0812DF00: - adds r0, r6, 0 - bl sub_812D0C0 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0812DF4C @ =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, r1 - ldr r1, _0812DF50 @ =0x00003a54 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - beq _0812DF88 - ldr r0, _0812DF54 @ =gUnknown_845F5EA - lsls r1, r5, 1 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, r8 - bhi _0812DF60 - ldr r0, _0812DF58 @ =gUnknown_203B100 - ldr r0, [r0] - lsls r2, r4, 3 - adds r2, r0 - ldrh r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0812DF5C @ =gTrainers+0x4 - adds r0, r1 - str r0, [r2] - str r4, [r2, 0x4] - b _0812DF78 - .align 2, 0 -_0812DF44: .4byte 0x0000fdff -_0812DF48: .4byte gUnknown_845F60C -_0812DF4C: .4byte gSaveBlock1Ptr -_0812DF50: .4byte 0x00003a54 -_0812DF54: .4byte gUnknown_845F5EA -_0812DF58: .4byte gUnknown_203B100 -_0812DF5C: .4byte gTrainers+0x4 -_0812DF60: - ldr r0, _0812DFC0 @ =gUnknown_203B100 - ldr r0, [r0] - lsls r1, r4, 3 - adds r1, r0 - ldrh r0, [r3] - ldr r2, _0812DFC4 @ =0xffff0200 - adds r0, r2 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - str r0, [r1] - str r4, [r1, 0x4] -_0812DF78: - ldr r0, _0812DFC8 @ =gUnknown_203B0FC - ldr r0, [r0] - adds r0, 0xC - adds r0, r4 - strb r5, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0812DF88: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bls _0812DF00 - ldr r0, _0812DFC0 @ =gUnknown_203B100 - ldr r1, [r0] - lsls r0, r4, 3 - adds r0, r1 - ldr r1, _0812DFCC @ =gUnknown_84161C1 - str r1, [r0] - str r4, [r0, 0x4] - ldr r0, _0812DFC8 @ =gUnknown_203B0FC - ldr r0, [r0] - adds r0, 0xC - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0812DFD0 @ =gUnknown_3005EB0 - strh r4, [r1, 0xC] - cmp r4, 0x4 - bhi _0812DFD4 - strh r4, [r1, 0xE] - b _0812DFD8 - .align 2, 0 -_0812DFC0: .4byte gUnknown_203B100 -_0812DFC4: .4byte 0xffff0200 -_0812DFC8: .4byte gUnknown_203B0FC -_0812DFCC: .4byte gUnknown_84161C1 -_0812DFD0: .4byte gUnknown_3005EB0 -_0812DFD4: - movs r0, 0x5 - strh r0, [r1, 0xE] -_0812DFD8: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812DEF0 - - thumb_func_start sub_812DFE4 -sub_812DFE4: @ 812DFE4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_812DFE4 - - thumb_func_start sub_812E000 -sub_812E000: @ 812E000 - push {r4,lr} - sub sp, 0x10 - mov r1, sp - ldr r0, _0812E040 @ =gUnknown_845FD44 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - ldr r4, _0812E044 @ =gUnknown_203B0FC - ldr r2, [r4] - ldrb r0, [r2, 0x7] - lsrs r0, 2 - cmp r0, 0x5 - bls _0812E036 - mov r1, sp - movs r0, 0 - strh r0, [r1, 0x6] - ldrb r0, [r2, 0x7] - lsrs r0, 2 - subs r0, 0x5 - strh r0, [r1, 0x8] - adds r1, r2, 0x4 - mov r0, sp - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - strb r0, [r1, 0x6] -_0812E036: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E040: .4byte gUnknown_845FD44 -_0812E044: .4byte gUnknown_203B0FC - thumb_func_end sub_812E000 - - thumb_func_start sub_812E048 -sub_812E048: @ 812E048 - push {lr} - ldr r0, _0812E060 @ =gUnknown_203B0FC - ldr r1, [r0] - ldrb r0, [r1, 0x7] - lsrs r0, 2 - cmp r0, 0x5 - bls _0812E05C - ldrb r0, [r1, 0x6] - bl RemoveScrollIndicatorArrowPair -_0812E05C: - pop {r0} - bx r0 - .align 2, 0 -_0812E060: .4byte gUnknown_203B0FC - thumb_func_end sub_812E048 - - thumb_func_start sub_812E064 -sub_812E064: @ 812E064 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0812E090 @ =gUnknown_203B0FC - ldr r0, [r0] - ldrb r0, [r0, 0x8] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl get_coro_args_x18_x1A - mov r1, sp - ldrh r0, [r4] - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0812E090: .4byte gUnknown_203B0FC - thumb_func_end sub_812E064 - thumb_func_start sub_812E094 sub_812E094: @ 812E094 push {r4-r6,lr} diff --git a/include/menu_indicators.h b/include/menu_indicators.h index 2350e2502..f88fd5549 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -7,8 +7,17 @@ // Exported RAM declarations +struct ScrollIndicatorArrowPairTemplate +{ + u8 filler_00[6]; + u16 unk_06; + u16 unk_08; + u8 filler_0a[6]; +}; + // Exported ROM declarations u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *); +u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1); void RemoveScrollIndicatorArrowPair(u8); #endif //GUARD_MENU_INDICATORS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 8637f6e86..9535b6556 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -4,6 +4,7 @@ #include "bg.h" #include "event_data.h" #include "graphics.h" +#include "battle.h" #include "battle_setup.h" #include "menu.h" #include "battle_dome_cards.h" @@ -21,6 +22,7 @@ #include "window.h" #include "string_util.h" #include "field_map_obj.h" +#include "menu_indicators.h" #include "text_window.h" #define SPRITETAG_1000 1000 @@ -35,7 +37,7 @@ struct FameCheckerData { MainCallback unk_00; u16 unk_04; - u8 filler_06[1]; + u8 unk_06; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; @@ -121,6 +123,7 @@ extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; +extern const u8 gUnknown_84161C1[]; extern const u16 gUnknown_845C600[]; extern const u16 gUnknown_845DD20[]; @@ -130,7 +133,10 @@ extern const u16 gUnknown_845F580[]; extern const u16 gUnknown_845F5C0[]; extern const struct TextColor gUnknown_845F5E0; extern const struct TextColor gUnknown_845F5E3; +extern const struct TextColor gUnknown_845F5E6; +extern const u16 gUnknown_845F5EA[]; extern const u8 gUnknown_845F61C[]; +extern const u8 *const gUnknown_845F60C[]; extern const u8 *const gUnknown_845F63C[]; extern const u8 *const gUnknown_845F6BC[]; extern const u8 *const gUnknown_845F89C[]; @@ -147,6 +153,7 @@ extern const struct SpriteTemplate gUnknown_845FCE4; extern const struct SpriteTemplate gUnknown_845FCFC; extern const struct SpriteTemplate gUnknown_845FD14; extern const struct SpriteTemplate gUnknown_845FD2C; +extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; void sub_812C380(void) { @@ -981,7 +988,7 @@ void sub_812DB64(void) void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 sp8[2]; + u16 sp8; u8 taskId; u16 r9; gUnknown_203B104 = 0; @@ -993,8 +1000,8 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, sp8, NULL); - gUnknown_203B0FC->unk_04 = sp8[0]; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp8, NULL); + gUnknown_203B0FC->unk_04 = sp8; if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) { sub_812D174(); @@ -1056,3 +1063,91 @@ void sub_812DDAC(void) AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); sub_812CEE0(2); } + +void sub_812DDF0(s32 itemIndex, bool8 onInit) +{ + u16 sp14; + u16 sp16; + u16 r6; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp14, &sp16); + r6 = sp14 + sp16; + AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); + if (!onInit) + { + if (sp14 < gUnknown_203B0FC->unk_0A) + gUnknown_203B0FC->unk_0B++; + else if (sp14 > gUnknown_203B0FC->unk_0A && r6 != gUnknown_203B0FC->unk_07_2 - 1) + gUnknown_203B0FC->unk_0B--; + AddTextPrinterParametrized2(0, 2, 8, 14 * gUnknown_203B0FC->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, gUnknown_203B100[gUnknown_203B0FC->unk_09].unk_00); + + } + gUnknown_203B0FC->unk_09 = itemIndex; + gUnknown_203B0FC->unk_0B = sp16; + gUnknown_203B0FC->unk_0A = sp14; +} + +u8 sub_812DEF0(void) +{ + u8 r4 = 0; + u8 r6; + + for (r6 = 0; r6 < 16; r6++) + { + u8 r5 = sub_812D0C0(r6); + if (gSaveBlock1Ptr->fameChecker[r5].unk_0_0 != 0) + { + if (gUnknown_845F5EA[r5] < 0xFE00) + { + gUnknown_203B100[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; + gUnknown_203B100[r4].unk_04 = r4; + } + else + { + gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; + gUnknown_203B100[r4].unk_04 = r4; + } + gUnknown_203B0FC->unk_0C[r4] = r5; + r4++; + } + } + gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; + gUnknown_203B100[r4].unk_04 = r4; + gUnknown_203B0FC->unk_0C[r4] = 0xFF; + r4++; + gUnknown_3005EB0.totalItems = r4; + if (r4 < 5) + gUnknown_3005EB0.maxShowed = r4; + else + gUnknown_3005EB0.maxShowed = 5; + return r4; +} + +void sub_812DFE4(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +void sub_812E000(void) +{ + struct ScrollIndicatorArrowPairTemplate sp0 = gUnknown_845FD44; + if (gUnknown_203B0FC->unk_07_2 > 5) + { + sp0.unk_06 = 0; + sp0.unk_08 = gUnknown_203B0FC->unk_07_2 - 5; + gUnknown_203B0FC->unk_06 = AddScrollIndicatorArrowPair(&sp0, &gUnknown_203B0FC->unk_04); + } +} + +void sub_812E048(void) +{ + if (gUnknown_203B0FC->unk_07_2 > 5) + RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); +} + +u16 sub_812E064(void) +{ + u16 sp0, sp2; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); + return sp0 + sp2; +} From f75453388c6f9e1123915707f6d69c3373f761f6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 10:54:41 -0500 Subject: [PATCH 20/49] Finish decomp of fame_checker(.text) --- asm/fame_checker.s | 563 -------------------------------------------- include/list_menu.h | 1 + ld_script.txt | 1 - src/fame_checker.c | 119 +++++++++- 4 files changed, 119 insertions(+), 565 deletions(-) delete mode 100644 asm/fame_checker.s diff --git a/asm/fame_checker.s b/asm/fame_checker.s deleted file mode 100644 index 9807f15dc..000000000 --- a/asm/fame_checker.s +++ /dev/null @@ -1,563 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_812E094 -sub_812E094: @ 812E094 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r6, _0812E0EC @ =gUnknown_203B0FC - ldr r0, [r6] - adds r0, 0x23 - ldrb r0, [r0] - lsls r0, 31 - lsrs r0, 31 - cmp r0, r4 - beq _0812E108 - ldr r5, _0812E0F0 @ =sub_812E110 - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _0812E0C8 - adds r0, r5, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_0812E0C8: - ldr r0, _0812E0F4 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x4 - strh r0, [r1, 0xA] - cmp r4, 0x1 - bne _0812E0F8 - strh r4, [r1, 0xC] - ldr r0, [r6] - adds r0, 0x23 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - b _0812E106 - .align 2, 0 -_0812E0EC: .4byte gUnknown_203B0FC -_0812E0F0: .4byte sub_812E110 -_0812E0F4: .4byte gTasks -_0812E0F8: - strh r0, [r1, 0xC] - ldr r0, [r6] - adds r0, 0x23 - ldrb r2, [r0] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 -_0812E106: - strb r1, [r0] -_0812E108: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812E094 - - thumb_func_start sub_812E110 -sub_812E110: @ 812E110 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0812E130 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0812E134 - cmp r0, 0x1 - beq _0812E154 - b _0812E170 - .align 2, 0 -_0812E130: .4byte gTasks -_0812E134: - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _0812E170 - movs r0, 0x1 - movs r1, 0 - bl sub_812E178 - movs r0, 0x4 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0812E170 -_0812E154: - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _0812E170 - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r0, 0x1 - bl sub_812E178 - adds r0, r5, 0 - bl DestroyTask -_0812E170: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_812E110 - - thumb_func_start sub_812E178 -sub_812E178: @ 812E178 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - asrs r5, r1, 16 - cmp r5, 0 - beq _0812E18C - cmp r5, 0x3 - bne _0812E252 -_0812E18C: - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x8C - movs r2, 0xE - movs r3, 0xA - bl FillBgTilemapBufferRect - movs r5, 0xA - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0xA1 - movs r2, 0xF - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x8D - movs r2, 0x19 - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x8E - movs r2, 0x1A - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x8F - movs r2, 0xE - movs r3, 0xB - bl FillBgTilemapBufferRect - movs r0, 0xB - str r0, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xF - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x90 - movs r2, 0x1A - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x91 - movs r2, 0xE - movs r3, 0xC - bl FillBgTilemapBufferRect - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0xA3 - movs r2, 0xF - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x92 - movs r2, 0x19 - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x93 - b _0812E470 -_0812E252: - cmp r5, 0x1 - bne _0812E2F4 - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9B - movs r2, 0xE - movs r3, 0xA - bl FillBgTilemapBufferRect - movs r4, 0xB - str r4, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9C - movs r2, 0xF - movs r3, 0xA - bl FillBgTilemapBufferRect - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x96 - movs r2, 0x1A - movs r3, 0xA - bl FillBgTilemapBufferRect - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9D - movs r2, 0xE - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xF - movs r3, 0xB - bl FillBgTilemapBufferRect - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x90 - movs r2, 0x1A - movs r3, 0xB - bl FillBgTilemapBufferRect - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9E - movs r2, 0xE - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9F - movs r2, 0xF - movs r3, 0xC - bl FillBgTilemapBufferRect - str r5, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x99 - b _0812E470 -_0812E2F4: - cmp r5, 0x2 - bne _0812E398 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x94 - movs r2, 0xE - movs r3, 0xA - bl FillBgTilemapBufferRect - movs r5, 0xB - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x95 - movs r2, 0xF - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x96 - movs r2, 0x1A - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x8F - movs r2, 0xE - movs r3, 0xB - bl FillBgTilemapBufferRect - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x9A - movs r2, 0xF - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x90 - movs r2, 0x1A - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x97 - movs r2, 0xE - movs r3, 0xC - bl FillBgTilemapBufferRect - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x98 - movs r2, 0xF - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x99 - b _0812E470 -_0812E398: - cmp r5, 0x4 - bne _0812E47A - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x83 - movs r2, 0xE - movs r3, 0xA - bl FillBgTilemapBufferRect - movs r5, 0xA - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0xA0 - movs r2, 0xF - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x84 - movs r2, 0x19 - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x85 - movs r2, 0x1A - movs r3, 0xA - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x86 - movs r2, 0xE - movs r3, 0xB - bl FillBgTilemapBufferRect - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0xA2 - movs r2, 0xF - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x87 - movs r2, 0x19 - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x88 - movs r2, 0x1A - movs r3, 0xB - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x83 - movs r2, 0xE - movs r3, 0xC - bl FillBgTilemapBufferRect - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0xA0 - movs r2, 0xF - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x84 - movs r2, 0x19 - movs r3, 0xC - bl FillBgTilemapBufferRect - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x85 -_0812E470: - movs r2, 0x1A - movs r3, 0xC - bl FillBgTilemapBufferRect - b _0812E496 -_0812E47A: - cmp r5, 0x5 - bne _0812E496 - movs r0, 0xD - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0xA - bl FillBgTilemapBufferRect -_0812E496: - adds r0, r6, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812E178 - - thumb_func_start sub_812E4A4 -sub_812E4A4: @ 812E4A4 - push {r4,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812E4E0 @ =gUnknown_203B0FC - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 16 - lsrs r0, 16 - cmp r4, 0x1 - bne _0812E4EC - lsls r3, r0, 24 - lsrs r3, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r0, _0812E4E4 @ =gUnknown_845F5E3 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, _0812E4E8 @ =gUnknown_841623B - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl AddTextPrinterParametrized2 - b _0812E50A - .align 2, 0 -_0812E4E0: .4byte gUnknown_203B0FC -_0812E4E4: .4byte gUnknown_845F5E3 -_0812E4E8: .4byte gUnknown_841623B -_0812E4EC: - lsls r3, r0, 24 - lsrs r3, 24 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - ldr r0, _0812E514 @ =gUnknown_845F5E0 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, _0812E518 @ =gUnknown_841623B - str r0, [sp, 0x10] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - bl AddTextPrinterParametrized2 -_0812E50A: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812E514: .4byte gUnknown_845F5E0 -_0812E518: .4byte gUnknown_841623B - thumb_func_end sub_812E4A4 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/list_menu.h b/include/list_menu.h index fc829940e..8834e5215 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -56,5 +56,6 @@ s32 ListMenuHandleInput(u8 id); void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2); void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2); void sub_810713C(u8, u8, u8); +u16 ListMenuGetYCoordForPrintingArrowCursor(u8); #endif //GUARD_LIST_MENU_H diff --git a/ld_script.txt b/ld_script.txt index cab20382b..bbebf21b1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -227,7 +227,6 @@ SECTIONS { asm/help_system_812B1E0.o(.text); src/quest_log_battle.o(.text); src/fame_checker.o(.text); - asm/fame_checker.o(.text); asm/menu2.o(.text); asm/oak_speech.o(.text); asm/tm_case.o(.text); diff --git a/src/fame_checker.c b/src/fame_checker.c index 9535b6556..2f455c462 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -118,12 +118,13 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84161C1[]; +extern const u8 gUnknown_841623B[]; extern const u8 gUnknown_84181C3[]; extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; -extern const u8 gUnknown_84161C1[]; extern const u16 gUnknown_845C600[]; extern const u16 gUnknown_845DD20[]; @@ -1151,3 +1152,119 @@ u16 sub_812E064(void) get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); return sp0 + sp2; } + +void sub_812E094(u8 a0) +{ + if (gUnknown_203B0FC->unk_23_0 != a0) + { + u8 taskId = FindTaskIdByFunc(sub_812E110); + if (taskId == 0xFF) + taskId = CreateTask(sub_812E110, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 4; + if (a0 == TRUE) + { + gTasks[taskId].data[2] = 1; + gUnknown_203B0FC->unk_23_0 = TRUE; + } + else + { + gTasks[taskId].data[2] = 4; + gUnknown_203B0FC->unk_23_0 = FALSE; + } + } +} + +void sub_812E110(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + if (--task->data[1] == 0) + { + sub_812E178(1, 0); + task->data[1] = 4; + task->data[0]++; + } + break; + case 1: + if (--task->data[1] == 0) + { + sub_812E178(1, task->data[2]); + DestroyTask(taskId); + } + break; + } +} + +void sub_812E178(u8 bg, s16 a1) +{ + if (a1 == 0 || a1 == 3) + { + FillBgTilemapBufferRect(bg, 0x8C, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA1, 15, 10, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x8D, 25, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8E, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8F, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x00, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x91, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA3, 15, 12, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x92, 25, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x93, 26, 12, 1, 1, 1); + } + else if (a1 == 1) + { + FillBgTilemapBufferRect(bg, 0x9B, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9C, 15, 10, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x96, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9D, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x00, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9E, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9F, 15, 12, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); + } + else if (a1 == 2) + { + FillBgTilemapBufferRect(bg, 0x94, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x95, 15, 10, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x96, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8F, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9A, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x97, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x98, 15, 12, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); + } + else if (a1 == 4) + { + FillBgTilemapBufferRect(bg, 0x83, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA0, 15, 10, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x84, 25, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x85, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x86, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA2, 15, 11, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x87, 25, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x88, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x83, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA0, 15, 12, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x84, 25, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x85, 26, 12, 1, 1, 1); + } + else if (a1 == 5) + { + FillBgTilemapBufferRect(bg, 0x00, 14, 10, 13, 3, 1); + } + CopyBgTilemapBufferToVram(bg); +} + +void sub_812E4A4(u8 a0) +{ + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->unk_08); + if (a0 == 1) + AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); + else + AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gUnknown_841623B); +} From 4590f0f378ec8af6be075b7e8347b98609f3fdb0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:11:11 -0500 Subject: [PATCH 21/49] Start decompiling some more data --- data/fame_checker.s | 32 ++++++++++++++++++-------- data/fame_checker/img_845dd40.png | Bin 0 -> 629 bytes data/fame_checker/img_845e560.png | Bin 0 -> 517 bytes data/fame_checker/img_845ed80.png | Bin 0 -> 761 bytes data/fame_checker/pal_45dd20.pal | 19 +++++++++++++++ data/fame_checker/pal_45e540.pal | 19 +++++++++++++++ data/fame_checker/pal_45ed60.pal | 19 +++++++++++++++ data/fame_checker/pal_45f580.pal | 19 +++++++++++++++ data/fame_checker/pal_45f5c0.pal | 19 +++++++++++++++ data/fame_checker/pal_845dd20.pal | 19 +++++++++++++++ data/fame_checker/pal_845e540.pal | 19 +++++++++++++++ data/fame_checker/pal_845ed60.pal | 19 +++++++++++++++ data/fame_checker/pal_845f580.pal | 19 +++++++++++++++ data/fame_checker/pal_845f5a0.pal | 19 +++++++++++++++ data/fame_checker/pal_845f5c0.pal | 19 +++++++++++++++ data/fame_checker/tilemap_845c600.bin | Bin 0 -> 5920 bytes 16 files changed, 231 insertions(+), 10 deletions(-) create mode 100644 data/fame_checker/img_845dd40.png create mode 100644 data/fame_checker/img_845e560.png create mode 100644 data/fame_checker/img_845ed80.png create mode 100644 data/fame_checker/pal_45dd20.pal create mode 100644 data/fame_checker/pal_45e540.pal create mode 100644 data/fame_checker/pal_45ed60.pal create mode 100644 data/fame_checker/pal_45f580.pal create mode 100644 data/fame_checker/pal_45f5c0.pal create mode 100644 data/fame_checker/pal_845dd20.pal create mode 100644 data/fame_checker/pal_845e540.pal create mode 100644 data/fame_checker/pal_845ed60.pal create mode 100644 data/fame_checker/pal_845f580.pal create mode 100644 data/fame_checker/pal_845f5a0.pal create mode 100644 data/fame_checker/pal_845f5c0.pal create mode 100644 data/fame_checker/tilemap_845c600.bin diff --git a/data/fame_checker.s b/data/fame_checker.s index e1659f86b..444de0ffa 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -5,32 +5,45 @@ .align 2 gUnknown_845C600:: @ 845C600 - .incbin "baserom.gba", 0x45C600, 0x1720 + .incbin "data/fame_checker/tilemap_845c600.bin" gUnknown_845DD20:: @ 845DD20 - .incbin "baserom.gba", 0x45DD20, 0x820 + .incbin "data/fame_checker/pal_845dd20.gbapal" + +gUnknown_845DD40:: @ 845DD40 + .incbin "data/fame_checker/img_845dd40.4bpp" gUnknown_845E540:: @ 845E540 - .incbin "baserom.gba", 0x45E540, 0x820 + .incbin "data/fame_checker/pal_845e540.gbapal" + +gUnknown_845E560:: @ 845E560 + .incbin "data/fame_checker/img_845e560.4bpp" gUnknown_845ED60:: @ 845ED60 - .incbin "baserom.gba", 0x45ED60, 0x820 + .incbin "data/fame_checker/pal_845ed60.gbapal" + +gUnknown_845ED80:: @ 845ED80 + .incbin "data/fame_checker/img_845ed80.4bpp" gUnknown_845F580:: @ 845F580 - .incbin "baserom.gba", 0x45F580, 0x40 + .incbin "data/fame_checker/pal_845f580.gbapal" + +gUnknown_845F5A0:: @ 845F5A0 + .incbin "data/fame_checker/pal_845f5a0.gbapal" gUnknown_845F5C0:: @ 845F5C0 - .incbin "baserom.gba", 0x45F5C0, 0x20 + .incbin "data/fame_checker/pal_845f5c0.gbapal" gUnknown_845F5E0:: @ 845F5E0 - .incbin "baserom.gba", 0x45F5E0, 0x3 + .byte 0x00, 0x01, 0x02 gUnknown_845F5E3:: @ 845F5E3 - .incbin "baserom.gba", 0x45F5E3, 0x3 + .byte 0x00, 0x02, 0x03 gUnknown_845F5E6:: @ 845F5E6 - .incbin "baserom.gba", 0x45F5E6, 0x4 + .byte 0x00, 0x06, 0x07 + .align 1 gUnknown_845F5EA:: @ 845F5EA .incbin "baserom.gba", 0x45F5EA, 0x22 @@ -40,7 +53,6 @@ gUnknown_845F60C:: @ 845F60C gUnknown_845F61C:: @ 845F61C .incbin "baserom.gba", 0x45F61C, 0x20 - gUnknown_845F63C:: @ 845F63C .4byte gUnknown_81B0188 .4byte gUnknown_81B0251 diff --git a/data/fame_checker/img_845dd40.png b/data/fame_checker/img_845dd40.png new file mode 100644 index 0000000000000000000000000000000000000000..21f2a9d11476d6c6ae503236f9884824cf000993 GIT binary patch literal 629 zcmV-*0*d{KP)(q*AntL6mAatfamF=7Z+VYVLztT3Tw=&DH<^{{R30i#f-!00001 zbW%=J06^y0W&i*I^GQTOR7i=v)G=t=Kokbx8$<%3LdYGvT?`&Ngj$6{p(L?IhT4gi zsB4F|r!kv6W<7c7nlqGitE5FVXuF|=XtN3(oj~x?y^8A^3JL0|bN?e#Z+)Ns_qcnA zkpF*-az|eu$Xr_=N+}DRVGLXa2DVmAxkq>98mZ)M9zC+xpQiN*r-;V}Eb=T@NLY8{2NRDXx>=BfCr6 zF1!a~P={{2HBK=4wD$1#gzUEZo5z|uG1LSjU4qr4TS1@^p#pm>zya*APglVRf_3J< zp{tO=9xLX*rF#s55er@&(hdac>@V1YLs}gc`2HCU5m?f2<@-JQ>PN2x1Li%K-1$= zo6rD}V6ZG+?q7*?f`RLL!#TWZwf1#=E5FV$Q0MOYdcLCrq^@;8+JBrs0AKyf!=QG@ P00000NkvXXu0mjfAmtr) literal 0 HcmV?d00001 diff --git a/data/fame_checker/img_845e560.png b/data/fame_checker/img_845e560.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd201fc15c9cce95ba72f6a1120fd0efd5a8d61 GIT binary patch literal 517 zcmV+g0{Z=lP)7k&iM@rhTc@dkYD5APDU`{CuoPRe+l~Pv6pWl_H>7}HxmN`a*v1dnd8ikGfgl|3 z@`Bh@QK>SI3t|xqx!fiTd<|$rHslsTGs#+>~b2U z6liY&K307kFarj?CU8oF*~%r3sQ}{FCXf<9chHNd$PqNa1DNTc;0>*}bU+M{?gtC%5jN70X4~>qc(@psV+A> z!RwNyn~R#mC8$|KAY|z^yb4LjINI)``Bacj>-13^iLef&tcUQD}eZK@B zfg8Rb-tYH*FUKMDpKI;=5-=K2+dhDE*Xj5B)P)6)NBseH;R^l1h|&eX8OXPX$qao5 zNRSeC2G@E#1p zCUa8|+z7!Yn4_4SlvA09FhJS7npP1{rnT0$J?bs@$EM_*Y`?!uS_q#Hi{-OnRp94VeL}6MEFyD5KLHmr@T$f2|E$xt3+pe z2+t4#yS@atttBPs*tQpe=XBhl8~`uQ zDS1K17u3|Scn3ae4rY{3QamRl)thvjp!L=aczGqqp<{_UlmZ~Zv#CUn76a6Dmw*e} zgh3D`+$QurxCD~RTNMLz7L<@|3j#bkL<<3RTLG{g2-E|B&OqSj8@vRXHR^}r4ODe= r8oE4iS$>$K9~_Fo@11=A&m?~Vj-r89wa;el00000NkvXXu0mjfdgERN literal 0 HcmV?d00001 diff --git a/data/fame_checker/pal_45dd20.pal b/data/fame_checker/pal_45dd20.pal new file mode 100644 index 000000000..e6dcabf2f --- /dev/null +++ b/data/fame_checker/pal_45dd20.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +115 90 65 +222 164 82 +180 139 65 +148 106 57 +172 164 189 +255 230 131 +230 205 106 +238 131 90 +90 90 106 +213 205 213 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_45e540.pal b/data/fame_checker/pal_45e540.pal new file mode 100644 index 000000000..485e27c48 --- /dev/null +++ b/data/fame_checker/pal_45e540.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +230 189 156 +205 156 115 +106 74 57 +180 139 213 +139 98 172 +98 65 106 +213 189 131 +189 164 98 +139 123 74 +180 139 115 +156 106 82 +90 74 49 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_45ed60.pal b/data/fame_checker/pal_45ed60.pal new file mode 100644 index 000000000..adf46bf14 --- /dev/null +++ b/data/fame_checker/pal_45ed60.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +172 123 98 +213 172 115 +156 123 74 +90 82 65 +205 115 98 +164 213 156 +115 172 106 +90 123 82 +222 230 255 +164 172 197 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_45f580.pal b/data/fame_checker/pal_45f580.pal new file mode 100644 index 000000000..eb6f2f18b --- /dev/null +++ b/data/fame_checker/pal_45f580.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +139 156 164 +205 164 205 +164 123 164 +82 82 57 +213 213 222 +123 123 82 +115 115 115 +197 189 131 +156 156 90 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_45f5c0.pal b/data/fame_checker/pal_45f5c0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/fame_checker/pal_45f5c0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/fame_checker/pal_845dd20.pal b/data/fame_checker/pal_845dd20.pal new file mode 100644 index 000000000..e6dcabf2f --- /dev/null +++ b/data/fame_checker/pal_845dd20.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +115 90 65 +222 164 82 +180 139 65 +148 106 57 +172 164 189 +255 230 131 +230 205 106 +238 131 90 +90 90 106 +213 205 213 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_845e540.pal b/data/fame_checker/pal_845e540.pal new file mode 100644 index 000000000..485e27c48 --- /dev/null +++ b/data/fame_checker/pal_845e540.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 205 +230 189 156 +205 156 115 +106 74 57 +180 139 213 +139 98 172 +98 65 106 +213 189 131 +189 164 98 +139 123 74 +180 139 115 +156 106 82 +90 74 49 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_845ed60.pal b/data/fame_checker/pal_845ed60.pal new file mode 100644 index 000000000..adf46bf14 --- /dev/null +++ b/data/fame_checker/pal_845ed60.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +172 123 98 +213 172 115 +156 123 74 +90 82 65 +205 115 98 +164 213 156 +115 172 106 +90 123 82 +222 230 255 +164 172 197 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_845f580.pal b/data/fame_checker/pal_845f580.pal new file mode 100644 index 000000000..eb6f2f18b --- /dev/null +++ b/data/fame_checker/pal_845f580.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 222 205 +238 180 148 +197 139 106 +106 74 74 +139 156 164 +205 164 205 +164 123 164 +82 82 57 +213 213 222 +123 123 82 +115 115 115 +197 189 131 +156 156 90 +255 255 255 +0 0 0 diff --git a/data/fame_checker/pal_845f5a0.pal b/data/fame_checker/pal_845f5a0.pal new file mode 100644 index 000000000..25a3ac1d2 --- /dev/null +++ b/data/fame_checker/pal_845f5a0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/fame_checker/pal_845f5c0.pal b/data/fame_checker/pal_845f5c0.pal new file mode 100644 index 000000000..4b0812f09 --- /dev/null +++ b/data/fame_checker/pal_845f5c0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/data/fame_checker/tilemap_845c600.bin b/data/fame_checker/tilemap_845c600.bin new file mode 100644 index 0000000000000000000000000000000000000000..4272a1b41cce4b7378b75ec3fdeaf268600d4069 GIT binary patch literal 5920 zcmeH~Urbw77{EVclf7X2UAOpReBi>HK|9#gsgtf2*w|?2Tvdnz|3L9y0=n9}Zeu0! zr5c$p8ol6rQjwdi#AGjokoCdDm$IQ*gk?R&MeIL4Kee7 z0uSJm=t6f%ah3Hyj7P8;pDyX`#)EhQA2-A-|8abd?8nOZw_q>6i|^rSH1mH2U&Yrp z@b}^S=tsrW|9L!#p0fT=;Ta6zSv+Uz|2lSJS6Tm~cpm%k0tQX}U%(gfrLz7lbUtY@ ztKW;=_y)dQ=KM~Pcj@a7(28x?jvYDKk3#bE_OjO>;7xoB-^O=x(ttwpb1_Qm%=W*d z+c|-q6WBR{yY>VUx(=h7meA4^*P-iH(6m1Z%_>M}^E{z(0r?0Fzj^8ncv!P?PHQuW zvCxIdS5UOx@E7?(?1P%fkzJe3De{YbY_TcO%NTvwG*KKwAq8W*2)2vpE4G`=dr3Df z+<*cDOl6p+USu$BV~kyzXKaF-S%*j&zR4KBC3XVPmkthM!tTpJ%JlAjW7Qagc&FVAT$WG1rEoM%;nFTD= zmC0|Kcf)fnx-Nye3dg3wbIJrQH86chY<3U1u$h5)^av70bn#t|V(-n(%SGPC`7`Hl zUh8Jg->m-Z`HScm9yZS*wCxXc+*8{6Us`NcV7p&}-I8RMrS@Kc%32FZvct@Lcj+Wa zvI!oNe)=^oElx41#wJU$ZB1ITyQD*sTuXJzRz~m|+4^(Ml3SLmJ8Iy2g7X$?4o(>1lH8^C{J` zFS(XfX3w~iv0+!GT-Q@6C%simJzmGMyU{VLJL_jg^$#u%-Ua( z^J#$l1_NAG18htU#KzUY%vCioNj>BAq~L$hJH;CP{xfTugUc}Rr~~Lm+5QIrpN#{2 zt{U{VQSF1Ra9kUNVS0xphSXN3sw2~?sx}asM;&QaN3>>omo>0f$rg9Dyi`{wFV)vQ zYpqXOjrR&s`2SRVKcyBFwf<13e}?n9IA4tOxfs2;#prF)sPh|5vr|Eb30DE!O%qM? z Date: Mon, 26 Nov 2018 12:12:04 -0500 Subject: [PATCH 22/49] Fix png palettes --- data/fame_checker/img_845dd40.png | Bin 629 -> 629 bytes data/fame_checker/img_845e560.png | Bin 517 -> 517 bytes data/fame_checker/img_845ed80.png | Bin 761 -> 761 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/fame_checker/img_845dd40.png b/data/fame_checker/img_845dd40.png index 21f2a9d11476d6c6ae503236f9884824cf000993..7e3a7b39bb92b03777b2bd4287c6358bdf44aa76 100644 GIT binary patch delta 59 zcmV-B0L1_G1oZ@vEimTI=DnQFoO5bQIkbz_i(;%|L2A{#gT16;i+f76i*uZ6Qd&we R|Ns90008a?7mTr87y_?S9U1@t delta 59 zcmV-B0L1_G1oZ@vEim5A?zEJ}i)wRPLEfZNw2MKMYB{W=z5nKe=FMvEgIZczYSqov R|Ns90004_Q$FZ?p7y{)7AZGvo diff --git a/data/fame_checker/img_845e560.png b/data/fame_checker/img_845e560.png index 0cd201fc15c9cce95ba72f6a1120fd0efd5a8d61..1abf1a63ecdf60fd6a259e5f211e6b480ea43eda 100644 GIT binary patch delta 59 zcmV-B0L1@=1cd~UEim5A?zEJ}i)yTUV%4m3oO?=IQbEmgVx-labF6Awds5!!|D>$N R|Ns900079l!>6%br~#$N|Ns900079l J!>6%boC3548;Sq` From ae8b4043c1690d6b3cb62f89372c7f7e6d45348b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:34:22 -0500 Subject: [PATCH 23/49] More data decomp --- charmap.txt | 1 + data/data_83FECCC.s | 26 ++++- data/fame_checker.s | 181 ------------------------------- include/event_scripts.h | 132 +++++++++++++++++++++++ src/fame_checker.c | 229 +++++++++++++++++++++++++++++++++++++--- 5 files changed, 373 insertions(+), 196 deletions(-) diff --git a/charmap.txt b/charmap.txt index fc9cbc0a8..9441532b4 100644 --- a/charmap.txt +++ b/charmap.txt @@ -323,6 +323,7 @@ TALL_PLUS = FC 0C FB @ TODO: Identify and declare F7 control codes UNKNOWN_F7 = F7 +UNKNOWN_F8 = F8 UNKNOWN_F9 = F9 STRING = FD diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index ed542acc9..7c2d85f03 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -2097,7 +2097,31 @@ gUnknown_841E5B9:: @ 841E5B9 .incbin "baserom.gba", 0x41E5B9, 0x19 gUnknown_841E5D2:: @ 841E5D2 - .incbin "baserom.gba", 0x41E5D2, 0xCF + .string "{UNKNOWN_F8 0x0C}PICK {UNKNOWN_F8 0x00}READ {UNKNOWN_F8 0x01}CANCEL$" + +gUnknown_841E5E9:: @ 841E5E9 + .string "OAK$" + +gUnknown_841E5ED:: @ 841E5ED + .string "DAISY$" + +gUnknown_841E5F3:: @ 841E5F3 + .string "BILL$" + +gUnknown_841E5F8:: @ 841E5F8 + .string "FUJI$" + +gUnknown_841E5FD:: @ 841E5FD + .string "A variety of events will be imported\nover Wireless Communication.$" + +gUnknown_841E63F:: @ 841E63F + .string "Read the WONDER CARDS in your\npossession.$" + +gUnknown_841E669:: @ 841E669 + .string "Read the NEWS that arrived.$" + +gUnknown_841E685:: @ 841E685 + .string "Return to the title screen.$" gUnknown_841E6A1:: @ 841E6A1 .incbin "baserom.gba", 0x41E6A1, 0x3B diff --git a/data/fame_checker.s b/data/fame_checker.s index 444de0ffa..55042293a 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,187 +4,6 @@ .section .rodata .align 2 -gUnknown_845C600:: @ 845C600 - .incbin "data/fame_checker/tilemap_845c600.bin" - -gUnknown_845DD20:: @ 845DD20 - .incbin "data/fame_checker/pal_845dd20.gbapal" - -gUnknown_845DD40:: @ 845DD40 - .incbin "data/fame_checker/img_845dd40.4bpp" - -gUnknown_845E540:: @ 845E540 - .incbin "data/fame_checker/pal_845e540.gbapal" - -gUnknown_845E560:: @ 845E560 - .incbin "data/fame_checker/img_845e560.4bpp" - -gUnknown_845ED60:: @ 845ED60 - .incbin "data/fame_checker/pal_845ed60.gbapal" - -gUnknown_845ED80:: @ 845ED80 - .incbin "data/fame_checker/img_845ed80.4bpp" - -gUnknown_845F580:: @ 845F580 - .incbin "data/fame_checker/pal_845f580.gbapal" - -gUnknown_845F5A0:: @ 845F5A0 - .incbin "data/fame_checker/pal_845f5a0.gbapal" - -gUnknown_845F5C0:: @ 845F5C0 - .incbin "data/fame_checker/pal_845f5c0.gbapal" - -gUnknown_845F5E0:: @ 845F5E0 - .byte 0x00, 0x01, 0x02 - -gUnknown_845F5E3:: @ 845F5E3 - .byte 0x00, 0x02, 0x03 - -gUnknown_845F5E6:: @ 845F5E6 - .byte 0x00, 0x06, 0x07 - - .align 1 -gUnknown_845F5EA:: @ 845F5EA - .incbin "baserom.gba", 0x45F5EA, 0x22 - -gUnknown_845F60C:: @ 845F60C - .incbin "baserom.gba", 0x45F60C, 0x10 - -gUnknown_845F61C:: @ 845F61C - .incbin "baserom.gba", 0x45F61C, 0x20 - -gUnknown_845F63C:: @ 845F63C - .4byte gUnknown_81B0188 - .4byte gUnknown_81B0251 - .4byte gUnknown_81B030F - .4byte gUnknown_81B03B3 - .4byte gUnknown_81B0446 - .4byte gUnknown_81B0504 - .4byte gUnknown_81B05C2 - .4byte gUnknown_81B0667 - .4byte gUnknown_81B06FB - .4byte gUnknown_81B079F - .4byte gUnknown_81B0845 - .4byte gUnknown_81B08EE - .4byte gUnknown_81B097F - .4byte gUnknown_81B0A45 - .4byte gUnknown_81B0AFF - .4byte gUnknown_81B0BA6 - .4byte gUnknown_81B0198 - .4byte gUnknown_81B025D - .4byte gUnknown_81B031B - .4byte gUnknown_81B03BF - .4byte gUnknown_81B0456 - .4byte gUnknown_81B0510 - .4byte gUnknown_81B05CD - .4byte gUnknown_81B0675 - .4byte gUnknown_81B0708 - .4byte gUnknown_81B07AD - .4byte gUnknown_81B0851 - .4byte gUnknown_81B08FB - .4byte gUnknown_81B098B - .4byte gUnknown_81B0A50 - .4byte gUnknown_81B0B0E - .4byte gUnknown_81B0BB5 - -gUnknown_845F6BC:: @ 845F6BC - .4byte gUnknown_81AD106 - .4byte gUnknown_81AD145 - .4byte gUnknown_81AD1BB - .4byte gUnknown_81AD258 - .4byte gUnknown_81AD2B9 - .4byte gUnknown_81AD377 - .4byte gUnknown_81AD40C - .4byte gUnknown_81AD4AE - .4byte gUnknown_81AD516 - .4byte gUnknown_81AD5A7 - .4byte gUnknown_81AD608 - .4byte gUnknown_81AD69F - .4byte gUnknown_81AD705 - .4byte gUnknown_81AD771 - .4byte gUnknown_81AD840 - .4byte gUnknown_81AD908 - .4byte gUnknown_81AD99A - .4byte gUnknown_81ADA27 - .4byte gUnknown_81ADA91 - .4byte gUnknown_81ADAF6 - .4byte gUnknown_81ADB5A - .4byte gUnknown_81ADBD9 - .4byte gUnknown_81ADC72 - .4byte gUnknown_81ADCEB - .4byte gUnknown_81ADD3C - .4byte gUnknown_81ADDA7 - .4byte gUnknown_81ADE0B - .4byte gUnknown_81ADE82 - .4byte gUnknown_81ADEEC - .4byte gUnknown_81ADF6A - .4byte gUnknown_81AE009 - .4byte gUnknown_81AE072 - .4byte gUnknown_81AE0F3 - .4byte gUnknown_81AE15B - .4byte gUnknown_81AE1E5 - .4byte gUnknown_81AE247 - .4byte gUnknown_81AE2B6 - .4byte gUnknown_81AE31D - .4byte gUnknown_81AE37D - .4byte gUnknown_81AE407 - .4byte gUnknown_81AE48D - .4byte gUnknown_81AE51B - .4byte gUnknown_81AE5E8 - .4byte gUnknown_81AE656 - .4byte gUnknown_81AE6D7 - .4byte gUnknown_81AE762 - .4byte gUnknown_81AE7CB - .4byte gUnknown_81AE841 - .4byte gUnknown_81AE89E - .4byte gUnknown_81AE90A - .4byte gUnknown_81AE990 - .4byte gUnknown_81AEA59 - .4byte gUnknown_81AEAEE - .4byte gUnknown_81AEB69 - .4byte gUnknown_81AEBDF - .4byte gUnknown_81AEC28 - .4byte gUnknown_81AEC82 - .4byte gUnknown_81AED27 - .4byte gUnknown_81AEDAA - .4byte gUnknown_81AEE51 - .4byte gUnknown_81AEF25 - .4byte gUnknown_81AEF6C - .4byte gUnknown_81AEFC6 - .4byte gUnknown_81AF04C - .4byte gUnknown_81AF0F0 - .4byte gUnknown_81AF19A - .4byte gUnknown_81AF200 - .4byte gUnknown_81AF248 - .4byte gUnknown_81AF2B7 - .4byte gUnknown_81AF34E - .4byte gUnknown_81AF3BE - .4byte gUnknown_81AF47C - .4byte gUnknown_81AF4FD - .4byte gUnknown_81AF567 - .4byte gUnknown_81AF641 - .4byte gUnknown_81AF6BA - .4byte gUnknown_81AF758 - .4byte gUnknown_81AF7CB - .4byte gUnknown_81AF83E - .4byte gUnknown_81AF8CA - .4byte gUnknown_81AF929 - .4byte gUnknown_81AF998 - .4byte gUnknown_81AFA20 - .4byte gUnknown_81AFAB9 - .4byte gUnknown_81AFB0C - .4byte gUnknown_81AFB76 - .4byte gUnknown_81AFC38 - .4byte gUnknown_81AFCE9 - .4byte gUnknown_81AFD49 - .4byte gUnknown_81AFDC4 - .4byte gUnknown_81AFE68 - .4byte gUnknown_81AFF23 - .4byte gUnknown_81AFFA8 - .4byte gUnknown_81B0022 - .4byte gUnknown_81B00A6 - .4byte gUnknown_81B0106 - gUnknown_845F83C:: @ 845F83C .incbin "baserom.gba", 0x45F83C, 0x60 diff --git a/include/event_scripts.h b/include/event_scripts.h index ebfdb4fe3..28106d9d4 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -381,4 +381,136 @@ extern const u8 gUnknown_84178DA[]; extern const u8 gUnknown_81C137C[]; extern const u8 gUnknown_81C13D6[]; extern const u8 gUnknown_81C1429[]; + +// fame_checker + +extern const u8 gUnknown_81AD106[]; +extern const u8 gUnknown_81AD145[]; +extern const u8 gUnknown_81AD1BB[]; +extern const u8 gUnknown_81AD258[]; +extern const u8 gUnknown_81AD2B9[]; +extern const u8 gUnknown_81AD377[]; +extern const u8 gUnknown_81AD40C[]; +extern const u8 gUnknown_81AD4AE[]; +extern const u8 gUnknown_81AD516[]; +extern const u8 gUnknown_81AD5A7[]; +extern const u8 gUnknown_81AD608[]; +extern const u8 gUnknown_81AD69F[]; +extern const u8 gUnknown_81AD705[]; +extern const u8 gUnknown_81AD771[]; +extern const u8 gUnknown_81AD840[]; +extern const u8 gUnknown_81AD908[]; +extern const u8 gUnknown_81AD99A[]; +extern const u8 gUnknown_81ADA27[]; +extern const u8 gUnknown_81ADA91[]; +extern const u8 gUnknown_81ADAF6[]; +extern const u8 gUnknown_81ADB5A[]; +extern const u8 gUnknown_81ADBD9[]; +extern const u8 gUnknown_81ADC72[]; +extern const u8 gUnknown_81ADCEB[]; +extern const u8 gUnknown_81ADD3C[]; +extern const u8 gUnknown_81ADDA7[]; +extern const u8 gUnknown_81ADE0B[]; +extern const u8 gUnknown_81ADE82[]; +extern const u8 gUnknown_81ADEEC[]; +extern const u8 gUnknown_81ADF6A[]; +extern const u8 gUnknown_81AE009[]; +extern const u8 gUnknown_81AE072[]; +extern const u8 gUnknown_81AE0F3[]; +extern const u8 gUnknown_81AE15B[]; +extern const u8 gUnknown_81AE1E5[]; +extern const u8 gUnknown_81AE247[]; +extern const u8 gUnknown_81AE2B6[]; +extern const u8 gUnknown_81AE31D[]; +extern const u8 gUnknown_81AE37D[]; +extern const u8 gUnknown_81AE407[]; +extern const u8 gUnknown_81AE48D[]; +extern const u8 gUnknown_81AE51B[]; +extern const u8 gUnknown_81AE5E8[]; +extern const u8 gUnknown_81AE656[]; +extern const u8 gUnknown_81AE6D7[]; +extern const u8 gUnknown_81AE762[]; +extern const u8 gUnknown_81AE7CB[]; +extern const u8 gUnknown_81AE841[]; +extern const u8 gUnknown_81AE89E[]; +extern const u8 gUnknown_81AE90A[]; +extern const u8 gUnknown_81AE990[]; +extern const u8 gUnknown_81AEA59[]; +extern const u8 gUnknown_81AEAEE[]; +extern const u8 gUnknown_81AEB69[]; +extern const u8 gUnknown_81AEBDF[]; +extern const u8 gUnknown_81AEC28[]; +extern const u8 gUnknown_81AEC82[]; +extern const u8 gUnknown_81AED27[]; +extern const u8 gUnknown_81AEDAA[]; +extern const u8 gUnknown_81AEE51[]; +extern const u8 gUnknown_81AEF25[]; +extern const u8 gUnknown_81AEF6C[]; +extern const u8 gUnknown_81AEFC6[]; +extern const u8 gUnknown_81AF04C[]; +extern const u8 gUnknown_81AF0F0[]; +extern const u8 gUnknown_81AF19A[]; +extern const u8 gUnknown_81AF200[]; +extern const u8 gUnknown_81AF248[]; +extern const u8 gUnknown_81AF2B7[]; +extern const u8 gUnknown_81AF34E[]; +extern const u8 gUnknown_81AF3BE[]; +extern const u8 gUnknown_81AF47C[]; +extern const u8 gUnknown_81AF4FD[]; +extern const u8 gUnknown_81AF567[]; +extern const u8 gUnknown_81AF641[]; +extern const u8 gUnknown_81AF6BA[]; +extern const u8 gUnknown_81AF758[]; +extern const u8 gUnknown_81AF7CB[]; +extern const u8 gUnknown_81AF83E[]; +extern const u8 gUnknown_81AF8CA[]; +extern const u8 gUnknown_81AF929[]; +extern const u8 gUnknown_81AF998[]; +extern const u8 gUnknown_81AFA20[]; +extern const u8 gUnknown_81AFAB9[]; +extern const u8 gUnknown_81AFB0C[]; +extern const u8 gUnknown_81AFB76[]; +extern const u8 gUnknown_81AFC38[]; +extern const u8 gUnknown_81AFCE9[]; +extern const u8 gUnknown_81AFD49[]; +extern const u8 gUnknown_81AFDC4[]; +extern const u8 gUnknown_81AFE68[]; +extern const u8 gUnknown_81AFF23[]; +extern const u8 gUnknown_81AFFA8[]; +extern const u8 gUnknown_81B0022[]; +extern const u8 gUnknown_81B00A6[]; +extern const u8 gUnknown_81B0106[]; +extern const u8 gUnknown_81B0188[]; +extern const u8 gUnknown_81B0198[]; +extern const u8 gUnknown_81B0251[]; +extern const u8 gUnknown_81B025D[]; +extern const u8 gUnknown_81B030F[]; +extern const u8 gUnknown_81B031B[]; +extern const u8 gUnknown_81B03B3[]; +extern const u8 gUnknown_81B03BF[]; +extern const u8 gUnknown_81B0446[]; +extern const u8 gUnknown_81B0456[]; +extern const u8 gUnknown_81B0504[]; +extern const u8 gUnknown_81B0510[]; +extern const u8 gUnknown_81B05C2[]; +extern const u8 gUnknown_81B05CD[]; +extern const u8 gUnknown_81B0667[]; +extern const u8 gUnknown_81B0675[]; +extern const u8 gUnknown_81B06FB[]; +extern const u8 gUnknown_81B0708[]; +extern const u8 gUnknown_81B079F[]; +extern const u8 gUnknown_81B07AD[]; +extern const u8 gUnknown_81B0845[]; +extern const u8 gUnknown_81B0851[]; +extern const u8 gUnknown_81B08EE[]; +extern const u8 gUnknown_81B08FB[]; +extern const u8 gUnknown_81B097F[]; +extern const u8 gUnknown_81B098B[]; +extern const u8 gUnknown_81B0A45[]; +extern const u8 gUnknown_81B0A50[]; +extern const u8 gUnknown_81B0AFF[]; +extern const u8 gUnknown_81B0B0E[]; +extern const u8 gUnknown_81B0BA6[]; +extern const u8 gUnknown_81B0BB5[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 2f455c462..11bb637b7 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -3,6 +3,7 @@ #include "sprite.h" #include "bg.h" #include "event_data.h" +#include "event_scripts.h" #include "graphics.h" #include "battle.h" #include "battle_setup.h" @@ -125,21 +126,221 @@ extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; +extern const u8 gUnknown_841E5E9[]; +extern const u8 gUnknown_841E5ED[]; +extern const u8 gUnknown_841E5F3[]; +extern const u8 gUnknown_841E5F8[]; + +const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +const u16 gUnknown_845DD40[] = INCBIN_U16("data/fame_checker/img_845dd40.4bpp"); +const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +const u16 gUnknown_845E560[] = INCBIN_U16("data/fame_checker/img_845e560.4bpp"); +const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); +const u16 gUnknown_845ED80[] = INCBIN_U16("data/fame_checker/img_845ed80.4bpp"); +const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); +const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); + +const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; +const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; +const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; + +const u16 gUnknown_845F5EA[] = { + 0xfe00, + 0xfe01, + 0x019e, + 0x019f, + 0x01a0, + 0x01a1, + 0x01a2, + 0x01a4, + 0x01a3, + 0x019a, + 0x019b, + 0x019c, + 0x019d, + 0xfe02, + 0xfe03, + 0x015c +}; + +const u8 *const gUnknown_845F60C[] = { + gUnknown_841E5E9, + gUnknown_841E5ED, + gUnknown_841E5F3, + gUnknown_841E5F8 +}; + +const u8 gUnknown_845F61C[] = { + 0x56, + 0x54, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x7a, + 0x79, + 0x70, + 0x71, + 0x72, + 0x73, + 0x64, + 0x7b, + 0x6c, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x00, + 0x00, + 0x00 +}; + +const u8 *const gUnknown_845F63C[] = { + gUnknown_81B0188, + gUnknown_81B0251, + gUnknown_81B030F, + gUnknown_81B03B3, + gUnknown_81B0446, + gUnknown_81B0504, + gUnknown_81B05C2, + gUnknown_81B0667, + gUnknown_81B06FB, + gUnknown_81B079F, + gUnknown_81B0845, + gUnknown_81B08EE, + gUnknown_81B097F, + gUnknown_81B0A45, + gUnknown_81B0AFF, + gUnknown_81B0BA6, + gUnknown_81B0198, + gUnknown_81B025D, + gUnknown_81B031B, + gUnknown_81B03BF, + gUnknown_81B0456, + gUnknown_81B0510, + gUnknown_81B05CD, + gUnknown_81B0675, + gUnknown_81B0708, + gUnknown_81B07AD, + gUnknown_81B0851, + gUnknown_81B08FB, + gUnknown_81B098B, + gUnknown_81B0A50, + gUnknown_81B0B0E, + gUnknown_81B0BB5 +}; + +const u8 *const gUnknown_845F6BC[] = { + gUnknown_81AD106, + gUnknown_81AD145, + gUnknown_81AD1BB, + gUnknown_81AD258, + gUnknown_81AD2B9, + gUnknown_81AD377, + gUnknown_81AD40C, + gUnknown_81AD4AE, + gUnknown_81AD516, + gUnknown_81AD5A7, + gUnknown_81AD608, + gUnknown_81AD69F, + gUnknown_81AD705, + gUnknown_81AD771, + gUnknown_81AD840, + gUnknown_81AD908, + gUnknown_81AD99A, + gUnknown_81ADA27, + gUnknown_81ADA91, + gUnknown_81ADAF6, + gUnknown_81ADB5A, + gUnknown_81ADBD9, + gUnknown_81ADC72, + gUnknown_81ADCEB, + gUnknown_81ADD3C, + gUnknown_81ADDA7, + gUnknown_81ADE0B, + gUnknown_81ADE82, + gUnknown_81ADEEC, + gUnknown_81ADF6A, + gUnknown_81AE009, + gUnknown_81AE072, + gUnknown_81AE0F3, + gUnknown_81AE15B, + gUnknown_81AE1E5, + gUnknown_81AE247, + gUnknown_81AE2B6, + gUnknown_81AE31D, + gUnknown_81AE37D, + gUnknown_81AE407, + gUnknown_81AE48D, + gUnknown_81AE51B, + gUnknown_81AE5E8, + gUnknown_81AE656, + gUnknown_81AE6D7, + gUnknown_81AE762, + gUnknown_81AE7CB, + gUnknown_81AE841, + gUnknown_81AE89E, + gUnknown_81AE90A, + gUnknown_81AE990, + gUnknown_81AEA59, + gUnknown_81AEAEE, + gUnknown_81AEB69, + gUnknown_81AEBDF, + gUnknown_81AEC28, + gUnknown_81AEC82, + gUnknown_81AED27, + gUnknown_81AEDAA, + gUnknown_81AEE51, + gUnknown_81AEF25, + gUnknown_81AEF6C, + gUnknown_81AEFC6, + gUnknown_81AF04C, + gUnknown_81AF0F0, + gUnknown_81AF19A, + gUnknown_81AF200, + gUnknown_81AF248, + gUnknown_81AF2B7, + gUnknown_81AF34E, + gUnknown_81AF3BE, + gUnknown_81AF47C, + gUnknown_81AF4FD, + gUnknown_81AF567, + gUnknown_81AF641, + gUnknown_81AF6BA, + gUnknown_81AF758, + gUnknown_81AF7CB, + gUnknown_81AF83E, + gUnknown_81AF8CA, + gUnknown_81AF929, + gUnknown_81AF998, + gUnknown_81AFA20, + gUnknown_81AFAB9, + gUnknown_81AFB0C, + gUnknown_81AFB76, + gUnknown_81AFC38, + gUnknown_81AFCE9, + gUnknown_81AFD49, + gUnknown_81AFDC4, + gUnknown_81AFE68, + gUnknown_81AFF23, + gUnknown_81AFFA8, + gUnknown_81B0022, + gUnknown_81B00A6, + gUnknown_81B0106 +}; -extern const u16 gUnknown_845C600[]; -extern const u16 gUnknown_845DD20[]; -extern const u16 gUnknown_845E540[]; -extern const u16 gUnknown_845ED60[]; -extern const u16 gUnknown_845F580[]; -extern const u16 gUnknown_845F5C0[]; -extern const struct TextColor gUnknown_845F5E0; -extern const struct TextColor gUnknown_845F5E3; -extern const struct TextColor gUnknown_845F5E6; -extern const u16 gUnknown_845F5EA[]; -extern const u8 gUnknown_845F61C[]; -extern const u8 *const gUnknown_845F60C[]; -extern const u8 *const gUnknown_845F63C[]; -extern const u8 *const gUnknown_845F6BC[]; extern const u8 *const gUnknown_845F89C[]; extern const u8 *const gUnknown_845FA1C[]; extern const u8 gUnknown_845F83C[]; From 6fb78b0885d4dacf83df09eb48bb97d3c75b6680 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:51:56 -0500 Subject: [PATCH 24/49] more text dism --- data/event_scripts.s | 3 - data/fame_checker.s | 6 - data/text/fame_checker.inc | 902 +++++++++++++++++++++++++++++++++++++ include/event_scripts.h | 96 ++++ src/fame_checker.c | 152 +++---- 5 files changed, 1052 insertions(+), 107 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 764de7637..c27df1946 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -230,9 +230,6 @@ gUnknown_81A8DFD:: @ 81A8DFD .include "data/text/fame_checker.inc" -gUnknown_81B0C45:: @ 0x81B0C45 - .incbin "baserom.gba", 0x1B0C45, 0x222A - gUnknown_81B2E6F:: @ 81B2E6F .incbin "baserom.gba", 0x1B2E6F, 0x15A diff --git a/data/fame_checker.s b/data/fame_checker.s index 55042293a..e85c384bb 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,12 +4,6 @@ .section .rodata .align 2 -gUnknown_845F83C:: @ 845F83C - .incbin "baserom.gba", 0x45F83C, 0x60 - -gUnknown_845F89C:: @ 845F89C - .incbin "baserom.gba", 0x45F89C, 0x180 - gUnknown_845FA1C:: @ 845FA1C .incbin "baserom.gba", 0x45FA1C, 0x180 diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc index fd4864dc8..975960e4e 100644 --- a/data/text/fame_checker.inc +++ b/data/text/fame_checker.inc @@ -796,3 +796,905 @@ gUnknown_81B0BB5:: @ 0x81B0BB5 .string "to you.\p" .string "I will concentrate solely on\n" .string "bettering myself, and none other.$" + +gUnknown_81B0C45:: @ 0x81B0C45 + .string "PALLET TOWN$" + +gUnknown_81B0C51:: @ 81B0C51 + .string "RESEARCH LAB$" + +gUnknown_81B0C5E:: @ 81B0C5E + .string "RESEARCH LAB$" + +gUnknown_81B0C6B:: @ 81B0C6B + .string "VIRIDIAN CITY$" + +gUnknown_81B0C79:: @ 81B0C79 + .string "POKéMON LEAGUE$" + +gUnknown_81B0C88:: @ 81B0C88 + .string "RESEARCH LAB$" + +gUnknown_81B0C95:: @ 81B0C95 + .string "RESEARCH LAB$" + +gUnknown_81B0CA2:: @ 81B0CA2 + .string "VERMILION CITY$" + +gUnknown_81B0CB1:: @ 81B0CB1 + .string "WATER LABYRINTH$" + +gUnknown_81B0CC1:: @ 81B0CC1 + .string "VIRIDIAN CITY$" + +gUnknown_81B0CCF:: @ 81B0CCF + .string "CELADON MANSION$" + +gUnknown_81B0CDF:: @ 81B0CDF + .string "FOUR ISLAND$" + +gUnknown_81B0CEB:: @ 81B0CEB + .string "PEWTER CITY$" + +gUnknown_81B0CF7:: @ 81B0CF7 + .string "PEWTER GYM$" + +gUnknown_81B0D02:: @ 81B0D02 + .string "PEWTER CITY$" + +gUnknown_81B0D0E:: @ 81B0D0E + .string "ROUTE 4$" + +gUnknown_81B0D16:: @ 81B0D16 + .string "MT. MOON$" + +gUnknown_81B0D1F:: @ 81B0D1F + .string "PEWTER MUSEUM$" + +gUnknown_81B0D2D:: @ 81B0D2D + .string "CERULEAN CITY$" + +gUnknown_81B0D3B:: @ 81B0D3B + .string "CERULEAN GYM$" + +gUnknown_81B0D48:: @ 81B0D48 + .string "CERULEAN GYM$" + +gUnknown_81B0D55:: @ 81B0D55 + .string "SEAFOAM ISLANDS$" + +gUnknown_81B0D65:: @ 81B0D65 + .string "CERULEAN CAPE$" + +gUnknown_81B0D73:: @ 81B0D73 + .string "CERULEAN CITY$" + +gUnknown_81B0D81:: @ 81B0D81 + .string "VERMILION CITY$" + +gUnknown_81B0D90:: @ 81B0D90 + .string "VERMILION GYM$" + +gUnknown_81B0D9E:: @ 81B0D9E + .string "VERMILION GYM$" + +gUnknown_81B0DAC:: @ 81B0DAC + .string "VERMILION GYM$" + +gUnknown_81B0DBA:: @ 81B0DBA + .string "VERMILION GYM$" + +gUnknown_81B0DC8:: @ 81B0DC8 + .string "VERMILION CITY$" + +gUnknown_81B0DD7:: @ 81B0DD7 + .string "CELADON CITY$" + +gUnknown_81B0DE4:: @ 81B0DE4 + .string "CELADON GYM$" + +gUnknown_81B0DF0:: @ 81B0DF0 + .string "CELADON GYM$" + +gUnknown_81B0DFC:: @ 81B0DFC + .string "CELADON GYM$" + +gUnknown_81B0E08:: @ 81B0E08 + .string "CELADON GYM$" + +gUnknown_81B0E14:: @ 81B0E14 + .string "CELADON MANSION$" + +gUnknown_81B0E24:: @ 81B0E24 + .string "FUCHSIA CITY$" + +gUnknown_81B0E31:: @ 81B0E31 + .string "FUCHSIA GYM$" + +gUnknown_81B0E3D:: @ 81B0E3D + .string "FUCHSIA GYM$" + +gUnknown_81B0E49:: @ 81B0E49 + .string "FUCHSIA CITY$" + +gUnknown_81B0E56:: @ 81B0E56 + .string "FUCHSIA CITY$" + +gUnknown_81B0E63:: @ 81B0E63 + .string "SAFARI ZONE$" + +gUnknown_81B0E6F:: @ 81B0E6F + .string "SAFFRON CITY$" + +gUnknown_81B0E7C:: @ 81B0E7C + .string "THREE ISLAND$" + +gUnknown_81B0E89:: @ 81B0E89 + .string "SAFFRON GYM$" + +gUnknown_81B0E95:: @ 81B0E95 + .string "SAFFRON GYM$" + +gUnknown_81B0EA1:: @ 81B0EA1 + .string "SAFFRON CITY$" + +gUnknown_81B0EAE:: @ 81B0EAE + .string "SAFFRON GYM$" + +gUnknown_81B0EBA:: @ 81B0EBA + .string "CINNABAR ISLAND$" + +gUnknown_81B0ECA:: @ 81B0ECA + .string "CINNABAR GYM$" + +gUnknown_81B0ED7:: @ 81B0ED7 + .string "CINNABAR GYM$" + +gUnknown_81B0EE4:: @ 81B0EE4 + .string "CINNABAR ISLAND$" + +gUnknown_81B0EF4:: @ 81B0EF4 + .string "CINNABAR GYM$" + +gUnknown_81B0F01:: @ 81B0F01 + .string "RESORT GORGEOUS$" + +gUnknown_81B0F11:: @ 81B0F11 + .string "POKéMON LEAGUE$" + +gUnknown_81B0F20:: @ 81B0F20 + .string "POKéMON LEAGUE$" + +gUnknown_81B0F2F:: @ 81B0F2F + .string "FOUR ISLAND$" + +gUnknown_81B0F3B:: @ 81B0F3B + .string "FIVE ISLAND$" + +gUnknown_81B0F47:: @ 81B0F47 + .string "FOUR ISLAND$" + +gUnknown_81B0F53:: @ 81B0F53 + .string "FOUR ISLAND$" + +gUnknown_81B0F5F:: @ 81B0F5F + .string "POKéMON LEAGUE$" + +gUnknown_81B0F6E:: @ 81B0F6E + .string "POKéMON LEAGUE$" + +gUnknown_81B0F7D:: @ 81B0F7D + .string "SAFFRON CITY$" + +gUnknown_81B0F8A:: @ 81B0F8A + .string "EMBER SPA$" + +gUnknown_81B0F94:: @ 81B0F94 + .string "TWO ISLAND$" + +gUnknown_81B0F9F:: @ 81B0F9F + .string "SEVAULT CANYON$" + +gUnknown_81B0FAE:: @ 81B0FAE + .string "POKéMON LEAGUE$" + +gUnknown_81B0FBD:: @ 81B0FBD + .string "INDIGO PLATEAU$" + +gUnknown_81B0FCC:: @ 81B0FCC + .string "INDIGO PLATEAU$" + +gUnknown_81B0FDB:: @ 81B0FDB + .string "SEVEN ISLAND$" + +gUnknown_81B0FE8:: @ 81B0FE8 + .string "POKéMON LEAGUE$" + +gUnknown_81B0FF7:: @ 81B0FF7 + .string "SIX ISLAND$" + +gUnknown_81B1002:: @ 81B1002 + .string "POKéMON LEAGUE$" + +gUnknown_81B1011:: @ 81B1011 + .string "POKéMON LEAGUE$" + +gUnknown_81B1020:: @ 81B1020 + .string "SAFFRON CITY$" + +gUnknown_81B102D:: @ 81B102D + .string "CELADON DEPT.$" + +gUnknown_81B103B:: @ 81B103B + .string "INDIGO PLATEAU$" + +gUnknown_81B104A:: @ 81B104A + .string "INDIGO PLATEAU$" + +gUnknown_81B1059:: @ 81B1059 + .string "CERULEAN CITY$" + +gUnknown_81B1067:: @ 81B1067 + .string "CERULEAN CITY$" + +gUnknown_81B1075:: @ 81B1075 + .string "FUCHSIA CITY$" + +gUnknown_81B1082:: @ 81B1082 + .string "ONE ISLAND$" + +gUnknown_81B108D:: @ 81B108D + .string "ONE ISLAND$" + +gUnknown_81B1098:: @ 81B1098 + .string "ONE ISLAND$" + +gUnknown_81B10A3:: @ 81B10A3 + .string "LAVENDER TOWN$" + +gUnknown_81B10B1:: @ 81B10B1 + .string "POKéMON TOWER$" + +gUnknown_81B10BF:: @ 81B10BF + .string "LAVENDER TOWN$" + +gUnknown_81B10CD:: @ 81B10CD + .string "LAVENDER TOWN$" + +gUnknown_81B10DB:: @ 81B10DB + .string "CINNABAR GYM$" + +gUnknown_81B10E8:: @ 81B10E8 + .string "CINNABAR ISLAND$" + +gUnknown_81B10F8:: @ 81B10F8 + .string "ROCKET HIDEOUT$" + +gUnknown_81B1107:: @ 81B1107 + .string "SILPH CO.$" + +gUnknown_81B1111:: @ 81B1111 + .string "SILPH CO.$" + +gUnknown_81B111B:: @ 81B111B + .string "VIRIDIAN GYM$" + +gUnknown_81B1128:: @ 81B1128 + .string "VIRIDIAN GYM$" + +gUnknown_81B1135:: @ 81B1135 + .string "ROCKET WAREHOUSE$" + +gUnknown_81B1146:: @ 81B1146 + .string "SIGN$" + +gUnknown_81B114B:: @ 81B114B + .string "PROF. OAK$" + +gUnknown_81B1155:: @ 81B1155 + .string "AIDE$" + +gUnknown_81B115A:: @ 81B115A + .string "POKéMON JOURNAL$" + +gUnknown_81B116A:: @ 81B116A + .string "AGATHA$" + +gUnknown_81B1171:: @ 81B1171 + .string "AIDE$" + +gUnknown_81B1176:: @ 81B1176 + .string "AIDE$" + +gUnknown_81B117B:: @ 81B117B + .string "WOMAN$" + +gUnknown_81B1181:: @ 81B1181 + .string "MAN$" + +gUnknown_81B1185:: @ 81B1185 + .string "POKéMON JOURNAL$" + +gUnknown_81B1195:: @ 81B1195 + .string "OLD LADY$" + +gUnknown_81B119E:: @ 81B119E + .string "POKéMON JOURNAL$" + +gUnknown_81B11AE:: @ 81B11AE + .string "SIGN$" + +gUnknown_81B11B3:: @ 81B11B3 + .string "BROCK$" + +gUnknown_81B11B9:: @ 81B11B9 + .string "YOUNG MAN$" + +gUnknown_81B11C3:: @ 81B11C3 + .string "BOY$" + +gUnknown_81B11C7:: @ 81B11C7 + .string "MAN$" + +gUnknown_81B11CB:: @ 81B11CB + .string "POKéMON JOURNAL$" + +gUnknown_81B11DB:: @ 81B11DB + .string "SIGN$" + +gUnknown_81B11E0:: @ 81B11E0 + .string "MISTY$" + +gUnknown_81B11E6:: @ 81B11E6 + .string "LUIS$" + +gUnknown_81B11EB:: @ 81B11EB + .string "YOUNG MAN$" + +gUnknown_81B11F5:: @ 81B11F5 + .string "DAME$" + +gUnknown_81B11FA:: @ 81B11FA + .string "POKéMON JOURNAL$" + +gUnknown_81B120A:: @ 81B120A + .string "SIGN$" + +gUnknown_81B120F:: @ 81B120F + .string "LT. SURGE$" + +gUnknown_81B1219:: @ 81B1219 + .string "TUCKER$" + +gUnknown_81B1220:: @ 81B1220 + .string "TUCKER$" + +gUnknown_81B1227:: @ 81B1227 + .string "DWAYNE$" + +gUnknown_81B122E:: @ 81B122E + .string "POKéMON JOURNAL$" + +gUnknown_81B123E:: @ 81B123E + .string "SIGN$" + +gUnknown_81B1243:: @ 81B1243 + .string "ERIKA$" + +gUnknown_81B1249:: @ 81B1249 + .string "LOLA$" + +gUnknown_81B124E:: @ 81B124E + .string "TAMIA$" + +gUnknown_81B1254:: @ 81B1254 + .string "ERIKA$" + +gUnknown_81B125A:: @ 81B125A + .string "POKéMON JOURNAL$" + +gUnknown_81B126A:: @ 81B126A + .string "SIGN$" + +gUnknown_81B126F:: @ 81B126F + .string "KOGA$" + +gUnknown_81B1274:: @ 81B1274 + .string "KIRK$" + +gUnknown_81B1279:: @ 81B1279 + .string "CHARINE$" + +gUnknown_81B1281:: @ 81B1281 + .string "POKéMON JOURNAL$" + +gUnknown_81B1291:: @ 81B1291 + .string "MAN$" + +gUnknown_81B1295:: @ 81B1295 + .string "SIGN$" + +gUnknown_81B129A:: @ 81B129A + .string "YOUNG MAN$" + +gUnknown_81B12A4:: @ 81B12A4 + .string "SABRINA$" + +gUnknown_81B12AC:: @ 81B12AC + .string "SABRINA$" + +gUnknown_81B12B4:: @ 81B12B4 + .string "POKéMON JOURNAL$" + +gUnknown_81B12C4:: @ 81B12C4 + .string "TYRON$" + +gUnknown_81B12CA:: @ 81B12CA + .string "SIGN$" + +gUnknown_81B12CF:: @ 81B12CF + .string "BLAINE$" + +gUnknown_81B12D6:: @ 81B12D6 + .string "DEREK$" + +gUnknown_81B12DC:: @ 81B12DC + .string "WOMAN$" + +gUnknown_81B12E2:: @ 81B12E2 + .string "PHOTO$" + +gUnknown_81B12E8:: @ 81B12E8 + .string "POKéMON JOURNAL$" + +gUnknown_81B12F8:: @ 81B12F8 + .string "LORELEI$" + +gUnknown_81B1300:: @ 81B1300 + .string "LORELEI$" + +gUnknown_81B1308:: @ 81B1308 + .string "OLD MAN$" + +gUnknown_81B1310:: @ 81B1310 + .string "POKéMON JOURNAL$" + +gUnknown_81B1320:: @ 81B1320 + .string "LITTLE GIRL$" + +gUnknown_81B132C:: @ 81B132C + .string "OLD LADY$" + +gUnknown_81B1335:: @ 81B1335 + .string "BRUNO$" + +gUnknown_81B133B:: @ 81B133B + .string "BRUNO$" + +gUnknown_81B1341:: @ 81B1341 + .string "POKéMON JOURNAL$" + +gUnknown_81B1351:: @ 81B1351 + .string "CRUSHER$" + +gUnknown_81B1359:: @ 81B1359 + .string "WOMAN$" + +gUnknown_81B135F:: @ 81B135F + .string "CRUSHER$" + +gUnknown_81B1367:: @ 81B1367 + .string "AGATHA$" + +gUnknown_81B136E:: @ 81B136E + .string "CRUSHER$" + +gUnknown_81B1376:: @ 81B1376 + .string "CRUSHER$" + +gUnknown_81B137E:: @ 81B137E + .string "POKéMON JOURNAL$" + +gUnknown_81B138E:: @ 81B138E + .string "AGATHA$" + +gUnknown_81B1395:: @ 81B1395 + .string "OLD LADY$" + +gUnknown_81B139E:: @ 81B139E + .string "LANCE$" + +gUnknown_81B13A4:: @ 81B13A4 + .string "LANCE$" + +gUnknown_81B13AA:: @ 81B13AA + .string "WOMAN$" + +gUnknown_81B13B0:: @ 81B13B0 + .string "LITTLE GIRL$" + +gUnknown_81B13BC:: @ 81B13BC + .string "POKéMON JOURNAL$" + +gUnknown_81B13CC:: @ 81B13CC + .string "YOUNG MAN$" + +gUnknown_81B13D6:: @ 81B13D6 + .string "{RIVAL}$" + +gUnknown_81B13D9:: @ 81B13D9 + .string "LITTLE BOY$" + +gUnknown_81B13E4:: @ 81B13E4 + .string "OLD MAN$" + +gUnknown_81B13EC:: @ 81B13EC + .string "CELIO$" + +gUnknown_81B13F2:: @ 81B13F2 + .string "CELIO$" + +gUnknown_81B13F8:: @ 81B13F8 + .string "CELIO$" + +gUnknown_81B13FE:: @ 81B13FE + .string "LITTLE GIRL$" + +gUnknown_81B140A:: @ 81B140A + .string "TEAM ROCKET$" + +gUnknown_81B1416:: @ 81B1416 + .string "MAGAZINE$" + +gUnknown_81B141F:: @ 81B141F + .string "MAN$" + +gUnknown_81B1423:: @ 81B1423 + .string "PHOTO$" + +gUnknown_81B1429:: @ 81B1429 + .string "POKéMON JOURNAL$" + +gUnknown_81B1439:: @ 81B1439 + .string "GIOVANNI$" + +gUnknown_81B1442:: @ 81B1442 + .string "SCIENTIST$" + +gUnknown_81B144C:: @ 81B144C + .string "SCIENTIST$" + +gUnknown_81B1456:: @ 81B1456 + .string "GIOVANNI$" + +gUnknown_81B145F:: @ 81B145F + .string "MAN$" + +gUnknown_81B1463:: @ 81B1463 + .string "GIDEON$" + +gUnknown_81B146A:: @ 81B146A + .string "POKéMON JOURNAL\p" + .string "Special Feature: PEWTER GYM\n" + .string "LEADER BROCK!\p" + .string "BROCK rarely laughs, but is said to\n" + .string "be unable to stop if he starts.$" + +gUnknown_81B14E8:: @ 81B14E8 + .string "POKéMON JOURNAL\p" + .string "Special Feature: CERULEAN GYM\n" + .string "LEADER MISTY!\p" + .string "MISTY is said to worship LORELEI\n" + .string "of the ELITE FOUR.$" + +gUnknown_81B1558:: @ 81B1558 + .string "POKéMON JOURNAL\p" + .string "Special Feature: VERMILION GYM\n" + .string "LEADER LT. SURGE!\p" + .string "LT. SURGE is rumored to have been\n" + .string "a pilot while home in America.\p" + .string "He used the electricity generated\n" + .string "by POKéMON to power his plane.$" + +gUnknown_81B161B:: @ 81B161B + .string "POKéMON JOURNAL\p" + .string "Special Feature: CELADON GYM\n" + .string "LEADER ERIKA!\p" + .string "Rumor has it that if you peek into\n" + .string "CELADON GYM, you can often\l" + .string "see ERIKA snoozing.$" + +gUnknown_81B16A8:: @ 81B16A8 + .string "POKéMON JOURNAL\p" + .string "Special Feature: FUCHSIA GYM\n" + .string "LEADER KOGA!\p" + .string "KOGA is said to have a thorough\n" + .string "knowledge of medicine.\p" + .string "He even concocts medicine to nurse\n" + .string "his POKéMON to health.$" + +gUnknown_81B1753:: @ 81B1753 + .string "POKéMON JOURNAL\p" + .string "Special Feature: SAFFRON GYM\n" + .string "LEADER SABRINA!\p" + .string "People say that SABRINA can\n" + .string "communicate with her POKéMON\l" + .string "during battle without speaking.$" + +gUnknown_81B17E9:: @ 81B17E9 + .string "POKéMON JOURNAL\p" + .string "Special Feature: CINNABAR GYM\n" + .string "LEADER BLAINE!\p" + .string "BLAINE is said to remove his dark\n" + .string "shades only when he is thinking up\l" + .string "new quiz questions.$" + +gUnknown_81B187F:: @ 81B187F + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR’s LORELEI!\p" + .string "Known for her logical, calculated,\n" + .string "and cool battling style, LORELEI\l" + .string "has a surprising secret!$" + +gUnknown_81B1913:: @ 81B1913 + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR’s BRUNO!\p" + .string "BRUNO apparently joined the ELITE\n" + .string "FOUR out of his burning ambition to\l" + .string "battle the best TRAINERS.$" + +gUnknown_81B19A8:: @ 81B19A8 + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR’s AGATHA!\p" + .string "In her youth, AGATHA and PROF.\n" + .string "OAK were rivals who vied for\l" + .string "supremacy as TRAINERS.$" + +gUnknown_81B1A31:: @ 81B1A31 + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "ELITE FOUR’s LANCE!\p" + .string "LANCE’s grandfather is thought to\n" + .string "be the elder of a famous clan of\l" + .string "dragon masters.$" + +gUnknown_81B1AB9:: @ 81B1AB9 + .string "POKéMON JOURNAL\p" + .string "Special Feature: PROF. OAK,\n" + .string "the POKéMON Researcher!\p" + .string "PROF. OAK reportedly lives with his\n" + .string "grandchildren DAISY and {RIVAL}.$" + +gUnknown_81B1B3D:: @ 81B1B3D + .string "This is a POKéMON JOURNAL from\n" + .string "years ago…\p" + .string "POKéMON JOURNAL\n" + .string "CONTEST Special!\p" + .string "The Spring POKéMON CONTEST’s\n" + .string "Grand Champion is DAISY OAK of\l" + .string "PALLET TOWN!$" + +gUnknown_81B1BD1:: @ 81B1BD1 + .string "POKéMON JOURNAL\p" + .string "Special Feature:\n" + .string "MR. FUJI of POKéMON HOUSE!\p" + .string "Editor: The shy MR. FUJI turned\n" + .string "down our interview requests.\p" + .string "He is a kindly man who is adored\n" + .string "and respected in LAVENDER TOWN.$" + +gUnknown_81B1C8B:: @ 81B1C8B + .string "Hmm…\n" + .string "Is that right…$" + +gUnknown_81B1C9F:: @ 81B1C9F + .string "Oh!\n" + .string "Look, look!$" + +gUnknown_81B1CAF:: @ 81B1CAF + .string "Read it, read it!$" + +gUnknown_81B1CC1:: @ 81B1CC1 + .string "TRAINER TIPS\p" + .string "Press START to open the MENU!$" + +gUnknown_81B1CEC:: @ 81B1CEC + .string "Signs are useful, aren’t they?$" + +gUnknown_81B1D0B:: @ 81B1D0B + .string "Look, look!\p" + .string "I copied what it said on one of\n" + .string "those TRAINER TIPS signs!$" + +gUnknown_81B1D51:: @ 81B1D51 + .string "TRAINER TIPS!\p" + .string "Press START to open the MENU!$" + +gUnknown_81B1D7D:: @ 81B1D7D + .string "It’s a POKéMON PRINTER!\p" + .string "It can put a print of your POKéMON\n" + .string "on the back of your TRAINER CARD.\p" + .string "It costs only ¥50.\n" + .string "Would you like to try it?$" + +gUnknown_81B1E07:: @ 81B1E07 + .string "You don’t have enough money.$" + +gUnknown_81B1E24:: @ 81B1E24 + .string "Please choose the print type.$" + +gUnknown_81B1E42:: @ 81B1E42 + .string "A big smile for the photo, please!\n" + .string "Three… Two… One…\p" + .string "Flash!$" + +gUnknown_81B1E7D:: @ 81B1E7D + .string "Your POKéMON print is ready!\n" + .string "Check your TRAINER CARD.$" + +gUnknown_81B1EB3:: @ 81B1EB3 + .string "Giggle…\n" + .string "I collected a ton of STICKERS.\l" + .string "I wish I could show them off…$" + +gUnknown_81B1EF8:: @ 81B1EF8 + .string "Oh, excellent!\n" + .string "You’ve come to the right place!\p" + .string "Look, look! See? See?\n" + .string "These are my STICKERS!\l" + .string "Look how many I got!\p" + .string "I bet you want some.\n" + .string "I bet you do!\p" + .string "I’ll give a STICKER if you can tell\n" + .string "me something awesome about\l" + .string "yourself.\p" + .string "What will you brag about?$" + +gUnknown_81B1FEF:: @ 81B1FEF + .string "Brag about something for me.\n" + .string "I’ll give you a STICKER.$" + +gUnknown_81B2025:: @ 81B2025 + .string "Oh, hi!\n" + .string "Here comes the braggart.\p" + .string "What are you going to brag about\n" + .string "today?$" + +gUnknown_81B206E:: @ 81B206E + .string "Oh, wow, you made it into the\n" + .string "HALL OF FAME.\p" + .string "That’s pretty good, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B20CF:: @ 81B20CF + .string "Oh, wow, you’ve entered the\n" + .string "HALL OF FAME often!\p" + .string "That’s impressive, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B2133:: @ 81B2133 + .string "Whoa! You’ve made it into the\n" + .string "HALL OF FAME that often?\l" + .string "That’s seriously incredible, yup!\p" + .string "You own the POKéMON LEAGUE!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B21C4:: @ 81B21C4 + .string "No way! You’ve gone into the\n" + .string "HALL OF FAME that many times?\p" + .string "You’re beyond incredible, yup!\n" + .string "That’s it, I have to give you this.$" + +gUnknown_81B2242:: @ 81B2242 + .string "The HALL OF FAME STICKER was\n" + .string "applied to the TRAINER CARD.$" + +gUnknown_81B227C:: @ 81B227C + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +gUnknown_81B22B0:: @ 81B22B0 + .string "Oh, no, no can do.\p" + .string "You’re practically a living legend.\n" + .string "I have no SITCKERS left to give.$" + +gUnknown_81B2308:: @ 81B2308 + .string "Oh, wow, there are POKéMON EGGS?\n" + .string "I didn’t know that!\p" + .string "That’s pretty good, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B2372:: @ 81B2372 + .string "You’ve hatched that many EGGS?\n" + .string "You really must like them!\p" + .string "That’s impressive, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B23E0:: @ 81B23E0 + .string "Whoa! You’ve hatched a whole\n" + .string "bunch of EGGS!\p" + .string "You’re an EGG-hatching machine!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B2448:: @ 81B2448 + .string "Wh… You hatched that many EGGS?\p" + .string "What’s behind your love of EGGS?\n" + .string "It’s beyond incredible, yup!\p" + .string "You’re too awesome, I tell you.\n" + .string "That’s it, I have to give you this.$" + +gUnknown_81B24EA:: @ 81B24EA + .string "The EGG STICKER was applied\n" + .string "to the TRAINER CARD.$" + +gUnknown_81B251B:: @ 81B251B + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +gUnknown_81B254F:: @ 81B254F + .string "Oh, no, no can do.\p" + .string "You’re practically a living legend.\n" + .string "I have no SITCKERS left to give.$" + +gUnknown_81B25A7:: @ 81B25A7 + .string "Oh, wow, you’ve had success\n" + .string "link battling?\p" + .string "You’re pretty strong, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B2609:: @ 81B2609 + .string "You’ve beaten your friends a lot\n" + .string "link battling, huh?\p" + .string "You’re impressively strong, yup!\n" + .string "I’ll give you one of these.$" + +gUnknown_81B267B:: @ 81B267B + .string "Whoa! You’ve beaten your friends\n" + .string "a frightful number of times.\p" + .string "Have you lost friends over this?\n" + .string "I’ll give you one of these.$" + +gUnknown_81B26F6:: @ 81B26F6 + .string "Wh… Wickedly whoa!\n" + .string "You’ve won mind-blowingly often!\p" + .string "It just knocks me out thinking\n" + .string "about how tough you are.\p" + .string "You’re the stuff of nightmares!\n" + .string "That’s it, I have to give you this.$" + +gUnknown_81B27A6:: @ 81B27A6 + .string "The VICTORY STICKER was applied\n" + .string "to the TRAINER CARD.$" + +gUnknown_81B27DB:: @ 81B27DB + .string "Hmm…\p" + .string "Come back with a better story next\n" + .string "time, okay?$" + +gUnknown_81B280F:: @ 81B280F + .string "Oh, no, no can do.\p" + .string "You’re practically a living legend.\n" + .string "I have no SITCKERS left to give.$" + +gUnknown_81B2867:: @ 81B2867 + +gUnknown_81B2E1C:: @ 81B2E1C + .incbin "baserom.gba", 0x001b2867, 0x5b5 + .string "How do I do this?$" + +gUnknown_81B2E2E:: @ 81B2E2E + .string "What does this term mean?$" + +gUnknown_81B2E48:: @ 81B2E48 + .string "About this game$" + +gUnknown_81B2E58:: @ 81B2E58 + .string "Type Matchup List$" + +gUnknown_81B2E6A:: @ 81B2E6A + .string "EXIT$" diff --git a/include/event_scripts.h b/include/event_scripts.h index 28106d9d4..2aec4a406 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -512,5 +512,101 @@ extern const u8 gUnknown_81B0AFF[]; extern const u8 gUnknown_81B0B0E[]; extern const u8 gUnknown_81B0BA6[]; extern const u8 gUnknown_81B0BB5[]; +extern const u8 gUnknown_81B0C45[]; +extern const u8 gUnknown_81B0C51[]; +extern const u8 gUnknown_81B0C5E[]; +extern const u8 gUnknown_81B0C6B[]; +extern const u8 gUnknown_81B0C79[]; +extern const u8 gUnknown_81B0C88[]; +extern const u8 gUnknown_81B0C95[]; +extern const u8 gUnknown_81B0CA2[]; +extern const u8 gUnknown_81B0CB1[]; +extern const u8 gUnknown_81B0CC1[]; +extern const u8 gUnknown_81B0CCF[]; +extern const u8 gUnknown_81B0CDF[]; +extern const u8 gUnknown_81B0CEB[]; +extern const u8 gUnknown_81B0CF7[]; +extern const u8 gUnknown_81B0D02[]; +extern const u8 gUnknown_81B0D0E[]; +extern const u8 gUnknown_81B0D16[]; +extern const u8 gUnknown_81B0D1F[]; +extern const u8 gUnknown_81B0D2D[]; +extern const u8 gUnknown_81B0D3B[]; +extern const u8 gUnknown_81B0D48[]; +extern const u8 gUnknown_81B0D55[]; +extern const u8 gUnknown_81B0D65[]; +extern const u8 gUnknown_81B0D73[]; +extern const u8 gUnknown_81B0D81[]; +extern const u8 gUnknown_81B0D90[]; +extern const u8 gUnknown_81B0D9E[]; +extern const u8 gUnknown_81B0DAC[]; +extern const u8 gUnknown_81B0DBA[]; +extern const u8 gUnknown_81B0DC8[]; +extern const u8 gUnknown_81B0DD7[]; +extern const u8 gUnknown_81B0DE4[]; +extern const u8 gUnknown_81B0DF0[]; +extern const u8 gUnknown_81B0DFC[]; +extern const u8 gUnknown_81B0E08[]; +extern const u8 gUnknown_81B0E14[]; +extern const u8 gUnknown_81B0E24[]; +extern const u8 gUnknown_81B0E31[]; +extern const u8 gUnknown_81B0E3D[]; +extern const u8 gUnknown_81B0E49[]; +extern const u8 gUnknown_81B0E56[]; +extern const u8 gUnknown_81B0E63[]; +extern const u8 gUnknown_81B0E6F[]; +extern const u8 gUnknown_81B0E7C[]; +extern const u8 gUnknown_81B0E89[]; +extern const u8 gUnknown_81B0E95[]; +extern const u8 gUnknown_81B0EA1[]; +extern const u8 gUnknown_81B0EAE[]; +extern const u8 gUnknown_81B0EBA[]; +extern const u8 gUnknown_81B0ECA[]; +extern const u8 gUnknown_81B0ED7[]; +extern const u8 gUnknown_81B0EE4[]; +extern const u8 gUnknown_81B0EF4[]; +extern const u8 gUnknown_81B0F01[]; +extern const u8 gUnknown_81B0F11[]; +extern const u8 gUnknown_81B0F20[]; +extern const u8 gUnknown_81B0F2F[]; +extern const u8 gUnknown_81B0F3B[]; +extern const u8 gUnknown_81B0F47[]; +extern const u8 gUnknown_81B0F53[]; +extern const u8 gUnknown_81B0F5F[]; +extern const u8 gUnknown_81B0F6E[]; +extern const u8 gUnknown_81B0F7D[]; +extern const u8 gUnknown_81B0F8A[]; +extern const u8 gUnknown_81B0F94[]; +extern const u8 gUnknown_81B0F9F[]; +extern const u8 gUnknown_81B0FAE[]; +extern const u8 gUnknown_81B0FBD[]; +extern const u8 gUnknown_81B0FCC[]; +extern const u8 gUnknown_81B0FDB[]; +extern const u8 gUnknown_81B0FE8[]; +extern const u8 gUnknown_81B0FF7[]; +extern const u8 gUnknown_81B1002[]; +extern const u8 gUnknown_81B1011[]; +extern const u8 gUnknown_81B1020[]; +extern const u8 gUnknown_81B102D[]; +extern const u8 gUnknown_81B103B[]; +extern const u8 gUnknown_81B104A[]; +extern const u8 gUnknown_81B1059[]; +extern const u8 gUnknown_81B1067[]; +extern const u8 gUnknown_81B1075[]; +extern const u8 gUnknown_81B1082[]; +extern const u8 gUnknown_81B108D[]; +extern const u8 gUnknown_81B1098[]; +extern const u8 gUnknown_81B10A3[]; +extern const u8 gUnknown_81B10B1[]; +extern const u8 gUnknown_81B10BF[]; +extern const u8 gUnknown_81B10CD[]; +extern const u8 gUnknown_81B10DB[]; +extern const u8 gUnknown_81B10E8[]; +extern const u8 gUnknown_81B10F8[]; +extern const u8 gUnknown_81B1107[]; +extern const u8 gUnknown_81B1111[]; +extern const u8 gUnknown_81B111B[]; +extern const u8 gUnknown_81B1128[]; +extern const u8 gUnknown_81B1135[]; #endif //GUARD_EVENT_SCRIPTS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 11bb637b7..985492d6b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -243,107 +243,63 @@ const u8 *const gUnknown_845F63C[] = { }; const u8 *const gUnknown_845F6BC[] = { - gUnknown_81AD106, - gUnknown_81AD145, - gUnknown_81AD1BB, - gUnknown_81AD258, - gUnknown_81AD2B9, - gUnknown_81AD377, - gUnknown_81AD40C, - gUnknown_81AD4AE, - gUnknown_81AD516, - gUnknown_81AD5A7, - gUnknown_81AD608, - gUnknown_81AD69F, - gUnknown_81AD705, - gUnknown_81AD771, - gUnknown_81AD840, - gUnknown_81AD908, - gUnknown_81AD99A, - gUnknown_81ADA27, - gUnknown_81ADA91, - gUnknown_81ADAF6, - gUnknown_81ADB5A, - gUnknown_81ADBD9, - gUnknown_81ADC72, - gUnknown_81ADCEB, - gUnknown_81ADD3C, - gUnknown_81ADDA7, - gUnknown_81ADE0B, - gUnknown_81ADE82, - gUnknown_81ADEEC, - gUnknown_81ADF6A, - gUnknown_81AE009, - gUnknown_81AE072, - gUnknown_81AE0F3, - gUnknown_81AE15B, - gUnknown_81AE1E5, - gUnknown_81AE247, - gUnknown_81AE2B6, - gUnknown_81AE31D, - gUnknown_81AE37D, - gUnknown_81AE407, - gUnknown_81AE48D, - gUnknown_81AE51B, - gUnknown_81AE5E8, - gUnknown_81AE656, - gUnknown_81AE6D7, - gUnknown_81AE762, - gUnknown_81AE7CB, - gUnknown_81AE841, - gUnknown_81AE89E, - gUnknown_81AE90A, - gUnknown_81AE990, - gUnknown_81AEA59, - gUnknown_81AEAEE, - gUnknown_81AEB69, - gUnknown_81AEBDF, - gUnknown_81AEC28, - gUnknown_81AEC82, - gUnknown_81AED27, - gUnknown_81AEDAA, - gUnknown_81AEE51, - gUnknown_81AEF25, - gUnknown_81AEF6C, - gUnknown_81AEFC6, - gUnknown_81AF04C, - gUnknown_81AF0F0, - gUnknown_81AF19A, - gUnknown_81AF200, - gUnknown_81AF248, - gUnknown_81AF2B7, - gUnknown_81AF34E, - gUnknown_81AF3BE, - gUnknown_81AF47C, - gUnknown_81AF4FD, - gUnknown_81AF567, - gUnknown_81AF641, - gUnknown_81AF6BA, - gUnknown_81AF758, - gUnknown_81AF7CB, - gUnknown_81AF83E, - gUnknown_81AF8CA, - gUnknown_81AF929, - gUnknown_81AF998, - gUnknown_81AFA20, - gUnknown_81AFAB9, - gUnknown_81AFB0C, - gUnknown_81AFB76, - gUnknown_81AFC38, - gUnknown_81AFCE9, - gUnknown_81AFD49, - gUnknown_81AFDC4, - gUnknown_81AFE68, - gUnknown_81AFF23, - gUnknown_81AFFA8, - gUnknown_81B0022, - gUnknown_81B00A6, - gUnknown_81B0106 + gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, + gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, + gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, + gUnknown_81ADA91, gUnknown_81ADAF6, gUnknown_81ADB5A, gUnknown_81ADBD9, gUnknown_81ADC72, gUnknown_81ADCEB, + gUnknown_81ADD3C, gUnknown_81ADDA7, gUnknown_81ADE0B, gUnknown_81ADE82, gUnknown_81ADEEC, gUnknown_81ADF6A, + gUnknown_81AE009, gUnknown_81AE072, gUnknown_81AE0F3, gUnknown_81AE15B, gUnknown_81AE1E5, gUnknown_81AE247, + gUnknown_81AE2B6, gUnknown_81AE31D, gUnknown_81AE37D, gUnknown_81AE407, gUnknown_81AE48D, gUnknown_81AE51B, + gUnknown_81AE5E8, gUnknown_81AE656, gUnknown_81AE6D7, gUnknown_81AE762, gUnknown_81AE7CB, gUnknown_81AE841, + gUnknown_81AE89E, gUnknown_81AE90A, gUnknown_81AE990, gUnknown_81AEA59, gUnknown_81AEAEE, gUnknown_81AEB69, + gUnknown_81AEBDF, gUnknown_81AEC28, gUnknown_81AEC82, gUnknown_81AED27, gUnknown_81AEDAA, gUnknown_81AEE51, + gUnknown_81AEF25, gUnknown_81AEF6C, gUnknown_81AEFC6, gUnknown_81AF04C, gUnknown_81AF0F0, gUnknown_81AF19A, + gUnknown_81AF200, gUnknown_81AF248, gUnknown_81AF2B7, gUnknown_81AF34E, gUnknown_81AF3BE, gUnknown_81AF47C, + gUnknown_81AF4FD, gUnknown_81AF567, gUnknown_81AF641, gUnknown_81AF6BA, gUnknown_81AF758, gUnknown_81AF7CB, + gUnknown_81AF83E, gUnknown_81AF8CA, gUnknown_81AF929, gUnknown_81AF998, gUnknown_81AFA20, gUnknown_81AFAB9, + gUnknown_81AFB0C, gUnknown_81AFB76, gUnknown_81AFC38, gUnknown_81AFCE9, gUnknown_81AFD49, gUnknown_81AFDC4, + gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 +}; + +const u8 gUnknown_845F83C[] = { + 0x67, 0x47, 0x30, 0x69, 0x4b, 0x37, + 0x37, 0x30, 0x3d, 0x69, 0x23, 0x69, + 0x66, 0x50, 0x1b, 0x13, 0x1e, 0x69, + 0x66, 0x51, 0x2b, 0x27, 0x1d, 0x69, + 0x66, 0x52, 0x3d, 0x3d, 0x3e, 0x69, + 0x66, 0x53, 0x16, 0x1d, 0x53, 0x69, + 0x66, 0x54, 0x1a, 0x16, 0x69, 0x1e, + 0x66, 0x19, 0x55, 0x55, 0x69, 0x29, + 0x66, 0x56, 0x37, 0x1c, 0x69, 0x69, + 0x4d, 0x4d, 0x20, 0x69, 0x11, 0x23, + 0x4f, 0x4f, 0x69, 0x36, 0x1d, 0x36, + 0x4b, 0x36, 0x36, 0x69, 0x4b, 0x23, + 0x4a, 0x4a, 0x18, 0x17, 0x69, 0x29, + 0x48, 0x12, 0x20, 0x59, 0x59, 0x59, + 0x11, 0x31, 0x69, 0x1e, 0x69, 0x69, + 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 +}; + +const u8 *const gUnknown_845F89C[] = { + gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, + gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, + gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, + gUnknown_81B0D2D, gUnknown_81B0D3B, gUnknown_81B0D48, gUnknown_81B0D55, gUnknown_81B0D65, gUnknown_81B0D73, + gUnknown_81B0D81, gUnknown_81B0D90, gUnknown_81B0D9E, gUnknown_81B0DAC, gUnknown_81B0DBA, gUnknown_81B0DC8, + gUnknown_81B0DD7, gUnknown_81B0DE4, gUnknown_81B0DF0, gUnknown_81B0DFC, gUnknown_81B0E08, gUnknown_81B0E14, + gUnknown_81B0E24, gUnknown_81B0E31, gUnknown_81B0E3D, gUnknown_81B0E49, gUnknown_81B0E56, gUnknown_81B0E63, + gUnknown_81B0E6F, gUnknown_81B0E7C, gUnknown_81B0E89, gUnknown_81B0E95, gUnknown_81B0EA1, gUnknown_81B0EAE, + gUnknown_81B0EBA, gUnknown_81B0ECA, gUnknown_81B0ED7, gUnknown_81B0EE4, gUnknown_81B0EF4, gUnknown_81B0F01, + gUnknown_81B0F11, gUnknown_81B0F20, gUnknown_81B0F2F, gUnknown_81B0F3B, gUnknown_81B0F47, gUnknown_81B0F53, + gUnknown_81B0F5F, gUnknown_81B0F6E, gUnknown_81B0F7D, gUnknown_81B0F8A, gUnknown_81B0F94, gUnknown_81B0F9F, + gUnknown_81B0FAE, gUnknown_81B0FBD, gUnknown_81B0FCC, gUnknown_81B0FDB, gUnknown_81B0FE8, gUnknown_81B0FF7, + gUnknown_81B1002, gUnknown_81B1011, gUnknown_81B1020, gUnknown_81B102D, gUnknown_81B103B, gUnknown_81B104A, + gUnknown_81B1059, gUnknown_81B1067, gUnknown_81B1075, gUnknown_81B1082, gUnknown_81B108D, gUnknown_81B1098, + gUnknown_81B10A3, gUnknown_81B10B1, gUnknown_81B10BF, gUnknown_81B10CD, gUnknown_81B10DB, gUnknown_81B10E8, + gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -extern const u8 *const gUnknown_845F89C[]; extern const u8 *const gUnknown_845FA1C[]; -extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; From e85ce728372d4c03deef73e41d883b04062a415a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:57:24 -0500 Subject: [PATCH 25/49] Another text pointer table decomped --- data/fame_checker.s | 3 -- include/event_scripts.h | 96 +++++++++++++++++++++++++++++++++++++++++ src/fame_checker.c | 20 ++++++++- 3 files changed, 115 insertions(+), 4 deletions(-) diff --git a/data/fame_checker.s b/data/fame_checker.s index e85c384bb..206be0d0b 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,9 +4,6 @@ .section .rodata .align 2 -gUnknown_845FA1C:: @ 845FA1C - .incbin "baserom.gba", 0x45FA1C, 0x180 - gUnknown_845FB9C:: @ 845FB9C .incbin "baserom.gba", 0x45FB9C, 0x40 diff --git a/include/event_scripts.h b/include/event_scripts.h index 2aec4a406..4405b831d 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -608,5 +608,101 @@ extern const u8 gUnknown_81B1111[]; extern const u8 gUnknown_81B111B[]; extern const u8 gUnknown_81B1128[]; extern const u8 gUnknown_81B1135[]; +extern const u8 gUnknown_81B1146[]; +extern const u8 gUnknown_81B114B[]; +extern const u8 gUnknown_81B1155[]; +extern const u8 gUnknown_81B115A[]; +extern const u8 gUnknown_81B116A[]; +extern const u8 gUnknown_81B1171[]; +extern const u8 gUnknown_81B1176[]; +extern const u8 gUnknown_81B117B[]; +extern const u8 gUnknown_81B1181[]; +extern const u8 gUnknown_81B1185[]; +extern const u8 gUnknown_81B1195[]; +extern const u8 gUnknown_81B119E[]; +extern const u8 gUnknown_81B11AE[]; +extern const u8 gUnknown_81B11B3[]; +extern const u8 gUnknown_81B11B9[]; +extern const u8 gUnknown_81B11C3[]; +extern const u8 gUnknown_81B11C7[]; +extern const u8 gUnknown_81B11CB[]; +extern const u8 gUnknown_81B11DB[]; +extern const u8 gUnknown_81B11E0[]; +extern const u8 gUnknown_81B11E6[]; +extern const u8 gUnknown_81B11EB[]; +extern const u8 gUnknown_81B11F5[]; +extern const u8 gUnknown_81B11FA[]; +extern const u8 gUnknown_81B120A[]; +extern const u8 gUnknown_81B120F[]; +extern const u8 gUnknown_81B1219[]; +extern const u8 gUnknown_81B1220[]; +extern const u8 gUnknown_81B1227[]; +extern const u8 gUnknown_81B122E[]; +extern const u8 gUnknown_81B123E[]; +extern const u8 gUnknown_81B1243[]; +extern const u8 gUnknown_81B1249[]; +extern const u8 gUnknown_81B124E[]; +extern const u8 gUnknown_81B1254[]; +extern const u8 gUnknown_81B125A[]; +extern const u8 gUnknown_81B126A[]; +extern const u8 gUnknown_81B126F[]; +extern const u8 gUnknown_81B1274[]; +extern const u8 gUnknown_81B1279[]; +extern const u8 gUnknown_81B1281[]; +extern const u8 gUnknown_81B1291[]; +extern const u8 gUnknown_81B1295[]; +extern const u8 gUnknown_81B129A[]; +extern const u8 gUnknown_81B12A4[]; +extern const u8 gUnknown_81B12AC[]; +extern const u8 gUnknown_81B12B4[]; +extern const u8 gUnknown_81B12C4[]; +extern const u8 gUnknown_81B12CA[]; +extern const u8 gUnknown_81B12CF[]; +extern const u8 gUnknown_81B12D6[]; +extern const u8 gUnknown_81B12DC[]; +extern const u8 gUnknown_81B12E2[]; +extern const u8 gUnknown_81B12E8[]; +extern const u8 gUnknown_81B12F8[]; +extern const u8 gUnknown_81B1300[]; +extern const u8 gUnknown_81B1308[]; +extern const u8 gUnknown_81B1310[]; +extern const u8 gUnknown_81B1320[]; +extern const u8 gUnknown_81B132C[]; +extern const u8 gUnknown_81B1335[]; +extern const u8 gUnknown_81B133B[]; +extern const u8 gUnknown_81B1341[]; +extern const u8 gUnknown_81B1351[]; +extern const u8 gUnknown_81B1359[]; +extern const u8 gUnknown_81B135F[]; +extern const u8 gUnknown_81B1367[]; +extern const u8 gUnknown_81B136E[]; +extern const u8 gUnknown_81B1376[]; +extern const u8 gUnknown_81B137E[]; +extern const u8 gUnknown_81B138E[]; +extern const u8 gUnknown_81B1395[]; +extern const u8 gUnknown_81B139E[]; +extern const u8 gUnknown_81B13A4[]; +extern const u8 gUnknown_81B13AA[]; +extern const u8 gUnknown_81B13B0[]; +extern const u8 gUnknown_81B13BC[]; +extern const u8 gUnknown_81B13CC[]; +extern const u8 gUnknown_81B13D6[]; +extern const u8 gUnknown_81B13D9[]; +extern const u8 gUnknown_81B13E4[]; +extern const u8 gUnknown_81B13EC[]; +extern const u8 gUnknown_81B13F2[]; +extern const u8 gUnknown_81B13F8[]; +extern const u8 gUnknown_81B13FE[]; +extern const u8 gUnknown_81B140A[]; +extern const u8 gUnknown_81B1416[]; +extern const u8 gUnknown_81B141F[]; +extern const u8 gUnknown_81B1423[]; +extern const u8 gUnknown_81B1429[]; +extern const u8 gUnknown_81B1439[]; +extern const u8 gUnknown_81B1442[]; +extern const u8 gUnknown_81B144C[]; +extern const u8 gUnknown_81B1456[]; +extern const u8 gUnknown_81B145F[]; +extern const u8 gUnknown_81B1463[]; #endif //GUARD_EVENT_SCRIPTS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 985492d6b..40c406c18 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -299,7 +299,25 @@ const u8 *const gUnknown_845F89C[] = { gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -extern const u8 *const gUnknown_845FA1C[]; +const u8 *const gUnknown_845FA1C[] = { + gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, + gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, + gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, + gUnknown_81B11DB, gUnknown_81B11E0, gUnknown_81B11E6, gUnknown_81B11EB, gUnknown_81B11F5, gUnknown_81B11FA, + gUnknown_81B120A, gUnknown_81B120F, gUnknown_81B1219, gUnknown_81B1220, gUnknown_81B1227, gUnknown_81B122E, + gUnknown_81B123E, gUnknown_81B1243, gUnknown_81B1249, gUnknown_81B124E, gUnknown_81B1254, gUnknown_81B125A, + gUnknown_81B126A, gUnknown_81B126F, gUnknown_81B1274, gUnknown_81B1279, gUnknown_81B1281, gUnknown_81B1291, + gUnknown_81B1295, gUnknown_81B129A, gUnknown_81B12A4, gUnknown_81B12AC, gUnknown_81B12B4, gUnknown_81B12C4, + gUnknown_81B12CA, gUnknown_81B12CF, gUnknown_81B12D6, gUnknown_81B12DC, gUnknown_81B12E2, gUnknown_81B12E8, + gUnknown_81B12F8, gUnknown_81B1300, gUnknown_81B1308, gUnknown_81B1310, gUnknown_81B1320, gUnknown_81B132C, + gUnknown_81B1335, gUnknown_81B133B, gUnknown_81B1341, gUnknown_81B1351, gUnknown_81B1359, gUnknown_81B135F, + gUnknown_81B1367, gUnknown_81B136E, gUnknown_81B1376, gUnknown_81B137E, gUnknown_81B138E, gUnknown_81B1395, + gUnknown_81B139E, gUnknown_81B13A4, gUnknown_81B13AA, gUnknown_81B13B0, gUnknown_81B13BC, gUnknown_81B13CC, + gUnknown_81B13D6, gUnknown_81B13D9, gUnknown_81B13E4, gUnknown_81B13EC, gUnknown_81B13F2, gUnknown_81B13F8, + gUnknown_81B13FE, gUnknown_81B140A, gUnknown_81B1416, gUnknown_81B141F, gUnknown_81B1423, gUnknown_81B1429, + gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 +}; + extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; From 031baf97af3da3a23719a9089dfaa088aa6b66a1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 14:39:26 -0500 Subject: [PATCH 26/49] Decomp sprite sheets and additional graphics --- data/fame_checker.s | 3 -- data/fame_checker/img_845ce00.png | Bin 0 -> 129 bytes data/fame_checker/img_845cf00.png | Bin 0 -> 240 bytes data/fame_checker/img_845d100.png | Bin 0 -> 177 bytes data/fame_checker/img_845d520.png | Bin 0 -> 726 bytes data/fame_checker/pal_45dd20.pal | 19 ------------- data/fame_checker/pal_45e540.pal | 19 ------------- data/fame_checker/pal_45ed60.pal | 19 ------------- data/fame_checker/pal_45f580.pal | 19 ------------- data/fame_checker/pal_845d0e0.pal | 19 +++++++++++++ .../{pal_45f5c0.pal => pal_845d500.pal} | 6 ++-- data/fame_checker/tilemap_845c600.bin | Bin 5920 -> 2048 bytes graphics_file_rules.mk | 4 +++ src/fame_checker.c | 26 ++++++++++++++---- 14 files changed, 47 insertions(+), 87 deletions(-) create mode 100644 data/fame_checker/img_845ce00.png create mode 100644 data/fame_checker/img_845cf00.png create mode 100644 data/fame_checker/img_845d100.png create mode 100644 data/fame_checker/img_845d520.png delete mode 100644 data/fame_checker/pal_45dd20.pal delete mode 100644 data/fame_checker/pal_45e540.pal delete mode 100644 data/fame_checker/pal_45ed60.pal delete mode 100644 data/fame_checker/pal_45f580.pal create mode 100644 data/fame_checker/pal_845d0e0.pal rename data/fame_checker/{pal_45f5c0.pal => pal_845d500.pal} (75%) diff --git a/data/fame_checker.s b/data/fame_checker.s index 206be0d0b..3aaaf84dc 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,9 +4,6 @@ .section .rodata .align 2 -gUnknown_845FB9C:: @ 845FB9C - .incbin "baserom.gba", 0x45FB9C, 0x40 - gUnknown_845FBDC:: @ 845FBDC .incbin "baserom.gba", 0x45FBDC, 0x18 diff --git a/data/fame_checker/img_845ce00.png b/data/fame_checker/img_845ce00.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a170e09d4ae7ad5de653ce2c067de0bbb47dab GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<50wfrI3wa3wDGyH<#}J9B$v^m6dA=mnBrq`5 zDKwjka4`KduHj&1u1j%Suwa443`GtW0k;edDP|96$;N=A3mX?L%;4E^vSNt>&yH#V by%r`0q3Ag)bmc9pKxTWo`njxgN@xNAX(%Dw literal 0 HcmV?d00001 diff --git a/data/fame_checker/img_845cf00.png b/data/fame_checker/img_845cf00.png new file mode 100644 index 0000000000000000000000000000000000000000..2d25bb1b30cad602837f6a41ab729f106e59de52 GIT binary patch literal 240 zcmV(ymvv4FO#qiLDj)y= literal 0 HcmV?d00001 diff --git a/data/fame_checker/img_845d520.png b/data/fame_checker/img_845d520.png new file mode 100644 index 0000000000000000000000000000000000000000..4d23c4c873183845efcd4fcea30c9eadbb1013e4 GIT binary patch literal 726 zcmV;{0xA88P)(q*AntL6mAatfamF=7Z+VYVLztT3Tw=&DH<^{{R30i#f-!00001 zbW%=J06^y0W&i*JR7pfZR7i={(=m+FP#6dBCSYJdFC}iq!NO|rz`+f~N~7nc%k>gn zZXqRcaUu62iRoe@3%Gb`9;_HcHxn1b;^5#=j)-S+1Mf%-!wvQwksdX7l4lE}?`vG| zTfbkv@BjK<1>xdVB%8Vw+P@(tQ-u()E{dX*4gq2SQXw0bK$^nft9YF(fz1b39Px+_ zrK$Xge&T}5L>%56X58(4hYuo>pFk>}Zj%Fkj>uTd45d_F>whnBL3AQs{UN0@+SdIY ze#)FECZ*i`RMP-(Hvp=xYdd@(%j?N(X0FR6?HQ+?_^DOX_tJT{{QjEG3z;AaDoW`E zlY6}q_n5Y#j@4P?jBR{i+z3&$cs03mT-!WhybXS-{o15CvFPyzaG`6Y=G2vUl=3(D z;IOsXcwkcc8UVs?TvfUzb;c0zuwN!21bS3n8@I99he52}>tVA&zU4u1evZx2;VN?CCIsNETn+-Uw*jzbx!XX7Sa(mut82EQAxN39T0k2mPcpxxzzIBhy~5&+!dgCmDF!+_AI zbUC4m-yl99zHmc8oY<6l@)8tyATc`GcRXasatU!iln?r&17uWmoezZm7edC!D1#s| zSbSy(DIgH$Rar&ID^(z{tDnir5^zr;M62v+$3xW$G$C4fXa%5*Ab@HCFmwng%C4m{ z#ZVyN*^K?M2L^KiuvVW6tZp-VAanbx@`v~)1o(qkc>kaJ3wJ$B5glSJEdT%j07*qo IM6N<$g0b&RcmMzZ literal 0 HcmV?d00001 diff --git a/data/fame_checker/pal_45dd20.pal b/data/fame_checker/pal_45dd20.pal deleted file mode 100644 index e6dcabf2f..000000000 --- a/data/fame_checker/pal_45dd20.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 222 205 -238 180 148 -197 139 106 -115 90 65 -222 164 82 -180 139 65 -148 106 57 -172 164 189 -255 230 131 -230 205 106 -238 131 90 -90 90 106 -213 205 213 -255 255 255 -0 0 0 diff --git a/data/fame_checker/pal_45e540.pal b/data/fame_checker/pal_45e540.pal deleted file mode 100644 index 485e27c48..000000000 --- a/data/fame_checker/pal_45e540.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 230 205 -230 189 156 -205 156 115 -106 74 57 -180 139 213 -139 98 172 -98 65 106 -213 189 131 -189 164 98 -139 123 74 -180 139 115 -156 106 82 -90 74 49 -255 255 255 -0 0 0 diff --git a/data/fame_checker/pal_45ed60.pal b/data/fame_checker/pal_45ed60.pal deleted file mode 100644 index adf46bf14..000000000 --- a/data/fame_checker/pal_45ed60.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 222 205 -238 180 148 -197 139 106 -172 123 98 -213 172 115 -156 123 74 -90 82 65 -205 115 98 -164 213 156 -115 172 106 -90 123 82 -222 230 255 -164 172 197 -255 255 255 -0 0 0 diff --git a/data/fame_checker/pal_45f580.pal b/data/fame_checker/pal_45f580.pal deleted file mode 100644 index eb6f2f18b..000000000 --- a/data/fame_checker/pal_45f580.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -115 197 164 -255 222 205 -238 180 148 -197 139 106 -106 74 74 -139 156 164 -205 164 205 -164 123 164 -82 82 57 -213 213 222 -123 123 82 -115 115 115 -197 189 131 -156 156 90 -255 255 255 -0 0 0 diff --git a/data/fame_checker/pal_845d0e0.pal b/data/fame_checker/pal_845d0e0.pal new file mode 100644 index 000000000..dac232f78 --- /dev/null +++ b/data/fame_checker/pal_845d0e0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 106 106 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 139 139 +189 189 189 +205 205 205 +238 238 238 +230 230 230 +222 222 222 +180 180 180 +255 255 255 +106 106 106 diff --git a/data/fame_checker/pal_45f5c0.pal b/data/fame_checker/pal_845d500.pal similarity index 75% rename from data/fame_checker/pal_45f5c0.pal rename to data/fame_checker/pal_845d500.pal index 4b0812f09..212d9eb69 100644 --- a/data/fame_checker/pal_45f5c0.pal +++ b/data/fame_checker/pal_845d500.pal @@ -1,6 +1,7 @@ JASC-PAL 0100 16 +246 222 82 0 0 0 0 0 0 0 0 0 @@ -14,6 +15,5 @@ JASC-PAL 0 0 0 0 0 0 0 0 0 -0 0 0 -0 0 0 -0 0 0 +246 148 41 +255 82 0 diff --git a/data/fame_checker/tilemap_845c600.bin b/data/fame_checker/tilemap_845c600.bin index 4272a1b41cce4b7378b75ec3fdeaf268600d4069..8ff09b289b6498b9ba4c36666f9c12b17a4d01b8 100644 GIT binary patch delta 6 NcmZ3W*C4Qf0{{pl0tWy9 literal 5920 zcmeH~Urbw77{EVclf7X2UAOpReBi>HK|9#gsgtf2*w|?2Tvdnz|3L9y0=n9}Zeu0! zr5c$p8ol6rQjwdi#AGjokoCdDm$IQ*gk?R&MeIL4Kee7 z0uSJm=t6f%ah3Hyj7P8;pDyX`#)EhQA2-A-|8abd?8nOZw_q>6i|^rSH1mH2U&Yrp z@b}^S=tsrW|9L!#p0fT=;Ta6zSv+Uz|2lSJS6Tm~cpm%k0tQX}U%(gfrLz7lbUtY@ ztKW;=_y)dQ=KM~Pcj@a7(28x?jvYDKk3#bE_OjO>;7xoB-^O=x(ttwpb1_Qm%=W*d z+c|-q6WBR{yY>VUx(=h7meA4^*P-iH(6m1Z%_>M}^E{z(0r?0Fzj^8ncv!P?PHQuW zvCxIdS5UOx@E7?(?1P%fkzJe3De{YbY_TcO%NTvwG*KKwAq8W*2)2vpE4G`=dr3Df z+<*cDOl6p+USu$BV~kyzXKaF-S%*j&zR4KBC3XVPmkthM!tTpJ%JlAjW7Qagc&FVAT$WG1rEoM%;nFTD= zmC0|Kcf)fnx-Nye3dg3wbIJrQH86chY<3U1u$h5)^av70bn#t|V(-n(%SGPC`7`Hl zUh8Jg->m-Z`HScm9yZS*wCxXc+*8{6Us`NcV7p&}-I8RMrS@Kc%32FZvct@Lcj+Wa zvI!oNe)=^oElx41#wJU$ZB1ITyQD*sTuXJzRz~m|+4^(Ml3SLmJ8Iy2g7X$?4o(>1lH8^C{J` zFS(XfX3w~iv0+!GT-Q@6C%simJzmGMyU{VLJL_jg^$#u%-Ua( z^J#$l1_NAG18htU#KzUY%vCioNj>BAq~L$hJH;CP{xfTugUc}Rr~~Lm+5QIrpN#{2 zt{U{VQSF1Ra9kUNVS0xphSXN3sw2~?sx}asM;&QaN3>>omo>0f$rg9Dyi`{wFV)vQ zYpqXOjrR&s`2SRVKcyBFwf<13e}?n9IA4tOxfs2;#prF)sPh|5vr|Eb30DE!O%qM? z Date: Mon, 26 Nov 2018 15:22:21 -0500 Subject: [PATCH 27/49] First pass disassembly of fame_checker sprite templates --- data/fame_checker.s | 64 +++++++++++++++++++++++++++++++++++---------- src/fame_checker.c | 52 +++++++++++++++++++++++++++++++++--- 2 files changed, 99 insertions(+), 17 deletions(-) diff --git a/data/fame_checker.s b/data/fame_checker.s index 3aaaf84dc..38639c70b 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,35 +4,71 @@ .section .rodata .align 2 -gUnknown_845FBDC:: @ 845FBDC - .incbin "baserom.gba", 0x45FBDC, 0x18 +gUnknown_845FC2C:: @ 845FC2C + .4byte 0x000f0000, 0x000f0010, 0x0000fffe -gUnknown_845FBF4:: @ 845FBF4 - .incbin "baserom.gba", 0x45FBF4, 0x10 +gUnknown_845FC38:: + .4byte gUnknown_845FC2C -gUnknown_845FC04:: @ 845FC04 - .incbin "baserom.gba", 0x45FC04, 0x40 +gOamData_845FC3C:: + .4byte 0x80000000, 0x00000800 gUnknown_845FC44:: @ 845FC44 - .incbin "baserom.gba", 0x45FC44, 0x34 + spr_template 1000, 1000, gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + +gUnknown_845FC5C:: + .4byte 0x00000000, 0x00000000 + +gOamData_845FC64:: + .4byte 0x80008000, 0x00000800 + +gUnknown_845FC6C:: + .4byte 0x000a0000, 0x0000ffff + +gUnknown_845FC74:: + .4byte gUnknown_845FC6C gUnknown_845FC78:: @ 845FC78 - .incbin "baserom.gba", 0x45FC78, 0x40 + spr_template 1001, 0xffff, gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + +gUnknown_845FC90:: @ 845FC90 + .4byte 0x000a0000, 0x0000ffff + +gUnknown_845FC98:: + .4byte gUnknown_845FC90 + +gOamData_845FC9C:: + .4byte 0x80000100, 0x00000000 + +gUnknown_845FCA4:: + .4byte 0x00000000, 0x00001404, 0x00007ffe, 0x00000000 + +gUnknown_845FCB4:: @ 845FCB4 + .4byte gUnknown_845FCA4 gUnknown_845FCB8:: @ 845FCB8 - .incbin "baserom.gba", 0x45FCB8, 0x2C + spr_template 1002, 1002, gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 + +gUnknown_845FCD0:: @ 845FCD0 + .4byte 0x000f0000, 0x0000ffff + +gUnknown_845FCD8:: + .4byte gUnknown_845FCD0 + +gOamData_845FCDC:: + .4byte 0xc0000000, 0x00000000 gUnknown_845FCE4:: @ 845FCE4 - .incbin "baserom.gba", 0x45FCE4, 0x18 + spr_template 1006, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_845FCFC:: @ 845FCFC - .incbin "baserom.gba", 0x45FCFC, 0x18 + spr_template 1007, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_845FD14:: @ 845FD14 - .incbin "baserom.gba", 0x45FD14, 0x18 + spr_template 1008, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_845FD2C:: @ 845FD2C - .incbin "baserom.gba", 0x45FD2C, 0x18 + spr_template 1009, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_845FD44:: @ 845FD44 - .incbin "baserom.gba", 0x45FD44, 0x10 + .byte 0x02, 0x28, 0x1a, 0x03, 0x28, 0x64, 0x00, 0x00, 0x00, 0x00, 0xec, 0x03, 0xff, 0xff, 0x01, 0x00 diff --git a/src/fame_checker.c b/src/fame_checker.c index 82cb25812..ac01f172f 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -335,9 +335,55 @@ const struct SpriteSheet gUnknown_845FB9C[] = { {} }; -extern const struct SpritePalette gUnknown_845FBDC[]; -extern const struct BgTemplate gUnknown_845FBF4[4]; -extern const struct WindowTemplate gUnknown_845FC04[]; +const struct SpritePalette gUnknown_845FBDC[] = { + {gUnknown_845D500, SPRITETAG_1000}, + {gUnknown_845D0E0, SPRITETAG_1002}, + {} +}; + +const struct BgTemplate gUnknown_845FBF4[4] = { + { + .bg = 3, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1e, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 3, + .baseTile = 0x000}, + { + .bg = 2, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1b, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 2, + .baseTile = 0x000}, + { + .bg = 1, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1c, + .screenSize = 1, + .paletteMode = FALSE, + .priority = 0, + .baseTile = 0x000}, + { + .bg = 0, + .charBaseIndex = 0x00, + .mapBaseIndex = 0x1f, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 2, + .baseTile = 0x000}, +}; + +const struct WindowTemplate gUnknown_845FC04[] = { + {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, + {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, + {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, + {0x00, 0x0f, 0x0a, 0x0b, 0x04, 0x0f, 0x00fc}, + DUMMY_WIN_TEMPLATE +}; + extern const struct SpriteTemplate gUnknown_845FC44; extern const struct SpriteTemplate gUnknown_845FC78; extern const struct SpriteTemplate gUnknown_845FCB8; From e88def5ab1f84d5aad5485d47975ea0d01e878c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 15:39:30 -0500 Subject: [PATCH 28/49] Decompile remaining sprite templates --- data/fame_checker.s | 66 ---------------------------- src/fame_checker.c | 104 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 97 insertions(+), 73 deletions(-) diff --git a/data/fame_checker.s b/data/fame_checker.s index 38639c70b..7e2ff471e 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -4,71 +4,5 @@ .section .rodata .align 2 -gUnknown_845FC2C:: @ 845FC2C - .4byte 0x000f0000, 0x000f0010, 0x0000fffe - -gUnknown_845FC38:: - .4byte gUnknown_845FC2C - -gOamData_845FC3C:: - .4byte 0x80000000, 0x00000800 - -gUnknown_845FC44:: @ 845FC44 - spr_template 1000, 1000, gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_845FC5C:: - .4byte 0x00000000, 0x00000000 - -gOamData_845FC64:: - .4byte 0x80008000, 0x00000800 - -gUnknown_845FC6C:: - .4byte 0x000a0000, 0x0000ffff - -gUnknown_845FC74:: - .4byte gUnknown_845FC6C - -gUnknown_845FC78:: @ 845FC78 - spr_template 1001, 0xffff, gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_845FC90:: @ 845FC90 - .4byte 0x000a0000, 0x0000ffff - -gUnknown_845FC98:: - .4byte gUnknown_845FC90 - -gOamData_845FC9C:: - .4byte 0x80000100, 0x00000000 - -gUnknown_845FCA4:: - .4byte 0x00000000, 0x00001404, 0x00007ffe, 0x00000000 - -gUnknown_845FCB4:: @ 845FCB4 - .4byte gUnknown_845FCA4 - -gUnknown_845FCB8:: @ 845FCB8 - spr_template 1002, 1002, gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 - -gUnknown_845FCD0:: @ 845FCD0 - .4byte 0x000f0000, 0x0000ffff - -gUnknown_845FCD8:: - .4byte gUnknown_845FCD0 - -gOamData_845FCDC:: - .4byte 0xc0000000, 0x00000000 - -gUnknown_845FCE4:: @ 845FCE4 - spr_template 1006, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_845FCFC:: @ 845FCFC - spr_template 1007, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_845FD14:: @ 845FD14 - spr_template 1008, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_845FD2C:: @ 845FD2C - spr_template 1009, 0xffff, gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - gUnknown_845FD44:: @ 845FD44 .byte 0x02, 0x28, 0x1a, 0x03, 0x28, 0x64, 0x00, 0x00, 0x00, 0x00, 0xec, 0x03, 0xff, 0xff, 0x01, 0x00 diff --git a/src/fame_checker.c b/src/fame_checker.c index ac01f172f..0efd60057 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -104,6 +104,7 @@ void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB10(void); void sub_812DB28(void); +void sub_812D840(struct Sprite * sprite); void sub_812DB64(void); void sub_812DBC0(s32, bool8, struct ListMenu *); void sub_812DD50(u8 taskId); @@ -384,13 +385,102 @@ const struct WindowTemplate gUnknown_845FC04[] = { DUMMY_WIN_TEMPLATE }; -extern const struct SpriteTemplate gUnknown_845FC44; -extern const struct SpriteTemplate gUnknown_845FC78; -extern const struct SpriteTemplate gUnknown_845FCB8; -extern const struct SpriteTemplate gUnknown_845FCE4; -extern const struct SpriteTemplate gUnknown_845FCFC; -extern const struct SpriteTemplate gUnknown_845FD14; -extern const struct SpriteTemplate gUnknown_845FD2C; +const union AnimCmd gUnknown_845FC2C[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_FRAME(16, 15), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gUnknown_845FC38[] = { + gUnknown_845FC2C +}; + +const struct OamData gOamData_845FC3C = { + .size = 2, + .priority = 2 +}; + +const struct SpriteTemplate gUnknown_845FC44 = { + SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const u8 filler_845FC5C[8] = {}; + +const struct OamData gOamData_845FC64 = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2, + .priority = 2 +}; + +const union AnimCmd gUnknown_845FC6C[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FC74[] = { + gUnknown_845FC6C +}; + +const struct SpriteTemplate gUnknown_845FC78 = { + SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const union AnimCmd gUnknown_845FC90[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FC98[] = { + gUnknown_845FC90 +}; + +const struct OamData gOamData_845FC9C = { + .affineMode = ST_OAM_AFFINE_NORMAL, + .size = 2 +}; + +const union AffineAnimCmd gUnknown_845FCA4[] = { + AFFINEANIMCMD_FRAME(0, 0, 4, 20), + AFFINEANIMCMD_JUMP(0) +}; + +const union AffineAnimCmd *const gUnknown_845FCB4[] = { + gUnknown_845FCA4 +}; + +const struct SpriteTemplate gUnknown_845FCB8 = { + SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 +}; + +const union AnimCmd gUnknown_845FCD0[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FCD8[] = { + gUnknown_845FCD0 +}; + +const struct OamData gOamData_845FCDC = { + .size = 3 +}; + +const struct SpriteTemplate gUnknown_845FCE4 = { + SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FCFC = { + SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FD14 = { + SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FD2C = { + SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; void sub_812C380(void) From a2b7b3ebf2f5460c4f5ab076e5dcb06935f61d25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 15:47:50 -0500 Subject: [PATCH 29/49] Finish data decomp --- data/fame_checker.s | 8 -------- include/menu_indicators.h | 12 ++++++++++-- ld_script.txt | 1 - src/fame_checker.c | 18 +++++++++++++++--- 4 files changed, 25 insertions(+), 14 deletions(-) delete mode 100644 data/fame_checker.s diff --git a/data/fame_checker.s b/data/fame_checker.s deleted file mode 100644 index 7e2ff471e..000000000 --- a/data/fame_checker.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_845FD44:: @ 845FD44 - .byte 0x02, 0x28, 0x1a, 0x03, 0x28, 0x64, 0x00, 0x00, 0x00, 0x00, 0xec, 0x03, 0xff, 0xff, 0x01, 0x00 diff --git a/include/menu_indicators.h b/include/menu_indicators.h index f88fd5549..f195ceb6d 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -9,10 +9,18 @@ struct ScrollIndicatorArrowPairTemplate { - u8 filler_00[6]; + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; u16 unk_06; u16 unk_08; - u8 filler_0a[6]; + u16 unk_0a; + u16 unk_0c; + u16 unk_0e_0:4; + u16 unk_0e_4:12; }; // Exported ROM declarations diff --git a/ld_script.txt b/ld_script.txt index bbebf21b1..2a42825c9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -377,7 +377,6 @@ SECTIONS { src/quest_log.o(.rodata); data/data_83FECCC.o(.rodata.8456C74); src/fame_checker.o(.rodata); - data/fame_checker.o(.rodata); data/data_845FD54.o(.rodata); src/menews_jisan.o(.rodata); src/menews_jisan.o(.rodata.str1.4); diff --git a/src/fame_checker.c b/src/fame_checker.c index 0efd60057..dfece6720 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -481,8 +481,6 @@ const struct SpriteTemplate gUnknown_845FD2C = { SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; - void sub_812C380(void) { LoadOam(); @@ -1458,7 +1456,21 @@ void sub_812DFE4(u8 windowId) void sub_812E000(void) { - struct ScrollIndicatorArrowPairTemplate sp0 = gUnknown_845FD44; + struct ScrollIndicatorArrowPairTemplate sp0 = { + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + 1004, + 0xFFFF, + 1, + 0 + }; + if (gUnknown_203B0FC->unk_07_2 > 5) { sp0.unk_06 = 0; From 9750849c69899b0faaa156f397ff63dd086ab40c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 16:47:19 -0500 Subject: [PATCH 30/49] Genericize PRESSED macro --- include/global.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/global.h b/include/global.h index 9fb7703cd..2b9b00d5c 100644 --- a/include/global.h +++ b/include/global.h @@ -67,7 +67,9 @@ // We suspect it was used globally. // GameFreak never ceases to amaze. // TODO: Propagate use of this macro -#define PRESSED(button) ({gMain.newKeys & (button);}) +#define TEST_BUTTON(field, button) ({(field) & (button);}) +#define PRESSED(button) TEST_BUTTON(gMain.newKeys, button) +#define PUSHED(button) TEST_BUTTON(gMain.heldKeys, button) extern u8 gStringVar1[]; extern u8 gStringVar2[]; From 69106536eb68653a47f31c7bd9f8755087ce7b43 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:12:17 -0500 Subject: [PATCH 31/49] Start documenting stuff; make objects static where possible --- asm/item_use.s | 4 +- asm/new_game.s | 2 +- include/fame_checker.h | 9 + src/fame_checker.c | 426 ++++++++++++++++++++--------------------- 4 files changed, 225 insertions(+), 216 deletions(-) create mode 100644 include/fame_checker.h diff --git a/asm/item_use.s b/asm/item_use.s index a7f7b1b7c..49d517eb5 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -1731,7 +1731,7 @@ _080A1D54: .4byte sub_80A1D68 sub_80A1D58: @ 80A1D58 push {lr} ldr r0, _080A1D64 @ =sub_8107EB8 - bl sub_812C3AC + bl UseFameChecker pop {r0} bx r0 .align 2, 0 @@ -1752,7 +1752,7 @@ sub_80A1D68: @ 80A1D68 bl sub_80563F0 bl sub_80A1184 ldr r0, _080A1D98 @ =c2_exit_to_overworld_2_switch - bl sub_812C3AC + bl UseFameChecker adds r0, r4, 0 bl DestroyTask _080A1D8E: diff --git a/asm/new_game.s b/asm/new_game.s index 80affe1cb..cec2b2c9a 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -241,7 +241,7 @@ sub_8054A60: @ 8054A60 bl PlayTimeCounter_Reset bl sub_80549AC bl sub_806E0D0 - bl sub_812D304 + bl ResetFameChecker ldr r0, [r6] movs r1, 0xA4 lsls r1, 2 diff --git a/include/fame_checker.h b/include/fame_checker.h new file mode 100644 index 000000000..7e95a7224 --- /dev/null +++ b/include/fame_checker.h @@ -0,0 +1,9 @@ +#ifndef GUARD_FAME_CHECKER_H +#define GUARD_FAME_CHECKER_H + +#include "main.h" + +void ResetFameChecker(void); +void UseFameChecker(MainCallback savedCallback); + +#endif //GUARD_FAME_CHECKER_H diff --git a/src/fame_checker.c b/src/fame_checker.c index dfece6720..b2fe20c9b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -36,18 +36,18 @@ struct FameCheckerData { - MainCallback unk_00; + MainCallback savedCallback; u16 unk_04; u8 unk_06; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; - u8 unk_08; + u8 scrollIndicatorArrowObjectTaskId; u8 unk_09; u8 unk_0A; u8 unk_0B; - u8 unk_0C[17]; - u8 unk_1D[6]; + u8 unlockedPersons[17]; + u8 spriteIds[6]; u8 unk_23_0:1; u8 unk_23_1:1; u8 unk_23_2:1; @@ -63,62 +63,62 @@ EWRAM_DATA s32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; u8 gUnknown_3005EC8; -void sub_812C3F8(void); -void sub_812C648(void); -void sub_812C664(u8 taskId); -void sub_812C694(u8 taskId); -bool8 sub_812C8F8(u8 taskId); -void sub_812C990(void); -void sub_812C9BC(u8 taskId); -void sub_812CA1C(u8 taskId); -void sub_812CAD8(u8 taskId); -void sub_812CC68(u8 taskId, s8 dx, s8 dy); -void sub_812CD3C(void); -void sub_812CE04(u8 taskId); -void sub_812CE9C(void); -void sub_812CEC0(void); -void sub_812CEE0(u8 windowId); -bool8 sub_812CEFC(u8 taskId, u8 objMode); -void sub_812CF3C(u8 taskId); -void sub_812CF7C(u8 taskId); -void sub_812D094(u8 windowId); -void sub_812D0F4(u8 a0); -bool8 sub_812D1A8(u8 a0); -void sub_812D420(void); -void sub_812D558(void); -void sub_812D584(void); -void sub_812D594(void); -void sub_812D650(void); -bool8 sub_812D6B4(void); -void sub_812D70C(void); -u8 sub_812D724(s16 a0); -void sub_812D764(struct Sprite *sprite); -void sub_812D770(void); -u8 sub_812D780(u8, u8); -void sub_812D7C8(void); -u8 sub_812D7E4(void); -void sub_812D800(struct Sprite *sprite); -void sub_812D814(void); -u8 sub_812D888(u8 a0); -void sub_812D9A8(u8 a0, u16 a1); -void sub_812DA14(u8 a0); -void sub_812DB10(void); -void sub_812DB28(void); -void sub_812D840(struct Sprite * sprite); -void sub_812DB64(void); -void sub_812DBC0(s32, bool8, struct ListMenu *); -void sub_812DD50(u8 taskId); -void sub_812DDAC(void); -void sub_812DDF0(s32 itemIndex, bool8 onInit); -u8 sub_812DEF0(void); -void sub_812DFE4(u8); -void sub_812E000(void); -void sub_812E048(void); -u16 sub_812E064(void); -void sub_812E094(u8); -void sub_812E110(u8 taskId); -void sub_812E178(u8 a0, s16 a1); -void sub_812E4A4(u8 a0); +static void sub_812C3F8(void); +static void sub_812C648(void); +static void sub_812C664(u8 taskId); +static void sub_812C694(u8 taskId); +static bool8 sub_812C8F8(u8 taskId); +static void sub_812C990(void); +static void sub_812C9BC(u8 taskId); +static void sub_812CA1C(u8 taskId); +static void sub_812CAD8(u8 taskId); +static void sub_812CC68(u8 taskId, s8 dx, s8 dy); +static void sub_812CD3C(void); +static void sub_812CE04(u8 taskId); +static void sub_812CE9C(void); +static void sub_812CEC0(void); +static void sub_812CEE0(u8 windowId); +static bool8 sub_812CEFC(u8 taskId, u8 objMode); +static void sub_812CF3C(u8 taskId); +static void sub_812CF7C(u8 taskId); +static void sub_812D094(u8 windowId); +static void sub_812D0F4(u8 a0); +static bool8 sub_812D1A8(u8 a0); +static void sub_812D420(void); +static void sub_812D558(void); +static void sub_812D584(void); +static void sub_812D594(void); +static void sub_812D650(void); +static bool8 sub_812D6B4(void); +static void sub_812D70C(void); +static u8 sub_812D724(s16 a0); +static void sub_812D764(struct Sprite *sprite); +static void sub_812D770(void); +static u8 sub_812D780(u8, u8); +static void sub_812D7C8(void); +static u8 sub_812D7E4(void); +static void sub_812D800(struct Sprite *sprite); +static void sub_812D814(void); +static u8 sub_812D888(u8 a0); +static void sub_812D9A8(u8 a0, u16 a1); +static void sub_812DA14(u8 a0); +static void sub_812DB10(void); +static void sub_812DB28(void); +static void sub_812D840(struct Sprite * sprite); +static void sub_812DB64(void); +static void sub_812DBC0(s32, bool8, struct ListMenu *); +static void sub_812DD50(u8 taskId); +static void sub_812DDAC(void); +static void sub_812DDF0(s32 itemIndex, bool8 onInit); +static u8 sub_812DEF0(void); +static void sub_812DFE4(u8); +static void sub_812E000(void); +static void sub_812E048(void); +static u16 sub_812E064(void); +static void sub_812E094(u8); +static void sub_812E110(u8 taskId); +static void sub_812E178(u8 a0, s16 a1); +static void sub_812E4A4(u8 a0); extern const u8 gUnknown_84161C1[]; extern const u8 gUnknown_841623B[]; @@ -132,28 +132,28 @@ extern const u8 gUnknown_841E5ED[]; extern const u8 gUnknown_841E5F3[]; extern const u8 gUnknown_841E5F8[]; -const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); -const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); -const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); -const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); -const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); -const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); -const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); -const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); -const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); -const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); -const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); -const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); -const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); -const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); -const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); -const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); +static const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +static const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); +static const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); +static const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); +static const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); +static const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); +static const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); +static const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +static const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); +static const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +static const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); +static const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); +static const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); +static const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); +static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +static const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); -const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; -const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; -const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; +static const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; +static const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; +static const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; -const u16 gUnknown_845F5EA[] = { +static const u16 gUnknown_845F5EA[] = { 0xfe00, 0xfe01, 0x019e, @@ -172,14 +172,14 @@ const u16 gUnknown_845F5EA[] = { 0x015c }; -const u8 *const gUnknown_845F60C[] = { +static const u8 *const gUnknown_845F60C[] = { gUnknown_841E5E9, gUnknown_841E5ED, gUnknown_841E5F3, gUnknown_841E5F8 }; -const u8 gUnknown_845F61C[] = { +static const u8 gUnknown_845F61C[] = { 0x56, 0x54, 0x74, @@ -214,7 +214,7 @@ const u8 gUnknown_845F61C[] = { 0x00 }; -const u8 *const gUnknown_845F63C[] = { +static const u8 *const gUnknown_845F63C[] = { gUnknown_81B0188, gUnknown_81B0251, gUnknown_81B030F, @@ -249,7 +249,7 @@ const u8 *const gUnknown_845F63C[] = { gUnknown_81B0BB5 }; -const u8 *const gUnknown_845F6BC[] = { +static const u8 *const gUnknown_845F6BC[] = { gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, @@ -268,7 +268,7 @@ const u8 *const gUnknown_845F6BC[] = { gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 }; -const u8 gUnknown_845F83C[] = { +static const u8 gUnknown_845F83C[] = { 0x67, 0x47, 0x30, 0x69, 0x4b, 0x37, 0x37, 0x30, 0x3d, 0x69, 0x23, 0x69, 0x66, 0x50, 0x1b, 0x13, 0x1e, 0x69, @@ -287,7 +287,7 @@ const u8 gUnknown_845F83C[] = { 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 }; -const u8 *const gUnknown_845F89C[] = { +static const u8 *const gUnknown_845F89C[] = { gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, @@ -306,7 +306,7 @@ const u8 *const gUnknown_845F89C[] = { gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -const u8 *const gUnknown_845FA1C[] = { +static const u8 *const gUnknown_845FA1C[] = { gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, @@ -325,7 +325,7 @@ const u8 *const gUnknown_845FA1C[] = { gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 }; -const struct SpriteSheet gUnknown_845FB9C[] = { +static const struct SpriteSheet gUnknown_845FB9C[] = { {gUnknown_845D100, 0x400, SPRITETAG_1000}, {gUnknown_845CE00, 0x100, SPRITETAG_1001}, {gUnknown_845CF00, 0x1e0, SPRITETAG_1002}, @@ -336,13 +336,13 @@ const struct SpriteSheet gUnknown_845FB9C[] = { {} }; -const struct SpritePalette gUnknown_845FBDC[] = { +static const struct SpritePalette gUnknown_845FBDC[] = { {gUnknown_845D500, SPRITETAG_1000}, {gUnknown_845D0E0, SPRITETAG_1002}, {} }; -const struct BgTemplate gUnknown_845FBF4[4] = { +static const struct BgTemplate gUnknown_845FBF4[4] = { { .bg = 3, .charBaseIndex = 0x03, @@ -377,7 +377,7 @@ const struct BgTemplate gUnknown_845FBF4[4] = { .baseTile = 0x000}, }; -const struct WindowTemplate gUnknown_845FC04[] = { +static const struct WindowTemplate gUnknown_845FC04[] = { {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, @@ -385,110 +385,110 @@ const struct WindowTemplate gUnknown_845FC04[] = { DUMMY_WIN_TEMPLATE }; -const union AnimCmd gUnknown_845FC2C[] = { +static const union AnimCmd gUnknown_845FC2C[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_FRAME(16, 15), ANIMCMD_JUMP(0) }; -const union AnimCmd *const gUnknown_845FC38[] = { +static const union AnimCmd *const gUnknown_845FC38[] = { gUnknown_845FC2C }; -const struct OamData gOamData_845FC3C = { +static const struct OamData gOamData_845FC3C = { .size = 2, .priority = 2 }; -const struct SpriteTemplate gUnknown_845FC44 = { +static const struct SpriteTemplate gUnknown_845FC44 = { SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const u8 filler_845FC5C[8] = {}; +static const u8 filler_845FC5C[8] = {}; -const struct OamData gOamData_845FC64 = { +static const struct OamData gOamData_845FC64 = { .shape = ST_OAM_V_RECTANGLE, .size = 2, .priority = 2 }; -const union AnimCmd gUnknown_845FC6C[] = { +static const union AnimCmd gUnknown_845FC6C[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FC74[] = { +static const union AnimCmd *const gUnknown_845FC74[] = { gUnknown_845FC6C }; -const struct SpriteTemplate gUnknown_845FC78 = { +static const struct SpriteTemplate gUnknown_845FC78 = { SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const union AnimCmd gUnknown_845FC90[] = { +static const union AnimCmd gUnknown_845FC90[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FC98[] = { +static const union AnimCmd *const gUnknown_845FC98[] = { gUnknown_845FC90 }; -const struct OamData gOamData_845FC9C = { +static const struct OamData gOamData_845FC9C = { .affineMode = ST_OAM_AFFINE_NORMAL, .size = 2 }; -const union AffineAnimCmd gUnknown_845FCA4[] = { +static const union AffineAnimCmd gUnknown_845FCA4[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 20), AFFINEANIMCMD_JUMP(0) }; -const union AffineAnimCmd *const gUnknown_845FCB4[] = { +static const union AffineAnimCmd *const gUnknown_845FCB4[] = { gUnknown_845FCA4 }; -const struct SpriteTemplate gUnknown_845FCB8 = { +static const struct SpriteTemplate gUnknown_845FCB8 = { SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 }; -const union AnimCmd gUnknown_845FCD0[] = { +static const union AnimCmd gUnknown_845FCD0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FCD8[] = { +static const union AnimCmd *const gUnknown_845FCD8[] = { gUnknown_845FCD0 }; -const struct OamData gOamData_845FCDC = { +static const struct OamData gOamData_845FCDC = { .size = 3 }; -const struct SpriteTemplate gUnknown_845FCE4 = { +static const struct SpriteTemplate gUnknown_845FCE4 = { SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FCFC = { +static const struct SpriteTemplate gUnknown_845FCFC = { SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FD14 = { +static const struct SpriteTemplate gUnknown_845FD14 = { SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FD2C = { +static const struct SpriteTemplate gUnknown_845FD2C = { SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -void sub_812C380(void) +static void sub_812C380(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_812C394(void) +static void sub_812C394(void) { RunTasks(); AnimateSprites(); @@ -496,11 +496,11 @@ void sub_812C394(void) UpdatePaletteFade(); } -void sub_812C3AC(void (*a0)(void)) +void UseFameChecker(MainCallback savedCallback) { SetVBlankCallback(NULL); gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); - gUnknown_203B0FC->unk_00 = a0; + gUnknown_203B0FC->savedCallback = savedCallback; gUnknown_203B0FC->unk_09 = 0; gUnknown_203B0FC->unk_0A = 0; gUnknown_203B0FC->unk_0B = 0; @@ -509,7 +509,7 @@ void sub_812C3AC(void (*a0)(void)) SetMainCallback2(sub_812C3F8); } -void sub_812C3F8(void) +static void sub_812C3F8(void) { switch (gMain.state) { @@ -588,19 +588,19 @@ void sub_812C3F8(void) } } -void sub_812C648(void) +static void sub_812C648(void) { LoadSpriteSheets(gUnknown_845FB9C); LoadSpritePalettes(gUnknown_845FBDC); } -void sub_812C664(u8 taskId) +static void sub_812C664(u8 taskId) { if (!gPaletteFade.active) gTasks[taskId].func = sub_812C694; } -void sub_812C694(u8 taskId) +static void sub_812C694(u8 taskId) { u16 r4; u8 r4_2; @@ -609,7 +609,7 @@ void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->savedCallback != sub_8107EB8) task->func = sub_812CF3C; else if (PRESSED(START_BUTTON)) { @@ -626,7 +626,7 @@ void sub_812C694(u8 taskId) sub_812E178(2, 4); sub_812E178(1, 5); sub_812D0F4(1); - task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[r4]); + task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[r4]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; task->data[3] = sub_812D7E4(); @@ -652,12 +652,12 @@ void sub_812C694(u8 taskId) for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], ST_OAM_OBJ_BLEND); + sub_812CEFC(gUnknown_203B0FC->spriteIds[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); sub_812D0F4(2); - if (gSprites[gUnknown_203B0FC->unk_1D[task->data[1]]].data[1] != 0xFF) + if (gSprites[gUnknown_203B0FC->spriteIds[task->data[1]]].data[1] != 0xFF) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -676,7 +676,7 @@ void sub_812C694(u8 taskId) } } -bool8 sub_812C8F8(u8 taskId) +static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gUnknown_203B0FC->unk_07_1) @@ -694,12 +694,12 @@ bool8 sub_812C8F8(u8 taskId) return FALSE; } -void sub_812C990(void) +static void sub_812C990(void) { AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); } -void sub_812C9BC(u8 taskId) +static void sub_812C9BC(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gSprites[task->data[2]].data[0] == 0) @@ -712,7 +712,7 @@ void sub_812C9BC(u8 taskId) ChangeBgX(1, 0xA00, 1); } -void sub_812CA1C(u8 taskId) +static void sub_812CA1C(u8 taskId) { struct Task *task = &gTasks[taskId]; if (GetBgX(1) != 0) @@ -732,7 +732,7 @@ void sub_812CA1C(u8 taskId) } } -void sub_812CAD8(u8 taskId) +static void sub_812CAD8(u8 taskId) { struct Task *task = &gTasks[taskId]; s16 *data = gTasks[taskId].data; @@ -740,7 +740,7 @@ void sub_812CAD8(u8 taskId) RunTextPrinters(); if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) { - u8 spriteId = gUnknown_203B0FC->unk_1D[data[1]]; + u8 spriteId = gUnknown_203B0FC->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } @@ -749,7 +749,7 @@ void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], ST_OAM_OBJ_NORMAL); + sub_812CEFC(gUnknown_203B0FC->spriteIds[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -801,7 +801,7 @@ void sub_812CAD8(u8 taskId) } } -void sub_812CC68(u8 taskId, s8 dx, s8 dy) +static void sub_812CC68(u8 taskId, s8 dx, s8 dy) { u8 i; s16 *data = gTasks[taskId].data; @@ -809,10 +809,10 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[i], ST_OAM_OBJ_BLEND); + sub_812CEFC(gUnknown_203B0FC->spriteIds[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + if (sub_812CEFC(gUnknown_203B0FC->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -821,11 +821,11 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) sub_812DB10(); } -void sub_812CD3C(void) +static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = sub_812E064(); - if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); sub_812C990(); @@ -835,29 +835,29 @@ void sub_812CD3C(void) FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); if (sub_812D6B4() == TRUE) r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unlockedPersons[r6] + r8]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } } -void sub_812CE04(u8 taskId) +static void sub_812CE04(u8 taskId) { s16 *data = gTasks[taskId].data; u16 r5 = sub_812E064(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unk_0C[r5] * 6 + data[1]]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } -void sub_812CE9C(void) +static void sub_812CE9C(void) { FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812CEE0(2); } -void sub_812CEC0(void) +static void sub_812CEC0(void) { sub_80F6E9C(); sub_80F6EE4(2, 1); @@ -865,13 +865,13 @@ void sub_812CEC0(void) sub_812CEE0(0); } -void sub_812CEE0(u8 windowId) +static void sub_812CEE0(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -bool8 sub_812CEFC(u8 spriteId, u8 objMode) +static bool8 sub_812CEFC(u8 spriteId, u8 objMode) { if (gSprites[spriteId].data[1] != 0xFF) { @@ -881,14 +881,14 @@ bool8 sub_812CEFC(u8 spriteId, u8 objMode) return FALSE; } -void sub_812CF3C(u8 taskId) +static void sub_812CF3C(u8 taskId) { PlaySE(SE_W202); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); gTasks[taskId].func = sub_812CF7C; } -void sub_812CF7C(u8 taskId) +static void sub_812CF7C(u8 taskId) { u8 r4; @@ -902,15 +902,15 @@ void sub_812CF7C(u8 taskId) } for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); } sub_812D814(); sub_812D7C8(); sub_812D70C(); sub_812D770(); sub_812E048(); - SetMainCallback2(gUnknown_203B0FC->unk_00); - sub_810713C(gUnknown_203B0FC->unk_08, 0, 0); + SetMainCallback2(gUnknown_203B0FC->savedCallback); + sub_810713C(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, 0, 0); Free(gUnknown_203B0F0); Free(gUnknown_203B0F4); Free(gUnknown_203B0F8); @@ -925,7 +925,7 @@ void sub_812CF7C(u8 taskId) } } -void sub_812D094(u8 windowId) +static void sub_812D094(u8 windowId) { FillWindowPixelBuffer(windowId, 0); ClearWindowTilemap(windowId); @@ -933,7 +933,7 @@ void sub_812D094(u8 windowId) RemoveWindow(windowId); } -u8 sub_812D0C0(u8 a0) +static u8 sub_812D0C0(u8 a0) { if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) { @@ -945,7 +945,7 @@ u8 sub_812D0C0(u8 a0) return a0; } -void sub_812D0F4(u8 a0) +static void sub_812D0F4(u8 a0) { const u8 * r5 = gUnknown_841E5A4; s32 width; @@ -961,26 +961,26 @@ void sub_812D0F4(u8 a0) sub_812CEE0(1); } -void sub_812D174(void) +static void sub_812D174(void) { u8 r4; for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); } } -bool8 sub_812D1A8(u8 a0) +static bool8 sub_812D1A8(u8 a0) { // r8 <- a0 bool8 r5 = FALSE; u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { - gUnknown_203B0FC->unk_1D[r6] = sub_805EB44( - gUnknown_845F83C[gUnknown_203B0FC->unk_0C[a0] * 6 + r6], + gUnknown_203B0FC->spriteIds[r6] = sub_805EB44( + gUnknown_845F83C[gUnknown_203B0FC->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -989,11 +989,11 @@ bool8 sub_812D1A8(u8 a0) } else { - gUnknown_203B0FC->unk_1D[r6] = sub_812D780( + gUnknown_203B0FC->spriteIds[r6] = sub_812D780( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); - gSprites[gUnknown_203B0FC->unk_1D[r6]].data[1] = 0xFF; + gSprites[gUnknown_203B0FC->spriteIds[r6]].data[1] = 0xFF; } } if (r5 == TRUE) @@ -1012,7 +1012,7 @@ bool8 sub_812D1A8(u8 a0) return r5; } -void sub_812D304(void) +void ResetFameChecker(void) { u8 r4; for (r4 = 0; r4 < 16; r4++) @@ -1024,7 +1024,7 @@ void sub_812D304(void) gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; } -void sub_812D388(void) +static void sub_812D388(void) { u8 r5, r4; for (r5 = 0; r5 < 16; r5++) @@ -1037,7 +1037,7 @@ void sub_812D388(void) } } -void sub_812D420(void) +static void sub_812D420(void) { void * vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -1065,7 +1065,7 @@ void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -void sub_812D558(void) +static void sub_812D558(void) { remove_some_task(); ResetTasks(); @@ -1077,12 +1077,12 @@ void sub_812D558(void) } -void sub_812D584(void) +static void sub_812D584(void) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); } -void sub_812D594(void) +static void sub_812D594(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1094,7 +1094,7 @@ void sub_812D594(void) ChangeBgY(3, 0, 0); } -void sub_812D5EC(void) +static void sub_812D5EC(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) { @@ -1104,7 +1104,7 @@ void sub_812D5EC(void) } } -void sub_812D650(void) +static void sub_812D650(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) { @@ -1116,10 +1116,10 @@ void sub_812D650(void) } } -bool8 sub_812D6B4(void) +static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = gUnknown_203B0FC->unk_0C[sub_812E064()]; + u8 r1 = gUnknown_203B0FC->unlockedPersons[sub_812E064()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1128,30 +1128,30 @@ bool8 sub_812D6B4(void) return TRUE; } -void sub_812D70C(void) +static void sub_812D70C(void) { FreeSpriteTilesByTag(SPRITETAG_1000); FreeSpritePaletteByTag(SPRITETAG_1000); } -u8 sub_812D724(s16 a0) +static u8 sub_812D724(s16 a0) { s16 r4 = a0 >= 3 ? 61 : 34; s16 r1 = 47 * (a0 % 3) + 0x72; return CreateSprite(&gUnknown_845FC44, r1, r4, 0); } -void sub_812D764(struct Sprite * sprite) +static void sub_812D764(struct Sprite * sprite) { DestroySprite(sprite); } -void sub_812D770(void) +static void sub_812D770(void) { FreeSpriteTilesByTag(SPRITETAG_1001); } -u8 sub_812D780(u8 x, u8 y) +static u8 sub_812D780(u8 x, u8 y) { u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); gSprites[spriteId].oam.priority = 2; @@ -1159,24 +1159,24 @@ u8 sub_812D780(u8 x, u8 y) return spriteId; } -void sub_812D7C8(void) +static void sub_812D7C8(void) { FreeSpriteTilesByTag(SPRITETAG_1002); FreeSpritePaletteByTag(SPRITETAG_1002); } -u8 sub_812D7E4(void) +static u8 sub_812D7E4(void) { return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); } -void sub_812D800(struct Sprite * sprite) +static void sub_812D800(struct Sprite * sprite) { FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } -void sub_812D814(void) +static void sub_812D814(void) { FreeSpriteTilesByTag(SPRITETAG_1006); FreeSpriteTilesByTag(SPRITETAG_1007); @@ -1184,7 +1184,7 @@ void sub_812D814(void) FreeSpriteTilesByTag(SPRITETAG_1009); } -void sub_812D840(struct Sprite * sprite) +static void sub_812D840(struct Sprite * sprite) { if (sprite->data[0] == 1) { @@ -1208,7 +1208,7 @@ void sub_812D840(struct Sprite * sprite) } } -u8 sub_812D888(u8 a0) +static u8 sub_812D888(u8 a0) { u8 r4; if (a0 == 1) @@ -1245,26 +1245,26 @@ u8 sub_812D888(u8 a0) return r4; } -void sub_812D9A8(u8 taskId, u16 a1) +static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; if (a1 == gUnknown_203B0FC->unk_07_2 - 1) r1 = a1 - 1; - if ( gUnknown_203B0FC->unk_0C[r1] == 1 - || gUnknown_203B0FC->unk_0C[r1] == 14 - || gUnknown_203B0FC->unk_0C[r1] == 0 - || gUnknown_203B0FC->unk_0C[r1] == 13 + if ( gUnknown_203B0FC->unlockedPersons[r1] == 1 + || gUnknown_203B0FC->unlockedPersons[r1] == 14 + || gUnknown_203B0FC->unlockedPersons[r1] == 0 + || gUnknown_203B0FC->unlockedPersons[r1] == 13 ) DestroySprite(&gSprites[data[2]]); else sub_810C2E8(data[2]); } -void sub_812DA14(u8 a0) +static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * gUnknown_203B0FC->unk_0C[sub_812E064()] + a0; + u32 r5 = 6 * gUnknown_203B0FC->unlockedPersons[sub_812E064()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1276,21 +1276,21 @@ void sub_812DA14(u8 a0) sub_812CEE0(3); } -void sub_812DB10(void) +static void sub_812DB10(void) { sub_812E094(0); gUnknown_3005EC8 = 0xFF; } -void sub_812DB28(void) +static void sub_812DB28(void) { sub_812DB64(); gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); - gUnknown_203B0FC->unk_08 = ListMenuInit(&gUnknown_3005EB0, 0, 0); + gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gUnknown_3005EB0, 0, 0); sub_812DFE4(0); } -void sub_812DB64(void) +static void sub_812DB64(void) { gUnknown_3005EB0.items = gUnknown_203B100; gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; @@ -1312,7 +1312,7 @@ void sub_812DB64(void) gUnknown_3005EB0.cursorKind = 0; } -void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8; u8 taskId; @@ -1326,7 +1326,7 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp8, NULL); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp8, NULL); gUnknown_203B0FC->unk_04 = sp8; if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) { @@ -1367,35 +1367,35 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u8 r2; for (r2 = 0; r2 < 6; r2++) { - gSprites[gUnknown_203B0FC->unk_1D[r2]].invisible = TRUE; + gSprites[gUnknown_203B0FC->spriteIds[r2]].invisible = TRUE; } } } } } -void sub_812DD50(u8 taskId) +static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[gUnknown_203B104]); + task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[gUnknown_203B104]); gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); task->func = sub_812C694; } -void sub_812DDAC(void) +static void sub_812DDAC(void) { FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); sub_812CEE0(2); } -void sub_812DDF0(s32 itemIndex, bool8 onInit) +static void sub_812DDF0(s32 itemIndex, bool8 onInit) { u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp14, &sp16); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); r6 = sp14 + sp16; AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); if (!onInit) @@ -1412,7 +1412,7 @@ void sub_812DDF0(s32 itemIndex, bool8 onInit) gUnknown_203B0FC->unk_0A = sp14; } -u8 sub_812DEF0(void) +static u8 sub_812DEF0(void) { u8 r4 = 0; u8 r6; @@ -1432,13 +1432,13 @@ u8 sub_812DEF0(void) gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; gUnknown_203B100[r4].unk_04 = r4; } - gUnknown_203B0FC->unk_0C[r4] = r5; + gUnknown_203B0FC->unlockedPersons[r4] = r5; r4++; } } gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; gUnknown_203B100[r4].unk_04 = r4; - gUnknown_203B0FC->unk_0C[r4] = 0xFF; + gUnknown_203B0FC->unlockedPersons[r4] = 0xFF; r4++; gUnknown_3005EB0.totalItems = r4; if (r4 < 5) @@ -1448,13 +1448,13 @@ u8 sub_812DEF0(void) return r4; } -void sub_812DFE4(u8 windowId) +static void sub_812DFE4(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -void sub_812E000(void) +static void sub_812E000(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { 2, @@ -1479,20 +1479,20 @@ void sub_812E000(void) } } -void sub_812E048(void) +static void sub_812E048(void) { if (gUnknown_203B0FC->unk_07_2 > 5) RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); } -u16 sub_812E064(void) +static u16 sub_812E064(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); return sp0 + sp2; } -void sub_812E094(u8 a0) +static void sub_812E094(u8 a0) { if (gUnknown_203B0FC->unk_23_0 != a0) { @@ -1514,7 +1514,7 @@ void sub_812E094(u8 a0) } } -void sub_812E110(u8 taskId) +static void sub_812E110(u8 taskId) { struct Task * task = &gTasks[taskId]; switch (task->data[0]) @@ -1537,7 +1537,7 @@ void sub_812E110(u8 taskId) } } -void sub_812E178(u8 bg, s16 a1) +static void sub_812E178(u8 bg, s16 a1) { if (a1 == 0 || a1 == 3) { @@ -1599,9 +1599,9 @@ void sub_812E178(u8 bg, s16 a1) CopyBgTilemapBufferToVram(bg); } -void sub_812E4A4(u8 a0) +static void sub_812E4A4(u8 a0) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->unk_08); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId); if (a0 == 1) AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); else From 3c409e3cd2a9da797a8b5ecb06e40cb003ce21e3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:20:29 -0500 Subject: [PATCH 32/49] Make ewram symbols static too --- common_syms/fame_checker.txt | 2 +- src/fame_checker.c | 260 +++++++++++++++++------------------ 2 files changed, 131 insertions(+), 131 deletions(-) diff --git a/common_syms/fame_checker.txt b/common_syms/fame_checker.txt index 22330180e..a590c1cbb 100644 --- a/common_syms/fame_checker.txt +++ b/common_syms/fame_checker.txt @@ -1,2 +1,2 @@ -gUnknown_3005EB0 +gFameChecker_ListMenuTemplate gUnknown_3005EC8 diff --git a/src/fame_checker.c b/src/fame_checker.c index b2fe20c9b..e15768e4b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -53,14 +53,14 @@ struct FameCheckerData u8 unk_23_2:1; }; -EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; -EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; -EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; -EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; -EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; -EWRAM_DATA s32 gUnknown_203B104 = 0; +static EWRAM_DATA u16 * sBg3TilemapBuffer = NULL; +static EWRAM_DATA u16 * sBg1TilemapBuffer = NULL; +static EWRAM_DATA u16 * sBg2TilemapBuffer = NULL; +static EWRAM_DATA struct FameCheckerData * sFameCheckerData = NULL; +static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; +static EWRAM_DATA s32 sLastMenuIdx = 0; -struct ListMenuTemplate gUnknown_3005EB0; +struct ListMenuTemplate gFameChecker_ListMenuTemplate; u8 gUnknown_3005EC8; static void sub_812C3F8(void); @@ -499,12 +499,12 @@ static void sub_812C394(void) void UseFameChecker(MainCallback savedCallback) { SetVBlankCallback(NULL); - gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); - gUnknown_203B0FC->savedCallback = savedCallback; - gUnknown_203B0FC->unk_09 = 0; - gUnknown_203B0FC->unk_0A = 0; - gUnknown_203B0FC->unk_0B = 0; - gUnknown_203B0FC->unk_23_0 = FALSE; + sFameCheckerData = AllocZeroed(sizeof(struct FameCheckerData)); + sFameCheckerData->savedCallback = savedCallback; + sFameCheckerData->unk_09 = 0; + sFameCheckerData->unk_0A = 0; + sFameCheckerData->unk_0B = 0; + sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); } @@ -523,14 +523,14 @@ static void sub_812C3F8(void) gMain.state++; break; case 2: - gUnknown_203B0F0 = AllocZeroed(0x800); - gUnknown_203B0F4 = AllocZeroed(0x1000); - gUnknown_203B0F8 = AllocZeroed(0x800); + sBg3TilemapBuffer = AllocZeroed(0x800); + sBg1TilemapBuffer = AllocZeroed(0x1000); + sBg2TilemapBuffer = AllocZeroed(0x800); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); - SetBgTilemapBuffer(3, gUnknown_203B0F0); - SetBgTilemapBuffer(2, gUnknown_203B0F8); - SetBgTilemapBuffer(1, gUnknown_203B0F4); + SetBgTilemapBuffer(3, sBg3TilemapBuffer); + SetBgTilemapBuffer(2, sBg2TilemapBuffer); + SetBgTilemapBuffer(1, sBg1TilemapBuffer); sub_812D594(); gMain.state++; break; @@ -561,7 +561,7 @@ static void sub_812C3F8(void) InitWindows(gUnknown_845FC04); DeactivateAllTextPrinters(); sub_812CEC0(); - gUnknown_203B100 = AllocZeroed(17 * sizeof(struct ListMenuItem)); + sListMenuItems = AllocZeroed(17 * sizeof(struct ListMenuItem)); sub_812DB28(); gMain.state++; break; @@ -578,7 +578,7 @@ static void sub_812C3F8(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); SetVBlankCallback(sub_812C380); - gUnknown_203B0FC->unk_04 = 0; + sFameCheckerData->unk_04 = 0; sub_812E000(); sub_812E178(1, 4); CreateTask(sub_812C664, 0x08); @@ -609,7 +609,7 @@ static void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->savedCallback != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) task->func = sub_812CF3C; else if (PRESSED(START_BUTTON)) { @@ -618,7 +618,7 @@ static void sub_812C694(u8 taskId) { PlaySE(SE_W100); } - else if (r4 != gUnknown_203B0FC->unk_07_2 - 1) + else if (r4 != sFameCheckerData->unk_07_2 - 1) { PlaySE(SE_W100); FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); @@ -626,7 +626,7 @@ static void sub_812C694(u8 taskId) sub_812E178(2, 4); sub_812E178(1, 5); sub_812D0F4(1); - task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[r4]); + task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[r4]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; task->data[3] = sub_812D7E4(); @@ -638,26 +638,26 @@ static void sub_812C694(u8 taskId) else if (PRESSED(A_BUTTON)) { r4 = ListMenuHandleInput(0); - if (r4 == gUnknown_203B0FC->unk_07_2 - 1) + if (r4 == sFameCheckerData->unk_07_2 - 1) task->func = sub_812CF3C; - else if (gUnknown_203B0FC->unk_07_1) + else if (sFameCheckerData->unk_07_1) { if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); } - else if (gUnknown_203B0FC->unk_07_0) + else if (sFameCheckerData->unk_07_0) { PlaySE(SE_SELECT); task->data[0] = sub_812D724(task->data[1]); for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->spriteIds[r4_2], ST_OAM_OBJ_BLEND); + sub_812CEFC(sFameCheckerData->spriteIds[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); sub_812D0F4(2); - if (gSprites[gUnknown_203B0FC->spriteIds[task->data[1]]].data[1] != 0xFF) + if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -679,7 +679,7 @@ static void sub_812C694(u8 taskId) static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { gSprites[task->data[2]].data[0] = 2; gSprites[task->data[2]].pos2.x += 10; @@ -688,7 +688,7 @@ static bool8 sub_812C8F8(u8 taskId) sub_812CE9C(); task->func = sub_812CA1C; sub_812C990(); - gUnknown_203B0FC->unk_23_2 = FALSE; + sFameCheckerData->unk_23_2 = FALSE; return TRUE; } return FALSE; @@ -705,7 +705,7 @@ static void sub_812C9BC(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { sub_812CD3C(); - gUnknown_203B0FC->unk_07_1 = TRUE; + sFameCheckerData->unk_07_1 = TRUE; task->func = sub_812C694; } else @@ -721,11 +721,11 @@ static void sub_812CA1C(u8 taskId) ChangeBgX(1, 0x000, 0); if (gSprites[task->data[2]].data[0] == 0) { - if (gUnknown_203B0FC->unk_07_0) + if (sFameCheckerData->unk_07_0) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); - gUnknown_203B0FC->unk_07_1 = FALSE; + sFameCheckerData->unk_07_1 = FALSE; sub_812D9A8(taskId, sub_812E064()); task->func = sub_812C694; gSprites[task->data[3]].callback = sub_812D800; @@ -740,7 +740,7 @@ static void sub_812CAD8(u8 taskId) RunTextPrinters(); if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) { - u8 spriteId = gUnknown_203B0FC->spriteIds[data[1]]; + u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } @@ -749,7 +749,7 @@ static void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->spriteIds[r4], ST_OAM_OBJ_NORMAL); + sub_812CEFC(sFameCheckerData->spriteIds[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -809,10 +809,10 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->spriteIds[i], ST_OAM_OBJ_BLEND); + sub_812CEFC(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + if (sub_812CEFC(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -825,7 +825,7 @@ static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = sub_812E064(); - if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); sub_812C990(); @@ -835,7 +835,7 @@ static void sub_812CD3C(void) FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); if (sub_812D6B4() == TRUE) r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unlockedPersons[r6] + r8]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[sFameCheckerData->unlockedPersons[r6] + r8]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } @@ -846,7 +846,7 @@ static void sub_812CE04(u8 taskId) s16 *data = gTasks[taskId].data; u16 r5 = sub_812E064(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unlockedPersons[r5] * 6 + data[1]]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } @@ -894,7 +894,7 @@ static void sub_812CF7C(u8 taskId) if (!gPaletteFade.active) { - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { sub_812D9A8(taskId, sub_812E064()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); @@ -902,20 +902,20 @@ static void sub_812CF7C(u8 taskId) } for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } sub_812D814(); sub_812D7C8(); sub_812D70C(); sub_812D770(); sub_812E048(); - SetMainCallback2(gUnknown_203B0FC->savedCallback); - sub_810713C(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, 0, 0); - Free(gUnknown_203B0F0); - Free(gUnknown_203B0F4); - Free(gUnknown_203B0F8); - Free(gUnknown_203B0FC); - Free(gUnknown_203B100); + SetMainCallback2(sFameCheckerData->savedCallback); + sub_810713C(sFameCheckerData->scrollIndicatorArrowObjectTaskId, 0, 0); + Free(sBg3TilemapBuffer); + Free(sBg1TilemapBuffer); + Free(sBg2TilemapBuffer); + Free(sFameCheckerData); + Free(sListMenuItems); sub_812D094(0); sub_812D094(1); sub_812D094(2); @@ -966,7 +966,7 @@ static void sub_812D174(void) u8 r4; for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } } @@ -977,10 +977,10 @@ static bool8 sub_812D1A8(u8 a0) u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { - gUnknown_203B0FC->spriteIds[r6] = sub_805EB44( - gUnknown_845F83C[gUnknown_203B0FC->unlockedPersons[a0] * 6 + r6], + sFameCheckerData->spriteIds[r6] = sub_805EB44( + gUnknown_845F83C[sFameCheckerData->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -989,24 +989,24 @@ static bool8 sub_812D1A8(u8 a0) } else { - gUnknown_203B0FC->spriteIds[r6] = sub_812D780( + sFameCheckerData->spriteIds[r6] = sub_812D780( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); - gSprites[gUnknown_203B0FC->spriteIds[r6]].data[1] = 0xFF; + gSprites[sFameCheckerData->spriteIds[r6]].data[1] = 0xFF; } } if (r5 == TRUE) { - gUnknown_203B0FC->unk_07_0 = TRUE; - if (gUnknown_203B0FC->unk_07_1) + sFameCheckerData->unk_07_0 = TRUE; + if (sFameCheckerData->unk_07_1) sub_812D0F4(TRUE); else sub_812D0F4(FALSE); } else { - gUnknown_203B0FC->unk_07_0 = FALSE; + sFameCheckerData->unk_07_0 = FALSE; sub_812D0F4(TRUE); } return r5; @@ -1119,7 +1119,7 @@ static void sub_812D650(void) static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = gUnknown_203B0FC->unlockedPersons[sub_812E064()]; + u8 r1 = sFameCheckerData->unlockedPersons[sub_812E064()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1249,12 +1249,12 @@ static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; - if (a1 == gUnknown_203B0FC->unk_07_2 - 1) + if (a1 == sFameCheckerData->unk_07_2 - 1) r1 = a1 - 1; - if ( gUnknown_203B0FC->unlockedPersons[r1] == 1 - || gUnknown_203B0FC->unlockedPersons[r1] == 14 - || gUnknown_203B0FC->unlockedPersons[r1] == 0 - || gUnknown_203B0FC->unlockedPersons[r1] == 13 + if ( sFameCheckerData->unlockedPersons[r1] == 1 + || sFameCheckerData->unlockedPersons[r1] == 14 + || sFameCheckerData->unlockedPersons[r1] == 0 + || sFameCheckerData->unlockedPersons[r1] == 13 ) DestroySprite(&gSprites[data[2]]); else @@ -1264,7 +1264,7 @@ static void sub_812D9A8(u8 taskId, u16 a1) static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * gUnknown_203B0FC->unlockedPersons[sub_812E064()] + a0; + u32 r5 = 6 * sFameCheckerData->unlockedPersons[sub_812E064()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1285,31 +1285,31 @@ static void sub_812DB10(void) static void sub_812DB28(void) { sub_812DB64(); - gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); - gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gUnknown_3005EB0, 0, 0); + sFameCheckerData->unk_07_2 = sub_812DEF0(); + sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); sub_812DFE4(0); } static void sub_812DB64(void) { - gUnknown_3005EB0.items = gUnknown_203B100; - gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; - gUnknown_3005EB0.itemPrintFunc = NULL; - gUnknown_3005EB0.totalItems = 1; - gUnknown_3005EB0.maxShowed = 1; - gUnknown_3005EB0.windowId = 0; - gUnknown_3005EB0.header_X = 0; - gUnknown_3005EB0.item_X = 8; - gUnknown_3005EB0.cursor_X = 0; - gUnknown_3005EB0.upText_Y = 4; - gUnknown_3005EB0.cursorPal = 2; - gUnknown_3005EB0.fillValue = 0; - gUnknown_3005EB0.cursorShadowPal = 3; - gUnknown_3005EB0.lettersSpacing = 0; - gUnknown_3005EB0.itemVerticalPadding = 0; - gUnknown_3005EB0.scrollMultiple = 0; - gUnknown_3005EB0.fontId = 2; - gUnknown_3005EB0.cursorKind = 0; + gFameChecker_ListMenuTemplate.items = sListMenuItems; + gFameChecker_ListMenuTemplate.moveCursorFunc = sub_812DBC0; + gFameChecker_ListMenuTemplate.itemPrintFunc = NULL; + gFameChecker_ListMenuTemplate.totalItems = 1; + gFameChecker_ListMenuTemplate.maxShowed = 1; + gFameChecker_ListMenuTemplate.windowId = 0; + gFameChecker_ListMenuTemplate.header_X = 0; + gFameChecker_ListMenuTemplate.item_X = 8; + gFameChecker_ListMenuTemplate.cursor_X = 0; + gFameChecker_ListMenuTemplate.upText_Y = 4; + gFameChecker_ListMenuTemplate.cursorPal = 2; + gFameChecker_ListMenuTemplate.fillValue = 0; + gFameChecker_ListMenuTemplate.cursorShadowPal = 3; + gFameChecker_ListMenuTemplate.lettersSpacing = 0; + gFameChecker_ListMenuTemplate.itemVerticalPadding = 0; + gFameChecker_ListMenuTemplate.scrollMultiple = 0; + gFameChecker_ListMenuTemplate.fontId = 2; + gFameChecker_ListMenuTemplate.cursorKind = 0; } static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) @@ -1317,8 +1317,8 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u16 sp8; u8 taskId; u16 r9; - gUnknown_203B104 = 0; - r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; + sLastMenuIdx = 0; + r9 = sFameCheckerData->unk_0A + sFameCheckerData->unk_0B; sub_812DDF0(itemIndex, onInit); taskId = FindTaskIdByFunc(sub_812C694); if (taskId != 0xFF) @@ -1326,24 +1326,24 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp8, NULL); - gUnknown_203B0FC->unk_04 = sp8; - if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); + sFameCheckerData->unk_04 = sp8; + if (itemIndex != sFameCheckerData->unk_07_2 - 1) { sub_812D174(); sub_812D1A8(itemIndex); - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { - if (!gUnknown_203B0FC->unk_23_2) + if (!sFameCheckerData->unk_23_2) { sub_812D9A8(taskId, r9); - gUnknown_203B104 = itemIndex; + sLastMenuIdx = itemIndex; task->func = sub_812DD50; } else { gSprites[task->data[2]].invisible = FALSE; - gUnknown_203B0FC->unk_23_2 = FALSE; + sFameCheckerData->unk_23_2 = FALSE; gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); } @@ -1357,17 +1357,17 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) else { sub_812DDAC(); - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { gSprites[task->data[2]].invisible = TRUE; - gUnknown_203B0FC->unk_23_2 = TRUE; + sFameCheckerData->unk_23_2 = TRUE; } else { u8 r2; for (r2 = 0; r2 < 6; r2++) { - gSprites[gUnknown_203B0FC->spriteIds[r2]].invisible = TRUE; + gSprites[sFameCheckerData->spriteIds[r2]].invisible = TRUE; } } } @@ -1377,7 +1377,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[gUnknown_203B104]); + task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[sLastMenuIdx]); gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); task->func = sub_812C694; @@ -1395,21 +1395,21 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); r6 = sp14 + sp16; - AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); + AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < gUnknown_203B0FC->unk_0A) - gUnknown_203B0FC->unk_0B++; - else if (sp14 > gUnknown_203B0FC->unk_0A && r6 != gUnknown_203B0FC->unk_07_2 - 1) - gUnknown_203B0FC->unk_0B--; - AddTextPrinterParametrized2(0, 2, 8, 14 * gUnknown_203B0FC->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, gUnknown_203B100[gUnknown_203B0FC->unk_09].unk_00); + if (sp14 < sFameCheckerData->unk_0A) + sFameCheckerData->unk_0B++; + else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->unk_07_2 - 1) + sFameCheckerData->unk_0B--; + AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); } - gUnknown_203B0FC->unk_09 = itemIndex; - gUnknown_203B0FC->unk_0B = sp16; - gUnknown_203B0FC->unk_0A = sp14; + sFameCheckerData->unk_09 = itemIndex; + sFameCheckerData->unk_0B = sp16; + sFameCheckerData->unk_0A = sp14; } static u8 sub_812DEF0(void) @@ -1424,27 +1424,27 @@ static u8 sub_812DEF0(void) { if (gUnknown_845F5EA[r5] < 0xFE00) { - gUnknown_203B100[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; - gUnknown_203B100[r4].unk_04 = r4; + sListMenuItems[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; + sListMenuItems[r4].unk_04 = r4; } else { - gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; - gUnknown_203B100[r4].unk_04 = r4; + sListMenuItems[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; + sListMenuItems[r4].unk_04 = r4; } - gUnknown_203B0FC->unlockedPersons[r4] = r5; + sFameCheckerData->unlockedPersons[r4] = r5; r4++; } } - gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; - gUnknown_203B100[r4].unk_04 = r4; - gUnknown_203B0FC->unlockedPersons[r4] = 0xFF; + sListMenuItems[r4].unk_00 = gUnknown_84161C1; + sListMenuItems[r4].unk_04 = r4; + sFameCheckerData->unlockedPersons[r4] = 0xFF; r4++; - gUnknown_3005EB0.totalItems = r4; + gFameChecker_ListMenuTemplate.totalItems = r4; if (r4 < 5) - gUnknown_3005EB0.maxShowed = r4; + gFameChecker_ListMenuTemplate.maxShowed = r4; else - gUnknown_3005EB0.maxShowed = 5; + gFameChecker_ListMenuTemplate.maxShowed = 5; return r4; } @@ -1471,30 +1471,30 @@ static void sub_812E000(void) 0 }; - if (gUnknown_203B0FC->unk_07_2 > 5) + if (sFameCheckerData->unk_07_2 > 5) { sp0.unk_06 = 0; - sp0.unk_08 = gUnknown_203B0FC->unk_07_2 - 5; - gUnknown_203B0FC->unk_06 = AddScrollIndicatorArrowPair(&sp0, &gUnknown_203B0FC->unk_04); + sp0.unk_08 = sFameCheckerData->unk_07_2 - 5; + sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); } } static void sub_812E048(void) { - if (gUnknown_203B0FC->unk_07_2 > 5) - RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); + if (sFameCheckerData->unk_07_2 > 5) + RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); } static u16 sub_812E064(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); return sp0 + sp2; } static void sub_812E094(u8 a0) { - if (gUnknown_203B0FC->unk_23_0 != a0) + if (sFameCheckerData->unk_23_0 != a0) { u8 taskId = FindTaskIdByFunc(sub_812E110); if (taskId == 0xFF) @@ -1504,12 +1504,12 @@ static void sub_812E094(u8 a0) if (a0 == TRUE) { gTasks[taskId].data[2] = 1; - gUnknown_203B0FC->unk_23_0 = TRUE; + sFameCheckerData->unk_23_0 = TRUE; } else { gTasks[taskId].data[2] = 4; - gUnknown_203B0FC->unk_23_0 = FALSE; + sFameCheckerData->unk_23_0 = FALSE; } } } @@ -1601,7 +1601,7 @@ static void sub_812E178(u8 bg, s16 a1) static void sub_812E4A4(u8 a0) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->scrollIndicatorArrowObjectTaskId); if (a0 == 1) AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); else From de72615a5428c5996b5c92d368cfb350816ed51e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:22:57 -0500 Subject: [PATCH 33/49] This is a sprite tag right here --- src/fame_checker.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/fame_checker.c b/src/fame_checker.c index e15768e4b..3b5576923 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -29,6 +29,7 @@ #define SPRITETAG_1000 1000 #define SPRITETAG_1001 1001 #define SPRITETAG_1002 1002 +#define SPRITETAG_1004 1004 #define SPRITETAG_1006 1006 #define SPRITETAG_1007 1007 #define SPRITETAG_1008 1008 @@ -1457,18 +1458,18 @@ static void sub_812DFE4(u8 windowId) static void sub_812E000(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { - 2, - 40, - 26, - 3, - 40, - 100, - 0, - 0, - 1004, - 0xFFFF, - 1, - 0 + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + SPRITETAG_1004, + 0xFFFF, + 1, + 0 }; if (sFameCheckerData->unk_07_2 > 5) From b21c50675b8b143608b39b26b53788e4807bbc9e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:24:17 -0500 Subject: [PATCH 34/49] PRESSED-->JOY_NEW, PUSHED-->JOY_HELD --- include/global.h | 4 ++-- src/fame_checker.c | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/global.h b/include/global.h index 2b9b00d5c..84597dba0 100644 --- a/include/global.h +++ b/include/global.h @@ -68,8 +68,8 @@ // GameFreak never ceases to amaze. // TODO: Propagate use of this macro #define TEST_BUTTON(field, button) ({(field) & (button);}) -#define PRESSED(button) TEST_BUTTON(gMain.newKeys, button) -#define PUSHED(button) TEST_BUTTON(gMain.heldKeys, button) +#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button) +#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button) extern u8 gStringVar1[]; extern u8 gStringVar2[]; diff --git a/src/fame_checker.c b/src/fame_checker.c index 3b5576923..8150c58ef 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -610,9 +610,9 @@ static void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) task->func = sub_812CF3C; - else if (PRESSED(START_BUTTON)) + else if (JOY_NEW(START_BUTTON)) { r4 = sub_812E064(); if (sub_812C8F8(taskId) == TRUE) @@ -636,7 +636,7 @@ static void sub_812C694(u8 taskId) task->func = sub_812C9BC; } } - else if (PRESSED(A_BUTTON)) + else if (JOY_NEW(A_BUTTON)) { r4 = ListMenuHandleInput(0); if (r4 == sFameCheckerData->unk_07_2 - 1) @@ -667,7 +667,7 @@ static void sub_812C694(u8 taskId) task->func = sub_812CAD8; } } - else if (PRESSED(B_BUTTON)) + else if (JOY_NEW(B_BUTTON)) { if (sub_812C8F8(taskId) != TRUE) task->func = sub_812CF3C; @@ -739,13 +739,13 @@ static void sub_812CAD8(u8 taskId) s16 *data = gTasks[taskId].data; RunTextPrinters(); - if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) + if (JOY_NEW(A_BUTTON) && !IsTextPrinterActive(2)) { u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } - if (PRESSED(B_BUTTON)) + if (JOY_NEW(B_BUTTON)) { u8 r4; PlaySE(SE_SELECT); @@ -761,7 +761,7 @@ static void sub_812CAD8(u8 taskId) sub_812C990(); task->func = sub_812C694; } - else if (PRESSED(DPAD_UP) || PRESSED(DPAD_DOWN)) + else if (JOY_NEW(DPAD_UP) || JOY_NEW(DPAD_DOWN)) { if (task->data[1] >= 3) { @@ -774,7 +774,7 @@ static void sub_812CAD8(u8 taskId) sub_812CC68(taskId, 0, +0x1b); } } - else if (PRESSED(DPAD_LEFT)) + else if (JOY_NEW(DPAD_LEFT)) { if (task->data[1] == 0 || task->data[1] % 3 == 0) { @@ -787,7 +787,7 @@ static void sub_812CAD8(u8 taskId) sub_812CC68(taskId, -0x2f, 0); } } - else if (PRESSED(DPAD_RIGHT)) + else if (JOY_NEW(DPAD_RIGHT)) { if ((task->data[1] + 1) % 3 == 0) { From 7e684b32f108bc484f3f8ba66b209d3f633e8acd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 22:27:19 -0500 Subject: [PATCH 35/49] More documentation of fame checker --- asm/item_menu.s | 6 +- asm/item_use.s | 24 ++-- asm/start_menu.s | 4 +- asm/teachy_tv.s | 4 +- charmap.txt | 6 + data/data_83FECCC.s | 6 +- data/fame_checker/img_845cf00.png | Bin 240 -> 297 bytes include/fame_checker.h | 19 +++ include/item_menu.h | 2 +- src/fame_checker.c | 209 +++++++++++++----------------- 10 files changed, 138 insertions(+), 142 deletions(-) diff --git a/asm/item_menu.s b/asm/item_menu.s index 5ad6b8b5c..16d1cfce2 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -138,8 +138,8 @@ _08107EB0: .4byte gUnknown_203AD10 _08107EB4: .4byte gUnknown_203ACFC thumb_func_end sub_8107DB4 - thumb_func_start sub_8107EB8 -sub_8107EB8: @ 8107EB8 + thumb_func_start UseFameCheckerFromMenu +UseFameCheckerFromMenu: @ 8107EB8 push {lr} ldr r2, _08107EC8 @ =sub_80568A8 movs r0, 0 @@ -149,7 +149,7 @@ sub_8107EB8: @ 8107EB8 bx r0 .align 2, 0 _08107EC8: .4byte sub_80568A8 - thumb_func_end sub_8107EB8 + thumb_func_end UseFameCheckerFromMenu thumb_func_start sub_8107ECC sub_8107ECC: @ 8107ECC diff --git a/asm/item_use.s b/asm/item_use.s index 49d517eb5..f653247d9 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -320,7 +320,7 @@ sub_80A1208: @ 80A1208 ldr r0, _080A1224 @ =gUnknown_203AD30 ldrh r0, [r0] strh r0, [r1, 0x20] - ldr r1, _080A1228 @ =sub_8107EB8 + ldr r1, _080A1228 @ =UseFameCheckerFromMenu mov r0, sp movs r2, 0 bl sub_80BEBEC @@ -329,7 +329,7 @@ sub_80A1208: @ 80A1208 bx r0 .align 2, 0 _080A1224: .4byte gUnknown_203AD30 -_080A1228: .4byte sub_8107EB8 +_080A1228: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A1208 thumb_func_start sub_80A122C @@ -1045,14 +1045,14 @@ _080A17D0: .4byte sub_80A17E8 thumb_func_start sub_80A17D4 sub_80A17D4: @ 80A17D4 push {lr} - ldr r1, _080A17E4 @ =sub_8107EB8 + ldr r1, _080A17E4 @ =UseFameCheckerFromMenu movs r0, 0 movs r2, 0 bl sub_81317F8 pop {r0} bx r0 .align 2, 0 -_080A17E4: .4byte sub_8107EB8 +_080A17E4: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A17D4 thumb_func_start sub_80A17E8 @@ -1123,14 +1123,14 @@ _080A1868: .4byte sub_80A1880 thumb_func_start sub_80A186C sub_80A186C: @ 80A186C push {lr} - ldr r1, _080A187C @ =sub_8107EB8 + ldr r1, _080A187C @ =UseFameCheckerFromMenu movs r0, 0 movs r2, 0 bl sub_813CD50 pop {r0} bx r0 .align 2, 0 -_080A187C: .4byte sub_8107EB8 +_080A187C: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A186C thumb_func_start sub_80A1880 @@ -1239,13 +1239,13 @@ _080A1948: .4byte sub_80A1960 thumb_func_start sub_80A194C sub_80A194C: @ 80A194C push {lr} - ldr r1, _080A195C @ =sub_8107EB8 + ldr r1, _080A195C @ =UseFameCheckerFromMenu movs r0, 0 bl sub_815ABC4 pop {r0} bx r0 .align 2, 0 -_080A195C: .4byte sub_8107EB8 +_080A195C: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A194C thumb_func_start sub_80A1960 @@ -1646,13 +1646,13 @@ _080A1CA8: .4byte sub_80A1CC0 thumb_func_start sub_80A1CAC sub_80A1CAC: @ 80A1CAC push {lr} - ldr r1, _080A1CBC @ =sub_8107EB8 + ldr r1, _080A1CBC @ =UseFameCheckerFromMenu movs r0, 0 bl sub_80BFF50 pop {r0} bx r0 .align 2, 0 -_080A1CBC: .4byte sub_8107EB8 +_080A1CBC: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A1CAC thumb_func_start sub_80A1CC0 @@ -1730,12 +1730,12 @@ _080A1D54: .4byte sub_80A1D68 thumb_func_start sub_80A1D58 sub_80A1D58: @ 80A1D58 push {lr} - ldr r0, _080A1D64 @ =sub_8107EB8 + ldr r0, _080A1D64 @ =UseFameCheckerFromMenu bl UseFameChecker pop {r0} bx r0 .align 2, 0 -_080A1D64: .4byte sub_8107EB8 +_080A1D64: .4byte UseFameCheckerFromMenu thumb_func_end sub_80A1D58 thumb_func_start sub_80A1D68 diff --git a/asm/start_menu.s b/asm/start_menu.s index 55dbb7357..43155b5da 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -911,14 +911,14 @@ _0806F498: bl play_some_sound bl sub_806EF18 bl sub_80563F0 - ldr r0, _0806F4B0 @ =sub_8107EB8 + ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu bl SetMainCallback2 movs r0, 0x1 _0806F4AC: pop {r1} bx r1 .align 2, 0 -_0806F4B0: .4byte sub_8107EB8 +_0806F4B0: .4byte UseFameCheckerFromMenu thumb_func_end sub_806F480 thumb_func_start sub_806F4B4 diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s index 55f403f8a..48f98a2b4 100644 --- a/asm/teachy_tv.s +++ b/asm/teachy_tv.s @@ -915,7 +915,7 @@ sub_815B2C0: @ 815B2C0 beq _0815B30A subs r0, r4, 0x6 ldr r1, [r0] - ldr r0, _0815B32C @ =sub_8107EB8 + ldr r0, _0815B32C @ =UseFameCheckerFromMenu cmp r1, r0 bne _0815B330 _0815B30A: @@ -932,7 +932,7 @@ _0815B31C: .4byte gTasks+0x8 _0815B320: .4byte gPaletteFade _0815B324: .4byte gUnknown_203F44A _0815B328: .4byte gMain -_0815B32C: .4byte sub_8107EB8 +_0815B32C: .4byte UseFameCheckerFromMenu _0815B330: movs r0, 0x5 bl PlaySE diff --git a/charmap.txt b/charmap.txt index 9441532b4..ad4062731 100644 --- a/charmap.txt +++ b/charmap.txt @@ -326,6 +326,12 @@ UNKNOWN_F7 = F7 UNKNOWN_F8 = F8 UNKNOWN_F9 = F9 +KEYGFX_A_BUTTON = F8 00 +KEYGFX_B_BUTTON = F8 01 +KEYGFX_START_BUTTON = F8 04 +KEYGFX_DPAD_UP_DOWN = F8 0A +KEYGFX_DPAD_ANY = F8 0C + STRING = FD @ string placeholders diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 7c2d85f03..402cd6704 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -2091,13 +2091,13 @@ gUnknown_841E58D:: @ 841E58D .incbin "baserom.gba", 0x41E58D, 0x17 gUnknown_841E5A4:: @ 841E5A4 - .incbin "baserom.gba", 0x41E5A4, 0x15 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" gUnknown_841E5B9:: @ 841E5B9 - .incbin "baserom.gba", 0x41E5B9, 0x19 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" gUnknown_841E5D2:: @ 841E5D2 - .string "{UNKNOWN_F8 0x0C}PICK {UNKNOWN_F8 0x00}READ {UNKNOWN_F8 0x01}CANCEL$" + .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" gUnknown_841E5E9:: @ 841E5E9 .string "OAK$" diff --git a/data/fame_checker/img_845cf00.png b/data/fame_checker/img_845cf00.png index 2d25bb1b30cad602837f6a41ab729f106e59de52..0d692439a4edc754c3211c5c2f5bbc3b11047edb 100644 GIT binary patch delta 281 zcmeysxRPmtWIZzj14Cm-`f(s-5a1Kynw6CWWTJuY?(V&N_ntj__T9U8&z?QIckkYo zEnEKo{|{9B@_hC&plZgFAirP+hi5m^fSl!?E{-7@6W31I$k*f`;Ie)5!TPO>C-Pr7 za<3&LSL21I&x%vZu9Dy&y4hqcbB_wnRBTmE&N=z@K4Q?EH;ZB zI#Rey9{B`1Tfb(IV|)_IVDmZloBHfi513?{hK!0=abeVl5*X)y-z z=imNK(7p2GMB#Jh{U2Y|&B~B)T(scYck@SE69u^iw!V3PIXDkZ88J2$;^<0G3 U-~4^^XD!ITp00i_>zopr08p}h{r~^~ delta 223 zcmV<503iRV0`LKl8Gir(005KW$SD8-0Jlj*K~yM_ozbxlf-n#U;J(5S!QEoi&A{Z= z#DSfGIBQ7UP4oeDVdGt8VXJNL%Aq5-H23B2l^n|cm0Av6_XDGL)eD54CBTbdAAtiD zQ4*kt2R#+RD9{J^2pk03O2E(D*4dS&GHig;1aBbmum+A1R#^VZCBgt?_qN*AfT33a zoV9+qgI=+Pi`unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) task->func = sub_812CF3C; else if (JOY_NEW(START_BUTTON)) { - r4 = sub_812E064(); + r4 = FameCheckerGetCursorY(); if (sub_812C8F8(taskId) == TRUE) { PlaySE(SE_W100); } - else if (r4 != sFameCheckerData->unk_07_2 - 1) + else if (r4 != sFameCheckerData->numUnlockedPersons - 1) { PlaySE(SE_W100); FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); @@ -639,9 +610,9 @@ static void sub_812C694(u8 taskId) else if (JOY_NEW(A_BUTTON)) { r4 = ListMenuHandleInput(0); - if (r4 == sFameCheckerData->unk_07_2 - 1) + if (r4 == sFameCheckerData->numUnlockedPersons - 1) task->func = sub_812CF3C; - else if (sFameCheckerData->unk_07_1) + else if (sFameCheckerData->inPickMode) { if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); @@ -680,7 +651,7 @@ static void sub_812C694(u8 taskId) static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].data[0] = 2; gSprites[task->data[2]].pos2.x += 10; @@ -706,7 +677,7 @@ static void sub_812C9BC(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { sub_812CD3C(); - sFameCheckerData->unk_07_1 = TRUE; + sFameCheckerData->inPickMode = TRUE; task->func = sub_812C694; } else @@ -726,8 +697,8 @@ static void sub_812CA1C(u8 taskId) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); - sFameCheckerData->unk_07_1 = FALSE; - sub_812D9A8(taskId, sub_812E064()); + sFameCheckerData->inPickMode = FALSE; + sub_812D9A8(taskId, FameCheckerGetCursorY()); task->func = sub_812C694; gSprites[task->data[3]].callback = sub_812D800; } @@ -825,7 +796,7 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) static void sub_812CD3C(void) { u8 r8 = 0; - u16 r6 = sub_812E064(); + u16 r6 = FameCheckerGetCursorY(); if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); @@ -845,7 +816,7 @@ static void sub_812CD3C(void) static void sub_812CE04(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 r5 = sub_812E064(); + u16 r5 = FameCheckerGetCursorY(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); @@ -895,9 +866,9 @@ static void sub_812CF7C(u8 taskId) if (!gPaletteFade.active) { - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { - sub_812D9A8(taskId, sub_812E064()); + sub_812D9A8(taskId, FameCheckerGetCursorY()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } @@ -981,7 +952,7 @@ static bool8 sub_812D1A8(u8 a0) if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { sFameCheckerData->spriteIds[r6] = sub_805EB44( - gUnknown_845F83C[sFameCheckerData->unlockedPersons[a0] * 6 + r6], + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -990,7 +961,7 @@ static bool8 sub_812D1A8(u8 a0) } else { - sFameCheckerData->spriteIds[r6] = sub_812D780( + sFameCheckerData->spriteIds[r6] = PlaceQuestionMarkTile( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); @@ -1000,7 +971,7 @@ static bool8 sub_812D1A8(u8 a0) if (r5 == TRUE) { sFameCheckerData->unk_07_0 = TRUE; - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) sub_812D0F4(TRUE); else sub_812D0F4(FALSE); @@ -1120,7 +1091,7 @@ static void sub_812D650(void) static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = sFameCheckerData->unlockedPersons[sub_812E064()]; + u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1152,7 +1123,7 @@ static void sub_812D770(void) FreeSpriteTilesByTag(SPRITETAG_1001); } -static u8 sub_812D780(u8 x, u8 y) +static u8 PlaceQuestionMarkTile(u8 x, u8 y) { u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); gSprites[spriteId].oam.priority = 2; @@ -1168,7 +1139,7 @@ static void sub_812D7C8(void) static u8 sub_812D7E4(void) { - return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); + return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0); } static void sub_812D800(struct Sprite * sprite) @@ -1212,28 +1183,28 @@ static void sub_812D840(struct Sprite * sprite) static u8 sub_812D888(u8 a0) { u8 r4; - if (a0 == 1) + if (a0 == FAMECHECKER_DAISY) { - r4 = CreateSprite(&gUnknown_845FCE4, 0x94, 0x42, 0); - LoadPalette(gUnknown_845ED60, 0x160, 0x20); + r4 = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sDaisySpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 14) + else if (a0 == FAMECHECKER_MRFUJI) { - r4 = CreateSprite(&gUnknown_845FCFC, 0x94, 0x42, 0); - LoadPalette(gUnknown_845DD20, 0x160, 0x20); + r4 = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sFujiSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 0) + else if (a0 == FAMECHECKER_OAK) { - r4 = CreateSprite(&gUnknown_845FD14, 0x94, 0x42, 0); - LoadPalette(gUnknown_845F580, 0x160, 0x20); + r4 = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sOakSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 13) + else if (a0 == FAMECHECKER_BILL) { - r4 = CreateSprite(&gUnknown_845FD2C, 0x94, 0x42, 0); - LoadPalette(gUnknown_845E540, 0x160, 0x20); + r4 = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sBillSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } else @@ -1250,12 +1221,12 @@ static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; - if (a1 == sFameCheckerData->unk_07_2 - 1) + if (a1 == sFameCheckerData->numUnlockedPersons - 1) r1 = a1 - 1; - if ( sFameCheckerData->unlockedPersons[r1] == 1 - || sFameCheckerData->unlockedPersons[r1] == 14 - || sFameCheckerData->unlockedPersons[r1] == 0 - || sFameCheckerData->unlockedPersons[r1] == 13 + if ( sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_DAISY + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_MRFUJI + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_OAK + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_BILL ) DestroySprite(&gSprites[data[2]]); else @@ -1265,7 +1236,7 @@ static void sub_812D9A8(u8 taskId, u16 a1) static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * sFameCheckerData->unlockedPersons[sub_812E064()] + a0; + u32 r5 = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1286,7 +1257,7 @@ static void sub_812DB10(void) static void sub_812DB28(void) { sub_812DB64(); - sFameCheckerData->unk_07_2 = sub_812DEF0(); + sFameCheckerData->numUnlockedPersons = sub_812DEF0(); sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); sub_812DFE4(0); } @@ -1329,11 +1300,11 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) task->data[1] = 0; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); sFameCheckerData->unk_04 = sp8; - if (itemIndex != sFameCheckerData->unk_07_2 - 1) + if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { sub_812D174(); sub_812D1A8(itemIndex); - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { if (!sFameCheckerData->unk_23_2) { @@ -1358,7 +1329,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) else { sub_812DDAC(); - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; sFameCheckerData->unk_23_2 = TRUE; @@ -1403,7 +1374,7 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) { if (sp14 < sFameCheckerData->unk_0A) sFameCheckerData->unk_0B++; - else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->unk_07_2 - 1) + else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->unk_0B--; AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); @@ -1472,21 +1443,21 @@ static void sub_812E000(void) 0 }; - if (sFameCheckerData->unk_07_2 > 5) + if (sFameCheckerData->numUnlockedPersons > 5) { sp0.unk_06 = 0; - sp0.unk_08 = sFameCheckerData->unk_07_2 - 5; + sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); } } static void sub_812E048(void) { - if (sFameCheckerData->unk_07_2 > 5) + if (sFameCheckerData->numUnlockedPersons > 5) RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); } -static u16 sub_812E064(void) +static u16 FameCheckerGetCursorY(void) { u16 sp0, sp2; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); From a738e3dca5563355df0b31323a95e017ce9205d6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 08:44:24 -0500 Subject: [PATCH 36/49] More documentation and enums --- include/fame_checker.h | 6 ++++ include/global.berry.h | 2 -- include/global.fieldmap.h | 2 -- include/global.h | 4 +-- src/fame_checker.c | 74 +++++++++++++++++++-------------------- 5 files changed, 45 insertions(+), 43 deletions(-) diff --git a/include/fame_checker.h b/include/fame_checker.h index bc653740e..fad629108 100644 --- a/include/fame_checker.h +++ b/include/fame_checker.h @@ -22,6 +22,12 @@ enum { FAMECHECKER_GIOVANNI }; +enum { + FCPICKSTATE_NO_DRAW, + FCPICKSTATE_SILHOUETTE, + FCPICKSTATE_COLORED +}; + void ResetFameChecker(void); void UseFameChecker(MainCallback savedCallback); diff --git a/include/global.berry.h b/include/global.berry.h index f9e27b186..5c8a43a02 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -1,8 +1,6 @@ #ifndef GUARD_GLOBAL_BERRY_H #define GUARD_GLOBAL_BERRY_H -#include "global.h" - #define BERRY_NAME_COUNT 7 #define BERRY_ITEM_EFFECT_COUNT 18 diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 98077d8d4..ed5054b7d 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,8 +1,6 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H -#include "global.h" - #define NUM_FIELD_OBJECTS 16 enum diff --git a/include/global.h b/include/global.h index 84597dba0..d99f912ae 100644 --- a/include/global.h +++ b/include/global.h @@ -574,8 +574,8 @@ struct QuestLog struct FameCheckerSaveData { - /*3a54*/ u16 unk_0_0:2; - u16 unk_0_2:12; + /*3a54*/ u16 pickState:2; + u16 flavorTextFlags:12; u16 unk_0_E:2; }; diff --git a/src/fame_checker.c b/src/fame_checker.c index 2bff79146..723fffefe 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -39,15 +39,15 @@ struct FameCheckerData { MainCallback savedCallback; - u16 unk_04; + u16 listMenuTopIdx; u8 unk_06; - u8 unk_07_0:1; + u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; u8 scrollIndicatorArrowObjectTaskId; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; + u8 listMenuCurIdx; + u8 listMenuTopIdx2; + u8 listMenuDrawnSelIdx; u8 unlockedPersons[17]; u8 spriteIds[6]; u8 unk_23_0:1; @@ -473,9 +473,9 @@ void UseFameChecker(MainCallback savedCallback) SetVBlankCallback(NULL); sFameCheckerData = AllocZeroed(sizeof(struct FameCheckerData)); sFameCheckerData->savedCallback = savedCallback; - sFameCheckerData->unk_09 = 0; - sFameCheckerData->unk_0A = 0; - sFameCheckerData->unk_0B = 0; + sFameCheckerData->listMenuCurIdx = 0; + sFameCheckerData->listMenuTopIdx2 = 0; + sFameCheckerData->listMenuDrawnSelIdx = 0; sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); @@ -550,7 +550,7 @@ static void sub_812C3F8(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); SetVBlankCallback(sub_812C380); - sFameCheckerData->unk_04 = 0; + sFameCheckerData->listMenuTopIdx = 0; sub_812E000(); sub_812E178(1, 4); CreateTask(sub_812C664, 0x08); @@ -617,7 +617,7 @@ static void sub_812C694(u8 taskId) if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); } - else if (sFameCheckerData->unk_07_0) + else if (sFameCheckerData->personHasUnlockedPanels) { PlaySE(SE_SELECT); task->data[0] = sub_812D724(task->data[1]); @@ -693,7 +693,7 @@ static void sub_812CA1C(u8 taskId) ChangeBgX(1, 0x000, 0); if (gSprites[task->data[2]].data[0] == 0) { - if (sFameCheckerData->unk_07_0) + if (sFameCheckerData->personHasUnlockedPanels) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); @@ -797,7 +797,7 @@ static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = FameCheckerGetCursorY(); - if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) { sub_812CE9C(); sub_812C990(); @@ -949,7 +949,7 @@ static bool8 sub_812D1A8(u8 a0) u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> r6) & 1) { sFameCheckerData->spriteIds[r6] = sub_805EB44( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], @@ -970,7 +970,7 @@ static bool8 sub_812D1A8(u8 a0) } if (r5 == TRUE) { - sFameCheckerData->unk_07_0 = TRUE; + sFameCheckerData->personHasUnlockedPanels = TRUE; if (sFameCheckerData->inPickMode) sub_812D0F4(TRUE); else @@ -978,7 +978,7 @@ static bool8 sub_812D1A8(u8 a0) } else { - sFameCheckerData->unk_07_0 = FALSE; + sFameCheckerData->personHasUnlockedPanels = FALSE; sub_812D0F4(TRUE); } return r5; @@ -989,11 +989,11 @@ void ResetFameChecker(void) u8 r4; for (r4 = 0; r4 < 16; r4++) { - gSaveBlock1Ptr->fameChecker[r4].unk_0_0 = 0; - gSaveBlock1Ptr->fameChecker[r4].unk_0_2 = 0; + gSaveBlock1Ptr->fameChecker[r4].pickState = FCPICKSTATE_NO_DRAW; + gSaveBlock1Ptr->fameChecker[r4].flavorTextFlags = 0; gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; } - gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; + gSaveBlock1Ptr->fameChecker[0].pickState = FCPICKSTATE_COLORED; } static void sub_812D388(void) @@ -1001,10 +1001,10 @@ static void sub_812D388(void) u8 r5, r4; for (r5 = 0; r5 < 16; r5++) { - gSaveBlock1Ptr->fameChecker[r5].unk_0_0 = 2; + gSaveBlock1Ptr->fameChecker[r5].pickState = FCPICKSTATE_COLORED; for (r4 = 0; r4 < 6; r4++) { - gSaveBlock1Ptr->fameChecker[r5].unk_0_2 |= (1 << r4); + gSaveBlock1Ptr->fameChecker[r5].flavorTextFlags |= (1 << r4); } } } @@ -1070,7 +1070,7 @@ static void sub_812D5EC(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) { - gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_2 |= (1 << gSpecialVar_0x8005); + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].flavorTextFlags |= (1 << gSpecialVar_0x8005); gSpecialVar_0x8005 = 1; sub_812D650(); } @@ -1082,9 +1082,9 @@ static void sub_812D650(void) { if (gSpecialVar_0x8005 == 0) return; - if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 == 2) + if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED) return; - gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 = gSpecialVar_0x8005; + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState = gSpecialVar_0x8005; } } @@ -1094,7 +1094,7 @@ static bool8 sub_812D6B4(void) u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; for (r2 = 0; r2 < 6; r2++) { - if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) + if (!((gSaveBlock1Ptr->fameChecker[r1].flavorTextFlags >> r2) & 1)) return FALSE; } return TRUE; @@ -1212,7 +1212,7 @@ static u8 sub_812D888(u8 a0) r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); } gSprites[r4].callback = sub_812D840; - if (gSaveBlock1Ptr->fameChecker[a0].unk_0_0 == 1) + if (gSaveBlock1Ptr->fameChecker[a0].pickState == FCPICKSTATE_SILHOUETTE) LoadPalette(gUnknown_845F5C0, 0x160, 0x20); return r4; } @@ -1290,7 +1290,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u8 taskId; u16 r9; sLastMenuIdx = 0; - r9 = sFameCheckerData->unk_0A + sFameCheckerData->unk_0B; + r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; sub_812DDF0(itemIndex, onInit); taskId = FindTaskIdByFunc(sub_812C694); if (taskId != 0xFF) @@ -1299,7 +1299,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) PlaySE(SE_SELECT); task->data[1] = 0; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); - sFameCheckerData->unk_04 = sp8; + sFameCheckerData->listMenuTopIdx = sp8; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { sub_812D174(); @@ -1372,16 +1372,16 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < sFameCheckerData->unk_0A) - sFameCheckerData->unk_0B++; - else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->numUnlockedPersons - 1) - sFameCheckerData->unk_0B--; - AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); + if (sp14 < sFameCheckerData->listMenuTopIdx2) + sFameCheckerData->listMenuDrawnSelIdx++; + else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) + sFameCheckerData->listMenuDrawnSelIdx--; + AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } - sFameCheckerData->unk_09 = itemIndex; - sFameCheckerData->unk_0B = sp16; - sFameCheckerData->unk_0A = sp14; + sFameCheckerData->listMenuCurIdx = itemIndex; + sFameCheckerData->listMenuDrawnSelIdx = sp16; + sFameCheckerData->listMenuTopIdx2 = sp14; } static u8 sub_812DEF0(void) @@ -1392,7 +1392,7 @@ static u8 sub_812DEF0(void) for (r6 = 0; r6 < 16; r6++) { u8 r5 = sub_812D0C0(r6); - if (gSaveBlock1Ptr->fameChecker[r5].unk_0_0 != 0) + if (gSaveBlock1Ptr->fameChecker[r5].pickState != FCPICKSTATE_NO_DRAW) { if (gUnknown_845F5EA[r5] < 0xFE00) { @@ -1447,7 +1447,7 @@ static void sub_812E000(void) { sp0.unk_06 = 0; sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); + sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); } } From d2bd51c49f0654a7cb37a6aeb0f50b8b2d2470b1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 16:50:10 -0500 Subject: [PATCH 37/49] Rename most assets and functions in fame_checker --- asm/berry_pouch.s | 4 +- asm/help_system.s | 4 +- asm/item_menu.s | 8 +- asm/item_pc.s | 8 +- asm/learn_move.s | 6 +- asm/list_menu.s | 4 +- asm/mailbox_pc.s | 4 +- asm/menu.s | 8 +- asm/party_menu.s | 4 +- asm/pokemon_summary_screen.s | 4 +- asm/shop.s | 8 +- asm/tm_case.s | 4 +- asm/unk_81507FC.s | 8 +- data/data_83FECCC.s | 33 +- data/text/fame_checker.inc | 640 ++++++++++---------- include/event_scripts.h | 640 ++++++++++---------- include/fame_checker.h | 13 +- include/global.h | 4 +- include/new_menu_helpers.h | 2 +- src/fame_checker.c | 1089 +++++++++++++++++----------------- 20 files changed, 1242 insertions(+), 1253 deletions(-) diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index 323921f8b..304efdd74 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -948,7 +948,7 @@ sub_813D4D0: @ 813D4D0 bl CopyWindowToVram b _0813D52A _0813D514: - ldr r2, _0813D534 @ =gUnknown_841623B + ldr r2, _0813D534 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -964,7 +964,7 @@ _0813D52A: pop {r0} bx r0 .align 2, 0 -_0813D534: .4byte gUnknown_841623B +_0813D534: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_813D4D0 thumb_func_start sub_813D538 diff --git a/asm/help_system.s b/asm/help_system.s index b0d5c5f34..7026c65d5 100644 --- a/asm/help_system.s +++ b/asm/help_system.s @@ -2040,14 +2040,14 @@ sub_813C828: @ 813C828 adds r2, r3 lsls r2, 24 lsrs r2, 24 - ldr r0, _0813C85C @ =gUnknown_841623B + ldr r0, _0813C85C @ =gFameCheckerText_ListMenuCursor bl sub_813C4CC pop {r4} pop {r0} bx r0 .align 2, 0 _0813C858: .4byte gUnknown_203F190 -_0813C85C: .4byte gUnknown_841623B +_0813C85C: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_813C828 thumb_func_start sub_813C860 diff --git a/asm/item_menu.s b/asm/item_menu.s index 16d1cfce2..8650e912d 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -871,7 +871,7 @@ _0810848C: bl StringCopy ldr r0, [r5] adds r0, r4 - ldr r1, _08108550 @ =gUnknown_84161C1 + ldr r1, _08108550 @ =gFameCheckerText_Cancel bl StringAppend ldr r0, _08108548 @ =gUnknown_203AD18 ldr r2, [r0] @@ -951,7 +951,7 @@ _08108540: .4byte gUnknown_203AD10 _08108544: .4byte gUnknown_203AD1C _08108548: .4byte gUnknown_203AD18 _0810854C: .4byte gUnknown_8452F60 -_08108550: .4byte gUnknown_84161C1 +_08108550: .4byte gFameCheckerText_Cancel _08108554: .4byte gUnknown_3005E70 _08108558: .4byte sub_81085A4 _0810855C: .4byte sub_8108654 @@ -1257,7 +1257,7 @@ bag_menu_print_cursor: @ 810878C bl FillWindowPixelRect b _081087DE _081087C8: - ldr r2, _081087E8 @ =gUnknown_841623B + ldr r2, _081087E8 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -1273,7 +1273,7 @@ _081087DE: pop {r0} bx r0 .align 2, 0 -_081087E8: .4byte gUnknown_841623B +_081087E8: .4byte gFameCheckerText_ListMenuCursor thumb_func_end bag_menu_print_cursor thumb_func_start sub_81087EC diff --git a/asm/item_pc.s b/asm/item_pc.s index 8e71d9dc3..b222b9ca2 100644 --- a/asm/item_pc.s +++ b/asm/item_pc.s @@ -589,7 +589,7 @@ _0810D8A4: ldr r3, [r0] lsls r0, r4, 3 adds r0, r3 - ldr r1, _0810D944 @ =gUnknown_84161C1 + ldr r1, _0810D944 @ =gFameCheckerText_Cancel str r1, [r0] movs r1, 0x2 negs r1, r1 @@ -657,7 +657,7 @@ _0810D8A4: _0810D938: .4byte gSaveBlock1Ptr _0810D93C: .4byte gUnknown_203ADC4 _0810D940: .4byte gUnknown_203ADBC -_0810D944: .4byte gUnknown_84161C1 +_0810D944: .4byte gFameCheckerText_Cancel _0810D948: .4byte gUnknown_3005E70 _0810D94C: .4byte sub_810D954 _0810D950: .4byte sub_810DA20 @@ -879,7 +879,7 @@ sub_810DAD4: @ 810DAD4 bl FillWindowPixelRect b _0810DB26 _0810DB10: - ldr r2, _0810DB30 @ =gUnknown_841623B + ldr r2, _0810DB30 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -895,7 +895,7 @@ _0810DB26: pop {r0} bx r0 .align 2, 0 -_0810DB30: .4byte gUnknown_841623B +_0810DB30: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_810DAD4 thumb_func_start sub_810DB34 diff --git a/asm/learn_move.s b/asm/learn_move.s index f3f472847..fec6928d3 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -1331,7 +1331,7 @@ _080E513C: lsls r7, 1 adds r1, r7 adds r0, r1 - ldr r1, _080E51F8 @ =gUnknown_84161C1 + ldr r1, _080E51F8 @ =gFameCheckerText_Cancel bl StringCopy ldr r1, [r4] ldrb r0, [r1, 0x1A] @@ -1367,7 +1367,7 @@ _080E51AA: adds r0, r2, 0 adds r0, 0x20 adds r0, r3 - ldr r1, _080E51F8 @ =gUnknown_84161C1 + ldr r1, _080E51F8 @ =gFameCheckerText_Cancel str r1, [r0] adds r2, 0x24 adds r2, r3 @@ -1396,7 +1396,7 @@ _080E51E8: .4byte gUnknown_203AAB4 _080E51EC: .4byte gPlayerParty _080E51F0: .4byte gMoveNames _080E51F4: .4byte gStringVar1 -_080E51F8: .4byte gUnknown_84161C1 +_080E51F8: .4byte gFameCheckerText_Cancel _080E51FC: .4byte gUnknown_3005E70 _080E5200: .4byte gUnknown_83FFA94 thumb_func_end sub_80E50CC diff --git a/asm/list_menu.s b/asm/list_menu.s index 760c55311..3475b0914 100644 --- a/asm/list_menu.s +++ b/asm/list_menu.s @@ -969,14 +969,14 @@ _081075DA: beq _08107640 b _08107680 _081075E4: - ldr r1, _081075F4 @ =gUnknown_841623B + ldr r1, _081075F4 @ =gFameCheckerText_ListMenuCursor adds r0, r6, 0 mov r2, r8 adds r3, r7, 0 bl ListMenuPrint b _08107680 .align 2, 0 -_081075F4: .4byte gUnknown_841623B +_081075F4: .4byte gFameCheckerText_ListMenuCursor _081075F8: ldrb r0, [r6, 0x1E] cmp r0, 0xFF diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s index d2933aa8b..d2cc06070 100644 --- a/asm/mailbox_pc.s +++ b/asm/mailbox_pc.s @@ -174,7 +174,7 @@ sub_810EC98: @ 810EC98 adds r6, r0, 0 movs r3, 0 ldr r7, _0810ED50 @ =gUnknown_203ADE0 - ldr r0, _0810ED54 @ =gUnknown_84161C1 + ldr r0, _0810ED54 @ =gFameCheckerText_Cancel mov r12, r0 ldr r5, _0810ED58 @ =gUnknown_3005E70 ldr r1, _0810ED5C @ =gUnknown_203ADDC @@ -262,7 +262,7 @@ _0810ECCE: bx r1 .align 2, 0 _0810ED50: .4byte gUnknown_203ADE0 -_0810ED54: .4byte gUnknown_84161C1 +_0810ED54: .4byte gFameCheckerText_Cancel _0810ED58: .4byte gUnknown_3005E70 _0810ED5C: .4byte gUnknown_203ADDC _0810ED60: .4byte gUnknown_8454003 diff --git a/asm/menu.s b/asm/menu.s index 8bea8e86f..e593eef1c 100644 --- a/asm/menu.s +++ b/asm/menu.s @@ -1391,7 +1391,7 @@ RedrawMenuCursor: @ 810F874 bl FillWindowPixelRect ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] - ldr r2, _0810F900 @ =gUnknown_841623B + ldr r2, _0810F900 @ =gFameCheckerText_ListMenuCursor ldrb r3, [r5] ldrb r4, [r5, 0x8] mov r6, r8 @@ -1415,7 +1415,7 @@ RedrawMenuCursor: @ 810F874 bx r0 .align 2, 0 _0810F8FC: .4byte gUnknown_203ADE4 -_0810F900: .4byte gUnknown_841623B +_0810F900: .4byte gFameCheckerText_ListMenuCursor thumb_func_end RedrawMenuCursor thumb_func_start MoveMenuCursor @@ -2893,7 +2893,7 @@ sub_811037C: @ 811037C lsrs r3, 24 ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] - ldr r2, _0811044C @ =gUnknown_841623B + ldr r2, _0811044C @ =gFameCheckerText_ListMenuCursor str r3, [sp] movs r3, 0 str r3, [sp, 0x4] @@ -2910,7 +2910,7 @@ sub_811037C: @ 811037C bx r0 .align 2, 0 _08110448: .4byte gUnknown_203ADE4 -_0811044C: .4byte gUnknown_841623B +_0811044C: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_811037C thumb_func_start sub_8110450 diff --git a/asm/party_menu.s b/asm/party_menu.s index e58f3f0d2..55dd4059c 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -5118,7 +5118,7 @@ _08121194: ands r0, r1 cmp r0, 0xA beq _081211F0 - ldr r4, _081211E8 @ =gUnknown_84161C1 + ldr r4, _081211E8 @ =gFameCheckerText_Cancel movs r0, 0 adds r1, r4, 0 movs r2, 0 @@ -5146,7 +5146,7 @@ _08121194: .align 2, 0 _081211E0: .4byte gUnknown_845A108 _081211E4: .4byte gUnknown_203B0A0 -_081211E8: .4byte gUnknown_84161C1 +_081211E8: .4byte gFameCheckerText_Cancel _081211EC: .4byte gUnknown_8459FFC _081211F0: ldr r4, _08121240 @ =gUnknown_84161C8 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 073727d7f..05256c776 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -5401,7 +5401,7 @@ _081372B0: movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] - ldr r1, _081372E0 @ =gUnknown_84161C1 + ldr r1, _081372E0 @ =gFameCheckerText_Cancel str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x3 @@ -5415,7 +5415,7 @@ _081372CE: .align 2, 0 _081372D8: .4byte 0x00003003 _081372DC: .4byte gUnknown_8463EF0 -_081372E0: .4byte gUnknown_84161C1 +_081372E0: .4byte gFameCheckerText_Cancel thumb_func_end sub_8137270 thumb_func_start sub_81372E4 diff --git a/asm/shop.s b/asm/shop.s index a732c8656..263e5b3c5 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -892,7 +892,7 @@ _0809B1F2: muls r4, r0 ldr r0, [r5] adds r0, r4 - ldr r1, _0809B2CC @ =gUnknown_84161C1 + ldr r1, _0809B2CC @ =gFameCheckerText_Cancel bl StringCopy ldr r0, _0809B2D0 @ =gUnknown_2039964 ldr r2, [r0] @@ -990,7 +990,7 @@ _0809B2BC: b _0809B2E6 .align 2, 0 _0809B2C8: .4byte gUnknown_2039968 -_0809B2CC: .4byte gUnknown_84161C1 +_0809B2CC: .4byte gFameCheckerText_Cancel _0809B2D0: .4byte gUnknown_2039964 _0809B2D4: .4byte gUnknown_3005E70 _0809B2D8: .4byte gUnknown_2039934 @@ -1378,7 +1378,7 @@ sub_809B59C: @ 809B59C bl CopyWindowToVram b _0809B5F8 _0809B5E0: - ldr r2, _0809B600 @ =gUnknown_841623B + ldr r2, _0809B600 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -1395,7 +1395,7 @@ _0809B5F8: pop {r0} bx r0 .align 2, 0 -_0809B600: .4byte gUnknown_841623B +_0809B600: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_809B59C thumb_func_start sub_809B604 diff --git a/asm/tm_case.s b/asm/tm_case.s index d3bf0cbf2..7ab09953f 100644 --- a/asm/tm_case.s +++ b/asm/tm_case.s @@ -963,7 +963,7 @@ sub_8131FB0: @ 8131FB0 bl CopyWindowToVram b _0813200A _08131FF4: - ldr r2, _08132014 @ =gUnknown_841623B + ldr r2, _08132014 @ =gFameCheckerText_ListMenuCursor str r5, [sp] movs r0, 0 str r0, [sp, 0x4] @@ -979,7 +979,7 @@ _0813200A: pop {r0} bx r0 .align 2, 0 -_08132014: .4byte gUnknown_841623B +_08132014: .4byte gFameCheckerText_ListMenuCursor thumb_func_end sub_8131FB0 thumb_func_start sub_8132018 diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s index 205bb7a85..40d5a13b0 100644 --- a/asm/unk_81507FC.s +++ b/asm/unk_81507FC.s @@ -10348,7 +10348,7 @@ _0815579C: ldr r0, [r3] adds r0, r7 ldrb r0, [r0] - ldr r2, _08155860 @ =gUnknown_841623B + ldr r2, _08155860 @ =gFameCheckerText_ListMenuCursor mov r1, r9 str r1, [sp] str r5, [sp, 0x4] @@ -10379,7 +10379,7 @@ _08155850: .4byte 0x00003009 _08155854: .4byte gUnknown_841CDD7 _08155858: .4byte gUnknown_8417938 _0815585C: .4byte gUnknown_841793C -_08155860: .4byte gUnknown_841623B +_08155860: .4byte gFameCheckerText_ListMenuCursor _08155864: .4byte 0x00003014 _08155868: bl IsDma3ManagerBusyWithBgCopy @@ -10453,7 +10453,7 @@ _081558B0: ldr r0, [r1] adds r0, r4 ldrb r1, [r0] - ldr r2, _0815591C @ =gUnknown_841623B + ldr r2, _0815591C @ =gFameCheckerText_ListMenuCursor cmp r7, 0x1 bne _08155920 mov r3, r8 @@ -10464,7 +10464,7 @@ _0815590C: .4byte 0x00003020 _08155910: .4byte 0x00003009 _08155914: .4byte gUnknown_8417938 _08155918: .4byte gUnknown_841793C -_0815591C: .4byte gUnknown_841623B +_0815591C: .4byte gFameCheckerText_ListMenuCursor _08155920: str r6, [sp] _08155922: diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 402cd6704..2e5c0e6c7 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -721,8 +721,8 @@ gUnknown_8416188:: @ 8416188 gUnknown_8416190:: @ 8416190 .incbin "baserom.gba", 0x416190, 0x31 -gUnknown_84161C1:: @ 84161C1 - .incbin "baserom.gba", 0x4161C1, 0x7 +gFameCheckerText_Cancel:: @ 84161C1 + .string "CANCEL$" gUnknown_84161C8:: @ 84161C8 .incbin "baserom.gba", 0x4161C8, 0x5 @@ -766,8 +766,8 @@ gUnknown_8416226:: @ 8416226 gUnknown_8416238:: @ 8416238 .incbin "baserom.gba", 0x416238, 0x3 -gUnknown_841623B:: @ 841623B - .incbin "baserom.gba", 0x41623B, 0x2 +gFameCheckerText_ListMenuCursor:: @ 841623B + .string "▶$" gUnknown_841623D:: @ 841623D .incbin "baserom.gba", 0x41623D, 0x25 @@ -1237,11 +1237,14 @@ gUnknown_84181B6:: @ 84181B6 gUnknown_84181BE:: @ 84181BE .incbin "baserom.gba", 0x4181BE, 0x5 -gUnknown_84181C3:: @ 84181C3 - .incbin "baserom.gba", 0x4181C3, 0x21 +gFameCheckerText_FameCheckerWillBeClosed:: @ 84181C3 + .string "The FAME CHECKER will be closed.$" -gUnknown_84181E4:: @ 84181E4 - .incbin "baserom.gba", 0x4181E4, 0x4AC +gFameCheckerText_ClearTextbox:: @ 84181E4 + .string "\n $" + +gUnknown_8418204:: @ 8418204 + .incbin "baserom.gba", 0x00418204, 0x48c gUnknown_8418690:: @ 8418690 .incbin "baserom.gba", 0x418690, 0x20 @@ -2090,25 +2093,25 @@ gUnknown_841E572:: @ 841E572 gUnknown_841E58D:: @ 841E58D .incbin "baserom.gba", 0x41E58D, 0x17 -gUnknown_841E5A4:: @ 841E5A4 +gFameCheckerText_MainScreenUI:: @ 841E5A4 .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" -gUnknown_841E5B9:: @ 841E5B9 +gFameCheckerText_PickScreenUI:: @ 841E5B9 .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -gUnknown_841E5D2:: @ 841E5D2 +gFameCheckerText_FlavorTextUI:: @ 841E5D2 .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" -gUnknown_841E5E9:: @ 841E5E9 +gFameCheckerOakName:: @ 841E5E9 .string "OAK$" -gUnknown_841E5ED:: @ 841E5ED +gFameCheckerDaisyName:: @ 841E5ED .string "DAISY$" -gUnknown_841E5F3:: @ 841E5F3 +gFameCheckerBillName:: @ 841E5F3 .string "BILL$" -gUnknown_841E5F8:: @ 841E5F8 +gFameCheckerMrFujiName:: @ 841E5F8 .string "FUJI$" gUnknown_841E5FD:: @ 841E5FD diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc index 975960e4e..d73c05dbd 100644 --- a/data/text/fame_checker.inc +++ b/data/text/fame_checker.inc @@ -1,26 +1,26 @@ -gUnknown_81AD106:: @ 0x81AD106 +gFameCheckerFlavorText_ProfOak0:: @ 0x81AD106 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}OAK POKéMON RESEARCH LAB$" -gUnknown_81AD145:: @ 0x81AD145 +gFameCheckerFlavorText_ProfOak1:: @ 0x81AD145 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}To make a complete guide on all\n" .string "the POKéMON in the world…\p" .string "That was my dream!$" -gUnknown_81AD1BB:: @ 0x81AD1BB +gFameCheckerFlavorText_ProfOak2:: @ 0x81AD1BB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}PROF. OAK may not look like much,\n" .string "but he’s the authority on POKéMON.\p" .string "Many POKéMON TRAINERS hold him in\n" .string "high regard.$" -gUnknown_81AD258:: @ 0x81AD258 +gFameCheckerFlavorText_ProfOak3:: @ 0x81AD258 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{COLOR RED}{SHADOW GREEN}PROF. OAK reportedly lives with his\n" .string "grandchildren, DAISY and {RIVAL}.$" -gUnknown_81AD2B9:: @ 0x81AD2B9 +gFameCheckerFlavorText_ProfOak4:: @ 0x81AD2B9 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" .string "interest in you, child.\p" @@ -29,57 +29,57 @@ gUnknown_81AD2B9:: @ 0x81AD2B9 .string "But that was decades ago.\n" .string "He’s a shadow of his former self.$" -gUnknown_81AD377:: @ 0x81AD377 +gFameCheckerFlavorText_ProfOak5:: @ 0x81AD377 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}PROF. OAK is going to have his own\n" .string "radio show soon.\p" .string "The program will be called PROF.\n" .string "OAK’S POKéMON SEMINAR.$" -gUnknown_81AD40C:: @ 0x81AD40C +gFameCheckerFlavorText_Daisy0:: @ 0x81AD40C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}If you show DAISY your POKéMON,\n" .string "she can tell how much it likes you.\p" .string "Occasionally, she will even groom\n" .string "a POKéMON for you.$" -gUnknown_81AD4AE:: @ 0x81AD4AE +gFameCheckerFlavorText_Daisy1:: @ 0x81AD4AE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}But the person who is most liked by\n" .string "POKéMON is DAISY, I think.$" -gUnknown_81AD516:: @ 0x81AD516 +gFameCheckerFlavorText_Daisy2:: @ 0x81AD516 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}She was gently grooming POKéMON…\n" .string "She was a little angel.\p" .string "That little girl’s name…\n" .string "I think it was DAISY.$" -gUnknown_81AD5A7:: @ 0x81AD5A7 +gFameCheckerFlavorText_Daisy3:: @ 0x81AD5A7 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{COLOR RED}{SHADOW GREEN}PROF. OAK reportedly lives with his\n" .string "grandchildren, DAISY and {RIVAL}.$" -gUnknown_81AD608:: @ 0x81AD608 +gFameCheckerFlavorText_Daisy4:: @ 0x81AD608 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}A girl from PALLET TOWN, DAISY,\n" .string "she enjoys TEA every day.\p" .string "She visits the CELADON DEPT. STORE\n" .string "to buy some TEA.$" -gUnknown_81AD69F:: @ 0x81AD69F +gFameCheckerFlavorText_Daisy5:: @ 0x81AD69F .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}The Spring POKéMON CONTEST’s\n" .string "Grand Champion is DAISY OAK of\l" .string "PALLET TOWN!$" -gUnknown_81AD705:: @ 0x81AD705 +gFameCheckerFlavorText_Brock0:: @ 0x81AD705 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}PEWTER CITY POKéMON GYM\n" .string "LEADER: BROCK\l" .string "The Rock-Solid POKéMON TRAINER!$" -gUnknown_81AD771:: @ 0x81AD771 +gFameCheckerFlavorText_Brock1:: @ 0x81AD771 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My rock-hard willpower is evident\n" .string "in even my POKéMON.\p" @@ -88,7 +88,7 @@ gUnknown_81AD771:: @ 0x81AD771 .string "That’s right - my POKéMON are all\n" .string "the ROCK type!$" -gUnknown_81AD840:: @ 0x81AD840 +gFameCheckerFlavorText_Brock2:: @ 0x81AD840 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There aren’t many serious POKéMON\n" .string "TRAINERS here.\p" @@ -97,163 +97,163 @@ gUnknown_81AD840:: @ 0x81AD840 .string "But PEWTER GYM’s BROCK isn’t like\n" .string "that, not one bit.$" -gUnknown_81AD908:: @ 0x81AD908 +gFameCheckerFlavorText_Brock3:: @ 0x81AD908 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BROCK is cool. He’s not just tough.\n" .string "People like and respect him.\p" .string "I want to become a GYM LEADER\n" .string "like him.$" -gUnknown_81AD99A:: @ 0x81AD99A +gFameCheckerFlavorText_Brock4:: @ 0x81AD99A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hi, I’m excavating for fossils here\n" .string "under MT. MOON.\p" .string "Sometimes, BROCK of PEWTER GYM\n" .string "lends me a hand.$" -gUnknown_81ADA27:: @ 0x81ADA27 +gFameCheckerFlavorText_Brock5:: @ 0x81ADA27 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{COLOR RED}{SHADOW GREEN}BROCK rarely laughs, but is said to\n" .string "be unable to stop if he starts.$" -gUnknown_81ADA91:: @ 0x81ADA91 +gFameCheckerFlavorText_Misty0:: @ 0x81ADA91 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}CERULEAN CITY POKéMON GYM\n" .string "LEADER: MISTY\l" .string "The Tomboyish Mermaid!$" -gUnknown_81ADAF6:: @ 0x81ADAF6 +gFameCheckerFlavorText_Misty1:: @ 0x81ADAF6 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}My policy is an all-out offensive\n" .string "with WATER-type POKéMON!$" -gUnknown_81ADB5A:: @ 0x81ADB5A +gFameCheckerFlavorText_Misty2:: @ 0x81ADB5A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}MISTY is a TRAINER who’s going to\n" .string "keep improving.\p" .string "She won’t lose to someone like you!$" -gUnknown_81ADBD9:: @ 0x81ADBD9 +gFameCheckerFlavorText_Misty3:: @ 0x81ADBD9 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Strong TRAINERS and WATER POKéMON\n" .string "are common sights in these parts.\p" .string "They say that MISTY of the\n" .string "CERULEAN GYM trains here.$" -gUnknown_81ADC72:: @ 0x81ADC72 +gFameCheckerFlavorText_Misty4:: @ 0x81ADC72 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}This cape is a famous date spot.\p" .string "MISTY, the GYM LEADER, has high\n" .string "hopes about this place.$" -gUnknown_81ADCEB:: @ 0x81ADCEB +gFameCheckerFlavorText_Misty5:: @ 0x81ADCEB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}MISTY is said to worship LORELEI\n" .string "of the ELITE FOUR.$" -gUnknown_81ADD3C:: @ 0x81ADD3C +gFameCheckerFlavorText_LtSurge0:: @ 0x81ADD3C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}VERMILION CITY POKéMON GYM\n" .string "LEADER: LT. SURGE\l" .string "The Lightning American!$" -gUnknown_81ADDA7:: @ 0x81ADDA7 +gFameCheckerFlavorText_LtSurge1:: @ 0x81ADDA7 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I tell you, kid, electric POKéMON\n" .string "saved me during the war!$" -gUnknown_81ADE0B:: @ 0x81ADE0B +gFameCheckerFlavorText_LtSurge2:: @ 0x81ADE0B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}When I was in the Army, LT. SURGE\n" .string "was my strict CO.\p" .string "He was a hard taskmaster.$" -gUnknown_81ADE82:: @ 0x81ADE82 +gFameCheckerFlavorText_LtSurge3:: @ 0x81ADE82 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}LT. SURGE was always famous for\n" .string "his cautious nature in the Army.$" -gUnknown_81ADEEC:: @ 0x81ADEEC +gFameCheckerFlavorText_LtSurge4:: @ 0x81ADEEC .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}LT. SURGE installed the traps in\n" .string "the GYM himself.\p" .string "He set up double locks everywhere.$" -gUnknown_81ADF6A:: @ 0x81ADF6A +gFameCheckerFlavorText_LtSurge5:: @ 0x81ADF6A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}LT. SURGE is rumored to have been\n" .string "a pilot while home in America.\p" .string "He used the electricity generated\n" .string "by POKéMON to power his plane.$" -gUnknown_81AE009:: @ 0x81AE009 +gFameCheckerFlavorText_Erika0:: @ 0x81AE009 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}CELADON CITY POKéMON GYM\n" .string "LEADER: ERIKA\l" .string "The Nature-Loving Princess!$" -gUnknown_81AE072:: @ 0x81AE072 +gFameCheckerFlavorText_Erika1:: @ 0x81AE072 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am a student of the art of\n" .string "flower arranging.\p" .string "My POKéMON are solely of the\n" .string "GRASS type.$" -gUnknown_81AE0F3:: @ 0x81AE0F3 +gFameCheckerFlavorText_Erika2:: @ 0x81AE0F3 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Our LEADER ERIKA might be quiet,\n" .string "but she’s famous around here.$" -gUnknown_81AE15B:: @ 0x81AE15B +gFameCheckerFlavorText_Erika3:: @ 0x81AE15B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}We only use GRASS-type POKéMON at\n" .string "our GYM.\p" .string "Why? We also use them for making\n" .string "flower arrangements!$" -gUnknown_81AE1E5:: @ 0x81AE1E5 +gFameCheckerFlavorText_Erika4:: @ 0x81AE1E5 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I would never collect POKéMON if\n" .string "they were unattractive.$" -gUnknown_81AE247:: @ 0x81AE247 +gFameCheckerFlavorText_Erika5:: @ 0x81AE247 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}Rumor has it that if you peek into\n" .string "CELADON GYM, you can often\l" .string "see ERIKA snoozing.$" -gUnknown_81AE2B6:: @ 0x81AE2B6 +gFameCheckerFlavorText_Koga0:: @ 0x81AE2B6 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}FUCHSIA CITY POKéMON GYM\n" .string "LEADER: KOGA\l" .string "The Poisonous Ninja Master$" -gUnknown_81AE31D:: @ 0x81AE31D +gFameCheckerFlavorText_Koga1:: @ 0x81AE31D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Despair to the creeping horror of\n" .string "POISON-type POKéMON!$" -gUnknown_81AE37D:: @ 0x81AE37D +gFameCheckerFlavorText_Koga2:: @ 0x81AE37D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even though I’ve lost, I will keep\n" .string "training according to the teachings\l" .string "of KOGA, my ninja master.$" -gUnknown_81AE407:: @ 0x81AE407 +gFameCheckerFlavorText_Koga3:: @ 0x81AE407 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}My father is the GYM LEADER of\n" .string "this town.\p" .string "I’m training to use POISON POKéMON\n" .string "as well as my father.$" -gUnknown_81AE48D:: @ 0x81AE48D +gFameCheckerFlavorText_Koga4:: @ 0x81AE48D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}KOGA is said to have a thorough\n" .string "knowledge of medicine.\p" .string "He even concocts medicine to nurse\n" .string "his POKéMON to health.$" -gUnknown_81AE51B:: @ 0x81AE51B +gFameCheckerFlavorText_Koga5:: @ 0x81AE51B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The SAFARI ZONE’s huge, wouldn’t\n" .string "you say?\p" @@ -262,55 +262,55 @@ gUnknown_81AE51B:: @ 0x81AE51B .string "Thanks to him, we can play here\n" .string "knowing that we’re safe.$" -gUnknown_81AE5E8:: @ 0x81AE5E8 +gFameCheckerFlavorText_Sabrina0:: @ 0x81AE5E8 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}SAFFRON CITY POKéMON GYM\n" .string "LEADER: SABRINA\l" .string "The Master of PSYCHIC POKéMON!$" -gUnknown_81AE656:: @ 0x81AE656 +gFameCheckerFlavorText_Sabrina1:: @ 0x81AE656 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You know about a girl GYM LEADER\n" .string "in SAFFRON CITY?\p" .string "She uses PSYCHIC-type POKéMON,\n" .string "right?$" -gUnknown_81AE6D7:: @ 0x81AE6D7 +gFameCheckerFlavorText_Sabrina2:: @ 0x81AE6D7 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I have had psychic powers since\n" .string "I was a child.\p" .string "It started when a spoon I\n" .string "carelessly tossed, bent.$" -gUnknown_81AE762:: @ 0x81AE762 +gFameCheckerFlavorText_Sabrina3:: @ 0x81AE762 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I dislike battling, but if you wish,\n" .string "I will show you my powers!$" -gUnknown_81AE7CB:: @ 0x81AE7CB +gFameCheckerFlavorText_Sabrina4:: @ 0x81AE7CB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}People say that SABRINA can\n" .string "communicate with her POKéMON\l" .string "during battle without speaking.$" -gUnknown_81AE841:: @ 0x81AE841 +gFameCheckerFlavorText_Sabrina5:: @ 0x81AE841 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}SABRINA just wiped out the KARATE\n" .string "MASTER next door.$" -gUnknown_81AE89E:: @ 0x81AE89E +gFameCheckerFlavorText_Blaine0:: @ 0x81AE89E .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{COLOR RED}{SHADOW GREEN}CINNABAR ISLAND POKéMON GYM\n" .string "LEADER: BLAINE\l" .string "The Hotheaded Quiz Master!$" -gUnknown_81AE90A:: @ 0x81AE90A +gFameCheckerFlavorText_Blaine1:: @ 0x81AE90A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fiery POKéMON are all rough\n" .string "and ready with intense heat!\p" .string "They incinerate all challengers!$" -gUnknown_81AE990:: @ 0x81AE990 +gFameCheckerFlavorText_Blaine2:: @ 0x81AE990 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Our LEADER, BLAINE, became lost\n" .string "in the mountains but good.\p" @@ -319,56 +319,56 @@ gUnknown_81AE990:: @ 0x81AE990 .string "Its light allowed BLAINE to find\n" .string "his way down safely.$" -gUnknown_81AEA59:: @ 0x81AEA59 +gFameCheckerFlavorText_Blaine3:: @ 0x81AEA59 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}CINNABAR GYM’s BLAINE is quite the\n" .string "odd fellow.\p" .string "He’s lived on the island since way\n" .string "before the LAB was built.$" -gUnknown_81AEAEE:: @ 0x81AEAEE +gFameCheckerFlavorText_Blaine4:: @ 0x81AEAEE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" .string "MR. FUJI.\p" .string "They’re standing shoulder to\n" .string "shoulder with big grins.$" -gUnknown_81AEB69:: @ 0x81AEB69 +gFameCheckerFlavorText_Blaine5:: @ 0x81AEB69 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}BLAINE is said to remove his dark\n" .string "shades only when he is thinking up\l" .string "new quiz questions.$" -gUnknown_81AEBDF:: @ 0x81AEBDF +gFameCheckerFlavorText_Lorelei0:: @ 0x81AEBDF .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am LORELEI of the ELITE FOUR.$" -gUnknown_81AEC28:: @ 0x81AEC28 +gFameCheckerFlavorText_Lorelei1:: @ 0x81AEC28 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}No one can best me when it comes\n" .string "to icy POKéMON.$" -gUnknown_81AEC82:: @ 0x81AEC82 +gFameCheckerFlavorText_Lorelei2:: @ 0x81AEC82 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Where was this person born?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}We’ve had a great and powerful\n" .string "TRAINER grow up on this island.\p" .string "I bet even you’d know her.\n" .string "It’s LORELEI of the ELITE FOUR!$" -gUnknown_81AED27:: @ 0x81AED27 +gFameCheckerFlavorText_Lorelei3:: @ 0x81AED27 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{COLOR RED}{SHADOW GREEN}Known for her logical, calculated,\n" .string "and cool battling style, LORELEI\l" .string "has a surprising secret!$" -gUnknown_81AEDAA:: @ 0x81AEDAA +gFameCheckerFlavorText_Lorelei4:: @ 0x81AEDAA .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Did you know that LORELEI has lots\n" .string "and lots of stuffed dolls?\p" .string "Every time she comes back to\n" .string "FOUR ISLAND, her collection grows!$" -gUnknown_81AEE51:: @ 0x81AEE51 +gFameCheckerFlavorText_Lorelei5:: @ 0x81AEE51 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}The LAPRAS she has, I imagine it\n" .string "to be the one she met as a child.\p" @@ -377,29 +377,29 @@ gUnknown_81AEE51:: @ 0x81AEE51 .string "Perhaps that POKéMON has been with\n" .string "her ever since.$" -gUnknown_81AEF25:: @ 0x81AEF25 +gFameCheckerFlavorText_Bruno0:: @ 0x81AEF25 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I am BRUNO of the ELITE FOUR!$" -gUnknown_81AEF6C:: @ 0x81AEF6C +gFameCheckerFlavorText_Bruno1:: @ 0x81AEF6C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’ve lived and trained with my\n" .string "fighting POKéMON!$" -gUnknown_81AEFC6:: @ 0x81AEFC6 +gFameCheckerFlavorText_Bruno2:: @ 0x81AEFC6 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{COLOR RED}{SHADOW GREEN}BRUNO apparently joined the ELITE\n" .string "FOUR out of his burning ambition to\l" .string "battle the best TRAINERS.$" -gUnknown_81AF04C:: @ 0x81AF04C +gFameCheckerFlavorText_Bruno3:: @ 0x81AF04C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BRUNO, who’s a senior ahead of me,\n" .string "visits the SPA on occasion.\p" .string "He comes to rehab injuries, both\n" .string "his own and his POKéMON’s.$" -gUnknown_81AF0F0:: @ 0x81AF0F0 +gFameCheckerFlavorText_Bruno4:: @ 0x81AF0F0 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s one of the ELITE FOUR.\n" .string "His name is BRUNO.\p" @@ -407,35 +407,35 @@ gUnknown_81AF0F0:: @ 0x81AF0F0 .string "found out that they were all sold\l" .string "out of Rage Candybars.$" -gUnknown_81AF19A:: @ 0x81AF19A +gFameCheckerFlavorText_Bruno5:: @ 0x81AF19A .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Even BRUNO…\n" .string "He trained with a fellow by the\l" .string "name of BRAWLY before.$" -gUnknown_81AF200:: @ 0x81AF200 +gFameCheckerFlavorText_Agatha0:: @ 0x81AF200 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am AGATHA of the ELITE FOUR.$" -gUnknown_81AF248:: @ 0x81AF248 +gFameCheckerFlavorText_Agatha1:: @ 0x81AF248 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}AGATHA’s GHOST-type POKéMON are\n" .string "horrifically terrifying in toughness.$" -gUnknown_81AF2B7:: @ 0x81AF2B7 +gFameCheckerFlavorText_Agatha2:: @ 0x81AF2B7 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}That old lady’s also got a really\n" .string "short fuse, too.\p" .string "It doesn’t take anything to get\n" .string "that scary lady hollering.$" -gUnknown_81AF34E:: @ 0x81AF34E +gFameCheckerFlavorText_Agatha3:: @ 0x81AF34E .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{COLOR RED}{SHADOW GREEN}In her youth, AGATHA and PROF.\n" .string "OAK were rivals who vied for\l" .string "supremacy as TRAINERS.$" -gUnknown_81AF3BE:: @ 0x81AF3BE +gFameCheckerFlavorText_Agatha4:: @ 0x81AF3BE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I hear OAK’s taken a lot of\n" .string "interest in you, child.\p" @@ -444,19 +444,19 @@ gUnknown_81AF3BE:: @ 0x81AF3BE .string "But that was decades ago.\n" .string "He’s a shadow of his former self.$" -gUnknown_81AF47C:: @ 0x81AF47C +gFameCheckerFlavorText_Agatha5:: @ 0x81AF47C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}Take AGATHA, for example.\p" .string "She set a record for being the\n" .string "oldest-ever ELITE FOUR member.$" -gUnknown_81AF4FD:: @ 0x81AF4FD +gFameCheckerFlavorText_Lance0:: @ 0x81AF4FD .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I lead the ELITE FOUR.\p" .string "You can call me LANCE the dragon\n" .string "TRAINER.$" -gUnknown_81AF567:: @ 0x81AF567 +gFameCheckerFlavorText_Lance1:: @ 0x81AF567 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You know that dragons are\n" .string "mythical POKéMON.\p" @@ -465,13 +465,13 @@ gUnknown_81AF567:: @ 0x81AF567 .string "They’re virtually indestructible.\n" .string "There’s no being clever with them.$" -gUnknown_81AF641:: @ 0x81AF641 +gFameCheckerFlavorText_Lance2:: @ 0x81AF641 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He stands for justice!\n" .string "He’s cool, and yet passionate!\l" .string "He’s the greatest, LANCE!$" -gUnknown_81AF6BA:: @ 0x81AF6BA +gFameCheckerFlavorText_Lance3:: @ 0x81AF6BA .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}We have a customer, LANCE, who\n" .string "occasionally comes.\p" @@ -479,62 +479,62 @@ gUnknown_81AF6BA:: @ 0x81AF6BA .string "I wonder… Does he have many\n" .string "identical capes at home?$" -gUnknown_81AF758:: @ 0x81AF758 +gFameCheckerFlavorText_Lance4:: @ 0x81AF758 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{COLOR RED}{SHADOW GREEN}LANCE’s grandfather is thought to\n" .string "be the elder of a famous clan of\l" .string "dragon masters.$" -gUnknown_81AF7CB:: @ 0x81AF7CB +gFameCheckerFlavorText_Lance5:: @ 0x81AF7CB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}From what I’ve heard, LANCE has\n" .string "a cousin who’s a GYM LEADER\l" .string "somewhere far away.$" -gUnknown_81AF83E:: @ 0x81AF83E +gFameCheckerFlavorText_Bill0:: @ 0x81AF83E .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}After all, BILL’s world-famous as a\n" .string "POKéMANIAC.\p" .string "He invented the POKéMON Storage\n" .string "System on PC, too.$" -gUnknown_81AF8CA:: @ 0x81AF8CA +gFameCheckerFlavorText_Bill1:: @ 0x81AF8CA .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL has lots of POKéMON!\n" .string "He collects rare ones, too!$" -gUnknown_81AF929:: @ 0x81AF929 +gFameCheckerFlavorText_Bill2:: @ 0x81AF929 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}He’s my grandson!\p" .string "He always liked collecting things,\n" .string "even as a child!$" -gUnknown_81AF998:: @ 0x81AF998 +gFameCheckerFlavorText_Bill3:: @ 0x81AF998 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL is a POKéMANIAC, so he loves\n" .string "every kind.\p" .string "Apparently, the first one he caught\n" .string "was an ABRA.$" -gUnknown_81AFA20:: @ 0x81AFA20 +gFameCheckerFlavorText_Bill4:: @ 0x81AFA20 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}BILL’s hometown is GOLDENROD CITY,\n" .string "where his folks still live.\p" .string "I’ve heard that it’s quite the\n" .string "festive, bustling city.$" -gUnknown_81AFAB9:: @ 0x81AFAB9 +gFameCheckerFlavorText_Bill5:: @ 0x81AFAB9 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Apparently, BILL simply can’t\n" .string "stomach milk at all.$" -gUnknown_81AFB0C:: @ 0x81AFB0C +gFameCheckerFlavorText_MrFuji0:: @ 0x81AFB0C .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}He’s really kind.\p" .string "He looks after abandoned and\n" .string "orphaned POKéMON.$" -gUnknown_81AFB76:: @ 0x81AFB76 +gFameCheckerFlavorText_MrFuji1:: @ 0x81AFB76 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}This old guy marched right up to\n" .string "our HIDEOUT.\p" @@ -543,7 +543,7 @@ gUnknown_81AFB76:: @ 0x81AFB76 .string "So, we’re just talking it over as\n" .string "adults.$" -gUnknown_81AFC38:: @ 0x81AFC38 +gFameCheckerFlavorText_MrFuji2:: @ 0x81AFC38 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{COLOR RED}{SHADOW GREEN}POKéMON FAN MAGAZINE\n" .string "Monthly Grand Prize Drawing!\p" @@ -551,26 +551,26 @@ gUnknown_81AFC38:: @ 0x81AFC38 .string "Gone! It’s been clipped out.\n" .string "Someone must have applied already.$" -gUnknown_81AFCE9:: @ 0x81AFCE9 +gFameCheckerFlavorText_MrFuji3:: @ 0x81AFCE9 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}There’s a rumor…\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I hear that MR. FUJI’s not from\n" .string "these parts originally, either.$" -gUnknown_81AFD49:: @ 0x81AFD49 +gFameCheckerFlavorText_MrFuji4:: @ 0x81AFD49 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{COLOR RED}{SHADOW GREEN}It’s a photo of BLAINE and\n" .string "MR. FUJI.\p" .string "They’re standing shoulder to\n" .string "shoulder with big grins.$" -gUnknown_81AFDC4:: @ 0x81AFDC4 +gFameCheckerFlavorText_MrFuji5:: @ 0x81AFDC4 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{COLOR RED}{SHADOW GREEN}Editor: The shy MR. FUJI turned\n" .string "down our interview requests.\p" .string "He is a kindly man who is adored\n" .string "and respected in LAVENDER TOWN.$" -gUnknown_81AFE68:: @ 0x81AFE68 +gFameCheckerFlavorText_Giovanni0:: @ 0x81AFE68 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET captures POKéMON from\n" .string "around the world.\p" @@ -578,32 +578,32 @@ gUnknown_81AFE68:: @ 0x81AFE68 .string "our criminal enterprise going.\p" .string "I am the leader, GIOVANNI!$" -gUnknown_81AFF23:: @ 0x81AFF23 +gFameCheckerFlavorText_Giovanni1:: @ 0x81AFF23 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Favorite kind of POKéMON?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Those thugs that took over our\n" .string "building…\p" .string "Their BOSS said he was looking for\n" .string "strong POKéMON.$" -gUnknown_81AFFA8:: @ 0x81AFFA8 +gFameCheckerFlavorText_Giovanni2:: @ 0x81AFFA8 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What is this person like?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}TEAM ROCKET’s BOSS is terribly\n" .string "cruel!\p" .string "To him, POKéMON are just tools to\n" .string "be used.$" -gUnknown_81B0022:: @ 0x81B0022 +gFameCheckerFlavorText_Giovanni3:: @ 0x81B0022 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Welcome to my hideout!\p" .string "It shall be so until I can restore\n" .string "TEAM ROCKET to its former glory.$" -gUnknown_81B00A6:: @ 0x81B00A6 +gFameCheckerFlavorText_Giovanni4:: @ 0x81B00A6 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}What does this person do?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Blow me away! GIOVANNI was the\n" .string "GYM LEADER of VIRIDIAN?$" -gUnknown_81B0106:: @ 0x81B0106 +gFameCheckerFlavorText_Giovanni5:: @ 0x81B0106 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}Family and friends?\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You… You’re not GIOVANNI’s kid,\n" .string "are you?\p" @@ -611,10 +611,10 @@ gUnknown_81B0106:: @ 0x81B0106 .string "GIOVANNI’s kid has red hair.$" -gUnknown_81B0188:: @ 0x81B0188 +gFameCheckerPersonName_ProfOak:: @ 0x81B0188 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}PROF. OAK$" -gUnknown_81B0198:: @ 0x81B0198 +gFameCheckerPersonQuote_ProfOak:: @ 0x81B0198 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: PROF. OAK\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Why do POKéMON compete and battle\n" @@ -624,10 +624,10 @@ gUnknown_81B0198:: @ 0x81B0198 .string "towards POKéMON.\p" .string "Never forget that.$" -gUnknown_81B0251:: @ 0x81B0251 +gFameCheckerPersonName_Daisy:: @ 0x81B0251 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}DAISY$" -gUnknown_81B025D:: @ 0x81B025D +gFameCheckerPersonQuote_Daisy:: @ 0x81B025D .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: DAISY\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}While I was comfortably enjoying\n" @@ -636,10 +636,10 @@ gUnknown_81B025D:: @ 0x81B025D .string "I hope you’ll remain a good rival\n" .string "to my little brother.$" -gUnknown_81B030F:: @ 0x81B030F +gFameCheckerPersonName_Brock:: @ 0x81B030F .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BROCK$" -gUnknown_81B031B:: @ 0x81B031B +gFameCheckerPersonQuote_Brock:: @ 0x81B031B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BROCK\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}In this big world of ours, there\n" @@ -647,10 +647,10 @@ gUnknown_81B031B:: @ 0x81B031B .string "Let’s both keep training and\n" .string "making ourselves stronger!$" -gUnknown_81B03B3:: @ 0x81B03B3 +gFameCheckerPersonName_Misty:: @ 0x81B03B3 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MISTY$" -gUnknown_81B03BF:: @ 0x81B03BF +gFameCheckerPersonQuote_Misty:: @ 0x81B03BF .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MISTY\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I’m going to keep training here at\n" @@ -658,10 +658,10 @@ gUnknown_81B03BF:: @ 0x81B03BF .string "When I get better, I’d love to hit\n" .string "the road and travel.$" -gUnknown_81B0446:: @ 0x81B0446 +gFameCheckerPersonName_LtSurge:: @ 0x81B0446 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LT. SURGE$" -gUnknown_81B0456:: @ 0x81B0456 +gFameCheckerPersonQuote_LtSurge:: @ 0x81B0456 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LT. SURGE\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, kid!\n" @@ -671,10 +671,10 @@ gUnknown_81B0456:: @ 0x81B0456 .string "It made me change my mind about\n" .string "you!$" -gUnknown_81B0504:: @ 0x81B0504 +gFameCheckerPersonName_Erika:: @ 0x81B0504 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}ERIKA$" -gUnknown_81B0510:: @ 0x81B0510 +gFameCheckerPersonQuote_Erika:: @ 0x81B0510 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: ERIKA\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am so glad that there are strong\n" @@ -684,10 +684,10 @@ gUnknown_81B0510:: @ 0x81B0510 .string "Please visit me again.\n" .string "Zzz…$" -gUnknown_81B05C2:: @ 0x81B05C2 +gFameCheckerPersonName_Koga:: @ 0x81B05C2 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}KOGA$" -gUnknown_81B05CD:: @ 0x81B05CD +gFameCheckerPersonQuote_Koga:: @ 0x81B05CD .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: KOGA\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You and I, we must both set our\n" @@ -695,10 +695,10 @@ gUnknown_81B05CD:: @ 0x81B05CD .string "meeting our challenges.\p" .string "Now, I must go train my daughter.$" -gUnknown_81B0667:: @ 0x81B0667 +gFameCheckerPersonName_Sabrina:: @ 0x81B0667 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}SABRINA$" -gUnknown_81B0675:: @ 0x81B0675 +gFameCheckerPersonQuote_Sabrina:: @ 0x81B0675 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: SABRINA\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}The love you have towards your\n" @@ -706,10 +706,10 @@ gUnknown_81B0675:: @ 0x81B0675 .string "It was a power that was never\n" .string "bested by my psychic power.$" -gUnknown_81B06FB:: @ 0x81B06FB +gFameCheckerPersonName_Blaine:: @ 0x81B06FB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BLAINE$" -gUnknown_81B0708:: @ 0x81B0708 +gFameCheckerPersonQuote_Blaine:: @ 0x81B0708 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BLAINE\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fire POKéMON!\n" @@ -717,10 +717,10 @@ gUnknown_81B0708:: @ 0x81B0708 .string "And now, a quiz. How many kinds of\n" .string "FIRE-type POKéMON are there?$" -gUnknown_81B079F:: @ 0x81B079F +gFameCheckerPersonName_Lorelei:: @ 0x81B079F .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LORELEI$" -gUnknown_81B07AD:: @ 0x81B07AD +gFameCheckerPersonQuote_Lorelei:: @ 0x81B07AD .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LORELEI\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I needed to thank you for your\n" @@ -729,10 +729,10 @@ gUnknown_81B07AD:: @ 0x81B07AD .string "battles.\p" .string "You’d better watch out next time!$" -gUnknown_81B0845:: @ 0x81B0845 +gFameCheckerPersonName_Bruno:: @ 0x81B0845 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BRUNO$" -gUnknown_81B0851:: @ 0x81B0851 +gFameCheckerPersonQuote_Bruno:: @ 0x81B0851 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BRUNO\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The super power of your POKéMON\n" @@ -740,20 +740,20 @@ gUnknown_81B0851:: @ 0x81B0851 .string "Next time, maybe I should show you\n" .string "how to train yourself.$" -gUnknown_81B08EE:: @ 0x81B08EE +gFameCheckerPersonName_Agatha:: @ 0x81B08EE .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}AGATHA$" -gUnknown_81B08FB:: @ 0x81B08FB +gFameCheckerPersonQuote_Agatha:: @ 0x81B08FB .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: AGATHA\n" .string "To: {PLAYER}\p" .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}When you grow older, don’t you\n" .string "dare go soft like that coot OAK!\p" .string "Be like me and keep battling on!$" -gUnknown_81B097F:: @ 0x81B097F +gFameCheckerPersonName_Lance:: @ 0x81B097F .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LANCE$" -gUnknown_81B098B:: @ 0x81B098B +gFameCheckerPersonQuote_Lance:: @ 0x81B098B .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LANCE\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’m considering going back to my\n" @@ -763,10 +763,10 @@ gUnknown_81B098B:: @ 0x81B098B .string "I’d like to invite you to my\n" .string "hometown one day.$" -gUnknown_81B0A45:: @ 0x81B0A45 +gFameCheckerPersonName_Bill:: @ 0x81B0A45 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BILL$" -gUnknown_81B0A50:: @ 0x81B0A50 +gFameCheckerPersonQuote_Bill:: @ 0x81B0A50 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BILL\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, there! CELIO had nothing but\n" @@ -775,10 +775,10 @@ gUnknown_81B0A50:: @ 0x81B0A50 .string "When you catch some rare POKéMON,\n" .string "come show me, okay? Promise!$" -gUnknown_81B0AFF:: @ 0x81B0AFF +gFameCheckerPersonName_MrFuji:: @ 0x81B0AFF .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MR. FUJI$" -gUnknown_81B0B0E:: @ 0x81B0B0E +gFameCheckerPersonQuote_MrFuji:: @ 0x81B0B0E .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MR. FUJI\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Instead of hoping for the happiness\n" @@ -786,10 +786,10 @@ gUnknown_81B0B0E:: @ 0x81B0B0E .string "…Can I get you to wish for the\n" .string "happiness of all POKéMON?$" -gUnknown_81B0BA6:: @ 0x81B0BA6 +gFameCheckerPersonName_Giovanni:: @ 0x81B0BA6 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}GIOVANNI$" -gUnknown_81B0BB5:: @ 0x81B0BB5 +gFameCheckerPersonQuote_Giovanni:: @ 0x81B0BB5 .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: GIOVANNI\n" .string "To: {PLAYER}\p" .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There is nothing that I wish to say\n" @@ -797,580 +797,580 @@ gUnknown_81B0BB5:: @ 0x81B0BB5 .string "I will concentrate solely on\n" .string "bettering myself, and none other.$" -gUnknown_81B0C45:: @ 0x81B0C45 +gFameCheckerFlavorTextOriginLocation_ProfOak0:: @ 0x81B0C45 .string "PALLET TOWN$" -gUnknown_81B0C51:: @ 81B0C51 +gFameCheckerFlavorTextOriginLocation_ProfOak1:: @ 81B0C51 .string "RESEARCH LAB$" -gUnknown_81B0C5E:: @ 81B0C5E +gFameCheckerFlavorTextOriginLocation_ProfOak2:: @ 81B0C5E .string "RESEARCH LAB$" -gUnknown_81B0C6B:: @ 81B0C6B +gFameCheckerFlavorTextOriginLocation_ProfOak3:: @ 81B0C6B .string "VIRIDIAN CITY$" -gUnknown_81B0C79:: @ 81B0C79 +gFameCheckerFlavorTextOriginLocation_ProfOak4:: @ 81B0C79 .string "POKéMON LEAGUE$" -gUnknown_81B0C88:: @ 81B0C88 +gFameCheckerFlavorTextOriginLocation_ProfOak5:: @ 81B0C88 .string "RESEARCH LAB$" -gUnknown_81B0C95:: @ 81B0C95 +gFameCheckerFlavorTextOriginLocation_Daisy0:: @ 81B0C95 .string "RESEARCH LAB$" -gUnknown_81B0CA2:: @ 81B0CA2 +gFameCheckerFlavorTextOriginLocation_Daisy1:: @ 81B0CA2 .string "VERMILION CITY$" -gUnknown_81B0CB1:: @ 81B0CB1 +gFameCheckerFlavorTextOriginLocation_Daisy2:: @ 81B0CB1 .string "WATER LABYRINTH$" -gUnknown_81B0CC1:: @ 81B0CC1 +gFameCheckerFlavorTextOriginLocation_Daisy3:: @ 81B0CC1 .string "VIRIDIAN CITY$" -gUnknown_81B0CCF:: @ 81B0CCF +gFameCheckerFlavorTextOriginLocation_Daisy4:: @ 81B0CCF .string "CELADON MANSION$" -gUnknown_81B0CDF:: @ 81B0CDF +gFameCheckerFlavorTextOriginLocation_Daisy5:: @ 81B0CDF .string "FOUR ISLAND$" -gUnknown_81B0CEB:: @ 81B0CEB +gFameCheckerFlavorTextOriginLocation_Brock0:: @ 81B0CEB .string "PEWTER CITY$" -gUnknown_81B0CF7:: @ 81B0CF7 +gFameCheckerFlavorTextOriginLocation_Brock1:: @ 81B0CF7 .string "PEWTER GYM$" -gUnknown_81B0D02:: @ 81B0D02 +gFameCheckerFlavorTextOriginLocation_Brock2:: @ 81B0D02 .string "PEWTER CITY$" -gUnknown_81B0D0E:: @ 81B0D0E +gFameCheckerFlavorTextOriginLocation_Brock3:: @ 81B0D0E .string "ROUTE 4$" -gUnknown_81B0D16:: @ 81B0D16 +gFameCheckerFlavorTextOriginLocation_Brock4:: @ 81B0D16 .string "MT. MOON$" -gUnknown_81B0D1F:: @ 81B0D1F +gFameCheckerFlavorTextOriginLocation_Brock5:: @ 81B0D1F .string "PEWTER MUSEUM$" -gUnknown_81B0D2D:: @ 81B0D2D +gFameCheckerFlavorTextOriginLocation_Misty0:: @ 81B0D2D .string "CERULEAN CITY$" -gUnknown_81B0D3B:: @ 81B0D3B +gFameCheckerFlavorTextOriginLocation_Misty1:: @ 81B0D3B .string "CERULEAN GYM$" -gUnknown_81B0D48:: @ 81B0D48 +gFameCheckerFlavorTextOriginLocation_Misty2:: @ 81B0D48 .string "CERULEAN GYM$" -gUnknown_81B0D55:: @ 81B0D55 +gFameCheckerFlavorTextOriginLocation_Misty3:: @ 81B0D55 .string "SEAFOAM ISLANDS$" -gUnknown_81B0D65:: @ 81B0D65 +gFameCheckerFlavorTextOriginLocation_Misty4:: @ 81B0D65 .string "CERULEAN CAPE$" -gUnknown_81B0D73:: @ 81B0D73 +gFameCheckerFlavorTextOriginLocation_Misty5:: @ 81B0D73 .string "CERULEAN CITY$" -gUnknown_81B0D81:: @ 81B0D81 +gFameCheckerFlavorTextOriginLocation_LtSurge0:: @ 81B0D81 .string "VERMILION CITY$" -gUnknown_81B0D90:: @ 81B0D90 +gFameCheckerFlavorTextOriginLocation_LtSurge1:: @ 81B0D90 .string "VERMILION GYM$" -gUnknown_81B0D9E:: @ 81B0D9E +gFameCheckerFlavorTextOriginLocation_LtSurge2:: @ 81B0D9E .string "VERMILION GYM$" -gUnknown_81B0DAC:: @ 81B0DAC +gFameCheckerFlavorTextOriginLocation_LtSurge3:: @ 81B0DAC .string "VERMILION GYM$" -gUnknown_81B0DBA:: @ 81B0DBA +gFameCheckerFlavorTextOriginLocation_LtSurge4:: @ 81B0DBA .string "VERMILION GYM$" -gUnknown_81B0DC8:: @ 81B0DC8 +gFameCheckerFlavorTextOriginLocation_LtSurge5:: @ 81B0DC8 .string "VERMILION CITY$" -gUnknown_81B0DD7:: @ 81B0DD7 +gFameCheckerFlavorTextOriginLocation_Erika0:: @ 81B0DD7 .string "CELADON CITY$" -gUnknown_81B0DE4:: @ 81B0DE4 +gFameCheckerFlavorTextOriginLocation_Erika1:: @ 81B0DE4 .string "CELADON GYM$" -gUnknown_81B0DF0:: @ 81B0DF0 +gFameCheckerFlavorTextOriginLocation_Erika2:: @ 81B0DF0 .string "CELADON GYM$" -gUnknown_81B0DFC:: @ 81B0DFC +gFameCheckerFlavorTextOriginLocation_Erika3:: @ 81B0DFC .string "CELADON GYM$" -gUnknown_81B0E08:: @ 81B0E08 +gFameCheckerFlavorTextOriginLocation_Erika4:: @ 81B0E08 .string "CELADON GYM$" -gUnknown_81B0E14:: @ 81B0E14 +gFameCheckerFlavorTextOriginLocation_Erika5:: @ 81B0E14 .string "CELADON MANSION$" -gUnknown_81B0E24:: @ 81B0E24 +gFameCheckerFlavorTextOriginLocation_Koga0:: @ 81B0E24 .string "FUCHSIA CITY$" -gUnknown_81B0E31:: @ 81B0E31 +gFameCheckerFlavorTextOriginLocation_Koga1:: @ 81B0E31 .string "FUCHSIA GYM$" -gUnknown_81B0E3D:: @ 81B0E3D +gFameCheckerFlavorTextOriginLocation_Koga2:: @ 81B0E3D .string "FUCHSIA GYM$" -gUnknown_81B0E49:: @ 81B0E49 +gFameCheckerFlavorTextOriginLocation_Koga3:: @ 81B0E49 .string "FUCHSIA CITY$" -gUnknown_81B0E56:: @ 81B0E56 +gFameCheckerFlavorTextOriginLocation_Koga4:: @ 81B0E56 .string "FUCHSIA CITY$" -gUnknown_81B0E63:: @ 81B0E63 +gFameCheckerFlavorTextOriginLocation_Koga5:: @ 81B0E63 .string "SAFARI ZONE$" -gUnknown_81B0E6F:: @ 81B0E6F +gFameCheckerFlavorTextOriginLocation_Sabrina0:: @ 81B0E6F .string "SAFFRON CITY$" -gUnknown_81B0E7C:: @ 81B0E7C +gFameCheckerFlavorTextOriginLocation_Sabrina1:: @ 81B0E7C .string "THREE ISLAND$" -gUnknown_81B0E89:: @ 81B0E89 +gFameCheckerFlavorTextOriginLocation_Sabrina2:: @ 81B0E89 .string "SAFFRON GYM$" -gUnknown_81B0E95:: @ 81B0E95 +gFameCheckerFlavorTextOriginLocation_Sabrina3:: @ 81B0E95 .string "SAFFRON GYM$" -gUnknown_81B0EA1:: @ 81B0EA1 +gFameCheckerFlavorTextOriginLocation_Sabrina4:: @ 81B0EA1 .string "SAFFRON CITY$" -gUnknown_81B0EAE:: @ 81B0EAE +gFameCheckerFlavorTextOriginLocation_Sabrina5:: @ 81B0EAE .string "SAFFRON GYM$" -gUnknown_81B0EBA:: @ 81B0EBA +gFameCheckerFlavorTextOriginLocation_Blaine0:: @ 81B0EBA .string "CINNABAR ISLAND$" -gUnknown_81B0ECA:: @ 81B0ECA +gFameCheckerFlavorTextOriginLocation_Blaine1:: @ 81B0ECA .string "CINNABAR GYM$" -gUnknown_81B0ED7:: @ 81B0ED7 +gFameCheckerFlavorTextOriginLocation_Blaine2:: @ 81B0ED7 .string "CINNABAR GYM$" -gUnknown_81B0EE4:: @ 81B0EE4 +gFameCheckerFlavorTextOriginLocation_Blaine3:: @ 81B0EE4 .string "CINNABAR ISLAND$" -gUnknown_81B0EF4:: @ 81B0EF4 +gFameCheckerFlavorTextOriginLocation_Blaine4:: @ 81B0EF4 .string "CINNABAR GYM$" -gUnknown_81B0F01:: @ 81B0F01 +gFameCheckerFlavorTextOriginLocation_Blaine5:: @ 81B0F01 .string "RESORT GORGEOUS$" -gUnknown_81B0F11:: @ 81B0F11 +gFameCheckerFlavorTextOriginLocation_Lorelei0:: @ 81B0F11 .string "POKéMON LEAGUE$" -gUnknown_81B0F20:: @ 81B0F20 +gFameCheckerFlavorTextOriginLocation_Lorelei1:: @ 81B0F20 .string "POKéMON LEAGUE$" -gUnknown_81B0F2F:: @ 81B0F2F +gFameCheckerFlavorTextOriginLocation_Lorelei2:: @ 81B0F2F .string "FOUR ISLAND$" -gUnknown_81B0F3B:: @ 81B0F3B +gFameCheckerFlavorTextOriginLocation_Lorelei3:: @ 81B0F3B .string "FIVE ISLAND$" -gUnknown_81B0F47:: @ 81B0F47 +gFameCheckerFlavorTextOriginLocation_Lorelei4:: @ 81B0F47 .string "FOUR ISLAND$" -gUnknown_81B0F53:: @ 81B0F53 +gFameCheckerFlavorTextOriginLocation_Lorelei5:: @ 81B0F53 .string "FOUR ISLAND$" -gUnknown_81B0F5F:: @ 81B0F5F +gFameCheckerFlavorTextOriginLocation_Bruno0:: @ 81B0F5F .string "POKéMON LEAGUE$" -gUnknown_81B0F6E:: @ 81B0F6E +gFameCheckerFlavorTextOriginLocation_Bruno1:: @ 81B0F6E .string "POKéMON LEAGUE$" -gUnknown_81B0F7D:: @ 81B0F7D +gFameCheckerFlavorTextOriginLocation_Bruno2:: @ 81B0F7D .string "SAFFRON CITY$" -gUnknown_81B0F8A:: @ 81B0F8A +gFameCheckerFlavorTextOriginLocation_Bruno3:: @ 81B0F8A .string "EMBER SPA$" -gUnknown_81B0F94:: @ 81B0F94 +gFameCheckerFlavorTextOriginLocation_Bruno4:: @ 81B0F94 .string "TWO ISLAND$" -gUnknown_81B0F9F:: @ 81B0F9F +gFameCheckerFlavorTextOriginLocation_Bruno5:: @ 81B0F9F .string "SEVAULT CANYON$" -gUnknown_81B0FAE:: @ 81B0FAE +gFameCheckerFlavorTextOriginLocation_Agatha0:: @ 81B0FAE .string "POKéMON LEAGUE$" -gUnknown_81B0FBD:: @ 81B0FBD +gFameCheckerFlavorTextOriginLocation_Agatha1:: @ 81B0FBD .string "INDIGO PLATEAU$" -gUnknown_81B0FCC:: @ 81B0FCC +gFameCheckerFlavorTextOriginLocation_Agatha2:: @ 81B0FCC .string "INDIGO PLATEAU$" -gUnknown_81B0FDB:: @ 81B0FDB +gFameCheckerFlavorTextOriginLocation_Agatha3:: @ 81B0FDB .string "SEVEN ISLAND$" -gUnknown_81B0FE8:: @ 81B0FE8 +gFameCheckerFlavorTextOriginLocation_Agatha4:: @ 81B0FE8 .string "POKéMON LEAGUE$" -gUnknown_81B0FF7:: @ 81B0FF7 +gFameCheckerFlavorTextOriginLocation_Agatha5:: @ 81B0FF7 .string "SIX ISLAND$" -gUnknown_81B1002:: @ 81B1002 +gFameCheckerFlavorTextOriginLocation_Lance0:: @ 81B1002 .string "POKéMON LEAGUE$" -gUnknown_81B1011:: @ 81B1011 +gFameCheckerFlavorTextOriginLocation_Lance1:: @ 81B1011 .string "POKéMON LEAGUE$" -gUnknown_81B1020:: @ 81B1020 +gFameCheckerFlavorTextOriginLocation_Lance2:: @ 81B1020 .string "SAFFRON CITY$" -gUnknown_81B102D:: @ 81B102D +gFameCheckerFlavorTextOriginLocation_Lance3:: @ 81B102D .string "CELADON DEPT.$" -gUnknown_81B103B:: @ 81B103B +gFameCheckerFlavorTextOriginLocation_Lance4:: @ 81B103B .string "INDIGO PLATEAU$" -gUnknown_81B104A:: @ 81B104A +gFameCheckerFlavorTextOriginLocation_Lance5:: @ 81B104A .string "INDIGO PLATEAU$" -gUnknown_81B1059:: @ 81B1059 +gFameCheckerFlavorTextOriginLocation_Bill0:: @ 81B1059 .string "CERULEAN CITY$" -gUnknown_81B1067:: @ 81B1067 +gFameCheckerFlavorTextOriginLocation_Bill1:: @ 81B1067 .string "CERULEAN CITY$" -gUnknown_81B1075:: @ 81B1075 +gFameCheckerFlavorTextOriginLocation_Bill2:: @ 81B1075 .string "FUCHSIA CITY$" -gUnknown_81B1082:: @ 81B1082 +gFameCheckerFlavorTextOriginLocation_Bill3:: @ 81B1082 .string "ONE ISLAND$" -gUnknown_81B108D:: @ 81B108D +gFameCheckerFlavorTextOriginLocation_Bill4:: @ 81B108D .string "ONE ISLAND$" -gUnknown_81B1098:: @ 81B1098 +gFameCheckerFlavorTextOriginLocation_Bill5:: @ 81B1098 .string "ONE ISLAND$" -gUnknown_81B10A3:: @ 81B10A3 +gFameCheckerFlavorTextOriginLocation_MrFuji0:: @ 81B10A3 .string "LAVENDER TOWN$" -gUnknown_81B10B1:: @ 81B10B1 +gFameCheckerFlavorTextOriginLocation_MrFuji1:: @ 81B10B1 .string "POKéMON TOWER$" -gUnknown_81B10BF:: @ 81B10BF +gFameCheckerFlavorTextOriginLocation_MrFuji2:: @ 81B10BF .string "LAVENDER TOWN$" -gUnknown_81B10CD:: @ 81B10CD +gFameCheckerFlavorTextOriginLocation_MrFuji3:: @ 81B10CD .string "LAVENDER TOWN$" -gUnknown_81B10DB:: @ 81B10DB +gFameCheckerFlavorTextOriginLocation_MrFuji4:: @ 81B10DB .string "CINNABAR GYM$" -gUnknown_81B10E8:: @ 81B10E8 +gFameCheckerFlavorTextOriginLocation_MrFuji5:: @ 81B10E8 .string "CINNABAR ISLAND$" -gUnknown_81B10F8:: @ 81B10F8 +gFameCheckerFlavorTextOriginLocation_Giovanni0:: @ 81B10F8 .string "ROCKET HIDEOUT$" -gUnknown_81B1107:: @ 81B1107 +gFameCheckerFlavorTextOriginLocation_Giovanni1:: @ 81B1107 .string "SILPH CO.$" -gUnknown_81B1111:: @ 81B1111 +gFameCheckerFlavorTextOriginLocation_Giovanni2:: @ 81B1111 .string "SILPH CO.$" -gUnknown_81B111B:: @ 81B111B +gFameCheckerFlavorTextOriginLocation_Giovanni3:: @ 81B111B .string "VIRIDIAN GYM$" -gUnknown_81B1128:: @ 81B1128 +gFameCheckerFlavorTextOriginLocation_Giovanni4:: @ 81B1128 .string "VIRIDIAN GYM$" -gUnknown_81B1135:: @ 81B1135 +gFameCheckerFlavorTextOriginLocation_Giovanni5:: @ 81B1135 .string "ROCKET WAREHOUSE$" -gUnknown_81B1146:: @ 81B1146 +gFameCheckerFlavorTextOriginObjectName_ProfOak0:: @ 81B1146 .string "SIGN$" -gUnknown_81B114B:: @ 81B114B +gFameCheckerFlavorTextOriginObjectName_ProfOak1:: @ 81B114B .string "PROF. OAK$" -gUnknown_81B1155:: @ 81B1155 +gFameCheckerFlavorTextOriginObjectName_ProfOak2:: @ 81B1155 .string "AIDE$" -gUnknown_81B115A:: @ 81B115A +gFameCheckerFlavorTextOriginObjectName_ProfOak3:: @ 81B115A .string "POKéMON JOURNAL$" -gUnknown_81B116A:: @ 81B116A +gFameCheckerFlavorTextOriginObjectName_ProfOak4:: @ 81B116A .string "AGATHA$" -gUnknown_81B1171:: @ 81B1171 +gFameCheckerFlavorTextOriginObjectName_ProfOak5:: @ 81B1171 .string "AIDE$" -gUnknown_81B1176:: @ 81B1176 +gFameCheckerFlavorTextOriginObjectName_Daisy0:: @ 81B1176 .string "AIDE$" -gUnknown_81B117B:: @ 81B117B +gFameCheckerFlavorTextOriginObjectName_Daisy1:: @ 81B117B .string "WOMAN$" -gUnknown_81B1181:: @ 81B1181 +gFameCheckerFlavorTextOriginObjectName_Daisy2:: @ 81B1181 .string "MAN$" -gUnknown_81B1185:: @ 81B1185 +gFameCheckerFlavorTextOriginObjectName_Daisy3:: @ 81B1185 .string "POKéMON JOURNAL$" -gUnknown_81B1195:: @ 81B1195 +gFameCheckerFlavorTextOriginObjectName_Daisy4:: @ 81B1195 .string "OLD LADY$" -gUnknown_81B119E:: @ 81B119E +gFameCheckerFlavorTextOriginObjectName_Daisy5:: @ 81B119E .string "POKéMON JOURNAL$" -gUnknown_81B11AE:: @ 81B11AE +gFameCheckerFlavorTextOriginObjectName_Brock0:: @ 81B11AE .string "SIGN$" -gUnknown_81B11B3:: @ 81B11B3 +gFameCheckerFlavorTextOriginObjectName_Brock1:: @ 81B11B3 .string "BROCK$" -gUnknown_81B11B9:: @ 81B11B9 +gFameCheckerFlavorTextOriginObjectName_Brock2:: @ 81B11B9 .string "YOUNG MAN$" -gUnknown_81B11C3:: @ 81B11C3 +gFameCheckerFlavorTextOriginObjectName_Brock3:: @ 81B11C3 .string "BOY$" -gUnknown_81B11C7:: @ 81B11C7 +gFameCheckerFlavorTextOriginObjectName_Brock4:: @ 81B11C7 .string "MAN$" -gUnknown_81B11CB:: @ 81B11CB +gFameCheckerFlavorTextOriginObjectName_Brock5:: @ 81B11CB .string "POKéMON JOURNAL$" -gUnknown_81B11DB:: @ 81B11DB +gFameCheckerFlavorTextOriginObjectName_Misty0:: @ 81B11DB .string "SIGN$" -gUnknown_81B11E0:: @ 81B11E0 +gFameCheckerFlavorTextOriginObjectName_Misty1:: @ 81B11E0 .string "MISTY$" -gUnknown_81B11E6:: @ 81B11E6 +gFameCheckerFlavorTextOriginObjectName_Misty2:: @ 81B11E6 .string "LUIS$" -gUnknown_81B11EB:: @ 81B11EB +gFameCheckerFlavorTextOriginObjectName_Misty3:: @ 81B11EB .string "YOUNG MAN$" -gUnknown_81B11F5:: @ 81B11F5 +gFameCheckerFlavorTextOriginObjectName_Misty4:: @ 81B11F5 .string "DAME$" -gUnknown_81B11FA:: @ 81B11FA +gFameCheckerFlavorTextOriginObjectName_Misty5:: @ 81B11FA .string "POKéMON JOURNAL$" -gUnknown_81B120A:: @ 81B120A +gFameCheckerFlavorTextOriginObjectName_LtSurge0:: @ 81B120A .string "SIGN$" -gUnknown_81B120F:: @ 81B120F +gFameCheckerFlavorTextOriginObjectName_LtSurge1:: @ 81B120F .string "LT. SURGE$" -gUnknown_81B1219:: @ 81B1219 +gFameCheckerFlavorTextOriginObjectName_LtSurge2:: @ 81B1219 .string "TUCKER$" -gUnknown_81B1220:: @ 81B1220 +gFameCheckerFlavorTextOriginObjectName_LtSurge3:: @ 81B1220 .string "TUCKER$" -gUnknown_81B1227:: @ 81B1227 +gFameCheckerFlavorTextOriginObjectName_LtSurge4:: @ 81B1227 .string "DWAYNE$" -gUnknown_81B122E:: @ 81B122E +gFameCheckerFlavorTextOriginObjectName_LtSurge5:: @ 81B122E .string "POKéMON JOURNAL$" -gUnknown_81B123E:: @ 81B123E +gFameCheckerFlavorTextOriginObjectName_Erika0:: @ 81B123E .string "SIGN$" -gUnknown_81B1243:: @ 81B1243 +gFameCheckerFlavorTextOriginObjectName_Erika1:: @ 81B1243 .string "ERIKA$" -gUnknown_81B1249:: @ 81B1249 +gFameCheckerFlavorTextOriginObjectName_Erika2:: @ 81B1249 .string "LOLA$" -gUnknown_81B124E:: @ 81B124E +gFameCheckerFlavorTextOriginObjectName_Erika3:: @ 81B124E .string "TAMIA$" -gUnknown_81B1254:: @ 81B1254 +gFameCheckerFlavorTextOriginObjectName_Erika4:: @ 81B1254 .string "ERIKA$" -gUnknown_81B125A:: @ 81B125A +gFameCheckerFlavorTextOriginObjectName_Erika5:: @ 81B125A .string "POKéMON JOURNAL$" -gUnknown_81B126A:: @ 81B126A +gFameCheckerFlavorTextOriginObjectName_Koga0:: @ 81B126A .string "SIGN$" -gUnknown_81B126F:: @ 81B126F +gFameCheckerFlavorTextOriginObjectName_Koga1:: @ 81B126F .string "KOGA$" -gUnknown_81B1274:: @ 81B1274 +gFameCheckerFlavorTextOriginObjectName_Koga2:: @ 81B1274 .string "KIRK$" -gUnknown_81B1279:: @ 81B1279 +gFameCheckerFlavorTextOriginObjectName_Koga3:: @ 81B1279 .string "CHARINE$" -gUnknown_81B1281:: @ 81B1281 +gFameCheckerFlavorTextOriginObjectName_Koga4:: @ 81B1281 .string "POKéMON JOURNAL$" -gUnknown_81B1291:: @ 81B1291 +gFameCheckerFlavorTextOriginObjectName_Koga5:: @ 81B1291 .string "MAN$" -gUnknown_81B1295:: @ 81B1295 +gFameCheckerFlavorTextOriginObjectName_Sabrina0:: @ 81B1295 .string "SIGN$" -gUnknown_81B129A:: @ 81B129A +gFameCheckerFlavorTextOriginObjectName_Sabrina1:: @ 81B129A .string "YOUNG MAN$" -gUnknown_81B12A4:: @ 81B12A4 +gFameCheckerFlavorTextOriginObjectName_Sabrina2:: @ 81B12A4 .string "SABRINA$" -gUnknown_81B12AC:: @ 81B12AC +gFameCheckerFlavorTextOriginObjectName_Sabrina3:: @ 81B12AC .string "SABRINA$" -gUnknown_81B12B4:: @ 81B12B4 +gFameCheckerFlavorTextOriginObjectName_Sabrina4:: @ 81B12B4 .string "POKéMON JOURNAL$" -gUnknown_81B12C4:: @ 81B12C4 +gFameCheckerFlavorTextOriginObjectName_Sabrina5:: @ 81B12C4 .string "TYRON$" -gUnknown_81B12CA:: @ 81B12CA +gFameCheckerFlavorTextOriginObjectName_Blaine0:: @ 81B12CA .string "SIGN$" -gUnknown_81B12CF:: @ 81B12CF +gFameCheckerFlavorTextOriginObjectName_Blaine1:: @ 81B12CF .string "BLAINE$" -gUnknown_81B12D6:: @ 81B12D6 +gFameCheckerFlavorTextOriginObjectName_Blaine2:: @ 81B12D6 .string "DEREK$" -gUnknown_81B12DC:: @ 81B12DC +gFameCheckerFlavorTextOriginObjectName_Blaine3:: @ 81B12DC .string "WOMAN$" -gUnknown_81B12E2:: @ 81B12E2 +gFameCheckerFlavorTextOriginObjectName_Blaine4:: @ 81B12E2 .string "PHOTO$" -gUnknown_81B12E8:: @ 81B12E8 +gFameCheckerFlavorTextOriginObjectName_Blaine5:: @ 81B12E8 .string "POKéMON JOURNAL$" -gUnknown_81B12F8:: @ 81B12F8 +gFameCheckerFlavorTextOriginObjectName_Lorelei0:: @ 81B12F8 .string "LORELEI$" -gUnknown_81B1300:: @ 81B1300 +gFameCheckerFlavorTextOriginObjectName_Lorelei1:: @ 81B1300 .string "LORELEI$" -gUnknown_81B1308:: @ 81B1308 +gFameCheckerFlavorTextOriginObjectName_Lorelei2:: @ 81B1308 .string "OLD MAN$" -gUnknown_81B1310:: @ 81B1310 +gFameCheckerFlavorTextOriginObjectName_Lorelei3:: @ 81B1310 .string "POKéMON JOURNAL$" -gUnknown_81B1320:: @ 81B1320 +gFameCheckerFlavorTextOriginObjectName_Lorelei4:: @ 81B1320 .string "LITTLE GIRL$" -gUnknown_81B132C:: @ 81B132C +gFameCheckerFlavorTextOriginObjectName_Lorelei5:: @ 81B132C .string "OLD LADY$" -gUnknown_81B1335:: @ 81B1335 +gFameCheckerFlavorTextOriginObjectName_Bruno0:: @ 81B1335 .string "BRUNO$" -gUnknown_81B133B:: @ 81B133B +gFameCheckerFlavorTextOriginObjectName_Bruno1:: @ 81B133B .string "BRUNO$" -gUnknown_81B1341:: @ 81B1341 +gFameCheckerFlavorTextOriginObjectName_Bruno2:: @ 81B1341 .string "POKéMON JOURNAL$" -gUnknown_81B1351:: @ 81B1351 +gFameCheckerFlavorTextOriginObjectName_Bruno3:: @ 81B1351 .string "CRUSHER$" -gUnknown_81B1359:: @ 81B1359 +gFameCheckerFlavorTextOriginObjectName_Bruno4:: @ 81B1359 .string "WOMAN$" -gUnknown_81B135F:: @ 81B135F +gFameCheckerFlavorTextOriginObjectName_Bruno5:: @ 81B135F .string "CRUSHER$" -gUnknown_81B1367:: @ 81B1367 +gFameCheckerFlavorTextOriginObjectName_Agatha0:: @ 81B1367 .string "AGATHA$" -gUnknown_81B136E:: @ 81B136E +gFameCheckerFlavorTextOriginObjectName_Agatha1:: @ 81B136E .string "CRUSHER$" -gUnknown_81B1376:: @ 81B1376 +gFameCheckerFlavorTextOriginObjectName_Agatha2:: @ 81B1376 .string "CRUSHER$" -gUnknown_81B137E:: @ 81B137E +gFameCheckerFlavorTextOriginObjectName_Agatha3:: @ 81B137E .string "POKéMON JOURNAL$" -gUnknown_81B138E:: @ 81B138E +gFameCheckerFlavorTextOriginObjectName_Agatha4:: @ 81B138E .string "AGATHA$" -gUnknown_81B1395:: @ 81B1395 +gFameCheckerFlavorTextOriginObjectName_Agatha5:: @ 81B1395 .string "OLD LADY$" -gUnknown_81B139E:: @ 81B139E +gFameCheckerFlavorTextOriginObjectName_Lance0:: @ 81B139E .string "LANCE$" -gUnknown_81B13A4:: @ 81B13A4 +gFameCheckerFlavorTextOriginObjectName_Lance1:: @ 81B13A4 .string "LANCE$" -gUnknown_81B13AA:: @ 81B13AA +gFameCheckerFlavorTextOriginObjectName_Lance2:: @ 81B13AA .string "WOMAN$" -gUnknown_81B13B0:: @ 81B13B0 +gFameCheckerFlavorTextOriginObjectName_Lance3:: @ 81B13B0 .string "LITTLE GIRL$" -gUnknown_81B13BC:: @ 81B13BC +gFameCheckerFlavorTextOriginObjectName_Lance4:: @ 81B13BC .string "POKéMON JOURNAL$" -gUnknown_81B13CC:: @ 81B13CC +gFameCheckerFlavorTextOriginObjectName_Lance5:: @ 81B13CC .string "YOUNG MAN$" -gUnknown_81B13D6:: @ 81B13D6 +gFameCheckerFlavorTextOriginObjectName_Bill0:: @ 81B13D6 .string "{RIVAL}$" -gUnknown_81B13D9:: @ 81B13D9 +gFameCheckerFlavorTextOriginObjectName_Bill1:: @ 81B13D9 .string "LITTLE BOY$" -gUnknown_81B13E4:: @ 81B13E4 +gFameCheckerFlavorTextOriginObjectName_Bill2:: @ 81B13E4 .string "OLD MAN$" -gUnknown_81B13EC:: @ 81B13EC +gFameCheckerFlavorTextOriginObjectName_Bill3:: @ 81B13EC .string "CELIO$" -gUnknown_81B13F2:: @ 81B13F2 +gFameCheckerFlavorTextOriginObjectName_Bill4:: @ 81B13F2 .string "CELIO$" -gUnknown_81B13F8:: @ 81B13F8 +gFameCheckerFlavorTextOriginObjectName_Bill5:: @ 81B13F8 .string "CELIO$" -gUnknown_81B13FE:: @ 81B13FE +gFameCheckerFlavorTextOriginObjectName_MrFuji0:: @ 81B13FE .string "LITTLE GIRL$" -gUnknown_81B140A:: @ 81B140A +gFameCheckerFlavorTextOriginObjectName_MrFuji1:: @ 81B140A .string "TEAM ROCKET$" -gUnknown_81B1416:: @ 81B1416 +gFameCheckerFlavorTextOriginObjectName_MrFuji2:: @ 81B1416 .string "MAGAZINE$" -gUnknown_81B141F:: @ 81B141F +gFameCheckerFlavorTextOriginObjectName_MrFuji3:: @ 81B141F .string "MAN$" -gUnknown_81B1423:: @ 81B1423 +gFameCheckerFlavorTextOriginObjectName_MrFuji4:: @ 81B1423 .string "PHOTO$" -gUnknown_81B1429:: @ 81B1429 +gFameCheckerFlavorTextOriginObjectName_MrFuji5:: @ 81B1429 .string "POKéMON JOURNAL$" -gUnknown_81B1439:: @ 81B1439 +gFameCheckerFlavorTextOriginObjectName_Giovanni0:: @ 81B1439 .string "GIOVANNI$" -gUnknown_81B1442:: @ 81B1442 +gFameCheckerFlavorTextOriginObjectName_Giovanni1:: @ 81B1442 .string "SCIENTIST$" -gUnknown_81B144C:: @ 81B144C +gFameCheckerFlavorTextOriginObjectName_Giovanni2:: @ 81B144C .string "SCIENTIST$" -gUnknown_81B1456:: @ 81B1456 +gFameCheckerFlavorTextOriginObjectName_Giovanni3:: @ 81B1456 .string "GIOVANNI$" -gUnknown_81B145F:: @ 81B145F +gFameCheckerFlavorTextOriginObjectName_Giovanni4:: @ 81B145F .string "MAN$" -gUnknown_81B1463:: @ 81B1463 +gFameCheckerFlavorTextOriginObjectName_Giovanni5:: @ 81B1463 .string "GIDEON$" gUnknown_81B146A:: @ 81B146A diff --git a/include/event_scripts.h b/include/event_scripts.h index 4405b831d..b909566d0 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -384,325 +384,325 @@ extern const u8 gUnknown_81C1429[]; // fame_checker -extern const u8 gUnknown_81AD106[]; -extern const u8 gUnknown_81AD145[]; -extern const u8 gUnknown_81AD1BB[]; -extern const u8 gUnknown_81AD258[]; -extern const u8 gUnknown_81AD2B9[]; -extern const u8 gUnknown_81AD377[]; -extern const u8 gUnknown_81AD40C[]; -extern const u8 gUnknown_81AD4AE[]; -extern const u8 gUnknown_81AD516[]; -extern const u8 gUnknown_81AD5A7[]; -extern const u8 gUnknown_81AD608[]; -extern const u8 gUnknown_81AD69F[]; -extern const u8 gUnknown_81AD705[]; -extern const u8 gUnknown_81AD771[]; -extern const u8 gUnknown_81AD840[]; -extern const u8 gUnknown_81AD908[]; -extern const u8 gUnknown_81AD99A[]; -extern const u8 gUnknown_81ADA27[]; -extern const u8 gUnknown_81ADA91[]; -extern const u8 gUnknown_81ADAF6[]; -extern const u8 gUnknown_81ADB5A[]; -extern const u8 gUnknown_81ADBD9[]; -extern const u8 gUnknown_81ADC72[]; -extern const u8 gUnknown_81ADCEB[]; -extern const u8 gUnknown_81ADD3C[]; -extern const u8 gUnknown_81ADDA7[]; -extern const u8 gUnknown_81ADE0B[]; -extern const u8 gUnknown_81ADE82[]; -extern const u8 gUnknown_81ADEEC[]; -extern const u8 gUnknown_81ADF6A[]; -extern const u8 gUnknown_81AE009[]; -extern const u8 gUnknown_81AE072[]; -extern const u8 gUnknown_81AE0F3[]; -extern const u8 gUnknown_81AE15B[]; -extern const u8 gUnknown_81AE1E5[]; -extern const u8 gUnknown_81AE247[]; -extern const u8 gUnknown_81AE2B6[]; -extern const u8 gUnknown_81AE31D[]; -extern const u8 gUnknown_81AE37D[]; -extern const u8 gUnknown_81AE407[]; -extern const u8 gUnknown_81AE48D[]; -extern const u8 gUnknown_81AE51B[]; -extern const u8 gUnknown_81AE5E8[]; -extern const u8 gUnknown_81AE656[]; -extern const u8 gUnknown_81AE6D7[]; -extern const u8 gUnknown_81AE762[]; -extern const u8 gUnknown_81AE7CB[]; -extern const u8 gUnknown_81AE841[]; -extern const u8 gUnknown_81AE89E[]; -extern const u8 gUnknown_81AE90A[]; -extern const u8 gUnknown_81AE990[]; -extern const u8 gUnknown_81AEA59[]; -extern const u8 gUnknown_81AEAEE[]; -extern const u8 gUnknown_81AEB69[]; -extern const u8 gUnknown_81AEBDF[]; -extern const u8 gUnknown_81AEC28[]; -extern const u8 gUnknown_81AEC82[]; -extern const u8 gUnknown_81AED27[]; -extern const u8 gUnknown_81AEDAA[]; -extern const u8 gUnknown_81AEE51[]; -extern const u8 gUnknown_81AEF25[]; -extern const u8 gUnknown_81AEF6C[]; -extern const u8 gUnknown_81AEFC6[]; -extern const u8 gUnknown_81AF04C[]; -extern const u8 gUnknown_81AF0F0[]; -extern const u8 gUnknown_81AF19A[]; -extern const u8 gUnknown_81AF200[]; -extern const u8 gUnknown_81AF248[]; -extern const u8 gUnknown_81AF2B7[]; -extern const u8 gUnknown_81AF34E[]; -extern const u8 gUnknown_81AF3BE[]; -extern const u8 gUnknown_81AF47C[]; -extern const u8 gUnknown_81AF4FD[]; -extern const u8 gUnknown_81AF567[]; -extern const u8 gUnknown_81AF641[]; -extern const u8 gUnknown_81AF6BA[]; -extern const u8 gUnknown_81AF758[]; -extern const u8 gUnknown_81AF7CB[]; -extern const u8 gUnknown_81AF83E[]; -extern const u8 gUnknown_81AF8CA[]; -extern const u8 gUnknown_81AF929[]; -extern const u8 gUnknown_81AF998[]; -extern const u8 gUnknown_81AFA20[]; -extern const u8 gUnknown_81AFAB9[]; -extern const u8 gUnknown_81AFB0C[]; -extern const u8 gUnknown_81AFB76[]; -extern const u8 gUnknown_81AFC38[]; -extern const u8 gUnknown_81AFCE9[]; -extern const u8 gUnknown_81AFD49[]; -extern const u8 gUnknown_81AFDC4[]; -extern const u8 gUnknown_81AFE68[]; -extern const u8 gUnknown_81AFF23[]; -extern const u8 gUnknown_81AFFA8[]; -extern const u8 gUnknown_81B0022[]; -extern const u8 gUnknown_81B00A6[]; -extern const u8 gUnknown_81B0106[]; -extern const u8 gUnknown_81B0188[]; -extern const u8 gUnknown_81B0198[]; -extern const u8 gUnknown_81B0251[]; -extern const u8 gUnknown_81B025D[]; -extern const u8 gUnknown_81B030F[]; -extern const u8 gUnknown_81B031B[]; -extern const u8 gUnknown_81B03B3[]; -extern const u8 gUnknown_81B03BF[]; -extern const u8 gUnknown_81B0446[]; -extern const u8 gUnknown_81B0456[]; -extern const u8 gUnknown_81B0504[]; -extern const u8 gUnknown_81B0510[]; -extern const u8 gUnknown_81B05C2[]; -extern const u8 gUnknown_81B05CD[]; -extern const u8 gUnknown_81B0667[]; -extern const u8 gUnknown_81B0675[]; -extern const u8 gUnknown_81B06FB[]; -extern const u8 gUnknown_81B0708[]; -extern const u8 gUnknown_81B079F[]; -extern const u8 gUnknown_81B07AD[]; -extern const u8 gUnknown_81B0845[]; -extern const u8 gUnknown_81B0851[]; -extern const u8 gUnknown_81B08EE[]; -extern const u8 gUnknown_81B08FB[]; -extern const u8 gUnknown_81B097F[]; -extern const u8 gUnknown_81B098B[]; -extern const u8 gUnknown_81B0A45[]; -extern const u8 gUnknown_81B0A50[]; -extern const u8 gUnknown_81B0AFF[]; -extern const u8 gUnknown_81B0B0E[]; -extern const u8 gUnknown_81B0BA6[]; -extern const u8 gUnknown_81B0BB5[]; -extern const u8 gUnknown_81B0C45[]; -extern const u8 gUnknown_81B0C51[]; -extern const u8 gUnknown_81B0C5E[]; -extern const u8 gUnknown_81B0C6B[]; -extern const u8 gUnknown_81B0C79[]; -extern const u8 gUnknown_81B0C88[]; -extern const u8 gUnknown_81B0C95[]; -extern const u8 gUnknown_81B0CA2[]; -extern const u8 gUnknown_81B0CB1[]; -extern const u8 gUnknown_81B0CC1[]; -extern const u8 gUnknown_81B0CCF[]; -extern const u8 gUnknown_81B0CDF[]; -extern const u8 gUnknown_81B0CEB[]; -extern const u8 gUnknown_81B0CF7[]; -extern const u8 gUnknown_81B0D02[]; -extern const u8 gUnknown_81B0D0E[]; -extern const u8 gUnknown_81B0D16[]; -extern const u8 gUnknown_81B0D1F[]; -extern const u8 gUnknown_81B0D2D[]; -extern const u8 gUnknown_81B0D3B[]; -extern const u8 gUnknown_81B0D48[]; -extern const u8 gUnknown_81B0D55[]; -extern const u8 gUnknown_81B0D65[]; -extern const u8 gUnknown_81B0D73[]; -extern const u8 gUnknown_81B0D81[]; -extern const u8 gUnknown_81B0D90[]; -extern const u8 gUnknown_81B0D9E[]; -extern const u8 gUnknown_81B0DAC[]; -extern const u8 gUnknown_81B0DBA[]; -extern const u8 gUnknown_81B0DC8[]; -extern const u8 gUnknown_81B0DD7[]; -extern const u8 gUnknown_81B0DE4[]; -extern const u8 gUnknown_81B0DF0[]; -extern const u8 gUnknown_81B0DFC[]; -extern const u8 gUnknown_81B0E08[]; -extern const u8 gUnknown_81B0E14[]; -extern const u8 gUnknown_81B0E24[]; -extern const u8 gUnknown_81B0E31[]; -extern const u8 gUnknown_81B0E3D[]; -extern const u8 gUnknown_81B0E49[]; -extern const u8 gUnknown_81B0E56[]; -extern const u8 gUnknown_81B0E63[]; -extern const u8 gUnknown_81B0E6F[]; -extern const u8 gUnknown_81B0E7C[]; -extern const u8 gUnknown_81B0E89[]; -extern const u8 gUnknown_81B0E95[]; -extern const u8 gUnknown_81B0EA1[]; -extern const u8 gUnknown_81B0EAE[]; -extern const u8 gUnknown_81B0EBA[]; -extern const u8 gUnknown_81B0ECA[]; -extern const u8 gUnknown_81B0ED7[]; -extern const u8 gUnknown_81B0EE4[]; -extern const u8 gUnknown_81B0EF4[]; -extern const u8 gUnknown_81B0F01[]; -extern const u8 gUnknown_81B0F11[]; -extern const u8 gUnknown_81B0F20[]; -extern const u8 gUnknown_81B0F2F[]; -extern const u8 gUnknown_81B0F3B[]; -extern const u8 gUnknown_81B0F47[]; -extern const u8 gUnknown_81B0F53[]; -extern const u8 gUnknown_81B0F5F[]; -extern const u8 gUnknown_81B0F6E[]; -extern const u8 gUnknown_81B0F7D[]; -extern const u8 gUnknown_81B0F8A[]; -extern const u8 gUnknown_81B0F94[]; -extern const u8 gUnknown_81B0F9F[]; -extern const u8 gUnknown_81B0FAE[]; -extern const u8 gUnknown_81B0FBD[]; -extern const u8 gUnknown_81B0FCC[]; -extern const u8 gUnknown_81B0FDB[]; -extern const u8 gUnknown_81B0FE8[]; -extern const u8 gUnknown_81B0FF7[]; -extern const u8 gUnknown_81B1002[]; -extern const u8 gUnknown_81B1011[]; -extern const u8 gUnknown_81B1020[]; -extern const u8 gUnknown_81B102D[]; -extern const u8 gUnknown_81B103B[]; -extern const u8 gUnknown_81B104A[]; -extern const u8 gUnknown_81B1059[]; -extern const u8 gUnknown_81B1067[]; -extern const u8 gUnknown_81B1075[]; -extern const u8 gUnknown_81B1082[]; -extern const u8 gUnknown_81B108D[]; -extern const u8 gUnknown_81B1098[]; -extern const u8 gUnknown_81B10A3[]; -extern const u8 gUnknown_81B10B1[]; -extern const u8 gUnknown_81B10BF[]; -extern const u8 gUnknown_81B10CD[]; -extern const u8 gUnknown_81B10DB[]; -extern const u8 gUnknown_81B10E8[]; -extern const u8 gUnknown_81B10F8[]; -extern const u8 gUnknown_81B1107[]; -extern const u8 gUnknown_81B1111[]; -extern const u8 gUnknown_81B111B[]; -extern const u8 gUnknown_81B1128[]; -extern const u8 gUnknown_81B1135[]; -extern const u8 gUnknown_81B1146[]; -extern const u8 gUnknown_81B114B[]; -extern const u8 gUnknown_81B1155[]; -extern const u8 gUnknown_81B115A[]; -extern const u8 gUnknown_81B116A[]; -extern const u8 gUnknown_81B1171[]; -extern const u8 gUnknown_81B1176[]; -extern const u8 gUnknown_81B117B[]; -extern const u8 gUnknown_81B1181[]; -extern const u8 gUnknown_81B1185[]; -extern const u8 gUnknown_81B1195[]; -extern const u8 gUnknown_81B119E[]; -extern const u8 gUnknown_81B11AE[]; -extern const u8 gUnknown_81B11B3[]; -extern const u8 gUnknown_81B11B9[]; -extern const u8 gUnknown_81B11C3[]; -extern const u8 gUnknown_81B11C7[]; -extern const u8 gUnknown_81B11CB[]; -extern const u8 gUnknown_81B11DB[]; -extern const u8 gUnknown_81B11E0[]; -extern const u8 gUnknown_81B11E6[]; -extern const u8 gUnknown_81B11EB[]; -extern const u8 gUnknown_81B11F5[]; -extern const u8 gUnknown_81B11FA[]; -extern const u8 gUnknown_81B120A[]; -extern const u8 gUnknown_81B120F[]; -extern const u8 gUnknown_81B1219[]; -extern const u8 gUnknown_81B1220[]; -extern const u8 gUnknown_81B1227[]; -extern const u8 gUnknown_81B122E[]; -extern const u8 gUnknown_81B123E[]; -extern const u8 gUnknown_81B1243[]; -extern const u8 gUnknown_81B1249[]; -extern const u8 gUnknown_81B124E[]; -extern const u8 gUnknown_81B1254[]; -extern const u8 gUnknown_81B125A[]; -extern const u8 gUnknown_81B126A[]; -extern const u8 gUnknown_81B126F[]; -extern const u8 gUnknown_81B1274[]; -extern const u8 gUnknown_81B1279[]; -extern const u8 gUnknown_81B1281[]; -extern const u8 gUnknown_81B1291[]; -extern const u8 gUnknown_81B1295[]; -extern const u8 gUnknown_81B129A[]; -extern const u8 gUnknown_81B12A4[]; -extern const u8 gUnknown_81B12AC[]; -extern const u8 gUnknown_81B12B4[]; -extern const u8 gUnknown_81B12C4[]; -extern const u8 gUnknown_81B12CA[]; -extern const u8 gUnknown_81B12CF[]; -extern const u8 gUnknown_81B12D6[]; -extern const u8 gUnknown_81B12DC[]; -extern const u8 gUnknown_81B12E2[]; -extern const u8 gUnknown_81B12E8[]; -extern const u8 gUnknown_81B12F8[]; -extern const u8 gUnknown_81B1300[]; -extern const u8 gUnknown_81B1308[]; -extern const u8 gUnknown_81B1310[]; -extern const u8 gUnknown_81B1320[]; -extern const u8 gUnknown_81B132C[]; -extern const u8 gUnknown_81B1335[]; -extern const u8 gUnknown_81B133B[]; -extern const u8 gUnknown_81B1341[]; -extern const u8 gUnknown_81B1351[]; -extern const u8 gUnknown_81B1359[]; -extern const u8 gUnknown_81B135F[]; -extern const u8 gUnknown_81B1367[]; -extern const u8 gUnknown_81B136E[]; -extern const u8 gUnknown_81B1376[]; -extern const u8 gUnknown_81B137E[]; -extern const u8 gUnknown_81B138E[]; -extern const u8 gUnknown_81B1395[]; -extern const u8 gUnknown_81B139E[]; -extern const u8 gUnknown_81B13A4[]; -extern const u8 gUnknown_81B13AA[]; -extern const u8 gUnknown_81B13B0[]; -extern const u8 gUnknown_81B13BC[]; -extern const u8 gUnknown_81B13CC[]; -extern const u8 gUnknown_81B13D6[]; -extern const u8 gUnknown_81B13D9[]; -extern const u8 gUnknown_81B13E4[]; -extern const u8 gUnknown_81B13EC[]; -extern const u8 gUnknown_81B13F2[]; -extern const u8 gUnknown_81B13F8[]; -extern const u8 gUnknown_81B13FE[]; -extern const u8 gUnknown_81B140A[]; -extern const u8 gUnknown_81B1416[]; -extern const u8 gUnknown_81B141F[]; -extern const u8 gUnknown_81B1423[]; -extern const u8 gUnknown_81B1429[]; -extern const u8 gUnknown_81B1439[]; -extern const u8 gUnknown_81B1442[]; -extern const u8 gUnknown_81B144C[]; -extern const u8 gUnknown_81B1456[]; -extern const u8 gUnknown_81B145F[]; -extern const u8 gUnknown_81B1463[]; +extern const u8 gFameCheckerFlavorText_ProfOak0[]; +extern const u8 gFameCheckerFlavorText_ProfOak1[]; +extern const u8 gFameCheckerFlavorText_ProfOak2[]; +extern const u8 gFameCheckerFlavorText_ProfOak3[]; +extern const u8 gFameCheckerFlavorText_ProfOak4[]; +extern const u8 gFameCheckerFlavorText_ProfOak5[]; +extern const u8 gFameCheckerFlavorText_Daisy0[]; +extern const u8 gFameCheckerFlavorText_Daisy1[]; +extern const u8 gFameCheckerFlavorText_Daisy2[]; +extern const u8 gFameCheckerFlavorText_Daisy3[]; +extern const u8 gFameCheckerFlavorText_Daisy4[]; +extern const u8 gFameCheckerFlavorText_Daisy5[]; +extern const u8 gFameCheckerFlavorText_Brock0[]; +extern const u8 gFameCheckerFlavorText_Brock1[]; +extern const u8 gFameCheckerFlavorText_Brock2[]; +extern const u8 gFameCheckerFlavorText_Brock3[]; +extern const u8 gFameCheckerFlavorText_Brock4[]; +extern const u8 gFameCheckerFlavorText_Brock5[]; +extern const u8 gFameCheckerFlavorText_Misty0[]; +extern const u8 gFameCheckerFlavorText_Misty1[]; +extern const u8 gFameCheckerFlavorText_Misty2[]; +extern const u8 gFameCheckerFlavorText_Misty3[]; +extern const u8 gFameCheckerFlavorText_Misty4[]; +extern const u8 gFameCheckerFlavorText_Misty5[]; +extern const u8 gFameCheckerFlavorText_LtSurge0[]; +extern const u8 gFameCheckerFlavorText_LtSurge1[]; +extern const u8 gFameCheckerFlavorText_LtSurge2[]; +extern const u8 gFameCheckerFlavorText_LtSurge3[]; +extern const u8 gFameCheckerFlavorText_LtSurge4[]; +extern const u8 gFameCheckerFlavorText_LtSurge5[]; +extern const u8 gFameCheckerFlavorText_Erika0[]; +extern const u8 gFameCheckerFlavorText_Erika1[]; +extern const u8 gFameCheckerFlavorText_Erika2[]; +extern const u8 gFameCheckerFlavorText_Erika3[]; +extern const u8 gFameCheckerFlavorText_Erika4[]; +extern const u8 gFameCheckerFlavorText_Erika5[]; +extern const u8 gFameCheckerFlavorText_Koga0[]; +extern const u8 gFameCheckerFlavorText_Koga1[]; +extern const u8 gFameCheckerFlavorText_Koga2[]; +extern const u8 gFameCheckerFlavorText_Koga3[]; +extern const u8 gFameCheckerFlavorText_Koga4[]; +extern const u8 gFameCheckerFlavorText_Koga5[]; +extern const u8 gFameCheckerFlavorText_Sabrina0[]; +extern const u8 gFameCheckerFlavorText_Sabrina1[]; +extern const u8 gFameCheckerFlavorText_Sabrina2[]; +extern const u8 gFameCheckerFlavorText_Sabrina3[]; +extern const u8 gFameCheckerFlavorText_Sabrina4[]; +extern const u8 gFameCheckerFlavorText_Sabrina5[]; +extern const u8 gFameCheckerFlavorText_Blaine0[]; +extern const u8 gFameCheckerFlavorText_Blaine1[]; +extern const u8 gFameCheckerFlavorText_Blaine2[]; +extern const u8 gFameCheckerFlavorText_Blaine3[]; +extern const u8 gFameCheckerFlavorText_Blaine4[]; +extern const u8 gFameCheckerFlavorText_Blaine5[]; +extern const u8 gFameCheckerFlavorText_Lorelei0[]; +extern const u8 gFameCheckerFlavorText_Lorelei1[]; +extern const u8 gFameCheckerFlavorText_Lorelei2[]; +extern const u8 gFameCheckerFlavorText_Lorelei3[]; +extern const u8 gFameCheckerFlavorText_Lorelei4[]; +extern const u8 gFameCheckerFlavorText_Lorelei5[]; +extern const u8 gFameCheckerFlavorText_Bruno0[]; +extern const u8 gFameCheckerFlavorText_Bruno1[]; +extern const u8 gFameCheckerFlavorText_Bruno2[]; +extern const u8 gFameCheckerFlavorText_Bruno3[]; +extern const u8 gFameCheckerFlavorText_Bruno4[]; +extern const u8 gFameCheckerFlavorText_Bruno5[]; +extern const u8 gFameCheckerFlavorText_Agatha0[]; +extern const u8 gFameCheckerFlavorText_Agatha1[]; +extern const u8 gFameCheckerFlavorText_Agatha2[]; +extern const u8 gFameCheckerFlavorText_Agatha3[]; +extern const u8 gFameCheckerFlavorText_Agatha4[]; +extern const u8 gFameCheckerFlavorText_Agatha5[]; +extern const u8 gFameCheckerFlavorText_Lance0[]; +extern const u8 gFameCheckerFlavorText_Lance1[]; +extern const u8 gFameCheckerFlavorText_Lance2[]; +extern const u8 gFameCheckerFlavorText_Lance3[]; +extern const u8 gFameCheckerFlavorText_Lance4[]; +extern const u8 gFameCheckerFlavorText_Lance5[]; +extern const u8 gFameCheckerFlavorText_Bill0[]; +extern const u8 gFameCheckerFlavorText_Bill1[]; +extern const u8 gFameCheckerFlavorText_Bill2[]; +extern const u8 gFameCheckerFlavorText_Bill3[]; +extern const u8 gFameCheckerFlavorText_Bill4[]; +extern const u8 gFameCheckerFlavorText_Bill5[]; +extern const u8 gFameCheckerFlavorText_MrFuji0[]; +extern const u8 gFameCheckerFlavorText_MrFuji1[]; +extern const u8 gFameCheckerFlavorText_MrFuji2[]; +extern const u8 gFameCheckerFlavorText_MrFuji3[]; +extern const u8 gFameCheckerFlavorText_MrFuji4[]; +extern const u8 gFameCheckerFlavorText_MrFuji5[]; +extern const u8 gFameCheckerFlavorText_Giovanni0[]; +extern const u8 gFameCheckerFlavorText_Giovanni1[]; +extern const u8 gFameCheckerFlavorText_Giovanni2[]; +extern const u8 gFameCheckerFlavorText_Giovanni3[]; +extern const u8 gFameCheckerFlavorText_Giovanni4[]; +extern const u8 gFameCheckerFlavorText_Giovanni5[]; +extern const u8 gFameCheckerPersonName_ProfOak[]; +extern const u8 gFameCheckerPersonQuote_ProfOak[]; +extern const u8 gFameCheckerPersonName_Daisy[]; +extern const u8 gFameCheckerPersonQuote_Daisy[]; +extern const u8 gFameCheckerPersonName_Brock[]; +extern const u8 gFameCheckerPersonQuote_Brock[]; +extern const u8 gFameCheckerPersonName_Misty[]; +extern const u8 gFameCheckerPersonQuote_Misty[]; +extern const u8 gFameCheckerPersonName_LtSurge[]; +extern const u8 gFameCheckerPersonQuote_LtSurge[]; +extern const u8 gFameCheckerPersonName_Erika[]; +extern const u8 gFameCheckerPersonQuote_Erika[]; +extern const u8 gFameCheckerPersonName_Koga[]; +extern const u8 gFameCheckerPersonQuote_Koga[]; +extern const u8 gFameCheckerPersonName_Sabrina[]; +extern const u8 gFameCheckerPersonQuote_Sabrina[]; +extern const u8 gFameCheckerPersonName_Blaine[]; +extern const u8 gFameCheckerPersonQuote_Blaine[]; +extern const u8 gFameCheckerPersonName_Lorelei[]; +extern const u8 gFameCheckerPersonQuote_Lorelei[]; +extern const u8 gFameCheckerPersonName_Bruno[]; +extern const u8 gFameCheckerPersonQuote_Bruno[]; +extern const u8 gFameCheckerPersonName_Agatha[]; +extern const u8 gFameCheckerPersonQuote_Agatha[]; +extern const u8 gFameCheckerPersonName_Lance[]; +extern const u8 gFameCheckerPersonQuote_Lance[]; +extern const u8 gFameCheckerPersonName_Bill[]; +extern const u8 gFameCheckerPersonQuote_Bill[]; +extern const u8 gFameCheckerPersonName_MrFuji[]; +extern const u8 gFameCheckerPersonQuote_MrFuji[]; +extern const u8 gFameCheckerPersonName_Giovanni[]; +extern const u8 gFameCheckerPersonQuote_Giovanni[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Brock5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Misty5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Erika5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Koga5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Lance5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Bill5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji5[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni0[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni1[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni2[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni3[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni4[]; +extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji5[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni0[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni1[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni2[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni3[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[]; +extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[]; #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/fame_checker.h b/include/fame_checker.h index fad629108..2849eef09 100644 --- a/include/fame_checker.h +++ b/include/fame_checker.h @@ -19,7 +19,8 @@ enum { FAMECHECKER_LANCE, FAMECHECKER_BILL, FAMECHECKER_MRFUJI, - FAMECHECKER_GIOVANNI + FAMECHECKER_GIOVANNI, + NUM_FAMECHECKER_PERSONS }; enum { @@ -28,7 +29,17 @@ enum { FCPICKSTATE_COLORED }; +enum { + FCWINDOWID_LIST, + FCWINDOWID_UIHELP, + FCWINDOWID_MSGBOX, + FCWINDOWID_ICONDESC +}; + void ResetFameChecker(void); +void FullyUnlockFameChecker(void); void UseFameChecker(MainCallback savedCallback); +void SetFlavorTextFlagFromSpecialVars(void); +void UpdatePickStateFromSpecialVar8005(void); #endif //GUARD_FAME_CHECKER_H diff --git a/include/global.h b/include/global.h index d99f912ae..b81b29381 100644 --- a/include/global.h +++ b/include/global.h @@ -572,6 +572,8 @@ struct QuestLog /*0x0668*/ u16 end[0]; }; +#include "fame_checker.h" + struct FameCheckerSaveData { /*3a54*/ u16 pickState:2; @@ -643,7 +645,7 @@ struct SaveBlock1 /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; - /*0x3A54*/ struct FameCheckerSaveData fameChecker[16]; + /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x2A4]; u32 unkArray[4][3]; }; diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 2ff20eb39..2a68a35e6 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -18,6 +18,6 @@ u8 GetPlayerTextSpeed(void); void sub_80F6F54(u8, u8); u8 sub_80F78A8(void); void sub_80F6E9C(void); -void sub_80F6EE4(u8, u8); +void sub_80F6EE4(u8 windowId, bool8 transfer); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 723fffefe..46c13c387 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -27,14 +27,16 @@ #include "text_window.h" #include "fame_checker.h" -#define SPRITETAG_1000 1000 -#define SPRITETAG_1001 1001 -#define SPRITETAG_1002 1002 -#define SPRITETAG_1004 1004 -#define SPRITETAG_1006 1006 -#define SPRITETAG_1007 1007 -#define SPRITETAG_1008 1008 -#define SPRITETAG_1009 1009 +#define SPRITETAG_SELECTOR_CURSOR 1000 +#define SPRITETAG_QUESTION_MARK 1001 +#define SPRITETAG_SPINNING_POKEBALL 1002 +#define SPRITETAG_SCROLL_INDICATORS 1004 +#define SPRITETAG_DAISY 1006 +#define SPRITETAG_FUJI 1007 +#define SPRITETAG_OAK 1008 +#define SPRITETAG_BILL 1009 + +#define FC_NONTRAINER_START 0xFE00 struct FameCheckerData { @@ -44,11 +46,11 @@ struct FameCheckerData u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; - u8 scrollIndicatorArrowObjectTaskId; + u8 listMenuTaskId; u8 listMenuCurIdx; u8 listMenuTopIdx2; u8 listMenuDrawnSelIdx; - u8 unlockedPersons[17]; + u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; u8 unk_23_0:1; u8 unk_23_1:1; @@ -65,74 +67,73 @@ static EWRAM_DATA s32 sLastMenuIdx = 0; struct ListMenuTemplate gFameChecker_ListMenuTemplate; u8 gUnknown_3005EC8; -static void sub_812C3F8(void); -static void sub_812C648(void); -static void sub_812C664(u8 taskId); -static void sub_812C694(u8 taskId); -static bool8 sub_812C8F8(u8 taskId); -static void sub_812C990(void); -static void sub_812C9BC(u8 taskId); -static void sub_812CA1C(u8 taskId); -static void sub_812CAD8(u8 taskId); -static void sub_812CC68(u8 taskId, s8 dx, s8 dy); -static void sub_812CD3C(void); -static void sub_812CE04(u8 taskId); -static void sub_812CE9C(void); -static void sub_812CEC0(void); -static void sub_812CEE0(u8 windowId); -static bool8 sub_812CEFC(u8 taskId, u8 objMode); -static void sub_812CF3C(u8 taskId); -static void sub_812CF7C(u8 taskId); -static void sub_812D094(u8 windowId); -static void sub_812D0F4(u8 a0); -static bool8 sub_812D1A8(u8 a0); -static void sub_812D420(void); -static void sub_812D558(void); -static void sub_812D584(void); -static void sub_812D594(void); -static void sub_812D650(void); -static bool8 sub_812D6B4(void); -static void sub_812D70C(void); -static u8 sub_812D724(s16 a0); -static void sub_812D764(struct Sprite *sprite); -static void sub_812D770(void); +static void MainCB2_LoadFameChecker(void); +static void LoadUISpriteSheetsAndPalettes(void); +static void Task_WaitFadeOnInit(u8 taskId); +static void Task_TopMenuHandleInput(u8 taskId); +static bool8 TryExitPickMode(u8 taskId); +static void MessageBoxPrintEmptyText(void); +static void Task_EnterPickMode(u8 taskId); +static void Task_ExitPickMode(u8 taskId); +static void Task_FlavorTextDisplayHandleInput(u8 taskId); +static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy); +static void GetPickModeText(void); +static void PrintSelectedNameInBrightGreen(u8 taskId); +static void WipeMsgBoxAndTransfer(void); +static void Setup_DrawMsgAndListBoxes(void); +static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId); +static bool8 SetMessageSelectorIconObjMode(u8 taskId, u8 objMode); +static void Task_StartToCloseFameChecker(u8 taskId); +static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId); +static void FC_DestroyWindow(u8 windowId); +static void PrintUIHelp(u8 a0); +static bool8 CreateAllFlavorTextIcons(u8 a0); +static void FCSetup_ClearVideoRegisters(void); +static void FCSetup_ResetTasksAndSpriteResources(void); +static void FCSetup_TurnOnDisplay(void); +static void FCSetup_ResetBGCoords(void); +static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void); +static void FreeSelectionCursorSpriteResources(void); +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 a0); +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite); +static void FreeQuestionMarkSpriteResources(void); static u8 PlaceQuestionMarkTile(u8, u8); -static void sub_812D7C8(void); -static u8 sub_812D7E4(void); -static void sub_812D800(struct Sprite *sprite); -static void sub_812D814(void); -static u8 sub_812D888(u8 a0); -static void sub_812D9A8(u8 a0, u16 a1); -static void sub_812DA14(u8 a0); +static void FreeSpinningPokeballSpriteResources(void); +static u8 CreateSpinningPokeballSprite(void); +static void SpriteCB_DestroySpinningPokeball(struct Sprite *sprite); +static void FreeNonTrainerPicTiles(void); +static u8 CreatePersonPicSprite(u8 a0); +static void DestroyPersonPicSprite(u8 a0, u16 a1); +static void UpdateIconDescriptionBox(u8 a0); static void sub_812DB10(void); -static void sub_812DB28(void); -static void sub_812D840(struct Sprite * sprite); -static void sub_812DB64(void); -static void sub_812DBC0(s32, bool8, struct ListMenu *); +static void FC_CreateListMenu(void); +static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite); +static void InitListMenuTemplate(void); +static void FC_MoveCursorFunc(s32, bool8, struct ListMenu *); static void sub_812DD50(u8 taskId); -static void sub_812DDAC(void); -static void sub_812DDF0(s32 itemIndex, bool8 onInit); -static u8 sub_812DEF0(void); -static void sub_812DFE4(u8); -static void sub_812E000(void); -static void sub_812E048(void); +static void PrintCancelDescription(void); +static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit); +static u8 FC_PopulateListMenu(void); +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId); +static void FC_CreateScrollIndicatorArrowPair(void); +static void FreeListMenuSelectorArrowPairResources(void); static u16 FameCheckerGetCursorY(void); -static void sub_812E094(u8); +static void FlipBitUnk23_0(bool8); static void sub_812E110(u8 taskId); static void sub_812E178(u8 a0, s16 a1); -static void sub_812E4A4(u8 a0); +static void PlaceListMenuCursor(bool8 a0); -extern const u8 gUnknown_84161C1[]; -extern const u8 gUnknown_841623B[]; -extern const u8 gUnknown_84181C3[]; -extern const u8 gUnknown_84181E4[]; -extern const u8 gUnknown_841E5A4[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" -extern const u8 gUnknown_841E5B9[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gUnknown_841E5D2[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" -extern const u8 gUnknown_841E5E9[]; // "OAK$" -extern const u8 gUnknown_841E5ED[]; // "DAISY$" -extern const u8 gUnknown_841E5F3[]; // "BILL$" -extern const u8 gUnknown_841E5F8[]; // "FUJI$" +extern const u8 gFameCheckerText_Cancel[]; +extern const u8 gFameCheckerText_ListMenuCursor[]; +extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; +extern const u8 gFameCheckerText_ClearTextbox[]; +extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" +extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" +extern const u8 gFameCheckerOakName[]; // "OAK$" +extern const u8 gFameCheckerDaisyName[]; // "DAISY$" +extern const u8 gFameCheckerBillName[]; // "BILL$" +extern const u8 gFameCheckerMrFujiName[]; // "FUJI$" static const u16 sFameCheckerTilemap[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); static const u8 sQuestionMarkSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); @@ -149,95 +150,65 @@ static const u16 sDaisySpritePalette[] = INCBIN_U16("data/fame_checker/pal_845ed static const u8 sOakSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); static const u16 sOakSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); -static const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); +static const u16 sSilhouettePalette[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); -static const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; -static const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; -static const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; +static const struct TextColor gUnknown_845F5E0 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; +static const struct TextColor gUnknown_845F5E3 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; +static const struct TextColor gUnknown_845F5E6 = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; -static const u16 gUnknown_845F5EA[] = { - 0xfe00, - 0xfe01, - 0x019e, - 0x019f, - 0x01a0, - 0x01a1, - 0x01a2, - 0x01a4, - 0x01a3, - 0x019a, - 0x019b, - 0x019c, - 0x019d, - 0xfe02, - 0xfe03, - 0x015c +static const u16 sTrainerIdxs[] = { + FC_NONTRAINER_START + 0, // OAK + FC_NONTRAINER_START + 1, // DAISY + 0x019e, // BROCK + 0x019f, // MISTY + 0x01a0, // LTSURGE + 0x01a1, // ERIKA + 0x01a2, // KOGA + 0x01a4, // SABRINA + 0x01a3, // BLAINE + 0x019a, // LORELEI + 0x019b, // BRUNO + 0x019c, // AGATHA + 0x019d, // LANCE + FC_NONTRAINER_START + 2, // BILL + FC_NONTRAINER_START + 3, // MRFUJI + 0x015c // GIOVANNI }; -static const u8 *const gUnknown_845F60C[] = { - gUnknown_841E5E9, - gUnknown_841E5ED, - gUnknown_841E5F3, - gUnknown_841E5F8 +static const u8 *const sNonTrainerNamePointers[] = { + gFameCheckerOakName, + gFameCheckerDaisyName, + gFameCheckerBillName, + gFameCheckerMrFujiName }; -static const u8 gUnknown_845F61C[] = { +static const u8 sFameCheckerTrainerPicIdxs[] = { 0x56, 0x54, 0x74, 0x75, 0x76, 0x77, 0x78, 0x7a, 0x79, 0x70, 0x71, 0x72, 0x73, 0x64, 0x7b, 0x6c, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 + 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 // these values are unused }; -static const u8 *const gUnknown_845F63C[] = { - gUnknown_81B0188, - gUnknown_81B0251, - gUnknown_81B030F, - gUnknown_81B03B3, - gUnknown_81B0446, - gUnknown_81B0504, - gUnknown_81B05C2, - gUnknown_81B0667, - gUnknown_81B06FB, - gUnknown_81B079F, - gUnknown_81B0845, - gUnknown_81B08EE, - gUnknown_81B097F, - gUnknown_81B0A45, - gUnknown_81B0AFF, - gUnknown_81B0BA6, - gUnknown_81B0198, - gUnknown_81B025D, - gUnknown_81B031B, - gUnknown_81B03BF, - gUnknown_81B0456, - gUnknown_81B0510, - gUnknown_81B05CD, - gUnknown_81B0675, - gUnknown_81B0708, - gUnknown_81B07AD, - gUnknown_81B0851, - gUnknown_81B08FB, - gUnknown_81B098B, - gUnknown_81B0A50, - gUnknown_81B0B0E, - gUnknown_81B0BB5 +static const u8 *const sFameCheckerNameAndQuotesPointers[] = { + gFameCheckerPersonName_ProfOak, gFameCheckerPersonName_Daisy, gFameCheckerPersonName_Brock, gFameCheckerPersonName_Misty, gFameCheckerPersonName_LtSurge, gFameCheckerPersonName_Erika, gFameCheckerPersonName_Koga, gFameCheckerPersonName_Sabrina, gFameCheckerPersonName_Blaine, gFameCheckerPersonName_Lorelei, gFameCheckerPersonName_Bruno, gFameCheckerPersonName_Agatha, gFameCheckerPersonName_Lance, gFameCheckerPersonName_Bill, gFameCheckerPersonName_MrFuji, gFameCheckerPersonName_Giovanni, + gFameCheckerPersonQuote_ProfOak, gFameCheckerPersonQuote_Daisy, gFameCheckerPersonQuote_Brock, gFameCheckerPersonQuote_Misty, gFameCheckerPersonQuote_LtSurge, gFameCheckerPersonQuote_Erika, gFameCheckerPersonQuote_Koga, gFameCheckerPersonQuote_Sabrina, gFameCheckerPersonQuote_Blaine, gFameCheckerPersonQuote_Lorelei, gFameCheckerPersonQuote_Bruno, gFameCheckerPersonQuote_Agatha, gFameCheckerPersonQuote_Lance, gFameCheckerPersonQuote_Bill, gFameCheckerPersonQuote_MrFuji, gFameCheckerPersonQuote_Giovanni }; -static const u8 *const gUnknown_845F6BC[] = { - gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, - gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, - gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, - gUnknown_81ADA91, gUnknown_81ADAF6, gUnknown_81ADB5A, gUnknown_81ADBD9, gUnknown_81ADC72, gUnknown_81ADCEB, - gUnknown_81ADD3C, gUnknown_81ADDA7, gUnknown_81ADE0B, gUnknown_81ADE82, gUnknown_81ADEEC, gUnknown_81ADF6A, - gUnknown_81AE009, gUnknown_81AE072, gUnknown_81AE0F3, gUnknown_81AE15B, gUnknown_81AE1E5, gUnknown_81AE247, - gUnknown_81AE2B6, gUnknown_81AE31D, gUnknown_81AE37D, gUnknown_81AE407, gUnknown_81AE48D, gUnknown_81AE51B, - gUnknown_81AE5E8, gUnknown_81AE656, gUnknown_81AE6D7, gUnknown_81AE762, gUnknown_81AE7CB, gUnknown_81AE841, - gUnknown_81AE89E, gUnknown_81AE90A, gUnknown_81AE990, gUnknown_81AEA59, gUnknown_81AEAEE, gUnknown_81AEB69, - gUnknown_81AEBDF, gUnknown_81AEC28, gUnknown_81AEC82, gUnknown_81AED27, gUnknown_81AEDAA, gUnknown_81AEE51, - gUnknown_81AEF25, gUnknown_81AEF6C, gUnknown_81AEFC6, gUnknown_81AF04C, gUnknown_81AF0F0, gUnknown_81AF19A, - gUnknown_81AF200, gUnknown_81AF248, gUnknown_81AF2B7, gUnknown_81AF34E, gUnknown_81AF3BE, gUnknown_81AF47C, - gUnknown_81AF4FD, gUnknown_81AF567, gUnknown_81AF641, gUnknown_81AF6BA, gUnknown_81AF758, gUnknown_81AF7CB, - gUnknown_81AF83E, gUnknown_81AF8CA, gUnknown_81AF929, gUnknown_81AF998, gUnknown_81AFA20, gUnknown_81AFAB9, - gUnknown_81AFB0C, gUnknown_81AFB76, gUnknown_81AFC38, gUnknown_81AFCE9, gUnknown_81AFD49, gUnknown_81AFDC4, - gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 +static const u8 *const sFameCheckerFlavorTextPointers[] = { + gFameCheckerFlavorText_ProfOak0, gFameCheckerFlavorText_ProfOak1, gFameCheckerFlavorText_ProfOak2, gFameCheckerFlavorText_ProfOak3, gFameCheckerFlavorText_ProfOak4, gFameCheckerFlavorText_ProfOak5, + gFameCheckerFlavorText_Daisy0, gFameCheckerFlavorText_Daisy1, gFameCheckerFlavorText_Daisy2, gFameCheckerFlavorText_Daisy3, gFameCheckerFlavorText_Daisy4, gFameCheckerFlavorText_Daisy5, + gFameCheckerFlavorText_Brock0, gFameCheckerFlavorText_Brock1, gFameCheckerFlavorText_Brock2, gFameCheckerFlavorText_Brock3, gFameCheckerFlavorText_Brock4, gFameCheckerFlavorText_Brock5, + gFameCheckerFlavorText_Misty0, gFameCheckerFlavorText_Misty1, gFameCheckerFlavorText_Misty2, gFameCheckerFlavorText_Misty3, gFameCheckerFlavorText_Misty4, gFameCheckerFlavorText_Misty5, + gFameCheckerFlavorText_LtSurge0, gFameCheckerFlavorText_LtSurge1, gFameCheckerFlavorText_LtSurge2, gFameCheckerFlavorText_LtSurge3, gFameCheckerFlavorText_LtSurge4, gFameCheckerFlavorText_LtSurge5, + gFameCheckerFlavorText_Erika0, gFameCheckerFlavorText_Erika1, gFameCheckerFlavorText_Erika2, gFameCheckerFlavorText_Erika3, gFameCheckerFlavorText_Erika4, gFameCheckerFlavorText_Erika5, + gFameCheckerFlavorText_Koga0, gFameCheckerFlavorText_Koga1, gFameCheckerFlavorText_Koga2, gFameCheckerFlavorText_Koga3, gFameCheckerFlavorText_Koga4, gFameCheckerFlavorText_Koga5, + gFameCheckerFlavorText_Sabrina0, gFameCheckerFlavorText_Sabrina1, gFameCheckerFlavorText_Sabrina2, gFameCheckerFlavorText_Sabrina3, gFameCheckerFlavorText_Sabrina4, gFameCheckerFlavorText_Sabrina5, + gFameCheckerFlavorText_Blaine0, gFameCheckerFlavorText_Blaine1, gFameCheckerFlavorText_Blaine2, gFameCheckerFlavorText_Blaine3, gFameCheckerFlavorText_Blaine4, gFameCheckerFlavorText_Blaine5, + gFameCheckerFlavorText_Lorelei0, gFameCheckerFlavorText_Lorelei1, gFameCheckerFlavorText_Lorelei2, gFameCheckerFlavorText_Lorelei3, gFameCheckerFlavorText_Lorelei4, gFameCheckerFlavorText_Lorelei5, + gFameCheckerFlavorText_Bruno0, gFameCheckerFlavorText_Bruno1, gFameCheckerFlavorText_Bruno2, gFameCheckerFlavorText_Bruno3, gFameCheckerFlavorText_Bruno4, gFameCheckerFlavorText_Bruno5, + gFameCheckerFlavorText_Agatha0, gFameCheckerFlavorText_Agatha1, gFameCheckerFlavorText_Agatha2, gFameCheckerFlavorText_Agatha3, gFameCheckerFlavorText_Agatha4, gFameCheckerFlavorText_Agatha5, + gFameCheckerFlavorText_Lance0, gFameCheckerFlavorText_Lance1, gFameCheckerFlavorText_Lance2, gFameCheckerFlavorText_Lance3, gFameCheckerFlavorText_Lance4, gFameCheckerFlavorText_Lance5, + gFameCheckerFlavorText_Bill0, gFameCheckerFlavorText_Bill1, gFameCheckerFlavorText_Bill2, gFameCheckerFlavorText_Bill3, gFameCheckerFlavorText_Bill4, gFameCheckerFlavorText_Bill5, + gFameCheckerFlavorText_MrFuji0, gFameCheckerFlavorText_MrFuji1, gFameCheckerFlavorText_MrFuji2, gFameCheckerFlavorText_MrFuji3, gFameCheckerFlavorText_MrFuji4, gFameCheckerFlavorText_MrFuji5, + gFameCheckerFlavorText_Giovanni0, gFameCheckerFlavorText_Giovanni1, gFameCheckerFlavorText_Giovanni2, gFameCheckerFlavorText_Giovanni3, gFameCheckerFlavorText_Giovanni4, gFameCheckerFlavorText_Giovanni5 }; static const u8 sFameCheckerArrayNpcGraphicsIds[] = { @@ -259,62 +230,62 @@ static const u8 sFameCheckerArrayNpcGraphicsIds[] = { 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 }; -static const u8 *const gUnknown_845F89C[] = { - gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, - gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, - gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, - gUnknown_81B0D2D, gUnknown_81B0D3B, gUnknown_81B0D48, gUnknown_81B0D55, gUnknown_81B0D65, gUnknown_81B0D73, - gUnknown_81B0D81, gUnknown_81B0D90, gUnknown_81B0D9E, gUnknown_81B0DAC, gUnknown_81B0DBA, gUnknown_81B0DC8, - gUnknown_81B0DD7, gUnknown_81B0DE4, gUnknown_81B0DF0, gUnknown_81B0DFC, gUnknown_81B0E08, gUnknown_81B0E14, - gUnknown_81B0E24, gUnknown_81B0E31, gUnknown_81B0E3D, gUnknown_81B0E49, gUnknown_81B0E56, gUnknown_81B0E63, - gUnknown_81B0E6F, gUnknown_81B0E7C, gUnknown_81B0E89, gUnknown_81B0E95, gUnknown_81B0EA1, gUnknown_81B0EAE, - gUnknown_81B0EBA, gUnknown_81B0ECA, gUnknown_81B0ED7, gUnknown_81B0EE4, gUnknown_81B0EF4, gUnknown_81B0F01, - gUnknown_81B0F11, gUnknown_81B0F20, gUnknown_81B0F2F, gUnknown_81B0F3B, gUnknown_81B0F47, gUnknown_81B0F53, - gUnknown_81B0F5F, gUnknown_81B0F6E, gUnknown_81B0F7D, gUnknown_81B0F8A, gUnknown_81B0F94, gUnknown_81B0F9F, - gUnknown_81B0FAE, gUnknown_81B0FBD, gUnknown_81B0FCC, gUnknown_81B0FDB, gUnknown_81B0FE8, gUnknown_81B0FF7, - gUnknown_81B1002, gUnknown_81B1011, gUnknown_81B1020, gUnknown_81B102D, gUnknown_81B103B, gUnknown_81B104A, - gUnknown_81B1059, gUnknown_81B1067, gUnknown_81B1075, gUnknown_81B1082, gUnknown_81B108D, gUnknown_81B1098, - gUnknown_81B10A3, gUnknown_81B10B1, gUnknown_81B10BF, gUnknown_81B10CD, gUnknown_81B10DB, gUnknown_81B10E8, - gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 +static const u8 *const sFlavorTextOriginLocationTexts[] = { + gFameCheckerFlavorTextOriginLocation_ProfOak0, gFameCheckerFlavorTextOriginLocation_ProfOak1, gFameCheckerFlavorTextOriginLocation_ProfOak2, gFameCheckerFlavorTextOriginLocation_ProfOak3, gFameCheckerFlavorTextOriginLocation_ProfOak4, gFameCheckerFlavorTextOriginLocation_ProfOak5, + gFameCheckerFlavorTextOriginLocation_Daisy0, gFameCheckerFlavorTextOriginLocation_Daisy1, gFameCheckerFlavorTextOriginLocation_Daisy2, gFameCheckerFlavorTextOriginLocation_Daisy3, gFameCheckerFlavorTextOriginLocation_Daisy4, gFameCheckerFlavorTextOriginLocation_Daisy5, + gFameCheckerFlavorTextOriginLocation_Brock0, gFameCheckerFlavorTextOriginLocation_Brock1, gFameCheckerFlavorTextOriginLocation_Brock2, gFameCheckerFlavorTextOriginLocation_Brock3, gFameCheckerFlavorTextOriginLocation_Brock4, gFameCheckerFlavorTextOriginLocation_Brock5, + gFameCheckerFlavorTextOriginLocation_Misty0, gFameCheckerFlavorTextOriginLocation_Misty1, gFameCheckerFlavorTextOriginLocation_Misty2, gFameCheckerFlavorTextOriginLocation_Misty3, gFameCheckerFlavorTextOriginLocation_Misty4, gFameCheckerFlavorTextOriginLocation_Misty5, + gFameCheckerFlavorTextOriginLocation_LtSurge0, gFameCheckerFlavorTextOriginLocation_LtSurge1, gFameCheckerFlavorTextOriginLocation_LtSurge2, gFameCheckerFlavorTextOriginLocation_LtSurge3, gFameCheckerFlavorTextOriginLocation_LtSurge4, gFameCheckerFlavorTextOriginLocation_LtSurge5, + gFameCheckerFlavorTextOriginLocation_Erika0, gFameCheckerFlavorTextOriginLocation_Erika1, gFameCheckerFlavorTextOriginLocation_Erika2, gFameCheckerFlavorTextOriginLocation_Erika3, gFameCheckerFlavorTextOriginLocation_Erika4, gFameCheckerFlavorTextOriginLocation_Erika5, + gFameCheckerFlavorTextOriginLocation_Koga0, gFameCheckerFlavorTextOriginLocation_Koga1, gFameCheckerFlavorTextOriginLocation_Koga2, gFameCheckerFlavorTextOriginLocation_Koga3, gFameCheckerFlavorTextOriginLocation_Koga4, gFameCheckerFlavorTextOriginLocation_Koga5, + gFameCheckerFlavorTextOriginLocation_Sabrina0, gFameCheckerFlavorTextOriginLocation_Sabrina1, gFameCheckerFlavorTextOriginLocation_Sabrina2, gFameCheckerFlavorTextOriginLocation_Sabrina3, gFameCheckerFlavorTextOriginLocation_Sabrina4, gFameCheckerFlavorTextOriginLocation_Sabrina5, + gFameCheckerFlavorTextOriginLocation_Blaine0, gFameCheckerFlavorTextOriginLocation_Blaine1, gFameCheckerFlavorTextOriginLocation_Blaine2, gFameCheckerFlavorTextOriginLocation_Blaine3, gFameCheckerFlavorTextOriginLocation_Blaine4, gFameCheckerFlavorTextOriginLocation_Blaine5, + gFameCheckerFlavorTextOriginLocation_Lorelei0, gFameCheckerFlavorTextOriginLocation_Lorelei1, gFameCheckerFlavorTextOriginLocation_Lorelei2, gFameCheckerFlavorTextOriginLocation_Lorelei3, gFameCheckerFlavorTextOriginLocation_Lorelei4, gFameCheckerFlavorTextOriginLocation_Lorelei5, + gFameCheckerFlavorTextOriginLocation_Bruno0, gFameCheckerFlavorTextOriginLocation_Bruno1, gFameCheckerFlavorTextOriginLocation_Bruno2, gFameCheckerFlavorTextOriginLocation_Bruno3, gFameCheckerFlavorTextOriginLocation_Bruno4, gFameCheckerFlavorTextOriginLocation_Bruno5, + gFameCheckerFlavorTextOriginLocation_Agatha0, gFameCheckerFlavorTextOriginLocation_Agatha1, gFameCheckerFlavorTextOriginLocation_Agatha2, gFameCheckerFlavorTextOriginLocation_Agatha3, gFameCheckerFlavorTextOriginLocation_Agatha4, gFameCheckerFlavorTextOriginLocation_Agatha5, + gFameCheckerFlavorTextOriginLocation_Lance0, gFameCheckerFlavorTextOriginLocation_Lance1, gFameCheckerFlavorTextOriginLocation_Lance2, gFameCheckerFlavorTextOriginLocation_Lance3, gFameCheckerFlavorTextOriginLocation_Lance4, gFameCheckerFlavorTextOriginLocation_Lance5, + gFameCheckerFlavorTextOriginLocation_Bill0, gFameCheckerFlavorTextOriginLocation_Bill1, gFameCheckerFlavorTextOriginLocation_Bill2, gFameCheckerFlavorTextOriginLocation_Bill3, gFameCheckerFlavorTextOriginLocation_Bill4, gFameCheckerFlavorTextOriginLocation_Bill5, + gFameCheckerFlavorTextOriginLocation_MrFuji0, gFameCheckerFlavorTextOriginLocation_MrFuji1, gFameCheckerFlavorTextOriginLocation_MrFuji2, gFameCheckerFlavorTextOriginLocation_MrFuji3, gFameCheckerFlavorTextOriginLocation_MrFuji4, gFameCheckerFlavorTextOriginLocation_MrFuji5, + gFameCheckerFlavorTextOriginLocation_Giovanni0, gFameCheckerFlavorTextOriginLocation_Giovanni1, gFameCheckerFlavorTextOriginLocation_Giovanni2, gFameCheckerFlavorTextOriginLocation_Giovanni3, gFameCheckerFlavorTextOriginLocation_Giovanni4, gFameCheckerFlavorTextOriginLocation_Giovanni5 }; -static const u8 *const gUnknown_845FA1C[] = { - gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, - gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, - gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, - gUnknown_81B11DB, gUnknown_81B11E0, gUnknown_81B11E6, gUnknown_81B11EB, gUnknown_81B11F5, gUnknown_81B11FA, - gUnknown_81B120A, gUnknown_81B120F, gUnknown_81B1219, gUnknown_81B1220, gUnknown_81B1227, gUnknown_81B122E, - gUnknown_81B123E, gUnknown_81B1243, gUnknown_81B1249, gUnknown_81B124E, gUnknown_81B1254, gUnknown_81B125A, - gUnknown_81B126A, gUnknown_81B126F, gUnknown_81B1274, gUnknown_81B1279, gUnknown_81B1281, gUnknown_81B1291, - gUnknown_81B1295, gUnknown_81B129A, gUnknown_81B12A4, gUnknown_81B12AC, gUnknown_81B12B4, gUnknown_81B12C4, - gUnknown_81B12CA, gUnknown_81B12CF, gUnknown_81B12D6, gUnknown_81B12DC, gUnknown_81B12E2, gUnknown_81B12E8, - gUnknown_81B12F8, gUnknown_81B1300, gUnknown_81B1308, gUnknown_81B1310, gUnknown_81B1320, gUnknown_81B132C, - gUnknown_81B1335, gUnknown_81B133B, gUnknown_81B1341, gUnknown_81B1351, gUnknown_81B1359, gUnknown_81B135F, - gUnknown_81B1367, gUnknown_81B136E, gUnknown_81B1376, gUnknown_81B137E, gUnknown_81B138E, gUnknown_81B1395, - gUnknown_81B139E, gUnknown_81B13A4, gUnknown_81B13AA, gUnknown_81B13B0, gUnknown_81B13BC, gUnknown_81B13CC, - gUnknown_81B13D6, gUnknown_81B13D9, gUnknown_81B13E4, gUnknown_81B13EC, gUnknown_81B13F2, gUnknown_81B13F8, - gUnknown_81B13FE, gUnknown_81B140A, gUnknown_81B1416, gUnknown_81B141F, gUnknown_81B1423, gUnknown_81B1429, - gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 +static const u8 *const sFlavorTextOriginObjectNameTexts[] = { + gFameCheckerFlavorTextOriginObjectName_ProfOak0, gFameCheckerFlavorTextOriginObjectName_ProfOak1, gFameCheckerFlavorTextOriginObjectName_ProfOak2, gFameCheckerFlavorTextOriginObjectName_ProfOak3, gFameCheckerFlavorTextOriginObjectName_ProfOak4, gFameCheckerFlavorTextOriginObjectName_ProfOak5, + gFameCheckerFlavorTextOriginObjectName_Daisy0, gFameCheckerFlavorTextOriginObjectName_Daisy1, gFameCheckerFlavorTextOriginObjectName_Daisy2, gFameCheckerFlavorTextOriginObjectName_Daisy3, gFameCheckerFlavorTextOriginObjectName_Daisy4, gFameCheckerFlavorTextOriginObjectName_Daisy5, + gFameCheckerFlavorTextOriginObjectName_Brock0, gFameCheckerFlavorTextOriginObjectName_Brock1, gFameCheckerFlavorTextOriginObjectName_Brock2, gFameCheckerFlavorTextOriginObjectName_Brock3, gFameCheckerFlavorTextOriginObjectName_Brock4, gFameCheckerFlavorTextOriginObjectName_Brock5, + gFameCheckerFlavorTextOriginObjectName_Misty0, gFameCheckerFlavorTextOriginObjectName_Misty1, gFameCheckerFlavorTextOriginObjectName_Misty2, gFameCheckerFlavorTextOriginObjectName_Misty3, gFameCheckerFlavorTextOriginObjectName_Misty4, gFameCheckerFlavorTextOriginObjectName_Misty5, + gFameCheckerFlavorTextOriginObjectName_LtSurge0, gFameCheckerFlavorTextOriginObjectName_LtSurge1, gFameCheckerFlavorTextOriginObjectName_LtSurge2, gFameCheckerFlavorTextOriginObjectName_LtSurge3, gFameCheckerFlavorTextOriginObjectName_LtSurge4, gFameCheckerFlavorTextOriginObjectName_LtSurge5, + gFameCheckerFlavorTextOriginObjectName_Erika0, gFameCheckerFlavorTextOriginObjectName_Erika1, gFameCheckerFlavorTextOriginObjectName_Erika2, gFameCheckerFlavorTextOriginObjectName_Erika3, gFameCheckerFlavorTextOriginObjectName_Erika4, gFameCheckerFlavorTextOriginObjectName_Erika5, + gFameCheckerFlavorTextOriginObjectName_Koga0, gFameCheckerFlavorTextOriginObjectName_Koga1, gFameCheckerFlavorTextOriginObjectName_Koga2, gFameCheckerFlavorTextOriginObjectName_Koga3, gFameCheckerFlavorTextOriginObjectName_Koga4, gFameCheckerFlavorTextOriginObjectName_Koga5, + gFameCheckerFlavorTextOriginObjectName_Sabrina0, gFameCheckerFlavorTextOriginObjectName_Sabrina1, gFameCheckerFlavorTextOriginObjectName_Sabrina2, gFameCheckerFlavorTextOriginObjectName_Sabrina3, gFameCheckerFlavorTextOriginObjectName_Sabrina4, gFameCheckerFlavorTextOriginObjectName_Sabrina5, + gFameCheckerFlavorTextOriginObjectName_Blaine0, gFameCheckerFlavorTextOriginObjectName_Blaine1, gFameCheckerFlavorTextOriginObjectName_Blaine2, gFameCheckerFlavorTextOriginObjectName_Blaine3, gFameCheckerFlavorTextOriginObjectName_Blaine4, gFameCheckerFlavorTextOriginObjectName_Blaine5, + gFameCheckerFlavorTextOriginObjectName_Lorelei0, gFameCheckerFlavorTextOriginObjectName_Lorelei1, gFameCheckerFlavorTextOriginObjectName_Lorelei2, gFameCheckerFlavorTextOriginObjectName_Lorelei3, gFameCheckerFlavorTextOriginObjectName_Lorelei4, gFameCheckerFlavorTextOriginObjectName_Lorelei5, + gFameCheckerFlavorTextOriginObjectName_Bruno0, gFameCheckerFlavorTextOriginObjectName_Bruno1, gFameCheckerFlavorTextOriginObjectName_Bruno2, gFameCheckerFlavorTextOriginObjectName_Bruno3, gFameCheckerFlavorTextOriginObjectName_Bruno4, gFameCheckerFlavorTextOriginObjectName_Bruno5, + gFameCheckerFlavorTextOriginObjectName_Agatha0, gFameCheckerFlavorTextOriginObjectName_Agatha1, gFameCheckerFlavorTextOriginObjectName_Agatha2, gFameCheckerFlavorTextOriginObjectName_Agatha3, gFameCheckerFlavorTextOriginObjectName_Agatha4, gFameCheckerFlavorTextOriginObjectName_Agatha5, + gFameCheckerFlavorTextOriginObjectName_Lance0, gFameCheckerFlavorTextOriginObjectName_Lance1, gFameCheckerFlavorTextOriginObjectName_Lance2, gFameCheckerFlavorTextOriginObjectName_Lance3, gFameCheckerFlavorTextOriginObjectName_Lance4, gFameCheckerFlavorTextOriginObjectName_Lance5, + gFameCheckerFlavorTextOriginObjectName_Bill0, gFameCheckerFlavorTextOriginObjectName_Bill1, gFameCheckerFlavorTextOriginObjectName_Bill2, gFameCheckerFlavorTextOriginObjectName_Bill3, gFameCheckerFlavorTextOriginObjectName_Bill4, gFameCheckerFlavorTextOriginObjectName_Bill5, + gFameCheckerFlavorTextOriginObjectName_MrFuji0, gFameCheckerFlavorTextOriginObjectName_MrFuji1, gFameCheckerFlavorTextOriginObjectName_MrFuji2, gFameCheckerFlavorTextOriginObjectName_MrFuji3, gFameCheckerFlavorTextOriginObjectName_MrFuji4, gFameCheckerFlavorTextOriginObjectName_MrFuji5, + gFameCheckerFlavorTextOriginObjectName_Giovanni0, gFameCheckerFlavorTextOriginObjectName_Giovanni1, gFameCheckerFlavorTextOriginObjectName_Giovanni2, gFameCheckerFlavorTextOriginObjectName_Giovanni3, gFameCheckerFlavorTextOriginObjectName_Giovanni4, gFameCheckerFlavorTextOriginObjectName_Giovanni5 }; -static const struct SpriteSheet gUnknown_845FB9C[] = { - {sSelectorCursorSpriteGfx, 0x400, SPRITETAG_1000}, - {sQuestionMarkSpriteGfx, 0x100, SPRITETAG_1001}, - {sSpinningPokeballSpriteGfx, 0x1e0, SPRITETAG_1002}, - {sDaisySpriteGfx, 0x800, SPRITETAG_1006}, - {sFujiSpriteGfx, 0x800, SPRITETAG_1007}, - {sOakSpriteGfx, 0x800, SPRITETAG_1008}, - {sBillSpriteGfx, 0x800, SPRITETAG_1009}, +static const struct SpriteSheet sUISpriteSheets[] = { + {sSelectorCursorSpriteGfx, 0x400, SPRITETAG_SELECTOR_CURSOR}, + {sQuestionMarkSpriteGfx, 0x100, SPRITETAG_QUESTION_MARK}, + {sSpinningPokeballSpriteGfx, 0x1e0, SPRITETAG_SPINNING_POKEBALL}, + {sDaisySpriteGfx, 0x800, SPRITETAG_DAISY}, + {sFujiSpriteGfx, 0x800, SPRITETAG_FUJI}, + {sOakSpriteGfx, 0x800, SPRITETAG_OAK}, + {sBillSpriteGfx, 0x800, SPRITETAG_BILL}, {} }; -static const struct SpritePalette gUnknown_845FBDC[] = { - {sSelectorCursorSpritePalette, SPRITETAG_1000}, - {sSpinningPokeballSpritePalette, SPRITETAG_1002}, +static const struct SpritePalette sUISpritePalettes[] = { + {sSelectorCursorSpritePalette, SPRITETAG_SELECTOR_CURSOR}, + {sSpinningPokeballSpritePalette, SPRITETAG_SPINNING_POKEBALL}, {} }; -static const struct BgTemplate gUnknown_845FBF4[4] = { +static const struct BgTemplate sUIBgTemplates[4] = { { .bg = 3, .charBaseIndex = 0x03, @@ -349,118 +320,118 @@ static const struct BgTemplate gUnknown_845FBF4[4] = { .baseTile = 0x000}, }; -static const struct WindowTemplate gUnknown_845FC04[] = { - {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, - {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, - {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, - {0x00, 0x0f, 0x0a, 0x0b, 0x04, 0x0f, 0x00fc}, +static const struct WindowTemplate sUIWindowTemplates[] = { + {0, 1, 3, 8, 10, 15, 0x014}, // List Menu + {0, 6, 0, 24, 2, 15, 0x064}, // UI across the top + {0, 2, 15, 26, 4, 15, 0x094}, // Textbox on the bottom + {0, 15, 10, 11, 4, 15, 0x0FC}, // Icon description DUMMY_WIN_TEMPLATE }; -static const union AnimCmd gUnknown_845FC2C[] = { +static const union AnimCmd sSelectorCursorAnim0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_FRAME(16, 15), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_845FC38[] = { - gUnknown_845FC2C +static const union AnimCmd *const sSelectorCursorAnims[] = { + sSelectorCursorAnim0 }; -static const struct OamData gOamData_845FC3C = { +static const struct OamData sSelectorCursorOamData = { .size = 2, .priority = 2 }; -static const struct SpriteTemplate gUnknown_845FC44 = { - SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = { + SPRITETAG_SELECTOR_CURSOR, SPRITETAG_SELECTOR_CURSOR, &sSelectorCursorOamData, sSelectorCursorAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const u8 filler_845FC5C[8] = {}; +static const u8 filler_845FC5C[8] = {}; // ??? -static const struct OamData gOamData_845FC64 = { +static const struct OamData sQuestionMarkTileOamData = { .shape = ST_OAM_V_RECTANGLE, .size = 2, .priority = 2 }; -static const union AnimCmd gUnknown_845FC6C[] = { +static const union AnimCmd sQuestionMarkTileAnim0[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FC74[] = { - gUnknown_845FC6C +static const union AnimCmd *const sQuestionMarkTileAnims[] = { + sQuestionMarkTileAnim0 }; -static const struct SpriteTemplate gUnknown_845FC78 = { - SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +static const struct SpriteTemplate sQuestionMarkTileSpriteTemplate = { + SPRITETAG_QUESTION_MARK, 0xffff, &sQuestionMarkTileOamData, sQuestionMarkTileAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const union AnimCmd gUnknown_845FC90[] = { +static const union AnimCmd sSpinningPokeballAnim0[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FC98[] = { - gUnknown_845FC90 +static const union AnimCmd *const sSpinningPokeballAnims[] = { + sSpinningPokeballAnim0 }; -static const struct OamData gOamData_845FC9C = { +static const struct OamData sSpinningPokeballOamData = { .affineMode = ST_OAM_AFFINE_NORMAL, .size = 2 }; -static const union AffineAnimCmd gUnknown_845FCA4[] = { +static const union AffineAnimCmd sSpinningPokeballAffineAnim0[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 20), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gUnknown_845FCB4[] = { - gUnknown_845FCA4 +static const union AffineAnimCmd *const sSpinningPokeballAffineAnims[] = { + sSpinningPokeballAffineAnim0 }; static const struct SpriteTemplate sSpinningPokeballSpriteTemplate = { - SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 + SPRITETAG_SPINNING_POKEBALL, SPRITETAG_SPINNING_POKEBALL, &sSpinningPokeballOamData, sSpinningPokeballAnims, NULL, sSpinningPokeballAffineAnims, SpriteCB_FCSpinningPokeball }; -static const union AnimCmd gUnknown_845FCD0[] = { +static const union AnimCmd sDaisyFujiOakBillAnim0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FCD8[] = { - gUnknown_845FCD0 +static const union AnimCmd *const sDaisyFujiOakBillAnims[] = { + sDaisyFujiOakBillAnim0 }; -static const struct OamData gOamData_845FCDC = { +static const struct OamData sDaisyFujiOakBillOamData = { .size = 3 }; static const struct SpriteTemplate sDaisySpriteTemplate = { - SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_DAISY, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sFujiSpriteTemplate = { - SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_FUJI, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sOakSpriteTemplate = { - SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_OAK, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sBillSpriteTemplate = { - SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_BILL, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static void sub_812C380(void) +static void FC_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_812C394(void) +static void MainCB2_FameCheckerMain(void) { RunTasks(); AnimateSprites(); @@ -478,20 +449,20 @@ void UseFameChecker(MainCallback savedCallback) sFameCheckerData->listMenuDrawnSelIdx = 0; sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); - SetMainCallback2(sub_812C3F8); + SetMainCallback2(MainCB2_LoadFameChecker); } -static void sub_812C3F8(void) +static void MainCB2_LoadFameChecker(void) { switch (gMain.state) { case 0: SetVBlankCallback(NULL); - sub_812D420(); + FCSetup_ClearVideoRegisters(); gMain.state++; break; case 1: - sub_812D558(); + FCSetup_ResetTasksAndSpriteResources(); gMain.state++; break; case 2: @@ -499,11 +470,11 @@ static void sub_812C3F8(void) sBg1TilemapBuffer = AllocZeroed(0x1000); sBg2TilemapBuffer = AllocZeroed(0x800); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); + InitBgsFromTemplates(0, sUIBgTemplates, ARRAY_COUNT(sUIBgTemplates)); SetBgTilemapBuffer(3, sBg3TilemapBuffer); SetBgTilemapBuffer(2, sBg2TilemapBuffer); SetBgTilemapBuffer(1, sBg1TilemapBuffer); - sub_812D594(); + FCSetup_ResetBGCoords(); gMain.state++; break; case 3: @@ -530,125 +501,125 @@ static void sub_812C3F8(void) } break; case 5: - InitWindows(gUnknown_845FC04); + InitWindows(sUIWindowTemplates); DeactivateAllTextPrinters(); - sub_812CEC0(); + Setup_DrawMsgAndListBoxes(); sListMenuItems = AllocZeroed(17 * sizeof(struct ListMenuItem)); - sub_812DB28(); + FC_CreateListMenu(); gMain.state++; break; case 6: - sub_812C648(); - sub_812D1A8(0); - sub_812CE9C(); + LoadUISpriteSheetsAndPalettes(); + CreateAllFlavorTextIcons(0); + WipeMsgBoxAndTransfer(); BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); gMain.state++; break; case 7: - sub_812D584(); + FCSetup_TurnOnDisplay(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); - SetVBlankCallback(sub_812C380); + SetVBlankCallback(FC_VBlankCallback); sFameCheckerData->listMenuTopIdx = 0; - sub_812E000(); + FC_CreateScrollIndicatorArrowPair(); sub_812E178(1, 4); - CreateTask(sub_812C664, 0x08); - SetMainCallback2(sub_812C394); + CreateTask(Task_WaitFadeOnInit, 0x08); + SetMainCallback2(MainCB2_FameCheckerMain); gMain.state = 0; break; } } -static void sub_812C648(void) +static void LoadUISpriteSheetsAndPalettes(void) { - LoadSpriteSheets(gUnknown_845FB9C); - LoadSpritePalettes(gUnknown_845FBDC); + LoadSpriteSheets(sUISpriteSheets); + LoadSpritePalettes(sUISpritePalettes); } -static void sub_812C664(u8 taskId) +static void Task_WaitFadeOnInit(u8 taskId) { if (!gPaletteFade.active) - gTasks[taskId].func = sub_812C694; + gTasks[taskId].func = Task_TopMenuHandleInput; } -static void sub_812C694(u8 taskId) +static void Task_TopMenuHandleInput(u8 taskId) { - u16 r4; - u8 r4_2; + u16 cursorPos; + u8 i; struct Task *task = &gTasks[taskId]; s16 * data = gTasks[taskId].data; if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) - task->func = sub_812CF3C; + task->func = Task_StartToCloseFameChecker; else if (JOY_NEW(START_BUTTON)) { - r4 = FameCheckerGetCursorY(); - if (sub_812C8F8(taskId) == TRUE) + cursorPos = FameCheckerGetCursorY(); + if (TryExitPickMode(taskId) == TRUE) { PlaySE(SE_W100); } - else if (r4 != sFameCheckerData->numUnlockedPersons - 1) + else if (cursorPos != sFameCheckerData->numUnlockedPersons - 1) // anything but CANCEL { PlaySE(SE_W100); - FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); - sub_812CEE0(3); + FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); sub_812E178(2, 4); sub_812E178(1, 5); - sub_812D0F4(1); - task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[r4]); + PrintUIHelp(1); + task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[cursorPos]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; - task->data[3] = sub_812D7E4(); + task->data[3] = CreateSpinningPokeballSprite(); gSprites[task->data[3]].pos2.x = 0xF0; gSprites[task->data[3]].data[0] = 1; - task->func = sub_812C9BC; + task->func = Task_EnterPickMode; } } else if (JOY_NEW(A_BUTTON)) { - r4 = ListMenuHandleInput(0); - if (r4 == sFameCheckerData->numUnlockedPersons - 1) - task->func = sub_812CF3C; + cursorPos = ListMenuHandleInput(0); + if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL + task->func = Task_StartToCloseFameChecker; else if (sFameCheckerData->inPickMode) { - if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) - sub_812CD3C(); + if (!IsTextPrinterActive(2) && HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + GetPickModeText(); } else if (sFameCheckerData->personHasUnlockedPanels) { PlaySE(SE_SELECT); - task->data[0] = sub_812D724(task->data[1]); - for (r4_2 = 0; r4_2 < 6; r4_2++) + task->data[0] = CreateFlavorTextIconSelectorCursorSprite(task->data[1]); + for (i = 0; i < 6; i++) { - if (r4_2 != task->data[1]) - sub_812CEFC(sFameCheckerData->spriteIds[r4_2], ST_OAM_OBJ_BLEND); + if (i != task->data[1]) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; - sub_812E4A4(0); - sub_812D0F4(2); - if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) + PlaceListMenuCursor(FALSE); + PrintUIHelp(2); + if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) // not a ? tile { - sub_812CE04(taskId); - sub_812DA14(data[1]); + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); } - sub_812E048(); - task->func = sub_812CAD8; + FreeListMenuSelectorArrowPairResources(); + task->func = Task_FlavorTextDisplayHandleInput; } } else if (JOY_NEW(B_BUTTON)) { - if (sub_812C8F8(taskId) != TRUE) - task->func = sub_812CF3C; + if (TryExitPickMode(taskId) != TRUE) + task->func = Task_StartToCloseFameChecker; } else ListMenuHandleInput(0); } } -static bool8 sub_812C8F8(u8 taskId) +static bool8 TryExitPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (sFameCheckerData->inPickMode) @@ -657,34 +628,34 @@ static bool8 sub_812C8F8(u8 taskId) gSprites[task->data[2]].pos2.x += 10; gSprites[task->data[3]].data[0] = 2; gSprites[task->data[3]].pos2.x += 10; - sub_812CE9C(); - task->func = sub_812CA1C; - sub_812C990(); + WipeMsgBoxAndTransfer(); + task->func = Task_ExitPickMode; + MessageBoxPrintEmptyText(); sFameCheckerData->unk_23_2 = FALSE; return TRUE; } return FALSE; } -static void sub_812C990(void) +static void MessageBoxPrintEmptyText(void) { - AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); + AddTextPrinterParametrized(2, 2, gFameCheckerText_ClearTextbox, 0, NULL, 2, 1, 3); } -static void sub_812C9BC(u8 taskId) +static void Task_EnterPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gSprites[task->data[2]].data[0] == 0) { - sub_812CD3C(); + GetPickModeText(); sFameCheckerData->inPickMode = TRUE; - task->func = sub_812C694; + task->func = Task_TopMenuHandleInput; } else ChangeBgX(1, 0xA00, 1); } -static void sub_812CA1C(u8 taskId) +static void Task_ExitPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (GetBgX(1) != 0) @@ -694,17 +665,17 @@ static void sub_812CA1C(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { if (sFameCheckerData->personHasUnlockedPanels) - sub_812D0F4(0); + PrintUIHelp(0); sub_812E178(1, 4); sub_812E178(2, 2); sFameCheckerData->inPickMode = FALSE; - sub_812D9A8(taskId, FameCheckerGetCursorY()); - task->func = sub_812C694; - gSprites[task->data[3]].callback = sub_812D800; + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); + task->func = Task_TopMenuHandleInput; + gSprites[task->data[3]].callback = SpriteCB_DestroySpinningPokeball; } } -static void sub_812CAD8(u8 taskId) +static void Task_FlavorTextDisplayHandleInput(u8 taskId) { struct Task *task = &gTasks[taskId]; s16 *data = gTasks[taskId].data; @@ -714,35 +685,35 @@ static void sub_812CAD8(u8 taskId) { u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) - sub_812CE04(taskId); + PrintSelectedNameInBrightGreen(taskId); } if (JOY_NEW(B_BUTTON)) { - u8 r4; + u8 i; PlaySE(SE_SELECT); - for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(sFameCheckerData->spriteIds[r4], ST_OAM_OBJ_NORMAL); - sub_812CE9C(); - gSprites[task->data[0]].callback = sub_812D764; + for (i = 0; i < 6; i++) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_NORMAL); + WipeMsgBoxAndTransfer(); + gSprites[task->data[0]].callback = SpriteCB_DestroyFlavorTextIconSelectorCursor; if (gUnknown_3005EC8 != 0xFF) sub_812DB10(); - sub_812E4A4(1); - sub_812D0F4(0); - sub_812E000(); - sub_812C990(); - task->func = sub_812C694; + PlaceListMenuCursor(TRUE); + PrintUIHelp(0); + FC_CreateScrollIndicatorArrowPair(); + MessageBoxPrintEmptyText(); + task->func = Task_TopMenuHandleInput; } else if (JOY_NEW(DPAD_UP) || JOY_NEW(DPAD_DOWN)) { if (task->data[1] >= 3) { task->data[1] -= 3; - sub_812CC68(taskId, 0, -0x1b); + FC_MoveSelectorCursor(taskId, 0, -0x1b); } else { task->data[1] += 3; - sub_812CC68(taskId, 0, +0x1b); + FC_MoveSelectorCursor(taskId, 0, +0x1b); } } else if (JOY_NEW(DPAD_LEFT)) @@ -750,12 +721,12 @@ static void sub_812CAD8(u8 taskId) if (task->data[1] == 0 || task->data[1] % 3 == 0) { task->data[1] += 2; - sub_812CC68(taskId, +0x5e, 0); + FC_MoveSelectorCursor(taskId, +0x5e, 0); } else { task->data[1]--; - sub_812CC68(taskId, -0x2f, 0); + FC_MoveSelectorCursor(taskId, -0x2f, 0); } } else if (JOY_NEW(DPAD_RIGHT)) @@ -763,17 +734,17 @@ static void sub_812CAD8(u8 taskId) if ((task->data[1] + 1) % 3 == 0) { task->data[1] -= 2; - sub_812CC68(taskId, -0x5e, 0); + FC_MoveSelectorCursor(taskId, -0x5e, 0); } else { task->data[1]++; - sub_812CC68(taskId, +0x2f, 0); + FC_MoveSelectorCursor(taskId, +0x2f, 0); } } } -static void sub_812CC68(u8 taskId, s8 dx, s8 dy) +static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) { u8 i; s16 *data = gTasks[taskId].data; @@ -781,69 +752,69 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812C990(); - if (sub_812CEFC(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + MessageBoxPrintEmptyText(); + if (SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { - sub_812CE04(taskId); - sub_812DA14(data[1]); + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); } else if (gUnknown_3005EC8 != 0xFF) sub_812DB10(); } -static void sub_812CD3C(void) +static void GetPickModeText(void) { u8 r8 = 0; u16 r6 = FameCheckerGetCursorY(); if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) { - sub_812CE9C(); - sub_812C990(); + WipeMsgBoxAndTransfer(); + MessageBoxPrintEmptyText(); } else { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - if (sub_812D6B4() == TRUE) - r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[sFameCheckerData->unlockedPersons[r6] + r8]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + r8 = NUM_FAMECHECKER_PERSONS; + StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[r6] + r8]); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } } -static void sub_812CE04(u8 taskId) +static void PrintSelectedNameInBrightGreen(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 r5 = FameCheckerGetCursorY(); - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); - sub_812CEE0(2); + u16 cursorPos = FameCheckerGetCursorY(); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + StringExpandPlaceholders(gStringVar4, sFameCheckerFlavorTextPointers[sFameCheckerData->unlockedPersons[cursorPos] * 6 + data[1]]); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812CE9C(void) +static void WipeMsgBoxAndTransfer(void) { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812CEC0(void) +static void Setup_DrawMsgAndListBoxes(void) { sub_80F6E9C(); - sub_80F6EE4(2, 1); - sub_812CEE0(2); - sub_812CEE0(0); + sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST); } -static void sub_812CEE0(u8 windowId) +static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -static bool8 sub_812CEFC(u8 spriteId, u8 objMode) +static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode) { if (gSprites[spriteId].data[1] != 0xFF) { @@ -853,14 +824,14 @@ static bool8 sub_812CEFC(u8 spriteId, u8 objMode) return FALSE; } -static void sub_812CF3C(u8 taskId) +static void Task_StartToCloseFameChecker(u8 taskId) { PlaySE(SE_W202); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_812CF7C; + gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker; } -static void sub_812CF7C(u8 taskId) +static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) { u8 r4; @@ -868,7 +839,7 @@ static void sub_812CF7C(u8 taskId) { if (sFameCheckerData->inPickMode) { - sub_812D9A8(taskId, FameCheckerGetCursorY()); + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } @@ -876,28 +847,28 @@ static void sub_812CF7C(u8 taskId) { DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } - sub_812D814(); - sub_812D7C8(); - sub_812D70C(); - sub_812D770(); - sub_812E048(); + FreeNonTrainerPicTiles(); + FreeSpinningPokeballSpriteResources(); + FreeSelectionCursorSpriteResources(); + FreeQuestionMarkSpriteResources(); + FreeListMenuSelectorArrowPairResources(); SetMainCallback2(sFameCheckerData->savedCallback); - sub_810713C(sFameCheckerData->scrollIndicatorArrowObjectTaskId, 0, 0); + sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0); Free(sBg3TilemapBuffer); Free(sBg1TilemapBuffer); Free(sBg2TilemapBuffer); Free(sFameCheckerData); Free(sListMenuItems); - sub_812D094(0); - sub_812D094(1); - sub_812D094(2); - sub_812D094(3); + FC_DestroyWindow(0); + FC_DestroyWindow(1); + FC_DestroyWindow(2); + FC_DestroyWindow(3); FreeAllWindowBuffers(); DestroyTask(taskId); } } -static void sub_812D094(u8 windowId) +static void FC_DestroyWindow(u8 windowId) { FillWindowPixelBuffer(windowId, 0); ClearWindowTilemap(windowId); @@ -905,111 +876,111 @@ static void sub_812D094(u8 windowId) RemoveWindow(windowId); } -static u8 sub_812D0C0(u8 a0) +static u8 AdjustGiovanniIndexIfBeatenInGym(u8 a0) { if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) { if (a0 == 9) - return 15; + return FAMECHECKER_GIOVANNI; if (a0 > 9) return a0 - 1; } return a0; } -static void sub_812D0F4(u8 a0) +static void PrintUIHelp(u8 state) { - const u8 * r5 = gUnknown_841E5A4; s32 width; - if (a0 != 0) + const u8 * src = gFameCheckerText_MainScreenUI; + if (state != 0) { - r5 = gUnknown_841E5D2; - if (a0 == 1) - r5 = gUnknown_841E5B9; + src = gFameCheckerText_FlavorTextUI; + if (state == 1) + src = gFameCheckerText_PickScreenUI; } - width = GetStringWidth(0, r5, 0); - FillWindowPixelRect(1, 0x00, 0, 0, 0xc0, 0x10); - AddTextPrinterParametrized2(1, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, r5); - sub_812CEE0(1); + width = GetStringWidth(0, src, 0); + FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); + AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, src); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); } -static void sub_812D174(void) +static void DestroyAllFlavorTextIcons(void) { - u8 r4; - for (r4 = 0; r4 < 6; r4++) + u8 i; + for (i = 0; i < 6; i++) { - DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); } } -static bool8 sub_812D1A8(u8 a0) +static bool8 CreateAllFlavorTextIcons(u8 a0) { // r8 <- a0 - bool8 r5 = FALSE; - u8 r6; - for (r6 = 0; r6 < 6; r6++) + bool8 result = FALSE; + u8 i; + for (i = 0; i < 6; i++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> i) & 1) { - sFameCheckerData->spriteIds[r6] = sub_805EB44( - sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], - r6, - 47 * (r6 % 3) + 0x72, - 27 * (r6 / 3) + 0x2F + sFameCheckerData->spriteIds[i] = sub_805EB44( + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], + i, + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x2F ); - r5 = TRUE; + result = TRUE; } else { - sFameCheckerData->spriteIds[r6] = PlaceQuestionMarkTile( - 47 * (r6 % 3) + 0x72, - 27 * (r6 / 3) + 0x1F + sFameCheckerData->spriteIds[i] = PlaceQuestionMarkTile( + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x1F ); - gSprites[sFameCheckerData->spriteIds[r6]].data[1] = 0xFF; + gSprites[sFameCheckerData->spriteIds[i]].data[1] = 0xFF; } } - if (r5 == TRUE) + if (result == TRUE) { sFameCheckerData->personHasUnlockedPanels = TRUE; if (sFameCheckerData->inPickMode) - sub_812D0F4(TRUE); + PrintUIHelp(1); else - sub_812D0F4(FALSE); + PrintUIHelp(0); } else { sFameCheckerData->personHasUnlockedPanels = FALSE; - sub_812D0F4(TRUE); + PrintUIHelp(1); } - return r5; + return result; } void ResetFameChecker(void) { - u8 r4; - for (r4 = 0; r4 < 16; r4++) + u8 i; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - gSaveBlock1Ptr->fameChecker[r4].pickState = FCPICKSTATE_NO_DRAW; - gSaveBlock1Ptr->fameChecker[r4].flavorTextFlags = 0; - gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_NO_DRAW; + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags = 0; + gSaveBlock1Ptr->fameChecker[i].unk_0_E = 0; } - gSaveBlock1Ptr->fameChecker[0].pickState = FCPICKSTATE_COLORED; + gSaveBlock1Ptr->fameChecker[FAMECHECKER_OAK].pickState = FCPICKSTATE_COLORED; } -static void sub_812D388(void) +void FullyUnlockFameChecker(void) { - u8 r5, r4; - for (r5 = 0; r5 < 16; r5++) + u8 i, j; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - gSaveBlock1Ptr->fameChecker[r5].pickState = FCPICKSTATE_COLORED; - for (r4 = 0; r4 < 6; r4++) + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_COLORED; + for (j = 0; j < 6; j++) { - gSaveBlock1Ptr->fameChecker[r5].flavorTextFlags |= (1 << r4); + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags |= (1 << j); } } } -static void sub_812D420(void) +static void FCSetup_ClearVideoRegisters(void) { void * vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -1037,7 +1008,7 @@ static void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -static void sub_812D558(void) +static void FCSetup_ResetTasksAndSpriteResources(void) { remove_some_task(); ResetTasks(); @@ -1049,12 +1020,12 @@ static void sub_812D558(void) } -static void sub_812D584(void) +static void FCSetup_TurnOnDisplay(void) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); } -static void sub_812D594(void) +static void FCSetup_ResetBGCoords(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1066,97 +1037,99 @@ static void sub_812D594(void) ChangeBgY(3, 0, 0); } -static void sub_812D5EC(void) +void SetFlavorTextFlagFromSpecialVars(void) { - if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 6) { gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].flavorTextFlags |= (1 << gSpecialVar_0x8005); - gSpecialVar_0x8005 = 1; - sub_812D650(); + gSpecialVar_0x8005 = FCPICKSTATE_SILHOUETTE; + UpdatePickStateFromSpecialVar8005(); } } -static void sub_812D650(void) +void UpdatePickStateFromSpecialVar8005(void) { - if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 3) { - if (gSpecialVar_0x8005 == 0) + if (gSpecialVar_0x8005 == FCPICKSTATE_NO_DRAW) return; - if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED) + if ( gSpecialVar_0x8005 == FCPICKSTATE_SILHOUETTE + && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED + ) return; gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState = gSpecialVar_0x8005; } } -static bool8 sub_812D6B4(void) +static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void) { - u8 r2; - u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; - for (r2 = 0; r2 < 6; r2++) + u8 i; + u8 who = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; + for (i = 0; i < 6; i++) { - if (!((gSaveBlock1Ptr->fameChecker[r1].flavorTextFlags >> r2) & 1)) + if (!((gSaveBlock1Ptr->fameChecker[who].flavorTextFlags >> i) & 1)) return FALSE; } return TRUE; } -static void sub_812D70C(void) +static void FreeSelectionCursorSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1000); - FreeSpritePaletteByTag(SPRITETAG_1000); + FreeSpriteTilesByTag(SPRITETAG_SELECTOR_CURSOR); + FreeSpritePaletteByTag(SPRITETAG_SELECTOR_CURSOR); } -static u8 sub_812D724(s16 a0) +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where) { - s16 r4 = a0 >= 3 ? 61 : 34; - s16 r1 = 47 * (a0 % 3) + 0x72; - return CreateSprite(&gUnknown_845FC44, r1, r4, 0); + s16 y = 34 + 27 * (where >= 3); + s16 x = 114 + 47 * (where % 3); + return CreateSprite(&sSpriteTemplate_SelectorCursor, x, y, 0); } -static void sub_812D764(struct Sprite * sprite) +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite * sprite) { DestroySprite(sprite); } -static void sub_812D770(void) +static void FreeQuestionMarkSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1001); + FreeSpriteTilesByTag(SPRITETAG_QUESTION_MARK); } static u8 PlaceQuestionMarkTile(u8 x, u8 y) { - u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); + u8 spriteId = CreateSprite(&sQuestionMarkTileSpriteTemplate, x, y, 8); gSprites[spriteId].oam.priority = 2; gSprites[spriteId].oam.paletteNum = 2; return spriteId; } -static void sub_812D7C8(void) +static void FreeSpinningPokeballSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1002); - FreeSpritePaletteByTag(SPRITETAG_1002); + FreeSpriteTilesByTag(SPRITETAG_SPINNING_POKEBALL); + FreeSpritePaletteByTag(SPRITETAG_SPINNING_POKEBALL); } -static u8 sub_812D7E4(void) +static u8 CreateSpinningPokeballSprite(void) { return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0); } -static void sub_812D800(struct Sprite * sprite) +static void SpriteCB_DestroySpinningPokeball(struct Sprite * sprite) { FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } -static void sub_812D814(void) +static void FreeNonTrainerPicTiles(void) { - FreeSpriteTilesByTag(SPRITETAG_1006); - FreeSpriteTilesByTag(SPRITETAG_1007); - FreeSpriteTilesByTag(SPRITETAG_1008); - FreeSpriteTilesByTag(SPRITETAG_1009); + FreeSpriteTilesByTag(SPRITETAG_DAISY); + FreeSpriteTilesByTag(SPRITETAG_FUJI); + FreeSpriteTilesByTag(SPRITETAG_OAK); + FreeSpriteTilesByTag(SPRITETAG_BILL); } -static void sub_812D840(struct Sprite * sprite) +static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite) { if (sprite->data[0] == 1) { @@ -1180,92 +1153,92 @@ static void sub_812D840(struct Sprite * sprite) } } -static u8 sub_812D888(u8 a0) +static u8 CreatePersonPicSprite(u8 fcPersonIdx) { - u8 r4; - if (a0 == FAMECHECKER_DAISY) + u8 spriteId; + if (fcPersonIdx == FAMECHECKER_DAISY) { - r4 = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); LoadPalette(sDaisySpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_MRFUJI) + else if (fcPersonIdx == FAMECHECKER_MRFUJI) { - r4 = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sFujiSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_OAK) + else if (fcPersonIdx == FAMECHECKER_OAK) { - r4 = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sOakSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_BILL) + else if (fcPersonIdx == FAMECHECKER_BILL) { - r4 = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sBillSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } else { - r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); + spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); } - gSprites[r4].callback = sub_812D840; - if (gSaveBlock1Ptr->fameChecker[a0].pickState == FCPICKSTATE_SILHOUETTE) - LoadPalette(gUnknown_845F5C0, 0x160, 0x20); - return r4; + gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball; + if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE) + LoadPalette(sSilhouettePalette, 0x160, 0x20); + return spriteId; } -static void sub_812D9A8(u8 taskId, u16 a1) +static void DestroyPersonPicSprite(u8 taskId, u16 who) { s16 * data = gTasks[taskId].data; - u16 r1 = a1; - if (a1 == sFameCheckerData->numUnlockedPersons - 1) - r1 = a1 - 1; - if ( sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_DAISY - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_MRFUJI - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_OAK - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_BILL + u16 who_copy = who; + if (who == sFameCheckerData->numUnlockedPersons - 1) + who_copy = who - 1; + if ( sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_DAISY + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_MRFUJI + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_OAK + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_BILL ) DestroySprite(&gSprites[data[2]]); else sub_810C2E8(data[2]); } -static void sub_812DA14(u8 a0) +static void UpdateIconDescriptionBox(u8 a0) { s32 width; - u32 r5 = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; - sub_812E094(1); + u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; + FlipBitUnk23_0(TRUE); gUnknown_3005EC8 = 1; - FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); - width = (0x54 - GetStringWidth(0, gUnknown_845F89C[r5], 0)) / 2; - AddTextPrinterParametrized2(3, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, gUnknown_845F89C[r5]); - StringExpandPlaceholders(gStringVar1, gUnknown_845FA1C[r5]); + FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); + width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); + StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; - AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); - sub_812CEE0(3); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } static void sub_812DB10(void) { - sub_812E094(0); + FlipBitUnk23_0(FALSE); gUnknown_3005EC8 = 0xFF; } -static void sub_812DB28(void) +static void FC_CreateListMenu(void) { - sub_812DB64(); - sFameCheckerData->numUnlockedPersons = sub_812DEF0(); - sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); - sub_812DFE4(0); + InitListMenuTemplate(); + sFameCheckerData->numUnlockedPersons = FC_PopulateListMenu(); + sFameCheckerData->listMenuTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); + FC_PutWindowTilemapAndCopyWindowToVramMode3_2(FCWINDOWID_LIST); } -static void sub_812DB64(void) +static void InitListMenuTemplate(void) { gFameChecker_ListMenuTemplate.items = sListMenuItems; - gFameChecker_ListMenuTemplate.moveCursorFunc = sub_812DBC0; + gFameChecker_ListMenuTemplate.moveCursorFunc = FC_MoveCursorFunc; gFameChecker_ListMenuTemplate.itemPrintFunc = NULL; gFameChecker_ListMenuTemplate.totalItems = 1; gFameChecker_ListMenuTemplate.maxShowed = 1; @@ -1284,31 +1257,31 @@ static void sub_812DB64(void) gFameChecker_ListMenuTemplate.cursorKind = 0; } -static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8; u8 taskId; u16 r9; sLastMenuIdx = 0; r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; - sub_812DDF0(itemIndex, onInit); - taskId = FindTaskIdByFunc(sub_812C694); + FC_DoMoveCursor(itemIndex, onInit); + taskId = FindTaskIdByFunc(Task_TopMenuHandleInput); if (taskId != 0xFF) { struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp8, NULL); sFameCheckerData->listMenuTopIdx = sp8; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { - sub_812D174(); - sub_812D1A8(itemIndex); + DestroyAllFlavorTextIcons(); + CreateAllFlavorTextIcons(itemIndex); if (sFameCheckerData->inPickMode) { if (!sFameCheckerData->unk_23_2) { - sub_812D9A8(taskId, r9); + DestroyPersonPicSprite(taskId, r9); sLastMenuIdx = itemIndex; task->func = sub_812DD50; } @@ -1317,18 +1290,18 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) gSprites[task->data[2]].invisible = FALSE; sFameCheckerData->unk_23_2 = FALSE; gSprites[task->data[2]].data[0] = 0; - sub_812CD3C(); + GetPickModeText(); } } else { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } } else { - sub_812DDAC(); + PrintCancelDescription(); if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; @@ -1349,34 +1322,34 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[sLastMenuIdx]); + task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[sLastMenuIdx]); gSprites[task->data[2]].data[0] = 0; - sub_812CD3C(); - task->func = sub_812C694; + GetPickModeText(); + task->func = Task_TopMenuHandleInput; } -static void sub_812DDAC(void) +static void PrintCancelDescription(void) { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gFameCheckerText_FameCheckerWillBeClosed, 0, NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812DDF0(s32 itemIndex, bool8 onInit) +static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp14, &sp16); r6 = sp14 + sp16; - AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { if (sp14 < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; @@ -1384,63 +1357,63 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) sFameCheckerData->listMenuTopIdx2 = sp14; } -static u8 sub_812DEF0(void) +static u8 FC_PopulateListMenu(void) { - u8 r4 = 0; - u8 r6; + u8 nitems = 0; + u8 i; - for (r6 = 0; r6 < 16; r6++) + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - u8 r5 = sub_812D0C0(r6); - if (gSaveBlock1Ptr->fameChecker[r5].pickState != FCPICKSTATE_NO_DRAW) + u8 fameCheckerIdx = AdjustGiovanniIndexIfBeatenInGym(i); + if (gSaveBlock1Ptr->fameChecker[fameCheckerIdx].pickState != FCPICKSTATE_NO_DRAW) { - if (gUnknown_845F5EA[r5] < 0xFE00) + if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START) { - sListMenuItems[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; - sListMenuItems[r4].unk_04 = r4; + sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; + sListMenuItems[nitems].unk_04 = nitems; } else { - sListMenuItems[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; - sListMenuItems[r4].unk_04 = r4; + sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; + sListMenuItems[nitems].unk_04 = nitems; } - sFameCheckerData->unlockedPersons[r4] = r5; - r4++; + sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx; + nitems++; } } - sListMenuItems[r4].unk_00 = gUnknown_84161C1; - sListMenuItems[r4].unk_04 = r4; - sFameCheckerData->unlockedPersons[r4] = 0xFF; - r4++; - gFameChecker_ListMenuTemplate.totalItems = r4; - if (r4 < 5) - gFameChecker_ListMenuTemplate.maxShowed = r4; + sListMenuItems[nitems].unk_00 = gFameCheckerText_Cancel; + sListMenuItems[nitems].unk_04 = nitems; + sFameCheckerData->unlockedPersons[nitems] = 0xFF; + nitems++; + gFameChecker_ListMenuTemplate.totalItems = nitems; + if (nitems < 5) + gFameChecker_ListMenuTemplate.maxShowed = nitems; else gFameChecker_ListMenuTemplate.maxShowed = 5; - return r4; + return nitems; } -static void sub_812DFE4(u8 windowId) +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -static void sub_812E000(void) +static void FC_CreateScrollIndicatorArrowPair(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { - 2, - 40, - 26, - 3, - 40, - 100, - 0, - 0, - SPRITETAG_1004, - 0xFFFF, - 1, - 0 + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + SPRITETAG_SCROLL_INDICATORS, + 0xFFFF, + 1, + 0 }; if (sFameCheckerData->numUnlockedPersons > 5) @@ -1451,7 +1424,7 @@ static void sub_812E000(void) } } -static void sub_812E048(void) +static void FreeListMenuSelectorArrowPairResources(void) { if (sFameCheckerData->numUnlockedPersons > 5) RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); @@ -1460,11 +1433,11 @@ static void sub_812E048(void) static u16 FameCheckerGetCursorY(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp0, &sp2); return sp0 + sp2; } -static void sub_812E094(u8 a0) +static void FlipBitUnk23_0(bool8 a0) { if (sFameCheckerData->unk_23_0 != a0) { @@ -1571,11 +1544,11 @@ static void sub_812E178(u8 bg, s16 a1) CopyBgTilemapBufferToVram(bg); } -static void sub_812E4A4(u8 a0) +static void PlaceListMenuCursor(bool8 isActive) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->scrollIndicatorArrowObjectTaskId); - if (a0 == 1) - AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); + if (isActive == TRUE) + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gFameCheckerText_ListMenuCursor); else - AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gUnknown_841623B); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gFameCheckerText_ListMenuCursor); } From 5f9edfe8e63127d2557f9f419ecdd9174d0a7ae8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 18:29:18 -0500 Subject: [PATCH 38/49] One more field renaming in fame_checker --- src/fame_checker.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fame_checker.c b/src/fame_checker.c index 46c13c387..ec78b5f0e 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -42,7 +42,7 @@ struct FameCheckerData { MainCallback savedCallback; u16 listMenuTopIdx; - u8 unk_06; + u8 scrollIndicatorPairTaskId; u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; @@ -53,7 +53,7 @@ struct FameCheckerData u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; u8 unk_23_0:1; - u8 unk_23_1:1; + u8 unk_23_1:1; // unused u8 unk_23_2:1; }; @@ -1420,14 +1420,14 @@ static void FC_CreateScrollIndicatorArrowPair(void) { sp0.unk_06 = 0; sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); + sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); } } static void FreeListMenuSelectorArrowPairResources(void) { if (sFameCheckerData->numUnlockedPersons > 5) - RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); + RemoveScrollIndicatorArrowPair(sFameCheckerData->scrollIndicatorPairTaskId); } static u16 FameCheckerGetCursorY(void) From 66c7fc0d701ef5211114fdbdaa9588007beed3f2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 08:42:21 -0500 Subject: [PATCH 39/49] All functions and assets in fame_checker are named --- common_syms/fame_checker.txt | 2 +- include/fame_checker.h | 3 + src/fame_checker.c | 135 +++++++++++++++++------------------ 3 files changed, 71 insertions(+), 69 deletions(-) diff --git a/common_syms/fame_checker.txt b/common_syms/fame_checker.txt index a590c1cbb..c23bd9a2a 100644 --- a/common_syms/fame_checker.txt +++ b/common_syms/fame_checker.txt @@ -1,2 +1,2 @@ gFameChecker_ListMenuTemplate -gUnknown_3005EC8 +gIconDescriptionBoxIsOpen diff --git a/include/fame_checker.h b/include/fame_checker.h index 2849eef09..257431d8b 100644 --- a/include/fame_checker.h +++ b/include/fame_checker.h @@ -36,6 +36,9 @@ enum { FCWINDOWID_ICONDESC }; +extern struct ListMenuTemplate gFameChecker_ListMenuTemplate; +extern u8 gIconDescriptionBoxIsOpen; + void ResetFameChecker(void); void FullyUnlockFameChecker(void); void UseFameChecker(MainCallback savedCallback); diff --git a/src/fame_checker.c b/src/fame_checker.c index ec78b5f0e..85cea3015 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -52,9 +52,9 @@ struct FameCheckerData u8 listMenuDrawnSelIdx; u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; - u8 unk_23_0:1; + u8 viewingFlavorText:1; u8 unk_23_1:1; // unused - u8 unk_23_2:1; + u8 pickModeOverCancel:1; }; static EWRAM_DATA u16 * sBg3TilemapBuffer = NULL; @@ -65,7 +65,7 @@ static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; static EWRAM_DATA s32 sLastMenuIdx = 0; struct ListMenuTemplate gFameChecker_ListMenuTemplate; -u8 gUnknown_3005EC8; +u8 gIconDescriptionBoxIsOpen; static void MainCB2_LoadFameChecker(void); static void LoadUISpriteSheetsAndPalettes(void); @@ -86,31 +86,31 @@ static bool8 SetMessageSelectorIconObjMode(u8 taskId, u8 objMode); static void Task_StartToCloseFameChecker(u8 taskId); static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId); static void FC_DestroyWindow(u8 windowId); -static void PrintUIHelp(u8 a0); -static bool8 CreateAllFlavorTextIcons(u8 a0); +static void PrintUIHelp(u8 state); +static bool8 CreateAllFlavorTextIcons(u8 who); static void FCSetup_ClearVideoRegisters(void); static void FCSetup_ResetTasksAndSpriteResources(void); static void FCSetup_TurnOnDisplay(void); static void FCSetup_ResetBGCoords(void); static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void); static void FreeSelectionCursorSpriteResources(void); -static u8 CreateFlavorTextIconSelectorCursorSprite(s16 a0); +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where); static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite); static void FreeQuestionMarkSpriteResources(void); -static u8 PlaceQuestionMarkTile(u8, u8); +static u8 PlaceQuestionMarkTile(u8 x, u8 y); static void FreeSpinningPokeballSpriteResources(void); static u8 CreateSpinningPokeballSprite(void); static void SpriteCB_DestroySpinningPokeball(struct Sprite *sprite); static void FreeNonTrainerPicTiles(void); -static u8 CreatePersonPicSprite(u8 a0); -static void DestroyPersonPicSprite(u8 a0, u16 a1); -static void UpdateIconDescriptionBox(u8 a0); -static void sub_812DB10(void); +static u8 CreatePersonPicSprite(u8 fcPersonIdx); +static void DestroyPersonPicSprite(u8 taskId, u16 who); +static void UpdateIconDescriptionBox(u8 whichText); +static void UpdateIconDescriptionBoxOff(void); static void FC_CreateListMenu(void); static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite); static void InitListMenuTemplate(void); -static void FC_MoveCursorFunc(s32, bool8, struct ListMenu *); -static void sub_812DD50(u8 taskId); +static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list); +static void Task_SwitchToPickMode(u8 taskId); static void PrintCancelDescription(void); static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit); static u8 FC_PopulateListMenu(void); @@ -118,10 +118,10 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId); static void FC_CreateScrollIndicatorArrowPair(void); static void FreeListMenuSelectorArrowPairResources(void); static u16 FameCheckerGetCursorY(void); -static void FlipBitUnk23_0(bool8); -static void sub_812E110(u8 taskId); -static void sub_812E178(u8 a0, s16 a1); -static void PlaceListMenuCursor(bool8 a0); +static void HandleFlavorTextModeSwitch(bool8 state); +static void Task_FCOpenOrCloseInfoBox(u8 taskId); +static void UpdateInfoBoxTilemap(u8 bg, s16 state); +static void PlaceListMenuCursor(bool8 isActive); extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_ListMenuCursor[]; @@ -447,7 +447,7 @@ void UseFameChecker(MainCallback savedCallback) sFameCheckerData->listMenuCurIdx = 0; sFameCheckerData->listMenuTopIdx2 = 0; sFameCheckerData->listMenuDrawnSelIdx = 0; - sFameCheckerData->unk_23_0 = FALSE; + sFameCheckerData->viewingFlavorText = FALSE; PlaySE(SE_W202); SetMainCallback2(MainCB2_LoadFameChecker); } @@ -510,7 +510,7 @@ static void MainCB2_LoadFameChecker(void) break; case 6: LoadUISpriteSheetsAndPalettes(); - CreateAllFlavorTextIcons(0); + CreateAllFlavorTextIcons(FAMECHECKER_OAK); WipeMsgBoxAndTransfer(); BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); gMain.state++; @@ -523,7 +523,7 @@ static void MainCB2_LoadFameChecker(void) SetVBlankCallback(FC_VBlankCallback); sFameCheckerData->listMenuTopIdx = 0; FC_CreateScrollIndicatorArrowPair(); - sub_812E178(1, 4); + UpdateInfoBoxTilemap(1, 4); CreateTask(Task_WaitFadeOnInit, 0x08); SetMainCallback2(MainCB2_FameCheckerMain); gMain.state = 0; @@ -549,7 +549,7 @@ static void Task_TopMenuHandleInput(u8 taskId) u8 i; struct Task *task = &gTasks[taskId]; s16 * data = gTasks[taskId].data; - if (FindTaskIdByFunc(sub_812E110) == 0xFF) + if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF) { RunTextPrinters(); if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) @@ -566,8 +566,8 @@ static void Task_TopMenuHandleInput(u8 taskId) PlaySE(SE_W100); FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); - sub_812E178(2, 4); - sub_812E178(1, 5); + UpdateInfoBoxTilemap(2, 4); + UpdateInfoBoxTilemap(1, 5); PrintUIHelp(1); task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[cursorPos]); gSprites[task->data[2]].pos2.x = 0xF0; @@ -597,7 +597,7 @@ static void Task_TopMenuHandleInput(u8 taskId) if (i != task->data[1]) SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); } - gUnknown_3005EC8 = 0xFF; + gIconDescriptionBoxIsOpen = 0xFF; PlaceListMenuCursor(FALSE); PrintUIHelp(2); if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) // not a ? tile @@ -631,7 +631,7 @@ static bool8 TryExitPickMode(u8 taskId) WipeMsgBoxAndTransfer(); task->func = Task_ExitPickMode; MessageBoxPrintEmptyText(); - sFameCheckerData->unk_23_2 = FALSE; + sFameCheckerData->pickModeOverCancel = FALSE; return TRUE; } return FALSE; @@ -666,8 +666,8 @@ static void Task_ExitPickMode(u8 taskId) { if (sFameCheckerData->personHasUnlockedPanels) PrintUIHelp(0); - sub_812E178(1, 4); - sub_812E178(2, 2); + UpdateInfoBoxTilemap(1, 4); + UpdateInfoBoxTilemap(2, 2); sFameCheckerData->inPickMode = FALSE; DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); task->func = Task_TopMenuHandleInput; @@ -695,8 +695,8 @@ static void Task_FlavorTextDisplayHandleInput(u8 taskId) SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_NORMAL); WipeMsgBoxAndTransfer(); gSprites[task->data[0]].callback = SpriteCB_DestroyFlavorTextIconSelectorCursor; - if (gUnknown_3005EC8 != 0xFF) - sub_812DB10(); + if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); PlaceListMenuCursor(TRUE); PrintUIHelp(0); FC_CreateScrollIndicatorArrowPair(); @@ -760,8 +760,8 @@ static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) PrintSelectedNameInBrightGreen(taskId); UpdateIconDescriptionBox(data[1]); } - else if (gUnknown_3005EC8 != 0xFF) - sub_812DB10(); + else if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); } static void GetPickModeText(void) @@ -913,14 +913,13 @@ static void DestroyAllFlavorTextIcons(void) } } -static bool8 CreateAllFlavorTextIcons(u8 a0) +static bool8 CreateAllFlavorTextIcons(u8 who) { - // r8 <- a0 bool8 result = FALSE; u8 i; for (i = 0; i < 6; i++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> i) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { sFameCheckerData->spriteIds[i] = sub_805EB44( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], @@ -1206,12 +1205,12 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who) sub_810C2E8(data[2]); } -static void UpdateIconDescriptionBox(u8 a0) +static void UpdateIconDescriptionBox(u8 whichText) { s32 width; - u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; - FlipBitUnk23_0(TRUE); - gUnknown_3005EC8 = 1; + u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + whichText; + HandleFlavorTextModeSwitch(TRUE); + gIconDescriptionBoxIsOpen = 1; FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); @@ -1221,10 +1220,10 @@ static void UpdateIconDescriptionBox(u8 a0) FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } -static void sub_812DB10(void) +static void UpdateIconDescriptionBoxOff(void) { - FlipBitUnk23_0(FALSE); - gUnknown_3005EC8 = 0xFF; + HandleFlavorTextModeSwitch(FALSE); + gIconDescriptionBoxIsOpen = 0xFF; } static void FC_CreateListMenu(void) @@ -1259,11 +1258,11 @@ static void InitListMenuTemplate(void) static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 sp8; + u16 listMenuTopIdx; u8 taskId; - u16 r9; + u16 personIdx; sLastMenuIdx = 0; - r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; + personIdx = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; FC_DoMoveCursor(itemIndex, onInit); taskId = FindTaskIdByFunc(Task_TopMenuHandleInput); if (taskId != 0xFF) @@ -1271,24 +1270,24 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp8, NULL); - sFameCheckerData->listMenuTopIdx = sp8; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listMenuTopIdx, NULL); + sFameCheckerData->listMenuTopIdx = listMenuTopIdx; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { DestroyAllFlavorTextIcons(); CreateAllFlavorTextIcons(itemIndex); if (sFameCheckerData->inPickMode) { - if (!sFameCheckerData->unk_23_2) + if (!sFameCheckerData->pickModeOverCancel) { - DestroyPersonPicSprite(taskId, r9); + DestroyPersonPicSprite(taskId, personIdx); sLastMenuIdx = itemIndex; - task->func = sub_812DD50; + task->func = Task_SwitchToPickMode; } else { gSprites[task->data[2]].invisible = FALSE; - sFameCheckerData->unk_23_2 = FALSE; + sFameCheckerData->pickModeOverCancel = FALSE; gSprites[task->data[2]].data[0] = 0; GetPickModeText(); } @@ -1305,7 +1304,7 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; - sFameCheckerData->unk_23_2 = TRUE; + sFameCheckerData->pickModeOverCancel = TRUE; } else { @@ -1319,7 +1318,7 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } } -static void sub_812DD50(u8 taskId) +static void Task_SwitchToPickMode(u8 taskId) { struct Task * task = &gTasks[taskId]; task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[sLastMenuIdx]); @@ -1437,29 +1436,29 @@ static u16 FameCheckerGetCursorY(void) return sp0 + sp2; } -static void FlipBitUnk23_0(bool8 a0) +static void HandleFlavorTextModeSwitch(bool8 state) { - if (sFameCheckerData->unk_23_0 != a0) + if (sFameCheckerData->viewingFlavorText != state) { - u8 taskId = FindTaskIdByFunc(sub_812E110); + u8 taskId = FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox); if (taskId == 0xFF) - taskId = CreateTask(sub_812E110, 8); + taskId = CreateTask(Task_FCOpenOrCloseInfoBox, 8); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 4; - if (a0 == TRUE) + if (state == TRUE) { gTasks[taskId].data[2] = 1; - sFameCheckerData->unk_23_0 = TRUE; + sFameCheckerData->viewingFlavorText = TRUE; } else { gTasks[taskId].data[2] = 4; - sFameCheckerData->unk_23_0 = FALSE; + sFameCheckerData->viewingFlavorText = FALSE; } } } -static void sub_812E110(u8 taskId) +static void Task_FCOpenOrCloseInfoBox(u8 taskId) { struct Task * task = &gTasks[taskId]; switch (task->data[0]) @@ -1467,7 +1466,7 @@ static void sub_812E110(u8 taskId) case 0: if (--task->data[1] == 0) { - sub_812E178(1, 0); + UpdateInfoBoxTilemap(1, 0); task->data[1] = 4; task->data[0]++; } @@ -1475,16 +1474,16 @@ static void sub_812E110(u8 taskId) case 1: if (--task->data[1] == 0) { - sub_812E178(1, task->data[2]); + UpdateInfoBoxTilemap(1, task->data[2]); DestroyTask(taskId); } break; } } -static void sub_812E178(u8 bg, s16 a1) +static void UpdateInfoBoxTilemap(u8 bg, s16 state) { - if (a1 == 0 || a1 == 3) + if (state == 0 || state == 3) { FillBgTilemapBufferRect(bg, 0x8C, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0xA1, 15, 10, 10, 1, 1); @@ -1498,7 +1497,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x92, 25, 12, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x93, 26, 12, 1, 1, 1); } - else if (a1 == 1) + else if (state == 1) { FillBgTilemapBufferRect(bg, 0x9B, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x9C, 15, 10, 11, 1, 1); @@ -1510,7 +1509,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x9F, 15, 12, 11, 1, 1); FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); } - else if (a1 == 2) + else if (state == 2) { FillBgTilemapBufferRect(bg, 0x94, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x95, 15, 10, 11, 1, 1); @@ -1522,7 +1521,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x98, 15, 12, 11, 1, 1); FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); } - else if (a1 == 4) + else if (state == 4) { FillBgTilemapBufferRect(bg, 0x83, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0xA0, 15, 10, 10, 1, 1); @@ -1537,7 +1536,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x84, 25, 12, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x85, 26, 12, 1, 1, 1); } - else if (a1 == 5) + else if (state == 5) { FillBgTilemapBufferRect(bg, 0x00, 14, 10, 13, 3, 1); } From d7237d2cb74ea02b71742b09a1db2cf2721fb999 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 08:47:47 -0500 Subject: [PATCH 40/49] Also name the text color assets --- src/fame_checker.c | 62 +++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/fame_checker.c b/src/fame_checker.c index 85cea3015..67344edbc 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -149,12 +149,12 @@ static const u8 sDaisySpriteGfx[] = INCBIN_U8("data/fame_checker/img_845e560.4bp static const u16 sDaisySpritePalette[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); static const u8 sOakSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); static const u16 sOakSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); -static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); // unused? static const u16 sSilhouettePalette[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); -static const struct TextColor gUnknown_845F5E0 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; -static const struct TextColor gUnknown_845F5E3 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; -static const struct TextColor gUnknown_845F5E6 = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; +static const struct TextColor sTextColor_White = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; +static const struct TextColor sTextColor_DkGrey = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; +static const struct TextColor sTextColor_Green = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; static const u16 sTrainerIdxs[] = { FC_NONTRAINER_START + 0, // OAK @@ -766,9 +766,9 @@ static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) static void GetPickModeText(void) { - u8 r8 = 0; - u16 r6 = FameCheckerGetCursorY(); - if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) + u8 offset = 0; + u16 who = FameCheckerGetCursorY(); + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].pickState != FCPICKSTATE_COLORED) { WipeMsgBoxAndTransfer(); MessageBoxPrintEmptyText(); @@ -777,8 +777,8 @@ static void GetPickModeText(void) { FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) - r8 = NUM_FAMECHECKER_PERSONS; - StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[r6] + r8]); + offset = NUM_FAMECHECKER_PERSONS; + StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[who] + offset]); AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } @@ -833,7 +833,7 @@ static void Task_StartToCloseFameChecker(u8 taskId) static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) { - u8 r4; + u8 i; if (!gPaletteFade.active) { @@ -843,9 +843,9 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } - for (r4 = 0; r4 < 6; r4++) + for (i = 0; i < 6; i++) { - DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); } FreeNonTrainerPicTiles(); FreeSpinningPokeballSpriteResources(); @@ -900,7 +900,7 @@ static void PrintUIHelp(u8 state) } width = GetStringWidth(0, src, 0); FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); - AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, src); + AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &sTextColor_White, -1, src); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); } @@ -1213,10 +1213,10 @@ static void UpdateIconDescriptionBox(u8 whichText) gIconDescriptionBoxIsOpen = 1; FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &sTextColor_DkGrey, -1, sFlavorTextOriginLocationTexts[idx]); StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &sTextColor_DkGrey, -1, gStringVar1); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } @@ -1308,10 +1308,10 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } else { - u8 r2; - for (r2 = 0; r2 < 6; r2++) + u8 iwho; + for (iwho = 0; iwho < 6; iwho++) { - gSprites[sFameCheckerData->spriteIds[r2]].invisible = TRUE; + gSprites[sFameCheckerData->spriteIds[i]].invisible = TRUE; } } } @@ -1336,24 +1336,24 @@ static void PrintCancelDescription(void) static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { - u16 sp14; - u16 sp16; - u16 r6; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp14, &sp16); - r6 = sp14 + sp16; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); + u16 topIdx; + u16 drawnSelIdx; + u16 who; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &topIdx, &drawnSelIdx); + who = topIdx + drawnSelIdx; + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * drawnSelIdx + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < sFameCheckerData->listMenuTopIdx2) + if (topIdx < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; - else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) + else if (topIdx > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; - sFameCheckerData->listMenuDrawnSelIdx = sp16; - sFameCheckerData->listMenuTopIdx2 = sp14; + sFameCheckerData->listMenuDrawnSelIdx = drawnSelIdx; + sFameCheckerData->listMenuTopIdx2 = topIdx; } static u8 FC_PopulateListMenu(void) @@ -1547,7 +1547,7 @@ static void PlaceListMenuCursor(bool8 isActive) { u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); if (isActive == TRUE) - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_DkGrey, 0, gFameCheckerText_ListMenuCursor); else - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_White, 0, gFameCheckerText_ListMenuCursor); } From cb9f24a9a9f71d711150c6c61e2b6e2b8f99a3d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 10:15:08 -0500 Subject: [PATCH 41/49] Fix errors introduced in precious commit --- src/fame_checker.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/fame_checker.c b/src/fame_checker.c index 67344edbc..64a73c7a4 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -922,7 +922,7 @@ static bool8 CreateAllFlavorTextIcons(u8 who) if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { sFameCheckerData->spriteIds[i] = sub_805EB44( - sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[who] * 6 + i], i, 47 * (i % 3) + 0x72, 27 * (i / 3) + 0x2F @@ -1308,8 +1308,8 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } else { - u8 iwho; - for (iwho = 0; iwho < 6; iwho++) + u8 i; + for (i = 0; i < 6; i++) { gSprites[sFameCheckerData->spriteIds[i]].invisible = TRUE; } @@ -1336,24 +1336,24 @@ static void PrintCancelDescription(void) static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { - u16 topIdx; - u16 drawnSelIdx; + u16 listY; + u16 cursorY; u16 who; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &topIdx, &drawnSelIdx); - who = topIdx + drawnSelIdx; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * drawnSelIdx + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + who = listY + cursorY; + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (topIdx < sFameCheckerData->listMenuTopIdx2) + if (listY < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; - else if (topIdx > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) + else if (listY > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; - sFameCheckerData->listMenuDrawnSelIdx = drawnSelIdx; - sFameCheckerData->listMenuTopIdx2 = topIdx; + sFameCheckerData->listMenuDrawnSelIdx = cursorY; + sFameCheckerData->listMenuTopIdx2 = listY; } static u8 FC_PopulateListMenu(void) @@ -1400,7 +1400,7 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) static void FC_CreateScrollIndicatorArrowPair(void) { - struct ScrollIndicatorArrowPairTemplate sp0 = { + struct ScrollIndicatorArrowPairTemplate template = { 2, 40, 26, @@ -1417,9 +1417,9 @@ static void FC_CreateScrollIndicatorArrowPair(void) if (sFameCheckerData->numUnlockedPersons > 5) { - sp0.unk_06 = 0; - sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); + template.unk_06 = 0; + template.unk_08 = sFameCheckerData->numUnlockedPersons - 5; + sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&template, &sFameCheckerData->listMenuTopIdx); } } @@ -1431,9 +1431,9 @@ static void FreeListMenuSelectorArrowPairResources(void) static u16 FameCheckerGetCursorY(void) { - u16 sp0, sp2; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp0, &sp2); - return sp0 + sp2; + u16 listY, cursorY; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + return listY + cursorY; } static void HandleFlavorTextModeSwitch(bool8 state) From a538f77b552169d1a757281c8418281a7e8dc65a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 10:42:07 -0500 Subject: [PATCH 42/49] Dump fame checker bg graphics --- data/graphics.s | 6 ++--- data/graphics/fame_checker_bg.pal | 35 +++++++++++++++++++++++++ data/graphics/fame_checker_bg.png | Bin 0 -> 906 bytes data/graphics/fame_checker_tilemap.bin | Bin 0 -> 2048 bytes graphics_file_rules.mk | 6 ++++- 5 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 data/graphics/fame_checker_bg.pal create mode 100644 data/graphics/fame_checker_bg.png create mode 100644 data/graphics/fame_checker_tilemap.bin diff --git a/data/graphics.s b/data/graphics.s index a81ff20c2..b35d5fa7d 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -394,13 +394,13 @@ gUnknown_8E9F1FC:: @ 8E9F1FC .incbin "baserom.gba", 0xE9F1FC, 0x24 gUnknown_8E9F220:: @ 8E9F220 - .incbin "baserom.gba", 0xE9F220, 0x40 + .incbin "data/graphics/fame_checker_bg.gbapal" gUnknown_8E9F260:: @ 8E9F260 - .incbin "baserom.gba", 0xE9F260, 0x14A0 + .incbin "data/graphics/fame_checker_bg.4bpp" gUnknown_8EA0700:: @ 8EA0700 - .incbin "baserom.gba", 0xEA0700, 0x800 + .incbin "data/graphics/fame_checker_tilemap.bin" gUnknown_8EA0F00:: @ 8EA0F00 .incbin "baserom.gba", 0xEA0F00, 0x800 diff --git a/data/graphics/fame_checker_bg.pal b/data/graphics/fame_checker_bg.pal new file mode 100644 index 000000000..9fc41db87 --- /dev/null +++ b/data/graphics/fame_checker_bg.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +246 222 82 +255 255 156 +246 222 82 +255 238 98 +255 255 213 +255 172 106 +222 148 74 +255 246 222 +156 148 164 +238 230 180 +255 255 213 +123 123 123 +213 213 213 +255 255 255 +106 106 106 +24 98 197 +246 222 82 +172 164 90 +148 156 230 +98 106 180 +123 131 205 +255 255 255 +213 213 213 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 0 0 +0 255 0 +205 213 213 +238 238 246 +106 106 106 diff --git a/data/graphics/fame_checker_bg.png b/data/graphics/fame_checker_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1a9a0f89d6b90fe76de1d8110161cb23c9d03d GIT binary patch literal 906 zcmV;519kj~P)1#o5XV4x0d7cEX7On89g) zX%ir3#3jOOk>~0#J$r(gja6|r0V7GIh2xP+t^vHosGy&|9Rv*DyZ!&AATS|aARM~E92T-vYfU28X zKsW_i?jAsf(JhH?y;n?~0es8%0o<83J9Lf%uw$<~pkx4c@J0cV%zFTP^hW`awXgI8 zrLqL}DCh>bckZYje-5CC=!dY<1!q6gy&QwDt=r!puyOkXKw$8-cKd_zTi?(Z;N(aF zR%`p&zrij5Y<)wqTQ@j_06sn-h7PeQ+lZZ_I9zORL96x1YY$gBDzFde*VsP*;6_A^ z{4wVN)OG44jjF2lCXE0dK@;Ghza01psspgdjspzj@1SoQAREl+-2sJmyz0Kg0Q=N| z5<0neZ~&?=1bB(jP9Z=~<9`C!goXgw*9>5*699DIEfW$ctUlrZeZU+IKs_Hox1T2h g4mt{e%Xci`57)q*pZ*^k8UO$Q07*qoM6N<$f(HDJZF^X=v%_8Ss?wWMpDyVP#|I y;N();p40IKLLwE;4+LTo73N!iU+gC(Q}MPx=_l!CzPw+lE9vI?vseRvZr}z{Aq-&v literal 0 HcmV?d00001 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index d511ce7d9..957c7a52d 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -1,4 +1,5 @@ -FONTGFXDIR := data/graphics/fonts +GLOBALGFXDIR := data/graphics +FONTGFXDIR := $(GLOBALGFXDIR)/fonts FAMECHECKERGFXDIR := data/fame_checker $(FONTGFXDIR)/font0_latin.latfont: $(FONTGFXDIR)/font0_latin.png @@ -36,3 +37,6 @@ $(FONTGFXDIR)/font9_jap.fwjpnfont: $(FONTGFXDIR)/font9_jap.png $(FAMECHECKERGFXDIR)/img_845cf00.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 15 + +$(GLOBALGFXDIR)/fame_checker_bg.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 165 From 144027e4fad045d41afea0dfc8bd2bed27a64e6d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 10:50:41 -0500 Subject: [PATCH 43/49] Dump another fame checker tilemap --- data/graphics.s | 12 ++++++------ data/graphics/fame_checker_tilemap2.bin | Bin 0 -> 2048 bytes ...ker_tilemap.bin => fame_checker_tilemap3.bin} | Bin include/graphics.h | 8 ++++---- src/fame_checker.c | 10 +++++----- 5 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 data/graphics/fame_checker_tilemap2.bin rename data/graphics/{fame_checker_tilemap.bin => fame_checker_tilemap3.bin} (100%) diff --git a/data/graphics.s b/data/graphics.s index b35d5fa7d..f33d86355 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -393,17 +393,17 @@ gUnknown_8E9E9FC:: @ 8E9E9FC gUnknown_8E9F1FC:: @ 8E9F1FC .incbin "baserom.gba", 0xE9F1FC, 0x24 -gUnknown_8E9F220:: @ 8E9F220 +gFameCheckerBgPals:: @ 8E9F220 .incbin "data/graphics/fame_checker_bg.gbapal" -gUnknown_8E9F260:: @ 8E9F260 +gFameCheckerBgTiles:: @ 8E9F260 .incbin "data/graphics/fame_checker_bg.4bpp" -gUnknown_8EA0700:: @ 8EA0700 - .incbin "data/graphics/fame_checker_tilemap.bin" +gFameCheckerBg3Tilemap:: @ 8EA0700 + .incbin "data/graphics/fame_checker_tilemap3.bin" -gUnknown_8EA0F00:: @ 8EA0F00 - .incbin "baserom.gba", 0xEA0F00, 0x800 +gFameCheckerBg2Tilemap:: @ 8EA0F00 + .incbin "data/graphics/fame_checker_tilemap2.bin" gUnknown_8EA1700:: @ 8EA1700 .incbin "baserom.gba", 0xEA1700, 0x20 diff --git a/data/graphics/fame_checker_tilemap2.bin b/data/graphics/fame_checker_tilemap2.bin new file mode 100644 index 0000000000000000000000000000000000000000..6e2eed695d72d74d3ece9fcf4f0354ce8a1b63fd GIT binary patch literal 2048 zcmZQz7+Ao?z>NlZNOF)AgEShH8P!ih2+%V88Uz}#!X_m5;j@2=z*MYo8j~7K1h#)Pc)(3UpzG-EbA7jL{Gn4S~@R7`PAs0G{+T{r~^~ literal 0 HcmV?d00001 diff --git a/data/graphics/fame_checker_tilemap.bin b/data/graphics/fame_checker_tilemap3.bin similarity index 100% rename from data/graphics/fame_checker_tilemap.bin rename to data/graphics/fame_checker_tilemap3.bin diff --git a/include/graphics.h b/include/graphics.h index c5544428e..d249ece10 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -145,9 +145,9 @@ extern const u16 gUnknown_08DDAFE0[]; // fame_checker -extern const u16 gUnknown_8E9F220[0x30]; -extern const u16 gUnknown_8E9F260[0xa50]; -extern const u16 gUnknown_8EA0700[0x400]; -extern const u16 gUnknown_8EA0F00[0x400]; +extern const u16 gFameCheckerBgPals[0x30]; +extern const u16 gFameCheckerBgTiles[0xa50]; +extern const u16 gFameCheckerBg3Tilemap[0x400]; +extern const u16 gFameCheckerBg2Tilemap[0x400]; #endif //GUARD_GRAPHICS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index 64a73c7a4..617ba1522 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -478,11 +478,11 @@ static void MainCB2_LoadFameChecker(void) gMain.state++; break; case 3: - LoadBgTiles(3, gUnknown_8E9F260, sizeof(gUnknown_8E9F260), 0); - CopyToBgTilemapBufferRect(3, gUnknown_8EA0700, 0, 0, 32, 32); - LoadPalette(gUnknown_8E9F220 + 0x00, 0x00, 0x40); - LoadPalette(gUnknown_8E9F220 + 0x10, 0x10, 0x20); - CopyToBgTilemapBufferRect(2, gUnknown_8EA0F00, 0, 0, 32, 32); + LoadBgTiles(3, gFameCheckerBgTiles, sizeof(gFameCheckerBgTiles), 0); + CopyToBgTilemapBufferRect(3, gFameCheckerBg3Tilemap, 0, 0, 32, 32); + LoadPalette(gFameCheckerBgPals + 0x00, 0x00, 0x40); + LoadPalette(gFameCheckerBgPals + 0x10, 0x10, 0x20); + CopyToBgTilemapBufferRect(2, gFameCheckerBg2Tilemap, 0, 0, 32, 32); CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11); LoadPalette(stdpal_get(2), 0xF0, 0x20); gMain.state++; From 013fcf86fbeccf8d527e43a4f5aaf44402daba48 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 13:49:46 -0500 Subject: [PATCH 44/49] Fix spacing in globah.h --- include/global.h | 22 +++++++++++----------- src/fame_checker.c | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/global.h b/include/global.h index b81b29381..30be4fd9f 100644 --- a/include/global.h +++ b/include/global.h @@ -616,8 +616,8 @@ struct SaveBlock1 /*0x0638*/ u8 trainerRematchStepCounter; u8 filler_639; /*0x063A*/ u8 trainerRematches[100]; - /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; - /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; + /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; + /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; /*0x0EE0*/ u8 flags[FLAGS_COUNT]; /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u8 filler1200[0x100]; @@ -626,15 +626,15 @@ struct SaveBlock1 /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2F10*/ u8 filler2F10[0x184]; struct { - /*0x3094*/ u8 unknown1[8]; - /*0x309C*/ u8 giftRibbons[11]; - /*0x30A7*/ u8 unknown2[8]; - /*0x30AF*/ u32 currentPokeCoupons; - /*0x30B3*/ u32 totalEarnedPokeCoupons; - /*0x30B7*/ u8 unknown3[6]; - /*0x30BD*/ u8 receivedWishmakerJirachi; - /*0x30BE*/ u8 unknown4[18]; - } __attribute__((packed)) externalReservedData; + /*0x3094*/ u8 unknown1[8]; + /*0x309C*/ u8 giftRibbons[11]; + /*0x30A7*/ u8 unknown2[8]; + /*0x30AF*/ u32 currentPokeCoupons; + /*0x30B3*/ u32 totalEarnedPokeCoupons; + /*0x30B7*/ u8 unknown3[6]; + /*0x30BD*/ u8 receivedWishmakerJirachi; + /*0x30BE*/ u8 unknown4[18]; + } __attribute__((packed)) externalReservedData; /*0x30D0*/ struct Roamer roamer; /*0x30EC*/ struct EnigmaBerry enigmaBerry; /*0x3120*/ u8 filler3120[0x340]; diff --git a/src/fame_checker.c b/src/fame_checker.c index 617ba1522..ed38406cb 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -129,7 +129,7 @@ extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; extern const u8 gFameCheckerText_ClearTextbox[]; extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" extern const u8 gFameCheckerOakName[]; // "OAK$" extern const u8 gFameCheckerDaisyName[]; // "DAISY$" extern const u8 gFameCheckerBillName[]; // "BILL$" From ff55777ac8d0ee55fbe629381a781f0519cb2d29 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 14:15:29 -0500 Subject: [PATCH 45/49] Define the PC items allocation in SaveBlock1 --- include/global.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/global.h b/include/global.h index 30be4fd9f..97b179410 100644 --- a/include/global.h +++ b/include/global.h @@ -97,6 +97,7 @@ enum LanguageId { #define GAME_LANGUAGE (LANGUAGE_ENGLISH) +#define PC_ITEMS_COUNT 30 #define BAG_ITEMS_COUNT 42 #define BAG_KEYITEMS_COUNT 30 #define BAG_POKEBALLS_COUNT 13 @@ -605,7 +606,7 @@ struct SaveBlock1 /*0x0290*/ u32 money; /*0x0294*/ u16 coins; /*0x0296*/ u16 registeredItem; // registered for use with SELECT button - /*0x0298*/ u8 filler298[0x78]; + /*0x0298*/ struct ItemSlot pcItems[PC_ITEMS_COUNT]; /*0x0310*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; /*0x03b8*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT]; /*0x0430*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; From 592a0f03e8196e2851e00b4d891daef752e6edf0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 18:10:28 -0500 Subject: [PATCH 46/49] Name the game stats array --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/global.h b/include/global.h index 97b179410..3ff57357e 100644 --- a/include/global.h +++ b/include/global.h @@ -621,7 +621,7 @@ struct SaveBlock1 /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; /*0x0EE0*/ u8 flags[FLAGS_COUNT]; /*0x1000*/ u16 vars[VARS_COUNT]; - /*0x1200*/ u8 filler1200[0x100]; + /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; /*0x1300*/ struct QuestLog questLog[4]; /*0x2CA0*/ u8 filler2CA0[0x30]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; From c79a939d3d03d861769a5f54ec52c7b976c14a3b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 18:18:10 -0500 Subject: [PATCH 47/49] Identify easy chat arrays in save block 1 --- include/global.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/global.h b/include/global.h index 3ff57357e..5ad4e4f9d 100644 --- a/include/global.h +++ b/include/global.h @@ -623,7 +623,10 @@ struct SaveBlock1 /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; /*0x1300*/ struct QuestLog questLog[4]; - /*0x2CA0*/ u8 filler2CA0[0x30]; + /*0x2CA0*/ u16 unk2CA0[6]; + /*0x2CAC*/ u16 unk2CAC[6]; + /*0x2CB8*/ u16 unk2CB8[6]; + /*0x2CC4*/ u16 unk2CC4[6]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2F10*/ u8 filler2F10[0x184]; struct { From c6778caf1e36c2847314c5751e8181089c8c66ab Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 18:55:55 -0500 Subject: [PATCH 48/49] Identify most of SaveBlock1 --- include/global.h | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/include/global.h b/include/global.h index 5ad4e4f9d..d5bfc5241 100644 --- a/include/global.h +++ b/include/global.h @@ -489,8 +489,8 @@ struct DaycareMon struct DayCare { struct DaycareMon mons[DAYCARE_MON_COUNT]; - u32 offspringPersonality; - u8 stepCounter; + u16 unk_118; + u8 unk_11A; }; struct DayCareMail @@ -588,6 +588,9 @@ struct FameCheckerSaveData #define VARS_COUNT 256 #define MAIL_COUNT 16 +#define NUM_EASY_CHAT_EXTRA_PHRASES 33 +#define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0)) + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -613,10 +616,10 @@ struct SaveBlock1 /*0x0464*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT]; /*0x054c*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT]; /*0x05F8*/ u8 seen1[DEX_FLAGS_NO]; - /*0x062C*/ u8 filler_062c[12]; + /*0x062C*/ u16 berryBlenderRecords[3]; // unused + /*0x0632*/ u8 field_632[6]; // unused? /*0x0638*/ u8 trainerRematchStepCounter; - u8 filler_639; - /*0x063A*/ u8 trainerRematches[100]; + /*0x063A*/ u8 ALIGNED(2) trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; /*0x0EE0*/ u8 flags[FLAGS_COUNT]; @@ -628,17 +631,11 @@ struct SaveBlock1 /*0x2CB8*/ u16 unk2CB8[6]; /*0x2CC4*/ u16 unk2CC4[6]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; - /*0x2F10*/ u8 filler2F10[0x184]; - struct { - /*0x3094*/ u8 unknown1[8]; - /*0x309C*/ u8 giftRibbons[11]; - /*0x30A7*/ u8 unknown2[8]; - /*0x30AF*/ u32 currentPokeCoupons; - /*0x30B3*/ u32 totalEarnedPokeCoupons; - /*0x30B7*/ u8 unknown3[6]; - /*0x30BD*/ u8 receivedWishmakerJirachi; - /*0x30BE*/ u8 unknown4[18]; - } __attribute__((packed)) externalReservedData; + /*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE]; + /*0x2F18*/ OldMan oldMan; // unused + /*0x2F54*/ struct EasyChatPair easyChatPairs[5]; // unused + /*0x2F80*/ struct DayCare daycare; + /*0x309C*/ u8 giftRibbons[52]; /*0x30D0*/ struct Roamer roamer; /*0x30EC*/ struct EnigmaBerry enigmaBerry; /*0x3120*/ u8 filler3120[0x340]; From 18303c4596f96eaa68bbf8ccbc4ba19f9a8fed88 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 19:05:09 -0500 Subject: [PATCH 49/49] Further annotate that weird table in crt0.s --- asm/crt0.s | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/asm/crt0.s b/asm/crt0.s index a2e9cd75f..f2e28c9e1 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -88,22 +88,22 @@ GPIOPortReadEnable: @ 80000C8 .4byte 0x30BB .4byte 0x30A7 .4byte 0 - .4byte 0x8254784 - .4byte 0x824FC40 - .4byte 0x824FB08 - .4byte 0x83DB028 - .4byte 0x8250C04 - .4byte 0x826056C - .4byte 0x82605CC + .4byte 0x8254784 @ gBaseStats + .4byte 0x824FC40 @ gAbilityNames + .4byte 0x824FB08 @ gAbilityDescriptionPointers + .4byte 0x83DB028 @ gItems + .4byte 0x8250C04 @ gBattleMoves + .4byte 0x826056C @ gBallSpriteSheets + .4byte 0x82605CC @ gBallSpritePalettes .4byte 0xA8 .4byte 0x82C .4byte 0x83B .4byte 0x3A0D1E2A .4byte 0x1E2B - .4byte 0x298 - .4byte 0x309C - .4byte 0x30EC - .4byte 0x34 + .4byte 0x298 @ offsetof(struct SaveBlock1, pcItems) // maybe all items were in a struct together? + .4byte 0x309C @ offsetof(struct SaveBlock1, giftRibbons) + .4byte 0x30EC @ offsetof(struct SaveBlock1, enigmaBerry) + .4byte 0x34 @ size of SaveBlock1 map header reconstruction data? .4byte 0 .4byte 0xFFFFFFFF