From be1598afbb4f2ee91e7c83f0943f1f9f85a58f14 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 3 Feb 2021 17:38:27 -0800 Subject: [PATCH] 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" } } }