diff options
author | Paul Sander <nintendo6496@googlemail.com> | 2018-11-30 22:16:04 +0100 |
---|---|---|
committer | Paul Sander <nintendo6496@googlemail.com> | 2018-11-30 22:16:04 +0100 |
commit | fc1fd9c983b0ea35414f699ab6c4b4fdd617e8d0 (patch) | |
tree | d1972ab6d6b1ad9ab93bf5bde673a722a3a9f2c7 | |
parent | 308e60da31388973ac8885127b12db300e21100a (diff) | |
parent | 63c205e7d0094756ea851e0aed0852671329905c (diff) |
merge upstream
69 files changed, 4784 insertions, 5137 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/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 diff --git a/asm/fame_checker.s b/asm/fame_checker.s deleted file mode 100644 index 9e352e8ae..000000000 --- a/asm/fame_checker.s +++ /dev/null @@ -1,4171 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} - 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/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 5ad6b8b5c..8650e912d 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 @@ -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/item_use.s b/asm/item_use.s index a7f7b1b7c..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 - bl sub_812C3AC + 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 @@ -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/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/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/asm/party_menu.s b/asm/party_menu.s index 82718c6e0..bdde69c24 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/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/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/charmap.txt b/charmap.txt index f89919509..ad4062731 100644 --- a/charmap.txt +++ b/charmap.txt @@ -323,8 +323,15 @@ TALL_PLUS = FC 0C FB @ TODO: Identify and declare F7 control codes 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 @@ -383,6 +390,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 +405,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/common_syms/fame_checker.txt b/common_syms/fame_checker.txt new file mode 100644 index 000000000..c23bd9a2a --- /dev/null +++ b/common_syms/fame_checker.txt @@ -0,0 +1,2 @@ +gFameChecker_ListMenuTemplate +gIconDescriptionBoxIsOpen diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index dfa4bee5d..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,14 +2093,38 @@ gUnknown_841E572:: @ 841E572 gUnknown_841E58D:: @ 841E58D .incbin "baserom.gba", 0x41E58D, 0x17 -gUnknown_841E5A4:: @ 841E5A4 - .incbin "baserom.gba", 0x41E5A4, 0x15 +gFameCheckerText_MainScreenUI:: @ 841E5A4 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" + +gFameCheckerText_PickScreenUI:: @ 841E5B9 + .string "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" + +gFameCheckerText_FlavorTextUI:: @ 841E5D2 + .string "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" + +gFameCheckerOakName:: @ 841E5E9 + .string "OAK$" + +gFameCheckerDaisyName:: @ 841E5ED + .string "DAISY$" + +gFameCheckerBillName:: @ 841E5F3 + .string "BILL$" + +gFameCheckerMrFujiName:: @ 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_841E5B9:: @ 841E5B9 - .incbin "baserom.gba", 0x41E5B9, 0x19 +gUnknown_841E669:: @ 841E669 + .string "Read the NEWS that arrived.$" -gUnknown_841E5D2:: @ 841E5D2 - .incbin "baserom.gba", 0x41E5D2, 0xCF +gUnknown_841E685:: @ 841E685 + .string "Return to the title screen.$" gUnknown_841E6A1:: @ 841E6A1 .incbin "baserom.gba", 0x41E6A1, 0x3B @@ -3549,776 +3576,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/event_scripts.s b/data/event_scripts.s index 6bfa500cc..c27df1946 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -226,7 +226,9 @@ gUnknown_81A8DD8:: @ 81A8DD8 .incbin "baserom.gba", 0x1A8DD8, 0x25 gUnknown_81A8DFD:: @ 81A8DFD - .incbin "baserom.gba", 0x1A8DFD, 0xA072 + .incbin "baserom.gba", 0x1A8DFD, 0x4309 + + .include "data/text/fame_checker.inc" gUnknown_81B2E6F:: @ 81B2E6F .incbin "baserom.gba", 0x1B2E6F, 0x15A diff --git a/data/fame_checker/img_845ce00.png b/data/fame_checker/img_845ce00.png Binary files differnew file mode 100644 index 000000000..b0a170e09 --- /dev/null +++ b/data/fame_checker/img_845ce00.png diff --git a/data/fame_checker/img_845cf00.png b/data/fame_checker/img_845cf00.png Binary files differnew file mode 100644 index 000000000..0d692439a --- /dev/null +++ b/data/fame_checker/img_845cf00.png diff --git a/data/fame_checker/img_845d100.png b/data/fame_checker/img_845d100.png Binary files differnew file mode 100644 index 000000000..4cc3e200d --- /dev/null +++ b/data/fame_checker/img_845d100.png diff --git a/data/fame_checker/img_845d520.png b/data/fame_checker/img_845d520.png Binary files differnew file mode 100644 index 000000000..4d23c4c87 --- /dev/null +++ b/data/fame_checker/img_845d520.png diff --git a/data/fame_checker/img_845dd40.png b/data/fame_checker/img_845dd40.png Binary files differnew file mode 100644 index 000000000..7e3a7b39b --- /dev/null +++ b/data/fame_checker/img_845dd40.png diff --git a/data/fame_checker/img_845e560.png b/data/fame_checker/img_845e560.png Binary files differnew file mode 100644 index 000000000..1abf1a63e --- /dev/null +++ b/data/fame_checker/img_845e560.png diff --git a/data/fame_checker/img_845ed80.png b/data/fame_checker/img_845ed80.png Binary files differnew file mode 100644 index 000000000..5e2a19aed --- /dev/null +++ b/data/fame_checker/img_845ed80.png 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_845d500.pal b/data/fame_checker/pal_845d500.pal new file mode 100644 index 000000000..212d9eb69 --- /dev/null +++ b/data/fame_checker/pal_845d500.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 222 82 +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 +246 148 41 +255 82 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 Binary files differnew file mode 100644 index 000000000..8ff09b289 --- /dev/null +++ b/data/fame_checker/tilemap_845c600.bin diff --git a/data/graphics.s b/data/graphics.s index 50e557dc3..990a3dd9c 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16185,17 +16185,17 @@ gUnknown_8E9E9FC:: @ 8E9E9FC gUnknown_8E9F1FC:: @ 8E9F1FC .incbin "baserom.gba", 0xE9F1FC, 0x24 @UNKNOWN -gUnknown_8E9F220:: @ 8E9F220 - .incbin "baserom.gba", 0xE9F220, 0x40 @UNKNOWN +gFameCheckerBgPals:: @ 8E9F220 + .incbin "data/graphics/fame_checker_bg.gbapal" -gUnknown_8E9F260:: @ 8E9F260 - .incbin "baserom.gba", 0xE9F260, 0x14A0 @UNKNOWN +gFameCheckerBgTiles:: @ 8E9F260 + .incbin "data/graphics/fame_checker_bg.4bpp" -gUnknown_8EA0700:: @ 8EA0700 - .incbin "baserom.gba", 0xEA0700, 0x800 @UNKNOWN +gFameCheckerBg3Tilemap:: @ 8EA0700 + .incbin "data/graphics/fame_checker_tilemap3.bin" -gUnknown_8EA0F00:: @ 8EA0F00 - .incbin "baserom.gba", 0xEA0F00, 0x800 @UNKNOWN +gFameCheckerBg2Tilemap:: @ 8EA0F00 + .incbin "data/graphics/fame_checker_tilemap2.bin" gUnknown_8EA1700:: @ 8EA1700 .incbin "baserom.gba", 0xEA1700, 0x20 @UNKNOWN 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 Binary files differnew file mode 100644 index 000000000..ed1a9a0f8 --- /dev/null +++ b/data/graphics/fame_checker_bg.png diff --git a/data/graphics/fame_checker_tilemap2.bin b/data/graphics/fame_checker_tilemap2.bin Binary files differnew file mode 100644 index 000000000..6e2eed695 --- /dev/null +++ b/data/graphics/fame_checker_tilemap2.bin diff --git a/data/graphics/fame_checker_tilemap3.bin b/data/graphics/fame_checker_tilemap3.bin Binary files differnew file mode 100644 index 000000000..fdf419278 --- /dev/null +++ b/data/graphics/fame_checker_tilemap3.bin diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc new file mode 100644 index 000000000..d73c05dbd --- /dev/null +++ b/data/text/fame_checker.inc @@ -0,0 +1,1700 @@ +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$" + +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!$" + +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.$" + +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}.$" + +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" + .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.$" + +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.$" + +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.$" + +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.$" + +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.$" + +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}.$" + +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.$" + +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!$" + +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!$" + +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" + .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!$" + +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" + .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.$" + +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.$" + +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.$" + +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.$" + +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!$" + +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!$" + +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!$" + +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.$" + +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.$" + +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.$" + +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!$" + +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!$" + +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.$" + +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.$" + +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.$" + +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.$" + +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!$" + +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.$" + +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.$" + +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!$" + +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.$" + +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.$" + +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$" + +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!$" + +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.$" + +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.$" + +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.$" + +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" + .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.$" + +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!$" + +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?$" + +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.$" + +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!$" + +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.$" + +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.$" + +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!$" + +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!$" + +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" + .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.$" + +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.$" + +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.$" + +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.$" + +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.$" + +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.$" + +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!$" + +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!$" + +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!$" + +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" + .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.$" + +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!$" + +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!$" + +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.$" + +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.$" + +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" + .string "He went away disappointed when he\n" + .string "found out that they were all sold\l" + .string "out of Rage Candybars.$" + +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.$" + +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.$" + +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.$" + +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.$" + +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.$" + +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" + .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.$" + +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.$" + +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.$" + +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" + .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.$" + +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!$" + +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" + .string "He always buys capes.\p" + .string "I wonder… Does he have many\n" + .string "identical capes at home?$" + +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.$" + +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.$" + +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.$" + +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!$" + +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!$" + +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.$" + +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.$" + +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.$" + +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.$" + +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" + .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.$" + +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" + .string "The application form is…\p" + .string "Gone! It’s been clipped out.\n" + .string "Someone must have applied already.$" + +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.$" + +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.$" + +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.$" + +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" + .string "They’re important tools for keeping\n" + .string "our criminal enterprise going.\p" + .string "I am the leader, GIOVANNI!$" + +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.$" + +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.$" + +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.$" + +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?$" + +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" + .string "No, that can’t be right.\n" + .string "GIOVANNI’s kid has red hair.$" + + +gFameCheckerPersonName_ProfOak:: @ 0x81B0188 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}PROF. OAK$" + +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" + .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.$" + +gFameCheckerPersonName_Daisy:: @ 0x81B0251 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}DAISY$" + +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" + .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.$" + +gFameCheckerPersonName_Brock:: @ 0x81B030F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BROCK$" + +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" + .string "must be many tough TRAINERS.\p" + .string "Let’s both keep training and\n" + .string "making ourselves stronger!$" + +gFameCheckerPersonName_Misty:: @ 0x81B03B3 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MISTY$" + +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" + .string "this GYM.\p" + .string "When I get better, I’d love to hit\n" + .string "the road and travel.$" + +gFameCheckerPersonName_LtSurge:: @ 0x81B0446 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LT. SURGE$" + +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" + .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!$" + +gFameCheckerPersonName_Erika:: @ 0x81B0504 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}ERIKA$" + +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" + .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…$" + +gFameCheckerPersonName_Koga:: @ 0x81B05C2 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}KOGA$" + +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" + .string "sights higher and work towards\l" + .string "meeting our challenges.\p" + .string "Now, I must go train my daughter.$" + +gFameCheckerPersonName_Sabrina:: @ 0x81B0667 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}SABRINA$" + +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" + .string "POKéMON…\p" + .string "It was a power that was never\n" + .string "bested by my psychic power.$" + +gFameCheckerPersonName_Blaine:: @ 0x81B06FB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BLAINE$" + +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" + .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?$" + +gFameCheckerPersonName_Lorelei:: @ 0x81B079F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LORELEI$" + +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" + .string "help.\p" + .string "But that has nothing to do with our\n" + .string "battles.\p" + .string "You’d better watch out next time!$" + +gFameCheckerPersonName_Bruno:: @ 0x81B0845 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BRUNO$" + +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" + .string "and you I’ve experienced myself.\p" + .string "Next time, maybe I should show you\n" + .string "how to train yourself.$" + +gFameCheckerPersonName_Agatha:: @ 0x81B08EE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}AGATHA$" + +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!$" + +gFameCheckerPersonName_Lance:: @ 0x81B097F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LANCE$" + +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" + .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.$" + +gFameCheckerPersonName_Bill:: @ 0x81B0A45 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BILL$" + +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" + .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!$" + +gFameCheckerPersonName_MrFuji:: @ 0x81B0AFF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MR. FUJI$" + +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" + .string "of just your POKéMON…\p" + .string "…Can I get you to wish for the\n" + .string "happiness of all POKéMON?$" + +gFameCheckerPersonName_Giovanni:: @ 0x81B0BA6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}GIOVANNI$" + +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" + .string "to you.\p" + .string "I will concentrate solely on\n" + .string "bettering myself, and none other.$" + +gFameCheckerFlavorTextOriginLocation_ProfOak0:: @ 0x81B0C45 + .string "PALLET TOWN$" + +gFameCheckerFlavorTextOriginLocation_ProfOak1:: @ 81B0C51 + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_ProfOak2:: @ 81B0C5E + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_ProfOak3:: @ 81B0C6B + .string "VIRIDIAN CITY$" + +gFameCheckerFlavorTextOriginLocation_ProfOak4:: @ 81B0C79 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_ProfOak5:: @ 81B0C88 + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_Daisy0:: @ 81B0C95 + .string "RESEARCH LAB$" + +gFameCheckerFlavorTextOriginLocation_Daisy1:: @ 81B0CA2 + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_Daisy2:: @ 81B0CB1 + .string "WATER LABYRINTH$" + +gFameCheckerFlavorTextOriginLocation_Daisy3:: @ 81B0CC1 + .string "VIRIDIAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Daisy4:: @ 81B0CCF + .string "CELADON MANSION$" + +gFameCheckerFlavorTextOriginLocation_Daisy5:: @ 81B0CDF + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Brock0:: @ 81B0CEB + .string "PEWTER CITY$" + +gFameCheckerFlavorTextOriginLocation_Brock1:: @ 81B0CF7 + .string "PEWTER GYM$" + +gFameCheckerFlavorTextOriginLocation_Brock2:: @ 81B0D02 + .string "PEWTER CITY$" + +gFameCheckerFlavorTextOriginLocation_Brock3:: @ 81B0D0E + .string "ROUTE 4$" + +gFameCheckerFlavorTextOriginLocation_Brock4:: @ 81B0D16 + .string "MT. MOON$" + +gFameCheckerFlavorTextOriginLocation_Brock5:: @ 81B0D1F + .string "PEWTER MUSEUM$" + +gFameCheckerFlavorTextOriginLocation_Misty0:: @ 81B0D2D + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Misty1:: @ 81B0D3B + .string "CERULEAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Misty2:: @ 81B0D48 + .string "CERULEAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Misty3:: @ 81B0D55 + .string "SEAFOAM ISLANDS$" + +gFameCheckerFlavorTextOriginLocation_Misty4:: @ 81B0D65 + .string "CERULEAN CAPE$" + +gFameCheckerFlavorTextOriginLocation_Misty5:: @ 81B0D73 + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_LtSurge0:: @ 81B0D81 + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_LtSurge1:: @ 81B0D90 + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge2:: @ 81B0D9E + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge3:: @ 81B0DAC + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge4:: @ 81B0DBA + .string "VERMILION GYM$" + +gFameCheckerFlavorTextOriginLocation_LtSurge5:: @ 81B0DC8 + .string "VERMILION CITY$" + +gFameCheckerFlavorTextOriginLocation_Erika0:: @ 81B0DD7 + .string "CELADON CITY$" + +gFameCheckerFlavorTextOriginLocation_Erika1:: @ 81B0DE4 + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika2:: @ 81B0DF0 + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika3:: @ 81B0DFC + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika4:: @ 81B0E08 + .string "CELADON GYM$" + +gFameCheckerFlavorTextOriginLocation_Erika5:: @ 81B0E14 + .string "CELADON MANSION$" + +gFameCheckerFlavorTextOriginLocation_Koga0:: @ 81B0E24 + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga1:: @ 81B0E31 + .string "FUCHSIA GYM$" + +gFameCheckerFlavorTextOriginLocation_Koga2:: @ 81B0E3D + .string "FUCHSIA GYM$" + +gFameCheckerFlavorTextOriginLocation_Koga3:: @ 81B0E49 + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga4:: @ 81B0E56 + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Koga5:: @ 81B0E63 + .string "SAFARI ZONE$" + +gFameCheckerFlavorTextOriginLocation_Sabrina0:: @ 81B0E6F + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Sabrina1:: @ 81B0E7C + .string "THREE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Sabrina2:: @ 81B0E89 + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Sabrina3:: @ 81B0E95 + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Sabrina4:: @ 81B0EA1 + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Sabrina5:: @ 81B0EAE + .string "SAFFRON GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine0:: @ 81B0EBA + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Blaine1:: @ 81B0ECA + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine2:: @ 81B0ED7 + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine3:: @ 81B0EE4 + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Blaine4:: @ 81B0EF4 + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_Blaine5:: @ 81B0F01 + .string "RESORT GORGEOUS$" + +gFameCheckerFlavorTextOriginLocation_Lorelei0:: @ 81B0F11 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lorelei1:: @ 81B0F20 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lorelei2:: @ 81B0F2F + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei3:: @ 81B0F3B + .string "FIVE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei4:: @ 81B0F47 + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lorelei5:: @ 81B0F53 + .string "FOUR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bruno0:: @ 81B0F5F + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Bruno1:: @ 81B0F6E + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Bruno2:: @ 81B0F7D + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Bruno3:: @ 81B0F8A + .string "EMBER SPA$" + +gFameCheckerFlavorTextOriginLocation_Bruno4:: @ 81B0F94 + .string "TWO ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bruno5:: @ 81B0F9F + .string "SEVAULT CANYON$" + +gFameCheckerFlavorTextOriginLocation_Agatha0:: @ 81B0FAE + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Agatha1:: @ 81B0FBD + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Agatha2:: @ 81B0FCC + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Agatha3:: @ 81B0FDB + .string "SEVEN ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Agatha4:: @ 81B0FE8 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Agatha5:: @ 81B0FF7 + .string "SIX ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Lance0:: @ 81B1002 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lance1:: @ 81B1011 + .string "POKéMON LEAGUE$" + +gFameCheckerFlavorTextOriginLocation_Lance2:: @ 81B1020 + .string "SAFFRON CITY$" + +gFameCheckerFlavorTextOriginLocation_Lance3:: @ 81B102D + .string "CELADON DEPT.$" + +gFameCheckerFlavorTextOriginLocation_Lance4:: @ 81B103B + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Lance5:: @ 81B104A + .string "INDIGO PLATEAU$" + +gFameCheckerFlavorTextOriginLocation_Bill0:: @ 81B1059 + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill1:: @ 81B1067 + .string "CERULEAN CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill2:: @ 81B1075 + .string "FUCHSIA CITY$" + +gFameCheckerFlavorTextOriginLocation_Bill3:: @ 81B1082 + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bill4:: @ 81B108D + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Bill5:: @ 81B1098 + .string "ONE ISLAND$" + +gFameCheckerFlavorTextOriginLocation_MrFuji0:: @ 81B10A3 + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji1:: @ 81B10B1 + .string "POKéMON TOWER$" + +gFameCheckerFlavorTextOriginLocation_MrFuji2:: @ 81B10BF + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji3:: @ 81B10CD + .string "LAVENDER TOWN$" + +gFameCheckerFlavorTextOriginLocation_MrFuji4:: @ 81B10DB + .string "CINNABAR GYM$" + +gFameCheckerFlavorTextOriginLocation_MrFuji5:: @ 81B10E8 + .string "CINNABAR ISLAND$" + +gFameCheckerFlavorTextOriginLocation_Giovanni0:: @ 81B10F8 + .string "ROCKET HIDEOUT$" + +gFameCheckerFlavorTextOriginLocation_Giovanni1:: @ 81B1107 + .string "SILPH CO.$" + +gFameCheckerFlavorTextOriginLocation_Giovanni2:: @ 81B1111 + .string "SILPH CO.$" + +gFameCheckerFlavorTextOriginLocation_Giovanni3:: @ 81B111B + .string "VIRIDIAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Giovanni4:: @ 81B1128 + .string "VIRIDIAN GYM$" + +gFameCheckerFlavorTextOriginLocation_Giovanni5:: @ 81B1135 + .string "ROCKET WAREHOUSE$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak0:: @ 81B1146 + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak1:: @ 81B114B + .string "PROF. OAK$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak2:: @ 81B1155 + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak3:: @ 81B115A + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak4:: @ 81B116A + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_ProfOak5:: @ 81B1171 + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_Daisy0:: @ 81B1176 + .string "AIDE$" + +gFameCheckerFlavorTextOriginObjectName_Daisy1:: @ 81B117B + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Daisy2:: @ 81B1181 + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Daisy3:: @ 81B1185 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Daisy4:: @ 81B1195 + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Daisy5:: @ 81B119E + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Brock0:: @ 81B11AE + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Brock1:: @ 81B11B3 + .string "BROCK$" + +gFameCheckerFlavorTextOriginObjectName_Brock2:: @ 81B11B9 + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Brock3:: @ 81B11C3 + .string "BOY$" + +gFameCheckerFlavorTextOriginObjectName_Brock4:: @ 81B11C7 + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Brock5:: @ 81B11CB + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Misty0:: @ 81B11DB + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Misty1:: @ 81B11E0 + .string "MISTY$" + +gFameCheckerFlavorTextOriginObjectName_Misty2:: @ 81B11E6 + .string "LUIS$" + +gFameCheckerFlavorTextOriginObjectName_Misty3:: @ 81B11EB + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Misty4:: @ 81B11F5 + .string "DAME$" + +gFameCheckerFlavorTextOriginObjectName_Misty5:: @ 81B11FA + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge0:: @ 81B120A + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge1:: @ 81B120F + .string "LT. SURGE$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge2:: @ 81B1219 + .string "TUCKER$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge3:: @ 81B1220 + .string "TUCKER$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge4:: @ 81B1227 + .string "DWAYNE$" + +gFameCheckerFlavorTextOriginObjectName_LtSurge5:: @ 81B122E + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Erika0:: @ 81B123E + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Erika1:: @ 81B1243 + .string "ERIKA$" + +gFameCheckerFlavorTextOriginObjectName_Erika2:: @ 81B1249 + .string "LOLA$" + +gFameCheckerFlavorTextOriginObjectName_Erika3:: @ 81B124E + .string "TAMIA$" + +gFameCheckerFlavorTextOriginObjectName_Erika4:: @ 81B1254 + .string "ERIKA$" + +gFameCheckerFlavorTextOriginObjectName_Erika5:: @ 81B125A + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Koga0:: @ 81B126A + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Koga1:: @ 81B126F + .string "KOGA$" + +gFameCheckerFlavorTextOriginObjectName_Koga2:: @ 81B1274 + .string "KIRK$" + +gFameCheckerFlavorTextOriginObjectName_Koga3:: @ 81B1279 + .string "CHARINE$" + +gFameCheckerFlavorTextOriginObjectName_Koga4:: @ 81B1281 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Koga5:: @ 81B1291 + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina0:: @ 81B1295 + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina1:: @ 81B129A + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina2:: @ 81B12A4 + .string "SABRINA$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina3:: @ 81B12AC + .string "SABRINA$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina4:: @ 81B12B4 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Sabrina5:: @ 81B12C4 + .string "TYRON$" + +gFameCheckerFlavorTextOriginObjectName_Blaine0:: @ 81B12CA + .string "SIGN$" + +gFameCheckerFlavorTextOriginObjectName_Blaine1:: @ 81B12CF + .string "BLAINE$" + +gFameCheckerFlavorTextOriginObjectName_Blaine2:: @ 81B12D6 + .string "DEREK$" + +gFameCheckerFlavorTextOriginObjectName_Blaine3:: @ 81B12DC + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Blaine4:: @ 81B12E2 + .string "PHOTO$" + +gFameCheckerFlavorTextOriginObjectName_Blaine5:: @ 81B12E8 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei0:: @ 81B12F8 + .string "LORELEI$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei1:: @ 81B1300 + .string "LORELEI$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei2:: @ 81B1308 + .string "OLD MAN$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei3:: @ 81B1310 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei4:: @ 81B1320 + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_Lorelei5:: @ 81B132C + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Bruno0:: @ 81B1335 + .string "BRUNO$" + +gFameCheckerFlavorTextOriginObjectName_Bruno1:: @ 81B133B + .string "BRUNO$" + +gFameCheckerFlavorTextOriginObjectName_Bruno2:: @ 81B1341 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Bruno3:: @ 81B1351 + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Bruno4:: @ 81B1359 + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Bruno5:: @ 81B135F + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha0:: @ 81B1367 + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_Agatha1:: @ 81B136E + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha2:: @ 81B1376 + .string "CRUSHER$" + +gFameCheckerFlavorTextOriginObjectName_Agatha3:: @ 81B137E + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Agatha4:: @ 81B138E + .string "AGATHA$" + +gFameCheckerFlavorTextOriginObjectName_Agatha5:: @ 81B1395 + .string "OLD LADY$" + +gFameCheckerFlavorTextOriginObjectName_Lance0:: @ 81B139E + .string "LANCE$" + +gFameCheckerFlavorTextOriginObjectName_Lance1:: @ 81B13A4 + .string "LANCE$" + +gFameCheckerFlavorTextOriginObjectName_Lance2:: @ 81B13AA + .string "WOMAN$" + +gFameCheckerFlavorTextOriginObjectName_Lance3:: @ 81B13B0 + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_Lance4:: @ 81B13BC + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Lance5:: @ 81B13CC + .string "YOUNG MAN$" + +gFameCheckerFlavorTextOriginObjectName_Bill0:: @ 81B13D6 + .string "{RIVAL}$" + +gFameCheckerFlavorTextOriginObjectName_Bill1:: @ 81B13D9 + .string "LITTLE BOY$" + +gFameCheckerFlavorTextOriginObjectName_Bill2:: @ 81B13E4 + .string "OLD MAN$" + +gFameCheckerFlavorTextOriginObjectName_Bill3:: @ 81B13EC + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_Bill4:: @ 81B13F2 + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_Bill5:: @ 81B13F8 + .string "CELIO$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji0:: @ 81B13FE + .string "LITTLE GIRL$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji1:: @ 81B140A + .string "TEAM ROCKET$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji2:: @ 81B1416 + .string "MAGAZINE$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji3:: @ 81B141F + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji4:: @ 81B1423 + .string "PHOTO$" + +gFameCheckerFlavorTextOriginObjectName_MrFuji5:: @ 81B1429 + .string "POKéMON JOURNAL$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni0:: @ 81B1439 + .string "GIOVANNI$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni1:: @ 81B1442 + .string "SCIENTIST$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni2:: @ 81B144C + .string "SCIENTIST$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni3:: @ 81B1456 + .string "GIOVANNI$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni4:: @ 81B145F + .string "MAN$" + +gFameCheckerFlavorTextOriginObjectName_Giovanni5:: @ 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/graphics_file_rules.mk b/graphics_file_rules.mk index 493077558..c34f43baa 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -3,7 +3,9 @@ MONBACKGFXDIR := graphics/pokemon/back_pics MONFRONTGFXDIR := graphics/pokemon/anim_front_pics MONPALDIR := graphics/pokemon/palettes TILESETGFXDIR := data/tilesets -FONTGFXDIR := data/graphics/fonts +GLOBALGFXDIR := data/graphics +FONTGFXDIR := $(GLOBALGFXDIR)/fonts +FAMECHECKERGFXDIR := data/fame_checker INTERFACEGFXDIR := graphics/interface BTLANMSPRGFXDIR := graphics/battle_anims/sprites UNUSEDGFXDIR := graphics/unused @@ -651,3 +653,9 @@ $(INTERFACEGFXDIR)/region_map_affine.8bpp: %.8bpp: %.png $(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp @cat $^ >$@ + +$(FAMECHECKERGFXDIR)/img_845cf00.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 15 + +$(GLOBALGFXDIR)/fame_checker_bg.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 165 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/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/include/event_scripts.h b/include/event_scripts.h index ebfdb4fe3..b909566d0 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -381,4 +381,328 @@ 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 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 new file mode 100644 index 000000000..257431d8b --- /dev/null +++ b/include/fame_checker.h @@ -0,0 +1,48 @@ +#ifndef GUARD_FAME_CHECKER_H +#define GUARD_FAME_CHECKER_H + +#include "main.h" + +enum { + FAMECHECKER_OAK, + FAMECHECKER_DAISY, + FAMECHECKER_BROCK, + FAMECHECKER_MISTY, + FAMECHECKER_LTSURGE, + FAMECHECKER_ERIKA, + FAMECHECKER_KOGA, + FAMECHECKER_SABRINA, + FAMECHECKER_BLAINE, + FAMECHECKER_LORELEI, + FAMECHECKER_BRUNO, + FAMECHECKER_AGATHA, + FAMECHECKER_LANCE, + FAMECHECKER_BILL, + FAMECHECKER_MRFUJI, + FAMECHECKER_GIOVANNI, + NUM_FAMECHECKER_PERSONS +}; + +enum { + FCPICKSTATE_NO_DRAW, + FCPICKSTATE_SILHOUETTE, + FCPICKSTATE_COLORED +}; + +enum { + FCWINDOWID_LIST, + FCWINDOWID_UIHELP, + FCWINDOWID_MSGBOX, + FCWINDOWID_ICONDESC +}; + +extern struct ListMenuTemplate gFameChecker_ListMenuTemplate; +extern u8 gIconDescriptionBoxIsOpen; + +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/field_map_obj.h b/include/field_map_obj.h index ded970a83..d2ec58979 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -86,6 +86,8 @@ 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); +void npc_paltag_set_load(u8 mode); // Exported data declarations 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/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 050e200f9..d5bfc5241 100644 --- a/include/global.h +++ b/include/global.h @@ -62,6 +62,15 @@ #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 TEST_BUTTON(field, button) ({(field) & (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[]; extern u8 gStringVar3[]; @@ -88,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 @@ -479,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 @@ -563,12 +573,24 @@ struct QuestLog /*0x0668*/ u16 end[0]; }; +#include "fame_checker.h" + +struct FameCheckerSaveData +{ + /*3a54*/ u16 pickState:2; + u16 flavorTextFlags:12; + u16 unk_0_E:2; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 288 // 300 #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; @@ -587,36 +609,33 @@ 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]; /*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]; - /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; - /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; + /*0x063A*/ u8 ALIGNED(2) trainerRematches[100]; + /*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]; + /*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 { - /*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]; @@ -627,7 +646,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[NUM_FAMECHECKER_PERSONS]; + /*0x3A94*/ u8 filler3A94[0x2A4]; u32 unkArray[4][3]; }; diff --git a/include/graphics.h b/include/graphics.h index 9888d2f7c..d249ece10 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 gFameCheckerBgPals[0x30]; +extern const u16 gFameCheckerBgTiles[0xa50]; +extern const u16 gFameCheckerBg3Tilemap[0x400]; +extern const u16 gFameCheckerBg2Tilemap[0x400]; + #endif //GUARD_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h index 731c7cf2b..2482aa51f 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 UseFameCheckerFromMenu(void); #endif //GUARD_ITEM_MENU_H diff --git a/include/list_menu.h b/include/list_menu.h index f547801bd..8834e5215 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 { @@ -54,5 +55,7 @@ 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); +u16 ListMenuGetYCoordForPrintingArrowCursor(u8); #endif //GUARD_LIST_MENU_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h index 2350e2502..f195ceb6d 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -7,8 +7,25 @@ // Exported RAM declarations +struct ScrollIndicatorArrowPairTemplate +{ + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u16 unk_06; + u16 unk_08; + u16 unk_0a; + u16 unk_0c; + u16 unk_0e_0:4; + u16 unk_0e_4:12; +}; + // 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/include/new_menu_helpers.h b/include/new_menu_helpers.h index 639395941..2a68a35e6 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -16,5 +16,8 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_80F6F54(u8, u8); +u8 sub_80F78A8(void); +void sub_80F6E9C(void); +void sub_80F6EE4(u8 windowId, bool8 transfer); #endif // GUARD_NEW_MENU_HELPERS_H 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/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/ld_script.txt b/ld_script.txt index 67f21c48f..2a42825c9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -226,7 +226,7 @@ SECTIONS { asm/union_room_chat.o(.text); asm/help_system_812B1E0.o(.text); src/quest_log_battle.o(.text); - asm/fame_checker.o(.text); + src/fame_checker.o(.text); asm/menu2.o(.text); asm/oak_speech.o(.text); asm/tm_case.o(.text); @@ -376,6 +376,8 @@ SECTIONS { data/data_83FECCC.o(.rodata.8453F6C); src/quest_log.o(.rodata); data/data_83FECCC.o(.rodata.8456C74); + src/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); @@ -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 new file mode 100644 index 000000000..ed38406cb --- /dev/null +++ b/src/fame_checker.c @@ -0,0 +1,1553 @@ +#include "global.h" +#include "constants/songs.h" +#include "sprite.h" +#include "bg.h" +#include "event_data.h" +#include "event_scripts.h" +#include "graphics.h" +#include "battle.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" +#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 "string_util.h" +#include "field_map_obj.h" +#include "menu_indicators.h" +#include "text_window.h" +#include "fame_checker.h" + +#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 +{ + MainCallback savedCallback; + u16 listMenuTopIdx; + u8 scrollIndicatorPairTaskId; + u8 personHasUnlockedPanels:1; + u8 inPickMode:1; + u8 numUnlockedPersons:6; + u8 listMenuTaskId; + u8 listMenuCurIdx; + u8 listMenuTopIdx2; + u8 listMenuDrawnSelIdx; + u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; + u8 spriteIds[6]; + u8 viewingFlavorText:1; + u8 unk_23_1:1; // unused + u8 pickModeOverCancel:1; +}; + +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 gFameChecker_ListMenuTemplate; +u8 gIconDescriptionBoxIsOpen; + +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 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 where); +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite); +static void FreeQuestionMarkSpriteResources(void); +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 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 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); +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId); +static void FC_CreateScrollIndicatorArrowPair(void); +static void FreeListMenuSelectorArrowPairResources(void); +static u16 FameCheckerGetCursorY(void); +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[]; +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 {KEYGFX_B_BUTTON}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"); +static const u8 sSpinningPokeballSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); +static const u16 sSpinningPokeballSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); +static const u8 sSelectorCursorSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); +static const u16 sSelectorCursorSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); +static const u8 sFujiSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); +static const u16 sFujiSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +static const u8 sBillSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); +static const u16 sBillSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +static const u8 sDaisySpriteGfx[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); +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"); // unused? +static const u16 sSilhouettePalette[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); + +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 + 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 sNonTrainerNamePointers[] = { + gFameCheckerOakName, + gFameCheckerDaisyName, + gFameCheckerBillName, + gFameCheckerMrFujiName +}; + +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 // these values are unused +}; + +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 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[] = { + 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 +}; + +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 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 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 sUISpritePalettes[] = { + {sSelectorCursorSpritePalette, SPRITETAG_SELECTOR_CURSOR}, + {sSpinningPokeballSpritePalette, SPRITETAG_SPINNING_POKEBALL}, + {} +}; + +static const struct BgTemplate sUIBgTemplates[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}, +}; + +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 sSelectorCursorAnim0[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_FRAME(16, 15), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSelectorCursorAnims[] = { + sSelectorCursorAnim0 +}; + +static const struct OamData sSelectorCursorOamData = { + .size = 2, + .priority = 2 +}; + +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 struct OamData sQuestionMarkTileOamData = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2, + .priority = 2 +}; + +static const union AnimCmd sQuestionMarkTileAnim0[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +static const union AnimCmd *const sQuestionMarkTileAnims[] = { + sQuestionMarkTileAnim0 +}; + +static const struct SpriteTemplate sQuestionMarkTileSpriteTemplate = { + SPRITETAG_QUESTION_MARK, 0xffff, &sQuestionMarkTileOamData, sQuestionMarkTileAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +static const union AnimCmd sSpinningPokeballAnim0[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpinningPokeballAnims[] = { + sSpinningPokeballAnim0 +}; + +static const struct OamData sSpinningPokeballOamData = { + .affineMode = ST_OAM_AFFINE_NORMAL, + .size = 2 +}; + +static const union AffineAnimCmd sSpinningPokeballAffineAnim0[] = { + AFFINEANIMCMD_FRAME(0, 0, 4, 20), + AFFINEANIMCMD_JUMP(0) +}; + +static const union AffineAnimCmd *const sSpinningPokeballAffineAnims[] = { + sSpinningPokeballAffineAnim0 +}; + +static const struct SpriteTemplate sSpinningPokeballSpriteTemplate = { + SPRITETAG_SPINNING_POKEBALL, SPRITETAG_SPINNING_POKEBALL, &sSpinningPokeballOamData, sSpinningPokeballAnims, NULL, sSpinningPokeballAffineAnims, SpriteCB_FCSpinningPokeball +}; + +static const union AnimCmd sDaisyFujiOakBillAnim0[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_END +}; + +static const union AnimCmd *const sDaisyFujiOakBillAnims[] = { + sDaisyFujiOakBillAnim0 +}; + +static const struct OamData sDaisyFujiOakBillOamData = { + .size = 3 +}; + +static const struct SpriteTemplate sDaisySpriteTemplate = { + SPRITETAG_DAISY, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +static const struct SpriteTemplate sFujiSpriteTemplate = { + SPRITETAG_FUJI, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +static const struct SpriteTemplate sOakSpriteTemplate = { + SPRITETAG_OAK, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +static const struct SpriteTemplate sBillSpriteTemplate = { + SPRITETAG_BILL, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +static void FC_VBlankCallback(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void MainCB2_FameCheckerMain(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void UseFameChecker(MainCallback savedCallback) +{ + SetVBlankCallback(NULL); + sFameCheckerData = AllocZeroed(sizeof(struct FameCheckerData)); + sFameCheckerData->savedCallback = savedCallback; + sFameCheckerData->listMenuCurIdx = 0; + sFameCheckerData->listMenuTopIdx2 = 0; + sFameCheckerData->listMenuDrawnSelIdx = 0; + sFameCheckerData->viewingFlavorText = FALSE; + PlaySE(SE_W202); + SetMainCallback2(MainCB2_LoadFameChecker); +} + +static void MainCB2_LoadFameChecker(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + FCSetup_ClearVideoRegisters(); + gMain.state++; + break; + case 1: + FCSetup_ResetTasksAndSpriteResources(); + gMain.state++; + break; + case 2: + sBg3TilemapBuffer = AllocZeroed(0x800); + sBg1TilemapBuffer = AllocZeroed(0x1000); + sBg2TilemapBuffer = AllocZeroed(0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sUIBgTemplates, ARRAY_COUNT(sUIBgTemplates)); + SetBgTilemapBuffer(3, sBg3TilemapBuffer); + SetBgTilemapBuffer(2, sBg2TilemapBuffer); + SetBgTilemapBuffer(1, sBg1TilemapBuffer); + FCSetup_ResetBGCoords(); + gMain.state++; + break; + case 3: + 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++; + 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(sUIWindowTemplates); + DeactivateAllTextPrinters(); + Setup_DrawMsgAndListBoxes(); + sListMenuItems = AllocZeroed(17 * sizeof(struct ListMenuItem)); + FC_CreateListMenu(); + gMain.state++; + break; + case 6: + LoadUISpriteSheetsAndPalettes(); + CreateAllFlavorTextIcons(FAMECHECKER_OAK); + WipeMsgBoxAndTransfer(); + BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); + gMain.state++; + break; + case 7: + 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(FC_VBlankCallback); + sFameCheckerData->listMenuTopIdx = 0; + FC_CreateScrollIndicatorArrowPair(); + UpdateInfoBoxTilemap(1, 4); + CreateTask(Task_WaitFadeOnInit, 0x08); + SetMainCallback2(MainCB2_FameCheckerMain); + gMain.state = 0; + break; + } +} + +static void LoadUISpriteSheetsAndPalettes(void) +{ + LoadSpriteSheets(sUISpriteSheets); + LoadSpritePalettes(sUISpritePalettes); +} + +static void Task_WaitFadeOnInit(u8 taskId) +{ + if (!gPaletteFade.active) + gTasks[taskId].func = Task_TopMenuHandleInput; +} + +static void Task_TopMenuHandleInput(u8 taskId) +{ + u16 cursorPos; + u8 i; + struct Task *task = &gTasks[taskId]; + s16 * data = gTasks[taskId].data; + if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF) + { + RunTextPrinters(); + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) + task->func = Task_StartToCloseFameChecker; + else if (JOY_NEW(START_BUTTON)) + { + cursorPos = FameCheckerGetCursorY(); + if (TryExitPickMode(taskId) == TRUE) + { + PlaySE(SE_W100); + } + else if (cursorPos != sFameCheckerData->numUnlockedPersons - 1) // anything but CANCEL + { + PlaySE(SE_W100); + FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); + UpdateInfoBoxTilemap(2, 4); + UpdateInfoBoxTilemap(1, 5); + 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] = CreateSpinningPokeballSprite(); + gSprites[task->data[3]].pos2.x = 0xF0; + gSprites[task->data[3]].data[0] = 1; + task->func = Task_EnterPickMode; + } + } + else if (JOY_NEW(A_BUTTON)) + { + cursorPos = ListMenuHandleInput(0); + if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL + task->func = Task_StartToCloseFameChecker; + else if (sFameCheckerData->inPickMode) + { + if (!IsTextPrinterActive(2) && HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + GetPickModeText(); + } + else if (sFameCheckerData->personHasUnlockedPanels) + { + PlaySE(SE_SELECT); + task->data[0] = CreateFlavorTextIconSelectorCursorSprite(task->data[1]); + for (i = 0; i < 6; i++) + { + if (i != task->data[1]) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); + } + gIconDescriptionBoxIsOpen = 0xFF; + PlaceListMenuCursor(FALSE); + PrintUIHelp(2); + if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) // not a ? tile + { + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); + } + FreeListMenuSelectorArrowPairResources(); + task->func = Task_FlavorTextDisplayHandleInput; + } + } + else if (JOY_NEW(B_BUTTON)) + { + if (TryExitPickMode(taskId) != TRUE) + task->func = Task_StartToCloseFameChecker; + } + else + ListMenuHandleInput(0); + } +} + +static bool8 TryExitPickMode(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (sFameCheckerData->inPickMode) + { + 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; + WipeMsgBoxAndTransfer(); + task->func = Task_ExitPickMode; + MessageBoxPrintEmptyText(); + sFameCheckerData->pickModeOverCancel = FALSE; + return TRUE; + } + return FALSE; +} + +static void MessageBoxPrintEmptyText(void) +{ + AddTextPrinterParametrized(2, 2, gFameCheckerText_ClearTextbox, 0, NULL, 2, 1, 3); +} + +static void Task_EnterPickMode(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (gSprites[task->data[2]].data[0] == 0) + { + GetPickModeText(); + sFameCheckerData->inPickMode = TRUE; + task->func = Task_TopMenuHandleInput; + } + else + ChangeBgX(1, 0xA00, 1); +} + +static void Task_ExitPickMode(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 (sFameCheckerData->personHasUnlockedPanels) + PrintUIHelp(0); + UpdateInfoBoxTilemap(1, 4); + UpdateInfoBoxTilemap(2, 2); + sFameCheckerData->inPickMode = FALSE; + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); + task->func = Task_TopMenuHandleInput; + gSprites[task->data[3]].callback = SpriteCB_DestroySpinningPokeball; + } +} + +static void Task_FlavorTextDisplayHandleInput(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *data = gTasks[taskId].data; + + RunTextPrinters(); + if (JOY_NEW(A_BUTTON) && !IsTextPrinterActive(2)) + { + u8 spriteId = sFameCheckerData->spriteIds[data[1]]; + if (gSprites[spriteId].data[1] != 0xFF) + PrintSelectedNameInBrightGreen(taskId); + } + if (JOY_NEW(B_BUTTON)) + { + u8 i; + PlaySE(SE_SELECT); + for (i = 0; i < 6; i++) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_NORMAL); + WipeMsgBoxAndTransfer(); + gSprites[task->data[0]].callback = SpriteCB_DestroyFlavorTextIconSelectorCursor; + if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); + 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; + FC_MoveSelectorCursor(taskId, 0, -0x1b); + } + else + { + task->data[1] += 3; + FC_MoveSelectorCursor(taskId, 0, +0x1b); + } + } + else if (JOY_NEW(DPAD_LEFT)) + { + if (task->data[1] == 0 || task->data[1] % 3 == 0) + { + task->data[1] += 2; + FC_MoveSelectorCursor(taskId, +0x5e, 0); + } + else + { + task->data[1]--; + FC_MoveSelectorCursor(taskId, -0x2f, 0); + } + } + else if (JOY_NEW(DPAD_RIGHT)) + { + if ((task->data[1] + 1) % 3 == 0) + { + task->data[1] -= 2; + FC_MoveSelectorCursor(taskId, -0x5e, 0); + } + else + { + task->data[1]++; + FC_MoveSelectorCursor(taskId, +0x2f, 0); + } + } +} + +static void FC_MoveSelectorCursor(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++) + 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) + { + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); + } + else if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); +} + +static void GetPickModeText(void) +{ + u8 offset = 0; + u16 who = FameCheckerGetCursorY(); + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].pickState != FCPICKSTATE_COLORED) + { + WipeMsgBoxAndTransfer(); + MessageBoxPrintEmptyText(); + } + else + { + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + 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); + } +} + +static void PrintSelectedNameInBrightGreen(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + 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 WipeMsgBoxAndTransfer(void) +{ + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); +} + +static void Setup_DrawMsgAndListBoxes(void) +{ + sub_80F6E9C(); + sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST); +} + +static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode) +{ + if (gSprites[spriteId].data[1] != 0xFF) + { + gSprites[spriteId].oam.objMode = objMode; + return TRUE; + } + return FALSE; +} + +static void Task_StartToCloseFameChecker(u8 taskId) +{ + PlaySE(SE_W202); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker; +} + +static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) +{ + u8 i; + + if (!gPaletteFade.active) + { + if (sFameCheckerData->inPickMode) + { + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); + DestroySprite(&gSprites[gTasks[taskId].data[3]]); + } + for (i = 0; i < 6; i++) + { + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); + } + FreeNonTrainerPicTiles(); + FreeSpinningPokeballSpriteResources(); + FreeSelectionCursorSpriteResources(); + FreeQuestionMarkSpriteResources(); + FreeListMenuSelectorArrowPairResources(); + SetMainCallback2(sFameCheckerData->savedCallback); + sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0); + Free(sBg3TilemapBuffer); + Free(sBg1TilemapBuffer); + Free(sBg2TilemapBuffer); + Free(sFameCheckerData); + Free(sListMenuItems); + FC_DestroyWindow(0); + FC_DestroyWindow(1); + FC_DestroyWindow(2); + FC_DestroyWindow(3); + FreeAllWindowBuffers(); + DestroyTask(taskId); + } +} + +static void FC_DestroyWindow(u8 windowId) +{ + FillWindowPixelBuffer(windowId, 0); + ClearWindowTilemap(windowId); + CopyWindowToVram(windowId, 2); + RemoveWindow(windowId); +} + +static u8 AdjustGiovanniIndexIfBeatenInGym(u8 a0) +{ + if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) + { + if (a0 == 9) + return FAMECHECKER_GIOVANNI; + if (a0 > 9) + return a0 - 1; + } + return a0; +} + +static void PrintUIHelp(u8 state) +{ + s32 width; + const u8 * src = gFameCheckerText_MainScreenUI; + if (state != 0) + { + src = gFameCheckerText_FlavorTextUI; + if (state == 1) + src = gFameCheckerText_PickScreenUI; + } + width = GetStringWidth(0, src, 0); + FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); + AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &sTextColor_White, -1, src); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); +} + +static void DestroyAllFlavorTextIcons(void) +{ + u8 i; + for (i = 0; i < 6; i++) + { + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); + } +} + +static bool8 CreateAllFlavorTextIcons(u8 who) +{ + bool8 result = FALSE; + u8 i; + for (i = 0; i < 6; i++) + { + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) + { + sFameCheckerData->spriteIds[i] = sub_805EB44( + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[who] * 6 + i], + i, + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x2F + ); + result = TRUE; + } + else + { + sFameCheckerData->spriteIds[i] = PlaceQuestionMarkTile( + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x1F + ); + gSprites[sFameCheckerData->spriteIds[i]].data[1] = 0xFF; + } + } + if (result == TRUE) + { + sFameCheckerData->personHasUnlockedPanels = TRUE; + if (sFameCheckerData->inPickMode) + PrintUIHelp(1); + else + PrintUIHelp(0); + } + else + { + sFameCheckerData->personHasUnlockedPanels = FALSE; + PrintUIHelp(1); + } + return result; +} + +void ResetFameChecker(void) +{ + u8 i; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) + { + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_NO_DRAW; + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags = 0; + gSaveBlock1Ptr->fameChecker[i].unk_0_E = 0; + } + gSaveBlock1Ptr->fameChecker[FAMECHECKER_OAK].pickState = FCPICKSTATE_COLORED; +} + +void FullyUnlockFameChecker(void) +{ + u8 i, j; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) + { + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_COLORED; + for (j = 0; j < 6; j++) + { + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags |= (1 << j); + } + } +} + +static void FCSetup_ClearVideoRegisters(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); +} + +static void FCSetup_ResetTasksAndSpriteResources(void) +{ + remove_some_task(); + ResetTasks(); + ResetSpriteData(); + dp13_810BB8C(); + ResetPaletteFade(); + npc_paltag_set_load(0); + gReservedSpritePaletteCount = 7; + +} + +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 FCSetup_ResetBGCoords(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 SetFlavorTextFlagFromSpecialVars(void) +{ + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 6) + { + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].flavorTextFlags |= (1 << gSpecialVar_0x8005); + gSpecialVar_0x8005 = FCPICKSTATE_SILHOUETTE; + UpdatePickStateFromSpecialVar8005(); + } +} + +void UpdatePickStateFromSpecialVar8005(void) +{ + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 3) + { + if (gSpecialVar_0x8005 == FCPICKSTATE_NO_DRAW) + return; + if ( gSpecialVar_0x8005 == FCPICKSTATE_SILHOUETTE + && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED + ) + return; + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState = gSpecialVar_0x8005; + } +} + +static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void) +{ + u8 i; + u8 who = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; + for (i = 0; i < 6; i++) + { + if (!((gSaveBlock1Ptr->fameChecker[who].flavorTextFlags >> i) & 1)) + return FALSE; + } + return TRUE; +} + +static void FreeSelectionCursorSpriteResources(void) +{ + FreeSpriteTilesByTag(SPRITETAG_SELECTOR_CURSOR); + FreeSpritePaletteByTag(SPRITETAG_SELECTOR_CURSOR); +} + +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where) +{ + s16 y = 34 + 27 * (where >= 3); + s16 x = 114 + 47 * (where % 3); + return CreateSprite(&sSpriteTemplate_SelectorCursor, x, y, 0); +} + +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite * sprite) +{ + DestroySprite(sprite); +} + +static void FreeQuestionMarkSpriteResources(void) +{ + FreeSpriteTilesByTag(SPRITETAG_QUESTION_MARK); +} + +static u8 PlaceQuestionMarkTile(u8 x, u8 y) +{ + u8 spriteId = CreateSprite(&sQuestionMarkTileSpriteTemplate, x, y, 8); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].oam.paletteNum = 2; + return spriteId; +} + +static void FreeSpinningPokeballSpriteResources(void) +{ + FreeSpriteTilesByTag(SPRITETAG_SPINNING_POKEBALL); + FreeSpritePaletteByTag(SPRITETAG_SPINNING_POKEBALL); +} + +static u8 CreateSpinningPokeballSprite(void) +{ + return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0); +} + +static void SpriteCB_DestroySpinningPokeball(struct Sprite * sprite) +{ + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); +} + +static void FreeNonTrainerPicTiles(void) +{ + FreeSpriteTilesByTag(SPRITETAG_DAISY); + FreeSpriteTilesByTag(SPRITETAG_FUJI); + FreeSpriteTilesByTag(SPRITETAG_OAK); + FreeSpriteTilesByTag(SPRITETAG_BILL); +} + +static void SpriteCB_FCSpinningPokeball(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; + } +} + +static u8 CreatePersonPicSprite(u8 fcPersonIdx) +{ + u8 spriteId; + if (fcPersonIdx == FAMECHECKER_DAISY) + { + spriteId = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sDaisySpritePalette, 0x160, 0x20); + gSprites[spriteId].oam.paletteNum = 6; + } + else if (fcPersonIdx == FAMECHECKER_MRFUJI) + { + spriteId = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sFujiSpritePalette, 0x160, 0x20); + gSprites[spriteId].oam.paletteNum = 6; + } + else if (fcPersonIdx == FAMECHECKER_OAK) + { + spriteId = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sOakSpritePalette, 0x160, 0x20); + gSprites[spriteId].oam.paletteNum = 6; + } + else if (fcPersonIdx == FAMECHECKER_BILL) + { + spriteId = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sBillSpritePalette, 0x160, 0x20); + gSprites[spriteId].oam.paletteNum = 6; + } + else + { + spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); + } + gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball; + if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE) + LoadPalette(sSilhouettePalette, 0x160, 0x20); + return spriteId; +} + +static void DestroyPersonPicSprite(u8 taskId, u16 who) +{ + s16 * data = gTasks[taskId].data; + 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 UpdateIconDescriptionBox(u8 whichText) +{ + s32 width; + 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, &sTextColor_DkGrey, -1, sFlavorTextOriginLocationTexts[idx]); + StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); + width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &sTextColor_DkGrey, -1, gStringVar1); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); +} + +static void UpdateIconDescriptionBoxOff(void) +{ + HandleFlavorTextModeSwitch(FALSE); + gIconDescriptionBoxIsOpen = 0xFF; +} + +static void FC_CreateListMenu(void) +{ + InitListMenuTemplate(); + sFameCheckerData->numUnlockedPersons = FC_PopulateListMenu(); + sFameCheckerData->listMenuTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); + FC_PutWindowTilemapAndCopyWindowToVramMode3_2(FCWINDOWID_LIST); +} + +static void InitListMenuTemplate(void) +{ + gFameChecker_ListMenuTemplate.items = sListMenuItems; + gFameChecker_ListMenuTemplate.moveCursorFunc = FC_MoveCursorFunc; + 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 FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u16 listMenuTopIdx; + u8 taskId; + u16 personIdx; + sLastMenuIdx = 0; + personIdx = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; + 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->listMenuTaskId, &listMenuTopIdx, NULL); + sFameCheckerData->listMenuTopIdx = listMenuTopIdx; + if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) + { + DestroyAllFlavorTextIcons(); + CreateAllFlavorTextIcons(itemIndex); + if (sFameCheckerData->inPickMode) + { + if (!sFameCheckerData->pickModeOverCancel) + { + DestroyPersonPicSprite(taskId, personIdx); + sLastMenuIdx = itemIndex; + task->func = Task_SwitchToPickMode; + } + else + { + gSprites[task->data[2]].invisible = FALSE; + sFameCheckerData->pickModeOverCancel = FALSE; + gSprites[task->data[2]].data[0] = 0; + GetPickModeText(); + } + } + else + { + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); + } + } + else + { + PrintCancelDescription(); + if (sFameCheckerData->inPickMode) + { + gSprites[task->data[2]].invisible = TRUE; + sFameCheckerData->pickModeOverCancel = TRUE; + } + else + { + u8 i; + for (i = 0; i < 6; i++) + { + gSprites[sFameCheckerData->spriteIds[i]].invisible = TRUE; + } + } + } + } +} + +static void Task_SwitchToPickMode(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[sLastMenuIdx]); + gSprites[task->data[2]].data[0] = 0; + GetPickModeText(); + task->func = Task_TopMenuHandleInput; +} + +static void PrintCancelDescription(void) +{ + 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 FC_DoMoveCursor(s32 itemIndex, bool8 onInit) +{ + u16 listY; + u16 cursorY; + u16 who; + 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 (listY < sFameCheckerData->listMenuTopIdx2) + sFameCheckerData->listMenuDrawnSelIdx++; + 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 = cursorY; + sFameCheckerData->listMenuTopIdx2 = listY; +} + +static u8 FC_PopulateListMenu(void) +{ + u8 nitems = 0; + u8 i; + + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) + { + u8 fameCheckerIdx = AdjustGiovanniIndexIfBeatenInGym(i); + if (gSaveBlock1Ptr->fameChecker[fameCheckerIdx].pickState != FCPICKSTATE_NO_DRAW) + { + if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START) + { + sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; + sListMenuItems[nitems].unk_04 = nitems; + } + else + { + sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; + sListMenuItems[nitems].unk_04 = nitems; + } + sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx; + nitems++; + } + } + 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 nitems; +} + +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +static void FC_CreateScrollIndicatorArrowPair(void) +{ + struct ScrollIndicatorArrowPairTemplate template = { + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + SPRITETAG_SCROLL_INDICATORS, + 0xFFFF, + 1, + 0 + }; + + if (sFameCheckerData->numUnlockedPersons > 5) + { + template.unk_06 = 0; + template.unk_08 = sFameCheckerData->numUnlockedPersons - 5; + sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&template, &sFameCheckerData->listMenuTopIdx); + } +} + +static void FreeListMenuSelectorArrowPairResources(void) +{ + if (sFameCheckerData->numUnlockedPersons > 5) + RemoveScrollIndicatorArrowPair(sFameCheckerData->scrollIndicatorPairTaskId); +} + +static u16 FameCheckerGetCursorY(void) +{ + u16 listY, cursorY; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + return listY + cursorY; +} + +static void HandleFlavorTextModeSwitch(bool8 state) +{ + if (sFameCheckerData->viewingFlavorText != state) + { + u8 taskId = FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox); + if (taskId == 0xFF) + taskId = CreateTask(Task_FCOpenOrCloseInfoBox, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 4; + if (state == TRUE) + { + gTasks[taskId].data[2] = 1; + sFameCheckerData->viewingFlavorText = TRUE; + } + else + { + gTasks[taskId].data[2] = 4; + sFameCheckerData->viewingFlavorText = FALSE; + } + } +} + +static void Task_FCOpenOrCloseInfoBox(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + if (--task->data[1] == 0) + { + UpdateInfoBoxTilemap(1, 0); + task->data[1] = 4; + task->data[0]++; + } + break; + case 1: + if (--task->data[1] == 0) + { + UpdateInfoBoxTilemap(1, task->data[2]); + DestroyTask(taskId); + } + break; + } +} + +static void UpdateInfoBoxTilemap(u8 bg, s16 state) +{ + if (state == 0 || state == 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 (state == 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 (state == 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 (state == 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 (state == 5) + { + FillBgTilemapBufferRect(bg, 0x00, 14, 10, 13, 3, 1); + } + CopyBgTilemapBufferToVram(bg); +} + +static void PlaceListMenuCursor(bool8 isActive) +{ + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); + if (isActive == TRUE) + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_DkGrey, 0, gFameCheckerText_ListMenuCursor); + else + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_White, 0, gFameCheckerText_ListMenuCursor); +} 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) { 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 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 |