From 32fc754306283eb9a1933f8615d1a164049b82b4 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 2 Feb 2021 13:58:05 -0800 Subject: [PATCH 1/2] document filescreen --- Makefile | 2 +- asm/code_08016DF8.s | 4 +- asm/code_08019444.s | 4 +- asm/code_0801D79C.s | 4 +- asm/code_0804AA84.s | 2 +- asm/code_080526F8.s | 4 +- asm/code_0805436C.s | 2 +- asm/code_080A29BC.s | 4 +- asm/code_080A3480.s | 4 +- asm/code_080A3BD0.s | 8 +- asm/code_080A5574.s | 8 +- asm/code_080AD90C.s | 4 +- asm/{chooseFile.s => fileScreen.s} | 474 +--- asm/non_matching/save/sub_08050B3C.inc | 125 ++ data/data_080D5360.s | 1929 ----------------- data/data_080FC8A4.s | 1928 ++++++++++++++++ data/data_08107BC8.s | 9 - data/data_0811E454.s | 24 - include/fileScreen.h | 77 + include/functions.h | 22 +- include/main.h | 43 +- include/menu.h | 23 +- include/object.h | 2 +- include/save.h | 24 + include/structures.h | 10 +- include/textbox.h | 42 +- linker.ld | 26 +- src/chooseFile.c | 557 ----- src/code_0804AA84.c | 2 +- src/code_0808091C.c | 3 - src/fileScreen.c | 680 ++++++ src/intro.c | 54 +- src/main.c | 24 +- src/object.c | 3 +- .../{object48.c => fileScreenObjects.c} | 48 +- src/{code_0807CC3C.c => save.c} | 78 +- src/sub_080A3B84.c | 4 +- src/textbox.c | 72 +- src/tmc.code-workspace | 9 +- 39 files changed, 3159 insertions(+), 3183 deletions(-) rename asm/{chooseFile.s => fileScreen.s} (85%) create mode 100644 asm/non_matching/save/sub_08050B3C.inc create mode 100644 data/data_080FC8A4.s create mode 100644 include/fileScreen.h create mode 100644 include/save.h delete mode 100644 src/chooseFile.c create mode 100644 src/fileScreen.c rename src/object/{object48.c => fileScreenObjects.c} (91%) rename src/{code_0807CC3C.c => save.c} (53%) diff --git a/Makefile b/Makefile index 99b1d5c6..6ffb4b4a 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1 CC1 := tools/agbcc/bin/agbcc -override CFLAGS += -Wimplicit -Wparentheses -Werror -Wno-multichar -O2 +override CFLAGS += -O2 -Wimplicit -Wparentheses -Werror -Wno-multichar # -fhex-asm ifeq ($(DINFO),1) diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 1ce2fbce..49db41cf 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -128,7 +128,7 @@ _08016ED6: cmp r1, #0 beq _08016EFC ldr r2, _08016F14 @ =0x040000D4 - ldr r0, _08016F24 @ =gUnk_020344B0 + ldr r0, _08016F24 @ =gBG2Buffer str r0, [r2] ldrh r1, [r1] movs r0, #0xf8 @@ -155,7 +155,7 @@ _08016F14: .4byte 0x040000D4 _08016F18: .4byte gBG1Buffer _08016F1C: .4byte 0x84000170 _08016F20: .4byte gUnk_0200B650 -_08016F24: .4byte gUnk_020344B0 +_08016F24: .4byte gBG2Buffer thumb_func_start sub_08016F28 sub_08016F28: @ 0x08016F28 diff --git a/asm/code_08019444.s b/asm/code_08019444.s index 8636cbce..b63d2531 100644 --- a/asm/code_08019444.s +++ b/asm/code_08019444.s @@ -359,7 +359,7 @@ sub_08019698: @ 0x08019698 _08019700: movs r0, #0x11 bl LoadGfxGroup - bl sub_080AD90C + bl FlushSprites bl sub_080AD9B0 bl sub_080AD918 movs r0, #4 @@ -402,7 +402,7 @@ _08019760: .4byte gUnk_02018EB0 thumb_func_start sub_08019764 sub_08019764: @ 0x08019764 push {lr} - bl sub_080AD90C + bl FlushSprites bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 7847ec07..38bfd35d 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -378,7 +378,7 @@ sub_0801DB34: @ 0x0801DB34 str r0, [r4, #0x1c] ldr r0, _0801DB7C @ =0x00001C01 strh r0, [r4, #0x14] - ldr r0, _0801DB80 @ =gUnk_020344B0 + ldr r0, _0801DB80 @ =gBG2Buffer str r0, [r4, #0x28] ldr r0, _0801DB84 @ =0x00001D02 strh r0, [r4, #0x20] @@ -398,7 +398,7 @@ _0801DB70: .4byte gBG0Buffer _0801DB74: .4byte 0x00001F0C _0801DB78: .4byte gBG1Buffer _0801DB7C: .4byte 0x00001C01 -_0801DB80: .4byte gUnk_020344B0 +_0801DB80: .4byte gBG2Buffer _0801DB84: .4byte 0x00001D02 _0801DB88: .4byte gBG3Buffer _0801DB8C: .4byte 0x00001E03 diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index 5ea286c8..8b1015f6 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -120,7 +120,7 @@ _0804AC5E: strh r0, [r2, #0x16] ldrh r0, [r1, #0xc] strh r0, [r2, #0x18] - bl sub_080AD90C + bl FlushSprites bl sub_080AD9B0 bl sub_080AD918 ldr r0, _0804AC98 @ =gUnk_02018EB0 diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index bfb2dd80..63821ab5 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -1574,7 +1574,7 @@ sub_08053320: @ 0x08053320 ldr r0, _08053380 @ =gBG1Buffer adds r1, r4, #0 bl _DmaZero - ldr r0, _08053384 @ =gUnk_020344B0 + ldr r0, _08053384 @ =gBG2Buffer adds r1, r4, #0 bl _DmaZero ldr r0, _08053388 @ =gBG3Buffer @@ -1604,7 +1604,7 @@ _08053362: .align 2, 0 _0805337C: .4byte gBG0Buffer _08053380: .4byte gBG1Buffer -_08053384: .4byte gUnk_020344B0 +_08053384: .4byte gBG2Buffer _08053388: .4byte gBG3Buffer _0805338C: .4byte gRoomControls diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index a166b867..45ab199a 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -57,7 +57,7 @@ sub_080548E8: @ 0x080548E8 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 - bl sub_080AD90C + bl FlushSprites bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index 291dd7c3..5ab95a89 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -982,8 +982,8 @@ _080A3200: pop {r4, r5, pc} .align 2, 0 - thumb_func_start sub_080A3204 -sub_080A3204: @ 0x080A3204 + thumb_func_start InitSound +InitSound: @ 0xInitSound push {lr} bl sub_080A3210 bl m4aSoundInit diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s index 825a6551..36ba6916 100644 --- a/asm/code_080A3480.s +++ b/asm/code_080A3480.s @@ -586,7 +586,7 @@ sub_080A38D0: @ 0x080A38D0 mov r8, r0 movs r5, #1 strh r5, [r4, #0x1a] - ldr r0, _080A3928 @ =gUnk_020344B0 + ldr r0, _080A3928 @ =gBG2Buffer adds r1, r6, #0 bl _DmaZero strh r5, [r4, #0x26] @@ -608,7 +608,7 @@ _080A3914: _080A391C: .4byte gFadeControl _080A3920: .4byte gBG1Buffer _080A3924: .4byte gScreen -_080A3928: .4byte gUnk_020344B0 +_080A3928: .4byte gBG2Buffer _080A392C: .4byte gMenu thumb_func_start sub_080A3930 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 10cb10be..20d43006 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -1207,7 +1207,7 @@ _080A45A2: thumb_func_start sub_080A45A4 sub_080A45A4: @ 0x080A45A4 push {lr} - bl sub_080AD90C + bl FlushSprites ldr r0, _080A45C4 @ =gUnk_02032EC0 ldrb r0, [r0, #3] cmp r0, #0xff @@ -2249,7 +2249,7 @@ sub_080A4DB8: @ 0x080A4DB8 ldr r0, _080A4E5C @ =gBG1Buffer adds r1, r4, #0 bl _DmaZero - ldr r0, _080A4E60 @ =gUnk_020344B0 + ldr r0, _080A4E60 @ =gBG2Buffer adds r1, r4, #0 bl _DmaZero ldr r0, _080A4E64 @ =gUnk_0200AF34 @@ -2314,7 +2314,7 @@ _080A4E54: .align 2, 0 _080A4E58: .4byte gBG0Buffer _080A4E5C: .4byte gBG1Buffer -_080A4E60: .4byte gUnk_020344B0 +_080A4E60: .4byte gBG2Buffer _080A4E64: .4byte gUnk_0200AF34 _080A4E68: .4byte gMenu _080A4E6C: .4byte 0x0000FFFF @@ -2357,7 +2357,7 @@ sub_080A4EA0: @ 0x080A4EA0 .align 2, 0 _080A4EB8: .4byte gUnk_02034490 _080A4EBC: - bl sub_080AD90C + bl FlushSprites ldr r1, _080A4F18 @ =gUnk_08128B30 ldrb r0, [r4, #0x11] lsls r0, r0, #2 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index d527c237..837f9140 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -1980,7 +1980,7 @@ _080A64F8: .4byte 0x00003D3F thumb_func_start sub_080A64FC sub_080A64FC: @ 0x080A64FC push {r4, lr} - bl sub_080AD90C + bl FlushSprites ldr r1, _080A652C @ =gUnk_08128E70 ldr r4, _080A6530 @ =gMenu ldrb r0, [r4, #5] @@ -2710,7 +2710,7 @@ _080A6AB6: thumb_func_start sub_080A6AB8 sub_080A6AB8: @ 0x080A6AB8 push {r4, lr} - bl sub_080AD90C + bl FlushSprites ldr r1, _080A6AF4 @ =gUnk_08128F1C ldr r4, _080A6AF8 @ =gMenu ldrb r0, [r4, #5] @@ -2912,7 +2912,7 @@ _080A6C70: .4byte gMenu thumb_func_start sub_080A6C74 sub_080A6C74: @ 0x080A6C74 push {r4, lr} - bl sub_080AD90C + bl FlushSprites ldr r1, _080A6CA0 @ =gUnk_08128F24 ldr r4, _080A6CA4 @ =gMenu ldrb r0, [r4, #5] @@ -3955,7 +3955,7 @@ sub_080A74F4: @ 0x080A74F4 ldr r1, _080A7524 @ =gUnk_03001000 movs r0, #0 strb r0, [r1, #0xb] - bl sub_080AD90C + bl FlushSprites bl sub_0805E5C0 bl sub_0805E5F8 bl sub_0801C344 diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index 8b329187..9c9d41c4 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_080AD90C -sub_080AD90C: @ 0x080AD90C + thumb_func_start FlushSprites +FlushSprites: @ 0x080AD90C ldr r1, _080AD914 @ =gUnk_03000000 movs r0, #0 strb r0, [r1, #3] diff --git a/asm/chooseFile.s b/asm/fileScreen.s similarity index 85% rename from asm/chooseFile.s rename to asm/fileScreen.s index 0ea31128..0cf9c0a5 100755 --- a/asm/chooseFile.s +++ b/asm/fileScreen.s @@ -5,428 +5,8 @@ .text - thumb_func_start sub_08050B3C -sub_08050B3C: @ 0x08050B3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - ldr r1, _08050C18 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaa - ldrb r0, [r0] - lsrs r2, r0, #1 - cmp r2, #0 - bne _08050B5A - movs r2, #1 -_08050B5A: - adds r0, r1, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r3, r0, #1 - cmp r3, #0 - beq RETURN - cmp r2, r3 - ble _08050B6C - adds r2, r3, #0 -_08050B6C: - movs r0, #3 - ands r0, r2 - str r0, [sp, #4] - adds r0, r2, #0 - asrs r5, r0, #2 - mov ip, r5 - cmp r5, #0xa - ble _08050B80 - movs r2, #0xa - mov ip, r2 -_08050B80: - adds r6, r5, #0 - subs r6, #0xa - mov sb, r6 - cmp r6, #0 - bge _08050B8E - movs r7, #0 - mov sb, r7 -_08050B8E: - adds r0, r3, #0 - asrs r3, r0, #2 - adds r0, r3, #0 - cmp r3, #0xa - ble _08050B9A - movs r3, #0xa -_08050B9A: - adds r4, r0, #0 - subs r4, #0xa - ldr r2, [sp] - ldr r0, _08050C1C @ =0x0000F24C - mov sl, r0 - strh r0, [r2] - ldr r1, _08050C20 @ =0x040000D4 - movs r7, #0xa - mov r8, r7 - mov r0, r8 - mov r7, ip @ var5 - subs r0, r0, r7 @ 10 - var5 - lsls r0, r0, #1 - ldr r7, _08050C24 @ =gUnk_080FC914 - mov ip, r7 - add r0, ip - str r0, [r1] - adds r0, r2, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r1, #8] - ldr r0, [r1, #8] - cmp r4, #0 - ble _08050BEE - adds r2, #0x40 - mov r3, sl - strh r3, [r2] - mov r7, r8 - mov r3, sb - subs r0, r7, r3 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r2, #2 - str r0, [r1, #4] - movs r7, #0x80 - lsls r7, r7, #0x18 - orrs r4, r7 - str r4, [r1, #8] - ldr r0, [r1, #8] -_08050BEE: - ldr r0, [sp, #4] - cmp r0, #0 - beq RETURN - ldr r2, [sp] - cmp r5, #9 - ble _08050BFE - adds r5, r6, #0 - adds r2, #0x40 -_08050BFE: - lsls r0, r5, #1 - adds r0, r0, r2 - ldr r2, [sp, #4] - ldr r3, _08050C28 @ =0xFFFFF24D - adds r1, r2, r3 - strh r1, [r0, #2] -RETURN: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08050C18: .4byte gUnk_02002A40 -_08050C1C: .4byte 0x0000F24C -_08050C20: .4byte 0x040000D4 -_08050C24: .4byte gUnk_080FC914 -_08050C28: .4byte 0xFFFFF24D - - thumb_func_start sub_08050C2C -sub_08050C2C: @ 0x08050C2C - push {lr} - ldr r1, _08050C48 @ =gUnk_080FC93C - ldr r0, _08050C4C @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08050C50 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_08050C48: .4byte gUnk_080FC93C -_08050C4C: .4byte gMenu -_08050C50: .4byte gUnk_02019EE0 - - thumb_func_start sub_08050C54 -sub_08050C54: @ 0x08050C54 - push {r4, lr} - ldr r0, _08050C78 @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _08050C60 - b _08050D60 -_08050C60: - ldr r0, _08050C7C @ =gMenu - ldrb r4, [r0, #1] - ldr r0, _08050C80 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - subs r0, #1 - cmp r0, #0x1f - bhi _08050D44 - lsls r0, r0, #2 - ldr r1, _08050C84 @ =_08050C88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050C78: .4byte gUnk_02019EE0 -_08050C7C: .4byte gMenu -_08050C80: .4byte gUnk_03000FF0 -_08050C84: .4byte _08050C88 -_08050C88: @ jump table - .4byte _08050D08 @ case 0 - .4byte _08050D30 @ case 1 - .4byte _08050D44 @ case 2 - .4byte _08050D44 @ case 3 - .4byte _08050D44 @ case 4 - .4byte _08050D44 @ case 5 - .4byte _08050D44 @ case 6 - .4byte _08050D08 @ case 7 - .4byte _08050D44 @ case 8 - .4byte _08050D44 @ case 9 - .4byte _08050D44 @ case 10 - .4byte _08050D44 @ case 11 - .4byte _08050D44 @ case 12 - .4byte _08050D44 @ case 13 - .4byte _08050D44 @ case 14 - .4byte _08050D42 @ case 15 - .4byte _08050D44 @ case 16 - .4byte _08050D44 @ case 17 - .4byte _08050D44 @ case 18 - .4byte _08050D44 @ case 19 - .4byte _08050D44 @ case 20 - .4byte _08050D44 @ case 21 - .4byte _08050D44 @ case 22 - .4byte _08050D44 @ case 23 - .4byte _08050D44 @ case 24 - .4byte _08050D44 @ case 25 - .4byte _08050D44 @ case 26 - .4byte _08050D44 @ case 27 - .4byte _08050D44 @ case 28 - .4byte _08050D44 @ case 29 - .4byte _08050D44 @ case 30 - .4byte _08050D3E @ case 31 -_08050D08: - cmp r4, #0 - bne _08050D12 - ldr r0, _08050D28 @ =0x80080000 - bl PlaySFX -_08050D12: - ldr r1, _08050D2C @ =gMenu - movs r0, #0xf - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - movs r0, #0x6a - bl PlaySFX - b _08050D44 - .align 2, 0 -_08050D28: .4byte 0x80080000 -_08050D2C: .4byte gMenu -_08050D30: - movs r0, #0x6c - bl PlaySFX - movs r0, #0 - bl sub_080503BC - b _08050D44 -_08050D3E: - subs r4, #1 - b _08050D44 -_08050D42: - adds r4, #1 -_08050D44: - cmp r4, #0 - bge _08050D4A - movs r4, #0 -_08050D4A: - cmp r4, #2 - ble _08050D50 - movs r4, #2 -_08050D50: - ldr r1, _08050D64 @ =gMenu - ldrb r0, [r1, #1] - cmp r0, r4 - beq _08050D60 - strb r4, [r1, #1] - movs r0, #0x69 - bl PlaySFX -_08050D60: - pop {r4, pc} - .align 2, 0 -_08050D64: .4byte gMenu - - thumb_func_start sub_08050D68 -sub_08050D68: @ 0x08050D68 - push {lr} - ldr r1, _08050D84 @ =gMenu - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08050D94 - ldrb r0, [r1, #1] - cmp r0, #1 - beq _08050D88 - cmp r0, #1 - ble _08050D80 - cmp r0, #2 - beq _08050D8C -_08050D80: - movs r0, #7 - b _08050D8E - .align 2, 0 -_08050D84: .4byte gMenu -_08050D88: - movs r0, #5 - b _08050D8E -_08050D8C: - movs r0, #6 -_08050D8E: - bl sub_080503BC - b _08050D98 -_08050D94: - subs r0, #1 - strh r0, [r1, #8] -_08050D98: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08050D9C -sub_08050D9C: @ 0x08050D9C - push {lr} - ldr r1, _08050DB0 @ =gUnk_080FC944 - ldr r0, _08050DB4 @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08050DB0: .4byte gUnk_080FC944 -_08050DB4: .4byte gMenu - - thumb_func_start sub_08050DB8 -sub_08050DB8: @ 0x08050DB8 - push {lr} - ldr r0, _08050DDC @ =gUnk_020344B0 - movs r1, #0x80 - lsls r1, r1, #4 - bl _DmaZero - movs r0, #0xc - bl sub_080503A8 - ldr r1, _08050DE0 @ =gMenu - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - strb r0, [r1, #4] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_08050DDC: .4byte gUnk_020344B0 -_08050DE0: .4byte gMenu - - thumb_func_start sub_08050DE4 -sub_08050DE4: @ 0x08050DE4 - push {r4, lr} - ldr r0, _08050E0C @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - bne _08050E80 - movs r1, #0x80 - lsls r1, r1, #0x12 - ldrb r4, [r1, #7] - ldr r0, _08050E10 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #8 - beq _08050E26 - cmp r0, #8 - bgt _08050E14 - cmp r0, #1 - beq _08050E26 - cmp r0, #2 - beq _08050E50 - b _08050E62 - .align 2, 0 -_08050E0C: .4byte gUnk_02019EE0 -_08050E10: .4byte gUnk_03000FF0 -_08050E14: - cmp r0, #0x40 - beq _08050E1E - cmp r0, #0x80 - beq _08050E22 - b _08050E62 -_08050E1E: - subs r4, #1 - b _08050E62 -_08050E22: - adds r4, #1 - b _08050E62 -_08050E26: - movs r0, #0x6a - bl PlaySFX - ldr r0, _08050E44 @ =gMenu - ldrb r0, [r0, #4] - cmp r0, r4 - beq _08050E48 - movs r0, #2 - bl sub_080A7114 - movs r0, #8 - movs r1, #0 - bl sub_08050318 - b _08050E62 - .align 2, 0 -_08050E44: .4byte gMenu -_08050E48: - movs r0, #0 - bl sub_080503BC - b _08050E62 -_08050E50: - ldr r0, _08050E84 @ =gMenu - ldrb r4, [r0, #4] - strb r4, [r1, #7] - movs r0, #0x6c - bl PlaySFX - movs r0, #0 - bl sub_080503BC -_08050E62: - cmp r4, #1 - bgt _08050E68 - movs r4, #2 -_08050E68: - cmp r4, #6 - ble _08050E6E - movs r4, #6 -_08050E6E: - movs r1, #0x80 - lsls r1, r1, #0x12 - ldrb r0, [r1, #7] - cmp r0, r4 - beq _08050E80 - strb r4, [r1, #7] - movs r0, #0x69 - bl PlaySFX -_08050E80: - pop {r4, pc} - .align 2, 0 -_08050E84: .4byte gMenu - - thumb_func_start sub_08050E88 -sub_08050E88: @ 0x08050E88 - push {lr} - movs r0, #2 - bl sub_0807CDA4 - cmp r0, #0 - beq _08050E9A - movs r0, #0 - bl sub_080503BC -_08050E9A: - pop {pc} - - thumb_func_start sub_08050E9C -sub_08050E9C: @ 0x08050E9C + thumb_func_start HandleFileOptions +HandleFileOptions: @ 0x08050E9C push {lr} ldr r1, _08050EB0 @ =gUnk_080FC950 ldr r0, _08050EB4 @ =gMenu @@ -581,7 +161,7 @@ _08050FBA: bl sub_080A7114 ldr r0, _08050FCC @ =gUnk_02019EE0 ldrb r0, [r0, #6] - bl sub_0805041C + bl SetActiveSave b _08050FF4 .align 2, 0 _08050FCC: .4byte gUnk_02019EE0 @@ -599,7 +179,7 @@ _08050FE2: beq _08050FF4 strb r2, [r4] ldrb r0, [r6, #6] - bl sub_080503E4 + bl LoadOptionsFromSave movs r0, #0x69 bl PlaySFX _08050FF4: @@ -669,12 +249,12 @@ _08051060: _08051068: .4byte gUnk_03000FF0 _0805106C: movs r0, #0 - bl sub_080503BC + bl SetFileSelectState _08051072: pop {pc} - thumb_func_start sub_08051074 -sub_08051074: @ 0x08051074 + thumb_func_start HandleFileNew +HandleFileNew: @ 0x08051074 push {lr} ldr r1, _08051088 @ =gUnk_080FC960 ldr r0, _0805108C @ =gMenu @@ -1189,7 +769,7 @@ _08051448: sub_0805144C: @ 0x0805144C push {lr} movs r0, #0 - bl sub_080503BC + bl SetFileSelectState pop {pc} .align 2, 0 @@ -1372,8 +952,8 @@ _08051594: .4byte gUnk_02002A40 _08051598: .4byte gUnk_02019EE0 _0805159C: .4byte 0x000004B4 - thumb_func_start sub_080515A0 -sub_080515A0: @ 0x080515A0 + thumb_func_start HandleFileDelete +HandleFileDelete: @ 0x080515A0 push {lr} ldr r1, _080515BC @ =gUnk_080FC9BC ldr r0, _080515C0 @ =gMenu @@ -1480,7 +1060,7 @@ _08051694: _080516B0: .4byte gMenu _080516B4: movs r0, #0 - bl sub_080503BC + bl SetFileSelectState movs r0, #0x6c bl PlaySFX b _080516C8 @@ -1518,15 +1098,15 @@ sub_080516E0: @ 0x080516E0 movs r0, #2 strh r0, [r1, #8] movs r0, #0 - bl sub_080503BC + bl SetFileSelectState _08051706: pop {r4, pc} .align 2, 0 _08051708: .4byte gUnk_02019EE0 _0805170C: .4byte gMenu - thumb_func_start sub_08051710 -sub_08051710: @ 0x08051710 + thumb_func_start HandleFileCopy +HandleFileCopy: @ 0x08051710 push {lr} ldr r1, _0805172C @ =gUnk_080FC9C8 ldr r0, _08051730 @ =gMenu @@ -1697,7 +1277,7 @@ _08051848: movs r0, #0x6c bl PlaySFX movs r0, #0 - bl sub_080503BC + bl SetFileSelectState _08051858: adds r0, r4, #0 bl sub_080517B4 @@ -1744,7 +1324,7 @@ sub_08051874: @ 0x08051874 adds r1, r1, r3 bl _DmaCopy movs r0, #0 - bl sub_080503BC + bl SetFileSelectState b _080518DE .align 2, 0 _080518B8: .4byte gUnk_02019EE0 @@ -1780,7 +1360,7 @@ sub_080518E4: @ 0x080518E4 cmp r0, #0 beq _08051910 movs r0, #0 - bl sub_080503BC + bl SetFileSelectState b _08051910 .align 2, 0 _08051904: .4byte gMenu @@ -1792,8 +1372,8 @@ _08051910: pop {pc} .align 2, 0 - thumb_func_start sub_08051914 -sub_08051914: @ 0x08051914 + thumb_func_start HandleFileStart +HandleFileStart: @ 0x08051914 push {lr} ldr r1, _08051940 @ =gMenu ldrb r0, [r1, #5] @@ -2014,7 +1594,7 @@ _08051B02: bl sub_08000108 bl sub_0801C344 bl sub_0805E5F8 - bl sub_080AD90C + bl FlushSprites bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 @@ -2115,7 +1695,7 @@ sub_08051BD0: @ 0x08051BD0 _08051C02: bl sub_08078B48 _08051C06: - bl sub_080AD90C + bl FlushSprites bl sub_0805E5C0 bl sub_08080A40 bl sub_080175F4 @@ -2182,7 +1762,7 @@ sub_08051CA8: @ 0x08051CA8 bl sub_080175F4 bl sub_0801C344 bl sub_0805E5F8 - bl sub_080AD90C + bl FlushSprites bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 @@ -2202,7 +1782,7 @@ _08051CEC: .4byte gFadeControl thumb_func_start sub_08051CF0 sub_08051CF0: @ 0x08051CF0 push {r4, r5, r6, lr} - bl sub_080AD90C + bl FlushSprites bl sub_0801C208 bl sub_080AD9B0 ldr r5, _08051D20 @ =gUnk_03001000 @@ -2449,7 +2029,7 @@ sub_08051F04: @ 0x08051F04 adds r0, r0, r1 ldr r0, [r0] bl _call_via_r0 - bl sub_080AD90C + bl FlushSprites bl sub_0805E5C0 bl sub_080AD9B0 bl sub_080AD918 @@ -2581,7 +2161,7 @@ sub_08052010: @ 0x08052010 lsls r4, r4, #4 adds r1, r4, #0 bl _DmaZero - ldr r0, _08052080 @ =gUnk_020344B0 + ldr r0, _08052080 @ =gBG2Buffer adds r1, r4, #0 bl _DmaZero bl sub_080A4D34 @@ -2616,7 +2196,7 @@ sub_08052010: @ 0x08052010 pop {r4, pc} .align 2, 0 _0805207C: .4byte gBG1Buffer -_08052080: .4byte gUnk_020344B0 +_08052080: .4byte gBG2Buffer _08052084: .4byte gMenu _08052088: .4byte gScreen _0805208C: .4byte 0x00001C01 @@ -2635,7 +2215,7 @@ HandleGameOverScreen: @ 0x08052094 ldrb r0, [r4, #3] cmp r0, #0 beq _080520B8 - bl sub_080AD90C + bl FlushSprites bl sub_080523D4 bl sub_080AD918 _080520B8: diff --git a/asm/non_matching/save/sub_08050B3C.inc b/asm/non_matching/save/sub_08050B3C.inc new file mode 100644 index 00000000..d7e96a1f --- /dev/null +++ b/asm/non_matching/save/sub_08050B3C.inc @@ -0,0 +1,125 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + ldr r1, _08050C18 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaa + ldrb r0, [r0] + lsrs r2, r0, #1 + cmp r2, #0 + bne _08050B5A + movs r2, #1 +_08050B5A: + adds r0, r1, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r3, r0, #1 + cmp r3, #0 + beq RETURN + cmp r2, r3 + ble _08050B6C + adds r2, r3, #0 +_08050B6C: + movs r0, #3 + ands r0, r2 + str r0, [sp, #4] + adds r0, r2, #0 + asrs r5, r0, #2 + mov ip, r5 + cmp r5, #0xa + ble _08050B80 + movs r2, #0xa + mov ip, r2 +_08050B80: + adds r6, r5, #0 + subs r6, #0xa + mov sb, r6 + cmp r6, #0 + bge _08050B8E + movs r7, #0 + mov sb, r7 +_08050B8E: + adds r0, r3, #0 + asrs r3, r0, #2 + adds r0, r3, #0 + cmp r3, #0xa + ble _08050B9A + movs r3, #0xa +_08050B9A: + adds r4, r0, #0 + subs r4, #0xa + ldr r2, [sp] + ldr r0, _08050C1C @ =0x0000F24C + mov sl, r0 + strh r0, [r2] + ldr r1, _08050C20 @ =0x040000D4 + movs r7, #0xa + mov r8, r7 + mov r0, r8 + mov r7, ip @ var5 + subs r0, r0, r7 @ 10 - var5 + lsls r0, r0, #1 + ldr r7, _08050C24 @ =gUnk_080FC914 + mov ip, r7 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r1, #8] + ldr r0, [r1, #8] + cmp r4, #0 + ble _08050BEE + adds r2, #0x40 + mov r3, sl + strh r3, [r2] + mov r7, r8 + mov r3, sb + subs r0, r7, r3 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r7, #0x80 + lsls r7, r7, #0x18 + orrs r4, r7 + str r4, [r1, #8] + ldr r0, [r1, #8] +_08050BEE: + ldr r0, [sp, #4] + cmp r0, #0 + beq RETURN + ldr r2, [sp] + cmp r5, #9 + ble _08050BFE + adds r5, r6, #0 + adds r2, #0x40 +_08050BFE: + lsls r0, r5, #1 + adds r0, r0, r2 + ldr r2, [sp, #4] + ldr r3, _08050C28 @ =0xFFFFF24D + adds r1, r2, r3 + strh r1, [r0, #2] +RETURN: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08050C18: .4byte gUnk_02002A40 +_08050C1C: .4byte 0x0000F24C +_08050C20: .4byte 0x040000D4 +_08050C24: .4byte gUnk_080FC914 +_08050C28: .4byte 0xFFFFF24D + .syntax divided \ No newline at end of file diff --git a/data/data_080D5360.s b/data/data_080D5360.s index f6d67766..95021411 100644 --- a/data/data_080D5360.s +++ b/data/data_080D5360.s @@ -11210,1932 +11210,3 @@ gUnk_080FC844:: @ 080FC844 gUnk_080FC85C:: @ 080FC85C .incbin "baserom.gba", 0x0FC85C, 0x0000048 - -gUnk_080FC8A4:: @ 080FC8A4 - .incbin "baserom.gba", 0x0FC8A4, 0x000000C - -gUnk_080FC8B0:: @ 080FC8B0 - .incbin "baserom.gba", 0x0FC8B0, 0x0000020 - -gUnk_080FC8D0:: @ 080FC8D0 - .incbin "baserom.gba", 0x0FC8D0, 0x000000E - -gUnk_080FC8DE:: @ 080FC8DE - .incbin "baserom.gba", 0x0FC8DE, 0x000001E - -gUnk_080FC8FC:: @ 080FC8FC - .incbin "baserom.gba", 0x0FC8FC, 0x0000007 - -gUnk_080FC903:: @ 080FC903 - .incbin "baserom.gba", 0x0FC903, 0x0000005 - -gUnk_080FC908:: @ 080FC908 - .incbin "baserom.gba", 0x0FC908, 0x000000C - -gUnk_080FC914:: @ 080FC914 - .incbin "baserom.gba", 0x0FC914, 0x0000028 - -gUnk_080FC93C:: @ 080FC93C - .incbin "baserom.gba", 0x0FC93C, 0x0000008 - -gUnk_080FC944:: @ 080FC944 - .incbin "baserom.gba", 0x0FC944, 0x000000C - -gUnk_080FC950:: @ 080FC950 - .incbin "baserom.gba", 0x0FC950, 0x0000010 - -gUnk_080FC960:: @ 080FC960 - .incbin "baserom.gba", 0x0FC960, 0x0000010 - -gUnk_080FC970:: @ 080FC970 - .incbin "baserom.gba", 0x0FC970, 0x0000010 - -gUnk_080FC980:: @ 080FC980 - .incbin "baserom.gba", 0x0FC980, 0x0000020 - -gUnk_080FC9A0:: @ 080FC9A0 - .incbin "baserom.gba", 0x0FC9A0, 0x0000010 - -gUnk_080FC9B0:: @ 080FC9B0 - .incbin "baserom.gba", 0x0FC9B0, 0x000000C - -gUnk_080FC9BC:: @ 080FC9BC - .incbin "baserom.gba", 0x0FC9BC, 0x000000C - -gUnk_080FC9C8:: @ 080FC9C8 - .incbin "baserom.gba", 0x0FC9C8, 0x0000010 - -gUnk_080FC9D8:: @ 080FC9D8 - .incbin "baserom.gba", 0x0FC9D8, 0x0000010 - -gUnk_080FC9E8:: @ 080FC9E8 - .incbin "baserom.gba", 0x0FC9E8, 0x0000020 - -gUnk_080FCA08:: @ 080FCA08 - .incbin "baserom.gba", 0x0FCA08, 0x000000C - -gUnk_080FCA14:: @ 080FCA14 - .incbin "baserom.gba", 0x0FCA14, 0x000000C - -gUnk_080FCA20:: @ 080FCA20 - .incbin "baserom.gba", 0x0FCA20, 0x0000050 - -gUnk_080FCA70:: @ 080FCA70 - .incbin "baserom.gba", 0x0FCA70, 0x0000014 - -gUnk_080FCA84:: @ 080FCA84 - .incbin "baserom.gba", 0x0FCA84, 0x0000008 - -gUnk_080FCA8C:: @ 080FCA8C - .incbin "baserom.gba", 0x0FCA8C, 0x0000018 - -gUnk_080FCAA4:: @ 080FCAA4 - .incbin "baserom.gba", 0x0FCAA4, 0x0000024 - -gUnk_080FCAC8:: @ 080FCAC8 - .incbin "baserom.gba", 0x0FCAC8, 0x000000E - -gUnk_080FCAD6:: @ 080FCAD6 - .incbin "baserom.gba", 0x0FCAD6, 0x0000022 - -gUnk_080FCAF8:: @ 080FCAF8 - .incbin "baserom.gba", 0x0FCAF8, 0x0000020 - -gUnk_080FCB18:: @ 080FCB18 - .incbin "baserom.gba", 0x0FCB18, 0x0000020 - -gUnk_080FCB38:: @ 080FCB38 - .incbin "baserom.gba", 0x0FCB38, 0x000002A - -gUnk_080FCB62:: @ 080FCB62 - .incbin "baserom.gba", 0x0FCB62, 0x0000032 - -gUnk_080FCB94:: @ 080FCB94 - .incbin "baserom.gba", 0x0FCB94, 0x0000020 - -gUnk_080FCBB4:: @ 080FCBB4 - .incbin "baserom.gba", 0x0FCBB4, 0x0000010 - -gUnk_080FCBC4:: @ 080FCBC4 - .incbin "baserom.gba", 0x0FCBC4, 0x0000050 - -gUnk_080FCC14:: @ 080FCC14 - .incbin "baserom.gba", 0x0FCC14, 0x0000040 - -gUnk_080FCC54:: @ 080FCC54 - .incbin "baserom.gba", 0x0FCC54, 0x0000030 - -gUnk_080FCC84:: @ 080FCC84 - .incbin "baserom.gba", 0x0FCC84, 0x0000018 - -gUnk_080FCC9C:: @ 080FCC9C - .incbin "baserom.gba", 0x0FCC9C, 0x0000018 - -gUnk_080FCCB4:: @ 080FCCB4 - .incbin "baserom.gba", 0x0FCCB4, 0x0000048 - -gUnk_080FCCFC:: @ 080FCCFC - .incbin "baserom.gba", 0x0FCCFC, 0x000003C - -gUnk_080FCD38:: @ 080FCD38 - .incbin "baserom.gba", 0x0FCD38, 0x0000008 - -gUnk_080FCD40:: @ 080FCD40 - .incbin "baserom.gba", 0x0FCD40, 0x0000044 - -gUnk_080FCD84:: @ 080FCD84 - .incbin "baserom.gba", 0x0FCD84, 0x0000050 - -gUnk_080FCDD4:: @ 080FCDD4 - .incbin "baserom.gba", 0x0FCDD4, 0x000000C - -gUnk_080FCDE0:: @ 080FCDE0 - .incbin "baserom.gba", 0x0FCDE0, 0x0000050 - -gUnk_080FCE30:: @ 080FCE30 - .incbin "baserom.gba", 0x0FCE30, 0x0000080 - -gUnk_080FCEB0:: @ 080FCEB0 - .incbin "baserom.gba", 0x0FCEB0, 0x000000C - -gUnk_080FCEBC:: @ 080FCEBC - .incbin "baserom.gba", 0x0FCEBC, 0x0000030 - -gUnk_080FCEEC:: @ 080FCEEC - .incbin "baserom.gba", 0x0FCEEC, 0x000000C - -gUnk_080FCEF8:: @ 080FCEF8 - .incbin "baserom.gba", 0x0FCEF8, 0x000000C - -gUnk_080FCF04:: @ 080FCF04 - .incbin "baserom.gba", 0x0FCF04, 0x0000020 - -gUnk_080FCF24:: @ 080FCF24 - .incbin "baserom.gba", 0x0FCF24, 0x0000020 - -gUnk_080FCF44:: @ 080FCF44 - .incbin "baserom.gba", 0x0FCF44, 0x0000020 - -gUnk_080FCF64:: @ 080FCF64 - .incbin "baserom.gba", 0x0FCF64, 0x0000020 - -gUnk_080FCF84:: @ 080FCF84 - .incbin "baserom.gba", 0x0FCF84, 0x0000020 - -gUnk_080FCFA4:: @ 080FCFA4 - .incbin "baserom.gba", 0x0FCFA4, 0x0000014 - -gUnk_080FCFB8:: @ 080FCFB8 - .incbin "baserom.gba", 0x0FCFB8, 0x0000030 - -gUnk_080FCFE8:: @ 080FCFE8 - .incbin "baserom.gba", 0x0FCFE8, 0x0000020 - -gUnk_080FD008:: @ 080FD008 - .incbin "baserom.gba", 0x0FD008, 0x0000020 - -gUnk_080FD028:: @ 080FD028 - .incbin "baserom.gba", 0x0FD028, 0x0000020 - -gUnk_080FD048:: @ 080FD048 - .incbin "baserom.gba", 0x0FD048, 0x0000030 - -gUnk_080FD078:: @ 080FD078 - .incbin "baserom.gba", 0x0FD078, 0x0000020 - -gUnk_080FD098:: @ 080FD098 - .incbin "baserom.gba", 0x0FD098, 0x0000030 - -gUnk_080FD0C8:: @ 080FD0C8 - .incbin "baserom.gba", 0x0FD0C8, 0x0000020 - -gUnk_080FD0E8:: @ 080FD0E8 - .incbin "baserom.gba", 0x0FD0E8, 0x0000020 - -gUnk_080FD108:: @ 080FD108 - .incbin "baserom.gba", 0x0FD108, 0x0000030 - -gUnk_080FD138:: @ 080FD138 - .incbin "baserom.gba", 0x0FD138, 0x0000018 - -gUnk_080FD150:: @ 080FD150 - .incbin "baserom.gba", 0x0FD150, 0x0000008 - -gUnk_080FD158:: @ 080FD158 - .incbin "baserom.gba", 0x0FD158, 0x0000008 - -gUnk_080FD160:: @ 080FD160 - .incbin "baserom.gba", 0x0FD160, 0x0000008 - -gUnk_080FD168:: @ 080FD168 - .incbin "baserom.gba", 0x0FD168, 0x0000008 - -gUnk_080FD170:: @ 080FD170 - .incbin "baserom.gba", 0x0FD170, 0x0000008 - -gUnk_080FD178:: @ 080FD178 - .incbin "baserom.gba", 0x0FD178, 0x0000008 - -gUnk_080FD180:: @ 080FD180 - .incbin "baserom.gba", 0x0FD180, 0x0000008 - -gUnk_080FD188:: @ 080FD188 - .incbin "baserom.gba", 0x0FD188, 0x0000008 - -gUnk_080FD190:: @ 080FD190 - .incbin "baserom.gba", 0x0FD190, 0x0000008 - -gUnk_080FD198:: @ 080FD198 - .incbin "baserom.gba", 0x0FD198, 0x0000008 - -gUnk_080FD1A0:: @ 080FD1A0 - .incbin "baserom.gba", 0x0FD1A0, 0x0000008 - -gUnk_080FD1A8:: @ 080FD1A8 - .incbin "baserom.gba", 0x0FD1A8, 0x000000C - -gUnk_080FD1B4:: @ 080FD1B4 - .incbin "baserom.gba", 0x0FD1B4, 0x0000010 - -gUnk_080FD1C4:: @ 080FD1C4 - .incbin "baserom.gba", 0x0FD1C4, 0x0000008 - -gUnk_080FD1CC:: @ 080FD1CC - .incbin "baserom.gba", 0x0FD1CC, 0x0000008 - -gUnk_080FD1D4:: @ 080FD1D4 - .incbin "baserom.gba", 0x0FD1D4, 0x0000008 - -gUnk_080FD1DC:: @ 080FD1DC - .incbin "baserom.gba", 0x0FD1DC, 0x0000008 - -gUnk_080FD1E4:: @ 080FD1E4 - .incbin "baserom.gba", 0x0FD1E4, 0x0000008 - -gUnk_080FD1EC:: @ 080FD1EC - .incbin "baserom.gba", 0x0FD1EC, 0x0000008 - -gUnk_080FD1F4:: @ 080FD1F4 - .incbin "baserom.gba", 0x0FD1F4, 0x0000008 - -gUnk_080FD1FC:: @ 080FD1FC - .incbin "baserom.gba", 0x0FD1FC, 0x0000008 - -gUnk_080FD204:: @ 080FD204 - .incbin "baserom.gba", 0x0FD204, 0x0000008 - -gUnk_080FD20C:: @ 080FD20C - .incbin "baserom.gba", 0x0FD20C, 0x0000008 - -gUnk_080FD214:: @ 080FD214 - .incbin "baserom.gba", 0x0FD214, 0x0000008 - -gUnk_080FD21C:: @ 080FD21C - .incbin "baserom.gba", 0x0FD21C, 0x0000008 - -gUnk_080FD224:: @ 080FD224 - .incbin "baserom.gba", 0x0FD224, 0x0000008 - -gUnk_080FD22C:: @ 080FD22C - .incbin "baserom.gba", 0x0FD22C, 0x000000C - -gUnk_080FD238:: @ 080FD238 - .incbin "baserom.gba", 0x0FD238, 0x0000008 - -gUnk_080FD240:: @ 080FD240 - .incbin "baserom.gba", 0x0FD240, 0x0000008 - -gUnk_080FD248:: @ 080FD248 - .incbin "baserom.gba", 0x0FD248, 0x0000008 - -gUnk_080FD250:: @ 080FD250 - .incbin "baserom.gba", 0x0FD250, 0x0000008 - -gUnk_080FD258:: @ 080FD258 - .incbin "baserom.gba", 0x0FD258, 0x0000008 - -gUnk_080FD260:: @ 080FD260 - .incbin "baserom.gba", 0x0FD260, 0x0000008 - -gUnk_080FD268:: @ 080FD268 - .incbin "baserom.gba", 0x0FD268, 0x0000008 - -gUnk_080FD270:: @ 080FD270 - .incbin "baserom.gba", 0x0FD270, 0x0000008 - -gUnk_080FD278:: @ 080FD278 - .incbin "baserom.gba", 0x0FD278, 0x0000008 - -gUnk_080FD280:: @ 080FD280 - .incbin "baserom.gba", 0x0FD280, 0x0000008 - -gUnk_080FD288:: @ 080FD288 - .incbin "baserom.gba", 0x0FD288, 0x0000008 - -gUnk_080FD290:: @ 080FD290 - .incbin "baserom.gba", 0x0FD290, 0x0000008 - -gUnk_080FD298:: @ 080FD298 - .incbin "baserom.gba", 0x0FD298, 0x0000008 - -gUnk_080FD2A0:: @ 080FD2A0 - .incbin "baserom.gba", 0x0FD2A0, 0x0000008 - -gUnk_080FD2A8:: @ 080FD2A8 - .incbin "baserom.gba", 0x0FD2A8, 0x0000008 - -gUnk_080FD2B0:: @ 080FD2B0 - .incbin "baserom.gba", 0x0FD2B0, 0x0000008 - -gUnk_080FD2B8:: @ 080FD2B8 - .incbin "baserom.gba", 0x0FD2B8, 0x0000008 - -gUnk_080FD2C0:: @ 080FD2C0 - .incbin "baserom.gba", 0x0FD2C0, 0x0000008 - -gUnk_080FD2C8:: @ 080FD2C8 - .incbin "baserom.gba", 0x0FD2C8, 0x0000008 - -gUnk_080FD2D0:: @ 080FD2D0 - .incbin "baserom.gba", 0x0FD2D0, 0x0000008 - -gUnk_080FD2D8:: @ 080FD2D8 - .incbin "baserom.gba", 0x0FD2D8, 0x0000008 - -gUnk_080FD2E0:: @ 080FD2E0 - .incbin "baserom.gba", 0x0FD2E0, 0x0000008 - -gUnk_080FD2E8:: @ 080FD2E8 - .incbin "baserom.gba", 0x0FD2E8, 0x0000008 - -gUnk_080FD2F0:: @ 080FD2F0 - .incbin "baserom.gba", 0x0FD2F0, 0x0000008 - -gUnk_080FD2F8:: @ 080FD2F8 - .incbin "baserom.gba", 0x0FD2F8, 0x0000008 - -gUnk_080FD300:: @ 080FD300 - .incbin "baserom.gba", 0x0FD300, 0x0000008 - -gUnk_080FD308:: @ 080FD308 - .incbin "baserom.gba", 0x0FD308, 0x0000008 - -gUnk_080FD310:: @ 080FD310 - .incbin "baserom.gba", 0x0FD310, 0x0000008 - -gUnk_080FD318:: @ 080FD318 - .incbin "baserom.gba", 0x0FD318, 0x0000008 - -gUnk_080FD320:: @ 080FD320 - .incbin "baserom.gba", 0x0FD320, 0x0000008 - -gUnk_080FD328:: @ 080FD328 - .incbin "baserom.gba", 0x0FD328, 0x0000008 - -gUnk_080FD330:: @ 080FD330 - .incbin "baserom.gba", 0x0FD330, 0x0000008 - -gUnk_080FD338:: @ 080FD338 - .incbin "baserom.gba", 0x0FD338, 0x0000008 - -gUnk_080FD340:: @ 080FD340 - .incbin "baserom.gba", 0x0FD340, 0x000000C - -gUnk_080FD34C:: @ 080FD34C - .incbin "baserom.gba", 0x0FD34C, 0x0000008 - -gUnk_080FD354:: @ 080FD354 - .incbin "baserom.gba", 0x0FD354, 0x0000008 - -gUnk_080FD35C:: @ 080FD35C - .incbin "baserom.gba", 0x0FD35C, 0x0000008 - -gUnk_080FD364:: @ 080FD364 - .incbin "baserom.gba", 0x0FD364, 0x0000008 - -gUnk_080FD36C:: @ 080FD36C - .incbin "baserom.gba", 0x0FD36C, 0x0000008 - -gUnk_080FD374:: @ 080FD374 - .incbin "baserom.gba", 0x0FD374, 0x0000008 - -gUnk_080FD37C:: @ 080FD37C - .incbin "baserom.gba", 0x0FD37C, 0x0000008 - -gUnk_080FD384:: @ 080FD384 - .incbin "baserom.gba", 0x0FD384, 0x0000008 - -gUnk_080FD38C:: @ 080FD38C - .incbin "baserom.gba", 0x0FD38C, 0x0000008 - -gUnk_080FD394:: @ 080FD394 - .incbin "baserom.gba", 0x0FD394, 0x0000008 - -gUnk_080FD39C:: @ 080FD39C - .incbin "baserom.gba", 0x0FD39C, 0x0000008 - -gUnk_080FD3A4:: @ 080FD3A4 - .incbin "baserom.gba", 0x0FD3A4, 0x0000008 - -gUnk_080FD3AC:: @ 080FD3AC - .incbin "baserom.gba", 0x0FD3AC, 0x0000008 - -gUnk_080FD3B4:: @ 080FD3B4 - .incbin "baserom.gba", 0x0FD3B4, 0x0000008 - -gUnk_080FD3BC:: @ 080FD3BC - .incbin "baserom.gba", 0x0FD3BC, 0x0000008 - -gUnk_080FD3C4:: @ 080FD3C4 - .incbin "baserom.gba", 0x0FD3C4, 0x0000008 - -gUnk_080FD3CC:: @ 080FD3CC - .incbin "baserom.gba", 0x0FD3CC, 0x0000010 - -gUnk_080FD3DC:: @ 080FD3DC - .incbin "baserom.gba", 0x0FD3DC, 0x0000008 - -gUnk_080FD3E4:: @ 080FD3E4 - .incbin "baserom.gba", 0x0FD3E4, 0x0000008 - -gUnk_080FD3EC:: @ 080FD3EC - .incbin "baserom.gba", 0x0FD3EC, 0x0000008 - -gUnk_080FD3F4:: @ 080FD3F4 - .incbin "baserom.gba", 0x0FD3F4, 0x0000008 - -gUnk_080FD3FC:: @ 080FD3FC - .incbin "baserom.gba", 0x0FD3FC, 0x000000C - -gUnk_080FD408:: @ 080FD408 - .incbin "baserom.gba", 0x0FD408, 0x0000008 - -gUnk_080FD410:: @ 080FD410 - .incbin "baserom.gba", 0x0FD410, 0x000000C - -gUnk_080FD41C:: @ 080FD41C - .incbin "baserom.gba", 0x0FD41C, 0x0000008 - -gUnk_080FD424:: @ 080FD424 - .incbin "baserom.gba", 0x0FD424, 0x0000008 - -gUnk_080FD42C:: @ 080FD42C - .incbin "baserom.gba", 0x0FD42C, 0x0000008 - -gUnk_080FD434:: @ 080FD434 - .incbin "baserom.gba", 0x0FD434, 0x0000008 - -gUnk_080FD43C:: @ 080FD43C - .incbin "baserom.gba", 0x0FD43C, 0x000000C - -gUnk_080FD448:: @ 080FD448 - .incbin "baserom.gba", 0x0FD448, 0x0000008 - -gUnk_080FD450:: @ 080FD450 - .incbin "baserom.gba", 0x0FD450, 0x0000008 - -gUnk_080FD458:: @ 080FD458 - .incbin "baserom.gba", 0x0FD458, 0x0000008 - -gUnk_080FD460:: @ 080FD460 - .incbin "baserom.gba", 0x0FD460, 0x0000008 - -gUnk_080FD468:: @ 080FD468 - .incbin "baserom.gba", 0x0FD468, 0x0000008 - -gUnk_080FD470:: @ 080FD470 - .incbin "baserom.gba", 0x0FD470, 0x0000010 - -gUnk_080FD480:: @ 080FD480 - .incbin "baserom.gba", 0x0FD480, 0x0000008 - -gUnk_080FD488:: @ 080FD488 - .incbin "baserom.gba", 0x0FD488, 0x0000008 - -gUnk_080FD490:: @ 080FD490 - .incbin "baserom.gba", 0x0FD490, 0x0000008 - -gUnk_080FD498:: @ 080FD498 - .incbin "baserom.gba", 0x0FD498, 0x000000C - -gUnk_080FD4A4:: @ 080FD4A4 - .incbin "baserom.gba", 0x0FD4A4, 0x0000014 - -gUnk_080FD4B8:: @ 080FD4B8 - .incbin "baserom.gba", 0x0FD4B8, 0x0000008 - -gUnk_080FD4C0:: @ 080FD4C0 - .incbin "baserom.gba", 0x0FD4C0, 0x0000008 - -gUnk_080FD4C8:: @ 080FD4C8 - .incbin "baserom.gba", 0x0FD4C8, 0x0000008 - -gUnk_080FD4D0:: @ 080FD4D0 - .incbin "baserom.gba", 0x0FD4D0, 0x0000008 - -gUnk_080FD4D8:: @ 080FD4D8 - .incbin "baserom.gba", 0x0FD4D8, 0x0000008 - -gUnk_080FD4E0:: @ 080FD4E0 - .incbin "baserom.gba", 0x0FD4E0, 0x0000008 - -gUnk_080FD4E8:: @ 080FD4E8 - .incbin "baserom.gba", 0x0FD4E8, 0x0000008 - -gUnk_080FD4F0:: @ 080FD4F0 - .incbin "baserom.gba", 0x0FD4F0, 0x0000008 - -gUnk_080FD4F8:: @ 080FD4F8 - .incbin "baserom.gba", 0x0FD4F8, 0x0000008 - -gUnk_080FD500:: @ 080FD500 - .incbin "baserom.gba", 0x0FD500, 0x0000008 - -gUnk_080FD508:: @ 080FD508 - .incbin "baserom.gba", 0x0FD508, 0x0000008 - -gUnk_080FD510:: @ 080FD510 - .incbin "baserom.gba", 0x0FD510, 0x0000008 - -gUnk_080FD518:: @ 080FD518 - .incbin "baserom.gba", 0x0FD518, 0x0000008 - -gUnk_080FD520:: @ 080FD520 - .incbin "baserom.gba", 0x0FD520, 0x0000008 - -gUnk_080FD528:: @ 080FD528 - .incbin "baserom.gba", 0x0FD528, 0x0000008 - -gUnk_080FD530:: @ 080FD530 - .incbin "baserom.gba", 0x0FD530, 0x0000008 - -gUnk_080FD538:: @ 080FD538 - .incbin "baserom.gba", 0x0FD538, 0x000000C - -gUnk_080FD544:: @ 080FD544 - .incbin "baserom.gba", 0x0FD544, 0x0000008 - -gUnk_080FD54C:: @ 080FD54C - .incbin "baserom.gba", 0x0FD54C, 0x000000C - -gUnk_080FD558:: @ 080FD558 - .incbin "baserom.gba", 0x0FD558, 0x0000008 - -gUnk_080FD560:: @ 080FD560 - .incbin "baserom.gba", 0x0FD560, 0x0000008 - -gUnk_080FD568:: @ 080FD568 - .incbin "baserom.gba", 0x0FD568, 0x0000008 - -gUnk_080FD570:: @ 080FD570 - .incbin "baserom.gba", 0x0FD570, 0x0000008 - -gUnk_080FD578:: @ 080FD578 - .incbin "baserom.gba", 0x0FD578, 0x0000008 - -gUnk_080FD580:: @ 080FD580 - .incbin "baserom.gba", 0x0FD580, 0x0000008 - -gUnk_080FD588:: @ 080FD588 - .incbin "baserom.gba", 0x0FD588, 0x0000008 - -gWalletSizes:: @ 080FD590 - .incbin "baserom.gba", 0x0FD590, 0x0000010 - -gBombBagSizes:: @ 080FD5A0 - .incbin "baserom.gba", 0x0FD5A0, 0x0000004 - -gQuiverSizes:: @ 080FD5A4 - .incbin "baserom.gba", 0x0FD5A4, 0x0000004 - -gUnk_080FD5A8:: @ 080FD5A8 - .incbin "baserom.gba", 0x0FD5A8, 0x000000C - -gUnk_080FD5B4:: @ 080FD5B4 - .incbin "baserom.gba", 0x0FD5B4, 0x00003B0 - -gUnk_080FD964:: @ 080FD964 - .incbin "baserom.gba", 0x0FD964, 0x00003B0 - -gUnk_080FDD14:: @ 080FDD14 - .incbin "baserom.gba", 0x0FDD14, 0x0000005 - -gUnk_080FDD19:: @ 080FDD19 - .incbin "baserom.gba", 0x0FDD19, 0x0000005 - -gUnk_080FDD1E:: @ 080FDD1E - .incbin "baserom.gba", 0x0FDD1E, 0x0000005 - -gUnk_080FDD23:: @ 080FDD23 - .incbin "baserom.gba", 0x0FDD23, 0x0000005 - -gUnk_080FDD28:: @ 080FDD28 - .incbin "baserom.gba", 0x0FDD28, 0x0000005 - -gUnk_080FDD2D:: @ 080FDD2D - .incbin "baserom.gba", 0x0FDD2D, 0x0000005 - -gUnk_080FDD32:: @ 080FDD32 - .incbin "baserom.gba", 0x0FDD32, 0x0000005 - -gUnk_080FDD37:: @ 080FDD37 - .incbin "baserom.gba", 0x0FDD37, 0x0000011 - -gUnk_080FDD48:: @ 080FDD48 - .incbin "baserom.gba", 0x0FDD48, 0x0000005 - -gUnk_080FDD4D:: @ 080FDD4D - .incbin "baserom.gba", 0x0FDD4D, 0x0000005 - -gUnk_080FDD52:: @ 080FDD52 - .incbin "baserom.gba", 0x0FDD52, 0x0000005 - -gUnk_080FDD57:: @ 080FDD57 - .incbin "baserom.gba", 0x0FDD57, 0x0000005 - -gUnk_080FDD5C:: @ 080FDD5C - .incbin "baserom.gba", 0x0FDD5C, 0x0000005 - -gUnk_080FDD61:: @ 080FDD61 - .incbin "baserom.gba", 0x0FDD61, 0x0000031 - -gUnk_080FDD92:: @ 080FDD92 - .incbin "baserom.gba", 0x0FDD92, 0x0000005 - -gUnk_080FDD97:: @ 080FDD97 - .incbin "baserom.gba", 0x0FDD97, 0x0000011 - -gUnk_080FDDA8:: @ 080FDDA8 - .incbin "baserom.gba", 0x0FDDA8, 0x0000005 - -gUnk_080FDDAD:: @ 080FDDAD - .incbin "baserom.gba", 0x0FDDAD, 0x0000005 - -gUnk_080FDDB2:: @ 080FDDB2 - .incbin "baserom.gba", 0x0FDDB2, 0x0000005 - -gUnk_080FDDB7:: @ 080FDDB7 - .incbin "baserom.gba", 0x0FDDB7, 0x0000005 - -gUnk_080FDDBC:: @ 080FDDBC - .incbin "baserom.gba", 0x0FDDBC, 0x0000005 - -gUnk_080FDDC1:: @ 080FDDC1 - .incbin "baserom.gba", 0x0FDDC1, 0x0000005 - -gUnk_080FDDC6:: @ 080FDDC6 - .incbin "baserom.gba", 0x0FDDC6, 0x0000005 - -gUnk_080FDDCB:: @ 080FDDCB - .incbin "baserom.gba", 0x0FDDCB, 0x0000005 - -gUnk_080FDDD0:: @ 080FDDD0 - .incbin "baserom.gba", 0x0FDDD0, 0x0000005 - -gUnk_080FDDD5:: @ 080FDDD5 - .incbin "baserom.gba", 0x0FDDD5, 0x0000005 - -gUnk_080FDDDA:: @ 080FDDDA - .incbin "baserom.gba", 0x0FDDDA, 0x0000005 - -gUnk_080FDDDF:: @ 080FDDDF - .incbin "baserom.gba", 0x0FDDDF, 0x0000005 - -gUnk_080FDDE4:: @ 080FDDE4 - .incbin "baserom.gba", 0x0FDDE4, 0x0000011 - -gUnk_080FDDF5:: @ 080FDDF5 - .incbin "baserom.gba", 0x0FDDF5, 0x0000019 - -gUnk_080FDE0E:: @ 080FDE0E - .incbin "baserom.gba", 0x0FDE0E, 0x0000019 - -gUnk_080FDE27:: @ 080FDE27 - .incbin "baserom.gba", 0x0FDE27, 0x0000019 - -gUnk_080FDE40:: @ 080FDE40 - .incbin "baserom.gba", 0x0FDE40, 0x0000019 - -gUnk_080FDE59:: @ 080FDE59 - .incbin "baserom.gba", 0x0FDE59, 0x0000019 - -gUnk_080FDE72:: @ 080FDE72 - .incbin "baserom.gba", 0x0FDE72, 0x0000019 - -gUnk_080FDE8B:: @ 080FDE8B - .incbin "baserom.gba", 0x0FDE8B, 0x0000005 - -gUnk_080FDE90:: @ 080FDE90 - .incbin "baserom.gba", 0x0FDE90, 0x0000005 - -gUnk_080FDE95:: @ 080FDE95 - .incbin "baserom.gba", 0x0FDE95, 0x0000005 - -gUnk_080FDE9A:: @ 080FDE9A - .incbin "baserom.gba", 0x0FDE9A, 0x0000005 - -gUnk_080FDE9F:: @ 080FDE9F - .incbin "baserom.gba", 0x0FDE9F, 0x0000005 - -gUnk_080FDEA4:: @ 080FDEA4 - .incbin "baserom.gba", 0x0FDEA4, 0x0000005 - -gUnk_080FDEA9:: @ 080FDEA9 - .incbin "baserom.gba", 0x0FDEA9, 0x0000005 - -gUnk_080FDEAE:: @ 080FDEAE - .incbin "baserom.gba", 0x0FDEAE, 0x0000005 - -gUnk_080FDEB3:: @ 080FDEB3 - .incbin "baserom.gba", 0x0FDEB3, 0x0000005 - -gUnk_080FDEB8:: @ 080FDEB8 - .incbin "baserom.gba", 0x0FDEB8, 0x0000005 - -gUnk_080FDEBD:: @ 080FDEBD - .incbin "baserom.gba", 0x0FDEBD, 0x0000005 - -gUnk_080FDEC2:: @ 080FDEC2 - .incbin "baserom.gba", 0x0FDEC2, 0x0000005 - -gUnk_080FDEC7:: @ 080FDEC7 - .incbin "baserom.gba", 0x0FDEC7, 0x0000005 - -gUnk_080FDECC:: @ 080FDECC - .incbin "baserom.gba", 0x0FDECC, 0x0000005 - -gUnk_080FDED1:: @ 080FDED1 - .incbin "baserom.gba", 0x0FDED1, 0x0000005 - -gUnk_080FDED6:: @ 080FDED6 - .incbin "baserom.gba", 0x0FDED6, 0x0000005 - -gUnk_080FDEDB:: @ 080FDEDB - .incbin "baserom.gba", 0x0FDEDB, 0x0000005 - -gUnk_080FDEE0:: @ 080FDEE0 - .incbin "baserom.gba", 0x0FDEE0, 0x0000005 - -gUnk_080FDEE5:: @ 080FDEE5 - .incbin "baserom.gba", 0x0FDEE5, 0x0000005 - -gUnk_080FDEEA:: @ 080FDEEA - .incbin "baserom.gba", 0x0FDEEA, 0x0000005 - -gUnk_080FDEEF:: @ 080FDEEF - .incbin "baserom.gba", 0x0FDEEF, 0x0000005 - -gUnk_080FDEF4:: @ 080FDEF4 - .incbin "baserom.gba", 0x0FDEF4, 0x0000005 - -gUnk_080FDEF9:: @ 080FDEF9 - .incbin "baserom.gba", 0x0FDEF9, 0x0000005 - -gUnk_080FDEFE:: @ 080FDEFE - .incbin "baserom.gba", 0x0FDEFE, 0x0000005 - -gUnk_080FDF03:: @ 080FDF03 - .incbin "baserom.gba", 0x0FDF03, 0x0000005 - -gUnk_080FDF08:: @ 080FDF08 - .incbin "baserom.gba", 0x0FDF08, 0x0000005 - -gUnk_080FDF0D:: @ 080FDF0D - .incbin "baserom.gba", 0x0FDF0D, 0x0000005 - -gUnk_080FDF12:: @ 080FDF12 - .incbin "baserom.gba", 0x0FDF12, 0x0000005 - -gUnk_080FDF17:: @ 080FDF17 - .incbin "baserom.gba", 0x0FDF17, 0x0000011 - -gUnk_080FDF28:: @ 080FDF28 - .incbin "baserom.gba", 0x0FDF28, 0x000001D - -gUnk_080FDF45:: @ 080FDF45 - .incbin "baserom.gba", 0x0FDF45, 0x0000005 - -gUnk_080FDF4A:: @ 080FDF4A - .incbin "baserom.gba", 0x0FDF4A, 0x0000005 - -gUnk_080FDF4F:: @ 080FDF4F - .incbin "baserom.gba", 0x0FDF4F, 0x0000005 - -gUnk_080FDF54:: @ 080FDF54 - .incbin "baserom.gba", 0x0FDF54, 0x0000005 - -gUnk_080FDF59:: @ 080FDF59 - .incbin "baserom.gba", 0x0FDF59, 0x0000005 - -gUnk_080FDF5E:: @ 080FDF5E - .incbin "baserom.gba", 0x0FDF5E, 0x0000005 - -gUnk_080FDF63:: @ 080FDF63 - .incbin "baserom.gba", 0x0FDF63, 0x0000005 - -gUnk_080FDF68:: @ 080FDF68 - .incbin "baserom.gba", 0x0FDF68, 0x0000005 - -gUnk_080FDF6D:: @ 080FDF6D - .incbin "baserom.gba", 0x0FDF6D, 0x0000005 - -gUnk_080FDF72:: @ 080FDF72 - .incbin "baserom.gba", 0x0FDF72, 0x0000005 - -gUnk_080FDF77:: @ 080FDF77 - .incbin "baserom.gba", 0x0FDF77, 0x0000005 - -gUnk_080FDF7C:: @ 080FDF7C - .incbin "baserom.gba", 0x0FDF7C, 0x0000005 - -gUnk_080FDF81:: @ 080FDF81 - .incbin "baserom.gba", 0x0FDF81, 0x0000005 - -gUnk_080FDF86:: @ 080FDF86 - .incbin "baserom.gba", 0x0FDF86, 0x0000009 - -gUnk_080FDF8F:: @ 080FDF8F - .incbin "baserom.gba", 0x0FDF8F, 0x0000005 - -gUnk_080FDF94:: @ 080FDF94 - .incbin "baserom.gba", 0x0FDF94, 0x0000005 - -gUnk_080FDF99:: @ 080FDF99 - .incbin "baserom.gba", 0x0FDF99, 0x0000005 - -gUnk_080FDF9E:: @ 080FDF9E - .incbin "baserom.gba", 0x0FDF9E, 0x0000005 - -gUnk_080FDFA3:: @ 080FDFA3 - .incbin "baserom.gba", 0x0FDFA3, 0x0000005 - -gUnk_080FDFA8:: @ 080FDFA8 - .incbin "baserom.gba", 0x0FDFA8, 0x0000019 - -gUnk_080FDFC1:: @ 080FDFC1 - .incbin "baserom.gba", 0x0FDFC1, 0x0000005 - -gUnk_080FDFC6:: @ 080FDFC6 - .incbin "baserom.gba", 0x0FDFC6, 0x0000005 - -gUnk_080FDFCB:: @ 080FDFCB - .incbin "baserom.gba", 0x0FDFCB, 0x0000005 - -gUnk_080FDFD0:: @ 080FDFD0 - .incbin "baserom.gba", 0x0FDFD0, 0x0000008 - -gUnk_080FDFD8:: @ 080FDFD8 - .incbin "baserom.gba", 0x0FDFD8, 0x00001DC - -gUnk_080FE1B4:: @ 080FE1B4 - .incbin "baserom.gba", 0x0FE1B4, 0x0000012 - -gUnk_080FE1C6:: @ 080FE1C6 - .incbin "baserom.gba", 0x0FE1C6, 0x0000017 - -gUnk_080FE1DD:: @ 080FE1DD - .incbin "baserom.gba", 0x0FE1DD, 0x00000C3 - -gUnk_080FE2A0:: @ 080FE2A0 - .incbin "baserom.gba", 0x0FE2A0, 0x000000C - -gUnk_080FE2AC:: @ 080FE2AC - .incbin "baserom.gba", 0x0FE2AC, 0x0000074 - -gUnk_080FE320:: @ 080FE320 - .incbin "baserom.gba", 0x0FE320, 0x00002F0 - -gUnk_080FE610:: @ 080FE610 - .incbin "baserom.gba", 0x0FE610, 0x00004B8 - -gUnk_080FEAC8:: @ 080FEAC8 - .incbin "baserom.gba", 0x0FEAC8, 0x0000003 - -gUnk_080FEACB:: @ 080FEACB - .incbin "baserom.gba", 0x0FEACB, 0x0000023 - -gUnk_080FEAEE:: @ 080FEAEE - .incbin "baserom.gba", 0x0FEAEE, 0x000002C - -gUnk_080FEB1A:: @ 080FEB1A - .incbin "baserom.gba", 0x0FEB1A, 0x00000C2 - -gUnk_080FEBDC:: @ 080FEBDC - .incbin "baserom.gba", 0x0FEBDC, 0x000000C - -gUnk_080FEBE8:: @ 080FEBE8 - .incbin "baserom.gba", 0x0FEBE8, 0x0000006 - -gUnk_080FEBEE:: @ 080FEBEE - .incbin "baserom.gba", 0x0FEBEE, 0x000001B - -gUnk_080FEC09:: @ 080FEC09 - .incbin "baserom.gba", 0x0FEC09, 0x000001F - -gUnk_080FEC28:: @ 080FEC28 - .incbin "baserom.gba", 0x0FEC28, 0x00000A0 - -gUnk_080FECC8:: @ 080FECC8 - .incbin "baserom.gba", 0x0FECC8, 0x0000050 - -gUnk_080FED18:: @ 080FED18 - .incbin "baserom.gba", 0x0FED18, 0x0000040 - -gUnk_080FED58:: @ 080FED58 - .incbin "baserom.gba", 0x0FED58, 0x0000040 - -gUnk_080FED98:: @ 080FED98 - .incbin "baserom.gba", 0x0FED98, 0x000000C - -gUnk_080FEDA4:: @ 080FEDA4 - .incbin "baserom.gba", 0x0FEDA4, 0x0000036 - -gUnk_080FEDDA:: @ 080FEDDA - .incbin "baserom.gba", 0x0FEDDA, 0x000001E - -gUnk_080FEDF8:: @ 080FEDF8 - .incbin "baserom.gba", 0x0FEDF8, 0x0000020 - -gUnk_080FEE18:: @ 080FEE18 - .incbin "baserom.gba", 0x0FEE18, 0x0000020 - -gUnk_080FEE38:: @ 080FEE38 - .incbin "baserom.gba", 0x0FEE38, 0x0000010 - -gUnk_080FEE48:: @ 080FEE48 - .incbin "baserom.gba", 0x0FEE48, 0x0000010 - -gUnk_080FEE58:: @ 080FEE58 - .incbin "baserom.gba", 0x0FEE58, 0x0000020 - -gUnk_080FEE78:: @ 080FEE78 - .incbin "baserom.gba", 0x0FEE78, 0x0000030 - -gUnk_080FEEA8:: @ 080FEEA8 - .incbin "baserom.gba", 0x0FEEA8, 0x0000008 - -gUnk_080FEEB0:: @ 080FEEB0 - .incbin "baserom.gba", 0x0FEEB0, 0x0000008 - -gUnk_080FEEB8:: @ 080FEEB8 - .incbin "baserom.gba", 0x0FEEB8, 0x0000010 - -gUnk_080FEEC8:: @ 080FEEC8 - .incbin "baserom.gba", 0x0FEEC8, 0x000000C - -gUnk_080FEED4:: @ 080FEED4 - .incbin "baserom.gba", 0x0FEED4, 0x0000060 - -gUnk_080FEF34:: @ 080FEF34 - .incbin "baserom.gba", 0x0FEF34, 0x0000008 - -gUnk_080FEF3C:: @ 080FEF3C - .incbin "baserom.gba", 0x0FEF3C, 0x000000C - -gUnk_080FEF48:: @ 080FEF48 - .incbin "baserom.gba", 0x0FEF48, 0x0000030 - -gUnk_080FEF78:: @ 080FEF78 - .incbin "baserom.gba", 0x0FEF78, 0x0000030 - -gUnk_080FEFA8:: @ 080FEFA8 - .incbin "baserom.gba", 0x0FEFA8, 0x0000040 - -gUnk_080FEFE8:: @ 080FEFE8 - .incbin "baserom.gba", 0x0FEFE8, 0x0000050 - -gUnk_080FF038:: @ 080FF038 - .incbin "baserom.gba", 0x0FF038, 0x0000060 - -gUnk_080FF098:: @ 080FF098 - .incbin "baserom.gba", 0x0FF098, 0x0000070 - -gUnk_080FF108:: @ 080FF108 - .incbin "baserom.gba", 0x0FF108, 0x0000018 - -gUnk_080FF120:: @ 080FF120 - .incbin "baserom.gba", 0x0FF120, 0x0000008 - -gUnk_080FF128:: @ 080FF128 - .incbin "baserom.gba", 0x0FF128, 0x0000020 - -gUnk_080FF148:: @ 080FF148 - .incbin "baserom.gba", 0x0FF148, 0x000000C - -gUnk_080FF154:: @ 080FF154 - .incbin "baserom.gba", 0x0FF154, 0x0000020 - -gUnk_080FF174:: @ 080FF174 - .incbin "baserom.gba", 0x0FF174, 0x0000008 - -gUnk_080FF17C:: @ 080FF17C - .incbin "baserom.gba", 0x0FF17C, 0x0000050 - -gUnk_080FF1CC:: @ 080FF1CC - .incbin "baserom.gba", 0x0FF1CC, 0x0000008 - -gUnk_080FF1D4:: @ 080FF1D4 - .incbin "baserom.gba", 0x0FF1D4, 0x0000018 - -gUnk_080FF1EC:: @ 080FF1EC - .incbin "baserom.gba", 0x0FF1EC, 0x0000008 - -gUnk_080FF1F4:: @ 080FF1F4 - .incbin "baserom.gba", 0x0FF1F4, 0x000000C - -gUnk_080FF200:: @ 080FF200 - .incbin "baserom.gba", 0x0FF200, 0x0000004 - -gUnk_080FF204:: @ 080FF204 - .incbin "baserom.gba", 0x0FF204, 0x0000024 - -gUnk_080FF228:: @ 080FF228 - .incbin "baserom.gba", 0x0FF228, 0x0000010 - -gUnk_080FF238:: @ 080FF238 - .incbin "baserom.gba", 0x0FF238, 0x0000010 - -gUnk_080FF248:: @ 080FF248 - .incbin "baserom.gba", 0x0FF248, 0x000000C - -gUnk_080FF254:: @ 080FF254 - .incbin "baserom.gba", 0x0FF254, 0x0000010 - -gUnk_080FF264:: @ 080FF264 - .incbin "baserom.gba", 0x0FF264, 0x0000020 - -gUnk_080FF284:: @ 080FF284 - .incbin "baserom.gba", 0x0FF284, 0x0000008 - -gUnk_080FF28C:: @ 080FF28C - .incbin "baserom.gba", 0x0FF28C, 0x000000C - -gUnk_080FF298:: @ 080FF298 - .incbin "baserom.gba", 0x0FF298, 0x0000020 - -gUnk_080FF2B8:: @ 080FF2B8 - .incbin "baserom.gba", 0x0FF2B8, 0x0000008 - -gUnk_080FF2C0:: @ 080FF2C0 - .incbin "baserom.gba", 0x0FF2C0, 0x0000040 - -gUnk_080FF300:: @ 080FF300 - .incbin "baserom.gba", 0x0FF300, 0x0000008 - -gUnk_080FF308:: @ 080FF308 - .incbin "baserom.gba", 0x0FF308, 0x0000020 - -gUnk_080FF328:: @ 080FF328 - .incbin "baserom.gba", 0x0FF328, 0x0000008 - -gUnk_080FF330:: @ 080FF330 - .incbin "baserom.gba", 0x0FF330, 0x000000C - -gUnk_080FF33C:: @ 080FF33C - .incbin "baserom.gba", 0x0FF33C, 0x0000020 - -gUnk_080FF35C:: @ 080FF35C - .incbin "baserom.gba", 0x0FF35C, 0x0000010 - -gUnk_080FF36C:: @ 080FF36C - .incbin "baserom.gba", 0x0FF36C, 0x000000C - -gUnk_080FF378:: @ 080FF378 - .incbin "baserom.gba", 0x0FF378, 0x0000050 - -gUnk_080FF3C8:: @ 080FF3C8 - .incbin "baserom.gba", 0x0FF3C8, 0x0000020 - -gUnk_080FF3E8:: @ 080FF3E8 - .incbin "baserom.gba", 0x0FF3E8, 0x000000C - -gUnk_080FF3F4:: @ 080FF3F4 - .incbin "baserom.gba", 0x0FF3F4, 0x000000C - -gUnk_080FF400:: @ 080FF400 - .incbin "baserom.gba", 0x0FF400, 0x0000020 - -gUnk_080FF420:: @ 080FF420 - .incbin "baserom.gba", 0x0FF420, 0x0000008 - -gUnk_080FF428:: @ 080FF428 - .incbin "baserom.gba", 0x0FF428, 0x0000428 - -gPaletteGroups:: @ 080FF850 - .word 0x00000000 - .word 0x080FF428 - .word 0x080FF430 - .word 0x080FF438 - .word 0x080FF444 - .word 0x080FF450 - .word 0x080FF454 - .word 0x080FF458 - .word 0x080FF45C - .word 0x080FF460 - .word 0x080FF474 - .word 0x080FF488 - .word 0x080FF484 - .word 0x080FF5C8 - .word 0x080FF4A0 - .word 0x080FF4DC - .word 0x080FF560 - .word 0x080FF4E4 - .word 0x080FF4C4 - .word 0x080FF570 - .word 0x080FF49C - .word 0x080FF498 - .word 0x080FF4A4 - .word 0x080FF4A8 - .word 0x080FF4AC - .word 0x080FF4B0 - .word 0x080FF4E8 - .word 0x080FF4B8 - .word 0x080FF490 - .word 0x080FF574 - .word 0x080FF578 - .word 0x080FF590 - .word 0x080FF594 - .word 0x080FF57C - .word 0x080FF5E4 - .word 0x080FF5F8 - .word 0x080FF4F0 - .word 0x080FF4F4 - .word 0x080FF598 - .word 0x080FF494 - .word 0x080FF6C4 - .word 0x080FF59C - .word 0x080FF6C8 - .word 0x080FF6CC - .word 0x080FF58C - .word 0x080FF5CC - .word 0x080FF564 - .word 0x080FF6D0 - .word 0x080FF6D4 - .word 0x080FF6D8 - .word 0x080FF6DC - .word 0x080FF5B0 - .word 0x080FF5B4 - .word 0x080FF5C4 - .word 0x080FF4C0 - .word 0x080FF500 - .word 0x080FF510 - .word 0x080FF518 - .word 0x080FF51C - .word 0x080FF524 - .word 0x080FF50C - .word 0x080FF4B4 - .word 0x080FF5A0 - .word 0x080FF4C8 - .word 0x080FF4CC - .word 0x080FF4D0 - .word 0x080FF4D4 - .word 0x080FF568 - .word 0x080FF650 - .word 0x080FF654 - .word 0x080FF658 - .word 0x080FF65C - .word 0x080FF660 - .word 0x080FF664 - .word 0x080FF668 - .word 0x080FF66C - .word 0x080FF670 - .word 0x080FF680 - .word 0x080FF684 - .word 0x080FF688 - .word 0x080FF68C - .word 0x080FF690 - .word 0x080FF694 - .word 0x080FF698 - .word 0x080FF69C - .word 0x080FF56C - .word 0x080FF674 - .word 0x080FF678 - .word 0x080FF67C - .word 0x080FF5B8 - .word 0x080FF4EC - .word 0x080FF6E0 - .word 0x080FF5A4 - .word 0x080FF4D8 - .word 0x080FF4FC - .word 0x080FF640 - .word 0x080FF644 - .word 0x080FF648 - .word 0x080FF64C - .word 0x080FF580 - .word 0x080FF584 - .word 0x080FF5FC - .word 0x080FF5A8 - .word 0x080FF5AC - .word 0x080FF504 - .word 0x080FF53C - .word 0x080FF540 - .word 0x080FF544 - .word 0x080FF548 - .word 0x080FF4E0 - .word 0x080FF600 - .word 0x080FF630 - .word 0x080FF634 - .word 0x080FF638 - .word 0x080FF63C - .word 0x080FF6A0 - .word 0x080FF6A4 - .word 0x080FF6A8 - .word 0x080FF6AC - .word 0x080FF6B0 - .word 0x080FF54C - .word 0x080FF604 - .word 0x080FF6C0 - .word 0x080FF6BC - .word 0x080FF6B8 - .word 0x080FF608 - .word 0x080FF60C - .word 0x080FF610 - .word 0x080FF4F8 - .word 0x080FF6B4 - .word 0x080FF508 - .word 0x080FF614 - .word 0x080FF618 - .word 0x080FF61C - .word 0x080FF6E4 - .word 0x080FF6E8 - .word 0x080FF6EC - .word 0x080FF6F0 - .word 0x080FF6F4 - .word 0x080FF6F8 - .word 0x080FF6FC - .word 0x080FF700 - .word 0x080FF704 - .word 0x080FF708 - .word 0x080FF528 - .word 0x080FF520 - .word 0x080FF5D0 - .word 0x080FF5D4 - .word 0x080FF5D8 - .word 0x080FF5DC - .word 0x080FF5E0 - .word 0x080FF5E8 - .word 0x080FF5EC - .word 0x080FF5F0 - .word 0x080FF5F4 - .word 0x080FF530 - .word 0x080FF534 - .word 0x080FF5BC - .word 0x080FF620 - .word 0x080FF624 - .word 0x080FF628 - .word 0x080FF62C - .word 0x080FF514 - .word 0x080FF550 - .word 0x080FF554 - .word 0x080FF558 - .word 0x080FF55C - .word 0x080FF588 - .word 0x080FF5C0 - .word 0x080FF538 - .word 0x080FF4BC - .word 0x080FF70C - .word 0x080FF710 - .word 0x080FF714 - .word 0x080FF718 - .word 0x080FF71C - .word 0x080FF720 - .word 0x080FF724 - .word 0x080FF728 - .word 0x080FF72C - .word 0x080FF52C - .word 0x080FF730 - .word 0x080FF73C - .word 0x080FF744 - .word 0x080FF750 - .word 0x080FF75C - .word 0x080FF770 - .word 0x080FF778 - .word 0x080FF780 - .word 0x080FF788 - .word 0x080FF790 - .word 0x080FF798 - .word 0x080FF7A0 - .word 0x080FF7A8 - .word 0x080FF7B0 - .word 0x080FF7B8 - .word 0x080FF7C0 - .word 0x080FF7C8 - .word 0x080FF7D0 - .word 0x080FF7D8 - .word 0x080FF7E0 - .word 0x080FF7E8 - .word 0x080FF7F0 - .word 0x080FF7F8 - .word 0x080FF808 - .word 0x080FF814 - .word 0x080FF83C - .word 0x080FF844 - -gUnk_080FFB90:: @ 080FFB90 - .incbin "baserom.gba", 0x0FFB90, 0x0000018 - -gUnk_080FFBA8:: @ 080FFBA8 - .incbin "baserom.gba", 0x0FFBA8, 0x0000035 - -gUnk_080FFBDD:: @ 080FFBDD - .incbin "baserom.gba", 0x0FFBDD, 0x0000013 - -gUnk_080FFBF0:: @ 080FFBF0 - .incbin "baserom.gba", 0x0FFBF0, 0x0000024 - -gUnk_080FFC14:: @ 080FFC14 - .incbin "baserom.gba", 0x0FFC14, 0x0000024 - -gUnk_080FFC38:: @ 080FFC38 - .incbin "baserom.gba", 0x0FFC38, 0x0000030 - -gUnk_080FFC68:: @ 080FFC68 - .incbin "baserom.gba", 0x0FFC68, 0x0000018 - -gUnk_080FFC80:: @ 080FFC80 - .incbin "baserom.gba", 0x0FFC80, 0x000000C - -gUnk_080FFC8C:: @ 080FFC8C - .incbin "baserom.gba", 0x0FFC8C, 0x000000C - -gUnk_080FFC98:: @ 080FFC98 - .incbin "baserom.gba", 0x0FFC98, 0x0000018 - -gUnk_080FFCB0:: @ 080FFCB0 - .incbin "baserom.gba", 0x0FFCB0, 0x0000018 - -gUnk_080FFCC8:: @ 080FFCC8 - .incbin "baserom.gba", 0x0FFCC8, 0x000000C - -gUnk_080FFCD4:: @ 080FFCD4 - .incbin "baserom.gba", 0x0FFCD4, 0x0000018 - -gUnk_080FFCEC:: @ 080FFCEC - .incbin "baserom.gba", 0x0FFCEC, 0x0000001 - -gUnk_080FFCED:: @ 080FFCED - .incbin "baserom.gba", 0x0FFCED, 0x0000017 - -gUnk_080FFD04:: @ 080FFD04 - .incbin "baserom.gba", 0x0FFD04, 0x0000018 - -gUnk_080FFD1C:: @ 080FFD1C - .incbin "baserom.gba", 0x0FFD1C, 0x000000C - -gUnk_080FFD28:: @ 080FFD28 - .incbin "baserom.gba", 0x0FFD28, 0x0000018 - -gUnk_080FFD40:: @ 080FFD40 - .incbin "baserom.gba", 0x0FFD40, 0x000000C - -gUnk_080FFD4C:: @ 080FFD4C - .incbin "baserom.gba", 0x0FFD4C, 0x000000C - -gUnk_080FFD58:: @ 080FFD58 - .incbin "baserom.gba", 0x0FFD58, 0x000000C - -gUnk_080FFD64:: @ 080FFD64 - .incbin "baserom.gba", 0x0FFD64, 0x000000C - -gUnk_080FFD70:: @ 080FFD70 - .incbin "baserom.gba", 0x0FFD70, 0x000000C - -gUnk_080FFD7C:: @ 080FFD7C - .incbin "baserom.gba", 0x0FFD7C, 0x000000C - -gUnk_080FFD88:: @ 080FFD88 - .incbin "baserom.gba", 0x0FFD88, 0x000000C - -gUnk_080FFD94:: @ 080FFD94 - .incbin "baserom.gba", 0x0FFD94, 0x0000018 - -gUnk_080FFDAC:: @ 080FFDAC - .incbin "baserom.gba", 0x0FFDAC, 0x0000018 - -gUnk_080FFDC4:: @ 080FFDC4 - .incbin "baserom.gba", 0x0FFDC4, 0x000000C - -gUnk_080FFDD0:: @ 080FFDD0 - .incbin "baserom.gba", 0x0FFDD0, 0x0000018 - -gUnk_080FFDE8:: @ 080FFDE8 - .incbin "baserom.gba", 0x0FFDE8, 0x000000C - -gUnk_080FFDF4:: @ 080FFDF4 - .incbin "baserom.gba", 0x0FFDF4, 0x0000005 - -gUnk_080FFDF9:: @ 080FFDF9 - .incbin "baserom.gba", 0x0FFDF9, 0x0000007 - -gUnk_080FFE00:: @ 080FFE00 - .incbin "baserom.gba", 0x0FFE00, 0x0000018 - -gUnk_080FFE18:: @ 080FFE18 - .incbin "baserom.gba", 0x0FFE18, 0x0000018 - -gUnk_080FFE30:: @ 080FFE30 - .incbin "baserom.gba", 0x0FFE30, 0x000003C - -gUnk_080FFE6C:: @ 080FFE6C - .incbin "baserom.gba", 0x0FFE6C, 0x000003C - -gUnk_080FFEA8:: @ 080FFEA8 - .incbin "baserom.gba", 0x0FFEA8, 0x000003C - -gUnk_080FFEE4:: @ 080FFEE4 - .incbin "baserom.gba", 0x0FFEE4, 0x000003C - -gUnk_080FFF20:: @ 080FFF20 - .incbin "baserom.gba", 0x0FFF20, 0x000003C - -gUnk_080FFF5C:: @ 080FFF5C - .incbin "baserom.gba", 0x0FFF5C, 0x000003C - -gUnk_080FFF98:: @ 080FFF98 - .incbin "baserom.gba", 0x0FFF98, 0x0000030 - -gUnk_080FFFC8:: @ 080FFFC8 - .incbin "baserom.gba", 0x0FFFC8, 0x0000018 - -gUnk_080FFFE0:: @ 080FFFE0 - .incbin "baserom.gba", 0x0FFFE0, 0x000000C - -gUnk_080FFFEC:: @ 080FFFEC - .incbin "baserom.gba", 0x0FFFEC, 0x000000C - -gUnk_080FFFF8:: @ 080FFFF8 - .incbin "baserom.gba", 0x0FFFF8, 0x0000008 - -gUnk_08100000:: @ 08100000 - .incbin "baserom.gba", 0x100000, 0x0000001 - -gUnk_08100001:: @ 08100001 - .incbin "baserom.gba", 0x100001, 0x0000002 - -gUnk_08100003:: @ 08100003 - .incbin "baserom.gba", 0x100003, 0x0000001 - -gUnk_08100004:: @ 08100004 - .incbin "baserom.gba", 0x100004, 0x000000C - -gUnk_08100010:: @ 08100010 - .incbin "baserom.gba", 0x100010, 0x0000005 - -gUnk_08100015:: @ 08100015 - .incbin "baserom.gba", 0x100015, 0x0000007 - -gUnk_0810001C:: @ 0810001C - .incbin "baserom.gba", 0x10001C, 0x000000C - -gUnk_08100028:: @ 08100028 - .incbin "baserom.gba", 0x100028, 0x0000004 - -gUnk_0810002C:: @ 0810002C - .incbin "baserom.gba", 0x10002C, 0x0000008 - -gUnk_08100034:: @ 08100034 - .incbin "baserom.gba", 0x100034, 0x000000B - -gUnk_0810003F:: @ 0810003F - .incbin "baserom.gba", 0x10003F, 0x0000001 - -gUnk_08100040:: @ 08100040 - .incbin "baserom.gba", 0x100040, 0x0000002 - -gUnk_08100042:: @ 08100042 - .incbin "baserom.gba", 0x100042, 0x000000A - -gUnk_0810004C:: @ 0810004C - .incbin "baserom.gba", 0x10004C, 0x000000C - -gUnk_08100058:: @ 08100058 - .incbin "baserom.gba", 0x100058, 0x000000C - -gUnk_08100064:: @ 08100064 - .incbin "baserom.gba", 0x100064, 0x000000C - -gUnk_08100070:: @ 08100070 - .incbin "baserom.gba", 0x100070, 0x000000C - -gUnk_0810007C:: @ 0810007C - .incbin "baserom.gba", 0x10007C, 0x000000C - -gUnk_08100088:: @ 08100088 - .incbin "baserom.gba", 0x100088, 0x000000C - -gUnk_08100094:: @ 08100094 - .incbin "baserom.gba", 0x100094, 0x000000C - -gUnk_081000A0:: @ 081000A0 - .incbin "baserom.gba", 0x1000A0, 0x000000C - -gUnk_081000AC:: @ 081000AC - .incbin "baserom.gba", 0x1000AC, 0x000000C - -gUnk_081000B8:: @ 081000B8 - .incbin "baserom.gba", 0x1000B8, 0x000000C - -gUnk_081000C4:: @ 081000C4 - .incbin "baserom.gba", 0x1000C4, 0x000000C - -gUnk_081000D0:: @ 081000D0 - .incbin "baserom.gba", 0x1000D0, 0x000000C - -gUnk_081000DC:: @ 081000DC - .incbin "baserom.gba", 0x1000DC, 0x0000008 - -gUnk_081000E4:: @ 081000E4 - .incbin "baserom.gba", 0x1000E4, 0x0000004 - -gUnk_081000E8:: @ 081000E8 - .incbin "baserom.gba", 0x1000E8, 0x0000008 - -gUnk_081000F0:: @ 081000F0 - .incbin "baserom.gba", 0x1000F0, 0x0000004 - -gUnk_081000F4:: @ 081000F4 - .incbin "baserom.gba", 0x1000F4, 0x000000C - -gUnk_08100100:: @ 08100100 - .incbin "baserom.gba", 0x100100, 0x0000007 - -gUnk_08100107:: @ 08100107 - .incbin "baserom.gba", 0x100107, 0x0000002 - -gUnk_08100109:: @ 08100109 - .incbin "baserom.gba", 0x100109, 0x0000003 - -gUnk_0810010C:: @ 0810010C - .incbin "baserom.gba", 0x10010C, 0x000000C - -gUnk_08100118:: @ 08100118 - .incbin "baserom.gba", 0x100118, 0x0000008 - -gUnk_08100120:: @ 08100120 - .incbin "baserom.gba", 0x100120, 0x0000006 - -gUnk_08100126:: @ 08100126 - .incbin "baserom.gba", 0x100126, 0x000000A - -gUnk_08100130:: @ 08100130 - .incbin "baserom.gba", 0x100130, 0x0000018 - -gUnk_08100148:: @ 08100148 - .incbin "baserom.gba", 0x100148, 0x0000018 - -gUnk_08100160:: @ 08100160 - .incbin "baserom.gba", 0x100160, 0x0000018 - -gUnk_08100178:: @ 08100178 - .incbin "baserom.gba", 0x100178, 0x0000018 - -gUnk_08100190:: @ 08100190 - .incbin "baserom.gba", 0x100190, 0x0000018 - -gUnk_081001A8:: @ 081001A8 - .incbin "baserom.gba", 0x1001A8, 0x0000018 - -gUnk_081001C0:: @ 081001C0 - .incbin "baserom.gba", 0x1001C0, 0x0000018 - -gUnk_081001D8:: @ 081001D8 - .incbin "baserom.gba", 0x1001D8, 0x0000018 - -gUnk_081001F0:: @ 081001F0 - .incbin "baserom.gba", 0x1001F0, 0x0000009 - -gUnk_081001F9:: @ 081001F9 - .incbin "baserom.gba", 0x1001F9, 0x000000D - -gUnk_08100206:: @ 08100206 - .incbin "baserom.gba", 0x100206, 0x0000002 - -gUnk_08100208:: @ 08100208 - .incbin "baserom.gba", 0x100208, 0x0000018 - -gUnk_08100220:: @ 08100220 - .incbin "baserom.gba", 0x100220, 0x0000018 - -gUnk_08100238:: @ 08100238 - .incbin "baserom.gba", 0x100238, 0x0000018 - -gUnk_08100250:: @ 08100250 - .incbin "baserom.gba", 0x100250, 0x0000018 - -gUnk_08100268:: @ 08100268 - .incbin "baserom.gba", 0x100268, 0x0000018 - -gUnk_08100280:: @ 08100280 - .incbin "baserom.gba", 0x100280, 0x0000018 - -gUnk_08100298:: @ 08100298 - .incbin "baserom.gba", 0x100298, 0x0000018 - -gUnk_081002B0:: @ 081002B0 - .incbin "baserom.gba", 0x1002B0, 0x0000018 - -gUnk_081002C8:: @ 081002C8 - .incbin "baserom.gba", 0x1002C8, 0x0000018 - -gUnk_081002E0:: @ 081002E0 - .incbin "baserom.gba", 0x1002E0, 0x000000C - -gUnk_081002EC:: @ 081002EC - .incbin "baserom.gba", 0x1002EC, 0x000000C - -gUnk_081002F8:: @ 081002F8 - .incbin "baserom.gba", 0x1002F8, 0x000000C - -gUnk_08100304:: @ 08100304 - .incbin "baserom.gba", 0x100304, 0x000000C - -gUnk_08100310:: @ 08100310 - .incbin "baserom.gba", 0x100310, 0x0000007 - -gUnk_08100317:: @ 08100317 - .incbin "baserom.gba", 0x100317, 0x0000011 - -gUnk_08100328:: @ 08100328 - .incbin "baserom.gba", 0x100328, 0x0000030 - -gUnk_08100358:: @ 08100358 - .incbin "baserom.gba", 0x100358, 0x0000030 - -gUnk_08100388:: @ 08100388 - .incbin "baserom.gba", 0x100388, 0x0000054 - -gUnk_081003DC:: @ 081003DC - .incbin "baserom.gba", 0x1003DC, 0x0000024 - -gUnk_08100400:: @ 08100400 - .incbin "baserom.gba", 0x100400, 0x0000001 - -gUnk_08100401:: @ 08100401 - .incbin "baserom.gba", 0x100401, 0x0000006 - -gUnk_08100407:: @ 08100407 - .incbin "baserom.gba", 0x100407, 0x000001D - -gUnk_08100424:: @ 08100424 - .incbin "baserom.gba", 0x100424, 0x0000048 - -gUnk_0810046C:: @ 0810046C - .incbin "baserom.gba", 0x10046C, 0x0000048 - -gUnk_081004B4:: @ 081004B4 - .incbin "baserom.gba", 0x1004B4, 0x0000018 - -gUnk_081004CC:: @ 081004CC - .incbin "baserom.gba", 0x1004CC, 0x0000024 - -gUnk_081004F0:: @ 081004F0 - .incbin "baserom.gba", 0x1004F0, 0x0000008 - -gUnk_081004F8:: @ 081004F8 - .incbin "baserom.gba", 0x1004F8, 0x0000002 - -gUnk_081004FA:: @ 081004FA - .incbin "baserom.gba", 0x1004FA, 0x0000004 - -gUnk_081004FE:: @ 081004FE - .incbin "baserom.gba", 0x1004FE, 0x0000012 - -gUnk_08100510:: @ 08100510 - .incbin "baserom.gba", 0x100510, 0x0000001 - -gUnk_08100511:: @ 08100511 - .incbin "baserom.gba", 0x100511, 0x0000003 - -gUnk_08100514:: @ 08100514 - .incbin "baserom.gba", 0x100514, 0x000000C - -gUnk_08100520:: @ 08100520 - .incbin "baserom.gba", 0x100520, 0x0000021 - -gUnk_08100541:: @ 08100541 - .incbin "baserom.gba", 0x100541, 0x000000F - -gUnk_08100550:: @ 08100550 - .incbin "baserom.gba", 0x100550, 0x0000030 - -gUnk_08100580:: @ 08100580 - .incbin "baserom.gba", 0x100580, 0x0000030 - -gUnk_081005B0:: @ 081005B0 - .incbin "baserom.gba", 0x1005B0, 0x0000030 - -gUnk_081005E0:: @ 081005E0 - .incbin "baserom.gba", 0x1005E0, 0x000001B - -gUnk_081005FB:: @ 081005FB - .incbin "baserom.gba", 0x1005FB, 0x0000004 - -gUnk_081005FF:: @ 081005FF - .incbin "baserom.gba", 0x1005FF, 0x0000001 - -gUnk_08100600:: @ 08100600 - .incbin "baserom.gba", 0x100600, 0x0000005 - -gUnk_08100605:: @ 08100605 - .incbin "baserom.gba", 0x100605, 0x0000001 - -gUnk_08100606:: @ 08100606 - .incbin "baserom.gba", 0x100606, 0x000000A - -gUnk_08100610:: @ 08100610 - .incbin "baserom.gba", 0x100610, 0x0000010 - -gUnk_08100620:: @ 08100620 - .incbin "baserom.gba", 0x100620, 0x0000020 - -gUnk_08100640:: @ 08100640 - .incbin "baserom.gba", 0x100640, 0x0000030 - -gUnk_08100670:: @ 08100670 - .incbin "baserom.gba", 0x100670, 0x0000011 - -gUnk_08100681:: @ 08100681 - .incbin "baserom.gba", 0x100681, 0x000001F - -gUnk_081006A0:: @ 081006A0 - .incbin "baserom.gba", 0x1006A0, 0x0000030 - -gUnk_081006D0:: @ 081006D0 - .incbin "baserom.gba", 0x1006D0, 0x0000030 - -gUnk_08100700:: @ 08100700 - .incbin "baserom.gba", 0x100700, 0x0000010 - -gUnk_08100710:: @ 08100710 - .incbin "baserom.gba", 0x100710, 0x0000010 - -gUnk_08100720:: @ 08100720 - .incbin "baserom.gba", 0x100720, 0x0000010 - -gUnk_08100730:: @ 08100730 - .incbin "baserom.gba", 0x100730, 0x0000010 - -gUnk_08100740:: @ 08100740 - .incbin "baserom.gba", 0x100740, 0x0000010 - -gUnk_08100750:: @ 08100750 - .incbin "baserom.gba", 0x100750, 0x0000010 - -gUnk_08100760:: @ 08100760 - .incbin "baserom.gba", 0x100760, 0x0000020 - -gUnk_08100780:: @ 08100780 - .incbin "baserom.gba", 0x100780, 0x0000001 - -gUnk_08100781:: @ 08100781 - .incbin "baserom.gba", 0x100781, 0x000000F - -gUnk_08100790:: @ 08100790 - .incbin "baserom.gba", 0x100790, 0x0000030 - -gUnk_081007C0:: @ 081007C0 - .incbin "baserom.gba", 0x1007C0, 0x0000020 - -gUnk_081007E0:: @ 081007E0 - .incbin "baserom.gba", 0x1007E0, 0x0000010 - -gUnk_081007F0:: @ 081007F0 - .incbin "baserom.gba", 0x1007F0, 0x000000E - -gUnk_081007FE:: @ 081007FE - .incbin "baserom.gba", 0x1007FE, 0x0000001 - -gUnk_081007FF:: @ 081007FF - .incbin "baserom.gba", 0x1007FF, 0x0000001 - -gUnk_08100800:: @ 08100800 - .incbin "baserom.gba", 0x100800, 0x0000004 - -gUnk_08100804:: @ 08100804 - .incbin "baserom.gba", 0x100804, 0x0000005 - -gUnk_08100809:: @ 08100809 - .incbin "baserom.gba", 0x100809, 0x0000007 - -gUnk_08100810:: @ 08100810 - .incbin "baserom.gba", 0x100810, 0x0000003 - -gUnk_08100813:: @ 08100813 - .incbin "baserom.gba", 0x100813, 0x000000D - -gUnk_08100820:: @ 08100820 - .incbin "baserom.gba", 0x100820, 0x0000021 - -gUnk_08100841:: @ 08100841 - .incbin "baserom.gba", 0x100841, 0x000000F - -gUnk_08100850:: @ 08100850 - .incbin "baserom.gba", 0x100850, 0x0000030 - -gUnk_08100880:: @ 08100880 - .incbin "baserom.gba", 0x100880, 0x0000001 - -gUnk_08100881:: @ 08100881 - .incbin "baserom.gba", 0x100881, 0x000002F - -gUnk_081008B0:: @ 081008B0 - .incbin "baserom.gba", 0x1008B0, 0x0000030 - -gUnk_081008E0:: @ 081008E0 - .incbin "baserom.gba", 0x1008E0, 0x0000023 - -gUnk_08100903:: @ 08100903 - .incbin "baserom.gba", 0x100903, 0x0000001 - -gUnk_08100904:: @ 08100904 - .incbin "baserom.gba", 0x100904, 0x000000C - -gUnk_08100910:: @ 08100910 - .incbin "baserom.gba", 0x100910, 0x0000030 - -gUnk_08100940:: @ 08100940 - .incbin "baserom.gba", 0x100940, 0x0000030 - -gUnk_08100970:: @ 08100970 - .incbin "baserom.gba", 0x100970, 0x000003C - -gUnk_081009AC:: @ 081009AC - .incbin "baserom.gba", 0x1009AC, 0x000000C - -gUnk_081009B8:: @ 081009B8 - .incbin "baserom.gba", 0x1009B8, 0x000000C - -gUnk_081009C4:: @ 081009C4 - .incbin "baserom.gba", 0x1009C4, 0x000000C - -gUnk_081009D0:: @ 081009D0 - .incbin "baserom.gba", 0x1009D0, 0x0000009 - -gUnk_081009D9:: @ 081009D9 - .incbin "baserom.gba", 0x1009D9, 0x0000003 - -gUnk_081009DC:: @ 081009DC - .incbin "baserom.gba", 0x1009DC, 0x000000C - -gUnk_081009E8:: @ 081009E8 - .incbin "baserom.gba", 0x1009E8, 0x0000005 - -gUnk_081009ED:: @ 081009ED - .incbin "baserom.gba", 0x1009ED, 0x0000007 - -gUnk_081009F4:: @ 081009F4 - .incbin "baserom.gba", 0x1009F4, 0x000000C - -gUnk_08100A00:: @ 08100A00 - .incbin "baserom.gba", 0x100A00, 0x0000006 - -gUnk_08100A06:: @ 08100A06 - .incbin "baserom.gba", 0x100A06, 0x0000004 - -gUnk_08100A0A:: @ 08100A0A - .incbin "baserom.gba", 0x100A0A, 0x0000002 - -gUnk_08100A0C:: @ 08100A0C - .incbin "baserom.gba", 0x100A0C, 0x0000005 - -gUnk_08100A11:: @ 08100A11 - .incbin "baserom.gba", 0x100A11, 0x000001F - -gUnk_08100A30:: @ 08100A30 - .incbin "baserom.gba", 0x100A30, 0x0000054 - -gUnk_08100A84:: @ 08100A84 - .incbin "baserom.gba", 0x100A84, 0x000000C - -gUnk_08100A90:: @ 08100A90 - .incbin "baserom.gba", 0x100A90, 0x000000C - -gUnk_08100A9C:: @ 08100A9C - .incbin "baserom.gba", 0x100A9C, 0x000000C - -gUnk_08100AA8:: @ 08100AA8 - .incbin "baserom.gba", 0x100AA8, 0x000005F - -gUnk_08100B07:: @ 08100B07 - .incbin "baserom.gba", 0x100B07, 0x0000009 - -gUnk_08100B10:: @ 08100B10 - .incbin "baserom.gba", 0x100B10, 0x0000004 - -gUnk_08100B14:: @ 08100B14 - .incbin "baserom.gba", 0x100B14, 0x00000DC - -gUnk_08100BF0:: @ 08100BF0 - .incbin "baserom.gba", 0x100BF0, 0x000000D - -gUnk_08100BFD:: @ 08100BFD - .incbin "baserom.gba", 0x100BFD, 0x0000004 - -gUnk_08100C01:: @ 08100C01 - .incbin "baserom.gba", 0x100C01, 0x0000001 - -gUnk_08100C02:: @ 08100C02 - .incbin "baserom.gba", 0x100C02, 0x000007F - -gUnk_08100C81:: @ 08100C81 - .incbin "baserom.gba", 0x100C81, 0x000003B diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s new file mode 100644 index 00000000..4b2d84c6 --- /dev/null +++ b/data/data_080FC8A4.s @@ -0,0 +1,1928 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_080FC8D0:: @ 080FC8D0 + .incbin "baserom.gba", 0x0FC8D0, 0x000000E + +gUnk_080FC8DE:: @ 080FC8DE + .incbin "baserom.gba", 0x0FC8DE, 0x000001E + +sFileSelectDefaultHandlers:: @ 080FC8FC + .incbin "baserom.gba", 0x0FC8FC, 0x0000007 + +gUnk_080FC903:: @ 080FC903 + .incbin "baserom.gba", 0x0FC903, 0x0000005 + +gUnk_080FC908:: @ 080FC908 + .incbin "baserom.gba", 0x0FC908, 0x000000C + +gUnk_080FC914:: @ 080FC914 + .incbin "baserom.gba", 0x0FC914, 0x0000028 + +gUnk_080FC93C:: @ 080FC93C + .incbin "baserom.gba", 0x0FC93C, 0x0000008 + +gUnk_080FC944:: @ 080FC944 + .incbin "baserom.gba", 0x0FC944, 0x000000C + +gUnk_080FC950:: @ 080FC950 + .incbin "baserom.gba", 0x0FC950, 0x0000010 + +gUnk_080FC960:: @ 080FC960 + .incbin "baserom.gba", 0x0FC960, 0x0000010 + +gUnk_080FC970:: @ 080FC970 + .incbin "baserom.gba", 0x0FC970, 0x0000010 + +gUnk_080FC980:: @ 080FC980 + .incbin "baserom.gba", 0x0FC980, 0x0000020 + +gUnk_080FC9A0:: @ 080FC9A0 + .incbin "baserom.gba", 0x0FC9A0, 0x0000010 + +gUnk_080FC9B0:: @ 080FC9B0 + .incbin "baserom.gba", 0x0FC9B0, 0x000000C + +gUnk_080FC9BC:: @ 080FC9BC + .incbin "baserom.gba", 0x0FC9BC, 0x000000C + +gUnk_080FC9C8:: @ 080FC9C8 + .incbin "baserom.gba", 0x0FC9C8, 0x0000010 + +gUnk_080FC9D8:: @ 080FC9D8 + .incbin "baserom.gba", 0x0FC9D8, 0x0000010 + +gUnk_080FC9E8:: @ 080FC9E8 + .incbin "baserom.gba", 0x0FC9E8, 0x0000020 + +gUnk_080FCA08:: @ 080FCA08 + .incbin "baserom.gba", 0x0FCA08, 0x000000C + +gUnk_080FCA14:: @ 080FCA14 + .incbin "baserom.gba", 0x0FCA14, 0x000000C + +gUnk_080FCA20:: @ 080FCA20 + .incbin "baserom.gba", 0x0FCA20, 0x0000050 + +gUnk_080FCA70:: @ 080FCA70 + .incbin "baserom.gba", 0x0FCA70, 0x0000014 + +gUnk_080FCA84:: @ 080FCA84 + .incbin "baserom.gba", 0x0FCA84, 0x0000008 + +gUnk_080FCA8C:: @ 080FCA8C + .incbin "baserom.gba", 0x0FCA8C, 0x0000018 + +gUnk_080FCAA4:: @ 080FCAA4 + .incbin "baserom.gba", 0x0FCAA4, 0x0000024 + +gUnk_080FCAC8:: @ 080FCAC8 + .incbin "baserom.gba", 0x0FCAC8, 0x000000E + +gUnk_080FCAD6:: @ 080FCAD6 + .incbin "baserom.gba", 0x0FCAD6, 0x0000022 + +gUnk_080FCAF8:: @ 080FCAF8 + .incbin "baserom.gba", 0x0FCAF8, 0x0000020 + +gUnk_080FCB18:: @ 080FCB18 + .incbin "baserom.gba", 0x0FCB18, 0x0000020 + +gUnk_080FCB38:: @ 080FCB38 + .incbin "baserom.gba", 0x0FCB38, 0x000002A + +gUnk_080FCB62:: @ 080FCB62 + .incbin "baserom.gba", 0x0FCB62, 0x0000032 + +gUnk_080FCB94:: @ 080FCB94 + .incbin "baserom.gba", 0x0FCB94, 0x0000020 + +gUnk_080FCBB4:: @ 080FCBB4 + .incbin "baserom.gba", 0x0FCBB4, 0x0000010 + +gUnk_080FCBC4:: @ 080FCBC4 + .incbin "baserom.gba", 0x0FCBC4, 0x0000050 + +gUnk_080FCC14:: @ 080FCC14 + .incbin "baserom.gba", 0x0FCC14, 0x0000040 + +gUnk_080FCC54:: @ 080FCC54 + .incbin "baserom.gba", 0x0FCC54, 0x0000030 + +gUnk_080FCC84:: @ 080FCC84 + .incbin "baserom.gba", 0x0FCC84, 0x0000018 + +gUnk_080FCC9C:: @ 080FCC9C + .incbin "baserom.gba", 0x0FCC9C, 0x0000018 + +gUnk_080FCCB4:: @ 080FCCB4 + .incbin "baserom.gba", 0x0FCCB4, 0x0000048 + +gUnk_080FCCFC:: @ 080FCCFC + .incbin "baserom.gba", 0x0FCCFC, 0x000003C + +gUnk_080FCD38:: @ 080FCD38 + .incbin "baserom.gba", 0x0FCD38, 0x0000008 + +gUnk_080FCD40:: @ 080FCD40 + .incbin "baserom.gba", 0x0FCD40, 0x0000044 + +gUnk_080FCD84:: @ 080FCD84 + .incbin "baserom.gba", 0x0FCD84, 0x0000050 + +gUnk_080FCDD4:: @ 080FCDD4 + .incbin "baserom.gba", 0x0FCDD4, 0x000000C + +gUnk_080FCDE0:: @ 080FCDE0 + .incbin "baserom.gba", 0x0FCDE0, 0x0000050 + +gUnk_080FCE30:: @ 080FCE30 + .incbin "baserom.gba", 0x0FCE30, 0x0000080 + +gUnk_080FCEB0:: @ 080FCEB0 + .incbin "baserom.gba", 0x0FCEB0, 0x000000C + +gUnk_080FCEBC:: @ 080FCEBC + .incbin "baserom.gba", 0x0FCEBC, 0x0000030 + +gUnk_080FCEEC:: @ 080FCEEC + .incbin "baserom.gba", 0x0FCEEC, 0x000000C + +gUnk_080FCEF8:: @ 080FCEF8 + .incbin "baserom.gba", 0x0FCEF8, 0x000000C + +gUnk_080FCF04:: @ 080FCF04 + .incbin "baserom.gba", 0x0FCF04, 0x0000020 + +gUnk_080FCF24:: @ 080FCF24 + .incbin "baserom.gba", 0x0FCF24, 0x0000020 + +gUnk_080FCF44:: @ 080FCF44 + .incbin "baserom.gba", 0x0FCF44, 0x0000020 + +gUnk_080FCF64:: @ 080FCF64 + .incbin "baserom.gba", 0x0FCF64, 0x0000020 + +gUnk_080FCF84:: @ 080FCF84 + .incbin "baserom.gba", 0x0FCF84, 0x0000020 + +gUnk_080FCFA4:: @ 080FCFA4 + .incbin "baserom.gba", 0x0FCFA4, 0x0000014 + +gUnk_080FCFB8:: @ 080FCFB8 + .incbin "baserom.gba", 0x0FCFB8, 0x0000030 + +gUnk_080FCFE8:: @ 080FCFE8 + .incbin "baserom.gba", 0x0FCFE8, 0x0000020 + +gUnk_080FD008:: @ 080FD008 + .incbin "baserom.gba", 0x0FD008, 0x0000020 + +gUnk_080FD028:: @ 080FD028 + .incbin "baserom.gba", 0x0FD028, 0x0000020 + +gUnk_080FD048:: @ 080FD048 + .incbin "baserom.gba", 0x0FD048, 0x0000030 + +gUnk_080FD078:: @ 080FD078 + .incbin "baserom.gba", 0x0FD078, 0x0000020 + +gUnk_080FD098:: @ 080FD098 + .incbin "baserom.gba", 0x0FD098, 0x0000030 + +gUnk_080FD0C8:: @ 080FD0C8 + .incbin "baserom.gba", 0x0FD0C8, 0x0000020 + +gUnk_080FD0E8:: @ 080FD0E8 + .incbin "baserom.gba", 0x0FD0E8, 0x0000020 + +gUnk_080FD108:: @ 080FD108 + .incbin "baserom.gba", 0x0FD108, 0x0000030 + +gUnk_080FD138:: @ 080FD138 + .incbin "baserom.gba", 0x0FD138, 0x0000018 + +gUnk_080FD150:: @ 080FD150 + .incbin "baserom.gba", 0x0FD150, 0x0000008 + +gUnk_080FD158:: @ 080FD158 + .incbin "baserom.gba", 0x0FD158, 0x0000008 + +gUnk_080FD160:: @ 080FD160 + .incbin "baserom.gba", 0x0FD160, 0x0000008 + +gUnk_080FD168:: @ 080FD168 + .incbin "baserom.gba", 0x0FD168, 0x0000008 + +gUnk_080FD170:: @ 080FD170 + .incbin "baserom.gba", 0x0FD170, 0x0000008 + +gUnk_080FD178:: @ 080FD178 + .incbin "baserom.gba", 0x0FD178, 0x0000008 + +gUnk_080FD180:: @ 080FD180 + .incbin "baserom.gba", 0x0FD180, 0x0000008 + +gUnk_080FD188:: @ 080FD188 + .incbin "baserom.gba", 0x0FD188, 0x0000008 + +gUnk_080FD190:: @ 080FD190 + .incbin "baserom.gba", 0x0FD190, 0x0000008 + +gUnk_080FD198:: @ 080FD198 + .incbin "baserom.gba", 0x0FD198, 0x0000008 + +gUnk_080FD1A0:: @ 080FD1A0 + .incbin "baserom.gba", 0x0FD1A0, 0x0000008 + +gUnk_080FD1A8:: @ 080FD1A8 + .incbin "baserom.gba", 0x0FD1A8, 0x000000C + +gUnk_080FD1B4:: @ 080FD1B4 + .incbin "baserom.gba", 0x0FD1B4, 0x0000010 + +gUnk_080FD1C4:: @ 080FD1C4 + .incbin "baserom.gba", 0x0FD1C4, 0x0000008 + +gUnk_080FD1CC:: @ 080FD1CC + .incbin "baserom.gba", 0x0FD1CC, 0x0000008 + +gUnk_080FD1D4:: @ 080FD1D4 + .incbin "baserom.gba", 0x0FD1D4, 0x0000008 + +gUnk_080FD1DC:: @ 080FD1DC + .incbin "baserom.gba", 0x0FD1DC, 0x0000008 + +gUnk_080FD1E4:: @ 080FD1E4 + .incbin "baserom.gba", 0x0FD1E4, 0x0000008 + +gUnk_080FD1EC:: @ 080FD1EC + .incbin "baserom.gba", 0x0FD1EC, 0x0000008 + +gUnk_080FD1F4:: @ 080FD1F4 + .incbin "baserom.gba", 0x0FD1F4, 0x0000008 + +gUnk_080FD1FC:: @ 080FD1FC + .incbin "baserom.gba", 0x0FD1FC, 0x0000008 + +gUnk_080FD204:: @ 080FD204 + .incbin "baserom.gba", 0x0FD204, 0x0000008 + +gUnk_080FD20C:: @ 080FD20C + .incbin "baserom.gba", 0x0FD20C, 0x0000008 + +gUnk_080FD214:: @ 080FD214 + .incbin "baserom.gba", 0x0FD214, 0x0000008 + +gUnk_080FD21C:: @ 080FD21C + .incbin "baserom.gba", 0x0FD21C, 0x0000008 + +gUnk_080FD224:: @ 080FD224 + .incbin "baserom.gba", 0x0FD224, 0x0000008 + +gUnk_080FD22C:: @ 080FD22C + .incbin "baserom.gba", 0x0FD22C, 0x000000C + +gUnk_080FD238:: @ 080FD238 + .incbin "baserom.gba", 0x0FD238, 0x0000008 + +gUnk_080FD240:: @ 080FD240 + .incbin "baserom.gba", 0x0FD240, 0x0000008 + +gUnk_080FD248:: @ 080FD248 + .incbin "baserom.gba", 0x0FD248, 0x0000008 + +gUnk_080FD250:: @ 080FD250 + .incbin "baserom.gba", 0x0FD250, 0x0000008 + +gUnk_080FD258:: @ 080FD258 + .incbin "baserom.gba", 0x0FD258, 0x0000008 + +gUnk_080FD260:: @ 080FD260 + .incbin "baserom.gba", 0x0FD260, 0x0000008 + +gUnk_080FD268:: @ 080FD268 + .incbin "baserom.gba", 0x0FD268, 0x0000008 + +gUnk_080FD270:: @ 080FD270 + .incbin "baserom.gba", 0x0FD270, 0x0000008 + +gUnk_080FD278:: @ 080FD278 + .incbin "baserom.gba", 0x0FD278, 0x0000008 + +gUnk_080FD280:: @ 080FD280 + .incbin "baserom.gba", 0x0FD280, 0x0000008 + +gUnk_080FD288:: @ 080FD288 + .incbin "baserom.gba", 0x0FD288, 0x0000008 + +gUnk_080FD290:: @ 080FD290 + .incbin "baserom.gba", 0x0FD290, 0x0000008 + +gUnk_080FD298:: @ 080FD298 + .incbin "baserom.gba", 0x0FD298, 0x0000008 + +gUnk_080FD2A0:: @ 080FD2A0 + .incbin "baserom.gba", 0x0FD2A0, 0x0000008 + +gUnk_080FD2A8:: @ 080FD2A8 + .incbin "baserom.gba", 0x0FD2A8, 0x0000008 + +gUnk_080FD2B0:: @ 080FD2B0 + .incbin "baserom.gba", 0x0FD2B0, 0x0000008 + +gUnk_080FD2B8:: @ 080FD2B8 + .incbin "baserom.gba", 0x0FD2B8, 0x0000008 + +gUnk_080FD2C0:: @ 080FD2C0 + .incbin "baserom.gba", 0x0FD2C0, 0x0000008 + +gUnk_080FD2C8:: @ 080FD2C8 + .incbin "baserom.gba", 0x0FD2C8, 0x0000008 + +gUnk_080FD2D0:: @ 080FD2D0 + .incbin "baserom.gba", 0x0FD2D0, 0x0000008 + +gUnk_080FD2D8:: @ 080FD2D8 + .incbin "baserom.gba", 0x0FD2D8, 0x0000008 + +gUnk_080FD2E0:: @ 080FD2E0 + .incbin "baserom.gba", 0x0FD2E0, 0x0000008 + +gUnk_080FD2E8:: @ 080FD2E8 + .incbin "baserom.gba", 0x0FD2E8, 0x0000008 + +gUnk_080FD2F0:: @ 080FD2F0 + .incbin "baserom.gba", 0x0FD2F0, 0x0000008 + +gUnk_080FD2F8:: @ 080FD2F8 + .incbin "baserom.gba", 0x0FD2F8, 0x0000008 + +gUnk_080FD300:: @ 080FD300 + .incbin "baserom.gba", 0x0FD300, 0x0000008 + +gUnk_080FD308:: @ 080FD308 + .incbin "baserom.gba", 0x0FD308, 0x0000008 + +gUnk_080FD310:: @ 080FD310 + .incbin "baserom.gba", 0x0FD310, 0x0000008 + +gUnk_080FD318:: @ 080FD318 + .incbin "baserom.gba", 0x0FD318, 0x0000008 + +gUnk_080FD320:: @ 080FD320 + .incbin "baserom.gba", 0x0FD320, 0x0000008 + +gUnk_080FD328:: @ 080FD328 + .incbin "baserom.gba", 0x0FD328, 0x0000008 + +gUnk_080FD330:: @ 080FD330 + .incbin "baserom.gba", 0x0FD330, 0x0000008 + +gUnk_080FD338:: @ 080FD338 + .incbin "baserom.gba", 0x0FD338, 0x0000008 + +gUnk_080FD340:: @ 080FD340 + .incbin "baserom.gba", 0x0FD340, 0x000000C + +gUnk_080FD34C:: @ 080FD34C + .incbin "baserom.gba", 0x0FD34C, 0x0000008 + +gUnk_080FD354:: @ 080FD354 + .incbin "baserom.gba", 0x0FD354, 0x0000008 + +gUnk_080FD35C:: @ 080FD35C + .incbin "baserom.gba", 0x0FD35C, 0x0000008 + +gUnk_080FD364:: @ 080FD364 + .incbin "baserom.gba", 0x0FD364, 0x0000008 + +gUnk_080FD36C:: @ 080FD36C + .incbin "baserom.gba", 0x0FD36C, 0x0000008 + +gUnk_080FD374:: @ 080FD374 + .incbin "baserom.gba", 0x0FD374, 0x0000008 + +gUnk_080FD37C:: @ 080FD37C + .incbin "baserom.gba", 0x0FD37C, 0x0000008 + +gUnk_080FD384:: @ 080FD384 + .incbin "baserom.gba", 0x0FD384, 0x0000008 + +gUnk_080FD38C:: @ 080FD38C + .incbin "baserom.gba", 0x0FD38C, 0x0000008 + +gUnk_080FD394:: @ 080FD394 + .incbin "baserom.gba", 0x0FD394, 0x0000008 + +gUnk_080FD39C:: @ 080FD39C + .incbin "baserom.gba", 0x0FD39C, 0x0000008 + +gUnk_080FD3A4:: @ 080FD3A4 + .incbin "baserom.gba", 0x0FD3A4, 0x0000008 + +gUnk_080FD3AC:: @ 080FD3AC + .incbin "baserom.gba", 0x0FD3AC, 0x0000008 + +gUnk_080FD3B4:: @ 080FD3B4 + .incbin "baserom.gba", 0x0FD3B4, 0x0000008 + +gUnk_080FD3BC:: @ 080FD3BC + .incbin "baserom.gba", 0x0FD3BC, 0x0000008 + +gUnk_080FD3C4:: @ 080FD3C4 + .incbin "baserom.gba", 0x0FD3C4, 0x0000008 + +gUnk_080FD3CC:: @ 080FD3CC + .incbin "baserom.gba", 0x0FD3CC, 0x0000010 + +gUnk_080FD3DC:: @ 080FD3DC + .incbin "baserom.gba", 0x0FD3DC, 0x0000008 + +gUnk_080FD3E4:: @ 080FD3E4 + .incbin "baserom.gba", 0x0FD3E4, 0x0000008 + +gUnk_080FD3EC:: @ 080FD3EC + .incbin "baserom.gba", 0x0FD3EC, 0x0000008 + +gUnk_080FD3F4:: @ 080FD3F4 + .incbin "baserom.gba", 0x0FD3F4, 0x0000008 + +gUnk_080FD3FC:: @ 080FD3FC + .incbin "baserom.gba", 0x0FD3FC, 0x000000C + +gUnk_080FD408:: @ 080FD408 + .incbin "baserom.gba", 0x0FD408, 0x0000008 + +gUnk_080FD410:: @ 080FD410 + .incbin "baserom.gba", 0x0FD410, 0x000000C + +gUnk_080FD41C:: @ 080FD41C + .incbin "baserom.gba", 0x0FD41C, 0x0000008 + +gUnk_080FD424:: @ 080FD424 + .incbin "baserom.gba", 0x0FD424, 0x0000008 + +gUnk_080FD42C:: @ 080FD42C + .incbin "baserom.gba", 0x0FD42C, 0x0000008 + +gUnk_080FD434:: @ 080FD434 + .incbin "baserom.gba", 0x0FD434, 0x0000008 + +gUnk_080FD43C:: @ 080FD43C + .incbin "baserom.gba", 0x0FD43C, 0x000000C + +gUnk_080FD448:: @ 080FD448 + .incbin "baserom.gba", 0x0FD448, 0x0000008 + +gUnk_080FD450:: @ 080FD450 + .incbin "baserom.gba", 0x0FD450, 0x0000008 + +gUnk_080FD458:: @ 080FD458 + .incbin "baserom.gba", 0x0FD458, 0x0000008 + +gUnk_080FD460:: @ 080FD460 + .incbin "baserom.gba", 0x0FD460, 0x0000008 + +gUnk_080FD468:: @ 080FD468 + .incbin "baserom.gba", 0x0FD468, 0x0000008 + +gUnk_080FD470:: @ 080FD470 + .incbin "baserom.gba", 0x0FD470, 0x0000010 + +gUnk_080FD480:: @ 080FD480 + .incbin "baserom.gba", 0x0FD480, 0x0000008 + +gUnk_080FD488:: @ 080FD488 + .incbin "baserom.gba", 0x0FD488, 0x0000008 + +gUnk_080FD490:: @ 080FD490 + .incbin "baserom.gba", 0x0FD490, 0x0000008 + +gUnk_080FD498:: @ 080FD498 + .incbin "baserom.gba", 0x0FD498, 0x000000C + +gUnk_080FD4A4:: @ 080FD4A4 + .incbin "baserom.gba", 0x0FD4A4, 0x0000014 + +gUnk_080FD4B8:: @ 080FD4B8 + .incbin "baserom.gba", 0x0FD4B8, 0x0000008 + +gUnk_080FD4C0:: @ 080FD4C0 + .incbin "baserom.gba", 0x0FD4C0, 0x0000008 + +gUnk_080FD4C8:: @ 080FD4C8 + .incbin "baserom.gba", 0x0FD4C8, 0x0000008 + +gUnk_080FD4D0:: @ 080FD4D0 + .incbin "baserom.gba", 0x0FD4D0, 0x0000008 + +gUnk_080FD4D8:: @ 080FD4D8 + .incbin "baserom.gba", 0x0FD4D8, 0x0000008 + +gUnk_080FD4E0:: @ 080FD4E0 + .incbin "baserom.gba", 0x0FD4E0, 0x0000008 + +gUnk_080FD4E8:: @ 080FD4E8 + .incbin "baserom.gba", 0x0FD4E8, 0x0000008 + +gUnk_080FD4F0:: @ 080FD4F0 + .incbin "baserom.gba", 0x0FD4F0, 0x0000008 + +gUnk_080FD4F8:: @ 080FD4F8 + .incbin "baserom.gba", 0x0FD4F8, 0x0000008 + +gUnk_080FD500:: @ 080FD500 + .incbin "baserom.gba", 0x0FD500, 0x0000008 + +gUnk_080FD508:: @ 080FD508 + .incbin "baserom.gba", 0x0FD508, 0x0000008 + +gUnk_080FD510:: @ 080FD510 + .incbin "baserom.gba", 0x0FD510, 0x0000008 + +gUnk_080FD518:: @ 080FD518 + .incbin "baserom.gba", 0x0FD518, 0x0000008 + +gUnk_080FD520:: @ 080FD520 + .incbin "baserom.gba", 0x0FD520, 0x0000008 + +gUnk_080FD528:: @ 080FD528 + .incbin "baserom.gba", 0x0FD528, 0x0000008 + +gUnk_080FD530:: @ 080FD530 + .incbin "baserom.gba", 0x0FD530, 0x0000008 + +gUnk_080FD538:: @ 080FD538 + .incbin "baserom.gba", 0x0FD538, 0x000000C + +gUnk_080FD544:: @ 080FD544 + .incbin "baserom.gba", 0x0FD544, 0x0000008 + +gUnk_080FD54C:: @ 080FD54C + .incbin "baserom.gba", 0x0FD54C, 0x000000C + +gUnk_080FD558:: @ 080FD558 + .incbin "baserom.gba", 0x0FD558, 0x0000008 + +gUnk_080FD560:: @ 080FD560 + .incbin "baserom.gba", 0x0FD560, 0x0000008 + +gUnk_080FD568:: @ 080FD568 + .incbin "baserom.gba", 0x0FD568, 0x0000008 + +gUnk_080FD570:: @ 080FD570 + .incbin "baserom.gba", 0x0FD570, 0x0000008 + +gUnk_080FD578:: @ 080FD578 + .incbin "baserom.gba", 0x0FD578, 0x0000008 + +gUnk_080FD580:: @ 080FD580 + .incbin "baserom.gba", 0x0FD580, 0x0000008 + +gUnk_080FD588:: @ 080FD588 + .incbin "baserom.gba", 0x0FD588, 0x0000008 + +gWalletSizes:: @ 080FD590 + .incbin "baserom.gba", 0x0FD590, 0x0000010 + +gBombBagSizes:: @ 080FD5A0 + .incbin "baserom.gba", 0x0FD5A0, 0x0000004 + +gQuiverSizes:: @ 080FD5A4 + .incbin "baserom.gba", 0x0FD5A4, 0x0000004 + +gUnk_080FD5A8:: @ 080FD5A8 + .incbin "baserom.gba", 0x0FD5A8, 0x000000C + +gUnk_080FD5B4:: @ 080FD5B4 + .incbin "baserom.gba", 0x0FD5B4, 0x00003B0 + +gUnk_080FD964:: @ 080FD964 + .incbin "baserom.gba", 0x0FD964, 0x00003B0 + +gUnk_080FDD14:: @ 080FDD14 + .incbin "baserom.gba", 0x0FDD14, 0x0000005 + +gUnk_080FDD19:: @ 080FDD19 + .incbin "baserom.gba", 0x0FDD19, 0x0000005 + +gUnk_080FDD1E:: @ 080FDD1E + .incbin "baserom.gba", 0x0FDD1E, 0x0000005 + +gUnk_080FDD23:: @ 080FDD23 + .incbin "baserom.gba", 0x0FDD23, 0x0000005 + +gUnk_080FDD28:: @ 080FDD28 + .incbin "baserom.gba", 0x0FDD28, 0x0000005 + +gUnk_080FDD2D:: @ 080FDD2D + .incbin "baserom.gba", 0x0FDD2D, 0x0000005 + +gUnk_080FDD32:: @ 080FDD32 + .incbin "baserom.gba", 0x0FDD32, 0x0000005 + +gUnk_080FDD37:: @ 080FDD37 + .incbin "baserom.gba", 0x0FDD37, 0x0000011 + +gUnk_080FDD48:: @ 080FDD48 + .incbin "baserom.gba", 0x0FDD48, 0x0000005 + +gUnk_080FDD4D:: @ 080FDD4D + .incbin "baserom.gba", 0x0FDD4D, 0x0000005 + +gUnk_080FDD52:: @ 080FDD52 + .incbin "baserom.gba", 0x0FDD52, 0x0000005 + +gUnk_080FDD57:: @ 080FDD57 + .incbin "baserom.gba", 0x0FDD57, 0x0000005 + +gUnk_080FDD5C:: @ 080FDD5C + .incbin "baserom.gba", 0x0FDD5C, 0x0000005 + +gUnk_080FDD61:: @ 080FDD61 + .incbin "baserom.gba", 0x0FDD61, 0x0000031 + +gUnk_080FDD92:: @ 080FDD92 + .incbin "baserom.gba", 0x0FDD92, 0x0000005 + +gUnk_080FDD97:: @ 080FDD97 + .incbin "baserom.gba", 0x0FDD97, 0x0000011 + +gUnk_080FDDA8:: @ 080FDDA8 + .incbin "baserom.gba", 0x0FDDA8, 0x0000005 + +gUnk_080FDDAD:: @ 080FDDAD + .incbin "baserom.gba", 0x0FDDAD, 0x0000005 + +gUnk_080FDDB2:: @ 080FDDB2 + .incbin "baserom.gba", 0x0FDDB2, 0x0000005 + +gUnk_080FDDB7:: @ 080FDDB7 + .incbin "baserom.gba", 0x0FDDB7, 0x0000005 + +gUnk_080FDDBC:: @ 080FDDBC + .incbin "baserom.gba", 0x0FDDBC, 0x0000005 + +gUnk_080FDDC1:: @ 080FDDC1 + .incbin "baserom.gba", 0x0FDDC1, 0x0000005 + +gUnk_080FDDC6:: @ 080FDDC6 + .incbin "baserom.gba", 0x0FDDC6, 0x0000005 + +gUnk_080FDDCB:: @ 080FDDCB + .incbin "baserom.gba", 0x0FDDCB, 0x0000005 + +gUnk_080FDDD0:: @ 080FDDD0 + .incbin "baserom.gba", 0x0FDDD0, 0x0000005 + +gUnk_080FDDD5:: @ 080FDDD5 + .incbin "baserom.gba", 0x0FDDD5, 0x0000005 + +gUnk_080FDDDA:: @ 080FDDDA + .incbin "baserom.gba", 0x0FDDDA, 0x0000005 + +gUnk_080FDDDF:: @ 080FDDDF + .incbin "baserom.gba", 0x0FDDDF, 0x0000005 + +gUnk_080FDDE4:: @ 080FDDE4 + .incbin "baserom.gba", 0x0FDDE4, 0x0000011 + +gUnk_080FDDF5:: @ 080FDDF5 + .incbin "baserom.gba", 0x0FDDF5, 0x0000019 + +gUnk_080FDE0E:: @ 080FDE0E + .incbin "baserom.gba", 0x0FDE0E, 0x0000019 + +gUnk_080FDE27:: @ 080FDE27 + .incbin "baserom.gba", 0x0FDE27, 0x0000019 + +gUnk_080FDE40:: @ 080FDE40 + .incbin "baserom.gba", 0x0FDE40, 0x0000019 + +gUnk_080FDE59:: @ 080FDE59 + .incbin "baserom.gba", 0x0FDE59, 0x0000019 + +gUnk_080FDE72:: @ 080FDE72 + .incbin "baserom.gba", 0x0FDE72, 0x0000019 + +gUnk_080FDE8B:: @ 080FDE8B + .incbin "baserom.gba", 0x0FDE8B, 0x0000005 + +gUnk_080FDE90:: @ 080FDE90 + .incbin "baserom.gba", 0x0FDE90, 0x0000005 + +gUnk_080FDE95:: @ 080FDE95 + .incbin "baserom.gba", 0x0FDE95, 0x0000005 + +gUnk_080FDE9A:: @ 080FDE9A + .incbin "baserom.gba", 0x0FDE9A, 0x0000005 + +gUnk_080FDE9F:: @ 080FDE9F + .incbin "baserom.gba", 0x0FDE9F, 0x0000005 + +gUnk_080FDEA4:: @ 080FDEA4 + .incbin "baserom.gba", 0x0FDEA4, 0x0000005 + +gUnk_080FDEA9:: @ 080FDEA9 + .incbin "baserom.gba", 0x0FDEA9, 0x0000005 + +gUnk_080FDEAE:: @ 080FDEAE + .incbin "baserom.gba", 0x0FDEAE, 0x0000005 + +gUnk_080FDEB3:: @ 080FDEB3 + .incbin "baserom.gba", 0x0FDEB3, 0x0000005 + +gUnk_080FDEB8:: @ 080FDEB8 + .incbin "baserom.gba", 0x0FDEB8, 0x0000005 + +gUnk_080FDEBD:: @ 080FDEBD + .incbin "baserom.gba", 0x0FDEBD, 0x0000005 + +gUnk_080FDEC2:: @ 080FDEC2 + .incbin "baserom.gba", 0x0FDEC2, 0x0000005 + +gUnk_080FDEC7:: @ 080FDEC7 + .incbin "baserom.gba", 0x0FDEC7, 0x0000005 + +gUnk_080FDECC:: @ 080FDECC + .incbin "baserom.gba", 0x0FDECC, 0x0000005 + +gUnk_080FDED1:: @ 080FDED1 + .incbin "baserom.gba", 0x0FDED1, 0x0000005 + +gUnk_080FDED6:: @ 080FDED6 + .incbin "baserom.gba", 0x0FDED6, 0x0000005 + +gUnk_080FDEDB:: @ 080FDEDB + .incbin "baserom.gba", 0x0FDEDB, 0x0000005 + +gUnk_080FDEE0:: @ 080FDEE0 + .incbin "baserom.gba", 0x0FDEE0, 0x0000005 + +gUnk_080FDEE5:: @ 080FDEE5 + .incbin "baserom.gba", 0x0FDEE5, 0x0000005 + +gUnk_080FDEEA:: @ 080FDEEA + .incbin "baserom.gba", 0x0FDEEA, 0x0000005 + +gUnk_080FDEEF:: @ 080FDEEF + .incbin "baserom.gba", 0x0FDEEF, 0x0000005 + +gUnk_080FDEF4:: @ 080FDEF4 + .incbin "baserom.gba", 0x0FDEF4, 0x0000005 + +gUnk_080FDEF9:: @ 080FDEF9 + .incbin "baserom.gba", 0x0FDEF9, 0x0000005 + +gUnk_080FDEFE:: @ 080FDEFE + .incbin "baserom.gba", 0x0FDEFE, 0x0000005 + +gUnk_080FDF03:: @ 080FDF03 + .incbin "baserom.gba", 0x0FDF03, 0x0000005 + +gUnk_080FDF08:: @ 080FDF08 + .incbin "baserom.gba", 0x0FDF08, 0x0000005 + +gUnk_080FDF0D:: @ 080FDF0D + .incbin "baserom.gba", 0x0FDF0D, 0x0000005 + +gUnk_080FDF12:: @ 080FDF12 + .incbin "baserom.gba", 0x0FDF12, 0x0000005 + +gUnk_080FDF17:: @ 080FDF17 + .incbin "baserom.gba", 0x0FDF17, 0x0000011 + +gUnk_080FDF28:: @ 080FDF28 + .incbin "baserom.gba", 0x0FDF28, 0x000001D + +gUnk_080FDF45:: @ 080FDF45 + .incbin "baserom.gba", 0x0FDF45, 0x0000005 + +gUnk_080FDF4A:: @ 080FDF4A + .incbin "baserom.gba", 0x0FDF4A, 0x0000005 + +gUnk_080FDF4F:: @ 080FDF4F + .incbin "baserom.gba", 0x0FDF4F, 0x0000005 + +gUnk_080FDF54:: @ 080FDF54 + .incbin "baserom.gba", 0x0FDF54, 0x0000005 + +gUnk_080FDF59:: @ 080FDF59 + .incbin "baserom.gba", 0x0FDF59, 0x0000005 + +gUnk_080FDF5E:: @ 080FDF5E + .incbin "baserom.gba", 0x0FDF5E, 0x0000005 + +gUnk_080FDF63:: @ 080FDF63 + .incbin "baserom.gba", 0x0FDF63, 0x0000005 + +gUnk_080FDF68:: @ 080FDF68 + .incbin "baserom.gba", 0x0FDF68, 0x0000005 + +gUnk_080FDF6D:: @ 080FDF6D + .incbin "baserom.gba", 0x0FDF6D, 0x0000005 + +gUnk_080FDF72:: @ 080FDF72 + .incbin "baserom.gba", 0x0FDF72, 0x0000005 + +gUnk_080FDF77:: @ 080FDF77 + .incbin "baserom.gba", 0x0FDF77, 0x0000005 + +gUnk_080FDF7C:: @ 080FDF7C + .incbin "baserom.gba", 0x0FDF7C, 0x0000005 + +gUnk_080FDF81:: @ 080FDF81 + .incbin "baserom.gba", 0x0FDF81, 0x0000005 + +gUnk_080FDF86:: @ 080FDF86 + .incbin "baserom.gba", 0x0FDF86, 0x0000009 + +gUnk_080FDF8F:: @ 080FDF8F + .incbin "baserom.gba", 0x0FDF8F, 0x0000005 + +gUnk_080FDF94:: @ 080FDF94 + .incbin "baserom.gba", 0x0FDF94, 0x0000005 + +gUnk_080FDF99:: @ 080FDF99 + .incbin "baserom.gba", 0x0FDF99, 0x0000005 + +gUnk_080FDF9E:: @ 080FDF9E + .incbin "baserom.gba", 0x0FDF9E, 0x0000005 + +gUnk_080FDFA3:: @ 080FDFA3 + .incbin "baserom.gba", 0x0FDFA3, 0x0000005 + +gUnk_080FDFA8:: @ 080FDFA8 + .incbin "baserom.gba", 0x0FDFA8, 0x0000019 + +gUnk_080FDFC1:: @ 080FDFC1 + .incbin "baserom.gba", 0x0FDFC1, 0x0000005 + +gUnk_080FDFC6:: @ 080FDFC6 + .incbin "baserom.gba", 0x0FDFC6, 0x0000005 + +gUnk_080FDFCB:: @ 080FDFCB + .incbin "baserom.gba", 0x0FDFCB, 0x0000005 + +gUnk_080FDFD0:: @ 080FDFD0 + .incbin "baserom.gba", 0x0FDFD0, 0x0000008 + +gUnk_080FDFD8:: @ 080FDFD8 + .incbin "baserom.gba", 0x0FDFD8, 0x00001DC + +gUnk_080FE1B4:: @ 080FE1B4 + .incbin "baserom.gba", 0x0FE1B4, 0x0000012 + +gUnk_080FE1C6:: @ 080FE1C6 + .incbin "baserom.gba", 0x0FE1C6, 0x0000017 + +gUnk_080FE1DD:: @ 080FE1DD + .incbin "baserom.gba", 0x0FE1DD, 0x00000C3 + +gUnk_080FE2A0:: @ 080FE2A0 + .incbin "baserom.gba", 0x0FE2A0, 0x000000C + +gUnk_080FE2AC:: @ 080FE2AC + .incbin "baserom.gba", 0x0FE2AC, 0x0000074 + +gUnk_080FE320:: @ 080FE320 + .incbin "baserom.gba", 0x0FE320, 0x00002F0 + +gUnk_080FE610:: @ 080FE610 + .incbin "baserom.gba", 0x0FE610, 0x00004B8 + +gUnk_080FEAC8:: @ 080FEAC8 + .incbin "baserom.gba", 0x0FEAC8, 0x0000003 + +gUnk_080FEACB:: @ 080FEACB + .incbin "baserom.gba", 0x0FEACB, 0x0000023 + +gUnk_080FEAEE:: @ 080FEAEE + .incbin "baserom.gba", 0x0FEAEE, 0x000002C + +gUnk_080FEB1A:: @ 080FEB1A + .incbin "baserom.gba", 0x0FEB1A, 0x00000C2 + +gUnk_080FEBDC:: @ 080FEBDC + .incbin "baserom.gba", 0x0FEBDC, 0x000000C + +gUnk_080FEBE8:: @ 080FEBE8 + .incbin "baserom.gba", 0x0FEBE8, 0x0000006 + +gUnk_080FEBEE:: @ 080FEBEE + .incbin "baserom.gba", 0x0FEBEE, 0x000001B + +gUnk_080FEC09:: @ 080FEC09 + .incbin "baserom.gba", 0x0FEC09, 0x000001F + +gUnk_080FEC28:: @ 080FEC28 + .incbin "baserom.gba", 0x0FEC28, 0x00000A0 + +gUnk_080FECC8:: @ 080FECC8 + .incbin "baserom.gba", 0x0FECC8, 0x0000050 + +gUnk_080FED18:: @ 080FED18 + .incbin "baserom.gba", 0x0FED18, 0x0000040 + +gUnk_080FED58:: @ 080FED58 + .incbin "baserom.gba", 0x0FED58, 0x0000040 + +gUnk_080FED98:: @ 080FED98 + .incbin "baserom.gba", 0x0FED98, 0x000000C + +gUnk_080FEDA4:: @ 080FEDA4 + .incbin "baserom.gba", 0x0FEDA4, 0x0000036 + +gUnk_080FEDDA:: @ 080FEDDA + .incbin "baserom.gba", 0x0FEDDA, 0x000001E + +gUnk_080FEDF8:: @ 080FEDF8 + .incbin "baserom.gba", 0x0FEDF8, 0x0000020 + +gUnk_080FEE18:: @ 080FEE18 + .incbin "baserom.gba", 0x0FEE18, 0x0000020 + +gUnk_080FEE38:: @ 080FEE38 + .incbin "baserom.gba", 0x0FEE38, 0x0000010 + +gUnk_080FEE48:: @ 080FEE48 + .incbin "baserom.gba", 0x0FEE48, 0x0000010 + +gUnk_080FEE58:: @ 080FEE58 + .incbin "baserom.gba", 0x0FEE58, 0x0000020 + +gUnk_080FEE78:: @ 080FEE78 + .incbin "baserom.gba", 0x0FEE78, 0x0000030 + +gUnk_080FEEA8:: @ 080FEEA8 + .incbin "baserom.gba", 0x0FEEA8, 0x0000008 + +gUnk_080FEEB0:: @ 080FEEB0 + .incbin "baserom.gba", 0x0FEEB0, 0x0000008 + +gUnk_080FEEB8:: @ 080FEEB8 + .incbin "baserom.gba", 0x0FEEB8, 0x0000010 + +gUnk_080FEEC8:: @ 080FEEC8 + .incbin "baserom.gba", 0x0FEEC8, 0x000000C + +gUnk_080FEED4:: @ 080FEED4 + .incbin "baserom.gba", 0x0FEED4, 0x0000060 + +gUnk_080FEF34:: @ 080FEF34 + .incbin "baserom.gba", 0x0FEF34, 0x0000008 + +gUnk_080FEF3C:: @ 080FEF3C + .incbin "baserom.gba", 0x0FEF3C, 0x000000C + +gUnk_080FEF48:: @ 080FEF48 + .incbin "baserom.gba", 0x0FEF48, 0x0000030 + +gUnk_080FEF78:: @ 080FEF78 + .incbin "baserom.gba", 0x0FEF78, 0x0000030 + +gUnk_080FEFA8:: @ 080FEFA8 + .incbin "baserom.gba", 0x0FEFA8, 0x0000040 + +gUnk_080FEFE8:: @ 080FEFE8 + .incbin "baserom.gba", 0x0FEFE8, 0x0000050 + +gUnk_080FF038:: @ 080FF038 + .incbin "baserom.gba", 0x0FF038, 0x0000060 + +gUnk_080FF098:: @ 080FF098 + .incbin "baserom.gba", 0x0FF098, 0x0000070 + +gUnk_080FF108:: @ 080FF108 + .incbin "baserom.gba", 0x0FF108, 0x0000018 + +gUnk_080FF120:: @ 080FF120 + .incbin "baserom.gba", 0x0FF120, 0x0000008 + +gUnk_080FF128:: @ 080FF128 + .incbin "baserom.gba", 0x0FF128, 0x0000020 + +gUnk_080FF148:: @ 080FF148 + .incbin "baserom.gba", 0x0FF148, 0x000000C + +gUnk_080FF154:: @ 080FF154 + .incbin "baserom.gba", 0x0FF154, 0x0000020 + +gUnk_080FF174:: @ 080FF174 + .incbin "baserom.gba", 0x0FF174, 0x0000008 + +gUnk_080FF17C:: @ 080FF17C + .incbin "baserom.gba", 0x0FF17C, 0x0000050 + +gUnk_080FF1CC:: @ 080FF1CC + .incbin "baserom.gba", 0x0FF1CC, 0x0000008 + +gUnk_080FF1D4:: @ 080FF1D4 + .incbin "baserom.gba", 0x0FF1D4, 0x0000018 + +gUnk_080FF1EC:: @ 080FF1EC + .incbin "baserom.gba", 0x0FF1EC, 0x0000008 + +gUnk_080FF1F4:: @ 080FF1F4 + .incbin "baserom.gba", 0x0FF1F4, 0x000000C + +gUnk_080FF200:: @ 080FF200 + .incbin "baserom.gba", 0x0FF200, 0x0000004 + +gUnk_080FF204:: @ 080FF204 + .incbin "baserom.gba", 0x0FF204, 0x0000024 + +gUnk_080FF228:: @ 080FF228 + .incbin "baserom.gba", 0x0FF228, 0x0000010 + +gUnk_080FF238:: @ 080FF238 + .incbin "baserom.gba", 0x0FF238, 0x0000010 + +gUnk_080FF248:: @ 080FF248 + .incbin "baserom.gba", 0x0FF248, 0x000000C + +gUnk_080FF254:: @ 080FF254 + .incbin "baserom.gba", 0x0FF254, 0x0000010 + +gUnk_080FF264:: @ 080FF264 + .incbin "baserom.gba", 0x0FF264, 0x0000020 + +gUnk_080FF284:: @ 080FF284 + .incbin "baserom.gba", 0x0FF284, 0x0000008 + +gUnk_080FF28C:: @ 080FF28C + .incbin "baserom.gba", 0x0FF28C, 0x000000C + +gUnk_080FF298:: @ 080FF298 + .incbin "baserom.gba", 0x0FF298, 0x0000020 + +gUnk_080FF2B8:: @ 080FF2B8 + .incbin "baserom.gba", 0x0FF2B8, 0x0000008 + +gUnk_080FF2C0:: @ 080FF2C0 + .incbin "baserom.gba", 0x0FF2C0, 0x0000040 + +gUnk_080FF300:: @ 080FF300 + .incbin "baserom.gba", 0x0FF300, 0x0000008 + +gUnk_080FF308:: @ 080FF308 + .incbin "baserom.gba", 0x0FF308, 0x0000020 + +gUnk_080FF328:: @ 080FF328 + .incbin "baserom.gba", 0x0FF328, 0x0000008 + +gUnk_080FF330:: @ 080FF330 + .incbin "baserom.gba", 0x0FF330, 0x000000C + +gUnk_080FF33C:: @ 080FF33C + .incbin "baserom.gba", 0x0FF33C, 0x0000020 + +gUnk_080FF35C:: @ 080FF35C + .incbin "baserom.gba", 0x0FF35C, 0x0000010 + +gUnk_080FF36C:: @ 080FF36C + .incbin "baserom.gba", 0x0FF36C, 0x000000C + +gUnk_080FF378:: @ 080FF378 + .incbin "baserom.gba", 0x0FF378, 0x0000050 + +gUnk_080FF3C8:: @ 080FF3C8 + .incbin "baserom.gba", 0x0FF3C8, 0x0000020 + +gUnk_080FF3E8:: @ 080FF3E8 + .incbin "baserom.gba", 0x0FF3E8, 0x000000C + +gUnk_080FF3F4:: @ 080FF3F4 + .incbin "baserom.gba", 0x0FF3F4, 0x000000C + +gUnk_080FF400:: @ 080FF400 + .incbin "baserom.gba", 0x0FF400, 0x0000020 + +gUnk_080FF420:: @ 080FF420 + .incbin "baserom.gba", 0x0FF420, 0x0000008 + +gUnk_080FF428:: @ 080FF428 + .incbin "baserom.gba", 0x0FF428, 0x0000428 + +gPaletteGroups:: @ 080FF850 + .word 0x00000000 + .word 0x080FF428 + .word 0x080FF430 + .word 0x080FF438 + .word 0x080FF444 + .word 0x080FF450 + .word 0x080FF454 + .word 0x080FF458 + .word 0x080FF45C + .word 0x080FF460 + .word 0x080FF474 + .word 0x080FF488 + .word 0x080FF484 + .word 0x080FF5C8 + .word 0x080FF4A0 + .word 0x080FF4DC + .word 0x080FF560 + .word 0x080FF4E4 + .word 0x080FF4C4 + .word 0x080FF570 + .word 0x080FF49C + .word 0x080FF498 + .word 0x080FF4A4 + .word 0x080FF4A8 + .word 0x080FF4AC + .word 0x080FF4B0 + .word 0x080FF4E8 + .word 0x080FF4B8 + .word 0x080FF490 + .word 0x080FF574 + .word 0x080FF578 + .word 0x080FF590 + .word 0x080FF594 + .word 0x080FF57C + .word 0x080FF5E4 + .word 0x080FF5F8 + .word 0x080FF4F0 + .word 0x080FF4F4 + .word 0x080FF598 + .word 0x080FF494 + .word 0x080FF6C4 + .word 0x080FF59C + .word 0x080FF6C8 + .word 0x080FF6CC + .word 0x080FF58C + .word 0x080FF5CC + .word 0x080FF564 + .word 0x080FF6D0 + .word 0x080FF6D4 + .word 0x080FF6D8 + .word 0x080FF6DC + .word 0x080FF5B0 + .word 0x080FF5B4 + .word 0x080FF5C4 + .word 0x080FF4C0 + .word 0x080FF500 + .word 0x080FF510 + .word 0x080FF518 + .word 0x080FF51C + .word 0x080FF524 + .word 0x080FF50C + .word 0x080FF4B4 + .word 0x080FF5A0 + .word 0x080FF4C8 + .word 0x080FF4CC + .word 0x080FF4D0 + .word 0x080FF4D4 + .word 0x080FF568 + .word 0x080FF650 + .word 0x080FF654 + .word 0x080FF658 + .word 0x080FF65C + .word 0x080FF660 + .word 0x080FF664 + .word 0x080FF668 + .word 0x080FF66C + .word 0x080FF670 + .word 0x080FF680 + .word 0x080FF684 + .word 0x080FF688 + .word 0x080FF68C + .word 0x080FF690 + .word 0x080FF694 + .word 0x080FF698 + .word 0x080FF69C + .word 0x080FF56C + .word 0x080FF674 + .word 0x080FF678 + .word 0x080FF67C + .word 0x080FF5B8 + .word 0x080FF4EC + .word 0x080FF6E0 + .word 0x080FF5A4 + .word 0x080FF4D8 + .word 0x080FF4FC + .word 0x080FF640 + .word 0x080FF644 + .word 0x080FF648 + .word 0x080FF64C + .word 0x080FF580 + .word 0x080FF584 + .word 0x080FF5FC + .word 0x080FF5A8 + .word 0x080FF5AC + .word 0x080FF504 + .word 0x080FF53C + .word 0x080FF540 + .word 0x080FF544 + .word 0x080FF548 + .word 0x080FF4E0 + .word 0x080FF600 + .word 0x080FF630 + .word 0x080FF634 + .word 0x080FF638 + .word 0x080FF63C + .word 0x080FF6A0 + .word 0x080FF6A4 + .word 0x080FF6A8 + .word 0x080FF6AC + .word 0x080FF6B0 + .word 0x080FF54C + .word 0x080FF604 + .word 0x080FF6C0 + .word 0x080FF6BC + .word 0x080FF6B8 + .word 0x080FF608 + .word 0x080FF60C + .word 0x080FF610 + .word 0x080FF4F8 + .word 0x080FF6B4 + .word 0x080FF508 + .word 0x080FF614 + .word 0x080FF618 + .word 0x080FF61C + .word 0x080FF6E4 + .word 0x080FF6E8 + .word 0x080FF6EC + .word 0x080FF6F0 + .word 0x080FF6F4 + .word 0x080FF6F8 + .word 0x080FF6FC + .word 0x080FF700 + .word 0x080FF704 + .word 0x080FF708 + .word 0x080FF528 + .word 0x080FF520 + .word 0x080FF5D0 + .word 0x080FF5D4 + .word 0x080FF5D8 + .word 0x080FF5DC + .word 0x080FF5E0 + .word 0x080FF5E8 + .word 0x080FF5EC + .word 0x080FF5F0 + .word 0x080FF5F4 + .word 0x080FF530 + .word 0x080FF534 + .word 0x080FF5BC + .word 0x080FF620 + .word 0x080FF624 + .word 0x080FF628 + .word 0x080FF62C + .word 0x080FF514 + .word 0x080FF550 + .word 0x080FF554 + .word 0x080FF558 + .word 0x080FF55C + .word 0x080FF588 + .word 0x080FF5C0 + .word 0x080FF538 + .word 0x080FF4BC + .word 0x080FF70C + .word 0x080FF710 + .word 0x080FF714 + .word 0x080FF718 + .word 0x080FF71C + .word 0x080FF720 + .word 0x080FF724 + .word 0x080FF728 + .word 0x080FF72C + .word 0x080FF52C + .word 0x080FF730 + .word 0x080FF73C + .word 0x080FF744 + .word 0x080FF750 + .word 0x080FF75C + .word 0x080FF770 + .word 0x080FF778 + .word 0x080FF780 + .word 0x080FF788 + .word 0x080FF790 + .word 0x080FF798 + .word 0x080FF7A0 + .word 0x080FF7A8 + .word 0x080FF7B0 + .word 0x080FF7B8 + .word 0x080FF7C0 + .word 0x080FF7C8 + .word 0x080FF7D0 + .word 0x080FF7D8 + .word 0x080FF7E0 + .word 0x080FF7E8 + .word 0x080FF7F0 + .word 0x080FF7F8 + .word 0x080FF808 + .word 0x080FF814 + .word 0x080FF83C + .word 0x080FF844 + +gUnk_080FFB90:: @ 080FFB90 + .incbin "baserom.gba", 0x0FFB90, 0x0000018 + +gUnk_080FFBA8:: @ 080FFBA8 + .incbin "baserom.gba", 0x0FFBA8, 0x0000035 + +gUnk_080FFBDD:: @ 080FFBDD + .incbin "baserom.gba", 0x0FFBDD, 0x0000013 + +gUnk_080FFBF0:: @ 080FFBF0 + .incbin "baserom.gba", 0x0FFBF0, 0x0000024 + +gUnk_080FFC14:: @ 080FFC14 + .incbin "baserom.gba", 0x0FFC14, 0x0000024 + +gUnk_080FFC38:: @ 080FFC38 + .incbin "baserom.gba", 0x0FFC38, 0x0000030 + +gUnk_080FFC68:: @ 080FFC68 + .incbin "baserom.gba", 0x0FFC68, 0x0000018 + +gUnk_080FFC80:: @ 080FFC80 + .incbin "baserom.gba", 0x0FFC80, 0x000000C + +gUnk_080FFC8C:: @ 080FFC8C + .incbin "baserom.gba", 0x0FFC8C, 0x000000C + +gUnk_080FFC98:: @ 080FFC98 + .incbin "baserom.gba", 0x0FFC98, 0x0000018 + +gUnk_080FFCB0:: @ 080FFCB0 + .incbin "baserom.gba", 0x0FFCB0, 0x0000018 + +gUnk_080FFCC8:: @ 080FFCC8 + .incbin "baserom.gba", 0x0FFCC8, 0x000000C + +gUnk_080FFCD4:: @ 080FFCD4 + .incbin "baserom.gba", 0x0FFCD4, 0x0000018 + +gUnk_080FFCEC:: @ 080FFCEC + .incbin "baserom.gba", 0x0FFCEC, 0x0000001 + +gUnk_080FFCED:: @ 080FFCED + .incbin "baserom.gba", 0x0FFCED, 0x0000017 + +gUnk_080FFD04:: @ 080FFD04 + .incbin "baserom.gba", 0x0FFD04, 0x0000018 + +gUnk_080FFD1C:: @ 080FFD1C + .incbin "baserom.gba", 0x0FFD1C, 0x000000C + +gUnk_080FFD28:: @ 080FFD28 + .incbin "baserom.gba", 0x0FFD28, 0x0000018 + +gUnk_080FFD40:: @ 080FFD40 + .incbin "baserom.gba", 0x0FFD40, 0x000000C + +gUnk_080FFD4C:: @ 080FFD4C + .incbin "baserom.gba", 0x0FFD4C, 0x000000C + +gUnk_080FFD58:: @ 080FFD58 + .incbin "baserom.gba", 0x0FFD58, 0x000000C + +gUnk_080FFD64:: @ 080FFD64 + .incbin "baserom.gba", 0x0FFD64, 0x000000C + +gUnk_080FFD70:: @ 080FFD70 + .incbin "baserom.gba", 0x0FFD70, 0x000000C + +gUnk_080FFD7C:: @ 080FFD7C + .incbin "baserom.gba", 0x0FFD7C, 0x000000C + +gUnk_080FFD88:: @ 080FFD88 + .incbin "baserom.gba", 0x0FFD88, 0x000000C + +gUnk_080FFD94:: @ 080FFD94 + .incbin "baserom.gba", 0x0FFD94, 0x0000018 + +gUnk_080FFDAC:: @ 080FFDAC + .incbin "baserom.gba", 0x0FFDAC, 0x0000018 + +gUnk_080FFDC4:: @ 080FFDC4 + .incbin "baserom.gba", 0x0FFDC4, 0x000000C + +gUnk_080FFDD0:: @ 080FFDD0 + .incbin "baserom.gba", 0x0FFDD0, 0x0000018 + +gUnk_080FFDE8:: @ 080FFDE8 + .incbin "baserom.gba", 0x0FFDE8, 0x000000C + +gUnk_080FFDF4:: @ 080FFDF4 + .incbin "baserom.gba", 0x0FFDF4, 0x0000005 + +gUnk_080FFDF9:: @ 080FFDF9 + .incbin "baserom.gba", 0x0FFDF9, 0x0000007 + +gUnk_080FFE00:: @ 080FFE00 + .incbin "baserom.gba", 0x0FFE00, 0x0000018 + +gUnk_080FFE18:: @ 080FFE18 + .incbin "baserom.gba", 0x0FFE18, 0x0000018 + +gUnk_080FFE30:: @ 080FFE30 + .incbin "baserom.gba", 0x0FFE30, 0x000003C + +gUnk_080FFE6C:: @ 080FFE6C + .incbin "baserom.gba", 0x0FFE6C, 0x000003C + +gUnk_080FFEA8:: @ 080FFEA8 + .incbin "baserom.gba", 0x0FFEA8, 0x000003C + +gUnk_080FFEE4:: @ 080FFEE4 + .incbin "baserom.gba", 0x0FFEE4, 0x000003C + +gUnk_080FFF20:: @ 080FFF20 + .incbin "baserom.gba", 0x0FFF20, 0x000003C + +gUnk_080FFF5C:: @ 080FFF5C + .incbin "baserom.gba", 0x0FFF5C, 0x000003C + +gUnk_080FFF98:: @ 080FFF98 + .incbin "baserom.gba", 0x0FFF98, 0x0000030 + +gUnk_080FFFC8:: @ 080FFFC8 + .incbin "baserom.gba", 0x0FFFC8, 0x0000018 + +gUnk_080FFFE0:: @ 080FFFE0 + .incbin "baserom.gba", 0x0FFFE0, 0x000000C + +gUnk_080FFFEC:: @ 080FFFEC + .incbin "baserom.gba", 0x0FFFEC, 0x000000C + +gUnk_080FFFF8:: @ 080FFFF8 + .incbin "baserom.gba", 0x0FFFF8, 0x0000008 + +gUnk_08100000:: @ 08100000 + .incbin "baserom.gba", 0x100000, 0x0000001 + +gUnk_08100001:: @ 08100001 + .incbin "baserom.gba", 0x100001, 0x0000002 + +gUnk_08100003:: @ 08100003 + .incbin "baserom.gba", 0x100003, 0x0000001 + +gUnk_08100004:: @ 08100004 + .incbin "baserom.gba", 0x100004, 0x000000C + +gUnk_08100010:: @ 08100010 + .incbin "baserom.gba", 0x100010, 0x0000005 + +gUnk_08100015:: @ 08100015 + .incbin "baserom.gba", 0x100015, 0x0000007 + +gUnk_0810001C:: @ 0810001C + .incbin "baserom.gba", 0x10001C, 0x000000C + +gUnk_08100028:: @ 08100028 + .incbin "baserom.gba", 0x100028, 0x0000004 + +gUnk_0810002C:: @ 0810002C + .incbin "baserom.gba", 0x10002C, 0x0000008 + +gUnk_08100034:: @ 08100034 + .incbin "baserom.gba", 0x100034, 0x000000B + +gUnk_0810003F:: @ 0810003F + .incbin "baserom.gba", 0x10003F, 0x0000001 + +gUnk_08100040:: @ 08100040 + .incbin "baserom.gba", 0x100040, 0x0000002 + +gUnk_08100042:: @ 08100042 + .incbin "baserom.gba", 0x100042, 0x000000A + +gUnk_0810004C:: @ 0810004C + .incbin "baserom.gba", 0x10004C, 0x000000C + +gUnk_08100058:: @ 08100058 + .incbin "baserom.gba", 0x100058, 0x000000C + +gUnk_08100064:: @ 08100064 + .incbin "baserom.gba", 0x100064, 0x000000C + +gUnk_08100070:: @ 08100070 + .incbin "baserom.gba", 0x100070, 0x000000C + +gUnk_0810007C:: @ 0810007C + .incbin "baserom.gba", 0x10007C, 0x000000C + +gUnk_08100088:: @ 08100088 + .incbin "baserom.gba", 0x100088, 0x000000C + +gUnk_08100094:: @ 08100094 + .incbin "baserom.gba", 0x100094, 0x000000C + +gUnk_081000A0:: @ 081000A0 + .incbin "baserom.gba", 0x1000A0, 0x000000C + +gUnk_081000AC:: @ 081000AC + .incbin "baserom.gba", 0x1000AC, 0x000000C + +gUnk_081000B8:: @ 081000B8 + .incbin "baserom.gba", 0x1000B8, 0x000000C + +gUnk_081000C4:: @ 081000C4 + .incbin "baserom.gba", 0x1000C4, 0x000000C + +gUnk_081000D0:: @ 081000D0 + .incbin "baserom.gba", 0x1000D0, 0x000000C + +gUnk_081000DC:: @ 081000DC + .incbin "baserom.gba", 0x1000DC, 0x0000008 + +gUnk_081000E4:: @ 081000E4 + .incbin "baserom.gba", 0x1000E4, 0x0000004 + +gUnk_081000E8:: @ 081000E8 + .incbin "baserom.gba", 0x1000E8, 0x0000008 + +gUnk_081000F0:: @ 081000F0 + .incbin "baserom.gba", 0x1000F0, 0x0000004 + +gUnk_081000F4:: @ 081000F4 + .incbin "baserom.gba", 0x1000F4, 0x000000C + +gUnk_08100100:: @ 08100100 + .incbin "baserom.gba", 0x100100, 0x0000007 + +gUnk_08100107:: @ 08100107 + .incbin "baserom.gba", 0x100107, 0x0000002 + +gUnk_08100109:: @ 08100109 + .incbin "baserom.gba", 0x100109, 0x0000003 + +gUnk_0810010C:: @ 0810010C + .incbin "baserom.gba", 0x10010C, 0x000000C + +gUnk_08100118:: @ 08100118 + .incbin "baserom.gba", 0x100118, 0x0000008 + +gUnk_08100120:: @ 08100120 + .incbin "baserom.gba", 0x100120, 0x0000006 + +gUnk_08100126:: @ 08100126 + .incbin "baserom.gba", 0x100126, 0x000000A + +gUnk_08100130:: @ 08100130 + .incbin "baserom.gba", 0x100130, 0x0000018 + +gUnk_08100148:: @ 08100148 + .incbin "baserom.gba", 0x100148, 0x0000018 + +gUnk_08100160:: @ 08100160 + .incbin "baserom.gba", 0x100160, 0x0000018 + +gUnk_08100178:: @ 08100178 + .incbin "baserom.gba", 0x100178, 0x0000018 + +gUnk_08100190:: @ 08100190 + .incbin "baserom.gba", 0x100190, 0x0000018 + +gUnk_081001A8:: @ 081001A8 + .incbin "baserom.gba", 0x1001A8, 0x0000018 + +gUnk_081001C0:: @ 081001C0 + .incbin "baserom.gba", 0x1001C0, 0x0000018 + +gUnk_081001D8:: @ 081001D8 + .incbin "baserom.gba", 0x1001D8, 0x0000018 + +gUnk_081001F0:: @ 081001F0 + .incbin "baserom.gba", 0x1001F0, 0x0000009 + +gUnk_081001F9:: @ 081001F9 + .incbin "baserom.gba", 0x1001F9, 0x000000D + +gUnk_08100206:: @ 08100206 + .incbin "baserom.gba", 0x100206, 0x0000002 + +gUnk_08100208:: @ 08100208 + .incbin "baserom.gba", 0x100208, 0x0000018 + +gUnk_08100220:: @ 08100220 + .incbin "baserom.gba", 0x100220, 0x0000018 + +gUnk_08100238:: @ 08100238 + .incbin "baserom.gba", 0x100238, 0x0000018 + +gUnk_08100250:: @ 08100250 + .incbin "baserom.gba", 0x100250, 0x0000018 + +gUnk_08100268:: @ 08100268 + .incbin "baserom.gba", 0x100268, 0x0000018 + +gUnk_08100280:: @ 08100280 + .incbin "baserom.gba", 0x100280, 0x0000018 + +gUnk_08100298:: @ 08100298 + .incbin "baserom.gba", 0x100298, 0x0000018 + +gUnk_081002B0:: @ 081002B0 + .incbin "baserom.gba", 0x1002B0, 0x0000018 + +gUnk_081002C8:: @ 081002C8 + .incbin "baserom.gba", 0x1002C8, 0x0000018 + +gUnk_081002E0:: @ 081002E0 + .incbin "baserom.gba", 0x1002E0, 0x000000C + +gUnk_081002EC:: @ 081002EC + .incbin "baserom.gba", 0x1002EC, 0x000000C + +gUnk_081002F8:: @ 081002F8 + .incbin "baserom.gba", 0x1002F8, 0x000000C + +gUnk_08100304:: @ 08100304 + .incbin "baserom.gba", 0x100304, 0x000000C + +gUnk_08100310:: @ 08100310 + .incbin "baserom.gba", 0x100310, 0x0000007 + +gUnk_08100317:: @ 08100317 + .incbin "baserom.gba", 0x100317, 0x0000011 + +gUnk_08100328:: @ 08100328 + .incbin "baserom.gba", 0x100328, 0x0000030 + +gUnk_08100358:: @ 08100358 + .incbin "baserom.gba", 0x100358, 0x0000030 + +gUnk_08100388:: @ 08100388 + .incbin "baserom.gba", 0x100388, 0x0000054 + +gUnk_081003DC:: @ 081003DC + .incbin "baserom.gba", 0x1003DC, 0x0000024 + +gUnk_08100400:: @ 08100400 + .incbin "baserom.gba", 0x100400, 0x0000001 + +gUnk_08100401:: @ 08100401 + .incbin "baserom.gba", 0x100401, 0x0000006 + +gUnk_08100407:: @ 08100407 + .incbin "baserom.gba", 0x100407, 0x000001D + +gUnk_08100424:: @ 08100424 + .incbin "baserom.gba", 0x100424, 0x0000048 + +gUnk_0810046C:: @ 0810046C + .incbin "baserom.gba", 0x10046C, 0x0000048 + +gUnk_081004B4:: @ 081004B4 + .incbin "baserom.gba", 0x1004B4, 0x0000018 + +gUnk_081004CC:: @ 081004CC + .incbin "baserom.gba", 0x1004CC, 0x0000024 + +gUnk_081004F0:: @ 081004F0 + .incbin "baserom.gba", 0x1004F0, 0x0000008 + +gUnk_081004F8:: @ 081004F8 + .incbin "baserom.gba", 0x1004F8, 0x0000002 + +gUnk_081004FA:: @ 081004FA + .incbin "baserom.gba", 0x1004FA, 0x0000004 + +gUnk_081004FE:: @ 081004FE + .incbin "baserom.gba", 0x1004FE, 0x0000012 + +gUnk_08100510:: @ 08100510 + .incbin "baserom.gba", 0x100510, 0x0000001 + +gUnk_08100511:: @ 08100511 + .incbin "baserom.gba", 0x100511, 0x0000003 + +gUnk_08100514:: @ 08100514 + .incbin "baserom.gba", 0x100514, 0x000000C + +gUnk_08100520:: @ 08100520 + .incbin "baserom.gba", 0x100520, 0x0000021 + +gUnk_08100541:: @ 08100541 + .incbin "baserom.gba", 0x100541, 0x000000F + +gUnk_08100550:: @ 08100550 + .incbin "baserom.gba", 0x100550, 0x0000030 + +gUnk_08100580:: @ 08100580 + .incbin "baserom.gba", 0x100580, 0x0000030 + +gUnk_081005B0:: @ 081005B0 + .incbin "baserom.gba", 0x1005B0, 0x0000030 + +gUnk_081005E0:: @ 081005E0 + .incbin "baserom.gba", 0x1005E0, 0x000001B + +gUnk_081005FB:: @ 081005FB + .incbin "baserom.gba", 0x1005FB, 0x0000004 + +gUnk_081005FF:: @ 081005FF + .incbin "baserom.gba", 0x1005FF, 0x0000001 + +gUnk_08100600:: @ 08100600 + .incbin "baserom.gba", 0x100600, 0x0000005 + +gUnk_08100605:: @ 08100605 + .incbin "baserom.gba", 0x100605, 0x0000001 + +gUnk_08100606:: @ 08100606 + .incbin "baserom.gba", 0x100606, 0x000000A + +gUnk_08100610:: @ 08100610 + .incbin "baserom.gba", 0x100610, 0x0000010 + +gUnk_08100620:: @ 08100620 + .incbin "baserom.gba", 0x100620, 0x0000020 + +gUnk_08100640:: @ 08100640 + .incbin "baserom.gba", 0x100640, 0x0000030 + +gUnk_08100670:: @ 08100670 + .incbin "baserom.gba", 0x100670, 0x0000011 + +gUnk_08100681:: @ 08100681 + .incbin "baserom.gba", 0x100681, 0x000001F + +gUnk_081006A0:: @ 081006A0 + .incbin "baserom.gba", 0x1006A0, 0x0000030 + +gUnk_081006D0:: @ 081006D0 + .incbin "baserom.gba", 0x1006D0, 0x0000030 + +gUnk_08100700:: @ 08100700 + .incbin "baserom.gba", 0x100700, 0x0000010 + +gUnk_08100710:: @ 08100710 + .incbin "baserom.gba", 0x100710, 0x0000010 + +gUnk_08100720:: @ 08100720 + .incbin "baserom.gba", 0x100720, 0x0000010 + +gUnk_08100730:: @ 08100730 + .incbin "baserom.gba", 0x100730, 0x0000010 + +gUnk_08100740:: @ 08100740 + .incbin "baserom.gba", 0x100740, 0x0000010 + +gUnk_08100750:: @ 08100750 + .incbin "baserom.gba", 0x100750, 0x0000010 + +gUnk_08100760:: @ 08100760 + .incbin "baserom.gba", 0x100760, 0x0000020 + +gUnk_08100780:: @ 08100780 + .incbin "baserom.gba", 0x100780, 0x0000001 + +gUnk_08100781:: @ 08100781 + .incbin "baserom.gba", 0x100781, 0x000000F + +gUnk_08100790:: @ 08100790 + .incbin "baserom.gba", 0x100790, 0x0000030 + +gUnk_081007C0:: @ 081007C0 + .incbin "baserom.gba", 0x1007C0, 0x0000020 + +gUnk_081007E0:: @ 081007E0 + .incbin "baserom.gba", 0x1007E0, 0x0000010 + +gUnk_081007F0:: @ 081007F0 + .incbin "baserom.gba", 0x1007F0, 0x000000E + +gUnk_081007FE:: @ 081007FE + .incbin "baserom.gba", 0x1007FE, 0x0000001 + +gUnk_081007FF:: @ 081007FF + .incbin "baserom.gba", 0x1007FF, 0x0000001 + +gUnk_08100800:: @ 08100800 + .incbin "baserom.gba", 0x100800, 0x0000004 + +gUnk_08100804:: @ 08100804 + .incbin "baserom.gba", 0x100804, 0x0000005 + +gUnk_08100809:: @ 08100809 + .incbin "baserom.gba", 0x100809, 0x0000007 + +gUnk_08100810:: @ 08100810 + .incbin "baserom.gba", 0x100810, 0x0000003 + +gUnk_08100813:: @ 08100813 + .incbin "baserom.gba", 0x100813, 0x000000D + +gUnk_08100820:: @ 08100820 + .incbin "baserom.gba", 0x100820, 0x0000021 + +gUnk_08100841:: @ 08100841 + .incbin "baserom.gba", 0x100841, 0x000000F + +gUnk_08100850:: @ 08100850 + .incbin "baserom.gba", 0x100850, 0x0000030 + +gUnk_08100880:: @ 08100880 + .incbin "baserom.gba", 0x100880, 0x0000001 + +gUnk_08100881:: @ 08100881 + .incbin "baserom.gba", 0x100881, 0x000002F + +gUnk_081008B0:: @ 081008B0 + .incbin "baserom.gba", 0x1008B0, 0x0000030 + +gUnk_081008E0:: @ 081008E0 + .incbin "baserom.gba", 0x1008E0, 0x0000023 + +gUnk_08100903:: @ 08100903 + .incbin "baserom.gba", 0x100903, 0x0000001 + +gUnk_08100904:: @ 08100904 + .incbin "baserom.gba", 0x100904, 0x000000C + +gUnk_08100910:: @ 08100910 + .incbin "baserom.gba", 0x100910, 0x0000030 + +gUnk_08100940:: @ 08100940 + .incbin "baserom.gba", 0x100940, 0x0000030 + +gUnk_08100970:: @ 08100970 + .incbin "baserom.gba", 0x100970, 0x000003C + +gUnk_081009AC:: @ 081009AC + .incbin "baserom.gba", 0x1009AC, 0x000000C + +gUnk_081009B8:: @ 081009B8 + .incbin "baserom.gba", 0x1009B8, 0x000000C + +gUnk_081009C4:: @ 081009C4 + .incbin "baserom.gba", 0x1009C4, 0x000000C + +gUnk_081009D0:: @ 081009D0 + .incbin "baserom.gba", 0x1009D0, 0x0000009 + +gUnk_081009D9:: @ 081009D9 + .incbin "baserom.gba", 0x1009D9, 0x0000003 + +gUnk_081009DC:: @ 081009DC + .incbin "baserom.gba", 0x1009DC, 0x000000C + +gUnk_081009E8:: @ 081009E8 + .incbin "baserom.gba", 0x1009E8, 0x0000005 + +gUnk_081009ED:: @ 081009ED + .incbin "baserom.gba", 0x1009ED, 0x0000007 + +gUnk_081009F4:: @ 081009F4 + .incbin "baserom.gba", 0x1009F4, 0x000000C + +gUnk_08100A00:: @ 08100A00 + .incbin "baserom.gba", 0x100A00, 0x0000006 + +gUnk_08100A06:: @ 08100A06 + .incbin "baserom.gba", 0x100A06, 0x0000004 + +gUnk_08100A0A:: @ 08100A0A + .incbin "baserom.gba", 0x100A0A, 0x0000002 + +gUnk_08100A0C:: @ 08100A0C + .incbin "baserom.gba", 0x100A0C, 0x0000005 + +gUnk_08100A11:: @ 08100A11 + .incbin "baserom.gba", 0x100A11, 0x000001F + +gUnk_08100A30:: @ 08100A30 + .incbin "baserom.gba", 0x100A30, 0x0000054 + +gUnk_08100A84:: @ 08100A84 + .incbin "baserom.gba", 0x100A84, 0x000000C + +gUnk_08100A90:: @ 08100A90 + .incbin "baserom.gba", 0x100A90, 0x000000C + +gUnk_08100A9C:: @ 08100A9C + .incbin "baserom.gba", 0x100A9C, 0x000000C + +gUnk_08100AA8:: @ 08100AA8 + .incbin "baserom.gba", 0x100AA8, 0x000005F + +gUnk_08100B07:: @ 08100B07 + .incbin "baserom.gba", 0x100B07, 0x0000009 + +gUnk_08100B10:: @ 08100B10 + .incbin "baserom.gba", 0x100B10, 0x0000004 + +gUnk_08100B14:: @ 08100B14 + .incbin "baserom.gba", 0x100B14, 0x00000DC + +gUnk_08100BF0:: @ 08100BF0 + .incbin "baserom.gba", 0x100BF0, 0x000000D + +gUnk_08100BFD:: @ 08100BFD + .incbin "baserom.gba", 0x100BFD, 0x0000004 + +gUnk_08100C01:: @ 08100C01 + .incbin "baserom.gba", 0x100C01, 0x0000001 + +gUnk_08100C02:: @ 08100C02 + .incbin "baserom.gba", 0x100C02, 0x000007F + +gUnk_08100C81:: @ 08100C81 + .incbin "baserom.gba", 0x100C81, 0x000003B diff --git a/data/data_08107BC8.s b/data/data_08107BC8.s index 699c41d5..599388bd 100755 --- a/data/data_08107BC8.s +++ b/data/data_08107BC8.s @@ -4,15 +4,6 @@ .section .rodata .align 2 -gUnk_08107BC8:: @ 08107BC8 - .incbin "baserom.gba", 0x107BC8, 0x0000018 - -gUnk_08107BE0:: @ 08107BE0 - .incbin "baserom.gba", 0x107BE0, 0x0000014 - -gUnk_08107BF4:: @ 08107BF4 - .incbin "baserom.gba", 0x107BF4, 0x0000018 - gUnk_08107C0C:: @ 08107C0C .incbin "baserom.gba", 0x107C0C, 0x0000003 diff --git a/data/data_0811E454.s b/data/data_0811E454.s index 520aaa25..e1d26604 100755 --- a/data/data_0811E454.s +++ b/data/data_0811E454.s @@ -4,30 +4,6 @@ .section .rodata .align 2 -gUnk_0811E454:: @ 0811E454 - .incbin "baserom.gba", 0x11E454, 0x000001C - -gUnk_0811E470:: @ 0811E470 - .incbin "baserom.gba", 0x11E470, 0x0000008 - -gUnk_0811E478:: @ 0811E478 - .incbin "baserom.gba", 0x11E478, 0x000000C - -gUnk_0811E484:: @ 0811E484 - .incbin "baserom.gba", 0x11E484, 0x0000020 - -gUnk_0811E4A4:: @ 0811E4A4 - .incbin "baserom.gba", 0x11E4A4, 0x0000008 - -gUnk_0811E4AC:: @ 0811E4AC - .incbin "baserom.gba", 0x11E4AC, 0x0000001 - -gUnk_0811E4AD:: @ 0811E4AD - .incbin "baserom.gba", 0x11E4AD, 0x0000007 - -gUnk_0811E4B4:: @ 0811E4B4 - .incbin "baserom.gba", 0x11E4B4, 0x0000008 - gUnk_0811E4BC:: @ 0811E4BC .incbin "baserom.gba", 0x11E4BC, 0x0000054 diff --git a/include/fileScreen.h b/include/fileScreen.h new file mode 100644 index 00000000..ffc99996 --- /dev/null +++ b/include/fileScreen.h @@ -0,0 +1,77 @@ +#ifndef FILESELECT_H +#define FILESELECT_H + +#include "global.h" +#include "functions.h" +#include "main.h" +#include "player.h" +#include "readKeyInput.h" +#include "screen.h" +#include "menu.h" +#include "save.h" + +typedef struct { + u8 filler0[0x5]; + u8 state; + u8 subState; + u16 timer; + u8 fillerA[0x26]; +} ChooseFileState; + +// TODO: This occupies the same memory region as gMenu +extern ChooseFileState gChooseFileState; + +typedef struct { + u8 filler0[0x1]; + u8 unk1; + u8 charColor; + u8 bgColor; + u16 unk4; + u16 unk6; + u8* unk8; +} struct_02036540; + +typedef struct { + u8 filler0[0x10]; + u16 unk10; + u8 filler12[0x6]; +} struct_080FC844; + +typedef struct { + u8 filler0[0x4]; +} struct_020227E8; + +extern struct_020227E8 gUnk_020227E8; + +extern SaveFile gSaveFiles[]; +extern u32 gUsedPalettes; +extern u8 gUnk_02000D00[]; + +struct OAMCommand { + u16 x; + u16 y; + u16 _4; + u16 _6; + u16 _8; +} extern gUnk_03001010; + +extern void sub_08056FEC(u32, struct_020227E8*); +extern void sub_0805F46C(u32, struct_080FC844*); +extern void sub_0801C4A0(u32, u32); +extern void sub_08080668(void); +extern void sub_0805194C(u32); +extern void LoadPalettes(const u8*, int, int); +extern struct_02036540* sub_0805F2C8(void); +extern void sub_0805F7DC(u32, struct_02036540*); +extern void sub_0805F300(struct_02036540*); +extern void sub_08050A64(u32); +extern void sub_08050AFC(u32); + +extern const struct_080FC844 gUnk_080FC844; +extern const u16 gUnk_080FC85C[][3]; +extern void (*const gUnk_080FC908[])(void); +extern const u16 gUnk_080FC8DE[]; +extern const u8 gGlobalGfxAndPalettes[]; +extern void (*const gUnk_080FC93C[])(); + +#endif \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index e4a00199..4f77c1cf 100644 --- a/include/functions.h +++ b/include/functions.h @@ -65,12 +65,6 @@ extern u32 IsItemEquipped(u32); extern void DeleteManager(Manager*); extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern u32 CheckIsDungeon(); -extern void HandleIntroScreen(void); -extern void HandleChooseFileScreen(void); -extern void HandleGameplayScreen(void); -extern void HandleGameOverScreen(void); -extern void HandleCreditsScreen(void); -extern void HandleDebugTextScreen(void); extern u32 GetTileTypeByEntity(Entity*); // Unidentified @@ -136,7 +130,7 @@ extern s32 sub_0807887C(Entity*, u32, u32); extern s32 sub_08078904(); extern void sub_0805E5A8(void); extern void sub_0805E5C0(void); -extern void sub_080AD90C(void); +extern void FlushSprites(void); extern void sub_080AD9B0(void); extern void sub_080AD918(void); extern void sub_0801E104(void); @@ -190,7 +184,7 @@ extern void sub_0804F578(void); extern void sub_08059994(void); extern s32 sub_0801CFA8(u32); extern void sub_080A3210(void); -extern void sub_080ADA14(u32, u32); +extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4 extern void sub_0801E1B8(u32, u32); extern void sub_0801E1EC(s32, s32, s32); extern void sub_08050008(void); @@ -203,7 +197,6 @@ extern u32 sub_080A4494(void); extern void sub_080A4528(void); extern void sub_080A4398(void); extern void sub_0801E738(u32); -extern void sub_080A70AC(const void*); extern void sub_080A7114(u32); extern void sub_08001324(Entity*); extern void sub_08001242(Entity*); @@ -219,7 +212,7 @@ extern void sub_0807A108(void); extern void sub_0801766C(Entity*); extern void sub_08004168(Entity*); extern u32 sub_08052638(u32); -extern void sub_0805616C(void); +extern void InitDMA(void); extern u32 sub_0807CF08(u32, u8*); extern void sub_0807CF48(u32); extern u32 sub_0807CF10(u8*); @@ -227,12 +220,11 @@ extern void sub_08056208(void); extern void sub_08050384(); extern void sub_080B1520(u32); extern struct_0807D1C4* sub_0807D1C4(u32); -extern u32 sub_0807D24C(u32, char*, u32); +extern u32 sub_0807D24C(u32, const char*, u32); extern void sub_0807CF68(u32); -extern void sub_0807D20C(u32, char*, u32); +extern void sub_0807D20C(u32, const char*, u32); extern u32 sub_0807CF88(u32, u8*); -extern u32 sub_0807D008(u32, void*); -extern void sub_0807D184(u32, char*); +extern void sub_0807D184(u32, const char*); extern u32 sub_0806F520(); extern void sub_0806F4E8(Entity*); extern u32 sub_0806F3E4(Entity*); @@ -323,7 +315,7 @@ extern void sub_08008790(Entity*, u32); extern void sub_0804ACF8(); extern void sub_08073904(Entity*); extern u32 sub_08056134(void); -extern u32 sub_0807CF30(void*); +extern u32 sub_0807CF30(SaveFile*); extern void sub_08004484(Entity*, Entity*); extern void sub_080564C8(u32); extern void sub_08056F70(void); diff --git a/include/main.h b/include/main.h index 71d6fbd0..767b9441 100644 --- a/include/main.h +++ b/include/main.h @@ -13,6 +13,26 @@ typedef struct { // 0x03001000 u8 field_0xb; u32 spritePriority; } MainStruct; +#define SIGNATURE 'MCZ3' +#define MAX_MSG_SPEED 3 +#define NUM_SAVE_SLOTS 3 +#define MAX_BRIGHTNESS 3 + +typedef enum { + LANGUAGE_JP, + LANGUAGE_EN, + LANGUAGE_FR, + LANGUAGE_DE, + LANGUAGE_ES, + LANGUAGE_IT, + NUM_LANGUAGES, +} Language; + +#ifdef ENGLISH +#define GAME_LANGUAGE LANGUAGE_EN +#else +#define GAME_LANGUAGE LANGUAGE_JP +#endif enum { SCREEN_INTRO, @@ -23,13 +43,6 @@ enum { SCREEN_DEBUG_TEXT, }; -#define GAME_LANGUAGE GAME_LANGUAGE_EN -#define SIGNATURE 'MCZ3' -#define GAME_LANGUAGE_EN 1 -#define MAX_MSG_SPEED 3 -#define MAX_SAVE_FILES 3 -#define MAX_BRIGHTNESS 3 - typedef struct { u8 interruptFlag; u8 field_0x1; @@ -47,7 +60,7 @@ typedef struct { typedef struct { /*0x00*/ u16 nextToLoad; - /*0x02*/ u8 transitionType; + /*0x02*/ u8 lastState; /*0x03*/ u8 field_0x3; /*0x04*/ u8 state; /*0x05*/ u8 field_0x5; @@ -62,7 +75,7 @@ static_assert(sizeof(UI) == 0x3b4); extern Main gUnk_03001000; extern UI gUnk_02032EC0; -extern void sub_080A3204(void); +extern void InitSound(void); extern void sub_0807CE90(void); extern void sub_080560B8(void); extern void sub_08056208(void); @@ -76,9 +89,19 @@ extern void ReadKeyInput(void); extern void DoSoftReset(void); extern void sub_08056260(void); extern void VBlankIntrWait(); -extern s32 _call_via_r0(s32); extern void sub_08056458(void); extern void sub_08050154(void); extern void sub_080A3480(void); +extern u8 gUnk_03003DE4; + +extern void sub_0804FF84(u32); +extern u16 gPaletteBuffer[]; +extern void VBlankInterruptWait(void); +extern void DisableInterruptsAndDMA(void); +extern void sub_08016B34(void); + +static void sub_08055F70(void); +static bool32 SoftResetKeysPressed(void); + #endif diff --git a/include/menu.h b/include/menu.h index 1203978e..7d8c2abd 100644 --- a/include/menu.h +++ b/include/menu.h @@ -17,9 +17,30 @@ typedef struct { u32 filler3[3]; } MenuControls; +typedef struct { + u8 key; + u8 value; +} KeySetting; + +typedef struct { + u8 aButtonX; + u8 aButtonY; + u8 aButtonText; + u8 bButtonX; + u8 bButtonY; + u8 bButtonText; + u8 rButtonX; + u8 rButtonY; + u8 rButtonText; + KeySetting settingDict[0]; + u8 eof; +} PACKED KeyButtonLayout; + +extern void sub_080A70AC(const KeyButtonLayout*); + typedef struct { u8 field_0x0; - u8 field_0x1; + u8 column_idx; u8 field_0x2; u8 field_0x3; u8 field_0x4; diff --git a/include/object.h b/include/object.h index b407ebb2..d0bdcea8 100644 --- a/include/object.h +++ b/include/object.h @@ -76,7 +76,7 @@ extern void Object44(Entity*); extern void Object45(Entity*); extern void GiantBookLadder(Entity*); extern void HeartContainer(Entity*); -extern void Object48(Entity*); +extern void FileScreenObjects(Entity*); extern void Object49(Entity*); extern void BackgroundCloud(Entity*); extern void Object4B(Entity*); diff --git a/include/save.h b/include/save.h new file mode 100644 index 00000000..bb044997 --- /dev/null +++ b/include/save.h @@ -0,0 +1,24 @@ +#ifndef SAVE_H +#define SAVE_H + +#include "global.h" +#include "entity.h" +#include "functions.h" +#include "menu.h" +#include "structures.h" + +typedef enum { + SAVE_BUSY = 0, + SAVE_OK = 1, + SAVE_ERROR = 0xFFFFFFFF, +} SaveResult; + +typedef enum { + SAVE_INIT, + SAVE_IN_PROGRESS, + SAVE_DONE, +} SaveState; + +extern u32 sub_0807CDA4(SaveState state); + +#endif \ No newline at end of file diff --git a/include/structures.h b/include/structures.h index fecc4af0..0e7f202b 100644 --- a/include/structures.h +++ b/include/structures.h @@ -114,14 +114,15 @@ typedef struct { } ScreenTransitionData; typedef struct { - /*0x00*/ u8 unk0; + /*0x00*/ u8 isTransitioning; /*0x01*/ u8 unk1; /*0x02*/ u8 unk2; /*0x03*/ u8 unk3; /*0x04*/ u8 filler4[0x2]; /*0x06*/ u8 unk6; /*0x07*/ u8 unk7; - /*0x08*/ s8 unk8[0xE20]; + /*0x08*/ s8 saveStatus[3]; + /*0x0b*/ u8 unkB[0xE1D]; } struct_02019EE0; extern struct_02019EE0 gUnk_02019EE0; @@ -147,9 +148,9 @@ extern struct_03000FD0 gFadeControl; typedef struct { u8 filler0[0x1A]; - u16 unk1A; + u16 rButtonX; u8 filler1C[0x4]; - u16 unk20; + u16 rButtonY; u8 filler22[0x2]; u8 ezloNagFuncIndex; u8 filler25[0x30F]; @@ -200,6 +201,7 @@ typedef struct { } BGBuffer; extern BGBuffer gBG0Buffer; extern BGBuffer gBG1Buffer; +extern BGBuffer gBG2Buffer; static_assert(sizeof(BGBuffer) == 0x800); /* diff --git a/include/textbox.h b/include/textbox.h index 8089e3bc..4b0333a5 100644 --- a/include/textbox.h +++ b/include/textbox.h @@ -19,10 +19,46 @@ typedef struct { u16 field_0xe; u32 field_0x10; } TextBox; - extern TextBox gTextBox; -void TextboxNoOverlap(u32 index, Entity* ent); +typedef struct { + u8 _0; + u8 _1; + u8 _2; + u8 _3[5]; + u16 _8; + u8 _b[0x16]; + u8 _20; + u8 _21; + u8 _22[0xa]; + void* _2c; + u8 _30[0x23]; + u8 _53; + u16 _54; + u8 _56[0x2]; + void* _58; + u8 _5c; + u8 _5d; + u8 _5e[24]; + u8 _76; + u8 _77[0x11]; + u8 _88; + u8 _89; + u8 _8a; + u8 _8b[0xe]; + u8 _99; + u8 _9a; + u8 _9b; + u8 _9c; + u8 _9d; + u8 _9e[0xa]; +} struct_02022780; +extern struct_02022780 gUnk_02022780; +static_assert(sizeof(struct_02022780) == 0xa8); + +void ShowTextbox(u32 index); +void TextboxAtPosition(u32 index, u32 x, u32 y); +void TextboxNoOverlap(u32 index, Entity* ent); +void TextboxNoOverlapFollow(u32 index); -extern void TextboxNoOverlapFollow(u32 index); #endif diff --git a/linker.ld b/linker.ld index f904239b..74df0a87 100644 --- a/linker.ld +++ b/linker.ld @@ -87,7 +87,11 @@ SECTIONS { . = 0x00022740; gUnk_02022740 = .; . = 0x00022750; gUnk_02022750 = .; . = 0x00022780; gUnk_02022780 = .; + . = 0x000227DC; gUnk_020227DC = .; . = 0x000227E8; gUnk_020227E8 = .; + . = 0x000227F0; gUnk_020227F0 = .; + . = 0x000227F8; gUnk_020227F8 = .; + . = 0x00022800; gUnk_02022800 = .; . = 0x0002281E; gUnk_0202281E = .; . = 0x00022830; gUnk_02022830 = .; . = 0x00024030; gUnk_02024030 = .; @@ -124,7 +128,7 @@ SECTIONS { . = 0x00034490; gUnk_02034490 = .; . = 0x00034492; gUnk_02034492 = .; . = 0x000344A0; gUnk_020344A0 = .; - . = 0x000344B0; gUnk_020344B0 = .; + . = 0x000344B0; gBG2Buffer = .; . = 0x000344F0; gUnk_020344F0 = .; . = 0x00034CB0; gBG0Buffer = .; . = 0x00034CB2; gUnk_02034CB2 = .; @@ -452,8 +456,8 @@ SECTIONS { src/sub_08050008.o(.text); src/sub_08050024.o(.text); asm/code_08050038.o(.text); - src/chooseFile.o(.text); - asm/chooseFile.o(.text); + src/fileScreen.o(.text); + asm/fileScreen.o(.text); asm/sub_08052418.o(.text); src/initializePlayer.o(.text); src/area.o(.text); @@ -671,7 +675,7 @@ SECTIONS { asm/getInventoryValue.o(.text); asm/code_0807CAA0.o(.text); src/flags.o(.text); - src/code_0807CC3C.o(.text); + src/save.o(.text); asm/code_0807CC3C.o(.text); src/executeScriptCommandSet.o(.text); asm/code_0807F0D8.o(.text); @@ -755,7 +759,7 @@ SECTIONS { asm/object45.o(.text); asm/giantBookLadder.o(.text); src/object/heartContainer.o(.text); - src/object/object48.o(.text); + src/object/fileScreenObjects.o(.text); src/object/object49.o(.text); src/object/backgroundCloud.o(.text); asm/object4B.o(.text); @@ -992,20 +996,23 @@ SECTIONS { data/data_080D3D94.o(.rodata); data/entity_headers.o(.rodata); data/data_080D5360.o(.rodata); + src/fileScreen.o(.rodata); + data/data_080FC8A4.o(.rodata); src/main.o(.rodata); data/tileset_headers.o(.rodata); data/metatile_headers.o(.rodata); data/map_headers.o(.rodata); + src/textbox.o(.rodata); data/data_08107BC8.o(.rodata); src/manager/manager5.o(.rodata); src/manager/manager7.o(.rodata); . = ALIGN(4); - src/manager/manager9.o(.rodata); - src/manager/managerA.o(.rodata); + src/manager/manager9.o(.rodata); + src/manager/managerA.o(.rodata); src/manager/managerB.o(.rodata); src/manager/managerC.o(.rodata); data/data_08108308.o(.rodata); - src/manager/manager1E.o(.rodata); + src/manager/manager1E.o(.rodata); data/data_08108C94.o(.rodata); src/manager/manager26.o(.rodata); src/manager/manager27.o(.rodata); @@ -1014,8 +1021,9 @@ SECTIONS { src/item.o(.rodata); data/data_0811BD44.o(.rodata); data/room_headers.o(.rodata); + src/save.o(.rodata); data/data_0811E454.o(.rodata); - src/executeScriptCommandSet.o(.rodata); + src/executeScriptCommandSet.o(.rodata); data/data_0811E750.o(.rodata); src/object/greatFairy.o(.rodata); data/animations/greatFairy.o(.rodata); diff --git a/src/chooseFile.c b/src/chooseFile.c deleted file mode 100644 index e20247f1..00000000 --- a/src/chooseFile.c +++ /dev/null @@ -1,557 +0,0 @@ -#include "global.h" -#include "functions.h" -#include "main.h" -#include "player.h" -#include "readKeyInput.h" -#include "screen.h" - -typedef struct { - u8 filler0[0x5]; - u8 state; - u8 subState; - u16 timer; - u8 fillerA[0x26]; -} ChooseFileState; - -// TODO: This occupies the same memory region as gMenu -extern ChooseFileState gChooseFileState; - -typedef struct { - u8 filler0[0x1]; - u8 unk1; - u8 unk2; - u8 unk3; - u16 unk4; - u16 unk6; - u8* unk8; -} struct_02036540; - -typedef struct { - u8 filler0[0x10]; - u16 unk10; - u8 filler12[0x6]; -} struct_080FC844; - -typedef struct { - u8 filler0[0x4]; -} struct_020227E8; - -extern struct_020227E8 gUnk_020227E8; - -extern SaveFile gSaveFiles[]; -extern u32 gUsedPalettes; -extern u8 gUnk_02000D00[]; -extern u16 gUnk_03001010[5]; - -static void sub_08050624(u32); -static void sub_0805066C(void); -static void sub_080507FC(void); - -extern void sub_08056FEC(u32, struct_020227E8*); -extern void sub_0805F46C(u32, struct_080FC844*); -extern void sub_0801C4A0(u32, u32); -extern void sub_08080668(void); -extern void sub_0805194C(u32); -extern void LoadPalettes(const u8*, int, int); -extern struct_02036540* sub_0805F2C8(void); -extern void sub_0805F7DC(u32, struct_02036540*); -extern void sub_0805F300(struct_02036540*); -extern void sub_08050A64(u32); -extern void sub_08050AFC(u32); - -extern const struct_080FC844 gUnk_080FC844; -extern const u16 gUnk_080FC85C[][3]; -extern void (*const gUnk_080FC8A4[])(void); -extern void (*const gUnk_080FC8B0[])(void); -extern void (*const gUnk_080FC8FC[])(void); -extern void (*const gUnk_080FC908[])(void); -extern const u8 gUnk_080FC8D0[]; -extern const u16 gUnk_080FC8DE[]; -extern const u8 gGlobalGfxAndPalettes[]; - -void sub_08050318(u32 arg0, u32 arg1) { - u32 sfx; - struct_080FC844 var0; - - sub_08050384(); - _DmaCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844)); - sub_08056FEC(arg1, &gUnk_020227E8); - var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC; - sub_0805F46C(gUnk_080FC85C[arg0][1], &var0); - sfx = gUnk_080FC85C[arg0][2]; - if (sfx) { - PlaySFX(sfx); - } - gScreen.bg.bg3Control = 1; -} - -void sub_08050384(void) { - sub_0801C4A0(0, 0); - _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); - gScreen.bg.bg3Control = 1; -} - -void sub_080503A8(u32 gfxGroup) { - LoadGfxGroup(gfxGroup); - gScreen.bg.bg2yOffset = 1; - gScreen.affine.unk = 1; -} - -void sub_080503BC(u8 state) { - gUnk_02032EC0.state = state; - _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); - _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); -} - -void sub_080503E4(u32 saveFileId) { - u8 messageSpeed; - u8 brightnessPref; - - if (saveFileId > 2) { - messageSpeed = 1; - brightnessPref = 1; - } else { - SaveFile* saveFile = &gSaveFiles[saveFileId]; - messageSpeed = saveFile->messageSpeed; - brightnessPref = saveFile->brightnessPref; - } - - ((struct_02000000*)0x2000000)->messageSpeed = messageSpeed; - ((struct_02000000*)0x2000000)->brightnessPref = brightnessPref; - gUsedPalettes = 0xFFFFFFFF; -} - -void sub_0805041C(u32 saveFileId) { - SaveFile* saveFile; - - if (saveFileId < 3) { - ((struct_02000000*)0x2000000)->saveFileId = saveFileId; - saveFile = &gSaveFiles[saveFileId]; - _DmaCopy(saveFile, &gUnk_02002A40, sizeof(*saveFile)); - } - sub_080503E4(saveFileId); -} - -void HandleChooseFileScreen(void) { - sub_080AD90C(); - gUnk_080FC8A4[gUnk_03001000.funcIndex](); - if (gUnk_02032EC0.transitionType != gUnk_02032EC0.state) { - gUnk_02032EC0.transitionType = gUnk_02032EC0.state; - gScreen.bg.bg1Control = 0; - gScreen.bg.bg2Control = 0; - gScreen.bg.bg1yOffset = 0; - gScreen.bg.bg2xOffset = 0; - gScreen.affine.bg2xOffset = 0; - gScreen.affine.bg2yOffset = 0; - _DmaZero(&gChooseFileState, sizeof(gChooseFileState)); - } - - sub_080507FC(); - gUnk_080FC8B0[gUnk_02032EC0.transitionType](); - gUnk_02019EE0.unk0 = 0; - sub_0805E5C0(); - sub_0805066C(); - sub_0801C1D4(); - sub_0801C208(); - sub_080AD9B0(); - sub_080AD918(); - if (gUnk_02019EE0.unk3 != ((struct_02000000*)0x2000000)->gameLanguage) { - gUnk_02019EE0.unk3 = ((struct_02000000*)0x2000000)->gameLanguage; - sub_080503A8(0x6); - sub_080503A8(0xF); - } -} - -void sub_080504F4(void) { - u32 i; - - sub_0801DA90(1); - sub_080A3210(); - _DmaZero((void*)VRAM, 0x80); - sub_08056418(); - EraseAllEntities(); - sub_08080668(); - sub_080ADD30(); - sub_0801CFA8(0); - _DmaZero(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); - _DmaZero(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); - gUnk_02019EE0.unk3 = 7; - gUnk_02019EE0.unk6 = ((struct_02000000*)0x2000000)->gameLanguage > 1 ? 3 : 0; - _DmaZero(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); - gUnk_02032EC0.transitionType = 8; - sub_080503BC(0); - sub_0805616C(); - sub_08050624(0); - sub_08050624(1); - sub_08050624(2); - sub_08056208(); - sub_080503A8(0x5); - LoadPaletteGroup(0x9); - for (i = 0; i < 26; i++) { - CreateObject(0x48, i, 0); - } - - sub_080A70AC(gUnk_080FC8D0); - sub_080507FC(); - gScreen.lcd.displayControl |= 0x1F00; - gScreen.affine.bg3Control = 0x1E0B; - gScreen.controls.layerFXControl = 0x844; - gScreen.controls.alphaBlend = BLDALPHA_BLEND(15, 10); - gUnk_02024490.unk0 = 1; - gUnk_03001000.funcIndex = 1; - PlaySFX(0x7); - DoFade(4, 8); -} - -void nullsub_479(void) { -} - -void sub_0805060C(void) { - if (!gFadeControl.active) { - InitScreen(SCREEN_GAMEPLAY); - } -} - -static void sub_08050624(u32 saveFileId) { - SaveFile* saveFile = &gSaveFiles[saveFileId]; - int var0 = sub_0807CF28(saveFileId, saveFile); - switch (var0) { - case -1: - sub_0807CF48(saveFileId); - // fallthrough - case 0: - sub_0805194C(saveFileId); - break; - } - gUnk_02019EE0.unk8[saveFileId] = var0; -} - -static void sub_0805066C(void) { - u32 loadNewPalette; - const u8* paletteOffset; - - loadNewPalette = FALSE; - if (--gUnk_02019EE0.unk1 == 0) { - gUnk_02019EE0.unk1 = 16; - gUnk_02019EE0.unk2 = (gUnk_02019EE0.unk2 + 1) % 15; - loadNewPalette = TRUE; - } - - if (gUnk_02019EE0.unk2 == 0) { - gUnk_02019EE0.unk2 = 1; - gUnk_02019EE0.unk1 = (Random() & 0x7) * 16 + 8; - loadNewPalette = TRUE; - } - - if (loadNewPalette) { - paletteOffset = &gGlobalGfxAndPalettes[gUnk_080FC8DE[gUnk_02019EE0.unk2]]; - LoadPalettes(&paletteOffset[0x11AA0], 11, 1); - LoadPalettes(&paletteOffset[0x11BA0], 12, 1); - LoadPalettes(&paletteOffset[0x11CA0], 13, 1); - LoadPalettes(&paletteOffset[0x11DA0], 14, 1); - } -} - -void sub_0805070C(void) { - u32 i; - int j; - struct_02036540* var0; - u8* playerName; - - var0 = sub_0805F2C8(); - if (var0) { - var0->unk2 = 0; - var0->unk3 = 5; - var0->unk1 = 1; - var0->unk4 = 0x30; - var0->unk8 = gUnk_02000D00; - for (i = 0; i < 3; i++) { - var0->unk6 = 0; - _DmaZero(var0->unk8, 0x200); - playerName = gSaveFiles[i].playerName; - for (j = 0; j < 6; j++) { - sub_0805F7DC(playerName[j], var0); - } - _DmaCopy(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200); - } - sub_0805F300(var0); - } -} - -void sub_08050790(void) { - u32 i, j; - struct_02036540* var0; - u32 var1; - - var0 = sub_0805F2C8(); - if (var0) { - var0->unk2 = 0; - var0->unk3 = 5; - var0->unk1 = 1; - var0->unk4 = 0x80; - var0->unk8 = gUnk_02000D00; - for (i = 0; i < 16; i++) { - var0->unk6 = 0; - var1 = i * 16; - for (j = 0; j < 16; j++) { - sub_0805F7DC(var1, var0); - var1++; - } - _DmaCopy(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400); - } - sub_0805F300(var0); - } -} - -static void sub_080507FC(void) { - gUnk_0200AF00.unk1A = 0x140; - gUnk_0200AF00.unk20 = 0x24; -} - -void sub_08050810(void) { - gUnk_0200AF00.unk1A = 0xD0; - gUnk_0200AF00.unk20 = 0x24; -} - -void sub_08050820(void) { - gUnk_080FC8FC[gChooseFileState.state](); - sub_08050A64(gUnk_02019EE0.unk6); -} - -void sub_08050848(void) { - sub_080503A8(0x7); - sub_0805070C(); - gUnk_02019EE0.unk7 = 0; - sub_08050AFC(gUnk_02019EE0.unk6); - sub_080A7114(1); -} - -void sub_0805086C(void) { - gUnk_080FC908[gChooseFileState.subState](); -} - -void sub_08050888(void) { - if (!gFadeControl.active) { - switch (gUnk_02019EE0.unk8[gUnk_02019EE0.unk7]) { - case 0: - sub_0805194C(gUnk_02019EE0.unk7); - gChooseFileState.subState = 2; - break; - case 1: - gChooseFileState.subState = 2; - break; - default: - sub_0805194C(gUnk_02019EE0.unk7); - sub_08050318(0, gUnk_02019EE0.unk7 + 1); - gChooseFileState.timer = 30; - gChooseFileState.subState = 1; - break; - } - } -} - -void sub_080508E4(void) { - if (gChooseFileState.timer == 0) { - if (gUnk_03000FF0.newKeys & (A_BUTTON | START_BUTTON)) { - gChooseFileState.subState = 2; - } - } else { - gChooseFileState.timer--; - } -} - -void sub_08050910(void) { - sub_08050384(); - if (++gUnk_02019EE0.unk7 > 2) { - sub_080A7114(2); - } else { - gChooseFileState.subState = 0; - } -} - -void sub_08050940(void) { - int saveFileId; - u32 newKeys; - int var1; - u32 var2; - - if (gUnk_02019EE0.unk0) { - return; - } - - saveFileId = gUnk_02019EE0.unk6; - newKeys = gUnk_03000FF0.newKeys; - if ((gUnk_03000FF0.heldKeys & L_BUTTON) && gUnk_02019EE0.unk8[saveFileId] == 1) { - newKeys &= ~(DPAD_UP | DPAD_DOWN); - } - - var1 = ((struct_02000000*)0x2000000)->gameLanguage > 1 ? 4 : 3; - var2 = gUnk_02032EC0.transitionType; - switch (newKeys) { - case DPAD_UP: - if (saveFileId > 0) { - saveFileId--; - } - break; - case DPAD_DOWN: - if (var1 - 1 > saveFileId) { - saveFileId++; - } - break; - case R_BUTTON: - if (gUnk_02019EE0.unk8[saveFileId] == 1) { - var2 = 3; - } - break; - case A_BUTTON: - case START_BUTTON: - sub_0805041C(saveFileId); - if (saveFileId == 3) { - var2 = 2; - } else { - switch (gUnk_02019EE0.unk8[saveFileId]) { - case 0: - var2 = 1; - break; - case 1: - var2 = 4; - break; - } - } - break; - } - - if (gUnk_02032EC0.transitionType != var2) { - sub_080503BC(var2); - PlaySFX(0x6A); - } - - saveFileId = (saveFileId + var1) % var1; - if (gUnk_02019EE0.unk6 != saveFileId) { - gUnk_02019EE0.unk6 = saveFileId; - sub_08050AFC(saveFileId); - PlaySFX(0x69); - } - - if (gUnk_02019EE0.unk8[gUnk_02019EE0.unk6] == 1) { - sub_08050810(); - } -} - -void sub_08050A64(u32 saveFileId) { - if (gUnk_02019EE0.unk8[saveFileId] != 1) { - return; - } - - gUnk_03001010[2] = 0; - gUnk_03001010[3] = 0; - gUnk_03001010[4] = 0x400; - - // Draw the save file's obtained elements. - if (GetInventoryValue(0x40)) { - gUnk_03001010[0] = 0xA2; - gUnk_03001010[1] = 0x36; - sub_080ADA14(0x145, 0x24); - } - if (GetInventoryValue(0x41)) { - gUnk_03001010[0] = 0x96; - gUnk_03001010[1] = 0x3D; - sub_080ADA14(0x145, 0x22); - } - if (GetInventoryValue(0x42)) { - gUnk_03001010[0] = 0xAE; - gUnk_03001010[1] = 0x3D; - sub_080ADA14(0x145, 0x23); - } - if (GetInventoryValue(0x43)) { - gUnk_03001010[0] = 0xA2; - gUnk_03001010[1] = 0x44; - sub_080ADA14(0x145, 0x21); - } -} - -void sub_08050B3C(u16*); - -void sub_08050AFC(u32 saveFileId) { - sub_0805041C(saveFileId); - _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); - if (gUnk_02019EE0.unk8[saveFileId] == 1) { - sub_08050B3C(&gBG1Buffer.unk29C); - } - gScreen.bg.bg2yOffset = 1; -} - -// typedef struct { -// u16* unk0; -// u32 unk4; -// } unk_08050B3C; - -// extern const u16 gUnk_080FC914[]; - -// void sub_08050B3C(u16* arg0) { -// unk_08050B3C sp; -// int var0; -// int var1; -// int var2; -// int var3; -// int var4; -// int var5; -// int var6; -// int var7; -// u16* var8; - -// sp.unk0 = arg0; -// var0 = gUnk_02002A40.stats.health * 2; -// if (var0 == 0) { -// var0 = 1; -// } - -// var1 = gUnk_02002A40.stats.maxHealth * 2; -// if (var1 == 0) { -// return; -// } - -// if (var0 > var1) { -// var0 = var1; -// } - -// sp.unk4 = var0 & 0x3; -// var2 = var0 >> 2; -// var5 = var2; -// if (var2 > 10) { -// var5 = 10; -// } - -// var6 = var2; -// var6 -= 10; -// var7 = var6; -// if (var6 < 0) { -// var7 = 0; -// } - -// var1 = var1 >> 2; -// var4 = var1; -// if (var1 > 10) { -// var1 = 10; -// } - -// var4 -= 10; -// sp.unk0[0] = 0xF24C; -// DmaCopy16(3, &gUnk_080FC914[10 - var5], &sp.unk0[1], var1 * 2); -// if (var4 > 0) { -// sp.unk0[0x20] = 0xF24C; -// DmaCopy16(3, &gUnk_080FC914[10 - var7], &sp.unk0[1], var4 * 2); -// } - -// if (!sp.unk4) { -// return; -// } - -// var8 = sp.unk0; -// if (var2 >= 10) { -// var2 = var6; -// var8 += 0x20; -// } - -// var8[var2 + 1] = sp.unk4 - 0xDB3; -// } diff --git a/src/code_0804AA84.c b/src/code_0804AA84.c index 11db91d7..aa46613c 100644 --- a/src/code_0804AA84.c +++ b/src/code_0804AA84.c @@ -47,7 +47,7 @@ void sub_0804AAD4(void) { void sub_0804AB04(void) { sub_0805E5C0(); if (gArea.field_0x10 != 0) { - sub_080AD90C(); + FlushSprites(); sub_080AD9B0(); sub_080AD918(); } diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 74caf177..1916869c 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -39,7 +39,6 @@ void sub_08080910(void) { void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { DoExitTransition(param_1); gScreenTransition.transitionType = param_2; - return; } void sub_08080930(void) @@ -50,7 +49,6 @@ void sub_08080930(void) gRoomControls.unk2 = 2; gRoomControls.filler[0] = 0; sub_0805E5A8(); - return; } u32* GetLayerByIndex(u32 param_1) { @@ -65,7 +63,6 @@ u32* GetLayerByIndex(u32 param_1) { void sub_08080964(u32 time, u32 magnitude) { gRoomControls.screenShakeTime = time; gRoomControls.screenShakeMagnitude = magnitude & 7; - return; } void sub_08080974(u32 arg0, u32 arg1) { diff --git a/src/fileScreen.c b/src/fileScreen.c new file mode 100644 index 00000000..5e96d7e7 --- /dev/null +++ b/src/fileScreen.c @@ -0,0 +1,680 @@ +#include "fileScreen.h" + +// copy, erase, start +#define NUM_FILE_OPERATIONS 3 + +// todo: does this belong with gUnk_02019EE0? +typedef enum { + SAVE_EMPTY = 0, + SAVE_VALID = 1, + SAVE_DELETED = 0xFFFFFFFF, +} SaveStatus; + +typedef enum { + STATE_NONE, + STATE_NEW, + STATE_CHOOSE_LANG, + STATE_OPTIONS, + STATE_VIEW, + STATE_COPY, + STATE_ERASE, + STATE_START, +} FileSelectState; + +static void HandleFileScreenEnter(void); +static void HandleFileScreenActive(void); +static void HandleFileScreenExit(void); + +static void (*const sScreenHandlers[])(void) = { + HandleFileScreenEnter, + HandleFileScreenActive, + HandleFileScreenExit, +}; + +static void HandleFileSelect(void); +extern void HandleFileNew(void); +static void HandleFileLanguageSelect(void); +extern void HandleFileOptions(void); +static void HandleFileView(void); +extern void HandleFileCopy(void); +extern void HandleFileDelete(void); +extern void HandleFileStart(void); + +static void (*const sFileScreenSubHandlers[])(void) = { + HandleFileSelect, HandleFileNew, HandleFileLanguageSelect, HandleFileOptions, + HandleFileView, HandleFileCopy, HandleFileDelete, HandleFileStart, +}; + +extern KeyButtonLayout gUnk_080FC8D0; +// static const KeyButtonLayout gUnk_080FC8D0 = { +// 0xFF, 0xD8, 0x0, 0xFF, 0xD8, 0x0, 0xE0, 0x10, 0xF, {{0x5, 0x0}, { 0x2, 0x0 }}, 0xFF +// }; + +// main "file selection" screen +extern void (*const sFileSelectDefaultHandlers[])(void); + +// handles submenus +extern void (*const sFileScreenSubHandlers[])(void); + +extern void (*const gUnk_080FC944[])(void); + +static void sub_08050624(u32); +static void sub_0805066C(void); +static void HideButtonR(void); +static void ShowButtonR(void); + +void sub_08050318(u32 arg0, u32 arg1) { + u32 sfx; + struct_080FC844 var0; + + sub_08050384(); + _DmaCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844)); + sub_08056FEC(arg1, &gUnk_020227E8); + var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC; + sub_0805F46C(gUnk_080FC85C[arg0][1], &var0); + sfx = gUnk_080FC85C[arg0][2]; + if (sfx) { + PlaySFX(sfx); + } + gScreen.bg.bg3Control = BGCNT_PRIORITY(1); +} + +void sub_08050384(void) { + sub_0801C4A0(0, 0); + _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); + gScreen.bg.bg3Control = BGCNT_PRIORITY(1); +} + +void sub_080503A8(u32 gfxGroup) { + LoadGfxGroup(gfxGroup); + gScreen.bg.bg2yOffset = 1; + gScreen.affine.unk = 1; +} + +void SetFileSelectState(FileSelectState mode) { + gUnk_02032EC0.state = mode; + _DmaZero(&gBG0Buffer, sizeof(gBG0Buffer)); + _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); +} + +void LoadOptionsFromSave(u32 idx) { + u8 messageSpeed; + u8 brightnessPref; + + if (idx >= NUM_SAVE_SLOTS) { + // these apply to the language selection screen + messageSpeed = 1; + brightnessPref = 1; + } else { + SaveFile* saveFile = &gSaveFiles[idx]; + messageSpeed = saveFile->messageSpeed; + brightnessPref = saveFile->brightnessPref; + } + + gUnk_02000000->messageSpeed = messageSpeed; + gUnk_02000000->brightnessPref = brightnessPref; + gUsedPalettes = 0xFFFFFFFF; +} + +void SetActiveSave(u32 idx) { + if (idx < NUM_SAVE_SLOTS) { + gUnk_02000000->saveFileId = idx; + _DmaCopy(&gSaveFiles[idx], &gUnk_02002A40, sizeof(gSaveFiles[idx])); + } + LoadOptionsFromSave(idx); +} + +void HandleChooseFileScreen(void) { + FlushSprites(); + sScreenHandlers[gUnk_03001000.funcIndex](); + if (gUnk_02032EC0.lastState != gUnk_02032EC0.state) { + gUnk_02032EC0.lastState = gUnk_02032EC0.state; + gScreen.bg.bg1Control = 0; + gScreen.bg.bg2Control = 0; + gScreen.bg.bg1yOffset = 0; + gScreen.bg.bg2xOffset = 0; + gScreen.affine.bg2xOffset = 0; + gScreen.affine.bg2yOffset = 0; + _DmaZero(&gChooseFileState, sizeof(gChooseFileState)); + } + + HideButtonR(); + sFileScreenSubHandlers[gUnk_02032EC0.lastState](); + + gUnk_02019EE0.isTransitioning = FALSE; + sub_0805E5C0(); + sub_0805066C(); + sub_0801C1D4(); + sub_0801C208(); + sub_080AD9B0(); + sub_080AD918(); + if (gUnk_02019EE0.unk3 != gUnk_02000000->gameLanguage) { + gUnk_02019EE0.unk3 = gUnk_02000000->gameLanguage; + sub_080503A8(0x6); + sub_080503A8(0xF); + } +} + +static void HandleFileScreenEnter(void) { + u32 i; + + sub_0801DA90(1); + sub_080A3210(); + _DmaZero((void*)VRAM, 0x80); // clear palettes + sub_08056418(); + EraseAllEntities(); + sub_08080668(); + sub_080ADD30(); + sub_0801CFA8(0); + _DmaZero(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); + _DmaZero(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); + gUnk_02019EE0.unk3 = 7; + gUnk_02019EE0.unk6 = gUnk_02000000->gameLanguage > LANGUAGE_EN ? 3 : 0; + _DmaZero(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); + gUnk_02032EC0.lastState = 8; + SetFileSelectState(STATE_NONE); + InitDMA(); + sub_08050624(0); + sub_08050624(1); + sub_08050624(2); + sub_08056208(); + sub_080503A8(0x5); + LoadPaletteGroup(0x9); + for (i = 0; i < 26; i++) { + CreateObject(0x48, i, 0); + } + + sub_080A70AC(&gUnk_080FC8D0); + HideButtonR(); + gScreen.lcd.displayControl |= DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON; + gScreen.affine.bg3Control = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(30); + gScreen.controls.layerFXControl = BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND; + gScreen.controls.alphaBlend = BLDALPHA_BLEND(15, 10); + gUnk_02024490.unk0 = 1; + gUnk_03001000.funcIndex = 1; + PlaySFX(0x7); + DoFade(4, 8); +} + +static void HandleFileScreenActive(void) { +} + +static void HandleFileScreenExit(void) { + if (!gFadeControl.active) { + InitScreen(SCREEN_GAMEPLAY); + } +} + +static void sub_08050624(u32 idx) { + SaveFile* saveFile = &gSaveFiles[idx]; + int status = sub_0807CF28(idx, saveFile); + switch (status) { + case SAVE_DELETED: + sub_0807CF48(idx); + // fallthrough + case SAVE_EMPTY: + sub_0805194C(idx); + break; + } + gUnk_02019EE0.saveStatus[idx] = status; +} + +static void sub_0805066C(void) { + u32 loadNewPalette; + const u8* paletteOffset; + + loadNewPalette = FALSE; + if (--gUnk_02019EE0.unk1 == 0) { + gUnk_02019EE0.unk1 = 16; + gUnk_02019EE0.unk2 = (gUnk_02019EE0.unk2 + 1) % 15; + loadNewPalette = TRUE; + } + + if (gUnk_02019EE0.unk2 == 0) { + gUnk_02019EE0.unk2 = 1; + gUnk_02019EE0.unk1 = (Random() & 0x7) * 16 + 8; + loadNewPalette = TRUE; + } + + if (loadNewPalette) { + paletteOffset = &gGlobalGfxAndPalettes[gUnk_080FC8DE[gUnk_02019EE0.unk2]]; + LoadPalettes(&paletteOffset[0x11AA0], 11, 1); + LoadPalettes(&paletteOffset[0x11BA0], 12, 1); + LoadPalettes(&paletteOffset[0x11CA0], 13, 1); + LoadPalettes(&paletteOffset[0x11DA0], 14, 1); + } +} + +void sub_0805070C(void) { + u32 i; + int j; + struct_02036540* var0; + u8* playerName; + + var0 = sub_0805F2C8(); + if (var0) { + var0->charColor = 0; + var0->bgColor = 5; + var0->unk1 = 1; + var0->unk4 = 0x30; + var0->unk8 = gUnk_02000D00; + for (i = 0; i < 3; i++) { + var0->unk6 = 0; + _DmaZero(var0->unk8, 0x200); + playerName = gSaveFiles[i].playerName; + for (j = 0; j < 6; j++) { + sub_0805F7DC(playerName[j], var0); + } + // i is a struct of size 0x200 + _DmaCopy(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200); + } + sub_0805F300(var0); + } +} + +void sub_08050790(void) { + u32 i, j; + struct_02036540* var0; + u32 var1; + + var0 = sub_0805F2C8(); + if (var0) { + var0->charColor = 0; + var0->bgColor = 5; + var0->unk1 = 1; + var0->unk4 = 0x80; + var0->unk8 = gUnk_02000D00; + for (i = 0; i < 16; i++) { + var0->unk6 = 0; + var1 = i * 16; + for (j = 0; j < 16; j++) { + sub_0805F7DC(var1, var0); + var1++; + } + _DmaCopy(gUnk_02000D00, (void*)(BG_VRAM + i * 0x400), 0x400); + } + sub_0805F300(var0); + } +} + +static void HideButtonR(void) { + gUnk_0200AF00.rButtonX = 0x140; + gUnk_0200AF00.rButtonY = 0x24; +} + +static void ShowButtonR(void) { + gUnk_0200AF00.rButtonX = 0xD0; + gUnk_0200AF00.rButtonY = 0x24; +} + +static void HandleFileSelect(void) { + sFileSelectDefaultHandlers[gChooseFileState.state](); + sub_08050A64(gUnk_02019EE0.unk6); +} + +void sub_08050848(void) { + sub_080503A8(0x7); + sub_0805070C(); + gUnk_02019EE0.unk7 = 0; + sub_08050AFC(gUnk_02019EE0.unk6); + sub_080A7114(1); +} + +void sub_0805086C(void) { + gUnk_080FC908[gChooseFileState.subState](); +} + +// transitioning away from submenu +void sub_08050888(void) { + if (!gFadeControl.active) { + switch (gUnk_02019EE0.saveStatus[gUnk_02019EE0.unk7]) { + case SAVE_EMPTY: + sub_0805194C(gUnk_02019EE0.unk7); + gChooseFileState.subState = 2; + break; + case SAVE_VALID: + gChooseFileState.subState = 2; + break; + default: + sub_0805194C(gUnk_02019EE0.unk7); + sub_08050318(0, gUnk_02019EE0.unk7 + 1); + gChooseFileState.timer = 30; + gChooseFileState.subState = 1; + break; + } + } +} + +void sub_080508E4(void) { + if (gChooseFileState.timer == 0) { + if (gUnk_03000FF0.newKeys & (A_BUTTON | START_BUTTON)) { + gChooseFileState.subState = 2; + } + } else { + gChooseFileState.timer--; + } +} + +void sub_08050910(void) { + sub_08050384(); + if (++gUnk_02019EE0.unk7 > 2) { + sub_080A7114(2); + } else { + gChooseFileState.subState = 0; + } +} + +void sub_08050940(void) { + int row_idx; + u32 keys; + int num_rows; + FileSelectState mode; + + if (gUnk_02019EE0.isTransitioning) { + return; + } + + row_idx = gUnk_02019EE0.unk6; + keys = gUnk_03000FF0.newKeys; + if ((gUnk_03000FF0.heldKeys & L_BUTTON) && gUnk_02019EE0.saveStatus[row_idx] == SAVE_VALID) { + keys &= ~(DPAD_UP | DPAD_DOWN); + } + + num_rows = gUnk_02000000->gameLanguage > GAME_LANGUAGE ? NUM_SAVE_SLOTS + 1 : NUM_SAVE_SLOTS; + mode = gUnk_02032EC0.lastState; + switch (keys) { + case DPAD_UP: + if (row_idx > 0) + row_idx--; + break; + case DPAD_DOWN: + if (num_rows - 1 > row_idx) + row_idx++; + break; + case R_BUTTON: + if (gUnk_02019EE0.saveStatus[row_idx] == SAVE_VALID) + mode = STATE_OPTIONS; + break; + case A_BUTTON: + case START_BUTTON: + SetActiveSave(row_idx); + if (row_idx == 3) + mode = STATE_CHOOSE_LANG; + else + switch (gUnk_02019EE0.saveStatus[row_idx]) { + case SAVE_EMPTY: + mode = STATE_NEW; + break; + case SAVE_VALID: + mode = STATE_VIEW; + break; + } + break; + } + + if (gUnk_02032EC0.lastState != mode) { + SetFileSelectState(mode); + PlaySFX(0x6A); + } + + row_idx = (row_idx + num_rows) % num_rows; + if (gUnk_02019EE0.unk6 != row_idx) { + gUnk_02019EE0.unk6 = row_idx; + sub_08050AFC(row_idx); + PlaySFX(0x69); + } + + if (gUnk_02019EE0.saveStatus[gUnk_02019EE0.unk6] == SAVE_VALID) { + ShowButtonR(); + } +} + +void sub_08050A64(u32 idx) { + if (gUnk_02019EE0.saveStatus[idx] != SAVE_VALID) { + return; + } + + gUnk_03001010._4 = 0; + gUnk_03001010._6 = 0; + gUnk_03001010._8 = 0x400; + + // Draw the save file's obtained elements. + if (GetInventoryValue(0x40)) { + gUnk_03001010.x = 0xA2; + gUnk_03001010.y = 0x36; + sub_080ADA14(0x145, 0x24); + } + if (GetInventoryValue(0x41)) { + gUnk_03001010.x = 0x96; + gUnk_03001010.y = 0x3D; + sub_080ADA14(0x145, 0x22); + } + if (GetInventoryValue(0x42)) { + gUnk_03001010.x = 0xAE; + gUnk_03001010.y = 0x3D; + sub_080ADA14(0x145, 0x23); + } + if (GetInventoryValue(0x43)) { + gUnk_03001010.x = 0xA2; + gUnk_03001010.y = 0x44; + sub_080ADA14(0x145, 0x21); + } +} + +void sub_08050B3C(u16*); + +void sub_08050AFC(u32 idx) { + SetActiveSave(idx); + _DmaZero(&gBG1Buffer, sizeof(gBG1Buffer)); + if (gUnk_02019EE0.saveStatus[idx] == SAVE_VALID) { + sub_08050B3C(&gBG1Buffer.unk29C); + } + gScreen.bg.bg2yOffset = 1; +} + +typedef struct { + u16* unk0; + u32 unk4; +} unk_08050B3C; + +extern const u16 gUnk_080FC914[]; + +// Handles drawing of hearts +NONMATCH("asm/non_matching/save/sub_08050B3C.inc", void sub_08050B3C(u16* arg0)) { + unk_08050B3C sp; + int var0; + int var1; + int var2; + int var3; + int var4; + int var5; + int var6; + int var7; + u16* var8; + + sp.unk0 = arg0; + var0 = gUnk_02002A40.stats.health / 2; + if (var0 == 0) { + var0 = 1; + } + + var1 = gUnk_02002A40.stats.maxHealth / 2; + if (var1 == 0) { + return; + } + + if (var0 > var1) { + var0 = var1; + } + + sp.unk4 = var0 & 0x3; + var2 = var0 * 2; + var5 = var2; + if (var2 > 10) { + var5 = 10; + } + + var6 = var2; + var6 -= 10; + var7 = var6; + if (var6 < 0) { + var7 = 0; + } + + var1 = var1 >> 2; + var4 = var1; + if (var1 > 10) { + var1 = 10; + } + + var4 -= 10; + sp.unk0[0] = 0xF24C; + DmaCopy16(3, &gUnk_080FC914[10 - var5], &sp.unk0[1], var1 * 2); + if (var4 > 0) { + sp.unk0[0x20] = 0xF24C; + DmaCopy16(3, &gUnk_080FC914[10 - var7], &sp.unk0[1], var4 * 2); + } + + if (!sp.unk4) { + return; + } + + var8 = sp.unk0; + if (var2 >= 10) { + var2 = var6; + var8 += 0x20; + } + + var8[var2 + 1] = sp.unk4 - 0xDB3; +} +END_NONMATCH + +void HandleFileView(void) { + gUnk_080FC93C[gMenu.menuType](); + sub_08050A64(gUnk_02019EE0.unk6); +} + +extern Input gUnk_03000FF0; + +void sub_08050C54(void) { + s32 column_idx; + + if (gUnk_02019EE0.isTransitioning) + return; + + column_idx = gMenu.column_idx; + switch (gUnk_03000FF0.newKeys) { + case A_BUTTON: + case START_BUTTON: + if (column_idx == 0) { + PlaySFX(0x80080000); + } + gMenu.transitionTimer = 0xf; + sub_080A7114(1); + PlaySFX(0x6a); + break; + case B_BUTTON: + PlaySFX(0x6c); + SetFileSelectState(STATE_NONE); + break; + case DPAD_LEFT: + column_idx--; + break; + case DPAD_RIGHT: + column_idx++; + break; + } + if (column_idx < 0) { + column_idx = 0; + } + if (column_idx >= NUM_FILE_OPERATIONS) { + column_idx = NUM_FILE_OPERATIONS - 1; + } + if (gMenu.column_idx != column_idx) { + gMenu.column_idx = column_idx; + PlaySFX(0x69); + } +} + +void sub_08050D68(void) { + u32 state; + + if (gMenu.transitionTimer == 0) { + switch (gMenu.column_idx) { + default: + case 0: + state = STATE_START; + break; + case 1: + state = STATE_COPY; + break; + case 2: + state = STATE_ERASE; + break; + } + SetFileSelectState(state); + } else { + gMenu.transitionTimer--; + } +} + +void HandleFileLanguageSelect(void) { + gUnk_080FC944[gMenu.menuType](); +} + +void sub_08050DB8(void) { + _DmaZero(&gBG2Buffer, sizeof(gBG2Buffer)); + sub_080503A8(0xc); + gMenu.field_0x4 = gUnk_02000000->gameLanguage; + sub_080A7114(1); +} + +void sub_08050DE4(void) { + s32 row_idx; + + if (gUnk_02019EE0.isTransitioning) + return; + + row_idx = gUnk_02000000->gameLanguage; + switch (gUnk_03000FF0.newKeys) { + case DPAD_UP: + row_idx--; + break; + case DPAD_DOWN: + row_idx++; + break; + case A_BUTTON: + case START_BUTTON: + PlaySFX(0x6a); + if (gMenu.field_0x4 != row_idx) { + sub_080A7114(2); + sub_08050318(8, 0); + } else { + SetFileSelectState(STATE_NONE); + } + break; + case B_BUTTON: + row_idx = gMenu.field_0x4; + gUnk_02000000->gameLanguage = gMenu.field_0x4; + PlaySFX(0x6c); + SetFileSelectState(STATE_NONE); + break; + } + + // Lazy solution for positioning the rows lower on the screen + if (row_idx < 2) { + row_idx = 2; + } + if (row_idx > 6) { + row_idx = 6; + } + if (gUnk_02000000->gameLanguage != row_idx) { + gUnk_02000000->gameLanguage = row_idx; + PlaySFX(0x69); + } +} + +void sub_08050E88(void) { + if (sub_0807CDA4(SAVE_DONE)) + SetFileSelectState(0); +} diff --git a/src/intro.c b/src/intro.c index 090c9b9d..ac2c6e76 100644 --- a/src/intro.c +++ b/src/intro.c @@ -53,22 +53,22 @@ static const u16 sLightRaysAlphaBlends[] = { }; static u32 AdvanceIntroSequence(u32 transition) { - gUnk_02032EC0.transitionType = transition; + gUnk_02032EC0.lastState = transition; gUnk_03001000.funcIndex = 2; _DmaZero(&gIntroState, sizeof(gIntroState)); DoFade(7, 8); } void HandleIntroScreen(void) { - sub_080AD90C(); + FlushSprites(); switch (gUnk_03001000.funcIndex) { case 0: sub_08056418(); - _DmaZero(&gUnk_02032EC0, 0x3b4); + _DmaZero(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); AdvanceIntroSequence(0); break; case 1: - sIntroSequenceHandlers[gUnk_02032EC0.transitionType](); + sIntroSequenceHandlers[gUnk_02032EC0.lastState](); break; case 2: if (gFadeControl.active) { @@ -92,13 +92,13 @@ static void HandleNintendoCapcomLogos(void) { gIntroState.timer = 120; LoadGfxGroup(16); LoadGfxGroup(1); - if (((struct_02000000*)0x2000000)->gameLanguage == 0) { + if (gUnk_02000000->gameLanguage == 0) { paletteGroup = 1; } else { paletteGroup = 2; } LoadPaletteGroup(paletteGroup); - gScreen.lcd.displayControl |= 0x400; + gScreen.lcd.displayControl |= DISPCNT_BG2_ON; gScreen.bg.bg2yOffset = 1; DoFade(6, 8); advance = ADVANCE_NONE; @@ -132,28 +132,30 @@ static void HandleTitlescreen(void) { sub_080ADD30(); gUnk_02024490.unk0 = 1; LoadGfxGroup(2); - if (((struct_02000000*)0x2000000)->gameLanguage == 0) { + if (gUnk_02000000->gameLanguage == 0) { paletteGroup = 3; } else { paletteGroup = 4; } LoadPaletteGroup(paletteGroup); - if (((struct_02000000*)0x2000000)->gameLanguage == 0) { - gScreen.controls.layerFXControl = 0x844; + if (gUnk_02000000->gameLanguage == 0) { + // Blend first and second layer + gScreen.controls.layerFXControl = BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 9); gScreen.bg.bg1xOffset = 0x1c09; - gScreen.affine.bg2Control = 0x1d02; - gScreen.affine.bg3Control = 0x1e03; - gScreen.lcd.displayControl |= 0x1e00; + gScreen.affine.bg2Control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(2); + gScreen.affine.bg3Control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(3); + gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON; gScreen.bg.bg2xOffset = 0xff60; } else { - gScreen.controls.layerFXControl = 0x241; + gScreen.controls.layerFXControl = BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 9); - gScreen.bg.bg0Control = 0x1d02; + gScreen.bg.bg0Control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(2); gScreen.bg.bg1xOffset = 0x1E03; - gScreen.affine.bg2Control = 0x7C89; - gScreen.lcd.displayControl |= 1; - gScreen.lcd.displayControl |= 0x1300; + gScreen.affine.bg2Control = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_256COLOR | + BGCNT_SCREENBASE(28) | BGCNT_WRAP | BGCNT_TXT512x256; + gScreen.lcd.displayControl |= DISPCNT_MODE_1; + gScreen.lcd.displayControl |= DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; gIntroState.swordBgScaleRatio = 0x10; UpdateSwordBgAffineData(); } @@ -165,7 +167,7 @@ static void HandleTitlescreen(void) { if (gFadeControl.active) { return; } - if (((struct_02000000*)0x2000000)->gameLanguage == 0) { + if (gUnk_02000000->gameLanguage == 0) { HandleJapaneseTitlescreenAnimationIntro(); } else { HandleTitlescreenAnimationIntro(); @@ -196,8 +198,8 @@ static void HandleTitlescreen(void) { sub_080ADA14(0x1ff, 0); } } - if (gIntroState.gameLanguage != ((struct_02000000*)0x2000000)->gameLanguage) { - gIntroState.gameLanguage = ((struct_02000000*)0x2000000)->gameLanguage; + if (gIntroState.gameLanguage != gUnk_02000000->gameLanguage) { + gIntroState.gameLanguage = gUnk_02000000->gameLanguage; LoadGfxGroup(3); } UpdateLightRays(); @@ -219,8 +221,8 @@ static void UpdateSwordBgAffineData(void) { struct BgAffineSrcData aff; aff.texY = 0x8000; aff.texX = 0x8000; - aff.scrX = 0x78; - aff.scrY = 0x48; + aff.scrX = DISPLAY_WIDTH / 2; + aff.scrY = DISPLAY_HEIGHT / 2 - 8; aff.alpha = 0; aff.sy = aff.sx = gIntroState.swordBgScaleRatio; BgAffineSet(&aff, (struct BgAffineDstData*)&gBgControls, 1); @@ -254,7 +256,7 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { pEVar2 = CreateObject(0xb4, 0, 0); if (pEVar2 != NULL) { pEVar2->x.HALF.HI = 0; - pEVar2->y.HALF.HI = 0x48; + pEVar2->y.HALF.HI = DISPLAY_HEIGHT / 2 - 8; } } break; @@ -271,7 +273,7 @@ static void HandleTitlescreenAnimationIntro(void) { case 0: if (!gFadeControl.active) { gIntroState.subState = 1; - gScreen.lcd.displayControl |= 0x400; + gScreen.lcd.displayControl |= DISPCNT_BG2_ON; PlaySFX(0xF6); } break; @@ -334,14 +336,14 @@ static u32 GetAdvanceState(void) { } static void UpdateLightRays(void) { - // Periodically rotate the palette to give a shimmeriming effect. + // Periodically rotate the palette to give a shimmering effect. if ((gIntroState.counter & 0x7) == 0) { gIntroState.lightRaysPaletteGroup++; gIntroState.lightRaysPaletteGroup &= 0x3; LoadPaletteGroup(5 + gIntroState.lightRaysPaletteGroup); } - // Periodiccally update the transparency of the light rays. + // Periodically update the transparency of the light rays. if ((gIntroState.counter & 0x1F) == 0) { gIntroState.lightRaysAlphaBlendIndex = (gIntroState.lightRaysAlphaBlendIndex + 1) & 0x7; gScreen.controls.alphaBlend = sLightRaysAlphaBlends[gIntroState.lightRaysAlphaBlendIndex]; diff --git a/src/main.c b/src/main.c index fdb72796..15b67996 100644 --- a/src/main.c +++ b/src/main.c @@ -6,16 +6,12 @@ #include "random.h" #include "readKeyInput.h" -extern u8 gUnk_03003DE4; - -extern void sub_0804FF84(u32); -extern u16 gPaletteBuffer[]; -extern void VBlankInterruptWait(void); -extern void DisableInterruptsAndDMA(void); -extern void sub_08016B34(void); - -static void sub_08055F70(void); -static bool32 SoftResetKeysPressed(void); +extern void HandleIntroScreen(void); +extern void HandleChooseFileScreen(void); +extern void HandleGameplayScreen(void); +extern void HandleGameOverScreen(void); +extern void HandleCreditsScreen(void); +extern void HandleDebugTextScreen(void); static void (*const sScreenHandlers[])(void) = { [SCREEN_INTRO] = HandleIntroScreen, [SCREEN_CHOOSE_FILE] = HandleChooseFileScreen, @@ -27,8 +23,8 @@ void MainLoop(void) { int var0; sub_08055F70(); - sub_080A3204(); - sub_0805616C(); + InitSound(); + InitDMA(); sub_0807CE90(); sub_080560B8(); sub_08056208(); @@ -176,7 +172,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", void sub_080560B8(void)) { END_NONMATCH u32 sub_08056134(void) { - if ((gUnk_02000000->signature != SIGNATURE) || (gUnk_02000000->saveFileId >= MAX_SAVE_FILES) || + if ((gUnk_02000000->signature != SIGNATURE) || (gUnk_02000000->saveFileId >= NUM_SAVE_SLOTS) || (gUnk_02000000->messageSpeed >= MAX_MSG_SPEED) || (gUnk_02000000->brightnessPref >= MAX_BRIGHTNESS) || (gUnk_02000000->gameLanguage != GAME_LANGUAGE) || (gUnk_02000000->_e != 0)) return FALSE; @@ -184,7 +180,7 @@ u32 sub_08056134(void) { return TRUE; } -void sub_0805616C() { +void InitDMA() { PlaySFX(0x80040000); gScreen._6d = gScreen._6c; gScreen._6c = 0; diff --git a/src/object.c b/src/object.c index 6713b8e7..4fd93b40 100644 --- a/src/object.c +++ b/src/object.c @@ -2,6 +2,7 @@ #include "entity.h" #include "object.h" //clang-format off + void (*const gObjectFunctions[])(Entity*) = { /*0x00*/ ItemOnGround, /*0x01*/ DeathFx, @@ -75,7 +76,7 @@ void (*const gObjectFunctions[])(Entity*) = { /*0x45*/ Object45, /*0x46*/ GiantBookLadder, /*0x47*/ HeartContainer, - /*0x48*/ Object48, + /*0x48*/ FileScreenObjects, /*0x49*/ Object49, /*0x4a*/ BackgroundCloud, /*0x4b*/ Object4B, diff --git a/src/object/object48.c b/src/object/fileScreenObjects.c similarity index 91% rename from src/object/object48.c rename to src/object/fileScreenObjects.c index e62b174a..4b18fa79 100644 --- a/src/object/object48.c +++ b/src/object/fileScreenObjects.c @@ -47,7 +47,7 @@ extern const u16 gUnk_08121D18[][8]; extern const u8 gUnk_08121D48[]; extern const struct_08121D54 gUnk_08121D54[]; -void Object48(Entity* this) { +void FileScreenObjects(Entity* this) { if (this->currentHealth == 0) { sub_0808EFF0(this); } @@ -91,7 +91,7 @@ void sub_0808E818(Entity* this) { LoadPalettes(&gGlobalGfxAndPalettes[var1], 31, 1); } - if (gUnk_02032EC0.transitionType == 0) { + if (gUnk_02032EC0.lastState == 0) { if (gUnk_03000FF0.heldKeys & L_BUTTON) { switch (gUnk_03000FF0.newKeys) { case DPAD_UP: @@ -126,13 +126,13 @@ void sub_0808E818(Entity* this) { static bool32 sub_0808E950(void) { bool32 result = FALSE; - switch (gUnk_02032EC0.transitionType) { + switch (gUnk_02032EC0.lastState) { case 0: case 4: case 5: case 6: case 7: - result = gUnk_02019EE0.unk8[gUnk_02019EE0.unk6] == 1; + result = gUnk_02019EE0.saveStatus[gUnk_02019EE0.unk6] == 1; break; } return result; @@ -179,7 +179,7 @@ void sub_0808EA28(Entity* this) { u32 var1; if (this->entityType.form == 3) { - if (((struct_02000000*)0x2000000)->gameLanguage > 1) { + if (gUnk_02000000->gameLanguage > LANGUAGE_EN) { this->spriteSettings.b.draw = 2; } else { this->spriteSettings.b.draw = 0; @@ -190,7 +190,7 @@ void sub_0808EA28(Entity* this) { var0 = 12; var1 = 1; } else { - if (gUnk_02032EC0.transitionType == 5 && this->entityType.form == gUnk_02019EE0.unk7) { + if (gUnk_02032EC0.lastState == 5 && this->entityType.form == gUnk_02019EE0.unk7) { var0 = 13; var1 = 2; } else { @@ -202,14 +202,14 @@ void sub_0808EA28(Entity* this) { this->palette.b.b0 = var0; this->spriteRendering.b3 = var1; sub_0808EABC(this); - gUnk_02019EE0.unk0 |= sub_0808EF6C(this); + gUnk_02019EE0.isTransitioning |= sub_0808EF6C(this); } void sub_0808EABC(Entity* this) { int var0 = -72; int var1 = this->entityType.form * 32 + 40; int var2 = gUnk_02019EE0.unk6 == this->entityType.form; - switch (gUnk_02032EC0.transitionType) { + switch (gUnk_02032EC0.lastState) { case 0: var0 = 24; break; @@ -272,15 +272,15 @@ void sub_0808EBB8(Entity* this) { u32 x, y; Entity* entity; - switch (gUnk_02032EC0.transitionType) { + switch (gUnk_02032EC0.lastState) { case 4: - var0 = gMenu.field_0x1 + 4; + var0 = gMenu.column_idx + 4; break; case 5: var0 = 2; break; case 6: - var0 = gMenu.field_0x1 == 0 ? 7 : 6; + var0 = gMenu.column_idx == 0 ? 7 : 6; break; case 7: var0 = 4; @@ -341,8 +341,8 @@ void sub_0808ECBC(Entity* this) { int var2; const struct_08121CD4* var3; - var0 = gMenu.field_0x1; - switch (gUnk_02032EC0.transitionType) { + var0 = gMenu.column_idx; + switch (gUnk_02032EC0.lastState) { case 4: var1 = 1; break; @@ -371,12 +371,12 @@ void sub_0808ECBC(Entity* this) { this->palette.b.b0 = 14; } - gUnk_02019EE0.unk0 |= sub_0808EF6C(this); + gUnk_02019EE0.isTransitioning |= sub_0808EF6C(this); } void sub_0808ED64(Entity* this) { int y = 255; - if (gUnk_02032EC0.transitionType == 1 && gMenu.focusCoords[1] != 5) { + if (gUnk_02032EC0.lastState == 1 && gMenu.focusCoords[1] != 5) { this->x.HALF.HI = gMenu.focusCoords[0] * 16 + 28; y = gMenu.focusCoords[1] * 16 + 58; } @@ -385,7 +385,7 @@ void sub_0808ED64(Entity* this) { void sub_0808ED98(Entity* this) { int y; - if (gUnk_02032EC0.transitionType != 1) { + if (gUnk_02032EC0.lastState != 1) { this->field_0x68.HWORD = 27; y = -10; } else { @@ -413,7 +413,7 @@ void sub_0808EE00(Entity* this) { this->x.HALF.HI = gUnk_08121D18[var0][var1]; this->field_0x68.HWORD = gUnk_08121D18[var0][var1]; var1 -= var0; - if (gUnk_02032EC0.transitionType != 1) { + if (gUnk_02032EC0.lastState != 1) { var1 = 128; var2 = 176; } else { @@ -422,14 +422,14 @@ void sub_0808EE00(Entity* this) { this->field_0x6a.HWORD = var2; this->palette.b.b0 = gMenu.focusCoords[1] == 5 && var1 == gMenu.field_0x12 ? 11 : 9; - gUnk_02019EE0.unk0 |= sub_0808EF6C(this); + gUnk_02019EE0.isTransitioning |= sub_0808EF6C(this); } void nullsub_522(Entity* this) { } void sub_0808EE98(Entity* this) { - this->actionDelay = gUnk_02032EC0.transitionType; + this->actionDelay = gUnk_02032EC0.lastState; this->frameIndex = gUnk_08121D48[this->actionDelay]; if (this->actionDelay != 2) { this->field_0x68.HWORD = 96; @@ -441,18 +441,18 @@ void sub_0808EE98(Entity* this) { void sub_0808EED8(Entity* this) { int var0; - if (gUnk_02032EC0.transitionType != 3) { + if (gUnk_02032EC0.lastState != 3) { this->spriteSettings.b.draw = 0; } else { this->spriteSettings.b.draw = 2; var0 = this->entityType.form - 19; - this->palette.b.b0 = gMenu.field_0x1 == var0 ? 4 : 3; + this->palette.b.b0 = gMenu.column_idx == var0 ? 4 : 3; } } void sub_0808EF24(Entity* this) { int var0; - if (gUnk_02032EC0.transitionType != 3) { + if (gUnk_02032EC0.lastState != 3) { this->spriteSettings.b.draw = 0; } else { this->spriteSettings.b.draw = 2; @@ -515,7 +515,7 @@ static u32 sub_0808EF6C(Entity* this) { static void sub_0808EFF0(Entity* this) { const struct_08121D54* var0; - int var1; + u8 var1; this->spriteSettings.b.draw = 2; this->nonPlanarMovement = 0x400; @@ -533,7 +533,7 @@ static void sub_0808EFF0(Entity* this) { this->field_0x6c.HWORD = var0->unk0; var1 = var0->unk7; if (var1 & 0x80) { - var1 &= 0x7F; + var1 &= ~(0x80); this->frameIndex = var1; this->lastFrameIndex = var1; } else { diff --git a/src/code_0807CC3C.c b/src/save.c similarity index 53% rename from src/code_0807CC3C.c rename to src/save.c index b16dca9e..c129dc9d 100644 --- a/src/code_0807CC3C.c +++ b/src/save.c @@ -1,38 +1,52 @@ -#include "global.h" -#include "entity.h" -#include "functions.h" -#include "menu.h" -#include "structures.h" +#include "save.h" -extern void (*const gUnk_0811E478[])(u32); +extern u32 sub_0807D008(u32, SaveFile*); + +const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500, + 0x5C0, 0x680, 0x740, 0x800, 0x8C0, 0x9C0, 0xA80 }; + +const char gUnk_0811E470[6] = "LINK"; + +static SaveResult HandleSaveInit(u32); +static SaveResult HandleSaveInProgress(u32); +static SaveResult HandleSaveDone(u32); +static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone }; + +static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 5"; + +// Save file is untouched +static const char sSaveDescInit[8] = "\xFF\xFF\xFF\xFF" + "INIT"; +// Save file is deleted +static const char sSaveDescDeleted[8] = "\xFF\xFF\xFF\xFF" + "DelF"; + +const char gUnk_0811E4B4[8] = "DAMEDAME"; extern s16 gUnk_02021EE0[6]; -extern char gUnk_0811E484[]; -extern char gUnk_0811E4AC[]; -extern char gUnk_0811E4A4[]; void sub_0807CD9C() { sub_080530C8(); } -void sub_0807CDA4(u32 arg0) { - gUnk_0811E478[gMenu.storyPanelIndex](arg0); +SaveResult sub_0807CDA4(SaveState state) { + return sSaveHandlers[gMenu.storyPanelIndex](state); } -u32 sub_0807CDC0(void) { +SaveResult HandleSaveInit(u32 arg0) { gUnk_02021EE0[5] -= 8; if (gUnk_02021EE0[4] <= 0) { gMenu.field_0xa = 8; gMenu.storyPanelIndex = 1; } - return 0; + return SAVE_BUSY; } -u32 sub_0807CDE8(u32 arg0) { +SaveResult HandleSaveInProgress(u32 arg0) { u32 temp; if (gMenu.field_0xa == 0) { - sub_0805616C(); + InitDMA(); switch (arg0) { case 0: temp = sub_0807CF08(gUnk_02000000->saveFileId, gUnk_02002A40.filler0); @@ -51,25 +65,25 @@ u32 sub_0807CDE8(u32 arg0) { } else { gMenu.field_0xa--; } - return 0; + return SAVE_BUSY; } -s32 sub_0807CE54(void) { - u32 uVar1; +SaveResult HandleSaveDone(u32 arg0) { + SaveResult result; - uVar1 = 0; + result = SAVE_BUSY; gUnk_02021EE0[5] += 8; if (gUnk_02021EE0[3] <= gUnk_02021EE0[5]) { gUnk_02021EE0[5] = gUnk_02021EE0[3]; sub_08050384(); gMenu.storyPanelIndex = 0; if (gMenu.field_0xa == 1) { - uVar1 = 1; + result = SAVE_OK; } else { - uVar1 = -1; + result = SAVE_ERROR; } } - return uVar1; + return result; } u32 sub_0807CE90(void) { @@ -80,10 +94,10 @@ u32 sub_0807CE90(void) { sub_080B1520(0x40); puVar1 = sub_0807D1C4(4); iVar3 = 0; - if (sub_0807D24C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0) == 0) { + if (sub_0807D24C(puVar1->field_0x6, sSignatureLong, puVar1->field_0x0) == 0) { iVar3 += 1; } - if (sub_0807D24C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0) == 0) { + if (sub_0807D24C(puVar1->field_0x8, sSignatureLong, puVar1->field_0x0) == 0) { iVar3 += 2; } if (iVar3 != 0) { @@ -94,8 +108,8 @@ u32 sub_0807CE90(void) { sub_0807CF68(1); sub_0807CF68(0); } - sub_0807D20C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0); - sub_0807D20C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0); + sub_0807D20C(puVar1->field_0x8, sSignatureLong, puVar1->field_0x0); + sub_0807D20C(puVar1->field_0x6, sSignatureLong, puVar1->field_0x0); } return 1; } @@ -116,11 +130,11 @@ int sub_0807CF28(u32 arg0, SaveFile* arg1) { return sub_0807D008(arg0, arg1); } -u32 sub_0807CF30(void* arg0) { +u32 sub_0807CF30(SaveFile* arg0) { return sub_0807D008(3, arg0); } -u32 sub_0807CF3C(void* arg0) { +u32 sub_0807CF3C(SaveFile* arg0) { return sub_0807D008(5, arg0); } @@ -128,16 +142,16 @@ void sub_0807CF48(u32 arg0) { struct_0807D1C4* temp; temp = sub_0807D1C4(arg0); - sub_0807D184(temp->field_0x4, gUnk_0811E4AC); - sub_0807D184(temp->field_0x2, gUnk_0811E4AC); + sub_0807D184(temp->field_0x4, sSaveDescDeleted); + sub_0807D184(temp->field_0x2, sSaveDescDeleted); } void sub_0807CF68(u32 arg0) { struct_0807D1C4* temp; - char* str; + const char* str; temp = sub_0807D1C4(arg0); - str = gUnk_0811E4A4; + str = sSaveDescInit; sub_0807D184(temp->field_0x4, str); sub_0807D184(temp->field_0x2, str); } diff --git a/src/sub_080A3B84.c b/src/sub_080A3B84.c index 1fa55fb0..3a0d5eb4 100644 --- a/src/sub_080A3B84.c +++ b/src/sub_080A3B84.c @@ -8,7 +8,7 @@ extern void (*const gUnk_081280C4[])(); void DrawKinstoneMenu(void) { gScreenTransition.field_0x24[8] = 2; - sub_080AD90C(); + FlushSprites(); gUnk_081280C4[gMenu.menuType](); sub_080A3B74(); sub_080A4054(); @@ -26,7 +26,7 @@ void sub_080A3BD0(void) { s32 iVar1; s32 iVar2; - gMenu.field_0x1 = 1; + gMenu.column_idx = 1; gMenu.unk2a = 0; sub_080A4D34(); LoadPaletteGroup(0xcb); diff --git a/src/textbox.c b/src/textbox.c index ad3bc4d8..2ecc7242 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -5,53 +5,34 @@ #include "textbox.h" #include "structures.h" -void ShowTextbox(); -void TextboxAtPosition(); +u32 sub_080564DC(void); +u32 sub_080564EC(void); +u32 sub_08056654(void); +u32 sub_080565B4(void); +u32 sub_080565F8(void); +u32 sub_08056640(void); -typedef struct { - u8 _0; - u8 _1; - u8 _2; - u8 _3[5]; - u16 _8; - u8 _b[0x16]; - u8 _20; - u8 _21; - u8 _22[0xa]; - void* _2c; - u8 _30[0x23]; - u8 _53; - u16 _54; - u8 _56[0x2]; - void* _58; - u8 _5c; - u8 _5d; - u8 _5e[24]; - u8 _76; - u8 _77[0x11]; - u8 _88; - u8 _89; - u8 _8a; - u8 _8b[0xe]; - u8 _99; - u8 _9a; - u8 _9b; - u8 _9c; - u8 _9d; - u8 _9e[0xa]; -} struct_02022780; -extern struct_02022780 gUnk_02022780; -static_assert(sizeof(struct_02022780) == 0xa8); +u32 (*const gUnk_08107BC8[])(void) = { sub_080564DC, sub_080564EC, sub_08056654, + sub_080565B4, sub_080565F8, sub_08056640 }; -extern const s32 (*const gUnk_08107BC8[])(); -extern const void (*const gUnk_08107BF4[])(struct_02022780*); +extern u8 gUnk_020227DC, gUnk_020227E8, gUnk_020227F0, gUnk_020227F8, gUnk_02022800; +u8* const gUnk_08107BE0[] = { &gUnk_020227DC, &gUnk_020227E8, &gUnk_020227F0, &gUnk_020227F8, &gUnk_02022800 }; + +void sub_08056684(struct_02022780*); +void sub_080566B8(struct_02022780*); +void sub_08056BA0(struct_02022780*); +void sub_08056B1C(struct_02022780*); +void sub_08056B7C(struct_02022780*); +void sub_080569D4(struct_02022780*); + +void (*const gUnk_08107BF4[])(struct_02022780*) = { sub_08056684, sub_080566B8, sub_08056BA0, + sub_08056B1C, sub_08056B7C, sub_080569D4 }; extern u32 gUnk_02036A40; extern u32 gUnk_02036A38; extern u8 gUnk_02024030; extern u8 gUnk_020227A0; extern u8 gUnk_02000D00; -extern u8 gUnk_08107BE0; s32 sub_08056338(void) { s32 result; @@ -100,7 +81,7 @@ void TextboxAtPosition(u32 index, u32 x, u32 y) { gTextBox.textWindowPosY = y; } -void ShowTextbox(u32 index, u32 param_2, u32* dest) { +void ShowTextbox(u32 index) { _DmaZero(&gTextBox, 32); gTextBox.textIndex = index; gTextBox.textSpeed = 99; @@ -158,10 +139,10 @@ NONMATCH("asm/non_matching/textbox/sub_080564EC.inc", u32 sub_080564EC(void)) { char* dest; u32 i; char c; - - _DmaZero((void *)&gUnk_02036A40, 8); - _DmaZero((void *)&gUnk_02024030, 0x18); - _DmaZero((void *)&gUnk_02022780, 0xa8); + + _DmaZero((void*)&gUnk_02036A40, 8); + _DmaZero((void*)&gUnk_02024030, 0x18); + _DmaZero((void*)&gUnk_02022780, 0xa8); _DmaCopy(&gTextBox, &gUnk_02022780, 32); if (gUnk_02022780._2 == 0x63) { gUnk_02022780._2 = gUnk_02000000->messageSpeed; @@ -174,7 +155,8 @@ NONMATCH("asm/non_matching/textbox/sub_080564EC.inc", u32 sub_080564EC(void)) { for (i = 0; i < 6; ++i) { c = gUnk_02002A40.playerName[i]; - if (c == '\0') break; + if (c == '\0') + break; dest[i] = c; } diff --git a/src/tmc.code-workspace b/src/tmc.code-workspace index 788922bd..0bcb3f84 100644 --- a/src/tmc.code-workspace +++ b/src/tmc.code-workspace @@ -5,7 +5,14 @@ "ios": "c", "functions.h": "c", "textbox.h": "c", - "structures.h": "c" + "structures.h": "c", + "fileselect.h": "c", + "menu.h": "c", + "save.h": "c", + "main.h": "c", + "object.h": "c", + "filescreen.h": "c", + "screen.h": "c" } } } From be1598afbb4f2ee91e7c83f0943f1f9f85a58f14 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 3 Feb 2021 17:38:27 -0800 Subject: [PATCH 2/2] fileScreen.c OK --- asm/bigBarrel.s | 8 +- asm/bigGoron.s | 8 +- asm/bird.s | 4 +- asm/bowUse.s | 4 +- asm/brocco.s | 4 +- asm/castleMaid.s | 4 +- asm/castorWildsStatue.s | 4 +- asm/cellOverwriteSet.s | 8 +- asm/code_08016DF8.s | 26 +- asm/code_08019444.s | 16 +- asm/code_0801C370.s | 8 +- asm/code_0801C85C.s | 16 +- asm/code_0801D79C.s | 26 +- asm/code_08049D30.s | 4 +- asm/code_0804AA84.s | 4 +- asm/code_080526F8.s | 76 +- asm/code_0805436C.s | 8 +- asm/code_08056418.s | 16 +- asm/code_0805EC04.s | 6 +- asm/code_0806ED78.s | 4 +- asm/code_0806FA6C.s | 8 +- asm/code_08070698.s | 4 +- asm/code_080732D0.s | 16 +- asm/code_08076C80.s | 20 +- asm/code_08077B98.s | 8 +- asm/code_08078778.s | 16 +- asm/code_0807CAA0.s | 8 +- asm/code_0807F0D8.s | 12 +- asm/code_080A3480.s | 20 +- asm/code_080A3BD0.s | 64 +- asm/code_080A5574.s | 110 +- asm/cucco.s | 4 +- asm/din.s | 4 +- asm/dog.s | 8 +- asm/drLeft.s | 4 +- asm/drawHealth.s | 4 +- asm/drawRupees.s | 12 +- asm/ezloCap.s | 4 +- asm/farore.s | 4 +- asm/figurineDevice.s | 46 +- asm/fileScreen.s | 1450 +----------------- asm/ghostBrothers.s | 4 +- asm/goronMerchant.s | 4 +- asm/guardWithSpear.s | 4 +- asm/hurdyGurdyMan.s | 4 +- asm/kid.s | 4 +- asm/mama.s | 4 +- asm/manager16.s | 4 +- asm/manager32.s | 4 +- asm/manager37.s | 4 +- asm/managerF.s | 4 +- asm/modArrows.s | 4 +- asm/modBombs.s | 4 +- asm/nayru.s | 4 +- asm/non_matching/code_0805457C.inc | 8 +- asm/non_matching/fileScreen/sub_08050EF4.inc | 138 ++ asm/non_matching/fileScreen/sub_08051738.inc | 65 + asm/non_matching/fileScreen/sub_080517B4.inc | 32 + asm/non_matching/fileScreen/sub_080610B8.inc | 348 +++++ asm/non_matching/pesto/sub_08024E4C.inc | 4 +- asm/non_matching/putItemOnSlot.s | 8 +- asm/non_matching/save/sub_08050B3C.inc | 4 +- asm/non_matching/sub_0804DE00.inc | 4 +- asm/non_matching/sub_0804E150.inc | 12 +- asm/non_matching/textbox/sub_080564EC.inc | 4 +- asm/object37.s | 4 +- asm/objectB.s | 14 +- asm/objectB9.s | 8 +- asm/percy.s | 4 +- asm/phonograph.s | 8 +- asm/pina.s | 4 +- asm/sittingPerson.s | 8 +- asm/smallTownMinish.s | 4 +- asm/stockwell.s | 14 +- asm/sub_0807CA18.s | 4 +- asm/takkuri.s | 4 +- asm/tingleSiblings.s | 8 +- asm/vaatiWrath.s | 4 +- data/data_080FC8A4.s | 12 - include/fileScreen.h | 22 +- include/functions.h | 2 - include/menu.h | 14 +- include/readKeyInput.h | 2 +- include/save.h | 32 +- include/structures.h | 37 - linker.ld | 5 +- src/code_0805436C.c | 28 +- src/enemy/businessScrub.c | 7 +- src/enemy/gyorgMale.c | 1 + src/enemy/likeLike.c | 11 +- src/enemy/pesto.c | 2 +- src/enemy/rupeeLike.c | 5 +- src/enemy/wisp.c | 5 +- src/executeScriptCommandSet.c | 11 +- src/fileScreen.c | 589 ++++++- src/initializePlayer.c | 3 +- src/input.c | 2 +- src/intro.c | 2 +- src/main.c | 3 +- src/manager/managerC.c | 3 +- src/npc/bladeBrothers.c | 7 +- src/npc/forestMinish.c | 7 +- src/npc/mayorHagen.c | 3 +- src/npc/mutoh.c | 3 +- src/npc/postman.c | 3 +- src/npc/smith.c | 5 +- src/npc/teachers.c | 3 +- src/npc/townMinish.c | 5 +- src/npc/townsperson.c | 3 +- src/npc/windTribespeople.c | 3 +- src/object/bird.c | 3 +- src/object/fileScreenObjects.c | 10 +- src/object/greatFairy.c | 5 +- src/object/windcrest.c | 3 +- src/player.c | 5 +- src/room.c | 83 +- src/save.c | 8 +- src/screenDebug.c | 6 +- src/textbox.c | 3 +- src/tmc.code-workspace | 4 +- 120 files changed, 1751 insertions(+), 2066 deletions(-) create mode 100644 asm/non_matching/fileScreen/sub_08050EF4.inc create mode 100644 asm/non_matching/fileScreen/sub_08051738.inc create mode 100644 asm/non_matching/fileScreen/sub_080517B4.inc create mode 100644 asm/non_matching/fileScreen/sub_080610B8.inc diff --git a/asm/bigBarrel.s b/asm/bigBarrel.s index 8613c9ae..a4c5b78b 100644 --- a/asm/bigBarrel.s +++ b/asm/bigBarrel.s @@ -43,14 +43,14 @@ sub_08088A68: @ 0x08088A68 bl CheckGlobalFlag cmp r0, #0 beq _08088AA0 - ldr r0, _08088A9C @ =gUnk_02002A40 + ldr r0, _08088A9C @ =gSave ldrb r0, [r0, #7] adds r0, #1 b _08088AA4 .align 2, 0 -_08088A9C: .4byte gUnk_02002A40 +_08088A9C: .4byte gSave _08088AA0: - ldr r0, _08088AD8 @ =gUnk_02002A40 + ldr r0, _08088AD8 @ =gSave ldrb r0, [r0, #7] _08088AA4: strb r0, [r4, #0x1e] @@ -77,7 +77,7 @@ _08088AA4: str r1, [r0, #0x68] b _08088B82 .align 2, 0 -_08088AD8: .4byte gUnk_02002A40 +_08088AD8: .4byte gSave _08088ADC: .4byte gRoomControls _08088AE0: .4byte gRoomVars _08088AE4: diff --git a/asm/bigGoron.s b/asm/bigGoron.s index 0377de66..d7fb70e1 100644 --- a/asm/bigGoron.s +++ b/asm/bigGoron.s @@ -775,7 +775,7 @@ sub_0806D5D4: @ 0x0806D5D4 adds r1, r0, #0 cmp r1, #2 beq _0806D5F0 - ldr r0, _0806D5FC @ =gUnk_02002A40 + ldr r0, _0806D5FC @ =gSave adds r0, #0xb4 adds r0, r1, r0 movs r1, #0 @@ -786,13 +786,13 @@ _0806D5F0: bl sub_0807CAA0 pop {pc} .align 2, 0 -_0806D5FC: .4byte gUnk_02002A40 +_0806D5FC: .4byte gSave thumb_func_start sub_0806D600 sub_0806D600: @ 0x0806D600 push {lr} movs r2, #0 - ldr r0, _0806D618 @ =gUnk_02002A40 + ldr r0, _0806D618 @ =gSave ldr r3, _0806D61C @ =0x00000494 adds r0, r0, r3 ldr r0, [r0] @@ -803,7 +803,7 @@ _0806D612: str r2, [r1, #0x14] pop {pc} .align 2, 0 -_0806D618: .4byte gUnk_02002A40 +_0806D618: .4byte gSave _0806D61C: .4byte 0x00000494 thumb_func_start sub_0806D620 diff --git a/asm/bird.s b/asm/bird.s index 77672bbf..7cac5b3c 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -304,7 +304,7 @@ _0809D454: ldrb r0, [r5, #0xc] cmp r0, #2 bne _0809D478 - ldr r0, _0809D494 @ =gUnk_02002A40 + ldr r0, _0809D494 @ =gSave ldr r1, [r0, #0x40] movs r2, #0x80 lsls r2, r2, #0x15 @@ -328,7 +328,7 @@ _0809D488: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0809D494: .4byte gUnk_02002A40 +_0809D494: .4byte gSave thumb_func_start sub_0809D498 sub_0809D498: @ 0x0809D498 diff --git a/asm/bowUse.s b/asm/bowUse.s index 438fa2a4..1358eed0 100644 --- a/asm/bowUse.s +++ b/asm/bowUse.s @@ -279,7 +279,7 @@ _08019390: movs r0, #0xe strb r0, [r1] _08019398: - ldr r0, _08019404 @ =gUnk_02002A40 + ldr r0, _08019404 @ =gSave adds r0, #0xad ldrb r5, [r0] ldrb r1, [r4, #0x1e] @@ -334,6 +334,6 @@ _080193FA: _08019402: pop {r4, r5, r6, r7, pc} .align 2, 0 -_08019404: .4byte gUnk_02002A40 +_08019404: .4byte gSave _08019408: .4byte gPlayerEntity _0801940C: .4byte gPlayerState diff --git a/asm/brocco.s b/asm/brocco.s index 4473f3c9..a8893593 100644 --- a/asm/brocco.s +++ b/asm/brocco.s @@ -233,7 +233,7 @@ _080636D4: thumb_func_start sub_080636D8 sub_080636D8: @ 0x080636D8 push {lr} - ldr r1, _080636EC @ =gUnk_02002A40 + ldr r1, _080636EC @ =gSave ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080636F0 @ =gUnk_0810CAAC @@ -241,7 +241,7 @@ sub_080636D8: @ 0x080636D8 bl ShowNPCDialogue pop {pc} .align 2, 0 -_080636EC: .4byte gUnk_02002A40 +_080636EC: .4byte gSave _080636F0: .4byte gUnk_0810CAAC thumb_func_start sub_080636F4 diff --git a/asm/castleMaid.s b/asm/castleMaid.s index 1c5ca1fc..51f71954 100644 --- a/asm/castleMaid.s +++ b/asm/castleMaid.s @@ -212,7 +212,7 @@ _08064684: .4byte gUnk_0810F88C thumb_func_start sub_08064688 sub_08064688: @ 0x08064688 push {lr} - ldr r1, _0806469C @ =gUnk_02002A40 + ldr r1, _0806469C @ =gSave ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _080646A0 @ =gUnk_0810F894 @@ -220,7 +220,7 @@ sub_08064688: @ 0x08064688 bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806469C: .4byte gUnk_02002A40 +_0806469C: .4byte gSave _080646A0: .4byte gUnk_0810F894 thumb_func_start sub_080646A4 diff --git a/asm/castorWildsStatue.s b/asm/castorWildsStatue.s index 1ff5b938..b08602c1 100644 --- a/asm/castorWildsStatue.s +++ b/asm/castorWildsStatue.s @@ -552,7 +552,7 @@ sub_08067790: @ 0x08067790 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #4 - ldr r2, _080677AC @ =gUnk_02002A40 + ldr r2, _080677AC @ =gSave ldrb r2, [r2, #8] lsls r2, r2, #3 ldr r3, _080677B0 @ =gUnk_08110EF8 @@ -561,5 +561,5 @@ sub_08067790: @ 0x08067790 bl ShowNPCDialogue pop {pc} .align 2, 0 -_080677AC: .4byte gUnk_02002A40 +_080677AC: .4byte gSave _080677B0: .4byte gUnk_08110EF8 diff --git a/asm/cellOverwriteSet.s b/asm/cellOverwriteSet.s index 58b0c171..274511cc 100644 --- a/asm/cellOverwriteSet.s +++ b/asm/cellOverwriteSet.s @@ -67,7 +67,7 @@ _0801BF62: movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1a] - ldr r6, _0801C000 @ =gUnk_03000FF0 + ldr r6, _0801C000 @ =gInput ldrh r1, [r6] movs r3, #0x80 lsls r3, r3, #1 @@ -137,7 +137,7 @@ _0801BFF0: .4byte gPlayerEntity _0801BFF4: .4byte gUnk_080B7B6C _0801BFF8: .4byte gRoomControls _0801BFFC: .4byte gPlayerState -_0801C000: .4byte gUnk_03000FF0 +_0801C000: .4byte gInput _0801C004: ldrh r2, [r6, #2] movs r6, #0x10 @@ -247,7 +247,7 @@ _0801C074: strb r0, [r1, #0x1a] bl DeleteThisEntity _0801C0D4: - ldr r0, _0801C1D0 @ =gUnk_03000FF0 + ldr r0, _0801C1D0 @ =gInput ldrh r1, [r0] movs r0, #2 ands r0, r1 @@ -369,4 +369,4 @@ _0801C1BE: .align 2, 0 _0801C1C8: .4byte gUnk_080B7B6C _0801C1CC: .4byte gRoomControls -_0801C1D0: .4byte gUnk_03000FF0 +_0801C1D0: .4byte gInput diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 49db41cf..060a891d 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -161,7 +161,7 @@ _08016F24: .4byte gBG2Buffer sub_08016F28: @ 0x08016F28 push {r4, r5, lr} adds r4, r0, #0 - ldr r0, _08016F44 @ =gUnk_02002A40 + ldr r0, _08016F44 @ =gSave adds r0, #0xba ldrb r0, [r0] cmp r0, #0 @@ -173,7 +173,7 @@ sub_08016F28: @ 0x08016F28 orrs r1, r2 b _08016F54 .align 2, 0 -_08016F44: .4byte gUnk_02002A40 +_08016F44: .4byte gSave _08016F48: .4byte gPlayerState _08016F4C: ldr r0, _08016F98 @ =gPlayerState @@ -367,7 +367,7 @@ _080170C0: _080170CE: ldr r3, _08017128 @ =gRoomVars strb r1, [r3, #0xa] - ldr r2, _0801712C @ =gUnk_02002A40 + ldr r2, _0801712C @ =gSave adds r0, r2, #0 adds r0, #0xab ldrb r0, [r0] @@ -400,7 +400,7 @@ _080170E8: ldr r0, _08017138 @ =0x0000011F bl EnqueueSFX _08017112: - ldr r0, _0801712C @ =gUnk_02002A40 + ldr r0, _0801712C @ =gSave adds r2, r0, #0 adds r2, #0xb2 ldrb r1, [r2] @@ -412,7 +412,7 @@ _08017112: .align 2, 0 _08017124: .4byte gTextBox _08017128: .4byte gRoomVars -_0801712C: .4byte gUnk_02002A40 +_0801712C: .4byte gSave _08017130: .4byte gUnk_0200AF00 _08017134: .4byte gScreenTransition _08017138: .4byte 0x0000011F @@ -433,7 +433,7 @@ _08017150: ldr r0, _0801716C @ =0x000001B3 bl PlaySFX _0801715A: - ldr r0, _08017170 @ =gUnk_02002A40 + ldr r0, _08017170 @ =gSave adds r3, r0, #0 adds r3, #0xb3 ldrb r1, [r3] @@ -444,7 +444,7 @@ _0801715A: b _080171A4 .align 2, 0 _0801716C: .4byte 0x000001B3 -_08017170: .4byte gUnk_02002A40 +_08017170: .4byte gSave _08017174: adds r2, r0, #0 adds r2, #0xc6 @@ -471,7 +471,7 @@ _08017196: adds r0, r5, #0 bl CreateSparkle _080171A4: - ldr r0, _080171B8 @ =gUnk_02002A40 + ldr r0, _080171B8 @ =gSave adds r3, r0, #0 adds r3, #0xba ldrb r1, [r3] @@ -481,7 +481,7 @@ _080171A4: strh r1, [r0] b _080171EA .align 2, 0 -_080171B8: .4byte gUnk_02002A40 +_080171B8: .4byte gSave _080171BC: adds r2, r0, #0 adds r2, #0xc8 @@ -1397,7 +1397,7 @@ sub_08017874: @ 0x08017874 adds r0, r2, #0 adds r0, #0x44 ldrb r1, [r0] - ldr r0, _08017898 @ =gUnk_02002A40 + ldr r0, _08017898 @ =gSave adds r0, #0xb2 ldrb r0, [r0] cmp r0, #0x2f @@ -1406,7 +1406,7 @@ sub_08017874: @ 0x08017874 beq _080178A8 b _080178AE .align 2, 0 -_08017898: .4byte gUnk_02002A40 +_08017898: .4byte gSave _0801789C: adds r0, r1, #0 cmp r1, #0 @@ -1438,7 +1438,7 @@ _080178C6: ldrb r0, [r2, #8] cmp r0, #8 bne _080178F6 - ldr r0, _080178E4 @ =gUnk_02002A40 + ldr r0, _080178E4 @ =gSave adds r0, #0xb2 ldrb r0, [r0] cmp r0, #0x30 @@ -1447,7 +1447,7 @@ _080178C6: beq _080178F4 b _080178F6 .align 2, 0 -_080178E4: .4byte gUnk_02002A40 +_080178E4: .4byte gSave _080178E8: lsls r0, r1, #1 adds r0, r0, r1 diff --git a/asm/code_08019444.s b/asm/code_08019444.s index b63d2531..d528d5b9 100644 --- a/asm/code_08019444.s +++ b/asm/code_08019444.s @@ -413,7 +413,7 @@ sub_08019764: @ 0x08019764 lsls r0, r0, #0x10 cmp r0, #0 beq _08019790 - ldr r0, _0801979C @ =gUnk_03000FF0 + ldr r0, _0801979C @ =gInput ldrh r1, [r0, #2] movs r0, #0xa ands r0, r1 @@ -427,7 +427,7 @@ _08019796: pop {pc} .align 2, 0 _08019798: .4byte gUnk_02018EB0 -_0801979C: .4byte gUnk_03000FF0 +_0801979C: .4byte gInput thumb_func_start sub_080197A0 sub_080197A0: @ 0x080197A0 @@ -5053,7 +5053,7 @@ sub_0801BA18: @ 0x0801BA18 b _0801BA34 _0801BA2A: ldrb r1, [r1] - ldr r0, _0801BA4C @ =gUnk_02002A40 + ldr r0, _0801BA4C @ =gSave adds r0, r0, r1 adds r0, #0x9a ldrb r0, [r0] @@ -5070,7 +5070,7 @@ _0801BA34: ldr r0, [r0] mov pc, r0 .align 2, 0 -_0801BA4C: .4byte gUnk_02002A40 +_0801BA4C: .4byte gSave _0801BA50: .4byte _0801BA54 _0801BA54: @ jump table .4byte _0801BA9C @ case 0 @@ -5306,7 +5306,7 @@ _0801BC76: movs r5, #0xa0 b _0801BC98 _0801BC7A: - ldr r1, _0801BCB0 @ =gUnk_02002A40 + ldr r1, _0801BCB0 @ =gSave adds r0, r4, #0 adds r0, #0x6f ldrb r0, [r0] @@ -5331,7 +5331,7 @@ _0801BC98: bl SetBottleContents pop {r4, r5, r6, pc} .align 2, 0 -_0801BCB0: .4byte gUnk_02002A40 +_0801BCB0: .4byte gSave thumb_func_start sub_0801BCB4 sub_0801BCB4: @ 0x0801BCB4 @@ -5403,7 +5403,7 @@ _0801BD40: bl ModHealth b _0801BD6C _0801BD54: - ldr r1, _0801BD88 @ =gUnk_02002A40 + ldr r1, _0801BD88 @ =gSave ldrb r0, [r5] adds r2, r1, #0 adds r2, #0xb2 @@ -5429,7 +5429,7 @@ _0801BD6C: beq _0801BDA2 b _0801BDAE .align 2, 0 -_0801BD88: .4byte gUnk_02002A40 +_0801BD88: .4byte gSave _0801BD8C: .4byte 0x000001CF _0801BD90: .4byte gPlayerEntity _0801BD94: diff --git a/asm/code_0801C370.s b/asm/code_0801C370.s index cb6c515f..81359341 100644 --- a/asm/code_0801C370.s +++ b/asm/code_0801C370.s @@ -11,7 +11,7 @@ sub_0801C370: @ 0x0801C370 push {r4, r5, r6, lr} cmp r0, #0 bne _0801C390 - ldr r0, _0801C388 @ =gUnk_02002A40 + ldr r0, _0801C388 @ =gSave adds r1, r0, #0 adds r1, #0xaa ldrb r1, [r1] @@ -21,7 +21,7 @@ sub_0801C370: @ 0x0801C370 ldr r5, _0801C38C @ =gUnk_0200AF00 b _0801C398 .align 2, 0 -_0801C388: .4byte gUnk_02002A40 +_0801C388: .4byte gSave _0801C38C: .4byte gUnk_0200AF00 _0801C390: ldr r0, _0801C470 @ =gUnk_0200AF00 @@ -35,7 +35,7 @@ _0801C398: bl _DmaZero strb r6, [r5, #3] strh r4, [r5, #0xe] - ldr r0, _0801C474 @ =gUnk_02002A40 + ldr r0, _0801C474 @ =gSave adds r0, #0xab ldrb r0, [r0] lsrs r0, r0, #1 @@ -121,7 +121,7 @@ _0801C398: pop {r4, r5, r6, pc} .align 2, 0 _0801C470: .4byte gUnk_0200AF00 -_0801C474: .4byte gUnk_02002A40 +_0801C474: .4byte gSave _0801C478: .4byte gBG0Buffer _0801C47C: .4byte gScreen _0801C480: .4byte 0x00001F0C diff --git a/asm/code_0801C85C.s b/asm/code_0801C85C.s index 06013f44..0c145b51 100644 --- a/asm/code_0801C85C.s +++ b/asm/code_0801C85C.s @@ -229,7 +229,7 @@ _0801C9EC: movs r0, #1 strh r0, [r1, #0xe] _0801CA1E: - ldr r0, _0801CA60 @ =gUnk_02002A40 + ldr r0, _0801CA60 @ =gSave ldr r3, _0801CA64 @ =gArea ldrb r1, [r3, #3] ldr r5, _0801CA68 @ =0x0000045C @@ -260,7 +260,7 @@ _0801CA50: _0801CA54: .4byte gUnk_020350E2 _0801CA58: .4byte 0x0000F01C _0801CA5C: .4byte gScreen -_0801CA60: .4byte gUnk_02002A40 +_0801CA60: .4byte gSave _0801CA64: .4byte gArea _0801CA68: .4byte 0x0000045C @@ -569,7 +569,7 @@ sub_0801CC80: @ 0x0801CC80 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f - ldr r5, _0801CCAC @ =gUnk_02002A40 + ldr r5, _0801CCAC @ =gSave adds r1, r5, #0 adds r1, #0xb4 adds r0, r0, r1 @@ -585,7 +585,7 @@ _0801CCA8: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 -_0801CCAC: .4byte gUnk_02002A40 +_0801CCAC: .4byte gSave thumb_func_start sub_0801CCB0 sub_0801CCB0: @ 0x0801CCB0 @@ -630,7 +630,7 @@ _0801CCF4: ble _0801CD28 cmp r0, #0xa bgt _0801CD60 - ldr r1, _0801CD24 @ =gUnk_02002A40 + ldr r1, _0801CD24 @ =gSave adds r0, r1, #0 adds r0, #0xad ldrb r2, [r0] @@ -645,9 +645,9 @@ _0801CCF4: .align 2, 0 _0801CD1C: .4byte gUnk_080FDFD8 _0801CD20: .4byte gUnk_0200AF13 -_0801CD24: .4byte gUnk_02002A40 +_0801CD24: .4byte gSave _0801CD28: - ldr r5, _0801CD44 @ =gUnk_02002A40 + ldr r5, _0801CD44 @ =gSave adds r0, r5, #0 adds r0, #0xac ldrb r2, [r0] @@ -663,7 +663,7 @@ _0801CD3C: adds r0, #0xae b _0801CD52 .align 2, 0 -_0801CD44: .4byte gUnk_02002A40 +_0801CD44: .4byte gSave _0801CD48: .4byte gBombBagSizes _0801CD4C: ldr r1, _0801CD5C @ =gQuiverSizes diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 38bfd35d..f9bb8b3d 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -1924,7 +1924,7 @@ _0801E6E4: subs r0, r1, #1 cmp r0, #0x7e bhi _0801E70A - ldr r0, _0801E72C @ =gUnk_02002A40 + ldr r0, _0801E72C @ =gSave ldr r2, _0801E730 @ =0x000001C1 adds r0, r0, r2 adds r1, r1, r0 @@ -1953,7 +1953,7 @@ _0801E722: .align 2, 0 _0801E724: .4byte gUnk_02022740 _0801E728: .4byte gUnk_02002C01 -_0801E72C: .4byte gUnk_02002A40 +_0801E72C: .4byte gSave _0801E730: .4byte 0x000001C1 _0801E734: .4byte gUnk_03003DF0 @@ -1972,7 +1972,7 @@ sub_0801E738: @ 0x0801E738 cmp r1, #0 bge _0801E76E movs r1, #0 - ldr r0, _0801E794 @ =gUnk_02002A40 + ldr r0, _0801E794 @ =gSave movs r3, #0x8c lsls r3, r3, #1 adds r2, r0, r3 @@ -1988,7 +1988,7 @@ _0801E764: _0801E76E: cmp r1, #0x11 bhi _0801E790 - ldr r2, _0801E794 @ =gUnk_02002A40 + ldr r2, _0801E794 @ =gSave movs r3, #0x8c lsls r3, r3, #1 adds r0, r2, r3 @@ -2007,7 +2007,7 @@ _0801E78E: _0801E790: pop {r4, pc} .align 2, 0 -_0801E794: .4byte gUnk_02002A40 +_0801E794: .4byte gSave thumb_func_start sub_0801E798 sub_0801E798: @ 0x0801E798 @@ -2016,7 +2016,7 @@ sub_0801E798: @ 0x0801E798 adds r1, r0, #0 cmp r1, #0 blt _0801E7C4 - ldr r2, _0801E7C8 @ =gUnk_02002A40 + ldr r2, _0801E7C8 @ =gSave ldr r3, _0801E7CC @ =0x0000012B adds r0, r2, r3 adds r3, r1, r0 @@ -2036,7 +2036,7 @@ _0801E7C2: _0801E7C4: pop {r4, pc} .align 2, 0 -_0801E7C8: .4byte gUnk_02002A40 +_0801E7C8: .4byte gSave _0801E7CC: .4byte 0x0000012B thumb_func_start sub_0801E7D0 @@ -2046,14 +2046,14 @@ sub_0801E7D0: @ 0x0801E7D0 adds r1, r0, #0 cmp r1, #0 blt _0801E7F0 - ldr r0, _0801E7E8 @ =gUnk_02002A40 + ldr r0, _0801E7E8 @ =gSave ldr r2, _0801E7EC @ =0x0000012B adds r0, r0, r2 adds r0, r1, r0 ldrb r0, [r0] b _0801E7F2 .align 2, 0 -_0801E7E8: .4byte gUnk_02002A40 +_0801E7E8: .4byte gSave _0801E7EC: .4byte 0x0000012B _0801E7F0: movs r0, #0 @@ -2305,7 +2305,7 @@ sub_0801E99C: @ 0x0801E99C bl GetInventoryValue cmp r0, #0 beq _0801EA56 - ldr r1, _0801E9E8 @ =gUnk_02002A40 + ldr r1, _0801E9E8 @ =gSave ldrb r0, [r7] ldrb r2, [r1, #8] cmp r0, r2 @@ -2329,7 +2329,7 @@ _0801E9D6: b _0801EA10 .align 2, 0 _0801E9E4: .4byte gUnk_08001DCC -_0801E9E8: .4byte gUnk_02002A40 +_0801E9E8: .4byte gSave _0801E9EC: .4byte 0x000001C1 _0801E9F0: cmp r5, #0xf2 @@ -2370,7 +2370,7 @@ _0801EA1C: _0801EA32: movs r5, #0xf3 _0801EA34: - ldr r1, _0801EA5C @ =gUnk_02002A40 + ldr r1, _0801EA5C @ =gSave ldr r2, _0801EA60 @ =0x000001C1 adds r0, r1, r2 add r0, r8 @@ -2389,7 +2389,7 @@ _0801EA56: movs r0, #0 b _0801EA6E .align 2, 0 -_0801EA5C: .4byte gUnk_02002A40 +_0801EA5C: .4byte gSave _0801EA60: .4byte 0x000001C1 _0801EA64: subs r0, r5, #1 diff --git a/asm/code_08049D30.s b/asm/code_08049D30.s index b32b90b4..872580f6 100644 --- a/asm/code_08049D30.s +++ b/asm/code_08049D30.s @@ -1543,7 +1543,7 @@ _0804A864: bne _0804A934 adds r0, r5, #0 bl sub_08049CF4 - ldr r1, _0804A8E8 @ =gUnk_02002A40 + ldr r1, _0804A8E8 @ =gSave ldr r0, [r1, #0x50] adds r0, #1 str r0, [r1, #0x50] @@ -1594,7 +1594,7 @@ _0804A8CA: bl DeleteEntity b _0804A982 .align 2, 0 -_0804A8E8: .4byte gUnk_02002A40 +_0804A8E8: .4byte gSave _0804A8EC: adds r0, r5, #0 adds r0, #0x41 diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index 8b1015f6..6170eea3 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -149,7 +149,7 @@ _0804ACA4: .4byte gArea thumb_func_start sub_0804ACA8 sub_0804ACA8: @ 0x0804ACA8 push {lr} - ldr r0, _0804ACC0 @ =gUnk_03000FF0 + ldr r0, _0804ACC0 @ =gInput ldrh r1, [r0, #2] movs r0, #0x81 lsls r0, r0, #1 @@ -159,7 +159,7 @@ sub_0804ACA8: @ 0x0804ACA8 bl sub_0804AD18 b _0804ACC6 .align 2, 0 -_0804ACC0: .4byte gUnk_03000FF0 +_0804ACC0: .4byte gInput _0804ACC4: movs r0, #0 _0804ACC6: diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index 63821ab5..92ac7b50 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -47,7 +47,7 @@ sub_08052734: @ 0x08052734 bl sub_08052724 cmp r0, #0 beq _0805274C - ldr r0, _08052758 @ =gUnk_02002A40 + ldr r0, _08052758 @ =gSave ldr r1, _0805275C @ =gArea ldr r2, _08052760 @ =0x0000045C adds r0, r0, r2 @@ -62,7 +62,7 @@ _0805274C: _08052754: pop {r4, pc} .align 2, 0 -_08052758: .4byte gUnk_02002A40 +_08052758: .4byte gSave _0805275C: .4byte gArea _08052760: .4byte 0x0000045C @@ -72,7 +72,7 @@ sub_08052764: @ 0x08052764 bl sub_08052724 cmp r0, #0 beq _08052784 - ldr r0, _08052790 @ =gUnk_02002A40 + ldr r0, _08052790 @ =gSave ldr r1, _08052794 @ =gArea ldr r2, _08052798 @ =0x0000046C adds r0, r0, r2 @@ -91,7 +91,7 @@ _08052784: _0805278C: pop {r4, pc} .align 2, 0 -_08052790: .4byte gUnk_02002A40 +_08052790: .4byte gSave _08052794: .4byte gArea _08052798: .4byte 0x0000046C @@ -101,7 +101,7 @@ sub_0805279C: @ 0x0805279C bl sub_08052724 cmp r0, #0 beq _080527C8 - ldr r0, _080527BC @ =gUnk_02002A40 + ldr r0, _080527BC @ =gSave ldr r1, _080527C0 @ =gArea ldr r2, _080527C4 @ =0x0000046C adds r0, r0, r2 @@ -113,7 +113,7 @@ sub_0805279C: @ 0x0805279C ands r0, r1 b _080527CA .align 2, 0 -_080527BC: .4byte gUnk_02002A40 +_080527BC: .4byte gSave _080527C0: .4byte gArea _080527C4: .4byte 0x0000046C _080527C8: @@ -127,7 +127,7 @@ sub_080527CC: @ 0x080527CC bl sub_08052724 cmp r0, #0 beq _080527F8 - ldr r0, _080527EC @ =gUnk_02002A40 + ldr r0, _080527EC @ =gSave ldr r1, _080527F0 @ =gArea ldr r2, _080527F4 @ =0x0000046C adds r0, r0, r2 @@ -138,7 +138,7 @@ sub_080527CC: @ 0x080527CC ands r0, r1 b _080527FA .align 2, 0 -_080527EC: .4byte gUnk_02002A40 +_080527EC: .4byte gSave _080527F0: .4byte gArea _080527F4: .4byte 0x0000046C _080527F8: @@ -293,7 +293,7 @@ sub_0805291C: @ 0x0805291C ldrb r0, [r4, #8] cmp r0, #0 beq _080529F4 - ldr r0, _0805294C @ =gUnk_02002A40 + ldr r0, _0805294C @ =gSave adds r0, #0xaa ldrb r0, [r0] cmp r0, #0 @@ -311,7 +311,7 @@ sub_0805291C: @ 0x0805291C b _080529F6 .align 2, 0 _08052948: .4byte gScreenTransition -_0805294C: .4byte gUnk_02002A40 +_0805294C: .4byte gSave _08052950: .4byte gPlayerState _08052954: ldrb r0, [r4, #9] @@ -546,7 +546,7 @@ _08052B22: thumb_func_start sub_08052B24 sub_08052B24: @ 0x08052B24 push {lr} - ldr r0, _08052B90 @ =gUnk_03000FF0 + ldr r0, _08052B90 @ =gInput ldrh r1, [r0] movs r0, #4 ands r0, r1 @@ -600,7 +600,7 @@ _08052B8A: movs r0, #0 b _08052BB4 .align 2, 0 -_08052B90: .4byte gUnk_03000FF0 +_08052B90: .4byte gInput _08052B94: .4byte gPlayerState _08052B98: .4byte gUnk_02034490 _08052B9C: .4byte gUnk_0200AF00 @@ -1322,11 +1322,11 @@ _0805312C: beq _08053138 movs r4, #2 _08053138: - ldr r0, _08053140 @ =gUnk_02002A40 + ldr r0, _08053140 @ =gSave strb r4, [r0, #8] pop {r4, r5, pc} .align 2, 0 -_08053140: .4byte gUnk_02002A40 +_08053140: .4byte gSave thumb_func_start sub_08053144 sub_08053144: @ 0x08053144 @@ -1513,12 +1513,12 @@ _080532BC: beq _080532D0 b _080532DC _080532C2: - ldr r1, _080532CC @ =gUnk_02002A40 + ldr r1, _080532CC @ =gSave movs r0, #0 strb r0, [r1, #7] b _080532E0 .align 2, 0 -_080532CC: .4byte gUnk_02002A40 +_080532CC: .4byte gSave _080532D0: bl sub_080530B0 b _080532E0 @@ -1721,7 +1721,7 @@ _0805345C: .4byte gArea thumb_func_start sub_08053460 sub_08053460: @ 0x08053460 push {lr} - ldr r0, _08053488 @ =gUnk_02002A40 + ldr r0, _08053488 @ =gSave ldr r1, _0805348C @ =0x0000048C adds r0, r0, r1 movs r1, #0 @@ -1739,20 +1739,20 @@ _08053480: bl sub_0805356C pop {pc} .align 2, 0 -_08053488: .4byte gUnk_02002A40 +_08053488: .4byte gSave _0805348C: .4byte 0x0000048C _08053490: .4byte gUnk_080FCB38 thumb_func_start sub_08053494 sub_08053494: @ 0x08053494 - ldr r0, _080534A0 @ =gUnk_02002A40 + ldr r0, _080534A0 @ =gSave ldr r1, _080534A4 @ =0x0000048C adds r0, r0, r1 ldr r1, _080534A8 @ =0x00002A30 str r1, [r0] bx lr .align 2, 0 -_080534A0: .4byte gUnk_02002A40 +_080534A0: .4byte gSave _080534A4: .4byte 0x0000048C _080534A8: .4byte 0x00002A30 @@ -1769,7 +1769,7 @@ sub_080534AC: @ 0x080534AC adds r0, r4, #0 movs r1, #0x7c bl ClearLocalFlagByOffset - ldr r0, _080534D8 @ =gUnk_02002A40 + ldr r0, _080534D8 @ =gSave ldr r1, _080534DC @ =0x0000048C adds r0, r0, r1 movs r1, #0 @@ -1779,7 +1779,7 @@ sub_080534AC: @ 0x080534AC _080534D6: pop {r4, pc} .align 2, 0 -_080534D8: .4byte gUnk_02002A40 +_080534D8: .4byte gSave _080534DC: .4byte 0x0000048C _080534E0: .4byte 0x80100000 @@ -1803,14 +1803,14 @@ _080534FC: .4byte gRoomControls thumb_func_start sub_08053500 sub_08053500: @ 0x08053500 - ldr r0, _0805350C @ =gUnk_02002A40 + ldr r0, _0805350C @ =gSave ldr r1, _08053510 @ =0x00000494 adds r0, r0, r1 ldr r1, _08053514 @ =0x00008CA0 str r1, [r0] bx lr .align 2, 0 -_0805350C: .4byte gUnk_02002A40 +_0805350C: .4byte gSave _08053510: .4byte 0x00000494 _08053514: .4byte 0x00008CA0 @@ -3300,7 +3300,7 @@ _080540D0: cmp r0, #0 bne _080540C6 adds r6, r4, #0 - ldr r0, _08054100 @ =gUnk_02002A40 + ldr r0, _08054100 @ =gSave adds r0, #0xb6 adds r1, r5, r0 ldrb r0, [r1] @@ -3316,10 +3316,10 @@ _080540EE: bl PutItemOnSlot b _0805427C .align 2, 0 -_08054100: .4byte gUnk_02002A40 +_08054100: .4byte gSave _08054104: movs r5, #0 - ldr r0, _08054144 @ =gUnk_02002A40 + ldr r0, _08054144 @ =gSave adds r2, r0, #0 adds r2, #0xb6 ldrb r1, [r2] @@ -3353,14 +3353,14 @@ _0805412C: bl PlaySFX b _0805427C .align 2, 0 -_08054144: .4byte gUnk_02002A40 +_08054144: .4byte gSave _08054148: .4byte 0x00000109 _0805414C: movs r0, #1 bl sub_080526F8 b _0805424E _08054154: - ldr r1, _08054168 @ =gUnk_02002A40 + ldr r1, _08054168 @ =gSave ldr r0, _0805416C @ =gArea ldr r2, _08054170 @ =0x0000046C adds r1, r1, r2 @@ -3371,7 +3371,7 @@ _08054154: orrs r0, r2 b _0805427A .align 2, 0 -_08054168: .4byte gUnk_02002A40 +_08054168: .4byte gSave _0805416C: .4byte gArea _08054170: .4byte 0x0000046C _08054174: @@ -3417,7 +3417,7 @@ _080541B6: bl PutItemOnSlot b _080541E2 _080541CA: - ldr r0, _080541EC @ =gUnk_02002A40 + ldr r0, _080541EC @ =gSave adds r1, r0, #0 adds r1, #0xae ldrb r0, [r1] @@ -3434,7 +3434,7 @@ _080541E2: bl ModBombs b _0805427C .align 2, 0 -_080541EC: .4byte gUnk_02002A40 +_080541EC: .4byte gSave _080541F0: ldrb r0, [r4, #2] bl ModBombs @@ -3452,7 +3452,7 @@ _0805420A: bl ModArrows b _080541B0 _08054212: - ldr r0, _08054234 @ =gUnk_02002A40 + ldr r0, _08054234 @ =gSave adds r1, r0, #0 adds r1, #0xaf ldrb r0, [r1] @@ -3469,7 +3469,7 @@ _0805422A: bl ModArrows b _0805427C .align 2, 0 -_08054234: .4byte gUnk_02002A40 +_08054234: .4byte gSave _08054238: ldrb r0, [r4, #2] bl ModArrows @@ -3491,7 +3491,7 @@ _0805425C: bl sub_0801E738 b _0805427C _08054264: - ldr r0, _08054284 @ =gUnk_02002A40 + ldr r0, _08054284 @ =gSave adds r1, r0, #0 adds r1, #0xa8 ldrb r0, [r1] @@ -3510,7 +3510,7 @@ _0805427C: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08054284: .4byte gUnk_02002A40 +_08054284: .4byte gSave thumb_func_start sub_08054288 sub_08054288: @ 0x08054288 @@ -3554,7 +3554,7 @@ sub_080542C0: @ 0x080542C0 bne _080542CA movs r2, #1 _080542CA: - ldr r1, _080542DC @ =gUnk_02002A40 + ldr r1, _080542DC @ =gSave adds r0, r1, #0 adds r0, #0xc2 ldrh r0, [r0] @@ -3564,7 +3564,7 @@ _080542CA: movs r2, #0 b _080542E8 .align 2, 0 -_080542DC: .4byte gUnk_02002A40 +_080542DC: .4byte gSave _080542E0: ldr r3, _080542F0 @ =0x000003E7 cmp r2, r3 diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index 45ab199a..3e74e142 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -1102,7 +1102,7 @@ sub_08055114: @ 0x08055114 push {r4, lr} ldr r0, _08055150 @ =gUnk_080FF17C bl LoadRoomEntityList - ldr r0, _08055154 @ =gUnk_02002A40 + ldr r0, _08055154 @ =gSave ldrb r0, [r0, #8] cmp r0, #9 beq _0805512A @@ -1127,7 +1127,7 @@ _0805512A: pop {r4, pc} .align 2, 0 _08055150: .4byte gUnk_080FF17C -_08055154: .4byte gUnk_02002A40 +_08055154: .4byte gSave _08055158: .4byte 0x00000DB4 _0805515C: .4byte gMenu _08055160: .4byte gUnk_02000070 @@ -2024,7 +2024,7 @@ sub_08055834: @ 0x08055834 push {r4, lr} ldr r0, _08055870 @ =gUnk_080FF2C0 bl LoadRoomEntityList - ldr r0, _08055874 @ =gUnk_02002A40 + ldr r0, _08055874 @ =gSave ldrb r0, [r0, #8] cmp r0, #9 beq _0805584A @@ -2049,7 +2049,7 @@ _0805584A: pop {r4, pc} .align 2, 0 _08055870: .4byte gUnk_080FF2C0 -_08055874: .4byte gUnk_02002A40 +_08055874: .4byte gSave _08055878: .4byte 0x00000DB4 _0805587C: .4byte gMenu _08055880: .4byte gUnk_02000070 diff --git a/asm/code_08056418.s b/asm/code_08056418.s index 2b845adf..bb12835c 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -19,7 +19,7 @@ sub_080566B8: @ 0x080566B8 strb r0, [r1] b _0805674E _080566CC: - ldr r0, _08056740 @ =gUnk_03000FF0 + ldr r0, _08056740 @ =gInput ldrh r1, [r0] movs r0, #2 ands r0, r1 @@ -81,7 +81,7 @@ _08056732: strb r1, [r0] b _0805674E .align 2, 0 -_08056740: .4byte gUnk_03000FF0 +_08056740: .4byte gInput _08056744: .4byte gUnk_08107C0C _08056748: .4byte gUnk_02022780 _0805674C: @@ -422,7 +422,7 @@ sub_080569D4: @ 0x080569D4 ldr r0, _080569F0 @ =gUnk_02024030 movs r5, #3 ldrsb r5, [r0, r5] - ldr r0, _080569F4 @ =gUnk_03000FF0 + ldr r0, _080569F4 @ =gInput ldrh r0, [r0, #2] cmp r0, #8 beq _08056A02 @@ -433,7 +433,7 @@ sub_080569D4: @ 0x080569D4 b _08056A6A .align 2, 0 _080569F0: .4byte gUnk_02024030 -_080569F4: .4byte gUnk_03000FF0 +_080569F4: .4byte gInput _080569F8: cmp r0, #0x10 beq _08056A68 @@ -603,7 +603,7 @@ sub_08056B1C: @ 0x08056B1C .align 2, 0 _08056B44: .4byte gTextBox _08056B48: - ldr r0, _08056B68 @ =gUnk_03000FF0 + ldr r0, _08056B68 @ =gInput ldrh r1, [r0, #2] ldr r0, _08056B6C @ =0x000001F3 ands r0, r1 @@ -619,7 +619,7 @@ _08056B48: movs r0, #4 b _08056B78 .align 2, 0 -_08056B68: .4byte gUnk_03000FF0 +_08056B68: .4byte gInput _08056B6C: .4byte 0x000001F3 _08056B70: adds r1, r4, #0 @@ -665,7 +665,7 @@ sub_08056BA0: @ 0x08056BA0 beq _08056BCE cmp r0, #2 beq _08056BC8 - ldr r0, _08056BD4 @ =gUnk_03000FF0 + ldr r0, _08056BD4 @ =gInput ldrh r1, [r0, #2] ldr r0, _08056BD8 @ =0x000001F3 ands r0, r1 @@ -678,7 +678,7 @@ _08056BCE: pop {r4, pc} .align 2, 0 _08056BD0: .4byte gTextBox -_08056BD4: .4byte gUnk_03000FF0 +_08056BD4: .4byte gInput _08056BD8: .4byte 0x000001F3 thumb_func_start sub_08056BDC diff --git a/asm/code_0805EC04.s b/asm/code_0805EC04.s index 134743db..329b46b0 100644 --- a/asm/code_0805EC04.s +++ b/asm/code_0805EC04.s @@ -85,14 +85,14 @@ _0805EDAC: _0805EDB4: movs r0, #0 strb r0, [r2] - ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldr r0, _0805EDF8 @ =gInput ldrh r0, [r0] bl sub_0805EE04 adds r1, r4, #0 adds r1, #0x90 strh r0, [r1] _0805EDC6: - ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldr r0, _0805EDF8 @ =gInput ldrh r1, [r0] _0805EDCA: adds r0, r1, #0 @@ -117,7 +117,7 @@ _0805EDCA: strb r0, [r3, #0xd] pop {r4, pc} .align 2, 0 -_0805EDF8: .4byte gUnk_03000FF0 +_0805EDF8: .4byte gInput _0805EDFC: .4byte gPlayerState _0805EE00: .4byte gUnk_08109202 diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index c5e24be4..50acd0ae 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -598,7 +598,7 @@ sub_0806F188: @ 0x0806F188 adds r1, r0, #0 cmp r1, #0 beq _0806F1A0 - ldr r0, _0806F1A4 @ =gUnk_02002A40 + ldr r0, _0806F1A4 @ =gSave ldr r2, _0806F1A8 @ =0x000001C1 adds r0, r0, r2 adds r0, r1, r0 @@ -607,7 +607,7 @@ sub_0806F188: @ 0x0806F188 _0806F1A0: pop {pc} .align 2, 0 -_0806F1A4: .4byte gUnk_02002A40 +_0806F1A4: .4byte gSave _0806F1A8: .4byte 0x000001C1 thumb_func_start ShowNPCDialogue diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index b9b439c0..40190422 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -1462,7 +1462,7 @@ _080705A8: .4byte gUnk_02034490 thumb_func_start sub_080705AC sub_080705AC: @ 0x080705AC push {lr} - ldr r0, _08070614 @ =gUnk_03000FF0 + ldr r0, _08070614 @ =gInput ldrh r1, [r0, #2] movs r0, #8 ands r0, r1 @@ -1482,7 +1482,7 @@ sub_080705AC: @ 0x080705AC ands r0, r1 cmp r0, #0 bne _08070674 - ldr r1, _08070624 @ =gUnk_02002A40 + ldr r1, _08070624 @ =gSave adds r0, r1, #0 adds r0, #0xaa ldrb r0, [r0] @@ -1513,11 +1513,11 @@ sub_080705AC: @ 0x080705AC ldrb r0, [r0] b _08070632 .align 2, 0 -_08070614: .4byte gUnk_03000FF0 +_08070614: .4byte gInput _08070618: .4byte gFadeControl _0807061C: .4byte gUnk_02034490 _08070620: .4byte gTextBox -_08070624: .4byte gUnk_02002A40 +_08070624: .4byte gSave _08070628: .4byte gPlayerState _0807062C: .4byte gUnk_03003DC0 _08070630: diff --git a/asm/code_08070698.s b/asm/code_08070698.s index 0b19e971..9fb088c9 100644 --- a/asm/code_08070698.s +++ b/asm/code_08070698.s @@ -1127,7 +1127,7 @@ sub_08071D04: @ 0x08071D04 adds r1, r0, #0 cmp r1, #0 beq _08071D3A - ldr r0, _08071D6C @ =gUnk_02002A40 + ldr r0, _08071D6C @ =gSave adds r0, r0, r1 adds r0, #0xb5 movs r1, #0x20 @@ -1162,7 +1162,7 @@ _08071D3A: strb r3, [r1] b _08071D7A .align 2, 0 -_08071D6C: .4byte gUnk_02002A40 +_08071D6C: .4byte gSave _08071D70: .4byte gPlayerState _08071D74: ldr r1, _08071D7C @ =gScreenTransition diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 4eacdd99..2aff08e1 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -2319,7 +2319,7 @@ sub_0807441C: @ 0x0807441C ldrb r0, [r0] cmp r0, #4 bne _08074502 - ldr r6, _08074444 @ =gUnk_02002A40 + ldr r6, _08074444 @ =gSave adds r4, r6, #0 adds r4, #0xb4 ldrb r0, [r4] @@ -2330,7 +2330,7 @@ sub_0807441C: @ 0x0807441C b _0807444E .align 2, 0 _08074440: .4byte gPlayerState -_08074444: .4byte gUnk_02002A40 +_08074444: .4byte gSave _08074448: adds r0, r6, #0 adds r0, #0xb5 @@ -5810,7 +5810,7 @@ sub_08075E40: @ 0x08075E40 movs r0, #0x7f ands r0, r1 strb r0, [r4, #9] - ldr r0, _08075EA4 @ =gUnk_02002A40 + ldr r0, _08075EA4 @ =gSave adds r0, #0xad ldrb r0, [r0] cmp r0, #0 @@ -5825,7 +5825,7 @@ sub_08075E40: @ 0x08075E40 b _08075EB8 .align 2, 0 _08075EA0: .4byte gPlayerState -_08075EA4: .4byte gUnk_02002A40 +_08075EA4: .4byte gSave _08075EA8: adds r1, r6, #0 adds r1, #0x21 @@ -5845,7 +5845,7 @@ sub_08075EC0: @ 0x08075EC0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 - ldr r0, _08075F04 @ =gUnk_02002A40 + ldr r0, _08075F04 @ =gSave adds r0, #0xad ldrb r5, [r0] adds r0, r4, #0 @@ -5875,7 +5875,7 @@ _08075EF0: bl sub_08077E78 b _08075F32 .align 2, 0 -_08075F04: .4byte gUnk_02002A40 +_08075F04: .4byte gSave _08075F08: .4byte gPlayerState _08075F0C: ldr r2, _08075F34 @ =gPlayerState @@ -7323,7 +7323,7 @@ _080769CC: adds r5, r0, #0 cmp r5, #0 beq _08076A70 - ldr r6, _08076A34 @ =gUnk_02002A40 + ldr r6, _08076A34 @ =gSave adds r4, r6, #0 adds r4, #0xb4 ldrb r0, [r4] @@ -7333,7 +7333,7 @@ _080769CC: ldrb r1, [r4] b _08076A3E .align 2, 0 -_08076A34: .4byte gUnk_02002A40 +_08076A34: .4byte gSave _08076A38: adds r0, r6, #0 adds r0, #0xb5 diff --git a/asm/code_08076C80.s b/asm/code_08076C80.s index 912fdbcc..5ef6eb26 100644 --- a/asm/code_08076C80.s +++ b/asm/code_08076C80.s @@ -939,7 +939,7 @@ sub_08077534: @ 0x08077534 orrs r0, r1 strb r0, [r4, #9] ldrb r1, [r4, #1] - ldr r0, _08077574 @ =gUnk_02002A40 + ldr r0, _08077574 @ =gSave adds r0, r0, r1 adds r0, #0x9a ldrb r0, [r0] @@ -955,7 +955,7 @@ sub_08077534: @ 0x08077534 mov pc, r0 .align 2, 0 _08077570: .4byte gPlayerEntity -_08077574: .4byte gUnk_02002A40 +_08077574: .4byte gSave _08077578: .4byte _0807757C _0807757C: @ jump table .4byte _080775C4 @ case 0 @@ -1125,7 +1125,7 @@ sub_08077698: @ 0x08077698 bl sub_080777A0 cmp r0, #0 bne _08077700 - ldr r4, _08077720 @ =gUnk_02002A40 + ldr r4, _08077720 @ =gSave adds r0, r4, #0 adds r0, #0xb4 ldrb r0, [r0] @@ -1156,7 +1156,7 @@ _08077712: pop {r4, r5, pc} .align 2, 0 _0807771C: .4byte gPlayerState -_08077720: .4byte gUnk_02002A40 +_08077720: .4byte gSave _08077724: .4byte gUnk_03000B80 thumb_func_start sub_08077728 @@ -1164,7 +1164,7 @@ sub_08077728: @ 0x08077728 push {lr} cmp r0, #0 bne _08077744 - ldr r0, _08077740 @ =gUnk_02002A40 + ldr r0, _08077740 @ =gSave adds r0, #0xb4 ldrb r0, [r0] movs r1, #1 @@ -1172,9 +1172,9 @@ sub_08077728: @ 0x08077728 bl sub_08077880 b _08077752 .align 2, 0 -_08077740: .4byte gUnk_02002A40 +_08077740: .4byte gSave _08077744: - ldr r0, _08077754 @ =gUnk_02002A40 + ldr r0, _08077754 @ =gSave adds r0, #0xb5 ldrb r0, [r0] movs r1, #2 @@ -1183,7 +1183,7 @@ _08077744: _08077752: pop {pc} .align 2, 0 -_08077754: .4byte gUnk_02002A40 +_08077754: .4byte gSave thumb_func_start sub_08077758 sub_08077758: @ 0x08077758 @@ -1640,7 +1640,7 @@ _08077A96: thumb_func_start sub_08077A98 sub_08077A98: @ 0x08077A98 push {lr} - ldr r0, _08077AB8 @ =gUnk_02002A40 + ldr r0, _08077AB8 @ =gSave adds r0, #0xac ldrb r0, [r0] cmp r0, #0 @@ -1656,7 +1656,7 @@ sub_08077A98: @ 0x08077A98 adds r0, r1, #0 b _08077AC6 .align 2, 0 -_08077AB8: .4byte gUnk_02002A40 +_08077AB8: .4byte gSave _08077ABC: .4byte gPlayerState _08077AC0: .4byte gUnk_03000B80 _08077AC4: diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index aaec6e04..ee57b918 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -25,7 +25,7 @@ _08078004: .4byte gUnk_0811BFE8 sub_08078008: @ 0x08078008 push {r4, r5, r6, lr} adds r4, r0, #0 - ldr r6, _08078060 @ =gUnk_02002A40 + ldr r6, _08078060 @ =gSave adds r5, r6, #0 adds r5, #0xb4 ldrb r0, [r5] @@ -69,7 +69,7 @@ _08078036: strb r2, [r4, #2] b _0807806C .align 2, 0 -_08078060: .4byte gUnk_02002A40 +_08078060: .4byte gSave _08078064: .4byte gPlayerState _08078068: movs r0, #0 @@ -529,7 +529,7 @@ _080783B6: bhi _0807842C movs r0, #0 bl sub_0801E738 - ldr r0, _08078410 @ =gUnk_02002A40 + ldr r0, _08078410 @ =gSave ldr r1, _08078414 @ =0x0000012B adds r0, r0, r1 ldrb r0, [r0] @@ -550,7 +550,7 @@ _08078400: .4byte gPlayerEntity _08078404: .4byte 0x00000206 _08078408: .4byte gPlayerState _0807840C: .4byte gUnk_03003DF0 -_08078410: .4byte gUnk_02002A40 +_08078410: .4byte gSave _08078414: .4byte 0x0000012B _08078418: ldr r0, _08078428 @ =0x00000B65 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index afea07e6..3adfafaa 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -3221,7 +3221,7 @@ sub_0807A094: @ 0x0807A094 .align 2, 0 _0807A0AC: .4byte gPlayerState _0807A0B0: - ldr r0, _0807A0F0 @ =gUnk_02002A40 + ldr r0, _0807A0F0 @ =gSave adds r1, r0, #0 adds r1, #0xb2 ldrb r1, [r1] @@ -3254,7 +3254,7 @@ _0807A0D6: beq _0807A0FA b _0807A102 .align 2, 0 -_0807A0F0: .4byte gUnk_02002A40 +_0807A0F0: .4byte gSave _0807A0F4: cmp r0, #0x31 beq _0807A0FE @@ -3315,7 +3315,7 @@ _0807A154: .4byte gPlayerEntity thumb_func_start sub_0807A158 sub_0807A158: @ 0x0807A158 push {r4, lr} - ldr r4, _0807A178 @ =gUnk_02002A40 + ldr r4, _0807A178 @ =gSave adds r0, r4, #0 adds r0, #0xb4 ldrb r0, [r0] @@ -3328,7 +3328,7 @@ sub_0807A158: @ 0x0807A158 bl sub_0805449C b _0807A17E .align 2, 0 -_0807A178: .4byte gUnk_02002A40 +_0807A178: .4byte gSave _0807A17C: movs r0, #1 _0807A17E: @@ -5289,7 +5289,7 @@ sub_0807B014: @ 0x0807B014 ands r0, r1 cmp r0, #0 beq _0807B044 - ldr r0, _0807B040 @ =gUnk_02002A40 + ldr r0, _0807B040 @ =gSave adds r1, r0, #0 adds r1, #0xaa adds r0, #0xab @@ -5301,7 +5301,7 @@ sub_0807B014: @ 0x0807B014 b _0807B066 .align 2, 0 _0807B03C: .4byte gPlayerState -_0807B040: .4byte gUnk_02002A40 +_0807B040: .4byte gSave _0807B044: adds r0, r2, #0 adds r0, #0xac @@ -5310,7 +5310,7 @@ _0807B044: ands r0, r1 cmp r0, #0 beq _0807B064 - ldr r0, _0807B060 @ =gUnk_02002A40 + ldr r0, _0807B060 @ =gSave adds r0, #0xaa ldrb r0, [r0] cmp r0, #8 @@ -5318,7 +5318,7 @@ _0807B044: movs r0, #0x16 b _0807B066 .align 2, 0 -_0807B060: .4byte gUnk_02002A40 +_0807B060: .4byte gSave _0807B064: movs r0, #0 _0807B066: diff --git a/asm/code_0807CAA0.s b/asm/code_0807CAA0.s index 0b12b535..45cd2503 100644 --- a/asm/code_0807CAA0.s +++ b/asm/code_0807CAA0.s @@ -29,7 +29,7 @@ _0807CAC4: .4byte gUnk_02002B32 thumb_func_start sub_0807CAC8 sub_0807CAC8: @ 0x0807CAC8 - ldr r2, _0807CAE0 @ =gUnk_02002A40 + ldr r2, _0807CAE0 @ =gSave ldr r1, _0807CAE4 @ =gArea ldr r3, _0807CAE8 @ =0x0000047C adds r2, r2, r3 @@ -42,14 +42,14 @@ sub_0807CAC8: @ 0x0807CAC8 strb r1, [r2] bx lr .align 2, 0 -_0807CAE0: .4byte gUnk_02002A40 +_0807CAE0: .4byte gSave _0807CAE4: .4byte gArea _0807CAE8: .4byte 0x0000047C thumb_func_start sub_0807CAEC sub_0807CAEC: @ 0x0807CAEC adds r2, r0, #0 - ldr r0, _0807CB04 @ =gUnk_02002A40 + ldr r0, _0807CB04 @ =gSave ldr r1, _0807CB08 @ =gArea ldr r3, _0807CB0C @ =0x0000047C adds r0, r0, r3 @@ -61,7 +61,7 @@ sub_0807CAEC: @ 0x0807CAEC ands r0, r1 bx lr .align 2, 0 -_0807CB04: .4byte gUnk_02002A40 +_0807CB04: .4byte gSave _0807CB08: .4byte gArea _0807CB0C: .4byte 0x0000047C diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index 4f9ed157..51137693 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -7,7 +7,7 @@ thumb_func_start sub_0807F0D8 sub_0807F0D8: @ 0x0807F0D8 - ldr r0, _0807F0E8 @ =gUnk_03000FF0 + ldr r0, _0807F0E8 @ =gInput ldrh r2, [r0, #2] rsbs r0, r2, #0 orrs r0, r2 @@ -15,7 +15,7 @@ sub_0807F0D8: @ 0x0807F0D8 str r0, [r1, #0x14] bx lr .align 2, 0 -_0807F0E8: .4byte gUnk_03000FF0 +_0807F0E8: .4byte gInput thumb_func_start sub_0807F0EC sub_0807F0EC: @ 0x0807F0EC @@ -1010,7 +1010,7 @@ sub_0807F7C4: @ 0x0807F7C4 _0807F7D2: bl sub_08053FE0 movs r2, #0 - ldr r1, _0807F7F8 @ =gUnk_02002A40 + ldr r1, _0807F7F8 @ =gSave adds r1, #0xc0 ldrh r1, [r1] cmp r0, r1 @@ -1026,7 +1026,7 @@ _0807F7E4: pop {r4, pc} .align 2, 0 _0807F7F4: .4byte gRoomVars -_0807F7F8: .4byte gUnk_02002A40 +_0807F7F8: .4byte gSave _0807F7FC: .4byte gUnk_02033280 thumb_func_start sub_0807F800 @@ -1562,7 +1562,7 @@ _0807FBF8: .4byte gUnk_02033280 thumb_func_start sub_0807FBFC sub_0807FBFC: @ 0x0807FBFC - ldr r3, _0807FC20 @ =gUnk_02002A40 + ldr r3, _0807FC20 @ =gSave adds r0, r3, #0 adds r0, #0xb2 movs r1, #0 @@ -1580,7 +1580,7 @@ sub_0807FBFC: @ 0x0807FBFC strh r1, [r0] bx lr .align 2, 0 -_0807FC20: .4byte gUnk_02002A40 +_0807FC20: .4byte gSave thumb_func_start sub_0807FC24 sub_0807FC24: @ 0x0807FC24 diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s index 36ba6916..e4183f7d 100644 --- a/asm/code_080A3480.s +++ b/asm/code_080A3480.s @@ -224,7 +224,7 @@ _080A3604: .4byte gUnk_03001000 thumb_func_start sub_080A3608 sub_080A3608: @ 0x080A3608 push {r4, r5, lr} - ldr r0, _080A3640 @ =gUnk_02002A40 + ldr r0, _080A3640 @ =gSave movs r5, #0 movs r4, #1 strb r4, [r0, #6] @@ -250,7 +250,7 @@ sub_080A3608: @ 0x080A3608 ldr r0, _080A364C @ =gUnk_08127998 b _080A365E .align 2, 0 -_080A3640: .4byte gUnk_02002A40 +_080A3640: .4byte gSave _080A3644: .4byte gUnk_03001000 _080A3648: .4byte gMenu _080A364C: .4byte gUnk_08127998 @@ -753,7 +753,7 @@ _080A3A42: _080A3A50: .4byte gFadeControl _080A3A54: ldrb r4, [r2, #3] - ldr r0, _080A3A68 @ =gUnk_03000FF0 + ldr r0, _080A3A68 @ =gInput ldrh r0, [r0, #2] cmp r0, #0x40 beq _080A3A72 @@ -763,7 +763,7 @@ _080A3A54: beq _080A3A7A b _080A3A9A .align 2, 0 -_080A3A68: .4byte gUnk_03000FF0 +_080A3A68: .4byte gInput _080A3A6C: cmp r0, #0x80 beq _080A3A76 @@ -782,7 +782,7 @@ _080A3A7A: _080A3A82: movs r0, #8 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox movs r0, #2 _080A3A8C: ldr r1, _080A3AB4 @ =gMenu @@ -827,7 +827,7 @@ _080A3ADC: strh r0, [r4, #8] movs r0, #9 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox movs r0, #3 strb r0, [r4, #6] b _080A3B36 @@ -840,7 +840,7 @@ _080A3AEE: strh r0, [r1, #8] b _080A3B36 _080A3AFC: - ldr r0, _080A3B10 @ =gUnk_03000FF0 + ldr r0, _080A3B10 @ =gInput ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 @@ -850,7 +850,7 @@ _080A3AFC: strb r0, [r2, #6] b _080A3B36 .align 2, 0 -_080A3B10: .4byte gUnk_03000FF0 +_080A3B10: .4byte gInput _080A3B14: ldr r2, _080A3B38 @ =gScreen ldrh r1, [r2] @@ -879,7 +879,7 @@ _080A3B44: .4byte gMenu sub_080A3B48: @ 0x080A3B48 push {lr} movs r1, #0 - ldr r0, _080A3B6C @ =gUnk_02002A40 + ldr r0, _080A3B6C @ =gSave ldr r3, _080A3B70 @ =0x0000012B adds r2, r0, r3 ldrb r0, [r2] @@ -897,7 +897,7 @@ _080A3B66: adds r0, r1, #0 pop {pc} .align 2, 0 -_080A3B6C: .4byte gUnk_02002A40 +_080A3B6C: .4byte gSave _080A3B70: .4byte 0x0000012B thumb_func_start sub_080A3B74 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 20d43006..79267c0b 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -86,7 +86,7 @@ _080A3CF0: movs r0, #0x69 bl PlaySFX _080A3CFE: - ldr r2, _080A3D28 @ =gUnk_03000FF0 + ldr r2, _080A3D28 @ =gInput ldrh r1, [r2, #2] ldr r0, _080A3D2C @ =0x0000020A ands r0, r1 @@ -102,7 +102,7 @@ _080A3D18: .4byte 0x0001FFFF _080A3D1C: .4byte gUnk_081280EE _080A3D20: .4byte 0x00000666 _080A3D24: .4byte 0x0000FFFF -_080A3D28: .4byte gUnk_03000FF0 +_080A3D28: .4byte gInput _080A3D2C: .4byte 0x0000020A _080A3D30: adds r0, r5, #0 @@ -143,7 +143,7 @@ _080A3D5E: adds r0, r0, r1 _080A3D70: asrs r4, r0, #0x10 - ldr r0, _080A3DB4 @ =gUnk_02002A40 + ldr r0, _080A3DB4 @ =gSave movs r1, #0x8c lsls r1, r1, #1 adds r0, r0, r1 @@ -177,7 +177,7 @@ _080A3DA8: .align 2, 0 _080A3DAC: .4byte gMenu _080A3DB0: .4byte 0x0000FFFF -_080A3DB4: .4byte gUnk_02002A40 +_080A3DB4: .4byte gSave thumb_func_start sub_080A3DB8 sub_080A3DB8: @ 0x080A3DB8 @@ -715,7 +715,7 @@ _080A41CE: mov r1, sb adds r0, r3, r1 ldrb r1, [r0] - ldr r0, _080A4228 @ =gUnk_02002A40 + ldr r0, _080A4228 @ =gSave cmp r5, #0 bne _080A41EE ldrb r2, [r2, #1] @@ -749,7 +749,7 @@ _080A4218: .4byte 0x00000B21 _080A421C: .4byte gSineTable _080A4220: .4byte gUnk_02002B6B _080A4224: .4byte 0x0000FFFF -_080A4228: .4byte gUnk_02002A40 +_080A4228: .4byte gSave thumb_func_start sub_080A422C sub_080A422C: @ 0x080A422C @@ -1303,7 +1303,7 @@ _080A4674: bge _080A4674 ldr r0, _080A46B8 @ =gUnk_02032EC0 ldrb r1, [r0, #3] - ldr r0, _080A46BC @ =gUnk_02002A40 + ldr r0, _080A46BC @ =gSave ldrb r0, [r0, #6] movs r2, #0x88 cmp r0, #0 @@ -1327,7 +1327,7 @@ _080A46AC: .4byte gScreen _080A46B0: .4byte 0x00007898 _080A46B4: .4byte gMenu _080A46B8: .4byte gUnk_02032EC0 -_080A46BC: .4byte gUnk_02002A40 +_080A46BC: .4byte gSave thumb_func_start sub_080A46C0 sub_080A46C0: @ 0x080A46C0 @@ -1469,7 +1469,7 @@ sub_080A47D0: @ 0x080A47D0 ldr r0, _080A47EC @ =gMenu movs r4, #0x1f ldrsb r4, [r0, r4] - ldr r0, _080A47F0 @ =gUnk_03000FF0 + ldr r0, _080A47F0 @ =gInput ldrh r0, [r0, #4] cmp r0, #8 beq _080A47FE @@ -1480,7 +1480,7 @@ sub_080A47D0: @ 0x080A47D0 b _080A480A .align 2, 0 _080A47EC: .4byte gMenu -_080A47F0: .4byte gUnk_03000FF0 +_080A47F0: .4byte gInput _080A47F4: cmp r0, #0x10 beq _080A4804 @@ -1551,7 +1551,7 @@ sub_080A4864: @ 0x080A4864 movs r5, #0x1f ldrsb r5, [r0, r5] ldrb r4, [r0, #0x1c] - ldr r0, _080A489C @ =gUnk_03000FF0 + ldr r0, _080A489C @ =gInput ldrh r1, [r0, #4] cmp r1, #0x20 beq _080A48DC @@ -1569,7 +1569,7 @@ sub_080A4864: @ 0x080A4864 .align 2, 0 _080A4894: .4byte gFadeControl _080A4898: .4byte gMenu -_080A489C: .4byte gUnk_03000FF0 +_080A489C: .4byte gInput _080A48A0: cmp r1, #0x80 beq _080A48D4 @@ -1610,7 +1610,7 @@ _080A48D8: _080A48DC: subs r5, #8 _080A48DE: - ldr r0, _080A4928 @ =gUnk_02002A40 + ldr r0, _080A4928 @ =gSave ldrb r0, [r0, #6] movs r1, #0x88 cmp r0, #0 @@ -1653,7 +1653,7 @@ _080A491C: _080A4926: pop {r4, r5, r6, pc} .align 2, 0 -_080A4928: .4byte gUnk_02002A40 +_080A4928: .4byte gSave _080A492C: .4byte gMenu _080A4930: .4byte gScreen @@ -1676,7 +1676,7 @@ sub_080A4948: @ 0x080A4948 push {r4, lr} adds r1, r0, #0 movs r4, #0 - ldr r3, _080A4974 @ =gUnk_02002A40 + ldr r3, _080A4974 @ =gSave ldrb r0, [r3, #6] movs r2, #0x88 cmp r0, #0 @@ -1698,7 +1698,7 @@ _080A4970: adds r0, r4, #0 pop {r4, pc} .align 2, 0 -_080A4974: .4byte gUnk_02002A40 +_080A4974: .4byte gSave thumb_func_start sub_080A4978 sub_080A4978: @ 0x080A4978 @@ -1721,7 +1721,7 @@ sub_080A4978: @ 0x080A4978 adds r0, r7, #0 movs r1, #0 bl sub_080ADA14 - ldr r0, _080A4B20 @ =gUnk_02002A40 + ldr r0, _080A4B20 @ =gSave ldrb r0, [r0, #6] movs r2, #0x88 cmp r0, #0 @@ -1908,7 +1908,7 @@ _080A4ABE: b _080A4B3A .align 2, 0 _080A4B1C: .4byte gUnk_03001010 -_080A4B20: .4byte gUnk_02002A40 +_080A4B20: .4byte gSave _080A4B24: .4byte gMenu _080A4B28: .4byte gUnk_03001000 _080A4B2C: .4byte gUnk_081281A8 @@ -2007,7 +2007,7 @@ sub_080A4BA0: @ 0x080A4BA0 mov r0, sp strb r6, [r0, #0x14] _080A4BEE: - ldr r0, _080A4C10 @ =gUnk_02002A40 + ldr r0, _080A4C10 @ =gSave ldrb r0, [r0, #6] movs r1, #0x88 cmp r0, #0 @@ -2025,7 +2025,7 @@ _080A4C02: .align 2, 0 _080A4C08: .4byte gUnk_0812816C _080A4C0C: .4byte gUnk_08128184 -_080A4C10: .4byte gUnk_02002A40 +_080A4C10: .4byte gSave _080A4C14: ldr r1, _080A4C30 @ =gUnk_020227E8 ldr r2, _080A4C34 @ =0x00303030 @@ -2175,7 +2175,7 @@ sub_080A4D34: @ 0x080A4D34 bl sub_08053320 movs r0, #0xb5 bl LoadPaletteGroup - ldr r1, _080A4D50 @ =gUnk_02002A40 + ldr r1, _080A4D50 @ =gSave adds r2, r1, #0 adds r2, #0xaa ldrb r0, [r2] @@ -2184,7 +2184,7 @@ sub_080A4D34: @ 0x080A4D34 movs r1, #2 b _080A4D66 .align 2, 0 -_080A4D50: .4byte gUnk_02002A40 +_080A4D50: .4byte gSave _080A4D54: adds r0, r1, #0 adds r0, #0xab @@ -2483,7 +2483,7 @@ sub_080A4FB8: @ 0x080A4FB8 beq _080A5052 movs r4, #1 rsbs r4, r4, #0 - ldr r0, _080A4FE8 @ =gUnk_03000FF0 + ldr r0, _080A4FE8 @ =gInput ldrh r1, [r0, #2] cmp r1, #8 beq _080A4FFE @@ -2494,7 +2494,7 @@ sub_080A4FB8: @ 0x080A4FB8 b _080A500C .align 2, 0 _080A4FE4: .4byte gMenu -_080A4FE8: .4byte gUnk_03000FF0 +_080A4FE8: .4byte gInput _080A4FEC: movs r0, #0x80 lsls r0, r0, #1 @@ -2869,7 +2869,7 @@ sub_080A529C: @ 0x080A529C lsls r1, r4, #3 ldr r0, _080A52D8 @ =gUnk_08128B64 adds r1, r1, r0 - ldr r0, _080A52DC @ =gUnk_03000FF0 + ldr r0, _080A52DC @ =gInput ldrh r2, [r0, #2] adds r3, r0, #0 cmp r2, #1 @@ -2886,7 +2886,7 @@ sub_080A529C: @ 0x080A529C _080A52D0: .4byte gMenu _080A52D4: .4byte gUnk_08128BF4 _080A52D8: .4byte gUnk_08128B64 -_080A52DC: .4byte gUnk_03000FF0 +_080A52DC: .4byte gInput _080A52E0: cmp r4, #0x10 bne _080A52EC @@ -2960,13 +2960,13 @@ _080A535C: .4byte gMenu _080A5360: cmp r1, #0 beq _080A5376 - ldr r0, _080A5370 @ =gUnk_02002A40 + ldr r0, _080A5370 @ =gSave adds r0, r0, r1 adds r0, #0x9a ldrb r1, [r0] b _080A5376 .align 2, 0 -_080A5370: .4byte gUnk_02002A40 +_080A5370: .4byte gSave _080A5374: movs r1, #0x73 _080A5376: @@ -2993,7 +2993,7 @@ sub_080A5384: @ 0x080A5384 strh r2, [r0, #6] strh r2, [r0, #8] movs r5, #0 - ldr r4, _080A5404 @ =gUnk_02002A40 + ldr r4, _080A5404 @ =gSave movs r0, #0xb6 adds r0, r0, r4 mov sl, r0 @@ -3046,7 +3046,7 @@ _080A53E0: b _080A542C .align 2, 0 _080A5400: .4byte gUnk_03001010 -_080A5404: .4byte gUnk_02002A40 +_080A5404: .4byte gSave _080A5408: .4byte gMenu _080A540C: .4byte gUnk_08128B64 _080A5410: .4byte gBombBagSizes @@ -3149,7 +3149,7 @@ _080A54B6: adds r0, r6, #0 movs r1, #0x22 bl sub_080ADA14 - ldr r7, _080A5548 @ =gUnk_02002A40 + ldr r7, _080A5548 @ =gSave adds r0, r7, #0 adds r0, #0xb4 ldrb r0, [r0] @@ -3200,4 +3200,4 @@ _080A5538: .4byte gMenu _080A553C: .4byte gUnk_08128B64 _080A5540: .4byte gUnk_03001000 _080A5544: .4byte 0x000001FB -_080A5548: .4byte gUnk_02002A40 +_080A5548: .4byte gSave diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 837f9140..c6e22207 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -100,7 +100,7 @@ _080A5646: strb r5, [r0, #0x10] _080A564A: ldr r0, _080A5698 @ =gMenu - ldr r1, _080A569C @ =gUnk_02002A40 + ldr r1, _080A569C @ =gSave adds r1, #0xa9 ldrb r1, [r1] adds r1, #1 @@ -138,7 +138,7 @@ _080A5688: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A5698: .4byte gMenu -_080A569C: .4byte gUnk_02002A40 +_080A569C: .4byte gSave thumb_func_start sub_080A56A0 sub_080A56A0: @ 0x080A56A0 @@ -156,7 +156,7 @@ _080A56AC: ldr r1, _080A56D8 @ =gUnk_08128C14 adds r4, r0, r1 movs r3, #0xff - ldr r0, _080A56DC @ =gUnk_03000FF0 + ldr r0, _080A56DC @ =gInput ldrh r1, [r0, #4] cmp r1, #0x20 beq _080A56F2 @@ -169,7 +169,7 @@ _080A56AC: _080A56D0: .4byte gMenu _080A56D4: .4byte gUnk_08128C00 _080A56D8: .4byte gUnk_08128C14 -_080A56DC: .4byte gUnk_03000FF0 +_080A56DC: .4byte gInput _080A56E0: cmp r1, #0x40 beq _080A56EA @@ -485,7 +485,7 @@ _080A5920: ldrb r0, [r3, #7] adds r0, #8 strh r0, [r1, #2] - ldr r0, _080A598C @ =gUnk_02002A40 + ldr r0, _080A598C @ =gSave adds r0, #0xc2 ldrh r4, [r0] movs r0, #0 @@ -523,7 +523,7 @@ _080A5976: _080A5980: .4byte gUnk_080FDFD8 _080A5984: .4byte gMenu _080A5988: .4byte gUnk_03001010 -_080A598C: .4byte gUnk_02002A40 +_080A598C: .4byte gSave thumb_func_start sub_080A5990 sub_080A5990: @ 0x080A5990 @@ -563,7 +563,7 @@ sub_080A59C8: @ 0x080A59C8 ldr r1, _080A59EC @ =gMenu ldrb r2, [r1, #3] movs r3, #0 - ldr r0, _080A59F0 @ =gUnk_03000FF0 + ldr r0, _080A59F0 @ =gInput ldrh r0, [r0, #2] cmp r0, #2 beq _080A5A02 @@ -574,7 +574,7 @@ sub_080A59C8: @ 0x080A59C8 b _080A5A0C .align 2, 0 _080A59EC: .4byte gMenu -_080A59F0: .4byte gUnk_03000FF0 +_080A59F0: .4byte gInput _080A59F4: cmp r0, #0x40 beq _080A59FE @@ -602,7 +602,7 @@ _080A5A10: bne _080A5A2E movs r0, #8 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox movs r0, #2 bl sub_080A7114 movs r0, #0x6a @@ -649,7 +649,7 @@ _080A5A70: _080A5A76: movs r0, #9 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox ldr r1, _080A5A8C @ =gMenu movs r0, #0x3c strh r0, [r1, #8] @@ -676,7 +676,7 @@ sub_080A5A90: @ 0x080A5A90 .align 2, 0 _080A5AA4: .4byte gMenu _080A5AA8: - ldr r0, _080A5ABC @ =gUnk_03000FF0 + ldr r0, _080A5ABC @ =gInput ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 @@ -686,7 +686,7 @@ _080A5AA8: strh r0, [r2, #8] b _080A5AD2 .align 2, 0 -_080A5ABC: .4byte gUnk_03000FF0 +_080A5ABC: .4byte gInput _080A5AC0: ldr r0, _080A5AD4 @ =gUnk_02034490 ldrb r0, [r0, #1] @@ -758,7 +758,7 @@ sub_080A5B34: @ 0x080A5B34 ldr r1, _080A5B58 @ =gMenu ldrb r4, [r1, #3] movs r5, #0 - ldr r0, _080A5B5C @ =gUnk_03000FF0 + ldr r0, _080A5B5C @ =gInput ldrh r0, [r0, #2] adds r6, r1, #0 cmp r0, #2 @@ -770,7 +770,7 @@ sub_080A5B34: @ 0x080A5B34 b _080A5B76 .align 2, 0 _080A5B58: .4byte gMenu -_080A5B5C: .4byte gUnk_03000FF0 +_080A5B5C: .4byte gInput _080A5B60: cmp r0, #0x10 beq _080A5B70 @@ -936,7 +936,7 @@ sub_080A5C9C: @ 0x080A5C9C adds r3, r0, r1 ldr r1, _080A5CCC @ =gMenu ldrb r2, [r1, #3] - ldr r0, _080A5CD0 @ =gUnk_03000FF0 + ldr r0, _080A5CD0 @ =gInput ldrh r0, [r0, #2] cmp r0, #0x40 beq _080A5CD4 @@ -947,7 +947,7 @@ sub_080A5C9C: @ 0x080A5C9C _080A5CC4: .4byte gArea _080A5CC8: .4byte gUnk_080C9C6C _080A5CCC: .4byte gMenu -_080A5CD0: .4byte gUnk_03000FF0 +_080A5CD0: .4byte gInput _080A5CD4: cmp r2, #0 ble _080A5CE6 @@ -1271,7 +1271,7 @@ sub_080A5F48: @ 0x080A5F48 bhi _080A5F5C cmp r4, #0x1c blo _080A5F5C - ldr r0, _080A5F9C @ =gUnk_02002A40 + ldr r0, _080A5F9C @ =gSave adds r0, r0, r4 adds r0, #0x9a ldrb r4, [r0] @@ -1304,11 +1304,11 @@ _080A5F5C: blo _080A5FBE cmp r4, #8 bhi _080A5FB4 - ldr r0, _080A5F9C @ =gUnk_02002A40 + ldr r0, _080A5F9C @ =gSave adds r0, #0xac b _080A5FBC .align 2, 0 -_080A5F9C: .4byte gUnk_02002A40 +_080A5F9C: .4byte gSave _080A5FA0: .4byte 0x06010000 _080A5FA4: .4byte gUnk_080FDFD8 _080A5FA8: .4byte gUnk_08003DD4 @@ -1317,7 +1317,7 @@ _080A5FB0: .4byte 0x84000040 _080A5FB4: cmp r4, #0xa bhi _080A5FBE - ldr r0, _080A5FF8 @ =gUnk_02002A40 + ldr r0, _080A5FF8 @ =gSave adds r0, #0xad _080A5FBC: ldrb r0, [r0] @@ -1353,7 +1353,7 @@ _080A5FD0: _080A5FF6: pop {r4, r5, pc} .align 2, 0 -_080A5FF8: .4byte gUnk_02002A40 +_080A5FF8: .4byte gSave _080A5FFC: .4byte 0x040000D4 _080A6000: .4byte gUnk_085C4620 _080A6004: .4byte 0x84000008 @@ -1405,7 +1405,7 @@ sub_080A6044: @ 0x080A6044 strh r0, [r1, #6] movs r5, #0 movs r4, #0 - ldr r0, _080A60D8 @ =gUnk_02002A40 + ldr r0, _080A60D8 @ =gSave movs r2, #0x8c lsls r2, r2, #1 adds r3, r0, r2 @@ -1460,7 +1460,7 @@ _080A60C2: _080A60CC: .4byte gMenu _080A60D0: .4byte gUnk_08128D51 _080A60D4: .4byte gUnk_03001010 -_080A60D8: .4byte gUnk_02002A40 +_080A60D8: .4byte gSave _080A60DC: .4byte 0x0000012B thumb_func_start sub_080A60E0 @@ -1505,7 +1505,7 @@ sub_080A612C: @ 0x080A612C beq _080A6178 ldr r1, _080A614C @ =gMenu ldrb r2, [r1, #3] - ldr r0, _080A6150 @ =gUnk_03000FF0 + ldr r0, _080A6150 @ =gInput ldrh r0, [r0, #2] cmp r0, #0x10 beq _080A6154 @@ -1515,7 +1515,7 @@ sub_080A612C: @ 0x080A612C b _080A6156 .align 2, 0 _080A614C: .4byte gMenu -_080A6150: .4byte gUnk_03000FF0 +_080A6150: .4byte gInput _080A6154: adds r2, #1 _080A6156: @@ -1688,7 +1688,7 @@ sub_080A6290: @ 0x080A6290 ldr r0, _080A62D4 @ =0x0000FFFC strh r0, [r1, #0x18] strh r0, [r1, #0x24] - ldr r2, _080A62D8 @ =gUnk_02002A40 + ldr r2, _080A62D8 @ =gSave ldr r0, [r2, #0x40] ldr r1, _080A62DC @ =0x00010780 orrs r0, r1 @@ -1704,7 +1704,7 @@ _080A62C8: .4byte gMenu _080A62CC: .4byte gUnk_08128DD4 _080A62D0: .4byte gScreen _080A62D4: .4byte 0x0000FFFC -_080A62D8: .4byte gUnk_02002A40 +_080A62D8: .4byte gSave _080A62DC: .4byte 0x00010780 thumb_func_start sub_080A62E0 @@ -1720,7 +1720,7 @@ sub_080A62E0: @ 0x080A62E0 adds r1, r1, r0 movs r4, #1 rsbs r4, r4, #0 - ldr r0, _080A6318 @ =gUnk_03000FF0 + ldr r0, _080A6318 @ =gInput ldrh r2, [r0, #2] cmp r2, #0x20 beq _080A634E @@ -1734,7 +1734,7 @@ sub_080A62E0: @ 0x080A62E0 .align 2, 0 _080A6310: .4byte gMenu _080A6314: .4byte gUnk_08128DE8 -_080A6318: .4byte gUnk_03000FF0 +_080A6318: .4byte gInput _080A631C: cmp r2, #0x40 beq _080A6344 @@ -1742,7 +1742,7 @@ _080A631C: beq _080A634A b _080A635A _080A6326: - ldr r0, _080A6340 @ =gUnk_02002A40 + ldr r0, _080A6340 @ =gSave lsls r2, r3 ldr r0, [r0, #0x40] ands r0, r2 @@ -1754,7 +1754,7 @@ _080A6326: bl sub_080A4E84 b _080A635A .align 2, 0 -_080A6340: .4byte gUnk_02002A40 +_080A6340: .4byte gSave _080A6344: ldrb r0, [r1] lsls r0, r0, #0x1b @@ -1889,7 +1889,7 @@ sub_080A6438: @ 0x080A6438 strh r0, [r2, #4] strh r1, [r2, #6] strh r1, [r2, #8] - ldr r0, _080A6488 @ =gUnk_02002A40 + ldr r0, _080A6488 @ =gSave ldr r1, _080A648C @ =gMenu ldrh r0, [r0, #0x20] ldrh r5, [r1, #0x10] @@ -1923,7 +1923,7 @@ _080A6482: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A6484: .4byte gUnk_03001010 -_080A6488: .4byte gUnk_02002A40 +_080A6488: .4byte gSave _080A648C: .4byte gMenu _080A6490: .4byte gUnk_08128F58 _080A6494: .4byte 0x000001FB @@ -1939,7 +1939,7 @@ sub_080A6498: @ 0x080A6498 strh r2, [r0, #6] strh r2, [r0, #8] movs r4, #0 - ldr r7, _080A64E8 @ =gUnk_02002A40 + ldr r7, _080A64E8 @ =gSave adds r6, r0, #0 movs r5, #0x28 _080A64B0: @@ -1971,7 +1971,7 @@ _080A64D2: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A64E4: .4byte gUnk_03001010 -_080A64E8: .4byte gUnk_02002A40 +_080A64E8: .4byte gSave _080A64EC: .4byte gUnk_08128DE8 _080A64F0: .4byte 0x000001FB _080A64F4: .4byte gScreen @@ -2027,7 +2027,7 @@ sub_080A6534: @ 0x080A6534 lsls r0, r0, #1 adds r0, r0, r1 ldrh r2, [r0] - ldr r3, _080A65A4 @ =gUnk_02002A40 + ldr r3, _080A65A4 @ =gSave ldrh r1, [r3, #0x20] adds r0, r2, #0 orrs r0, r1 @@ -2051,7 +2051,7 @@ _080A6594: .4byte 0x0000F7FF _080A6598: .4byte gPaletteBuffer _080A659C: .4byte gUnk_08128F4C _080A65A0: .4byte gUnk_02032EC0 -_080A65A4: .4byte gUnk_02002A40 +_080A65A4: .4byte gSave _080A65A8: .4byte gMenu thumb_func_start sub_080A65AC @@ -2087,7 +2087,7 @@ _080A65DA: _080A65E4: .4byte gFadeControl _080A65E8: .4byte gMenu _080A65EC: - ldr r0, _080A6604 @ =gUnk_03000FF0 + ldr r0, _080A6604 @ =gInput ldrh r0, [r0, #2] cmp r0, #1 blt _080A6600 @@ -2100,7 +2100,7 @@ _080A65FC: _080A6600: pop {r4, pc} .align 2, 0 -_080A6604: .4byte gUnk_03000FF0 +_080A6604: .4byte gInput thumb_func_start sub_080A6608 sub_080A6608: @ 0x080A6608 @@ -2165,7 +2165,7 @@ sub_080A667C: @ 0x080A667C ldr r1, _080A66A4 @ =gUnk_08128E94 adds r3, r0, r1 ldrh r1, [r2, #0xa] - ldr r0, _080A66A8 @ =gUnk_03000FF0 + ldr r0, _080A66A8 @ =gInput ldrh r0, [r0] cmp r0, #0x40 beq _080A66AC @@ -2176,7 +2176,7 @@ sub_080A667C: @ 0x080A667C _080A669C: .4byte gMenu _080A66A0: .4byte gUnk_08128E80 _080A66A4: .4byte gUnk_08128E94 -_080A66A8: .4byte gUnk_03000FF0 +_080A66A8: .4byte gInput _080A66AC: cmp r1, #0 beq _080A66C2 @@ -2478,7 +2478,7 @@ _080A68E6: bl sub_080A698C bl sub_080A6F40 adds r6, r0, #0 - ldr r0, _080A6918 @ =gUnk_02002A40 + ldr r0, _080A6918 @ =gSave ldrh r0, [r0, #0x20] ands r6, r0 ldr r4, _080A691C @ =gUnk_08128F58 @@ -2488,7 +2488,7 @@ _080A68E6: _080A690C: .4byte gPlayerState _080A6910: .4byte gScreenTransition _080A6914: .4byte 0x000001FB -_080A6918: .4byte gUnk_02002A40 +_080A6918: .4byte gSave _080A691C: .4byte gUnk_08128F58 _080A6920: movs r0, #1 @@ -2882,7 +2882,7 @@ _080A6C34: .4byte gFadeControl _080A6C38: .4byte gMenu _080A6C3C: bl sub_080A66D0 - ldr r0, _080A6C58 @ =gUnk_03000FF0 + ldr r0, _080A6C58 @ =gInput ldrh r0, [r0, #2] cmp r0, #1 blt _080A6C6A @@ -2894,7 +2894,7 @@ _080A6C50: bl sub_080A71DC b _080A6C6A .align 2, 0 -_080A6C58: .4byte gUnk_03000FF0 +_080A6C58: .4byte gInput _080A6C5C: ldr r0, _080A6C6C @ =0x00000103 bl PlaySFX @@ -2963,7 +2963,7 @@ sub_080A6CD8: @ 0x080A6CD8 movs r0, #1 strb r0, [r1] movs r4, #0 - ldr r0, _080A6D10 @ =gUnk_03000FF0 + ldr r0, _080A6D10 @ =gInput ldrh r0, [r0, #2] adds r2, r1, #0 cmp r0, #0x10 @@ -2980,7 +2980,7 @@ sub_080A6CD8: @ 0x080A6CD8 .align 2, 0 _080A6D08: .4byte gFadeControl _080A6D0C: .4byte gMenu -_080A6D10: .4byte gUnk_03000FF0 +_080A6D10: .4byte gInput _080A6D14: cmp r0, #8 beq _080A6D38 @@ -3039,7 +3039,7 @@ _080A6D70: .4byte gMenu sub_080A6D74: @ 0x080A6D74 push {r4, r5, lr} adds r3, r0, #0 - ldr r0, _080A6DA4 @ =gUnk_02002A40 + ldr r0, _080A6DA4 @ =gSave ldr r0, [r0, #0x40] lsrs r2, r0, #0x18 ldr r0, _080A6DA8 @ =gMenu @@ -3063,7 +3063,7 @@ _080A6D92: beq _080A6D92 b _080A6DC6 .align 2, 0 -_080A6DA4: .4byte gUnk_02002A40 +_080A6DA4: .4byte gSave _080A6DA8: .4byte gMenu _080A6DAC: cmp r2, #0 @@ -3197,7 +3197,7 @@ _080A6EA0: ldr r0, _080A6ED8 @ =0x000001FB bl sub_080ADA14 movs r4, #0 - ldr r5, _080A6EDC @ =gUnk_02002A40 + ldr r5, _080A6EDC @ =gSave _080A6EAA: adds r0, r4, #0 adds r0, #0x18 @@ -3221,7 +3221,7 @@ _080A6EC8: _080A6ED0: .4byte gUnk_03001010 _080A6ED4: .4byte gMenu _080A6ED8: .4byte 0x000001FB -_080A6EDC: .4byte gUnk_02002A40 +_080A6EDC: .4byte gSave thumb_func_start sub_080A6EE0 sub_080A6EE0: @ 0x080A6EE0 @@ -3343,7 +3343,7 @@ sub_080A6FB4: @ 0x080A6FB4 beq _080A6FD6 b _080A6FFA _080A6FC8: - ldr r0, _080A6FE4 @ =gUnk_02002A40 + ldr r0, _080A6FE4 @ =gSave movs r1, #1 lsls r1, r2 ldr r0, [r0, #0x40] @@ -3358,7 +3358,7 @@ _080A6FD6: ldr r5, _080A6FEC @ =gUnk_08128FC0 b _080A6FFA .align 2, 0 -_080A6FE4: .4byte gUnk_02002A40 +_080A6FE4: .4byte gSave _080A6FE8: .4byte gUnk_08127F94 _080A6FEC: .4byte gUnk_08128FC0 _080A6FF0: @@ -4910,7 +4910,7 @@ GiveItemWithCutscene: @ 0x080A7C38 adds r7, r2, #0 cmp r5, #0x3f bne _080A7C52 - ldr r0, _080A7C78 @ =gUnk_02002A40 + ldr r0, _080A7C78 @ =gSave adds r0, #0xbb ldrb r0, [r0] cmp r0, #0 @@ -4936,7 +4936,7 @@ _080A7C72: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A7C78: .4byte gUnk_02002A40 +_080A7C78: .4byte gSave thumb_func_start sub_080A7C7C sub_080A7C7C: @ 0x080A7C7C diff --git a/asm/cucco.s b/asm/cucco.s index 2013d64c..2036fc70 100644 --- a/asm/cucco.s +++ b/asm/cucco.s @@ -278,7 +278,7 @@ sub_0806E6A8: @ 0x0806E6A8 adds r4, r0, #0 movs r5, #0 bl sub_08002632 - ldr r1, _0806E6D4 @ =gUnk_02002A40 + ldr r1, _0806E6D4 @ =gSave ldr r2, _0806E6D8 @ =0x000001C1 adds r1, r1, r2 adds r0, r0, r1 @@ -295,7 +295,7 @@ _0806E6C2: bl TextboxNoOverlap pop {r4, r5, pc} .align 2, 0 -_0806E6D4: .4byte gUnk_02002A40 +_0806E6D4: .4byte gSave _0806E6D8: .4byte 0x000001C1 _0806E6DC: .4byte gUnk_081145D0 diff --git a/asm/din.s b/asm/din.s index 14dfe55b..7a2fc2ad 100644 --- a/asm/din.s +++ b/asm/din.s @@ -89,7 +89,7 @@ sub_08064828: @ 0x08064828 adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 - ldr r6, _08064858 @ =gUnk_02002A40 + ldr r6, _08064858 @ =gSave adds r0, r4, #0 bl sub_08002632 ldr r2, _0806485C @ =0x00000141 @@ -108,7 +108,7 @@ _0806484E: bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 -_08064858: .4byte gUnk_02002A40 +_08064858: .4byte gSave _0806485C: .4byte 0x00000141 thumb_func_start Din_Fusion diff --git a/asm/dog.s b/asm/dog.s index d10e5929..1637c489 100644 --- a/asm/dog.s +++ b/asm/dog.s @@ -727,7 +727,7 @@ sub_0806A080: @ 0x0806A080 lsls r1, r2, #2 adds r1, r1, r2 lsls r1, r1, #4 - ldr r2, _0806A09C @ =gUnk_02002A40 + ldr r2, _0806A09C @ =gSave ldrb r2, [r2, #8] lsls r2, r2, #3 ldr r3, _0806A0A0 @ =gUnk_08111E34 @@ -736,7 +736,7 @@ sub_0806A080: @ 0x0806A080 bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806A09C: .4byte gUnk_02002A40 +_0806A09C: .4byte gSave _0806A0A0: .4byte gUnk_08111E34 thumb_func_start sub_0806A0A4 @@ -798,7 +798,7 @@ _0806A100: bl SetLocalFlag _0806A120: ldr r2, _0806A13C @ =gUnk_08111F74 - ldr r0, _0806A140 @ =gUnk_02002A40 + ldr r0, _0806A140 @ =gSave ldrb r1, [r0, #8] lsls r0, r1, #2 adds r0, r0, r1 @@ -811,7 +811,7 @@ _0806A120: pop {r4, r5, r6, pc} .align 2, 0 _0806A13C: .4byte gUnk_08111F74 -_0806A140: .4byte gUnk_02002A40 +_0806A140: .4byte gSave thumb_func_start sub_0806A144 sub_0806A144: @ 0x0806A144 diff --git a/asm/drLeft.s b/asm/drLeft.s index a136f922..6027b73f 100644 --- a/asm/drLeft.s +++ b/asm/drLeft.s @@ -110,7 +110,7 @@ sub_0806C028: @ 0x0806C028 sub_0806C038: @ 0x0806C038 push {r4, r5, lr} adds r5, r0, #0 - ldr r0, _0806C074 @ =gUnk_02002A40 + ldr r0, _0806C074 @ =gSave ldrb r0, [r0, #8] subs r4, r0, #5 cmp r4, #0 @@ -135,7 +135,7 @@ _0806C048: bl SetLocalFlag b _0806C086 .align 2, 0 -_0806C074: .4byte gUnk_02002A40 +_0806C074: .4byte gSave _0806C078: movs r4, #7 movs r0, #0x3a diff --git a/asm/drawHealth.s b/asm/drawHealth.s index a0701d5d..2e830c72 100644 --- a/asm/drawHealth.s +++ b/asm/drawHealth.s @@ -23,7 +23,7 @@ sub_0801C6B0: @ 0x0801C6B0 .align 2, 0 _0801C6CC: .4byte gUnk_0200AF00 _0801C6D0: - ldr r5, _0801C6F8 @ =gUnk_02002A40 + ldr r5, _0801C6F8 @ =gSave adds r0, r5, #0 adds r0, #0xab ldrb r0, [r0] @@ -43,7 +43,7 @@ _0801C6EA: lsrs r1, r0, #1 b _0801C6FE .align 2, 0 -_0801C6F8: .4byte gUnk_02002A40 +_0801C6F8: .4byte gSave _0801C6FC: movs r1, #1 _0801C6FE: diff --git a/asm/drawRupees.s b/asm/drawRupees.s index 619a530a..bd6bf8be 100644 --- a/asm/drawRupees.s +++ b/asm/drawRupees.s @@ -54,7 +54,7 @@ _0801C4FC: adds r4, r3, #0 adds r4, #0x40 ldr r1, _0801C550 @ =gWalletSizes - ldr r2, _0801C554 @ =gUnk_02002A40 + ldr r2, _0801C554 @ =gSave adds r0, r2, #0 adds r0, #0xa8 ldrb r0, [r0] @@ -88,12 +88,12 @@ _0801C4FC: .align 2, 0 _0801C54C: .4byte gUnk_02035160 _0801C550: .4byte gWalletSizes -_0801C554: .4byte gUnk_02002A40 +_0801C554: .4byte gSave _0801C558: .4byte 0x0000F070 _0801C55C: .4byte gScreen _0801C560: movs r4, #0 - ldr r2, _0801C580 @ =gUnk_02002A40 + ldr r2, _0801C580 @ =gSave _0801C564: adds r5, r6, #0 adds r0, r2, #0 @@ -109,7 +109,7 @@ _0801C564: strh r0, [r5, #0xe] b _0801C588 .align 2, 0 -_0801C580: .4byte gUnk_02002A40 +_0801C580: .4byte gSave _0801C584: subs r0, r1, #1 strh r0, [r6, #0xe] @@ -133,7 +133,7 @@ _0801C5A4: ldrh r3, [r4, #0xe] movs r2, #0 ldr r1, _0801C5D8 @ =gWalletSizes - ldr r0, _0801C5DC @ =gUnk_02002A40 + ldr r0, _0801C5DC @ =gSave adds r0, #0xa8 ldrb r0, [r0] lsls r0, r0, #2 @@ -157,4 +157,4 @@ _0801C5D0: .align 2, 0 _0801C5D4: .4byte gUnk_0200AF00 _0801C5D8: .4byte gWalletSizes -_0801C5DC: .4byte gUnk_02002A40 +_0801C5DC: .4byte gSave diff --git a/asm/ezloCap.s b/asm/ezloCap.s index 46510577..0c0c0d46 100644 --- a/asm/ezloCap.s +++ b/asm/ezloCap.s @@ -510,7 +510,7 @@ _0806DC36: thumb_func_start sub_0806DC3C sub_0806DC3C: @ 0x0806DC3C - ldr r2, _0806DC54 @ =gUnk_02002A40 + ldr r2, _0806DC54 @ =gSave adds r1, r2, #0 adds r1, #0xb4 ldrb r3, [r1] @@ -523,7 +523,7 @@ sub_0806DC3C: @ 0x0806DC3C strb r1, [r0] bx lr .align 2, 0 -_0806DC54: .4byte gUnk_02002A40 +_0806DC54: .4byte gSave thumb_func_start sub_0806DC58 sub_0806DC58: @ 0x0806DC58 diff --git a/asm/farore.s b/asm/farore.s index 792a2384..2f0d6d1e 100644 --- a/asm/farore.s +++ b/asm/farore.s @@ -89,7 +89,7 @@ sub_08064A28: @ 0x08064A28 adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 - ldr r6, _08064A58 @ =gUnk_02002A40 + ldr r6, _08064A58 @ =gSave adds r0, r4, #0 bl sub_08002632 ldr r2, _08064A5C @ =0x00000141 @@ -108,7 +108,7 @@ _08064A4E: bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 -_08064A58: .4byte gUnk_02002A40 +_08064A58: .4byte gSave _08064A5C: .4byte 0x00000141 thumb_func_start Farore_Fusion diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 7e099233..a7c5226d 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -398,7 +398,7 @@ _08087EAC: subs r0, #1 strb r0, [r4, #0xe] _08087EB6: - ldr r6, _08087ED4 @ =gUnk_03000FF0 + ldr r6, _08087ED4 @ =gInput ldrh r0, [r6, #2] ands r1, r0 cmp r1, #0 @@ -412,7 +412,7 @@ _08087EB6: bl sub_08050384 b _08087F4E .align 2, 0 -_08087ED4: .4byte gUnk_03000FF0 +_08087ED4: .4byte gInput _08087ED8: adds r2, r4, #0 adds r2, #0x81 @@ -560,7 +560,7 @@ _08087FEA: adds r1, #0x81 ldrb r6, [r1] adds r2, r6, r4 - ldr r0, _0808801C @ =gUnk_02002A40 + ldr r0, _0808801C @ =gSave adds r0, #0xc2 ldrh r0, [r0] cmp r2, r0 @@ -583,7 +583,7 @@ _08088014: bl sub_08088034 b _08088032 .align 2, 0 -_0808801C: .4byte gUnk_02002A40 +_0808801C: .4byte gSave _08088020: movs r3, #0x64 mov r0, ip @@ -617,14 +617,14 @@ sub_0808804C: @ 0x0808804C push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 - ldr r0, _08088060 @ =gUnk_02002A40 + ldr r0, _08088060 @ =gSave ldrb r0, [r0, #6] cmp r0, #0 beq _08088064 movs r4, #9 b _080880D0 .align 2, 0 -_08088060: .4byte gUnk_02002A40 +_08088060: .4byte gSave _08088064: movs r0, #6 bl CheckGlobalFlag @@ -723,7 +723,7 @@ _0808810A: lsrs r0, r0, #0x18 cmp r0, #4 bne _08088156 - ldr r5, _0808815C @ =gUnk_02002A40 + ldr r5, _0808815C @ =gSave adds r0, r7, #0 adds r0, #0x80 ldrb r1, [r5, #9] @@ -743,7 +743,7 @@ _0808813A: bl CheckLocalFlag cmp r0, #0 beq _08088156 - ldr r0, _0808815C @ =gUnk_02002A40 + ldr r0, _0808815C @ =gSave adds r0, #0xb0 ldrb r1, [r4] ldrb r0, [r0] @@ -755,7 +755,7 @@ _08088156: pop {r4, r5, r6, r7, pc} .align 2, 0 _08088158: .4byte gUnk_08120AAC -_0808815C: .4byte gUnk_02002A40 +_0808815C: .4byte gSave thumb_func_start sub_08088160 sub_08088160: @ 0x08088160 @@ -894,7 +894,7 @@ sub_0808826C: @ 0x0808826C movs r4, #0x64 adds r0, #0x80 ldrb r1, [r0] - ldr r0, _080882A4 @ =gUnk_02002A40 + ldr r0, _080882A4 @ =gSave adds r0, #0xb0 ldrb r0, [r0] subs r0, r1, r0 @@ -917,7 +917,7 @@ _08088298: strb r4, [r0] pop {r4, r5, pc} .align 2, 0 -_080882A4: .4byte gUnk_02002A40 +_080882A4: .4byte gSave thumb_func_start sub_080882A8 sub_080882A8: @ 0x080882A8 @@ -1075,7 +1075,7 @@ _080883DE: cmp r5, #0 beq _08088414 _080883E2: - ldr r0, _08088404 @ =gUnk_02002A40 + ldr r0, _08088404 @ =gSave adds r0, #0xb0 ldrb r1, [r0] adds r1, #1 @@ -1091,7 +1091,7 @@ _080883E2: bl SetRoomFlag b _08088414 .align 2, 0 -_08088404: .4byte gUnk_02002A40 +_08088404: .4byte gSave _08088408: movs r0, #0x5f bl SetLocalFlag @@ -1111,7 +1111,7 @@ _08088414: sub_08088424: @ 0x08088424 push {lr} adds r1, r0, #0 - ldr r0, _08088440 @ =gUnk_02002A40 + ldr r0, _08088440 @ =gSave adds r0, #0xb0 ldrb r0, [r0] cmp r0, #0x31 @@ -1124,7 +1124,7 @@ sub_08088424: @ 0x08088424 movs r0, #0xf b _08088474 .align 2, 0 -_08088440: .4byte gUnk_02002A40 +_08088440: .4byte gSave _08088444: cmp r0, #0x4f bhi _08088456 @@ -1180,7 +1180,7 @@ _0808849C: .align 2, 0 _080884A0: .4byte 0x00004325 _080884A4: - ldr r1, _080884C0 @ =gUnk_02002A40 + ldr r1, _080884C0 @ =gSave adds r0, r1, #0 adds r0, #0xb0 ldrb r0, [r0] @@ -1194,7 +1194,7 @@ _080884A4: ldr r1, _080884C4 @ =0x00004329 b _080884D2 .align 2, 0 -_080884C0: .4byte gUnk_02002A40 +_080884C0: .4byte gSave _080884C4: .4byte 0x00004329 _080884C8: ldrb r0, [r1, #6] @@ -1229,7 +1229,7 @@ _08088500: .4byte gPlayerEntity thumb_func_start sub_08088504 sub_08088504: @ 0x08088504 push {lr} - ldr r0, _08088518 @ =gUnk_02002A40 + ldr r0, _08088518 @ =gSave adds r0, #0xb0 ldrb r0, [r0] cmp r0, #0x82 @@ -1239,7 +1239,7 @@ sub_08088504: @ 0x08088504 ldr r0, _0808851C @ =0x0000432F b _0808852A .align 2, 0 -_08088518: .4byte gUnk_02002A40 +_08088518: .4byte gSave _0808851C: .4byte 0x0000432F _08088520: ldr r0, _08088524 @ =0x00004314 @@ -1263,7 +1263,7 @@ _08088540: .4byte gTextBox thumb_func_start sub_08088544 sub_08088544: @ 0x08088544 push {lr} - ldr r0, _08088568 @ =gUnk_02002A40 + ldr r0, _08088568 @ =gSave adds r0, #0xb0 ldrb r0, [r0] ldr r1, _0808856C @ =0x00004315 @@ -1280,7 +1280,7 @@ _08088554: strb r1, [r0, #7] pop {pc} .align 2, 0 -_08088568: .4byte gUnk_02002A40 +_08088568: .4byte gSave _0808856C: .4byte 0x00004315 _08088570: .4byte gTextBox @@ -1340,7 +1340,7 @@ sub_080885B0: @ 0x080885B0 _080885E0: .4byte 0x00004326 _080885E4: .4byte gTextBox _080885E8: - ldr r1, _08088618 @ =gUnk_02002A40 + ldr r1, _08088618 @ =gSave adds r0, r1, #0 adds r0, #0xb1 ldrb r0, [r0] @@ -1362,7 +1362,7 @@ _0808860A: bl ClearRoomFlag pop {pc} .align 2, 0 -_08088618: .4byte gUnk_02002A40 +_08088618: .4byte gSave thumb_func_start sub_0808861C sub_0808861C: @ 0x0808861C diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 0cf9c0a5..e93a9e07 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -5,1432 +5,6 @@ .text - thumb_func_start HandleFileOptions -HandleFileOptions: @ 0x08050E9C - push {lr} - ldr r1, _08050EB0 @ =gUnk_080FC950 - ldr r0, _08050EB4 @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08050EB0: .4byte gUnk_080FC950 -_08050EB4: .4byte gMenu - - thumb_func_start sub_08050EB8 -sub_08050EB8: @ 0x08050EB8 - push {lr} - movs r0, #0xe - bl sub_080503A8 - ldr r2, _08050EE8 @ =gUnk_02019EE0 - ldrb r1, [r2, #6] - ldr r0, _08050EEC @ =0x000004B4 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0xc - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r3, #0 - strb r0, [r2, #4] - ldrb r0, [r1, #3] - strb r0, [r2, #5] - ldr r1, _08050EF0 @ =gMenu - strb r3, [r1, #1] - movs r0, #0xff - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_08050EE8: .4byte gUnk_02019EE0 -_08050EEC: .4byte 0x000004B4 -_08050EF0: .4byte gMenu - - thumb_func_start sub_08050EF4 -sub_08050EF4: @ 0x08050EF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08050F40 @ =gUnk_02019EE0 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - bne _08050FF4 - ldrb r1, [r6, #6] - ldr r0, _08050F44 @ =0x000004B4 - muls r1, r0, r1 - adds r0, r6, #0 - adds r0, #0xc - adds r1, r1, r0 - ldr r0, _08050F48 @ =gMenu - ldrb r3, [r0, #1] - adds r4, r1, #3 - mov ip, r0 - cmp r3, #0 - bne _08050F1E - adds r4, r1, #2 -_08050F1E: - ldrb r2, [r4] - movs r5, #0 - ldr r0, _08050F4C @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - mov r8, r2 - cmp r0, #0x10 - beq _08050F7A - cmp r0, #0x10 - bgt _08050F56 - cmp r0, #2 - beq _08050F8C - cmp r0, #2 - bgt _08050F50 - cmp r0, #1 - beq _08050F82 - b _08050F8E - .align 2, 0 -_08050F40: .4byte gUnk_02019EE0 -_08050F44: .4byte 0x000004B4 -_08050F48: .4byte gMenu -_08050F4C: .4byte gUnk_03000FF0 -_08050F50: - cmp r0, #8 - beq _08050F82 - b _08050F8E -_08050F56: - cmp r0, #0x40 - beq _08050F6A - cmp r0, #0x40 - bgt _08050F64 - cmp r0, #0x20 - beq _08050F72 - b _08050F8E -_08050F64: - cmp r0, #0x80 - beq _08050F6E - b _08050F8E -_08050F6A: - movs r3, #0 - b _08050F8E -_08050F6E: - movs r3, #1 - b _08050F8E -_08050F72: - cmp r2, #0 - beq _08050F8E - subs r2, #1 - b _08050F8E -_08050F7A: - cmp r2, #1 - bhi _08050F8E - adds r2, #1 - b _08050F8E -_08050F82: - ldrh r0, [r6, #4] - movs r5, #2 - ldrh r7, [r1, #2] - cmp r0, r7 - bne _08050F8E -_08050F8C: - movs r5, #3 -_08050F8E: - cmp r5, #0 - beq _08050FD0 - cmp r5, #2 - beq _08050F9C - cmp r5, #3 - beq _08050FAC - b _08050FBA -_08050F9C: - movs r0, #8 - movs r1, #0 - bl sub_08050318 - movs r0, #0x6a - bl PlaySFX - b _08050FBA -_08050FAC: - ldrb r0, [r6, #4] - strb r0, [r1, #2] - ldrb r0, [r6, #5] - strb r0, [r1, #3] - movs r0, #0x6c - bl PlaySFX -_08050FBA: - adds r0, r5, #0 - bl sub_080A7114 - ldr r0, _08050FCC @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl SetActiveSave - b _08050FF4 - .align 2, 0 -_08050FCC: .4byte gUnk_02019EE0 -_08050FD0: - mov r1, ip - ldrb r0, [r1, #1] - cmp r0, r3 - beq _08050FE2 - strb r3, [r1, #1] - movs r0, #0x69 - bl PlaySFX - b _08050FF4 -_08050FE2: - cmp r2, r8 - beq _08050FF4 - strb r2, [r4] - ldrb r0, [r6, #6] - bl LoadOptionsFromSave - movs r0, #0x69 - bl PlaySFX -_08050FF4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08050FFC -sub_08050FFC: @ 0x08050FFC - push {lr} - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08051014 - cmp r1, #1 - beq _0805102A - b _08051030 -_08051014: - ldr r1, _08051034 @ =gMenu - movs r0, #0x1e - strh r0, [r1, #8] - ldr r0, _08051038 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0805194C - movs r0, #9 - movs r1, #0 - bl sub_08050318 -_0805102A: - movs r0, #3 - bl sub_080A7114 -_08051030: - pop {pc} - .align 2, 0 -_08051034: .4byte gMenu -_08051038: .4byte gUnk_02019EE0 - - thumb_func_start sub_0805103C -sub_0805103C: @ 0x0805103C - push {lr} - ldr r0, _08051050 @ =gMenu - ldrb r1, [r0, #8] - adds r2, r0, #0 - cmp r1, #0 - beq _08051054 - cmp r1, #0xff - beq _0805106C - b _08051060 - .align 2, 0 -_08051050: .4byte gMenu -_08051054: - ldr r0, _08051068 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051072 -_08051060: - ldrh r0, [r2, #8] - subs r0, #1 - strh r0, [r2, #8] - b _08051072 - .align 2, 0 -_08051068: .4byte gUnk_03000FF0 -_0805106C: - movs r0, #0 - bl SetFileSelectState -_08051072: - pop {pc} - - thumb_func_start HandleFileNew -HandleFileNew: @ 0x08051074 - push {lr} - ldr r1, _08051088 @ =gUnk_080FC960 - ldr r0, _0805108C @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08051088: .4byte gUnk_080FC960 -_0805108C: .4byte gMenu - - thumb_func_start sub_08051090 -sub_08051090: @ 0x08051090 - push {lr} - movs r0, #8 - bl sub_080503A8 - bl sub_08050790 - bl sub_0805070C - bl sub_08051458 - ldr r1, _080510B4 @ =gScreen - movs r0, #0xff - strh r0, [r1, #0x18] - strh r0, [r1, #0x24] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080510B4: .4byte gScreen - - thumb_func_start sub_080510B8 -sub_080510B8: @ 0x080510B8 - push {r4, r5, r6, r7, lr} - ldr r0, _080510E4 @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _080510C4 - b _0805134C -_080510C4: - movs r7, #0 - ldr r0, _080510E8 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #8 - bne _080510D2 - b _080511C8 -_080510D2: - cmp r1, #8 - bgt _080510EC - cmp r1, #1 - bne _080510DC - b _080511F2 -_080510DC: - cmp r1, #2 - beq _080511B8 - b _08051100 - .align 2, 0 -_080510E4: .4byte gUnk_02019EE0 -_080510E8: .4byte gUnk_03000FF0 -_080510EC: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080510F6 - b _0805122C -_080510F6: - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - bne _08051100 - b _0805121C -_08051100: - movs r6, #0 - movs r5, #0 - ldrh r0, [r2, #4] - cmp r0, #0x20 - beq _08051128 - cmp r0, #0x20 - bgt _08051114 - cmp r0, #0x10 - beq _0805112E - b _08051130 -_08051114: - cmp r0, #0x40 - beq _0805111E - cmp r0, #0x80 - beq _08051124 - b _08051130 -_0805111E: - movs r5, #1 - rsbs r5, r5, #0 - b _08051130 -_08051124: - movs r5, #1 - b _08051130 -_08051128: - movs r6, #1 - rsbs r6, r6, #0 - b _08051130 -_0805112E: - movs r6, #1 -_08051130: - ldr r4, _0805117C @ =gMenu - ldrb r0, [r4, #0x11] - adds r0, r0, r5 - adds r0, #6 - movs r1, #6 - bl __modsi3 - strb r0, [r4, #0x11] - orrs r5, r6 - cmp r5, #0 - beq _0805114C - movs r0, #0x67 - bl PlaySFX -_0805114C: - cmp r6, #0 - beq _0805123A - ldrb r0, [r4, #0x11] - cmp r0, #5 - beq _08051184 - ldrb r0, [r4, #0x10] - adds r0, r0, r6 - adds r0, #0xd - movs r1, #0xd - bl __modsi3 - strb r0, [r4, #0x10] - ldr r1, _08051180 @ =gUnk_080FC980 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _08051172 - adds r1, #0x10 -_08051172: - ldrb r0, [r4, #0x10] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, #0x12] - b _0805123A - .align 2, 0 -_0805117C: .4byte gMenu -_08051180: .4byte gUnk_080FC980 -_08051184: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - adds r5, r0, #0 - movs r1, #4 - cmp r5, #0 - bne _08051194 - movs r1, #5 -_08051194: - ldrb r0, [r4, #0x12] - adds r0, r0, r6 - adds r0, r0, r1 - bl __modsi3 - strb r0, [r4, #0x12] - ldr r1, _080511B4 @ =gUnk_080FC9A0 - cmp r5, #0 - beq _080511A8 - adds r1, #8 -_080511A8: - ldrb r0, [r4, #0x12] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, #0x10] - b _0805123A - .align 2, 0 -_080511B4: .4byte gUnk_080FC9A0 -_080511B8: - ldr r0, _080511C4 @ =gMenu - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _080511EC - movs r7, #5 - b _0805123A - .align 2, 0 -_080511C4: .4byte gMenu -_080511C8: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #0 - bne _080511D6 - movs r1, #4 -_080511D6: - ldr r2, _080511E8 @ =gMenu - ldrb r0, [r2, #0x11] - cmp r0, #5 - bne _080511EC - ldrb r2, [r2, #0x12] - cmp r1, r2 - bne _080511EC - movs r7, #8 - b _0805123A - .align 2, 0 -_080511E8: .4byte gMenu -_080511EC: - bl sub_08051358 - b _0805123A -_080511F2: - ldr r1, _08051210 @ =gMenu - ldrb r0, [r1, #0x11] - cmp r0, #5 - bne _08051218 - ldr r2, _08051214 @ =gUnk_080FC970 - ldrb r1, [r1, #0x12] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0805120A - adds r1, #8 -_0805120A: - adds r0, r1, r2 - ldrb r7, [r0] - b _0805123A - .align 2, 0 -_08051210: .4byte gMenu -_08051214: .4byte gUnk_080FC970 -_08051218: - movs r7, #6 - b _0805123A -_0805121C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r7, #1 - cmp r0, #0 - bne _0805123A - movs r7, #4 - b _0805123A -_0805122C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r7, #2 - cmp r0, #0 - bne _0805123A - movs r7, #7 -_0805123A: - ldr r0, _08051250 @ =gMenu - ldrb r4, [r0, #1] - subs r0, r7, #1 - cmp r0, #7 - bhi _08051322 - lsls r0, r0, #2 - ldr r1, _08051254 @ =_08051258 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051250: .4byte gMenu -_08051254: .4byte _08051258 -_08051258: @ jump table - .4byte _08051278 @ case 0 - .4byte _0805127C @ case 1 - .4byte _08051280 @ case 2 - .4byte _08051284 @ case 3 - .4byte _08051288 @ case 4 - .4byte _080512C0 @ case 5 - .4byte _080512B8 @ case 6 - .4byte _080512EC @ case 7 -_08051278: - movs r4, #0 - b _08051322 -_0805127C: - movs r4, #1 - b _08051322 -_08051280: - movs r4, #2 - b _08051322 -_08051284: - adds r4, #1 - b _08051322 -_08051288: - ldr r3, _080512B0 @ =gMenu - ldrb r0, [r3, #0x13] - cmp r0, #0 - beq _08051322 - subs r0, #1 - movs r2, #0 - strb r0, [r3, #0x13] - ldr r1, _080512B4 @ =gUnk_02002A40 - ldrb r0, [r3, #0x13] - adds r1, #0x80 - adds r0, r0, r1 - strb r2, [r0] - ldrb r0, [r3, #0x13] - adds r0, #1 - adds r0, r0, r1 - strb r2, [r0] - movs r0, #0x6c - bl sub_08051574 - b _08051322 - .align 2, 0 -_080512B0: .4byte gMenu -_080512B4: .4byte gUnk_02002A40 -_080512B8: - movs r0, #0 - bl sub_08051480 - b _08051322 -_080512C0: - ldr r2, _080512E4 @ =gBG3Buffer - ldr r0, _080512E8 @ =gMenu - ldrb r1, [r0, #0x10] - lsls r1, r1, #1 - ldrb r0, [r0, #0x11] - lsls r0, r0, #6 - adds r0, #0xc3 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - lsrs r0, r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08051480 - b _08051322 - .align 2, 0 -_080512E4: .4byte gBG3Buffer -_080512E8: .4byte gMenu -_080512EC: - movs r3, #5 - ldr r0, _08051350 @ =gUnk_02002A40 - adds r6, r0, #0 - adds r6, #0x80 - movs r5, #0 -_080512F6: - adds r2, r3, r6 - ldrb r1, [r2] - cmp r1, #0 - beq _08051302 - cmp r1, #0x20 - bne _0805130A -_08051302: - strb r5, [r2] - subs r3, #1 - cmp r3, #0 - bge _080512F6 -_0805130A: - adds r0, #0x80 - ldrb r0, [r0] - movs r7, #3 - cmp r0, #0 - beq _08051316 - movs r7, #2 -_08051316: - movs r0, #0x6a - bl sub_08051574 - adds r0, r7, #0 - bl sub_080A7114 -_08051322: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #2 - cmp r0, #0 - bne _08051330 - movs r1, #3 -_08051330: - adds r0, r4, r1 - bl __modsi3 - adds r4, r0, #0 - ldr r1, _08051354 @ =gMenu - ldrb r0, [r1, #1] - cmp r0, r4 - beq _0805134C - strb r4, [r1, #1] - bl sub_08051458 - movs r0, #0x68 - bl PlaySFX -_0805134C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08051350: .4byte gUnk_02002A40 -_08051354: .4byte gMenu - - thumb_func_start sub_08051358 -sub_08051358: @ 0x08051358 - push {lr} - ldr r2, _08051384 @ =gMenu - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #0 - bne _0805136A - movs r1, #4 -_0805136A: - strb r1, [r2, #0x12] - ldrh r1, [r2, #0x10] - ldr r0, _08051388 @ =0x0000050B - cmp r1, r0 - beq _08051382 - movs r0, #5 - strb r0, [r2, #0x11] - movs r0, #0xb - strb r0, [r2, #0x10] - movs r0, #0x67 - bl PlaySFX -_08051382: - pop {pc} - .align 2, 0 -_08051384: .4byte gMenu -_08051388: .4byte 0x0000050B - - thumb_func_start sub_0805138C -sub_0805138C: @ 0x0805138C - push {lr} - ldr r1, _080513A0 @ =gUnk_080FC9B0 - ldr r0, _080513A4 @ =gMenu - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080513A0: .4byte gUnk_080FC9B0 -_080513A4: .4byte gMenu - - thumb_func_start sub_080513A8 -sub_080513A8: @ 0x080513A8 - push {lr} - movs r0, #5 - movs r1, #0 - bl sub_08050318 - ldr r1, _080513BC @ =gMenu - movs r0, #1 - strb r0, [r1, #6] - pop {pc} - .align 2, 0 -_080513BC: .4byte gMenu - - thumb_func_start sub_080513C0 -sub_080513C0: @ 0x080513C0 - push {lr} - movs r0, #0 - bl sub_0807CDA4 - adds r2, r0, #0 - cmp r2, #0 - beq _08051412 - cmp r2, #0 - bgt _080513DC - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _080513F8 - b _08051412 -_080513DC: - cmp r2, #1 - bne _08051412 - ldr r1, _080513F4 @ =gUnk_02019EE0 - adds r0, r1, #0 - adds r0, #8 - ldrb r1, [r1, #6] - adds r0, r0, r1 - strb r2, [r0] - movs r0, #3 - bl sub_080A7114 - b _08051412 - .align 2, 0 -_080513F4: .4byte gUnk_02019EE0 -_080513F8: - ldr r0, _08051414 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0805194C - movs r0, #6 - movs r1, #0 - bl sub_08050318 - ldr r1, _08051418 @ =gMenu - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #2 - strb r0, [r1, #6] -_08051412: - pop {pc} - .align 2, 0 -_08051414: .4byte gUnk_02019EE0 -_08051418: .4byte gMenu - - thumb_func_start sub_0805141C -sub_0805141C: @ 0x0805141C - push {lr} - ldr r1, _0805143C @ =gMenu - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08051444 - ldr r0, _08051440 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051448 - movs r0, #3 - bl sub_080A7114 - b _08051448 - .align 2, 0 -_0805143C: .4byte gMenu -_08051440: .4byte gUnk_03000FF0 -_08051444: - subs r0, #1 - strh r0, [r1, #8] -_08051448: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805144C -sub_0805144C: @ 0x0805144C - push {lr} - movs r0, #0 - bl SetFileSelectState - pop {pc} - .align 2, 0 - - thumb_func_start sub_08051458 -sub_08051458: @ 0x08051458 - push {lr} - ldr r0, _08051474 @ =gMenu - ldrb r0, [r0, #1] - adds r0, #9 - bl sub_080503A8 - ldr r0, _08051478 @ =gUnk_02001B40 - ldr r1, _0805147C @ =gUnk_02022030 - movs r2, #0x80 - lsls r2, r2, #3 - bl _DmaCopy - pop {pc} - .align 2, 0 -_08051474: .4byte gMenu -_08051478: .4byte gUnk_02001B40 -_0805147C: .4byte gUnk_02022030 - - thumb_func_start sub_08051480 -sub_08051480: @ 0x08051480 - push {r4, lr} - adds r4, r0, #0 - bl sub_080514BC - ldr r2, _080514B4 @ =gMenu - ldrb r1, [r2, #0x13] - cmp r0, #0 - beq _080514B0 - cmp r0, #1 - beq _08051498 - adds r4, r0, #0 - subs r1, #1 -_08051498: - cmp r1, #5 - bls _0805149E - movs r1, #5 -_0805149E: - adds r0, r1, #1 - strb r0, [r2, #0x13] - ldr r0, _080514B8 @ =gUnk_02002A40 - adds r0, #0x80 - adds r0, r1, r0 - strb r4, [r0] - movs r0, #0x6b - bl sub_08051574 -_080514B0: - pop {r4, pc} - .align 2, 0 -_080514B4: .4byte gMenu -_080514B8: .4byte gUnk_02002A40 - - thumb_func_start sub_080514BC -sub_080514BC: @ 0x080514BC - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080514D6 - cmp r2, #0 - beq _080514DA - cmp r2, #0xf - bhi _080514D6 - cmp r2, #0xe - bhs _080514DA -_080514D6: - movs r0, #1 - b _08051572 -_080514DA: - ldr r0, _08051500 @ =gMenu - ldrb r1, [r0, #0x13] - cmp r1, #0 - beq _08051570 - ldr r0, _08051504 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x7f - ldrb r1, [r0] - adds r0, r1, #0 - subs r0, #0xa4 - cmp r0, #0x28 - bhi _08051522 - cmp r2, #0xe - beq _0805153C - cmp r2, #0xe - bhi _08051508 - cmp r2, #0 - beq _0805150E - b _0805153C - .align 2, 0 -_08051500: .4byte gMenu -_08051504: .4byte gUnk_02002A40 -_08051508: - cmp r2, #0xf - beq _08051518 - b _0805153C -_0805150E: - cmp r1, #0xc2 - bhi _0805151C - adds r0, r1, #0 - adds r0, #0x33 - b _08051572 -_08051518: - cmp r1, #0xc2 - bls _08051570 -_0805151C: - adds r0, r1, #0 - adds r0, #0xa - b _08051572 -_08051522: - adds r0, r1, #0 - subs r0, #0xcd - cmp r0, #9 - bhi _0805154C - cmp r2, #0xe - beq _08051546 - cmp r2, #0xe - bhi _08051538 - cmp r2, #0 - beq _08051540 - b _0805154C -_08051538: - cmp r2, #0xf - bne _0805154C -_0805153C: - adds r0, r1, #0 - b _08051572 -_08051540: - adds r0, r1, #0 - adds r0, #0x29 - b _08051572 -_08051546: - adds r0, r1, #0 - subs r0, #0xa - b _08051572 -_0805154C: - adds r0, r1, #0 - subs r0, #0xd7 - cmp r0, #0x28 - bhi _08051570 - cmp r2, #0xe - beq _08051560 - cmp r2, #0xe - bls _08051560 - cmp r2, #0xf - beq _08051566 -_08051560: - adds r0, r1, #0 - subs r0, #0x33 - b _08051572 -_08051566: - cmp r1, #0xf5 - bls _08051570 - adds r0, r1, #0 - subs r0, #0x29 - b _08051572 -_08051570: - movs r0, #0 -_08051572: - pop {pc} - - thumb_func_start sub_08051574 -sub_08051574: @ 0x08051574 - push {lr} - bl PlaySFX - ldr r0, _08051594 @ =gUnk_02002A40 - ldr r3, _08051598 @ =gUnk_02019EE0 - ldrb r1, [r3, #6] - ldr r2, _0805159C @ =0x000004B4 - muls r1, r2, r1 - adds r3, #0xc - adds r1, r1, r3 - bl _DmaCopy - bl sub_0805070C - pop {pc} - .align 2, 0 -_08051594: .4byte gUnk_02002A40 -_08051598: .4byte gUnk_02019EE0 -_0805159C: .4byte 0x000004B4 - - thumb_func_start HandleFileDelete -HandleFileDelete: @ 0x080515A0 - push {lr} - ldr r1, _080515BC @ =gUnk_080FC9BC - ldr r0, _080515C0 @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080515C4 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_080515BC: .4byte gUnk_080FC9BC -_080515C0: .4byte gMenu -_080515C4: .4byte gUnk_02019EE0 - - thumb_func_start sub_080515C8 -sub_080515C8: @ 0x080515C8 - push {lr} - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080515D4 -sub_080515D4: @ 0x080515D4 - push {r4, lr} - ldr r0, _080515FC @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _080515E0 - b _080516D8 -_080515E0: - ldr r1, _08051600 @ =gMenu - movs r0, #4 - strh r0, [r1, #8] - ldrb r4, [r1, #1] - ldr r0, _08051604 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - subs r0, #1 - cmp r0, #0x1f - bhi _080516C8 - lsls r0, r0, #2 - ldr r1, _08051608 @ =_0805160C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080515FC: .4byte gUnk_02019EE0 -_08051600: .4byte gMenu -_08051604: .4byte gUnk_03000FF0 -_08051608: .4byte _0805160C -_0805160C: @ jump table - .4byte _08051694 @ case 0 - .4byte _0805168C @ case 1 - .4byte _080516C8 @ case 2 - .4byte _080516C8 @ case 3 - .4byte _080516C8 @ case 4 - .4byte _080516C8 @ case 5 - .4byte _080516C8 @ case 6 - .4byte _08051694 @ case 7 - .4byte _080516C8 @ case 8 - .4byte _080516C8 @ case 9 - .4byte _080516C8 @ case 10 - .4byte _080516C8 @ case 11 - .4byte _080516C8 @ case 12 - .4byte _080516C8 @ case 13 - .4byte _080516C8 @ case 14 - .4byte _080516C6 @ case 15 - .4byte _080516C8 @ case 16 - .4byte _080516C8 @ case 17 - .4byte _080516C8 @ case 18 - .4byte _080516C8 @ case 19 - .4byte _080516C8 @ case 20 - .4byte _080516C8 @ case 21 - .4byte _080516C8 @ case 22 - .4byte _080516C8 @ case 23 - .4byte _080516C8 @ case 24 - .4byte _080516C8 @ case 25 - .4byte _080516C8 @ case 26 - .4byte _080516C8 @ case 27 - .4byte _080516C8 @ case 28 - .4byte _080516C8 @ case 29 - .4byte _080516C8 @ case 30 - .4byte _080516C2 @ case 31 -_0805168C: - ldr r1, _080516B0 @ =gMenu - movs r0, #0 - strb r0, [r1, #1] - movs r4, #0 -_08051694: - cmp r4, #1 - bne _080516B4 - movs r0, #4 - movs r1, #0 - bl sub_08050318 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl PlaySFX - b _080516C8 - .align 2, 0 -_080516B0: .4byte gMenu -_080516B4: - movs r0, #0 - bl SetFileSelectState - movs r0, #0x6c - bl PlaySFX - b _080516C8 -_080516C2: - movs r4, #0 - b _080516C8 -_080516C6: - movs r4, #1 -_080516C8: - ldr r1, _080516DC @ =gMenu - ldrb r0, [r1, #1] - cmp r0, r4 - beq _080516D8 - strb r4, [r1, #1] - movs r0, #0x69 - bl PlaySFX -_080516D8: - pop {r4, pc} - .align 2, 0 -_080516DC: .4byte gMenu - - thumb_func_start sub_080516E0 -sub_080516E0: @ 0x080516E0 - push {r4, lr} - movs r0, #1 - bl sub_0807CDA4 - cmp r0, #0 - beq _08051706 - ldr r4, _08051708 @ =gUnk_02019EE0 - ldrb r0, [r4, #6] - bl sub_0805194C - ldrb r0, [r4, #6] - bl sub_08050AFC - ldr r1, _0805170C @ =gMenu - movs r0, #2 - strh r0, [r1, #8] - movs r0, #0 - bl SetFileSelectState -_08051706: - pop {r4, pc} - .align 2, 0 -_08051708: .4byte gUnk_02019EE0 -_0805170C: .4byte gMenu - - thumb_func_start HandleFileCopy -HandleFileCopy: @ 0x08051710 - push {lr} - ldr r1, _0805172C @ =gUnk_080FC9C8 - ldr r0, _08051730 @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08051734 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_0805172C: .4byte gUnk_080FC9C8 -_08051730: .4byte gMenu -_08051734: .4byte gUnk_02019EE0 - - thumb_func_start sub_08051738 -sub_08051738: @ 0x08051738 - push {r4, r5, r6, r7, lr} - ldr r1, _08051768 @ =gUnk_02019EE0 - movs r0, #4 - strb r0, [r1, #7] - movs r4, #0 - movs r3, #0 - adds r5, r1, #0 - adds r7, r5, #0 - adds r7, #8 - ldr r6, _0805176C @ =gUnk_02000090 -_0805174C: - adds r0, r3, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08051770 - ldrb r1, [r5, #6] - movs r2, #4 - eors r1, r3 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r0, r0, #0x1f - ands r2, r0 - b _08051774 - .align 2, 0 -_08051768: .4byte gUnk_02019EE0 -_0805176C: .4byte gUnk_02000090 -_08051770: - adds r4, #1 - adds r2, r4, #0 -_08051774: - adds r0, r3, r6 - strb r2, [r0] - adds r3, #1 - cmp r3, #2 - bls _0805174C - cmp r4, #0 - bne _0805179C - ldr r1, _08051798 @ =gMenu - movs r0, #0x3c - strh r0, [r1, #8] - movs r0, #1 - movs r1, #0 - bl sub_08050318 - movs r0, #3 - bl sub_080A7114 - b _080517A2 - .align 2, 0 -_08051798: .4byte gMenu -_0805179C: - movs r0, #1 - bl sub_080A7114 -_080517A2: - adds r4, #1 - ldr r0, _080517B0 @ =gMenu - strb r4, [r0, #0x16] - movs r1, #4 - strb r1, [r0, #0x13] - strb r4, [r0, #0x14] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080517B0: .4byte gMenu - - thumb_func_start sub_080517B4 -sub_080517B4: @ 0x080517B4 - push {r4, lr} - adds r2, r0, #0 - ldr r0, _080517E4 @ =gUnk_02019EE0 - ldrb r1, [r0, #7] - adds r4, r0, #0 - cmp r2, #0 - beq _080517DE - adds r1, r1, r2 - cmp r1, #4 - bhi _080517DC - ldr r3, _080517E8 @ =gUnk_02000090 -_080517CA: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _080517D6 - cmp r0, #4 - bne _080517DE -_080517D6: - adds r1, r1, r2 - cmp r1, #4 - bls _080517CA -_080517DC: - ldrb r1, [r4, #7] -_080517DE: - adds r0, r1, #0 - pop {r4, pc} - .align 2, 0 -_080517E4: .4byte gUnk_02019EE0 -_080517E8: .4byte gUnk_02000090 - - thumb_func_start sub_080517EC -sub_080517EC: @ 0x080517EC - push {r4, lr} - ldr r0, _08051810 @ =gUnk_02019EE0 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _0805186E - movs r4, #0 - ldr r0, _08051814 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #8 - beq _0805182C - cmp r0, #8 - bgt _08051818 - cmp r0, #1 - beq _0805182C - cmp r0, #2 - beq _08051848 - b _08051858 - .align 2, 0 -_08051810: .4byte gUnk_02019EE0 -_08051814: .4byte gUnk_03000FF0 -_08051818: - cmp r0, #0x40 - beq _08051822 - cmp r0, #0x80 - beq _08051828 - b _08051858 -_08051822: - movs r4, #1 - rsbs r4, r4, #0 - b _08051858 -_08051828: - movs r4, #1 - b _08051858 -_0805182C: - ldrb r0, [r2, #7] - cmp r0, #2 - bhi _08051848 - movs r0, #2 - movs r1, #0 - bl sub_08050318 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl PlaySFX - b _08051858 -_08051848: - movs r0, #4 - strb r0, [r2, #7] - movs r0, #0x6c - bl PlaySFX - movs r0, #0 - bl SetFileSelectState -_08051858: - adds r0, r4, #0 - bl sub_080517B4 - ldr r1, _08051870 @ =gUnk_02019EE0 - ldrb r2, [r1, #7] - cmp r0, r2 - beq _0805186E - strb r0, [r1, #7] - movs r0, #0x69 - bl PlaySFX -_0805186E: - pop {r4, pc} - .align 2, 0 -_08051870: .4byte gUnk_02019EE0 - - thumb_func_start sub_08051874 -sub_08051874: @ 0x08051874 - push {r4, lr} - movs r1, #0x80 - lsls r1, r1, #0x12 - ldr r4, _080518B8 @ =gUnk_02019EE0 - ldrb r0, [r4, #7] - strb r0, [r1, #4] - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #8 - ldrb r2, [r4, #7] - adds r0, r0, r2 - strb r1, [r0] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080518C4 - cmp r1, #1 - bne _080518DE - ldr r0, _080518BC @ =gUnk_02002A40 - ldrb r1, [r4, #7] - ldr r2, _080518C0 @ =0x000004B4 - muls r1, r2, r1 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r1, r3 - bl _DmaCopy - movs r0, #0 - bl SetFileSelectState - b _080518DE - .align 2, 0 -_080518B8: .4byte gUnk_02019EE0 -_080518BC: .4byte gUnk_02002A40 -_080518C0: .4byte 0x000004B4 -_080518C4: - ldrb r0, [r4, #7] - bl sub_0805194C - movs r0, #3 - movs r1, #0 - bl sub_08050318 - ldr r1, _080518E0 @ =gMenu - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #3 - bl sub_080A7114 -_080518DE: - pop {r4, pc} - .align 2, 0 -_080518E0: .4byte gMenu - - thumb_func_start sub_080518E4 -sub_080518E4: @ 0x080518E4 - push {lr} - ldr r1, _08051904 @ =gMenu - ldrh r0, [r1, #8] - cmp r0, #0 - bne _0805190C - ldr r0, _08051908 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051910 - movs r0, #0 - bl SetFileSelectState - b _08051910 - .align 2, 0 -_08051904: .4byte gMenu -_08051908: .4byte gUnk_03000FF0 -_0805190C: - subs r0, #1 - strh r0, [r1, #8] -_08051910: - pop {pc} - .align 2, 0 - - thumb_func_start HandleFileStart -HandleFileStart: @ 0x08051914 - push {lr} - ldr r1, _08051940 @ =gMenu - ldrb r0, [r1, #5] - cmp r0, #0 - bne _0805193E - movs r0, #1 - strb r0, [r1, #5] - movs r2, #0x80 - lsls r2, r2, #0x12 - ldr r1, _08051944 @ =gUnk_02002A40 - ldrb r0, [r1, #2] - strb r0, [r2, #5] - ldrb r0, [r1, #3] - strb r0, [r2, #6] - ldr r1, _08051948 @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #3] - movs r0, #5 - movs r1, #8 - bl DoFade -_0805193E: - pop {pc} - .align 2, 0 -_08051940: .4byte gMenu -_08051944: .4byte gUnk_02002A40 -_08051948: .4byte gUnk_03001000 - - thumb_func_start sub_0805194C -sub_0805194C: @ 0x0805194C - push {r4, lr} - ldr r3, _08051980 @ =gUnk_02019EE0 - adds r1, r3, #0 - adds r1, #8 - adds r1, r0, r1 - movs r2, #0 - strb r2, [r1] - ldr r1, _08051984 @ =0x000004B4 - adds r4, r0, #0 - muls r4, r1, r4 - adds r3, #0xc - adds r4, r4, r3 - adds r0, r4, #0 - bl _DmaZero - movs r0, #1 - strb r0, [r4, #2] - strb r0, [r4, #3] - adds r1, r4, #0 - adds r1, #0xaa - movs r0, #0x18 - strb r0, [r1] - adds r4, #0xab - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08051980: .4byte gUnk_02019EE0 -_08051984: .4byte 0x000004B4 - thumb_func_start HandleGameplayScreen HandleGameplayScreen: @ 0x08051988 push {lr} @@ -1935,7 +509,7 @@ _08051E36: ldrb r0, [r3, #3] cmp r0, r1 blo _08051E34 - ldr r2, _08051E64 @ =gUnk_02002A40 + ldr r2, _08051E64 @ =gSave movs r1, #1 ldrb r3, [r3, #4] lsls r1, r3 @@ -1945,7 +519,7 @@ _08051E36: _08051E60: pop {pc} .align 2, 0 -_08051E64: .4byte gUnk_02002A40 +_08051E64: .4byte gSave thumb_func_start sub_08051E68 sub_08051E68: @ 0x08051E68 @@ -2249,7 +823,7 @@ sub_080520D8: @ 0x080520D8 movs r2, #0x3c movs r0, #0x3c strh r0, [r1, #8] - ldr r0, _08052120 @ =gUnk_02002A40 + ldr r0, _08052120 @ =gSave adds r0, #0xaa movs r1, #0x18 strb r1, [r0] @@ -2268,7 +842,7 @@ _08052114: .align 2, 0 _08052118: .4byte gFadeControl _0805211C: .4byte gMenu -_08052120: .4byte gUnk_02002A40 +_08052120: .4byte gSave _08052124: .4byte gUnk_03001000 _08052128: .4byte 0xFFFF0001 @@ -2382,7 +956,7 @@ _08052208: cmp r0, #0 bne _080522B6 ldrb r4, [r2, #3] - ldr r0, _08052224 @ =gUnk_03000FF0 + ldr r0, _08052224 @ =gInput ldrh r0, [r0, #2] cmp r0, #0x40 beq _0805222E @@ -2392,7 +966,7 @@ _08052208: beq _08052236 b _0805225A .align 2, 0 -_08052224: .4byte gUnk_03000FF0 +_08052224: .4byte gInput _08052228: cmp r0, #0x80 beq _08052232 @@ -2411,7 +985,7 @@ _08052236: _0805223E: movs r0, #8 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox movs r2, #2 _08052248: ldr r1, _08052274 @ =gMenu @@ -2457,7 +1031,7 @@ _0805229C: strh r0, [r2, #8] movs r0, #9 movs r1, #0 - bl sub_08050318 + bl CreateDialogBox movs r0, #3 bl sub_080A7114 b _080522E8 @@ -2470,7 +1044,7 @@ _080522B6: strh r0, [r2, #8] b _080522E8 _080522BC: - ldr r0, _080522D0 @ =gUnk_03000FF0 + ldr r0, _080522D0 @ =gInput ldrh r1, [r0, #2] movs r0, #0xb ands r0, r1 @@ -2480,7 +1054,7 @@ _080522BC: bl sub_080A7114 b _080522E8 .align 2, 0 -_080522D0: .4byte gUnk_03000FF0 +_080522D0: .4byte gInput _080522D4: ldr r2, _080522EC @ =gScreen ldrh r1, [r2] @@ -2538,7 +1112,7 @@ _08052324: _08052340: .4byte gScreen _08052344: ldrb r4, [r3, #3] - ldr r0, _08052358 @ =gUnk_03000FF0 + ldr r0, _08052358 @ =gInput ldrh r0, [r0, #2] cmp r0, #0x40 beq _08052362 @@ -2548,7 +1122,7 @@ _08052344: beq _0805236A b _0805238C .align 2, 0 -_08052358: .4byte gUnk_03000FF0 +_08052358: .4byte gInput _0805235C: cmp r0, #0x80 beq _08052366 diff --git a/asm/ghostBrothers.s b/asm/ghostBrothers.s index a30a4062..d930929d 100644 --- a/asm/ghostBrothers.s +++ b/asm/ghostBrothers.s @@ -505,7 +505,7 @@ _08065F60: .4byte gUnk_0811033C sub_08065F64: @ 0x08065F64 push {lr} adds r3, r0, #0 - ldr r0, _08065F88 @ =gUnk_02002A40 + ldr r0, _08065F88 @ =gSave ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 @@ -522,7 +522,7 @@ _08065F74: bl ShowNPCDialogue pop {pc} .align 2, 0 -_08065F88: .4byte gUnk_02002A40 +_08065F88: .4byte gSave _08065F8C: .4byte gUnk_08110280 thumb_func_start GhostBrothers_Fusion diff --git a/asm/goronMerchant.s b/asm/goronMerchant.s index dcde5693..80e01bd6 100644 --- a/asm/goronMerchant.s +++ b/asm/goronMerchant.s @@ -13,7 +13,7 @@ sub_08069718: @ 0x08069718 adds r7, r1, #0 bl sub_080696BC adds r6, r0, #0 - ldr r0, _08069754 @ =gUnk_02002A40 + ldr r0, _08069754 @ =gSave adds r0, #0xc0 ldrh r0, [r0] cmp r6, r0 @@ -35,7 +35,7 @@ sub_08069718: @ 0x08069718 movs r0, #1 b _0806976E .align 2, 0 -_08069754: .4byte gUnk_02002A40 +_08069754: .4byte gSave _08069758: .4byte gRoomVars _0806975C: ldr r0, _08069760 @ =0x00002C1F diff --git a/asm/guardWithSpear.s b/asm/guardWithSpear.s index 4fda3f06..18957b2c 100644 --- a/asm/guardWithSpear.s +++ b/asm/guardWithSpear.s @@ -496,7 +496,7 @@ _08064424: .4byte gUnk_0810F6D4 sub_08064428: @ 0x08064428 push {lr} adds r3, r0, #0 - ldr r0, _0806444C @ =gUnk_02002A40 + ldr r0, _0806444C @ =gSave ldrb r0, [r0, #8] subs r1, r0, #2 cmp r1, #0 @@ -513,7 +513,7 @@ _08064438: ldr r1, _08064450 @ =gUnk_0810CF4C b _08064460 .align 2, 0 -_0806444C: .4byte gUnk_02002A40 +_0806444C: .4byte gSave _08064450: .4byte gUnk_0810CF4C _08064454: movs r0, #0x7f diff --git a/asm/hurdyGurdyMan.s b/asm/hurdyGurdyMan.s index 5d3cb14f..33d3bf98 100644 --- a/asm/hurdyGurdyMan.s +++ b/asm/hurdyGurdyMan.s @@ -141,7 +141,7 @@ HurdyGurdyMan_Head: @ 0x0806E3E4 sub_0806E418: @ 0x0806E418 push {lr} adds r2, r0, #0 - ldr r0, _0806E438 @ =gUnk_02002A40 + ldr r0, _0806E438 @ =gSave ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 @@ -155,7 +155,7 @@ _0806E428: bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806E438: .4byte gUnk_02002A40 +_0806E438: .4byte gSave _0806E43C: .4byte gUnk_081144FC thumb_func_start sub_0806E440 diff --git a/asm/kid.s b/asm/kid.s index 8d61dd09..9d6a3bef 100644 --- a/asm/kid.s +++ b/asm/kid.s @@ -747,7 +747,7 @@ _08062658: .4byte gUnk_0810BDE8 sub_0806265C: @ 0x0806265C push {lr} adds r2, r0, #0 - ldr r3, _08062674 @ =gUnk_02002A40 + ldr r3, _08062674 @ =gSave ldrb r0, [r3, #8] cmp r0, #0 bne _08062678 @@ -756,7 +756,7 @@ sub_0806265C: @ 0x0806265C bl TextboxNoOverlap b _08062690 .align 2, 0 -_08062674: .4byte gUnk_02002A40 +_08062674: .4byte gSave _08062678: ldrb r0, [r2, #0xa] lsls r1, r0, #3 diff --git a/asm/mama.s b/asm/mama.s index bb42541d..048f5f7e 100644 --- a/asm/mama.s +++ b/asm/mama.s @@ -172,7 +172,7 @@ _0806C4D8: thumb_func_start sub_0806C4DC sub_0806C4DC: @ 0x0806C4DC push {lr} - ldr r1, _0806C4F0 @ =gUnk_02002A40 + ldr r1, _0806C4F0 @ =gSave ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _0806C4F4 @ =gUnk_08113760 @@ -180,7 +180,7 @@ sub_0806C4DC: @ 0x0806C4DC bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806C4F0: .4byte gUnk_02002A40 +_0806C4F0: .4byte gSave _0806C4F4: .4byte gUnk_08113760 thumb_func_start sub_0806C4F8 diff --git a/asm/manager16.s b/asm/manager16.s index 551ddbc1..518f9e4e 100644 --- a/asm/manager16.s +++ b/asm/manager16.s @@ -78,7 +78,7 @@ _0805ABC8: adds r0, r2, r1 lsls r0, r0, #4 adds r4, r0, r4 - ldr r0, _0805ABF8 @ =gUnk_02002A40 + ldr r0, _0805ABF8 @ =gSave movs r5, #1 mov sl, r5 mov r7, sl @@ -94,7 +94,7 @@ _0805ABC8: .align 2, 0 _0805ABF0: .4byte gArea _0805ABF4: .4byte gUnk_02031EC0 -_0805ABF8: .4byte gUnk_02002A40 +_0805ABF8: .4byte gSave _0805ABFC: .4byte gUnk_020342F8 _0805AC00: ldrh r0, [r4, #4] diff --git a/asm/manager32.s b/asm/manager32.s index eb82a823..85883c5a 100644 --- a/asm/manager32.s +++ b/asm/manager32.s @@ -275,7 +275,7 @@ _0805D988: .4byte 0x0000F7FF sub_0805D98C: @ 0x0805D98C push {lr} adds r2, r0, #0 - ldr r3, _0805D9D4 @ =gUnk_03000FF0 + ldr r3, _0805D9D4 @ =gInput ldrh r1, [r3] movs r0, #0x40 ands r0, r1 @@ -313,7 +313,7 @@ _0805D9C2: _0805D9D0: pop {pc} .align 2, 0 -_0805D9D4: .4byte gUnk_03000FF0 +_0805D9D4: .4byte gInput thumb_func_start sub_0805D9D8 sub_0805D9D8: @ 0x0805D9D8 diff --git a/asm/manager37.s b/asm/manager37.s index 7ffdb9c7..d6ed6fee 100644 --- a/asm/manager37.s +++ b/asm/manager37.s @@ -59,7 +59,7 @@ _0805DE7A: strb r1, [r0] adds r0, #1 strb r1, [r0] - ldr r0, _0805DEB0 @ =gUnk_02002A40 + ldr r0, _0805DEB0 @ =gSave movs r1, #0x93 lsls r1, r1, #3 adds r0, r0, r1 @@ -68,7 +68,7 @@ _0805DE7A: pop {r4, pc} .align 2, 0 _0805DEAC: .4byte gScreenTransition -_0805DEB0: .4byte gUnk_02002A40 +_0805DEB0: .4byte gSave _0805DEB4: .4byte 0x00001194 thumb_func_start sub_0805DEB8 diff --git a/asm/managerF.s b/asm/managerF.s index 04cc1c91..742e934b 100644 --- a/asm/managerF.s +++ b/asm/managerF.s @@ -862,7 +862,7 @@ sub_08059548: @ 0x08059548 bne _0805955C bl DeleteThisEntity _0805955C: - ldr r2, _0805956C @ =gUnk_03000FF0 + ldr r2, _0805956C @ =gInput ldrh r1, [r2] movs r0, #4 orrs r0, r1 @@ -870,4 +870,4 @@ _0805955C: pop {pc} .align 2, 0 _08059568: .4byte gPlayerEntity -_0805956C: .4byte gUnk_03000FF0 +_0805956C: .4byte gInput diff --git a/asm/modArrows.s b/asm/modArrows.s index 1d9db6f2..e7f105ed 100644 --- a/asm/modArrows.s +++ b/asm/modArrows.s @@ -10,7 +10,7 @@ ModArrows: @ 0x08054330 push {lr} adds r3, r0, #0 - ldr r1, _08054354 @ =gUnk_02002A40 + ldr r1, _08054354 @ =gSave adds r0, r1, #0 adds r0, #0xad ldrb r0, [r0] @@ -26,7 +26,7 @@ ModArrows: @ 0x08054330 movs r3, #0 b _08054362 .align 2, 0 -_08054354: .4byte gUnk_02002A40 +_08054354: .4byte gSave _08054358: .4byte gQuiverSizes _0805435C: cmp r2, r3 diff --git a/asm/modBombs.s b/asm/modBombs.s index 53d9a615..b432a1f3 100644 --- a/asm/modBombs.s +++ b/asm/modBombs.s @@ -10,7 +10,7 @@ ModBombs: @ 0x080542F4 push {lr} adds r3, r0, #0 - ldr r1, _08054318 @ =gUnk_02002A40 + ldr r1, _08054318 @ =gSave adds r0, r1, #0 adds r0, #0xac ldrb r0, [r0] @@ -26,7 +26,7 @@ ModBombs: @ 0x080542F4 movs r3, #0 b _08054326 .align 2, 0 -_08054318: .4byte gUnk_02002A40 +_08054318: .4byte gSave _0805431C: .4byte gBombBagSizes _08054320: cmp r2, r3 diff --git a/asm/nayru.s b/asm/nayru.s index 0a11072f..004b0834 100644 --- a/asm/nayru.s +++ b/asm/nayru.s @@ -89,7 +89,7 @@ sub_08064928: @ 0x08064928 adds r4, r0, #0 bl sub_0801E99C adds r5, r0, #0 - ldr r6, _08064958 @ =gUnk_02002A40 + ldr r6, _08064958 @ =gSave adds r0, r4, #0 bl sub_08002632 ldr r2, _0806495C @ =0x00000141 @@ -108,7 +108,7 @@ _0806494E: bl sub_08078784 pop {r4, r5, r6, pc} .align 2, 0 -_08064958: .4byte gUnk_02002A40 +_08064958: .4byte gSave _0806495C: .4byte 0x00000141 thumb_func_start Nayru_Fusion diff --git a/asm/non_matching/code_0805457C.inc b/asm/non_matching/code_0805457C.inc index 54dfd569..4684cac8 100644 --- a/asm/non_matching/code_0805457C.inc +++ b/asm/non_matching/code_0805457C.inc @@ -77,7 +77,7 @@ _0805463C: bne _08054642 b _0805474C _08054642: - ldr r0, _08054658 @ =gUnk_02002A40 + ldr r0, _08054658 @ =gSave adds r0, #0xb3 ldrb r1, [r0] cmp r1, #0 @@ -87,7 +87,7 @@ _08054642: .align 2, 0 _08054650: .4byte gUnk_0800161C _08054654: .4byte gUnk_02034398 -_08054658: .4byte gUnk_02002A40 +_08054658: .4byte gSave _0805465C: .4byte gUnk_08001A1C _08054660: lsls r1, r1, #5 @@ -97,7 +97,7 @@ _08054666: mov r0, sp adds r1, r4, #0 bl sub_08000F14 - ldr r4, _08054740 @ =gUnk_02002A40 + ldr r4, _08054740 @ =gSave adds r0, r4, #0 adds r0, #0xaa ldrb r0, [r0] @@ -205,7 +205,7 @@ _08054726: b _0805474E .align 2, 0 _0805473C: .4byte gUnk_0800143C -_08054740: .4byte gUnk_02002A40 +_08054740: .4byte gSave _08054744: .4byte gUnk_08001A1C _08054748: .4byte gUnk_080FE1B4 _0805474C: diff --git a/asm/non_matching/fileScreen/sub_08050EF4.inc b/asm/non_matching/fileScreen/sub_08050EF4.inc new file mode 100644 index 00000000..7d2b850a --- /dev/null +++ b/asm/non_matching/fileScreen/sub_08050EF4.inc @@ -0,0 +1,138 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08050F40 @ =gUnk_02019EE0 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + bne _08050FF4 + ldrb r1, [r6, #6] + ldr r0, _08050F44 @ =0x000004B4 + muls r1, r0, r1 + adds r0, r6, #0 + adds r0, #0xc + adds r1, r1, r0 + ldr r0, _08050F48 @ =gMenu + ldrb r3, [r0, #1] + adds r4, r1, #3 + mov ip, r0 + cmp r3, #0 + bne _08050F1E + adds r4, r1, #2 +_08050F1E: + ldrb r2, [r4] + movs r5, #0 + ldr r0, _08050F4C @ =gInput + ldrh r0, [r0, #2] + mov r8, r2 + cmp r0, #0x10 + beq _08050F7A + cmp r0, #0x10 + bgt _08050F56 + cmp r0, #2 + beq _08050F8C + cmp r0, #2 + bgt _08050F50 + cmp r0, #1 + beq _08050F82 + b _08050F8E + .align 2, 0 +_08050F40: .4byte gUnk_02019EE0 +_08050F44: .4byte 0x000004B4 +_08050F48: .4byte gMenu +_08050F4C: .4byte gInput +_08050F50: + cmp r0, #8 + beq _08050F82 + b _08050F8E +_08050F56: + cmp r0, #0x40 + beq _08050F6A + cmp r0, #0x40 + bgt _08050F64 + cmp r0, #0x20 + beq _08050F72 + b _08050F8E +_08050F64: + cmp r0, #0x80 + beq _08050F6E + b _08050F8E +_08050F6A: + movs r3, #0 + b _08050F8E +_08050F6E: + movs r3, #1 + b _08050F8E +_08050F72: + cmp r2, #0 + beq _08050F8E + subs r2, #1 + b _08050F8E +_08050F7A: + cmp r2, #1 + bhi _08050F8E + adds r2, #1 + b _08050F8E +_08050F82: + ldrh r0, [r6, #4] + movs r5, #2 + ldrh r7, [r1, #2] + cmp r0, r7 + bne _08050F8E +_08050F8C: + movs r5, #3 +_08050F8E: + cmp r5, #0 + beq _08050FD0 + cmp r5, #2 + beq _08050F9C + cmp r5, #3 + beq _08050FAC + b _08050FBA +_08050F9C: + movs r0, #8 + movs r1, #0 + bl CreateDialogBox + movs r0, #0x6a + bl PlaySFX + b _08050FBA +_08050FAC: + ldrb r0, [r6, #4] + strb r0, [r1, #2] + ldrb r0, [r6, #5] + strb r0, [r1, #3] + movs r0, #0x6c + bl PlaySFX +_08050FBA: + adds r0, r5, #0 + bl sub_080A7114 + ldr r0, _08050FCC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl SetActiveSave + b _08050FF4 + .align 2, 0 +_08050FCC: .4byte gUnk_02019EE0 +_08050FD0: + mov r1, ip + ldrb r0, [r1, #1] + cmp r0, r3 + beq _08050FE2 + strb r3, [r1, #1] + movs r0, #0x69 + bl PlaySFX + b _08050FF4 +_08050FE2: + cmp r2, r8 + beq _08050FF4 + strb r2, [r4] + ldrb r0, [r6, #6] + bl LoadOptionsFromSave + movs r0, #0x69 + bl PlaySFX +_08050FF4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/fileScreen/sub_08051738.inc b/asm/non_matching/fileScreen/sub_08051738.inc new file mode 100644 index 00000000..bde5ca42 --- /dev/null +++ b/asm/non_matching/fileScreen/sub_08051738.inc @@ -0,0 +1,65 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + ldr r1, _08051768 @ =gUnk_02019EE0 + movs r0, #4 + strb r0, [r1, #7] + movs r4, #0 + movs r3, #0 + adds r5, r1, #0 + adds r7, r5, #0 + adds r7, #8 + ldr r6, _0805176C @ =gUnk_02000090 +_0805174C: + adds r0, r3, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08051770 + ldrb r1, [r5, #6] + movs r2, #4 + eors r1, r3 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + ands r2, r0 + b _08051774 + .align 2, 0 +_08051768: .4byte gUnk_02019EE0 +_0805176C: .4byte gUnk_02000090 +_08051770: + adds r4, #1 + adds r2, r4, #0 +_08051774: + adds r0, r3, r6 + strb r2, [r0] + adds r3, #1 + cmp r3, #2 + bls _0805174C + cmp r4, #0 + bne _0805179C + ldr r1, _08051798 @ =gMenu + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #1 + movs r1, #0 + bl CreateDialogBox + movs r0, #3 + bl sub_080A7114 + b _080517A2 + .align 2, 0 +_08051798: .4byte gMenu +_0805179C: + movs r0, #1 + bl sub_080A7114 +_080517A2: + adds r4, #1 + ldr r0, _080517B0 @ =gMenu + strb r4, [r0, #0x16] + movs r1, #4 + strb r1, [r0, #0x13] + strb r4, [r0, #0x14] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080517B0: .4byte gMenu + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/fileScreen/sub_080517B4.inc b/asm/non_matching/fileScreen/sub_080517B4.inc new file mode 100644 index 00000000..45bc25e3 --- /dev/null +++ b/asm/non_matching/fileScreen/sub_080517B4.inc @@ -0,0 +1,32 @@ + .syntax unified + push {r4, lr} + adds r2, r0, #0 + ldr r0, _080517E4 @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + adds r4, r0, #0 + cmp r2, #0 + beq _080517DE + adds r1, r1, r2 + cmp r1, #4 + bhi _080517DC + ldr r3, _080517E8 @ =gUnk_02000090 +_080517CA: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _080517D6 + cmp r0, #4 + bne _080517DE +_080517D6: + adds r1, r1, r2 + cmp r1, #4 + bls _080517CA +_080517DC: + ldrb r1, [r4, #7] +_080517DE: + adds r0, r1, #0 + pop {r4, pc} + .align 2, 0 +_080517E4: .4byte gUnk_02019EE0 +_080517E8: .4byte gUnk_02000090 + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/fileScreen/sub_080610B8.inc b/asm/non_matching/fileScreen/sub_080610B8.inc new file mode 100644 index 00000000..450a32ba --- /dev/null +++ b/asm/non_matching/fileScreen/sub_080610B8.inc @@ -0,0 +1,348 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + ldr r0, _080510E4 @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _080510C4 + b _0805134C +_080510C4: + movs r7, #0 + ldr r0, _080510E8 @ =gInput + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #8 + bne _080510D2 + b _080511C8 +_080510D2: + cmp r1, #8 + bgt _080510EC + cmp r1, #1 + bne _080510DC + b _080511F2 +_080510DC: + cmp r1, #2 + beq _080511B8 + b _08051100 + .align 2, 0 +_080510E4: .4byte gUnk_02019EE0 +_080510E8: .4byte gInput +_080510EC: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080510F6 + b _0805122C +_080510F6: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + bne _08051100 + b _0805121C +_08051100: + movs r6, #0 + movs r5, #0 + ldrh r0, [r2, #4] + cmp r0, #0x20 + beq _08051128 + cmp r0, #0x20 + bgt _08051114 + cmp r0, #0x10 + beq _0805112E + b _08051130 +_08051114: + cmp r0, #0x40 + beq _0805111E + cmp r0, #0x80 + beq _08051124 + b _08051130 +_0805111E: + movs r5, #1 + rsbs r5, r5, #0 + b _08051130 +_08051124: + movs r5, #1 + b _08051130 +_08051128: + movs r6, #1 + rsbs r6, r6, #0 + b _08051130 +_0805112E: + movs r6, #1 +_08051130: + ldr r4, _0805117C @ =gMenu + ldrb r0, [r4, #0x11] + adds r0, r0, r5 + adds r0, #6 + movs r1, #6 + bl __modsi3 + strb r0, [r4, #0x11] + orrs r5, r6 + cmp r5, #0 + beq _0805114C + movs r0, #0x67 + bl PlaySFX +_0805114C: + cmp r6, #0 + beq _0805123A + ldrb r0, [r4, #0x11] + cmp r0, #5 + beq _08051184 + ldrb r0, [r4, #0x10] + adds r0, r0, r6 + adds r0, #0xd + movs r1, #0xd + bl __modsi3 + strb r0, [r4, #0x10] + ldr r1, _08051180 @ =gUnk_080FC980 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _08051172 + adds r1, #0x10 +_08051172: + ldrb r0, [r4, #0x10] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x12] + b _0805123A + .align 2, 0 +_0805117C: .4byte gMenu +_08051180: .4byte gUnk_080FC980 +_08051184: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r5, r0, #0 + movs r1, #4 + cmp r5, #0 + bne _08051194 + movs r1, #5 +_08051194: + ldrb r0, [r4, #0x12] + adds r0, r0, r6 + adds r0, r0, r1 + bl __modsi3 + strb r0, [r4, #0x12] + ldr r1, _080511B4 @ =gUnk_080FC9A0 + cmp r5, #0 + beq _080511A8 + adds r1, #8 +_080511A8: + ldrb r0, [r4, #0x12] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x10] + b _0805123A + .align 2, 0 +_080511B4: .4byte gUnk_080FC9A0 +_080511B8: + ldr r0, _080511C4 @ =gMenu + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _080511EC + movs r7, #5 + b _0805123A + .align 2, 0 +_080511C4: .4byte gMenu +_080511C8: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #0 + bne _080511D6 + movs r1, #4 +_080511D6: + ldr r2, _080511E8 @ =gMenu + ldrb r0, [r2, #0x11] + cmp r0, #5 + bne _080511EC + ldrb r2, [r2, #0x12] + cmp r1, r2 + bne _080511EC + movs r7, #8 + b _0805123A + .align 2, 0 +_080511E8: .4byte gMenu +_080511EC: + bl sub_08051358 + b _0805123A +_080511F2: + ldr r1, _08051210 @ =gMenu + ldrb r0, [r1, #0x11] + cmp r0, #5 + bne _08051218 + ldr r2, _08051214 @ =gUnk_080FC970 + ldrb r1, [r1, #0x12] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805120A + adds r1, #8 +_0805120A: + adds r0, r1, r2 + ldrb r7, [r0] + b _0805123A + .align 2, 0 +_08051210: .4byte gMenu +_08051214: .4byte gUnk_080FC970 +_08051218: + movs r7, #6 + b _0805123A +_0805121C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #1 + cmp r0, #0 + bne _0805123A + movs r7, #4 + b _0805123A +_0805122C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #2 + cmp r0, #0 + bne _0805123A + movs r7, #7 +_0805123A: + ldr r0, _08051250 @ =gMenu + ldrb r4, [r0, #1] + subs r0, r7, #1 + cmp r0, #7 + bhi _08051322 + lsls r0, r0, #2 + ldr r1, _08051254 @ =_08051258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051250: .4byte gMenu +_08051254: .4byte _08051258 +_08051258: @ jump table + .4byte _08051278 @ case 0 + .4byte _0805127C @ case 1 + .4byte _08051280 @ case 2 + .4byte _08051284 @ case 3 + .4byte _08051288 @ case 4 + .4byte _080512C0 @ case 5 + .4byte _080512B8 @ case 6 + .4byte _080512EC @ case 7 +_08051278: + movs r4, #0 + b _08051322 +_0805127C: + movs r4, #1 + b _08051322 +_08051280: + movs r4, #2 + b _08051322 +_08051284: + adds r4, #1 + b _08051322 +_08051288: + ldr r3, _080512B0 @ =gMenu + ldrb r0, [r3, #0x13] + cmp r0, #0 + beq _08051322 + subs r0, #1 + movs r2, #0 + strb r0, [r3, #0x13] + ldr r1, _080512B4 @ =gSave + ldrb r0, [r3, #0x13] + adds r1, #0x80 + adds r0, r0, r1 + strb r2, [r0] + ldrb r0, [r3, #0x13] + adds r0, #1 + adds r0, r0, r1 + strb r2, [r0] + movs r0, #0x6c + bl sub_08051574 + b _08051322 + .align 2, 0 +_080512B0: .4byte gMenu +_080512B4: .4byte gSave +_080512B8: + movs r0, #0 + bl sub_08051480 + b _08051322 +_080512C0: + ldr r2, _080512E4 @ =gBG3Buffer + ldr r0, _080512E8 @ =gMenu + ldrb r1, [r0, #0x10] + lsls r1, r1, #1 + ldrb r0, [r0, #0x11] + lsls r0, r0, #6 + adds r0, #0xc3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + lsrs r0, r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08051480 + b _08051322 + .align 2, 0 +_080512E4: .4byte gBG3Buffer +_080512E8: .4byte gMenu +_080512EC: + movs r3, #5 + ldr r0, _08051350 @ =gSave + adds r6, r0, #0 + adds r6, #0x80 + movs r5, #0 +_080512F6: + adds r2, r3, r6 + ldrb r1, [r2] + cmp r1, #0 + beq _08051302 + cmp r1, #0x20 + bne _0805130A +_08051302: + strb r5, [r2] + subs r3, #1 + cmp r3, #0 + bge _080512F6 +_0805130A: + adds r0, #0x80 + ldrb r0, [r0] + movs r7, #3 + cmp r0, #0 + beq _08051316 + movs r7, #2 +_08051316: + movs r0, #0x6a + bl sub_08051574 + adds r0, r7, #0 + bl sub_080A7114 +_08051322: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #2 + cmp r0, #0 + bne _08051330 + movs r1, #3 +_08051330: + adds r0, r4, r1 + bl __modsi3 + adds r4, r0, #0 + ldr r1, _08051354 @ =gMenu + ldrb r0, [r1, #1] + cmp r0, r4 + beq _0805134C + strb r4, [r1, #1] + bl sub_08051458 + movs r0, #0x68 + bl PlaySFX +_0805134C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08051350: .4byte gSave +_08051354: .4byte gMenu + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/pesto/sub_08024E4C.inc b/asm/non_matching/pesto/sub_08024E4C.inc index f326b496..affeab56 100644 --- a/asm/non_matching/pesto/sub_08024E4C.inc +++ b/asm/non_matching/pesto/sub_08024E4C.inc @@ -31,7 +31,7 @@ adds r2, r2, r1 strb r2, [r3] _08024E84: - ldr r0, _08024EC8 @ =gUnk_02002A40 + ldr r0, _08024EC8 @ =gSave adds r0, #0xaa ldrb r0, [r0] adds r2, r4, #0 @@ -65,7 +65,7 @@ _08024E9A: bl sub_08024A14 b _08024F46 .align 2, 0 -_08024EC8: .4byte gUnk_02002A40 +_08024EC8: .4byte gSave _08024ECC: ldr r6, _08024F48 @ =gPlayerEntity bl ResetPlayer diff --git a/asm/non_matching/putItemOnSlot.s b/asm/non_matching/putItemOnSlot.s index 3ab72a4a..d22d7828 100644 --- a/asm/non_matching/putItemOnSlot.s +++ b/asm/non_matching/putItemOnSlot.s @@ -18,7 +18,7 @@ _080543A8: cmp r0, #0x1e bhi _08054410 movs r1, #2 - ldr r2, _080543C0 @ =gUnk_02002A40 + ldr r2, _080543C0 @ =gSave adds r0, r2, #0 adds r0, #0xb4 ldrb r0, [r0] @@ -27,7 +27,7 @@ _080543A8: movs r1, #0 b _080543D0 .align 2, 0 -_080543C0: .4byte gUnk_02002A40 +_080543C0: .4byte gSave _080543C4: adds r0, r2, #0 adds r0, #0xb5 @@ -88,7 +88,7 @@ ForceEquipItem: @ 0x08054414 bne _0805442A movs r2, #1 _0805442A: - ldr r0, _08054458 @ =gUnk_02002A40 + ldr r0, _08054458 @ =gSave adds r0, #0xb4 adds r6, r1, r0 ldrb r7, [r6] @@ -114,7 +114,7 @@ _0805444A: _08054456: pop {r4, r5, r6, r7, pc} .align 2, 0 -_08054458: .4byte gUnk_02002A40 +_08054458: .4byte gSave _0805445C: .4byte gUnk_080FD5B4 _08054460: .4byte gUnk_0200AF00 .syntax divided diff --git a/asm/non_matching/save/sub_08050B3C.inc b/asm/non_matching/save/sub_08050B3C.inc index d7e96a1f..a3b5b6b3 100644 --- a/asm/non_matching/save/sub_08050B3C.inc +++ b/asm/non_matching/save/sub_08050B3C.inc @@ -6,7 +6,7 @@ push {r5, r6, r7} sub sp, #8 str r0, [sp] - ldr r1, _08050C18 @ =gUnk_02002A40 + ldr r1, _08050C18 @ =gSave adds r0, r1, #0 adds r0, #0xaa ldrb r0, [r0] @@ -117,7 +117,7 @@ RETURN: mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08050C18: .4byte gUnk_02002A40 +_08050C18: .4byte gSave _08050C1C: .4byte 0x0000F24C _08050C20: .4byte 0x040000D4 _08050C24: .4byte gUnk_080FC914 diff --git a/asm/non_matching/sub_0804DE00.inc b/asm/non_matching/sub_0804DE00.inc index ca6e828b..4a3a95bf 100644 --- a/asm/non_matching/sub_0804DE00.inc +++ b/asm/non_matching/sub_0804DE00.inc @@ -21,7 +21,7 @@ _0804DE22: bl SetGlobalFlag _0804DE32: ldr r5, _0804DE50 @ =gAreaRoomEntities_HyruleTown - ldr r4, _0804DE54 @ =gUnk_02002A40 + ldr r4, _0804DE54 @ =gSave ldrb r0, [r4, #8] lsls r0, r0, #2 adds r0, r0, r5 @@ -36,7 +36,7 @@ _0804DE32: b _0804DECC .align 2, 0 _0804DE50: .4byte gAreaRoomEntities_HyruleTown -_0804DE54: .4byte gUnk_02002A40 +_0804DE54: .4byte gSave _0804DE58: .4byte gUnk_02017654 _0804DE5C: movs r0, #0x1c diff --git a/asm/non_matching/sub_0804E150.inc b/asm/non_matching/sub_0804E150.inc index ad865197..b8e67282 100644 --- a/asm/non_matching/sub_0804E150.inc +++ b/asm/non_matching/sub_0804E150.inc @@ -1,14 +1,14 @@ .syntax unified push {r4, r5, lr} ldr r4, _0804E160 @ =gUnk_080EED2C - ldr r0, _0804E164 @ =gUnk_02002A40 + ldr r0, _0804E164 @ =gSave movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E17C .align 2, 0 _0804E160: .4byte gUnk_080EED2C -_0804E164: .4byte gUnk_02002A40 +_0804E164: .4byte gSave _0804E168: ldrh r0, [r4] ands r0, r5 @@ -29,14 +29,14 @@ _0804E17C: cmp r0, #0 bne _0804E1BA ldr r4, _0804E198 @ =gUnk_080EED7A - ldr r0, _0804E19C @ =gUnk_02002A40 + ldr r0, _0804E19C @ =gSave movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E1B4 .align 2, 0 _0804E198: .4byte gUnk_080EED7A -_0804E19C: .4byte gUnk_02002A40 +_0804E19C: .4byte gSave _0804E1A0: ldrh r0, [r4] ands r0, r5 @@ -58,14 +58,14 @@ _0804E1BA: cmp r0, #0 bne _0804E1F2 ldr r4, _0804E1D0 @ =gUnk_080EED8C - ldr r0, _0804E1D4 @ =gUnk_02002A40 + ldr r0, _0804E1D4 @ =gSave movs r5, #1 ldrb r0, [r0, #8] lsls r5, r0 b _0804E1EC .align 2, 0 _0804E1D0: .4byte gUnk_080EED8C -_0804E1D4: .4byte gUnk_02002A40 +_0804E1D4: .4byte gSave _0804E1D8: ldrh r0, [r4] ands r0, r5 diff --git a/asm/non_matching/textbox/sub_080564EC.inc b/asm/non_matching/textbox/sub_080564EC.inc index 8d0dc2ce..3fec0269 100644 --- a/asm/non_matching/textbox/sub_080564EC.inc +++ b/asm/non_matching/textbox/sub_080564EC.inc @@ -38,7 +38,7 @@ _08056520: strb r0, [r3, #1] adds r3, #2 movs r2, #0 - ldr r0, _080565A8 @ =gUnk_02002A40 + ldr r0, _080565A8 @ =gSave adds r0, #0x80 ldrb r1, [r0] cmp r1, #0 @@ -84,7 +84,7 @@ _08056598: .4byte gUnk_02036A40 _0805659C: .4byte gUnk_02024030 _080565A0: .4byte gUnk_02022780 _080565A4: .4byte gTextBox -_080565A8: .4byte gUnk_02002A40 +_080565A8: .4byte gSave _080565AC: .4byte gUnk_08107BE0 _080565B0: .4byte gUnk_02000D00 .syntax divided \ No newline at end of file diff --git a/asm/object37.s b/asm/object37.s index 1cbfc628..2d133d7e 100644 --- a/asm/object37.s +++ b/asm/object37.s @@ -47,7 +47,7 @@ sub_0808BE00: @ 0x0808BE00 sub_0808BE2C: @ 0x0808BE2C push {r4, lr} adds r2, r0, #0 - ldr r0, _0808BE78 @ =gUnk_02002A40 + ldr r0, _0808BE78 @ =gSave ldr r1, _0808BE7C @ =0x0000024E adds r4, r0, r1 ldrb r0, [r4] @@ -83,6 +83,6 @@ _0808BE6C: _0808BE74: pop {r4, pc} .align 2, 0 -_0808BE78: .4byte gUnk_02002A40 +_0808BE78: .4byte gSave _0808BE7C: .4byte 0x0000024E _0808BE80: .4byte gPlayerEntity diff --git a/asm/objectB.s b/asm/objectB.s index 02b3e30c..0c7b636e 100644 --- a/asm/objectB.s +++ b/asm/objectB.s @@ -184,13 +184,13 @@ _08083CDC: beq _08083D00 cmp r0, #0x63 bne _08083D16 - ldr r0, _08083CFC @ =gUnk_02002A40 + ldr r0, _08083CFC @ =gSave adds r0, #0xa9 ldrb r0, [r0] adds r1, r1, r0 b _08083D16 .align 2, 0 -_08083CFC: .4byte gUnk_02002A40 +_08083CFC: .4byte gSave _08083D00: ldrb r0, [r4, #0xb] cmp r0, #1 @@ -248,7 +248,7 @@ _08083D60: bne _08083DD0 movs r0, #0xa0 bl ModHealth - ldr r0, _08083DA8 @ =gUnk_02002A40 + ldr r0, _08083DA8 @ =gSave adds r1, r0, #0 adds r1, #0xa9 ldrb r0, [r1] @@ -261,7 +261,7 @@ _08083D60: movs r0, #0 strb r0, [r1] _08083D88: - ldr r0, _08083DA8 @ =gUnk_02002A40 + ldr r0, _08083DA8 @ =gSave adds r1, r0, #0 adds r1, #0xab ldrb r0, [r1] @@ -278,21 +278,21 @@ _08083DA0: bl ModHealth b _08083DD0 .align 2, 0 -_08083DA8: .4byte gUnk_02002A40 +_08083DA8: .4byte gSave _08083DAC: ldrb r0, [r4, #0xa] bl sub_080544DC adds r1, r0, #0 cmp r1, #0 beq _08083DC8 - ldr r0, _08083DC4 @ =gUnk_02002A40 + ldr r0, _08083DC4 @ =gSave adds r0, r0, r1 adds r0, #0xb5 movs r1, #0x20 strb r1, [r0] b _08083DD0 .align 2, 0 -_08083DC4: .4byte gUnk_02002A40 +_08083DC4: .4byte gSave _08083DC8: ldrb r0, [r4, #0xa] movs r1, #2 diff --git a/asm/objectB9.s b/asm/objectB9.s index 1a600eb6..0622cef1 100644 --- a/asm/objectB9.s +++ b/asm/objectB9.s @@ -285,13 +285,13 @@ _080A140C: beq _080A1430 b _080A1444 _080A1412: - ldr r0, _080A1418 @ =gUnk_02002A40 + ldr r0, _080A1418 @ =gSave adds r0, #0xbb b _080A1424 .align 2, 0 -_080A1418: .4byte gUnk_02002A40 +_080A1418: .4byte gSave _080A141C: - ldr r0, _080A142C @ =gUnk_02002A40 + ldr r0, _080A142C @ =gSave movs r1, #0x8b lsls r1, r1, #1 adds r0, r0, r1 @@ -301,7 +301,7 @@ _080A1424: beq _080A1444 b _080A1454 .align 2, 0 -_080A142C: .4byte gUnk_02002A40 +_080A142C: .4byte gSave _080A1430: movs r0, #0x4f bl CheckGlobalFlag diff --git a/asm/percy.s b/asm/percy.s index 2817449f..08ec140c 100644 --- a/asm/percy.s +++ b/asm/percy.s @@ -67,7 +67,7 @@ _0806B5AC: bne _0806B600 movs r0, #3 strb r0, [r4, #0x18] - ldr r0, _0806B5D8 @ =gUnk_02002A40 + ldr r0, _0806B5D8 @ =gSave adds r0, #0xbb ldrb r0, [r0] cmp r0, #0 @@ -79,7 +79,7 @@ _0806B5AC: b _0806B5E6 .align 2, 0 _0806B5D4: .4byte gTextBox -_0806B5D8: .4byte gUnk_02002A40 +_0806B5D8: .4byte gSave _0806B5DC: movs r0, #0x3f movs r1, #0x64 diff --git a/asm/phonograph.s b/asm/phonograph.s index 6c864e2f..c1fd3df9 100644 --- a/asm/phonograph.s +++ b/asm/phonograph.s @@ -51,7 +51,7 @@ sub_0806E964: @ 0x0806E964 push {r6, r7} mov sb, r0 adds r2, r1, #0 - ldr r0, _0806E984 @ =gUnk_03000FF0 + ldr r0, _0806E984 @ =gInput mov r8, r0 ldrh r1, [r0, #2] movs r0, #2 @@ -61,7 +61,7 @@ sub_0806E964: @ 0x0806E964 bl sub_08050384 b _0806EAAA .align 2, 0 -_0806E984: .4byte gUnk_03000FF0 +_0806E984: .4byte gInput _0806E988: ldrb r0, [r2, #0x18] adds r1, r0, #0 @@ -152,7 +152,7 @@ _0806EA0A: strh r0, [r6] _0806EA28: strh r4, [r7] - ldr r0, _0806EA74 @ =gUnk_03000FF0 + ldr r0, _0806EA74 @ =gInput ldrh r1, [r0, #2] movs r0, #1 ands r0, r1 @@ -190,7 +190,7 @@ _0806EA4E: strh r0, [r6] b _0806EA86 .align 2, 0 -_0806EA74: .4byte gUnk_03000FF0 +_0806EA74: .4byte gInput _0806EA78: .4byte gUnk_081145E4 _0806EA7C: ldr r0, _0806EAB4 @ =0x80010000 diff --git a/asm/pina.s b/asm/pina.s index 11a47b9a..5d4927ac 100644 --- a/asm/pina.s +++ b/asm/pina.s @@ -305,7 +305,7 @@ _08063C8C: thumb_func_start sub_08063C90 sub_08063C90: @ 0x08063C90 push {lr} - ldr r1, _08063CA4 @ =gUnk_02002A40 + ldr r1, _08063CA4 @ =gSave ldrb r1, [r1, #8] lsls r1, r1, #3 ldr r2, _08063CA8 @ =gUnk_0810CE04 @@ -313,7 +313,7 @@ sub_08063C90: @ 0x08063C90 bl ShowNPCDialogue pop {pc} .align 2, 0 -_08063CA4: .4byte gUnk_02002A40 +_08063CA4: .4byte gSave _08063CA8: .4byte gUnk_0810CE04 thumb_func_start sub_08063CAC diff --git a/asm/sittingPerson.s b/asm/sittingPerson.s index 006c76a4..29d3221c 100644 --- a/asm/sittingPerson.s +++ b/asm/sittingPerson.s @@ -218,7 +218,7 @@ _080638B2: movs r1, #1 bl sub_0807BA8C _080638D6: - ldr r0, _08063904 @ =gUnk_02002A40 + ldr r0, _08063904 @ =gSave ldrb r0, [r0, #8] subs r1, r0, #6 cmp r1, #0 @@ -238,7 +238,7 @@ _080638E2: _080638F8: .4byte gUnk_02002B0E _080638FC: .4byte 0x00000A17 _08063900: .4byte 0x00000A57 -_08063904: .4byte gUnk_02002A40 +_08063904: .4byte gSave _08063908: .4byte gUnk_0810CBE4 thumb_func_start sub_0806390C @@ -275,7 +275,7 @@ sub_08063944: @ 0x08063944 adds r3, r0, #0 movs r0, #0 str r0, [r1, #0x14] - ldr r0, _0806396C @ =gUnk_02002A40 + ldr r0, _0806396C @ =gSave ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 @@ -292,7 +292,7 @@ _08063958: bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806396C: .4byte gUnk_02002A40 +_0806396C: .4byte gSave _08063970: .4byte gUnk_0810CC08 thumb_func_start SittingPerson_Head diff --git a/asm/smallTownMinish.s b/asm/smallTownMinish.s index 3ce94602..b7d208bb 100644 --- a/asm/smallTownMinish.s +++ b/asm/smallTownMinish.s @@ -61,7 +61,7 @@ _0806E2DA: sub_0806E2DC: @ 0x0806E2DC push {lr} adds r3, r0, #0 - ldr r0, _0806E300 @ =gUnk_02002A40 + ldr r0, _0806E300 @ =gSave ldrb r0, [r0, #8] subs r0, #2 cmp r0, #0 @@ -78,5 +78,5 @@ _0806E2EC: bl ShowNPCDialogue pop {pc} .align 2, 0 -_0806E300: .4byte gUnk_02002A40 +_0806E300: .4byte gSave _0806E304: .4byte gUnk_08114308 diff --git a/asm/stockwell.s b/asm/stockwell.s index 6d643e31..074ada57 100644 --- a/asm/stockwell.s +++ b/asm/stockwell.s @@ -459,7 +459,7 @@ _080653AA: cmp r5, #0x6f bhi _0806543C ldr r2, _080653C8 @ =gQuiverSizes - ldr r1, _080653CC @ =gUnk_02002A40 + ldr r1, _080653CC @ =gSave adds r0, r1, #0 adds r0, #0xaf ldrb r0, [r0] @@ -468,7 +468,7 @@ _080653AA: b _080653FA .align 2, 0 _080653C8: .4byte gQuiverSizes -_080653CC: .4byte gUnk_02002A40 +_080653CC: .4byte gSave _080653D0: movs r0, #0xd bl GetInventoryValue @@ -485,7 +485,7 @@ _080653E4: _080653E8: .4byte 0x00002C0B _080653EC: ldr r2, _08065408 @ =gBombBagSizes - ldr r1, _0806540C @ =gUnk_02002A40 + ldr r1, _0806540C @ =gSave adds r0, r1, #0 adds r0, #0xae ldrb r0, [r0] @@ -500,7 +500,7 @@ _080653FA: b _080654C2 .align 2, 0 _08065408: .4byte gBombBagSizes -_0806540C: .4byte gUnk_02002A40 +_0806540C: .4byte gSave _08065410: .4byte 0x00002C0E _08065414: movs r1, #0x55 @@ -515,7 +515,7 @@ _08065420: mov sb, r1 b _0806543C _08065426: - ldr r0, _08065494 @ =gUnk_02002A40 + ldr r0, _08065494 @ =gSave adds r0, #0xc2 ldrh r1, [r0] ldr r0, _08065498 @ =0x000003E6 @@ -531,7 +531,7 @@ _0806543C: adds r0, r5, #0 bl sub_08053FE0 adds r6, r0, #0 - ldr r7, _08065494 @ =gUnk_02002A40 + ldr r7, _08065494 @ =gSave adds r0, r7, #0 adds r0, #0xc0 ldrh r0, [r0] @@ -569,7 +569,7 @@ _0806548A: ldr r0, _080654A4 @ =0x00002C11 b _080654B6 .align 2, 0 -_08065494: .4byte gUnk_02002A40 +_08065494: .4byte gSave _08065498: .4byte 0x000003E6 _0806549C: .4byte 0x00002C0E _080654A0: .4byte gRoomVars diff --git a/asm/sub_0807CA18.s b/asm/sub_0807CA18.s index 550ddab9..f955c199 100644 --- a/asm/sub_0807CA18.s +++ b/asm/sub_0807CA18.s @@ -8,7 +8,7 @@ thumb_func_start sub_0807CA18 sub_0807CA18: @ 0x0807CA18 push {lr} - ldr r0, _0807CA7C @ =gUnk_02002A40 + ldr r0, _0807CA7C @ =gSave mov ip, r0 ldrh r1, [r0] movs r0, #0x80 @@ -59,5 +59,5 @@ _0807CA78: movs r0, #1 pop {pc} .align 2, 0 -_0807CA7C: .4byte gUnk_02002A40 +_0807CA7C: .4byte gSave _0807CA80: .4byte gUnk_0811E470 diff --git a/asm/takkuri.s b/asm/takkuri.s index b382ddcb..b2419d0b 100644 --- a/asm/takkuri.s +++ b/asm/takkuri.s @@ -716,7 +716,7 @@ sub_0803C0AC: @ 0x0803C0AC adds r5, r0, #0 cmp r5, #0 beq _0803C11C - ldr r0, _0803C0D4 @ =gUnk_02002A40 + ldr r0, _0803C0D4 @ =gSave adds r0, #0xc0 ldrh r1, [r0] ldr r0, _0803C0D8 @ =0x000001F3 @@ -729,7 +729,7 @@ sub_0803C0AC: @ 0x0803C0AC bl ModRupees b _0803C118 .align 2, 0 -_0803C0D4: .4byte gUnk_02002A40 +_0803C0D4: .4byte gSave _0803C0D8: .4byte 0x000001F3 _0803C0DC: cmp r1, #0x63 diff --git a/asm/tingleSiblings.s b/asm/tingleSiblings.s index d732fd78..f90adb6c 100644 --- a/asm/tingleSiblings.s +++ b/asm/tingleSiblings.s @@ -193,7 +193,7 @@ sub_08064F28: @ 0x08064F28 bl CheckRoomFlag cmp r0, #0 bne _08064F84 - ldr r4, _08064F64 @ =gUnk_02002A40 + ldr r4, _08064F64 @ =gSave adds r0, r6, #0 bl sub_08002632 ldr r1, _08064F68 @ =0x00000141 @@ -206,7 +206,7 @@ sub_08064F28: @ 0x08064F28 b _08064F7E .align 2, 0 _08064F60: .4byte gUnk_0810FC50 -_08064F64: .4byte gUnk_02002A40 +_08064F64: .4byte gSave _08064F68: .4byte 0x00000141 _08064F6C: movs r0, #0xc @@ -226,7 +226,7 @@ _08064F84: bl CheckGlobalFlag cmp r0, #0 bne _08064FCE - ldr r0, _08064FB0 @ =gUnk_02002A40 + ldr r0, _08064FB0 @ =gSave ldr r1, _08064FB4 @ =0x00000117 adds r0, r0, r1 ldrb r1, [r0] @@ -243,7 +243,7 @@ _08064F84: str r0, [r1, #0x14] b _08064FD2 .align 2, 0 -_08064FB0: .4byte gUnk_02002A40 +_08064FB0: .4byte gSave _08064FB4: .4byte 0x00000117 _08064FB8: movs r5, #7 diff --git a/asm/vaatiWrath.s b/asm/vaatiWrath.s index e76f2e24..5a0bea7b 100644 --- a/asm/vaatiWrath.s +++ b/asm/vaatiWrath.s @@ -2141,7 +2141,7 @@ sub_080423A4: @ 0x080423A4 ands r0, r1 cmp r0, #0 bne _0804241C - ldr r0, _080423D0 @ =gUnk_02002A40 + ldr r0, _080423D0 @ =gSave movs r2, #0x93 lsls r2, r2, #3 adds r1, r0, r2 @@ -2153,7 +2153,7 @@ sub_080423A4: @ 0x080423A4 b _0804241C .align 2, 0 _080423CC: .4byte gScreenTransition -_080423D0: .4byte gUnk_02002A40 +_080423D0: .4byte gSave _080423D4: ldr r2, _08042420 @ =gPlayerState adds r0, r2, #0 diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 4b2d84c6..1f1002fb 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -4,18 +4,6 @@ .section .rodata .align 2 -gUnk_080FC8D0:: @ 080FC8D0 - .incbin "baserom.gba", 0x0FC8D0, 0x000000E - -gUnk_080FC8DE:: @ 080FC8DE - .incbin "baserom.gba", 0x0FC8DE, 0x000001E - -sFileSelectDefaultHandlers:: @ 080FC8FC - .incbin "baserom.gba", 0x0FC8FC, 0x0000007 - -gUnk_080FC903:: @ 080FC903 - .incbin "baserom.gba", 0x0FC903, 0x0000005 - gUnk_080FC908:: @ 080FC908 .incbin "baserom.gba", 0x0FC908, 0x000000C diff --git a/include/fileScreen.h b/include/fileScreen.h index ffc99996..4c86040a 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -40,12 +40,21 @@ typedef struct { typedef struct { u8 filler0[0x4]; } struct_020227E8; - extern struct_020227E8 gUnk_020227E8; -extern SaveFile gSaveFiles[]; -extern u32 gUsedPalettes; -extern u8 gUnk_02000D00[]; +typedef struct { + /*0x00*/ u8 isTransitioning; + /*0x01*/ u8 unk1; + /*0x02*/ u8 unk2; + /*0x03*/ u8 unk3; + /*0x04*/ u8 unk4; + /*0x05*/ u8 unk5; + /*0x06*/ u8 unk6; + /*0x07*/ u8 unk7; + /*0x08*/ s8 saveStatus[3]; + /*0x0b*/ SaveFile saves[3]; +} struct_02019EE0; +extern struct_02019EE0 gUnk_02019EE0; struct OAMCommand { u16 x; @@ -70,8 +79,11 @@ extern void sub_08050AFC(u32); extern const struct_080FC844 gUnk_080FC844; extern const u16 gUnk_080FC85C[][3]; extern void (*const gUnk_080FC908[])(void); -extern const u16 gUnk_080FC8DE[]; extern const u8 gGlobalGfxAndPalettes[]; extern void (*const gUnk_080FC93C[])(); +extern u32 gUsedPalettes; +extern u8 gUnk_02000D00[]; +extern u8 gUnk_02001B40; +extern u8 gUnk_02022030; #endif \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index 4f77c1cf..407641c0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -250,7 +250,6 @@ extern void sub_08097B24(Entity*); extern u32 sub_08079F8C(void); extern void sub_080787CC(Entity*); extern void sub_080526F8(s32); -extern int sub_0807CF28(u32, SaveFile*); extern u32 sub_080044EC(Entity*, u32); extern u32 sub_080002B8(Entity*); extern u32 sub_08049F84(Entity*, u32); @@ -315,7 +314,6 @@ extern void sub_08008790(Entity*, u32); extern void sub_0804ACF8(); extern void sub_08073904(Entity*); extern u32 sub_08056134(void); -extern u32 sub_0807CF30(SaveFile*); extern void sub_08004484(Entity*, Entity*); extern void sub_080564C8(u32); extern void sub_08056F70(void); diff --git a/include/menu.h b/include/menu.h index 7d8c2abd..052de3d2 100644 --- a/include/menu.h +++ b/include/menu.h @@ -17,11 +17,6 @@ typedef struct { u32 filler3[3]; } MenuControls; -typedef struct { - u8 key; - u8 value; -} KeySetting; - typedef struct { u8 aButtonX; u8 aButtonY; @@ -32,8 +27,7 @@ typedef struct { u8 rButtonX; u8 rButtonY; u8 rButtonText; - KeySetting settingDict[0]; - u8 eof; + u8 settingDict[0]; } PACKED KeyButtonLayout; extern void sub_080A70AC(const KeyButtonLayout*); @@ -56,7 +50,11 @@ typedef struct { u8 unk14; u8 unk15; u8 unk16; - u8 filler17[0x13]; + // While struct offsets are usually loaded indirectly, this one is often loaded + // directly in the code. This happens when you take the address off the field with '&`. + // Perhaps they had a macro to cast this to different sized arrays. + u8 selectMtx; + u8 filler18[0x12]; u8 unk2a; int field_0x2c; } Menu; diff --git a/include/readKeyInput.h b/include/readKeyInput.h index 04711bcd..7961c2b6 100644 --- a/include/readKeyInput.h +++ b/include/readKeyInput.h @@ -6,4 +6,4 @@ typedef struct { u8 unk7; } Input; -extern Input gUnk_03000FF0; +extern Input gInput; diff --git a/include/save.h b/include/save.h index bb044997..83ef1e3f 100644 --- a/include/save.h +++ b/include/save.h @@ -7,10 +7,12 @@ #include "menu.h" #include "structures.h" +#define FILENAME_LENGTH 6 + typedef enum { SAVE_BUSY = 0, SAVE_OK = 1, - SAVE_ERROR = 0xFFFFFFFF, + SAVE_ERROR = -1, } SaveResult; typedef enum { @@ -19,6 +21,32 @@ typedef enum { SAVE_DONE, } SaveState; -extern u32 sub_0807CDA4(SaveState state); +extern SaveResult sub_0807CDA4(SaveState state); + +typedef struct { + /*0x000*/ u8 filler0[0x2]; + /*0x002*/ u8 messageSpeed; + /*0x003*/ u8 brightnessPref; + /*0x004*/ u8 filler4[0x2]; + /*0x006*/ u8 unk6; + /*0x007*/ u8 unk7; + /*0x008*/ u8 unk8; + /*0x009*/ u8 field_0x9[0x34]; + /*0x040*/ u32 windcrests; + /*0x044*/ u8 filler44[0xC]; + /*0x050*/ u32 unk50; + /*0x054*/ u8 filler54[0x2C]; + /*0x080*/ u8 playerName[FILENAME_LENGTH]; + /*0x086*/ u8 filler86[0x22]; + /*0x0A8*/ Stats stats; + /*0x0D0*/ u8 fillerD0[0x3c0]; + /*0x490*/ u32 unk490; + /*0x494*/ u8 filler494[0x20]; +} SaveFile; + +extern SaveFile gSave; + +s32 sub_0807CF28(u32, SaveFile*); +u32 sub_0807CF30(SaveFile*); #endif \ No newline at end of file diff --git a/include/structures.h b/include/structures.h index 0e7f202b..534f0d98 100644 --- a/include/structures.h +++ b/include/structures.h @@ -42,29 +42,6 @@ typedef struct { extern struct_02000010 gUnk_02000010; -typedef struct { - /*0x000*/ u8 filler0[0x2]; - /*0x002*/ u8 messageSpeed; - /*0x003*/ u8 brightnessPref; - /*0x004*/ u8 filler4[0x2]; - /*0x006*/ u8 unk6; - /*0x007*/ u8 unk7; - /*0x008*/ u8 unk8; - /*0x009*/ u8 field_0x9[0x34]; - /*0x040*/ u32 windcrests; - /*0x044*/ u8 filler44[0xC]; - /*0x050*/ u32 unk50; - /*0x054*/ u8 filler54[0x2C]; - /*0x080*/ u8 playerName[6]; - /*0x086*/ u8 filler86[0x22]; - /*0x0A8*/ Stats stats; - /*0x0D0*/ u8 fillerD0[0x3c0]; - /*0x490*/ u32 unk490; - /*0x494*/ u8 filler494[0x20]; -} SaveFile; - -extern SaveFile gUnk_02002A40; - typedef struct { u32 frameCount; // regular frame count? does anything reset it? u8 field_0x4[0x4]; @@ -113,20 +90,6 @@ typedef struct { u16 transitionSFX; } ScreenTransitionData; -typedef struct { - /*0x00*/ u8 isTransitioning; - /*0x01*/ u8 unk1; - /*0x02*/ u8 unk2; - /*0x03*/ u8 unk3; - /*0x04*/ u8 filler4[0x2]; - /*0x06*/ u8 unk6; - /*0x07*/ u8 unk7; - /*0x08*/ s8 saveStatus[3]; - /*0x0b*/ u8 unkB[0xE1D]; -} struct_02019EE0; - -extern struct_02019EE0 gUnk_02019EE0; - typedef struct { u8 active; u8 field_0x1; diff --git a/linker.ld b/linker.ld index 74df0a87..528c2783 100644 --- a/linker.ld +++ b/linker.ld @@ -28,7 +28,7 @@ SECTIONS { . = 0x00001A3C; gUnk_02001A3C = .; . = 0x00001A40; gBG3Buffer = .; . = 0x00001B40; gUnk_02001B40 = .; - . = 0x00002A40; gUnk_02002A40 = .; + . = 0x00002A40; gSave = .; . = 0x00002AA0; gUnk_02002AA0 = .; . = 0x00002AC0; gUnk_02002AC0 = .; . = 0x00002AC8; gUnk_02002AC8 = .; @@ -73,7 +73,6 @@ SECTIONS { . = 0x00018EB0; gUnk_02018EB0 = .; . = 0x00018EE0; gUnk_02018EE0 = .; . = 0x00019EE0; gUnk_02019EE0 = .; - . = 0x00019EEC; gSaveFiles = .; . = 0x00019F6C; gUnk_02019F6C = .; . = 0x0001AEE0; gUnk_0201AEE0 = .; . = 0x00021EE0; gUnk_02021EE0 = .; @@ -176,7 +175,7 @@ SECTIONS { . = 0x00000F88; gBgControls = .; . = 0x00000FBC; gUnk_03000FBC = .; . = 0x00000FD0; gFadeControl = .; - . = 0x00000FF0; gUnk_03000FF0 = .; + . = 0x00000FF0; gInput = .; . = 0x00001000; gUnk_03001000 = .; . = 0x00001010; gUnk_03001010 = .; . = 0x00001020; gUnk_03001020 = .; diff --git a/src/code_0805436C.c b/src/code_0805436C.c index c1b3033a..06e1183b 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -19,7 +19,7 @@ typedef struct { u8 unk; } ScreenTransition; -extern SaveFile gUnk_02002A40; +extern SaveFile gSave; extern struct_080FD5B4 gUnk_080FD5B4[]; extern ScreenTransition gScreenTransition; @@ -33,9 +33,9 @@ extern void (*const gUnk_080FE2A0[])(); u32 IsItemEquipped(u32 itemID) { u32 ret; - if (itemID == gUnk_02002A40.stats.itemOnA) + if (itemID == gSave.stats.itemOnA) ret = 0; - else if (itemID == gUnk_02002A40.stats.itemOnB) + else if (itemID == gSave.stats.itemOnB) ret = 1; else ret = 2; @@ -50,17 +50,17 @@ void PutItemOnSlot(u32 itemID) { } if (itemID - 1 < 0x1f) { itemSlot = 2; - if (gUnk_02002A40.stats.itemOnA == 0) { + if (gSave.stats.itemOnA == 0) { itemSlot = 0; - } else if (gUnk_02002A40.stats.itemOnB == 0) { + } else if (gSave.stats.itemOnB == 0) { itemSlot = 1; } if (itemSlot == 2) { u8 temp = gUnk_080FD5B4[itemID].unk; - if (temp == gUnk_080FD5B4[gUnk_02002A40.stats.itemOnA].unk) { + if (temp == gUnk_080FD5B4[gSave.stats.itemOnA].unk) { itemSlot = 0; } else { - if (temp == gUnk_080FD5B4[gUnk_02002A40.stats.itemOnB].unk) { + if (temp == gUnk_080FD5B4[gSave.stats.itemOnB].unk) { itemSlot = 1; } } @@ -82,19 +82,19 @@ u32 SetBottleContents(u32 itemID, u32 bottleIndex) { if (bottleIndex > 3) { bottleIndex = 0; - if (gUnk_02002A40.stats.filler2[0] != 0x20) { + if (gSave.stats.filler2[0] != 0x20) { do { bottleIndex++; if (bottleIndex > 3) { return bottleIndex; } - } while (gUnk_02002A40.stats.filler2[bottleIndex] != 0x20); + } while (gSave.stats.filler2[bottleIndex] != 0x20); } if (bottleIndex > 3) { return bottleIndex; } } - gUnk_02002A40.stats.filler2[bottleIndex] = itemID; + gSave.stats.filler2[bottleIndex] = itemID; return bottleIndex; } @@ -134,13 +134,13 @@ u32 sub_080544C8(u32 arg0) { } u32 sub_080544DC(u32 arg0) { - if (arg0 == gUnk_02002A40.stats.filler2[0]) { + if (arg0 == gSave.stats.filler2[0]) { return 1; - } else if (arg0 == gUnk_02002A40.stats.filler2[1]) { + } else if (arg0 == gSave.stats.filler2[1]) { return 2; - } else if (arg0 == gUnk_02002A40.stats.filler2[2]) { + } else if (arg0 == gSave.stats.filler2[2]) { return 3; - } else if (arg0 == gUnk_02002A40.stats.filler2[3]) { + } else if (arg0 == gSave.stats.filler2[3]) { return 4; } else { return 0; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 924ace96..0dbb7dd1 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -3,6 +3,7 @@ #include "flags.h" #include "functions.h" #include "textbox.h" +#include "save.h" extern void sub_0801D040(Entity*, u32); extern Entity* sub_08049DF4(u32); @@ -243,7 +244,7 @@ void sub_08028CE8(Entity* this) { u32 subtype; if ((gTextBox.doTextBox & 0x7f) == 0 && sub_0802915C(this) && !sub_08056338()) { - if (offer->price <= gUnk_02002A40.stats.rupees) { + if (offer->price <= gSave.stats.rupees) { if (sub_080291DC(this)) { /* Bag full. */ TextboxNoOverlapFollow(0x2904); @@ -508,11 +509,11 @@ bool32 sub_080291DC(Entity* this) { switch (offer->field_0x8) { case 0x6c: - if (gBombBagSizes[gUnk_02002A40.stats.bombBagType] <= gUnk_02002A40.stats.bombCount) + if (gBombBagSizes[gSave.stats.bombBagType] <= gSave.stats.bombCount) return TRUE; break; case 0x6f: - if (gQuiverSizes[gUnk_02002A40.stats.quiverType] <= gUnk_02002A40.stats.arrowCount) + if (gQuiverSizes[gSave.stats.quiverType] <= gSave.stats.arrowCount) return TRUE; break; } diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 96b79038..5301647f 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -5,6 +5,7 @@ #include "trig.h" #include "structures.h" #include "functions.h" +#include "fileScreen.h" void (* const gUnk_080D1AFC[8])(Entity*); void (* const gUnk_080D1B1C[7])(Entity*); diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 43c2417d..64207c30 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -2,6 +2,7 @@ #include "entity.h" #include "functions.h" #include "textbox.h" +#include "save.h" extern bool32 sub_080544B4(u32); extern void sub_0807CAA0(u32, u32); @@ -180,7 +181,7 @@ void sub_0802805C(Entity* this) { this->field_0xf = tmp3; } - if (this->field_0xf >= 0x19 || gUnk_02002A40.stats.health == 0) { + if (this->field_0xf >= 0x19 || gSave.stats.health == 0) { sub_0802810C(this); } else { ResetPlayer(); @@ -245,12 +246,12 @@ void sub_080281A0(Entity* this) { bool32 sub_080281E0(u32 param_1) { bool32 ret = FALSE; if (GetInventoryValue(param_1) == 1) { - if (sub_080544B4(gUnk_02002A40.stats.itemOnA)) { - gUnk_02002A40.stats.itemOnA = 0; + if (sub_080544B4(gSave.stats.itemOnA)) { + gSave.stats.itemOnA = 0; } - if (sub_080544B4(gUnk_02002A40.stats.itemOnB)) { - gUnk_02002A40.stats.itemOnB = 0; + if (sub_080544B4(gSave.stats.itemOnB)) { + gSave.stats.itemOnB = 0; } sub_0807CAA0(param_1, 0); diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 8147d832..7a12529a 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -804,7 +804,7 @@ void sub_08024E4C(Entity* this) { this->cutsceneBeh.HALF.LO += 1 + (Random() & 1); } - if (gUnk_02002A40.stats.health == 0 || this->field_0x86.HALF.HI == 4) { + if (gSave.stats.health == 0 || this->field_0x86.HALF.HI == 4) { this->cutsceneBeh.HALF.LO = 0x30; this->field_0x86.HALF.HI = 0; sub_08024F50(this); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index b7b43f8b..1f74db92 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -5,6 +5,7 @@ #include "npc.h" #include "structures.h" #include "player.h" +#include "save.h" extern void sub_080293DC(Entity*); extern void sub_080296D8(Entity*); @@ -158,7 +159,7 @@ void sub_0802953C(Entity* this) { if (this->actionDelay != 0) { this->actionDelay--; } - if (((this->field_0xf > 0x2d) || (gUnk_02002A40.stats.rupees == 0)) && (this->actionDelay == 0)) { + if (((this->field_0xf > 0x2d) || (gSave.stats.rupees == 0)) && (this->actionDelay == 0)) { sub_080296D8(this); } else { ResetPlayer(); @@ -170,7 +171,7 @@ void sub_0802953C(Entity* this) { gPlayerEntity.spritePriority.b1 = 0; if (--this->field_0x82.HALF.HI == 0) { this->field_0x82.HALF.HI = 0x41; - if (gUnk_02002A40.stats.rupees != 0) { + if (gSave.stats.rupees != 0) { ModRupees(gUnk_080CCC44[this->entityType.form]); this->cutsceneBeh.HALF.LO = 1; } diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index e550363c..f9e7738d 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -4,6 +4,7 @@ #include "structures.h" #include "player.h" #include "functions.h" +#include "save.h" extern void (*const gUnk_080CEB74[])(Entity*); extern void (*const gUnk_080CEB8C[])(Entity*); @@ -35,8 +36,8 @@ void sub_08033564(Entity* this) { this->flags &= 0x7f; this->field_0x7c.HALF.LO = 0x27c; gPlayerState.flags.all |= 0x4000; - gUnk_02002A40.stats.filler2[4] = this->entityType.form + 1; - gUnk_02002A40.stats.field_0x20 = 600; + gSave.stats.filler2[4] = this->entityType.form + 1; + gSave.stats.field_0x20 = 600; if (this->entityType.form == 0) { break; } diff --git a/src/executeScriptCommandSet.c b/src/executeScriptCommandSet.c index 4e238655..de8ea781 100644 --- a/src/executeScriptCommandSet.c +++ b/src/executeScriptCommandSet.c @@ -6,6 +6,7 @@ #include "structures.h" #include "textbox.h" #include "functions.h" +#include "save.h" void nullsub_507 (Entity*, ScriptExecutionContext*); void sub_0807E004(Entity*, ScriptExecutionContext*); @@ -496,12 +497,12 @@ void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E390(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gUnk_02002A40.stats.rupees); + unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.rupees); gUnk_02033280.unk_07 |= 1; } void sub_0807E3BC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gUnk_02002A40.stats.field_0x1a); + unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.field_0x1a); gUnk_02033280.unk_07 |= 1; } @@ -525,7 +526,7 @@ void sub_0807E42C(Entity* unk1, ScriptExecutionContext* unk2) { tmp2 = gRoomVars.field_0x7; } tmp3 = sub_08053FE0(tmp); - unk2->unk_14 = (tmp3 <= gUnk_02002A40.stats.rupees); + unk2->unk_14 = (tmp3 <= gSave.stats.rupees); if (unk2->unk_14) { ModRupees(-tmp3); sub_080A7C18(tmp, tmp2, 0); @@ -1145,8 +1146,8 @@ void sub_0807F004(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02002A40.stats.maxHealth = min(gUnk_02002A40.stats.maxHealth + 8, 0xA0); - gUnk_02002A40.stats.health = gUnk_02002A40.stats.maxHealth; + gSave.stats.maxHealth = min(gSave.stats.maxHealth + 8, 0xA0); + gSave.stats.health = gSave.stats.maxHealth; } void sub_0807F034(Entity* unk1, ScriptExecutionContext* unk2) { diff --git a/src/fileScreen.c b/src/fileScreen.c index 5e96d7e7..2b1d9341 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -3,13 +3,6 @@ // copy, erase, start #define NUM_FILE_OPERATIONS 3 -// todo: does this belong with gUnk_02019EE0? -typedef enum { - SAVE_EMPTY = 0, - SAVE_VALID = 1, - SAVE_DELETED = 0xFFFFFFFF, -} SaveStatus; - typedef enum { STATE_NONE, STATE_NEW, @@ -21,10 +14,21 @@ typedef enum { STATE_START, } FileSelectState; +// todo: does this belong with gUnk_02019EE0? +typedef enum { + SAVE_EMPTY = 0, + SAVE_VALID = 1, + SAVE_DELETED = 0xFFFFFFFF, +} SaveStatus; + +typedef enum { + RESULT_INVALID = 0, + RESULT_ASCII = 1, +} CharResult; + static void HandleFileScreenEnter(void); static void HandleFileScreenActive(void); static void HandleFileScreenExit(void); - static void (*const sScreenHandlers[])(void) = { HandleFileScreenEnter, HandleFileScreenActive, @@ -39,31 +43,51 @@ static void HandleFileView(void); extern void HandleFileCopy(void); extern void HandleFileDelete(void); extern void HandleFileStart(void); - static void (*const sFileScreenSubHandlers[])(void) = { HandleFileSelect, HandleFileNew, HandleFileLanguageSelect, HandleFileOptions, HandleFileView, HandleFileCopy, HandleFileDelete, HandleFileStart, }; -extern KeyButtonLayout gUnk_080FC8D0; -// static const KeyButtonLayout gUnk_080FC8D0 = { -// 0xFF, 0xD8, 0x0, 0xFF, 0xD8, 0x0, 0xE0, 0x10, 0xF, {{0x5, 0x0}, { 0x2, 0x0 }}, 0xFF -// }; +static const KeyButtonLayout gUnk_080FC8D0 = { + .aButtonX = 0xFF, + .aButtonY = 0xD8, + .aButtonText = 0x0, + .bButtonX = 0xFF, + .bButtonY = 0xD8, + .bButtonText = 0x0, + .rButtonX = 0xE0, + .rButtonY = 0x10, + .rButtonText = 0xF, + .settingDict = { 0x5, 0x0, 0x2, 0x0, 0xFF }, +}; -// main "file selection" screen -extern void (*const sFileSelectDefaultHandlers[])(void); +static const u16 gUnk_080FC8DE[] = { + 0x01, 0x00, 0x20, 0x40, 0x60, 0x80, 0xa0, 0xc0, 0xe0, 0xc0, 0xa0, 0x80, 0x60, 0x40, 0x20, +}; -// handles submenus -extern void (*const sFileScreenSubHandlers[])(void); +static void sub_08050848(void); +static void sub_0805086C(void); +static void sub_08050940(void); +static void (*const sFileSelectDefaultHandlers[])(void) = { + sub_08050848, + sub_0805086C, + sub_08050940, +}; extern void (*const gUnk_080FC944[])(void); +extern void (*const gUnk_080FC950[])(void); +extern void (*const gUnk_080FC960[])(void); +extern void (*const gUnk_080FC9B0[])(void); +extern void (*const gUnk_080FC9BC[])(void); +extern void (*const gUnk_080FC9C8[])(void); static void sub_08050624(u32); static void sub_0805066C(void); static void HideButtonR(void); static void ShowButtonR(void); +void sub_08051458(); -void sub_08050318(u32 arg0, u32 arg1) { +void CreateDialogBox(u32 arg0, u32 arg1) { u32 sfx; struct_080FC844 var0; @@ -106,7 +130,7 @@ void LoadOptionsFromSave(u32 idx) { messageSpeed = 1; brightnessPref = 1; } else { - SaveFile* saveFile = &gSaveFiles[idx]; + SaveFile* saveFile = &gUnk_02019EE0.saves[idx]; messageSpeed = saveFile->messageSpeed; brightnessPref = saveFile->brightnessPref; } @@ -119,7 +143,7 @@ void LoadOptionsFromSave(u32 idx) { void SetActiveSave(u32 idx) { if (idx < NUM_SAVE_SLOTS) { gUnk_02000000->saveFileId = idx; - _DmaCopy(&gSaveFiles[idx], &gUnk_02002A40, sizeof(gSaveFiles[idx])); + _DmaCopy(&gUnk_02019EE0.saves[idx], &gSave, sizeof(gUnk_02019EE0.saves[idx])); } LoadOptionsFromSave(idx); } @@ -206,7 +230,7 @@ static void HandleFileScreenExit(void) { } static void sub_08050624(u32 idx) { - SaveFile* saveFile = &gSaveFiles[idx]; + SaveFile* saveFile = &gUnk_02019EE0.saves[idx]; int status = sub_0807CF28(idx, saveFile); switch (status) { case SAVE_DELETED: @@ -249,7 +273,7 @@ void sub_0805070C(void) { u32 i; int j; struct_02036540* var0; - u8* playerName; + char* playerName; var0 = sub_0805F2C8(); if (var0) { @@ -258,11 +282,11 @@ void sub_0805070C(void) { var0->unk1 = 1; var0->unk4 = 0x30; var0->unk8 = gUnk_02000D00; - for (i = 0; i < 3; i++) { + for (i = 0; i < NUM_SAVE_SLOTS; i++) { var0->unk6 = 0; _DmaZero(var0->unk8, 0x200); - playerName = gSaveFiles[i].playerName; - for (j = 0; j < 6; j++) { + playerName = &gUnk_02019EE0.saves[i].playerName[0]; + for (j = 0; j < FILENAME_LENGTH; j++) { sub_0805F7DC(playerName[j], var0); } // i is a struct of size 0x200 @@ -337,7 +361,7 @@ void sub_08050888(void) { break; default: sub_0805194C(gUnk_02019EE0.unk7); - sub_08050318(0, gUnk_02019EE0.unk7 + 1); + CreateDialogBox(0, gUnk_02019EE0.unk7 + 1); gChooseFileState.timer = 30; gChooseFileState.subState = 1; break; @@ -347,7 +371,7 @@ void sub_08050888(void) { void sub_080508E4(void) { if (gChooseFileState.timer == 0) { - if (gUnk_03000FF0.newKeys & (A_BUTTON | START_BUTTON)) { + if (gInput.newKeys & (A_BUTTON | START_BUTTON)) { gChooseFileState.subState = 2; } } else { @@ -375,8 +399,8 @@ void sub_08050940(void) { } row_idx = gUnk_02019EE0.unk6; - keys = gUnk_03000FF0.newKeys; - if ((gUnk_03000FF0.heldKeys & L_BUTTON) && gUnk_02019EE0.saveStatus[row_idx] == SAVE_VALID) { + keys = gInput.newKeys; + if ((gInput.heldKeys & L_BUTTON) && gUnk_02019EE0.saveStatus[row_idx] == SAVE_VALID) { keys &= ~(DPAD_UP | DPAD_DOWN); } @@ -493,12 +517,12 @@ NONMATCH("asm/non_matching/save/sub_08050B3C.inc", void sub_08050B3C(u16* arg0)) u16* var8; sp.unk0 = arg0; - var0 = gUnk_02002A40.stats.health / 2; + var0 = gSave.stats.health / 2; if (var0 == 0) { var0 = 1; } - var1 = gUnk_02002A40.stats.maxHealth / 2; + var1 = gSave.stats.maxHealth / 2; if (var1 == 0) { return; } @@ -554,8 +578,6 @@ void HandleFileView(void) { sub_08050A64(gUnk_02019EE0.unk6); } -extern Input gUnk_03000FF0; - void sub_08050C54(void) { s32 column_idx; @@ -563,7 +585,7 @@ void sub_08050C54(void) { return; column_idx = gMenu.column_idx; - switch (gUnk_03000FF0.newKeys) { + switch (gInput.newKeys) { case A_BUTTON: case START_BUTTON: if (column_idx == 0) { @@ -636,7 +658,7 @@ void sub_08050DE4(void) { return; row_idx = gUnk_02000000->gameLanguage; - switch (gUnk_03000FF0.newKeys) { + switch (gInput.newKeys) { case DPAD_UP: row_idx--; break; @@ -648,7 +670,7 @@ void sub_08050DE4(void) { PlaySFX(0x6a); if (gMenu.field_0x4 != row_idx) { sub_080A7114(2); - sub_08050318(8, 0); + CreateDialogBox(8, 0); } else { SetFileSelectState(STATE_NONE); } @@ -675,6 +697,499 @@ void sub_08050DE4(void) { } void sub_08050E88(void) { - if (sub_0807CDA4(SAVE_DONE)) + if (sub_0807CDA4(2)) SetFileSelectState(0); } + +void HandleFileOptions(void) { + gUnk_080FC950[gMenu.menuType](); +} + +void sub_08050EB8(void) { + SaveFile* save; + sub_080503A8(0xe); + save = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6]; + gUnk_02019EE0.unk4 = save->messageSpeed; + gUnk_02019EE0.unk5 = save->brightnessPref; + gMenu.column_idx = 0; + gMenu.transitionTimer = 0xff; + sub_080A7114(1); +} + +NONMATCH("asm/non_matching/fileScreen/sub_08050EF4.inc", void sub_08050EF4(void)) { + u8* p_option; + u32 option; + char column_idx; + int mode; + + if (gUnk_02019EE0.isTransitioning) + return; + + p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightnessPref; + if (gMenu.column_idx == 0) { + p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed; + } + + mode = 0; + option = *p_option; + column_idx = gMenu.column_idx; + switch (gInput.newKeys) { + case DPAD_RIGHT: + if (*p_option < 2) { + option = *p_option + 1; + } + break; + case DPAD_LEFT: + if (*p_option != 0) { + option = *p_option - 1; + } + break; + case DPAD_UP: + column_idx = 0; + break; + case DPAD_DOWN: + column_idx = 1; + break; + case A_BUTTON: + case START_BUTTON: + mode = 2; + if (*(u16*)&gUnk_02019EE0.unk4 != *(u16*)&gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed) + mode = 3; + break; + case B_BUTTON: + mode = 2; + break; + } + + switch (mode) { + case 3: + gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed = gUnk_02019EE0.unk4; + gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightnessPref = gUnk_02019EE0.unk5; + PlaySFX(0x6c); + sub_080A7114(mode); + SetActiveSave(gUnk_02019EE0.unk6); + break; + case 2: + CreateDialogBox(8, 0); + PlaySFX(0x6a); + default: + case 1: + sub_080A7114(mode); + SetActiveSave(gUnk_02019EE0.unk6); + break; + case 0: + if (gMenu.column_idx != column_idx) { + gMenu.column_idx = column_idx; + PlaySFX(0x69); + } else if (option != *p_option) { + *p_option = option; + LoadOptionsFromSave(gUnk_02019EE0.unk6); + PlaySFX(0x69); + } + break; + } +} +END_NONMATCH + +void sub_08050FFC(void) { + switch (sub_0807CDA4(0)) { + case SAVE_ERROR: + gMenu.transitionTimer = 0x1e; + sub_0805194C(gUnk_02019EE0.unk6); + CreateDialogBox(9, 0); + case SAVE_OK: + sub_080A7114(3); + break; + } +} + +void sub_0805103C(void) { + // this gets optimized as a ldrb + switch (gMenu.transitionTimer % 256) { + case 0: + if (!(gInput.newKeys & (A_BUTTON | START_BUTTON))) + return; + default: + gMenu.transitionTimer--; + break; + case 255: + SetFileSelectState(STATE_NONE); + break; + } +} + +void HandleFileNew(void) { + gUnk_080FC960[gMenu.menuType](); +} + +void sub_08051090(void) { + sub_080503A8(8); + sub_08050790(); + sub_0805070C(); + sub_08051458(); + gScreen.bg.bg2xOffset = 0xff; + gScreen.affine.bg2yOffset = 0xff; + sub_080A7114(1); +} + +NONMATCH("asm/non_matching/fileScreen/sub_080610B8.inc", void sub_080610B8(void)) { +} +END_NONMATCH + +void sub_08051358(void) { + gMenu.field_0x12 = gUnk_02000000->gameLanguage == 0 ? 4 : 3; + + if (gMenu.focusCoords[0] != 0x0b || gMenu.focusCoords[1] != 0x5) { + gMenu.focusCoords[1] = 0x5; + gMenu.focusCoords[0] = 0xb; + PlaySFX(0x67); + } +} + +void sub_0805138C(void) { + gUnk_080FC9B0[gMenu.overlayType](); +} + +void sub_080513A8(void) { + CreateDialogBox(5, 0); + gMenu.overlayType = 1; +} + +void sub_080513C0(void) { + switch (sub_0807CDA4(0)) { + case 1: + gUnk_02019EE0.saveStatus[gUnk_02019EE0.unk6] = 1; + sub_080A7114(3); + break; + case 0: + break; + case -1: + sub_0805194C(gUnk_02019EE0.unk6); + CreateDialogBox(6, 0); + gMenu.transitionTimer = 0x1e; + gMenu.overlayType = 2; + break; + } +} + +void sub_0805141C(void) { + switch (gMenu.transitionTimer) { + case 0: + if (gInput.newKeys & (A_BUTTON | START_BUTTON)) { + sub_080A7114(3); + } + break; + default: + gMenu.transitionTimer--; + break; + } +} + +void sub_0805144C(void) { + SetFileSelectState(STATE_NONE); +} + +void sub_08051458(void) { + sub_080503A8(gMenu.column_idx + 9); + _DmaCopy(&gUnk_02001B40, &gUnk_02022030, 0x400); +} + +u32 sub_080514BC(u32); +void sub_08051574(u32); + +void sub_08051480(u32 c) { + CharResult result; + u32 idx; + + result = sub_080514BC(c); + idx = gMenu.unk13; + + if (result == RESULT_INVALID) { + return; + } + + if (result != RESULT_ASCII) { + c = result; + idx--; + } + + if (idx > FILENAME_LENGTH - 1) { + idx = FILENAME_LENGTH - 1; + } + + gMenu.unk13 = idx + 1; + gSave.playerName[idx] = c; + sub_08051574(0x6b); +} + +u32 sub_080514BC(u32 a1) { + u32 c; + u32 idx; + + if (gUnk_02000000->gameLanguage != 0) + return 1; + + switch (a1) { + case 0x0: + case 0xe: + case 0xf: + break; + default: + return 1; + } + + idx = gMenu.unk13; + if (idx == 0) { + return 0; + } + + c = gSave.playerName[idx - 1]; + if (c - 0xa4 < 0x29) { + switch (a1) { + case 0x0: + if (c < 0xc3) { + return c + 0x33; + } else { + return c + 10; + } + case 0xE: + return c; + case 0xF: + if (c < 0xc3) { + return 0; + } else { + return c + 10; + } + default: + return c; + } + } + + if (c - 0xcd < 10) { + switch (a1) { + case 0xf: + return c; + case 0x0: + return c + 0x29; + case 0xe: + return c - 10; + } + } + + if (c - 0xd7 < 0x29) { + switch (a1) { + default: + case 0x0: + return c - 0x33; + case 0xe: + return c - 0x33; + case 0xf: + if (c > 0xf5) { + return c - 0x29; + } + } + } + + return 0; +} + +void sub_08051574(u32 sfx) { + PlaySFX(sfx); + _DmaCopy(&gSave, &gUnk_02019EE0.saves[gUnk_02019EE0.unk6], sizeof(gUnk_02019EE0.saves[gUnk_02019EE0.unk6])); + sub_0805070C(); +} + +void HandleFileDelete(void) { + gUnk_080FC9BC[gMenu.menuType](); + sub_08050A64(gUnk_02019EE0.unk6); +} + +void FUN_080515c8(void) { + sub_080A7114(1); +} + +void sub_080515D4(void) { + u32 column_idx; + + if (gUnk_02019EE0.isTransitioning) + return; + + gMenu.transitionTimer = 4; + column_idx = gMenu.column_idx; + switch (gInput.newKeys) { + case B_BUTTON: + gMenu.column_idx = 0; // ?? + column_idx = 0; + case A_BUTTON: + case START_BUTTON: + if (column_idx == 1) { + CreateDialogBox(4, 0); + sub_080A7114(2); + PlaySFX(0x6a); + } else { + SetFileSelectState(0); + PlaySFX(0x6c); + } + break; + case DPAD_LEFT: + column_idx = 0; + break; + case DPAD_RIGHT: + column_idx = 1; + break; + } + + if (gMenu.column_idx != column_idx) { + gMenu.column_idx = column_idx; + PlaySFX(0x69); + } +} + +void sub_080516E0(void) { + if (sub_0807CDA4(1)) { + sub_0805194C(gUnk_02019EE0.unk6); + sub_08050AFC(gUnk_02019EE0.unk6); + gMenu.transitionTimer = 2; + SetFileSelectState(0); + } +} + +void HandleFileCopy(void) { + gUnk_080FC9C8[gMenu.menuType](); + sub_08050A64(gUnk_02019EE0.unk6); +} + +// regalloc +NONMATCH("asm/non_matching/fileScreen/sub_08051738.inc", void sub_08051738(void)) { + s32 temp; + u32 i; + s32 uVar3; + + gUnk_02019EE0.unk7 = 4; + uVar3 = 0; + for (i = 0; i < 3; i++) { + if (gUnk_02019EE0.saveStatus[i] == 1) { + temp = gUnk_02019EE0.unk6 ^ i; + uVar3 = BOOLCAST(temp) & 4; + } else { + uVar3++; + } + (&gMenu.selectMtx)[i] = uVar3; + } + if (uVar3 == 0) { + gMenu.transitionTimer = 0x3c; + CreateDialogBox(1, 0); + sub_080A7114(3); + } else { + sub_080A7114(1); + } + uVar3++; + gMenu.unk16 = uVar3; + gMenu.unk13 = 4; + gMenu.unk14 = uVar3; +} +END_NONMATCH + +NONMATCH("asm/non_matching/fileScreen/sub_080517B4.inc", s32 sub_080517B4(s32 a1)) { + u32 i = gUnk_02019EE0.unk7; + if (a1 != 0) { + for (; i < 5; i += a1) { + if ((&gMenu.selectMtx)[i] != 0 && (&gMenu.selectMtx)[i] != 4) + return i; + } + } + return i; +} +END_NONMATCH + +void sub_080517EC(void) { + u32 temp; + s32 delta; + + if (gUnk_02019EE0.isTransitioning) + return; + + delta = 0; + switch (gInput.newKeys) { + case DPAD_UP: + delta = -1; + break; + case DPAD_DOWN: + delta = 1; + break; + case A_BUTTON: + case START_BUTTON: + if (gUnk_02019EE0.unk7 < 3) { + CreateDialogBox(2, 0); + sub_080A7114(2); + PlaySFX(0x6a); + break; + } + // fallthrough + case B_BUTTON: + gUnk_02019EE0.unk7 = 4; + PlaySFX(0x6c); + SetFileSelectState(0); + break; + } + temp = sub_080517B4(delta); + if (temp != gUnk_02019EE0.unk7) { + gUnk_02019EE0.unk7 = temp; + PlaySFX(0x69); + } +} + +void sub_08051874(void) { + s32 temp; + gUnk_02000000->saveFileId = gUnk_02019EE0.unk7; + temp = sub_0807CDA4(0); + gUnk_02019EE0.saveStatus[gUnk_02019EE0.unk7] = temp; + switch (temp) { + case 1: + _DmaCopy(&gSave, &gUnk_02019EE0.saves[gUnk_02019EE0.unk7], + sizeof(gUnk_02019EE0.saves[gUnk_02019EE0.unk7])); + SetFileSelectState(0); + break; + case -1: + sub_0805194C(gUnk_02019EE0.unk7); + CreateDialogBox(3, 0); + gMenu.transitionTimer = 0x1e; + sub_080A7114(3); + break; + } +} + +void sub_080518E4(void) { + switch (gMenu.transitionTimer) { + case 0: + if (gInput.newKeys & (A_BUTTON | START_BUTTON)) { + SetFileSelectState(0); + } + break; + default: + gMenu.transitionTimer--; + break; + } +} + +void HandleFileStart(void) { + if (gMenu.menuType == 0) { + gMenu.menuType = 1; + gUnk_02000000->messageSpeed = gSave.messageSpeed; + gUnk_02000000->brightnessPref = gSave.brightnessPref; + gUnk_03001000.funcIndex = 2; + DoFade(5, 8); + } +} + +void sub_0805194C(u32 save_idx) { + SaveFile* save; + + gUnk_02019EE0.saveStatus[save_idx] = 0; + save = &gUnk_02019EE0.saves[save_idx]; + _DmaZero(save, sizeof(*save)); + save->messageSpeed = 1; + save->brightnessPref = 1; + save->stats.health = 24; + save->stats.maxHealth = 24; +} diff --git a/src/initializePlayer.c b/src/initializePlayer.c index 966b71fb..9443c395 100644 --- a/src/initializePlayer.c +++ b/src/initializePlayer.c @@ -5,6 +5,7 @@ #include "functions.h" #include "room.h" #include "flags.h" +#include "save.h" extern u32 gUnk_03000B80; extern u32 gUnk_03003FC0; @@ -56,7 +57,7 @@ void InitializePlayer(void) { pl->entityType.type = 1; pl->flags |= 0xa0; pl->spritePriority.b0 = 4; - pl->currentHealth = gUnk_02002A40.stats.health; + pl->currentHealth = gSave.stats.health; pl->x.HALF.HI = gScreenTransition.playerStartPos.HALF.x; pl->y.HALF.HI = gScreenTransition.playerStartPos.HALF.y; pl->animationState = gScreenTransition.playerState; diff --git a/src/input.c b/src/input.c index 64386be6..c187d598 100644 --- a/src/input.c +++ b/src/input.c @@ -6,7 +6,7 @@ static void StoreKeyInput(Input*, u32); void ReadKeyInput(void) { u32 keyInput = ~REG_KEYINPUT & KEYS_MASK; - StoreKeyInput(&gUnk_03000FF0, keyInput); + StoreKeyInput(&gInput, keyInput); } static void StoreKeyInput(Input* input, u32 keyInput) { diff --git a/src/intro.c b/src/intro.c index ac2c6e76..e33f8bfa 100644 --- a/src/intro.c +++ b/src/intro.c @@ -321,7 +321,7 @@ static u32 GetAdvanceState(void) { if (!gUnk_02000010.listenForKeyPresses) { newKeys = 0; } else { - newKeys = gUnk_03000FF0.newKeys & (A_BUTTON | START_BUTTON); + newKeys = gInput.newKeys & (A_BUTTON | START_BUTTON); } if (--gIntroState.timer == 0) { diff --git a/src/main.c b/src/main.c index 15b67996..4a136d48 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,7 @@ #include "screen.h" #include "random.h" #include "readKeyInput.h" +#include "save.h" extern void HandleIntroScreen(void); extern void HandleChooseFileScreen(void); @@ -110,7 +111,7 @@ static void sub_08055F70(void) { #define SOFT_RESET_KEYS (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON) static bool32 SoftResetKeysPressed(void) { - return (gUnk_03000FF0.heldKeys & SOFT_RESET_KEYS) == SOFT_RESET_KEYS; + return (gInput.heldKeys & SOFT_RESET_KEYS) == SOFT_RESET_KEYS; } void InitScreen(u32 screen) { diff --git a/src/manager/managerC.c b/src/manager/managerC.c index b2571591..2eec1a0d 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -7,6 +7,7 @@ #include "screen.h" #include "trig.h" #include "functions.h" +#include "save.h" typedef struct { @@ -243,7 +244,7 @@ void sub_08058B5C(ManagerC* this, u32 unk1) { gScreenTransition.playerState = unk1 & 1 ? 4 : 0; gScreenTransition.playerStartPos.HALF.x = gUnk_081082E8[unk1*3]; gScreenTransition.playerStartPos.HALF.y = gUnk_081082E8[unk1*3+1]; - gUnk_02002A40.unk7 = gUnk_081082E8[unk1*3+2]; + gSave.unk7 = gUnk_081082E8[unk1*3+2]; PlaySFX(0x121); } diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index afaf454d..f19d4990 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -5,6 +5,7 @@ #include "player.h" #include "room.h" #include "textbox.h" +#include "save.h" extern void (*gUnk_081115C0[])(Entity*); extern void (*gUnk_081115D0[])(Entity*); @@ -146,10 +147,10 @@ void sub_08068B84(Entity* this) { } void sub_08068BB4(Entity* this) { - u32 item = gUnk_02002A40.stats.itemOnA; + u32 item = gSave.stats.itemOnA; this->field_0x68.HALF.HI = item; - item = gUnk_02002A40.stats.itemOnB; + item = gSave.stats.itemOnB; *(&this->field_0x68.HALF.HI + 1) = item; } @@ -261,7 +262,7 @@ void sub_08068CFC(Entity* param_1, Entity* param_2, u32 param_3, u32 param_4) goto LABEL1; break; case 6: - if (gUnk_02002A40.stats.maxHealth < 0x50) + if (gSave.stats.maxHealth < 0x50) return; goto switchD_08068d12_caseD_0; case 7: diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index be59fbaa..f127acf4 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -6,6 +6,7 @@ #include "player.h" #include "structures.h" #include "functions.h" +#include "save.h" extern void sub_0807DD50(Entity*); extern void sub_0806F118(Entity*); @@ -214,7 +215,7 @@ void sub_080602BC(Entity* this) { if (GetInventoryValue(0x48) != 0) { index = (Random() & 1) + 2; } else { - if (gUnk_02002A40.stats.bombCount < gBombBagSizes[gUnk_02002A40.stats.bombBagType]) { + if (gSave.stats.bombCount < gBombBagSizes[gSave.stats.bombBagType]) { index = 1; } else { index = 0; @@ -241,14 +242,14 @@ void sub_08060318(void) { } void sub_08060340(void) { - gUnk_02002A40.unk490 = gUnk_02002A40.unk50; + gSave.unk490 = gSave.unk50; } u32 sub_08060354(void) { u32 iVar1; s32 iVar2; - iVar2 = gUnk_02002A40.unk50 - gUnk_02002A40.unk490; + iVar2 = gSave.unk50 - gSave.unk490; if (CheckGlobalFlag(DRUG_1) == 0) { if (4 < iVar2) { return 0x8444; diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index c337bbea..ffa5b0c6 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -8,6 +8,7 @@ #include "npc.h" #include "structures.h" #include "functions.h" +#include "save.h" extern void sub_0807DD50(Entity*); extern u32 sub_0806F5A4(u32); @@ -62,7 +63,7 @@ void sub_0806CE5C(Entity* this) { void sub_0806CE80(Entity* this) { u32 v; u32 v2; - v = gUnk_02002A40.unk8; + v = gSave.unk8; if (v == 5) { // flippers if (GetInventoryValue(0x46) == 0) { diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 01cf6481..c3084796 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -6,6 +6,7 @@ #include "npc.h" #include "structures.h" #include "functions.h" +#include "save.h" extern void sub_0807DD50(Entity*); extern u32 GetFacingDirection(Entity*, Entity*); @@ -72,7 +73,7 @@ void sub_080670B4(Entity* this) { } void sub_080670E4(Entity* this) { - ShowNPCDialogue(this, &gUnk_08110C10[gUnk_02002A40.unk8]); + ShowNPCDialogue(this, &gUnk_08110C10[gSave.unk8]); } void sub_08067100(Entity* this) { diff --git a/src/npc/postman.c b/src/npc/postman.c index 0dd9fc1a..836bb5d5 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -6,6 +6,7 @@ #include "player.h" #include "room.h" #include "structures.h" +#include "save.h" extern void sub_08060528(Entity*); extern void* GetCurrentRoomProperty(u32); @@ -194,7 +195,7 @@ void sub_080606C0(Entity* this) { void sub_080606D8(Entity* this) { s32 index; - index = gUnk_02002A40.unk8 - 2; + index = gSave.unk8 - 2; if (index < 0) { index = 0; } diff --git a/src/npc/smith.c b/src/npc/smith.c index fa912abb..430b12af 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -2,6 +2,7 @@ #include "entity.h" #include "textbox.h" #include "functions.h" +#include "save.h" extern u32 GetFacingDirection(Entity*, Entity*); extern u32 sub_0806F5A4(u32); @@ -149,10 +150,10 @@ void sub_08066218(Entity* this) { void sub_0806622C(Entity* this) { u32 index; - if (gUnk_02002A40.unk8 - 2 < 0) { + if (gSave.unk8 - 2 < 0) { index = 0; } else { - index = gUnk_02002A40.unk8 - 2; + index = gSave.unk8 - 2; } ShowNPCDialogue(this, &gUnk_08110390[index]); } diff --git a/src/npc/teachers.c b/src/npc/teachers.c index e9a316c6..2e0e99fd 100644 --- a/src/npc/teachers.c +++ b/src/npc/teachers.c @@ -2,6 +2,7 @@ #include "entity.h" #include "player.h" #include "functions.h" +#include "save.h" extern SpriteLoadData gUnk_08113910[]; extern void sub_0807DD50(Entity*); @@ -78,7 +79,7 @@ void Teachers_Head(Entity* this) { void sub_0806C70C(Entity* this) { int offset; - offset = gUnk_02002A40.unk8 - 2; + offset = gSave.unk8 - 2; if (offset < 0) offset = 0; diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 69b7eda7..3eab0a5a 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -4,6 +4,7 @@ #include "functions.h" #include "textbox.h" #include "flags.h" +#include "save.h" extern void InitializeAnimation(Entity*, u32); extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); @@ -244,7 +245,7 @@ void sub_0806AFA0(Entity* this) { } void sub_0806AFBC(Entity* this) { - int idx = gUnk_02002A40.unk8 - 2; + int idx = gSave.unk8 - 2; if (idx < 0) idx = 0; @@ -329,7 +330,7 @@ void sub_0806B134(Entity* this) { idx = 0; SetGlobalFlag(0x4a); } - if (5 < gUnk_02002A40.unk8) { + if (5 < gSave.unk8) { idx = 3; } TextboxNoOverlap(gUnk_08112C60[idx], this); diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index 34e1ea16..1c05c1a4 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -6,6 +6,7 @@ #include "flags.h" #include "structures.h" #include "functions.h" +#include "save.h" typedef struct { u8 frame1; @@ -296,7 +297,7 @@ void sub_08062048(Entity* this) { int iVar1; if ((this->entityType).subtype == 6) { - iVar1 = gUnk_02002A40.unk8 - 2; + iVar1 = gSave.unk8 - 2; if (iVar1 < 0) { iVar1 = 0; } diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 55f7b4ed..bb09a0c8 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -5,6 +5,7 @@ #include "flags.h" #include "structures.h" #include "functions.h" +#include "save.h" extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); extern void sub_0807DD50(Entity*); @@ -118,7 +119,7 @@ void sub_0806C90C(Entity* param_1, Entity* param_2) { } void sub_0806C928(Entity* this) { - ShowNPCDialogue(this, &gUnk_08113ABC[gUnk_02002A40.unk8]); + ShowNPCDialogue(this, &gUnk_08113ABC[gSave.unk8]); } void sub_0806C944(Entity* this) { diff --git a/src/object/bird.c b/src/object/bird.c index aedff14d..47a822c6 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -2,6 +2,7 @@ #include "entity.h" #include "flags.h" #include "functions.h" +#include "save.h" extern void (*const gUnk_08123EC0[])(Entity*); extern void (*const gUnk_08123EEC[])(Entity*); @@ -118,7 +119,7 @@ void sub_0809D130(Entity* this) { sub_0800445C(this); } else if (sub_08017850(this) != 0) { CreateItemEntity(0x17, 0, 0); - gUnk_02002A40.windcrests |= 0x10000000; + gSave.windcrests |= 0x10000000; DeleteThisEntity(); } } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index 4b18fa79..7bc3f717 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -6,8 +6,8 @@ #include "menu.h" #include "npc.h" #include "position.h" -#include "readKeyInput.h" #include "structures.h" +#include "fileScreen.h" extern int sub_0807A094(int); extern void LoadPalettes(const u8*, int, int); @@ -92,8 +92,8 @@ void sub_0808E818(Entity* this) { } if (gUnk_02032EC0.lastState == 0) { - if (gUnk_03000FF0.heldKeys & L_BUTTON) { - switch (gUnk_03000FF0.newKeys) { + if (gInput.heldKeys & L_BUTTON) { + switch (gInput.newKeys) { case DPAD_UP: this->animationState = 0; break; @@ -167,7 +167,7 @@ void sub_0808E988(Entity* this) { } void sub_0808E9F4(Entity* this) { - if (sub_0808E950() && gUnk_02002A40.unk6) { + if (sub_0808E950() && gSave.unk6) { this->spriteSettings.b.draw = 2; } else { this->spriteSettings.b.draw = 0; @@ -323,7 +323,7 @@ void sub_0808EBB8(Entity* this) { } static Entity* sub_0808EC80(int form) { - Entity* entityA = (Entity*) &gUnk_03003DA0; + Entity* entityA = (Entity*)&gUnk_03003DA0; Entity* entityB = entityA->next; while (entityB != entityA) { if ((entityB->entityType.type == 0x6 && entityB->entityType.subtype == 0x48) && diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index 257e748e..dac1e955 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -5,6 +5,7 @@ #include "structures.h" #include "greatFairy.h" #include "functions.h" +#include "save.h" enum { BEHAVIORS, @@ -540,10 +541,10 @@ void sub_08087424(Entity* arg0, struct_08087424* arg1) { switch (arg1->unk4) { case 0: - gUnk_02002A40.stats.arrowCount = arg1->unk4; + gSave.stats.arrowCount = arg1->unk4; break; case 1: - gUnk_02002A40.stats.bombCount = 0; + gSave.stats.bombCount = 0; break; } } diff --git a/src/object/windcrest.c b/src/object/windcrest.c index f8c804e5..ff559344 100644 --- a/src/object/windcrest.c +++ b/src/object/windcrest.c @@ -1,6 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" +#include "save.h" extern void sub_0807DD64(Entity*); extern void sub_0807DDAC(Entity*, u32); @@ -27,6 +28,6 @@ void sub_080A2124(Entity* this) { void Windcrest_Unlock(Entity* this) { PlaySFX(0x72); - gUnk_02002A40.windcrests = gUnk_02002A40.windcrests | 1 << (this->entityType.parameter + 0x18); + gSave.windcrests = gSave.windcrests | 1 << (this->entityType.parameter + 0x18); CreateFx(this, 0x46, 0); } diff --git a/src/player.c b/src/player.c index 1192f6be..f4264601 100644 --- a/src/player.c +++ b/src/player.c @@ -5,6 +5,7 @@ #include "functions.h" #include "readKeyInput.h" #include "area.h" +#include "save.h" extern const void (*const gUnk_0811B9E0[])(Entity*); extern const void (*const gUnk_0811BA60[])(Entity*); @@ -122,7 +123,7 @@ void sub_08070C3C(Entity* this) { void sub_08070CB4(Entity* this) { UpdateAnimationSingleFrame(this); if ((this->frames.all & 0x80) != 0) { - if ((gUnk_02002A40.stats.health != 0) && ((gPlayerState.flags.all & 0x8000) != 0)) { + if ((gSave.stats.health != 0) && ((gPlayerState.flags.all & 0x8000) != 0)) { gPlayerState.flags.all &= ~(0x1 | 0x4); this->spriteSettings.b.draw = 0; } else { @@ -496,7 +497,7 @@ void sub_08071380(Entity *this) { if ((gPlayerState.flags.all & 0x20) == 0) return; - if ((gUnk_03000FF0.newKeys & 0x102) == 0) + if ((gInput.newKeys & 0x102) == 0) return; if (CheckIsDungeon() || gArea.field_0x17 == 3) { diff --git a/src/room.c b/src/room.c index e2c418c6..b9f41f5c 100644 --- a/src/room.c +++ b/src/room.c @@ -9,6 +9,7 @@ #include "screen.h" #include "main.h" #include "structures.h" +#include "save.h" void sub_0804B3C4(void* arg0) { sub_0804B29C(arg0); @@ -346,7 +347,7 @@ extern EntityData gUnk_080D6734; extern EntityData gUnk_080D66F4; void sub_0804B738(void) { - if (gUnk_02002A40.unk8 > 4) { + if (gSave.unk8 > 4) { LoadRoomEntityList(&gUnk_080D6714); } // flippers @@ -364,7 +365,7 @@ u32 sub_0804B788() { extern EntityData gUnk_080D6924; void sub_0804B78C(void) { - if (gUnk_02002A40.unk8 > 7) { + if (gSave.unk8 > 7) { LoadRoomEntityList(&gUnk_080D6924); } } @@ -466,7 +467,7 @@ extern EntityData UpperInn_Din; void sub_0804B938(void) { int iVar1; - if (gUnk_02002A40.unk8 < 4) + if (gSave.unk8 < 4) return; if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { @@ -516,7 +517,7 @@ u32 sub_0804BA08() { extern EntityData gUnk_080D7038; void sub_0804BA0C(void) { - if (gUnk_02002A40.unk8 < 8) { + if (gSave.unk8 < 8) { LoadRoomEntityList(&gUnk_080D7038); } if (gRoomVars.filler[0] == 0) { @@ -536,13 +537,13 @@ extern EntityData gUnk_080D71F0; void sub_0804BA44(void) { - if (gUnk_02002A40.unk8 == 6) + if (gSave.unk8 == 6) LoadRoomEntityList(&gUnk_080D7140); - if (gUnk_02002A40.unk8 == 7) + if (gSave.unk8 == 7) LoadRoomEntityList(&gUnk_080D7170); - if ((gUnk_02002A40.unk8 < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gUnk_02002A40.unk8 < 8)) + if ((gSave.unk8 < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.unk8 < 8)) LoadRoomEntityList(&gUnk_080D71D0); else LoadRoomEntityList(&gUnk_080D71F0); @@ -1125,7 +1126,7 @@ void sub_0804C334(void) { if (CheckKinstoneFused(0x5b)) LoadRoomEntityList(&gUnk_080D9CC8); - if ((gUnk_02002A40.windcrests & 0x20000000) == 0) + if ((gSave.windcrests & 0x20000000) == 0) LoadRoomEntityList(&gUnk_080D9CE8); // pegasus boots @@ -1134,7 +1135,7 @@ void sub_0804C334(void) { } void sub_0804C384(void) { - if ((gUnk_02002A40.windcrests & 0x20000000) == 0) + if ((gSave.windcrests & 0x20000000) == 0) LoadRoomEntityList(&gUnk_080D9CE8); } @@ -1450,7 +1451,7 @@ extern EntityData gUnk_080DB238; void sub_0804C664(void) { - if (gUnk_02002A40.unk8 > 8) + if (gSave.unk8 > 8) LoadRoomEntityList(&gUnk_080DB238); sub_0801AFE4(); @@ -1932,13 +1933,13 @@ u32 sub_0804CA50() { extern EntityData gUnk_080DD364; void sub_0804CA54(void) { - if (!(gUnk_02002A40.windcrests & 0x4000000)) { + if (!(gSave.windcrests & 0x4000000)) { LoadRoomEntityList(&gUnk_080DD364); } } void sub_0804CA74(void) { - if (!(gUnk_02002A40.windcrests & 0x4000000)) { + if (!(gSave.windcrests & 0x4000000)) { LoadRoomEntityList(&gUnk_080DD364); } } @@ -2121,10 +2122,10 @@ u32 sub_0804CC6C() { } void sub_0804CC70(void) { - if (gUnk_02002A40.unk7 == 0) { + if (gSave.unk7 == 0) { goto a; } - if (gUnk_02002A40.unk7 != 2) { + if (gSave.unk7 != 2) { a: SetTileType(0x90, 0x20b, 1); SetTileType(0x90, 0x411, 1); @@ -4233,7 +4234,7 @@ void LoadHyruleTown(void) { sub_08054570(); TryLoadPrologueHyruleTown(); SetTileType(0x176, 0x66b, 1); - if (gUnk_02002A40.unk8 == 1) { + if (gSave.unk8 == 1) { sub_0801D000(0); } else { sub_08018C58(0xdb4); @@ -4258,7 +4259,7 @@ void LoadHyruleTown(void) { } else { LoadRoomEntityList(&gUnk_080EECBC); } - if (CheckKinstoneFused(0x1b) && (gUnk_02002A40.unk8 > 3)) { + if (CheckKinstoneFused(0x1b) && (gSave.unk8 > 3)) { if (!CheckGlobalFlag(NEW_HOUSE_DIN) && !CheckGlobalFlag(NEW_HOUSE_NAYRU) && !CheckGlobalFlag(NEW_HOUSE_FARORE)) { if (!CheckGlobalFlag(RENTED_HOUSE_DIN) && !CheckGlobalFlag(RENTED_HOUSE_NAYRU) && @@ -4284,7 +4285,7 @@ void LoadHyruleTown(void) { } else { LoadRoomEntityList(&gUnk_080EE9DC); } - if ((gUnk_02002A40.unk8 > 4) && !CheckKinstoneFused(0xb) && + if ((gSave.unk8 > 4) && !CheckKinstoneFused(0xb) && (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EEA5C); @@ -4293,13 +4294,13 @@ void LoadHyruleTown(void) { if (!CheckLocalFlag(0xd0) && GetInventoryValue(0x14)) { LoadRoomEntityList(&gUnk_080EEABC); } - if ((gUnk_02002A40.unk8 > 3) && CheckGlobalFlag(INLOCK)) { + if ((gSave.unk8 > 3) && CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080EEA7C); } - if ((gUnk_02002A40.unk8 < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { + if ((gSave.unk8 < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080EEA9C); } - if ((gUnk_02002A40.windcrests & 0x8000000) == 0) { + if ((gSave.windcrests & 0x8000000) == 0) { LoadRoomEntityList(&gUnk_080EEBAC); } sub_0804E150(); @@ -4309,7 +4310,7 @@ void LoadHyruleTown(void) { extern EntityData gUnk_080EEBAC; void sub_0804E130(void) { - if ((gUnk_02002A40.windcrests & 0x8000000) == 0) { + if ((gSave.windcrests & 0x8000000) == 0) { LoadRoomEntityList(&gUnk_080EEBAC); } } @@ -4587,7 +4588,7 @@ extern EntityData gUnk_080F236C; void sub_0804E52C(void) { - if (gUnk_02002A40.unk8 > 7) { + if (gSave.unk8 > 7) { LoadRoomEntityList(&gUnk_080F23BC); } // flippers @@ -4608,7 +4609,7 @@ extern EntityData gUnk_080F25C0; extern EntityData gUnk_080F2600; void sub_0804E574(void) { - switch (gUnk_02002A40.unk8) { + switch (gSave.unk8) { case 0: case 2: case 4: @@ -4836,7 +4837,7 @@ extern EntityData gUnk_080F3604; void sub_0804E8FC(void) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F36FC); - } else if (gUnk_02002A40.unk8 < 4) { + } else if (gSave.unk8 < 4) { LoadRoomEntityList(&gUnk_080F3604); } } @@ -4898,7 +4899,7 @@ void sub_0804E9D0(void) { if (CheckKinstoneFused(0x12)) { LoadRoomEntityList(&gUnk_080F3C94); } - if ((gUnk_02002A40.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F3C44); } SetTile(0x4091, 0x590, 1); @@ -5066,7 +5067,7 @@ void sub_0804EC00(void) { if (CheckKinstoneFused(0x4e)) { LoadRoomEntityList(&gUnk_080F4F10); } - if ((s32)gUnk_02002A40.windcrests > -1) { + if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } } @@ -5074,7 +5075,7 @@ void sub_0804EC00(void) { extern EntityData gUnk_080F4E10; void sub_0804EC98(void) { - if ((s32)gUnk_02002A40.windcrests > -1) { + if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } } @@ -5216,7 +5217,7 @@ void sub_0804EEBC(void) { if (!CheckLocalFlag(0x55)) { LoadRoomEntityList(&gUnk_080F57A8); } else { - if (gBombBagSizes[gUnk_02002A40.stats.bombBagType] > 0x1d) { + if (gBombBagSizes[gSave.stats.bombBagType] > 0x1d) { LoadRoomEntityList(&gUnk_080F57C8); } if (!GetInventoryValue(0xb) && !GetInventoryValue(0xc)) { @@ -5235,7 +5236,7 @@ void sub_0804EEBC(void) { LoadRoomEntityList(&gUnk_080F5848); } } - if (gUnk_02002A40.stats.filler2[5] == 0) { + if (gSave.stats.filler2[5] == 0) { LoadRoomEntityList(&gUnk_080F5788); } } @@ -5276,7 +5277,7 @@ extern EntityData gUnk_080F5DD0; extern u32 gUnk_08011C50; void sub_0804EFF8(void) { - if (gUnk_02002A40.unk8 > 7) { + if (gSave.unk8 > 7) { LoadRoomEntityList(&gUnk_080F5DD0); } if (CheckGlobalFlag(MAROYA_WAKEUP)) { @@ -5306,7 +5307,7 @@ extern EntityData gUnk_080F5F78; void sub_0804F050(void) { - if (gUnk_02002A40.unk8 > 4) { + if (gSave.unk8 > 4) { LoadRoomEntityList(&gUnk_080F5F38); } if (!CheckLocalFlag(0x92)) { @@ -5507,10 +5508,10 @@ void sub_0804F25C(void) { if (!CheckGlobalFlag(TABIDACHI)) { gArea.pMusicIndex = 0x10; } - if ((gUnk_02002A40.windcrests & 0x40000000) == 0) { + if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); } - if (gUnk_02002A40.unk8 > 3) { + if (gSave.unk8 > 3) { LoadRoomEntityList(&gUnk_080F7088); } } @@ -5518,7 +5519,7 @@ void sub_0804F25C(void) { extern EntityData gUnk_080F70D8; void sub_0804F2C8(void) { - if ((gUnk_02002A40.windcrests & 0x40000000) == 0) { + if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); } } @@ -5553,7 +5554,7 @@ extern EntityData gUnk_080F7550; void sub_0804F330(void) { sub_0805ADD8(0); - if (gUnk_02002A40.unk8 > 3) { + if (gSave.unk8 > 3) { LoadRoomEntityList(&gUnk_080F7500); } if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) { @@ -5593,7 +5594,7 @@ void sub_0804F3B0(void) { SetTile(0x4072, 0xd88, 1); SetTile(0x4096, 0xdc8, 1); } - if ((gUnk_02002A40.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F78A0); } } @@ -5798,7 +5799,7 @@ extern EntityData gUnk_080F806C; void sub_0804FA00(void) { sub_0805ADD8(0); - if ((gUnk_02002A40.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F806C); } } @@ -6025,7 +6026,7 @@ u32 sub_0804FBB8() { extern EntityData gUnk_080F9304; void sub_0804FBBC(void) { - if ((gUnk_02002A40.windcrests & 0x2000000) == 0) { + if ((gSave.windcrests & 0x2000000) == 0) { LoadRoomEntityList(&gUnk_080F9304); } } @@ -6033,7 +6034,7 @@ void sub_0804FBBC(void) { extern EntityData gUnk_080F9304; void sub_0804FBDC(void) { - if ((gUnk_02002A40.windcrests & 0x2000000) == 0) { + if ((gSave.windcrests & 0x2000000) == 0) { LoadRoomEntityList(&gUnk_080F9304); } } @@ -6440,7 +6441,7 @@ void sub_0804FE58(void) { if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080FAFE4); } - if ((gUnk_02002A40.windcrests & 0x1000000) == 0) { + if ((gSave.windcrests & 0x1000000) == 0) { LoadRoomEntityList(&gUnk_080FB004); } if (GetInventoryValue(0x2)) { @@ -6451,7 +6452,7 @@ void sub_0804FE58(void) { extern EntityData gUnk_080FB004; void sub_0804FEAC(void) { - if ((gUnk_02002A40.windcrests & 0x1000000) == 0) { + if ((gSave.windcrests & 0x1000000) == 0) { LoadRoomEntityList(&gUnk_080FB004); } } diff --git a/src/save.c b/src/save.c index c129dc9d..879e5d70 100644 --- a/src/save.c +++ b/src/save.c @@ -29,8 +29,8 @@ void sub_0807CD9C() { sub_080530C8(); } -SaveResult sub_0807CDA4(SaveState state) { - return sSaveHandlers[gMenu.storyPanelIndex](state); +SaveResult sub_0807CDA4(u32 arg0) { + return sSaveHandlers[gMenu.storyPanelIndex](arg0); } SaveResult HandleSaveInit(u32 arg0) { @@ -49,7 +49,7 @@ SaveResult HandleSaveInProgress(u32 arg0) { InitDMA(); switch (arg0) { case 0: - temp = sub_0807CF08(gUnk_02000000->saveFileId, gUnk_02002A40.filler0); + temp = sub_0807CF08(gUnk_02000000->saveFileId, gSave.filler0); break; case 1: sub_0807CF48(gUnk_02000000->saveFileId); @@ -126,7 +126,7 @@ u32 sub_0807CF1C(u8* arg0) { return sub_0807CF88(5, arg0); } -int sub_0807CF28(u32 arg0, SaveFile* arg1) { +s32 sub_0807CF28(u32 arg0, SaveFile* arg1) { return sub_0807D008(arg0, arg1); } diff --git a/src/screenDebug.c b/src/screenDebug.c index e8c3a506..a370e373 100644 --- a/src/screenDebug.c +++ b/src/screenDebug.c @@ -12,7 +12,7 @@ typedef struct { u16 unk4; } VStruct; -extern VStruct gUnk_03000FF0; +extern VStruct gInput; extern u8 gBG3Buffer[]; extern void (*const gUnk_08109A30[])(); @@ -46,7 +46,7 @@ void sub_0805FA04(void) { void sub_0805FA98(void) { int iVar1; - switch (gUnk_03000FF0.unk2) { + switch (gInput.unk2) { case 0x40: gMenu.focusCoords[1] -= 1; break; @@ -71,7 +71,7 @@ void sub_0805FA98(void) { sub_08056418(); break; default: - switch (gUnk_03000FF0.unk4) { + switch (gInput.unk4) { case 0x20: iVar1 = -1; break; diff --git a/src/textbox.c b/src/textbox.c index 2ecc7242..a4f921ee 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -4,6 +4,7 @@ #include "functions.h" #include "textbox.h" #include "structures.h" +#include "save.h" u32 sub_080564DC(void); u32 sub_080564EC(void); @@ -154,7 +155,7 @@ NONMATCH("asm/non_matching/textbox/sub_080564EC.inc", u32 sub_080564EC(void)) { dest = gUnk_02022780._5e; for (i = 0; i < 6; ++i) { - c = gUnk_02002A40.playerName[i]; + c = gSave.playerName[i]; if (c == '\0') break; dest[i] = c; diff --git a/src/tmc.code-workspace b/src/tmc.code-workspace index 0bcb3f84..9a79bbb1 100644 --- a/src/tmc.code-workspace +++ b/src/tmc.code-workspace @@ -12,7 +12,9 @@ "main.h": "c", "object.h": "c", "filescreen.h": "c", - "screen.h": "c" + "screen.h": "c", + "global.h": "c", + "player.h": "c" } } }