diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-15 09:19:30 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-15 09:19:30 -0500 |
commit | f07f73e188f0ff81f313e74230d5ad055461966f (patch) | |
tree | a6b628ac95872fbf8fedbd38b9024cb1e41a55ba | |
parent | f12a82b068bb5871bc8ee9fd4146baa89799e645 (diff) | |
parent | a2e49c4d5c275b28b6485d404e305a98c935d022 (diff) |
Merge branch 'master' into quest_log
36 files changed, 2576 insertions, 3691 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s index d8966be61..4daca575b 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -1835,7 +1835,7 @@ _08010CE2: bl sub_8010414 bl sub_801017C bl sub_8044708 - ldr r0, _08010D4C @ =gUnknown_201C000 + ldr r0, _08010D4C @ =gDecompressionBuffer ldr r1, _08010D50 @ =gPlayerParty movs r2, 0x96 lsls r2, 1 @@ -1877,7 +1877,7 @@ _08010D3A: beq _08010D6E b _08010D9C .align 2, 0 -_08010D4C: .4byte gUnknown_201C000 +_08010D4C: .4byte gDecompressionBuffer _08010D50: .4byte gPlayerParty _08010D54: .4byte sub_800F6FC _08010D58: .4byte gTasks @@ -1940,14 +1940,14 @@ _08010DC2: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 - ldr r1, _08010DDC @ =gUnknown_201C000 + ldr r1, _08010DDC @ =gDecompressionBuffer movs r2, 0xC8 bl SendBlock ldr r1, _08010DD8 @ =gUnknown_2023E82 b _080110EA .align 2, 0 _08010DD8: .4byte gUnknown_2023E82 -_08010DDC: .4byte gUnknown_201C000 +_08010DDC: .4byte gDecompressionBuffer _08010DE0: bl GetBlockReceivedStatus movs r1, 0xF diff --git a/asm/battle_message.s b/asm/battle_message.s index 8ed0d07fd..c3d9dd018 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -1726,12 +1726,12 @@ _080D8084: movs r0, 0xD _080D8094: muls r1, r0 - ldr r0, _080D80A0 @ =gUnknown_823E558 + ldr r0, _080D80A0 @ =gTrainerClassNames adds r4, r1, r0 b _080D8382 .align 2, 0 _080D809C: .4byte gTrainers -_080D80A0: .4byte gUnknown_823E558 +_080D80A0: .4byte gTrainerClassNames _080D80A4: ldr r0, _080D80E8 @ =gTrainerBattleOpponent_A ldrh r2, [r0] diff --git a/asm/battle_transition.s b/asm/battle_transition.s index 3d56e8fbc..931c7788c 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -4942,7 +4942,7 @@ sub_80D2EA4: @ 80D2EA4 adds r2, 0x2A lsls r2, 16 asrs r2, 16 - ldr r5, _080D3004 @ =gUnknown_201C000 + ldr r5, _080D3004 @ =gDecompressionBuffer str r5, [sp] movs r3, 0 bl CreateTrainerSprite @@ -5077,7 +5077,7 @@ sub_80D2EA4: @ 80D2EA4 _080D2FF8: .4byte gReservedSpritePaletteCount _080D2FFC: .4byte gUnknown_83FA494 _080D3000: .4byte gUnknown_83FA4AE -_080D3004: .4byte gUnknown_201C000 +_080D3004: .4byte gDecompressionBuffer _080D3008: .4byte gSaveBlock2Ptr _080D300C: .4byte gSprites _080D3010: .4byte sub_80D301C diff --git a/asm/decompress.s b/asm/decompress.s index 9cff25817..8c213a8d1 100644 --- a/asm/decompress.s +++ b/asm/decompress.s @@ -27,7 +27,7 @@ LoadCompressedObjectPic: @ 800EBCC sub sp, 0x8 adds r4, r0, 0 ldr r0, [r4] - ldr r5, _0800EBFC @ =gUnknown_201C000 + ldr r5, _0800EBFC @ =gDecompressionBuffer adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] @@ -45,7 +45,7 @@ LoadCompressedObjectPic: @ 800EBCC pop {r1} bx r1 .align 2, 0 -_0800EBFC: .4byte gUnknown_201C000 +_0800EBFC: .4byte gDecompressionBuffer thumb_func_end LoadCompressedObjectPic thumb_func_start LoadCompressedObjectPicOverrideBuffer @@ -76,7 +76,7 @@ LoadCompressedObjectPalette: @ 800EC28 sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5] - ldr r4, _0800EC54 @ =gUnknown_201C000 + ldr r4, _0800EC54 @ =gDecompressionBuffer adds r1, r4, 0 bl LZ77UnCompWram str r4, [sp] @@ -93,7 +93,7 @@ LoadCompressedObjectPalette: @ 800EC28 pop {r0} bx r0 .align 2, 0 -_0800EC54: .4byte gUnknown_201C000 +_0800EC54: .4byte gDecompressionBuffer _0800EC58: .4byte 0xffff0000 thumb_func_end LoadCompressedObjectPalette diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index d07c05743..147bc65c0 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -429,7 +429,7 @@ Task_Hof_InitTeamSaveData: @ 80F2114 lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r7, _080F2140 @ =gUnknown_201C000 + ldr r7, _080F2140 @ =gDecompressionBuffer bl sub_8112450 ldr r0, _080F2144 @ =gUnknown_203AB44 ldrb r0, [r0] @@ -442,11 +442,11 @@ Task_Hof_InitTeamSaveData: @ 80F2114 bl memset b _080F2162 .align 2, 0 -_080F2140: .4byte gUnknown_201C000 +_080F2140: .4byte gDecompressionBuffer _080F2144: .4byte gUnknown_203AB44 _080F2148: movs r0, 0x3 - bl sub_80DA4FC + bl Save_LoadGameData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -483,7 +483,7 @@ _080F218C: cmp r5, 0x31 bls _080F21B2 _080F2190: - ldr r4, _080F220C @ =gUnknown_201C000 + ldr r4, _080F220C @ =gDecompressionBuffer adds r6, r4, 0 adds r4, 0x78 movs r5, 0 @@ -541,7 +541,7 @@ _080F21B2: bx r0 .align 2, 0 _080F2208: .4byte 0x000001ff -_080F220C: .4byte gUnknown_201C000 +_080F220C: .4byte gDecompressionBuffer _080F2210: .4byte gUnknown_203AB38 _080F2214: .4byte gUnknown_8419F54 _080F2218: .4byte gTasks @@ -554,7 +554,7 @@ sub_80F2220: @ 80F2220 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, _080F2254 @ =gUnknown_30053A4 + ldr r1, _080F2254 @ =gGameContinueCallback ldr r0, _080F2258 @ =CB2_DoHallOfFameScreenDontSaveData str r0, [r1] movs r0, 0x3 @@ -574,7 +574,7 @@ sub_80F2220: @ 80F2220 pop {r0} bx r0 .align 2, 0 -_080F2254: .4byte gUnknown_30053A4 +_080F2254: .4byte gGameContinueCallback _080F2258: .4byte CB2_DoHallOfFameScreenDontSaveData _080F225C: .4byte gTasks _080F2260: .4byte sub_80F2264 @@ -1609,7 +1609,7 @@ sub_80F2AA4: @ 80F2AA4 movs r3, 0xC bl sub_810F558 movs r0, 0x3 - bl sub_80DA4FC + bl Save_LoadGameData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1626,7 +1626,7 @@ _080F2AD8: .4byte 0x00000226 _080F2ADC: .4byte gTasks _080F2AE0: .4byte sub_80F30A4 _080F2AE4: - ldr r0, _080F2B2C @ =gUnknown_201C000 + ldr r0, _080F2B2C @ =gDecompressionBuffer ldr r4, _080F2B30 @ =gUnknown_203AB38 ldr r1, [r4] movs r2, 0x80 @@ -1663,7 +1663,7 @@ _080F2B1A: subs r0, r2, 0x1 b _080F2B46 .align 2, 0 -_080F2B2C: .4byte gUnknown_201C000 +_080F2B2C: .4byte gDecompressionBuffer _080F2B30: .4byte gUnknown_203AB38 _080F2B34: .4byte 0x000001ff _080F2B38: .4byte gTasks diff --git a/asm/help_system.s b/asm/help_system.s index 21ae494aa..b0d5c5f34 100644 --- a/asm/help_system.s +++ b/asm/help_system.s @@ -463,7 +463,7 @@ _0813BC58: .4byte gUnknown_203F18A thumb_func_start sub_813BC5C sub_813BC5C: @ 813BC5C push {lr} - ldr r0, _0813BC70 @ =gUnknown_201C000 + ldr r0, _0813BC70 @ =gDecompressionBuffer ldr r1, _0813BC74 @ =0x0600c000 movs r2, 0x80 lsls r2, 7 @@ -472,7 +472,7 @@ sub_813BC5C: @ 813BC5C pop {r0} bx r0 .align 2, 0 -_0813BC70: .4byte gUnknown_201C000 +_0813BC70: .4byte gDecompressionBuffer _0813BC74: .4byte 0x0600c000 thumb_func_end sub_813BC5C @@ -1586,7 +1586,7 @@ sub_813C4CC: @ 813C4CC movs r1, 0xF movs r2, 0x2 bl GenerateFontHalfRowLookupTable - ldr r1, _0813C508 @ =gUnknown_201C000 + ldr r1, _0813C508 @ =gDecompressionBuffer str r4, [sp] movs r0, 0x1A str r0, [sp, 0x4] @@ -1601,7 +1601,7 @@ sub_813C4CC: @ 813C4CC pop {r0} bx r0 .align 2, 0 -_0813C508: .4byte gUnknown_201C000 +_0813C508: .4byte gDecompressionBuffer thumb_func_end sub_813C4CC thumb_func_start sub_813C50C @@ -1617,7 +1617,7 @@ sub_813C50C: @ 813C50C ldr r2, _0813C578 @ =0x0000eeee adds r0, r2, 0 strh r0, [r1] - ldr r4, _0813C57C @ =gUnknown_201C000 + ldr r4, _0813C57C @ =gDecompressionBuffer ldr r2, _0813C580 @ =0x01001a00 adds r0, r1, 0 adds r1, r4, 0 @@ -1658,7 +1658,7 @@ sub_813C50C: @ 813C50C bx r0 .align 2, 0 _0813C578: .4byte 0x0000eeee -_0813C57C: .4byte gUnknown_201C000 +_0813C57C: .4byte gDecompressionBuffer _0813C580: .4byte 0x01001a00 thumb_func_end sub_813C50C @@ -1751,7 +1751,7 @@ sub_813C624: @ 813C624 ldr r2, _0813C640 @ =0x0000ffff adds r0, r2, 0 strh r0, [r1] - ldr r1, _0813C644 @ =gUnknown_201C000 + ldr r1, _0813C644 @ =gDecompressionBuffer ldr r2, _0813C648 @ =0x01001a00 mov r0, sp bl CpuSet @@ -1760,7 +1760,7 @@ sub_813C624: @ 813C624 bx r0 .align 2, 0 _0813C640: .4byte 0x0000ffff -_0813C644: .4byte gUnknown_201C000 +_0813C644: .4byte gDecompressionBuffer _0813C648: .4byte 0x01001a00 thumb_func_end sub_813C624 diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s index ee485cc71..b95ad8666 100644 --- a/asm/help_system_812B1E0.s +++ b/asm/help_system_812B1E0.s @@ -321,7 +321,7 @@ sub_812B40C: @ 812B40C ldrb r0, [r0] cmp r0, 0x1 beq _0812B42E - ldr r0, _0812B438 @ =gUnknown_30053A0 + ldr r0, _0812B438 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0812B440 @@ -337,7 +337,7 @@ _0812B42E: b _0812B44E .align 2, 0 _0812B434: .4byte gUnknown_203B0EE -_0812B438: .4byte gUnknown_30053A0 +_0812B438: .4byte gSaveFileStatus _0812B43C: .4byte 0x0000083c _0812B440: ldr r0, _0812B454 @ =0x0000083c diff --git a/asm/intro.s b/asm/intro.s index b3fe5a30c..af5104da3 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -306,10 +306,10 @@ c2_copyright_1: @ 80EC820 cmp r0, 0 bne _080EC858 bl sub_8054A28 - bl ResetSaveCounters + bl Save_ResetSaveCounters movs r0, 0 - bl sub_80DA4FC - ldr r0, _080EC85C @ =gUnknown_30053A0 + bl Save_LoadGameData + ldr r0, _080EC85C @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _080EC846 @@ -328,7 +328,7 @@ _080EC858: pop {r0} bx r0 .align 2, 0 -_080EC85C: .4byte gUnknown_30053A0 +_080EC85C: .4byte gSaveFileStatus _080EC860: .4byte gSaveBlock2Ptr thumb_func_end c2_copyright_1 diff --git a/asm/link.s b/asm/link.s index 90fccf86f..586ee46a8 100644 --- a/asm/link.s +++ b/asm/link.s @@ -1033,7 +1033,7 @@ _08009CC0: mov r10, r7 cmp r1, r0 bls _08009D10 - ldr r0, _08009D08 @ =gUnknown_201C000 + ldr r0, _08009D08 @ =gDecompressionBuffer mov r8, r0 movs r2, 0 adds r5, r3, 0 @@ -1058,7 +1058,7 @@ _08009CE4: b _08009D40 .align 2, 0 _08009D04: .4byte gUnknown_3000E18 -_08009D08: .4byte gUnknown_201C000 +_08009D08: .4byte gDecompressionBuffer _08009D0C: .4byte gUnknown_3003ED0 _08009D10: movs r2, 0 diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index a66dc0980..d3c5d5917 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -10960,7 +10960,7 @@ sub_811B31C: @ 811B31C lsrs r0, 16 movs r1, 0xD muls r1, r0 - ldr r0, _0811B4B4 @ =gUnknown_823E558 + ldr r0, _0811B4B4 @ =gTrainerClassNames adds r1, r0 adds r0, r6, 0 bl StringCopy @@ -11109,7 +11109,7 @@ _0811B45E: b _0811B4F0 .align 2, 0 _0811B4B0: .4byte gUnknown_2039624 -_0811B4B4: .4byte gUnknown_823E558 +_0811B4B4: .4byte gTrainerClassNames _0811B4B8: .4byte gUnknown_84594B0 _0811B4BC: .4byte gUnknown_84594C4 _0811B4C0: .4byte gStringVar4 diff --git a/asm/load_save.s b/asm/load_save.s index a8e6eff17..6d8e115d8 100644 --- a/asm/load_save.s +++ b/asm/load_save.s @@ -12,22 +12,22 @@ CheckForFlashMemory: @ 804BFE4 lsls r0, 16 cmp r0, 0 bne _0804C000 - ldr r1, _0804BFFC @ =gUnknown_3005004 + ldr r1, _0804BFFC @ =gFlashMemoryPresent movs r0, 0x1 str r0, [r1] bl InitFlashTimer b _0804C006 .align 2, 0 -_0804BFFC: .4byte gUnknown_3005004 +_0804BFFC: .4byte gFlashMemoryPresent _0804C000: - ldr r1, _0804C00C @ =gUnknown_3005004 + ldr r1, _0804C00C @ =gFlashMemoryPresent movs r0, 0 str r0, [r1] _0804C006: pop {r0} bx r0 .align 2, 0 -_0804C00C: .4byte gUnknown_3005004 +_0804C00C: .4byte gFlashMemoryPresent thumb_func_end CheckForFlashMemory thumb_func_start ClearSav2 @@ -83,7 +83,7 @@ SetSaveBlocksPointers: @ 804C058 ldr r0, _0804C098 @ =gSaveBlock1 adds r0, r1, r0 str r0, [r4] - ldr r2, _0804C09C @ =gUnknown_3005010 + ldr r2, _0804C09C @ =gPokemonStoragePtr ldr r0, _0804C0A0 @ =gPokemonStorage adds r1, r0 str r1, [r2] @@ -98,7 +98,7 @@ _0804C08C: .4byte gSaveBlock1Ptr _0804C090: .4byte gSaveBlock2Ptr _0804C094: .4byte gSaveBlock2 _0804C098: .4byte gSaveBlock1 -_0804C09C: .4byte gUnknown_3005010 +_0804C09C: .4byte gPokemonStoragePtr _0804C0A0: .4byte gPokemonStorage thumb_func_end SetSaveBlocksPointers @@ -134,7 +134,7 @@ sub_804C0A4: @ 804C0A4 ldr r0, _0804C178 @ =gHeap + 0xf24 adds r2, r7, 0 bl memcpy - ldr r6, _0804C17C @ =gUnknown_3005010 + ldr r6, _0804C17C @ =gPokemonStoragePtr ldr r1, [r6] ldr r0, _0804C180 @ =0x000083d0 mov r8, r0 @@ -195,7 +195,7 @@ _0804C16C: .4byte 0x00000f24 _0804C170: .4byte gSaveBlock1Ptr _0804C174: .4byte 0x00003d68 _0804C178: .4byte gHeap + 0xf24 -_0804C17C: .4byte gUnknown_3005010 +_0804C17C: .4byte gPokemonStoragePtr _0804C180: .4byte 0x000083d0 _0804C184: .4byte gHeap + 0x4c8c thumb_func_end sub_804C0A4 diff --git a/asm/main_menu.s b/asm/main_menu.s index e315c70cf..ae0a4c69b 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -254,7 +254,7 @@ _0800C4E8: movs r0, 0x54 movs r1, 0x7 bl SetGpuReg - ldr r0, _0800C53C @ =gUnknown_30053A0 + ldr r0, _0800C53C @ =gSaveFileStatus ldrh r4, [r0] cmp r4, 0x2 beq _0800C58C @@ -267,7 +267,7 @@ _0800C4E8: b _0800C5E8 .align 2, 0 _0800C538: .4byte gPaletteFade -_0800C53C: .4byte gUnknown_30053A0 +_0800C53C: .4byte gSaveFileStatus _0800C540: cmp r4, 0x4 beq _0800C60C diff --git a/asm/mevent.s b/asm/mevent.s index 5d90586d5..697266a39 100644 --- a/asm/mevent.s +++ b/asm/mevent.s @@ -122,7 +122,7 @@ _081436B8: .4byte gUnknown_3003F84 thumb_func_start sub_81436BC sub_81436BC: @ 81436BC push {lr} - ldr r0, _081436E0 @ =gUnknown_201C000 + ldr r0, _081436E0 @ =gDecompressionBuffer movs r2, 0x80 lsls r2, 6 movs r1, 0 @@ -137,7 +137,7 @@ sub_81436BC: @ 81436BC pop {r0} bx r0 .align 2, 0 -_081436E0: .4byte gUnknown_201C000 +_081436E0: .4byte gDecompressionBuffer _081436E4: .4byte gUnknown_202271A _081436E8: .4byte 0x00005502 thumb_func_end sub_81436BC @@ -775,7 +775,7 @@ _08143C12: strb r0, [r4, 0x8] b _08143D1A _08143C1C: - ldr r0, _08143C30 @ =gUnknown_201C000 + ldr r0, _08143C30 @ =gDecompressionBuffer bl sub_815D6B4 strb r0, [r4, 0xE] ldrb r0, [r4, 0xE] @@ -784,7 +784,7 @@ _08143C1C: strb r0, [r4, 0x8] b _08143D1A .align 2, 0 -_08143C30: .4byte gUnknown_201C000 +_08143C30: .4byte gDecompressionBuffer _08143C34: ldr r0, _08143C48 @ =gUnknown_3003F64 ldrb r0, [r0] @@ -803,7 +803,7 @@ _08143C4C: strb r0, [r4, 0x8] b _08143D1A _08143C52: - ldr r0, _08143C70 @ =gUnknown_201C000 + ldr r0, _08143C70 @ =gDecompressionBuffer bl sub_815D794 cmp r0, 0 beq _08143C78 @@ -815,7 +815,7 @@ _08143C52: strb r0, [r4, 0x8] b _08143D1A .align 2, 0 -_08143C70: .4byte gUnknown_201C000 +_08143C70: .4byte gDecompressionBuffer _08143C74: .4byte gUnknown_841DE99 _08143C78: movs r0, 0x16 diff --git a/asm/mevent_server.s b/asm/mevent_server.s index 1def33127..5772b19f4 100644 --- a/asm/mevent_server.s +++ b/asm/mevent_server.s @@ -820,7 +820,7 @@ _08144E30: .align 2, 0 _08144E48: .4byte gSaveBlock2Ptr _08144E4C: - ldr r0, _08144E68 @ =gUnknown_201C000 + ldr r0, _08144E68 @ =gDecompressionBuffer ldr r1, [r4, 0x18] movs r2, 0x80 lsls r2, 3 @@ -837,7 +837,7 @@ _08144E62: pop {r1} bx r1 .align 2, 0 -_08144E68: .4byte gUnknown_201C000 +_08144E68: .4byte gDecompressionBuffer thumb_func_end sub_8144CA0 thumb_func_start sub_8144E6C @@ -894,7 +894,7 @@ _08144EB4: sub_8144EBC: @ 8144EBC push {r4,lr} adds r4, r0, 0 - ldr r3, _08144EE4 @ =gUnknown_201C000 + ldr r3, _08144EE4 @ =gDecompressionBuffer adds r0, r4, 0x4 ldr r1, _08144EE8 @ =gSaveBlock2Ptr ldr r1, [r1] @@ -913,7 +913,7 @@ _08144EDC: pop {r1} bx r1 .align 2, 0 -_08144EE4: .4byte gUnknown_201C000 +_08144EE4: .4byte gDecompressionBuffer _08144EE8: .4byte gSaveBlock2Ptr _08144EEC: .4byte gSaveBlock1Ptr thumb_func_end sub_8144EBC diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index be001de3f..3d3ca02ea 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -6926,7 +6926,7 @@ sub_8105D64: @ 8105D64 adds r0, r1 ldr r0, [r0] mov r12, r0 - ldr r7, _08105E18 @ =gUnknown_201C000 + ldr r7, _08105E18 @ =gDecompressionBuffer movs r5, 0 movs r1, 0 _08105DA6: @@ -6988,7 +6988,7 @@ _08105E02: bx r0 .align 2, 0 _08105E14: .4byte gUnknown_843FAB0 -_08105E18: .4byte gUnknown_201C000 +_08105E18: .4byte gDecompressionBuffer thumb_func_end sub_8105D64 thumb_func_start sub_8105E1C diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 0eeb9c5cb..54abb5f87 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -8,14 +8,14 @@ thumb_func_start sub_808B9C0 sub_808B9C0: @ 808B9C0 push {lr} - ldr r1, _0808B9D0 @ =gUnknown_3005010 + ldr r1, _0808B9D0 @ =gPokemonStoragePtr ldr r1, [r1] ldr r2, _0808B9D4 @ =0x000083d0 bl memcpy pop {r0} bx r0 .align 2, 0 -_0808B9D0: .4byte gUnknown_3005010 +_0808B9D0: .4byte gPokemonStoragePtr _0808B9D4: .4byte 0x000083d0 thumb_func_end sub_808B9C0 @@ -23,25 +23,25 @@ _0808B9D4: .4byte 0x000083d0 sub_808B9D8: @ 808B9D8 push {lr} adds r1, r0, 0 - ldr r0, _0808B9EC @ =gUnknown_3005010 + ldr r0, _0808B9EC @ =gPokemonStoragePtr ldr r0, [r0] ldr r2, _0808B9F0 @ =0x000083d0 bl memcpy pop {r0} bx r0 .align 2, 0 -_0808B9EC: .4byte gUnknown_3005010 +_0808B9EC: .4byte gPokemonStoragePtr _0808B9F0: .4byte 0x000083d0 thumb_func_end sub_808B9D8 thumb_func_start StorageGetCurrentBox StorageGetCurrentBox: @ 808B9F4 - ldr r0, _0808B9FC @ =gUnknown_3005010 + ldr r0, _0808B9FC @ =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] bx lr .align 2, 0 -_0808B9FC: .4byte gUnknown_3005010 +_0808B9FC: .4byte gPokemonStoragePtr thumb_func_end StorageGetCurrentBox thumb_func_start sub_808BA00 @@ -51,14 +51,14 @@ sub_808BA00: @ 808BA00 lsrs r1, r0, 24 cmp r1, 0xD bhi _0808BA10 - ldr r0, _0808BA14 @ =gUnknown_3005010 + ldr r0, _0808BA14 @ =gPokemonStoragePtr ldr r0, [r0] strb r1, [r0] _0808BA10: pop {r0} bx r0 .align 2, 0 -_0808BA14: .4byte gUnknown_3005010 +_0808BA14: .4byte gPokemonStoragePtr thumb_func_end sub_808BA00 thumb_func_start GetBoxMonDataFromAnyBox @@ -73,7 +73,7 @@ GetBoxMonDataFromAnyBox: @ 808BA18 bhi _0808BA54 cmp r4, 0x1D bhi _0808BA54 - ldr r2, _0808BA50 @ =gUnknown_3005010 + ldr r2, _0808BA50 @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -90,7 +90,7 @@ GetBoxMonDataFromAnyBox: @ 808BA18 bl GetBoxMonData b _0808BA56 .align 2, 0 -_0808BA50: .4byte gUnknown_3005010 +_0808BA50: .4byte gPokemonStoragePtr _0808BA54: movs r0, 0 _0808BA56: @@ -112,7 +112,7 @@ SetBoxMonDataFromAnyBox: @ 808BA5C bhi _0808BA94 cmp r4, 0x1D bhi _0808BA94 - ldr r2, _0808BA9C @ =gUnknown_3005010 + ldr r2, _0808BA9C @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -133,7 +133,7 @@ _0808BA94: pop {r0} bx r0 .align 2, 0 -_0808BA9C: .4byte gUnknown_3005010 +_0808BA9C: .4byte gPokemonStoragePtr thumb_func_end SetBoxMonDataFromAnyBox thumb_func_start GetBoxMonDataFromSelectedBox @@ -143,7 +143,7 @@ GetBoxMonDataFromSelectedBox: @ 808BAA0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 - ldr r0, _0808BABC @ =gUnknown_3005010 + ldr r0, _0808BABC @ =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] adds r1, r3, 0 @@ -151,7 +151,7 @@ GetBoxMonDataFromSelectedBox: @ 808BAA0 pop {r1} bx r1 .align 2, 0 -_0808BABC: .4byte gUnknown_3005010 +_0808BABC: .4byte gPokemonStoragePtr thumb_func_end GetBoxMonDataFromSelectedBox thumb_func_start SetBoxMonDataFromSelectedBox @@ -162,7 +162,7 @@ SetBoxMonDataFromSelectedBox: @ 808BAC0 adds r3, r2, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, _0808BAE0 @ =gUnknown_3005010 + ldr r0, _0808BAE0 @ =gPokemonStoragePtr ldr r0, [r0] ldrb r0, [r0] adds r1, r4, 0 @@ -172,7 +172,7 @@ SetBoxMonDataFromSelectedBox: @ 808BAC0 pop {r0} bx r0 .align 2, 0 -_0808BAE0: .4byte gUnknown_3005010 +_0808BAE0: .4byte gPokemonStoragePtr thumb_func_end SetBoxMonDataFromSelectedBox thumb_func_start GetBoxMonNickFromAnyBox @@ -187,7 +187,7 @@ GetBoxMonNickFromAnyBox: @ 808BAE4 bhi _0808BB20 cmp r4, 0x1D bhi _0808BB20 - ldr r2, _0808BB1C @ =gUnknown_3005010 + ldr r2, _0808BB1C @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -205,7 +205,7 @@ GetBoxMonNickFromAnyBox: @ 808BAE4 bl GetBoxMonData b _0808BB24 .align 2, 0 -_0808BB1C: .4byte gUnknown_3005010 +_0808BB1C: .4byte gPokemonStoragePtr _0808BB20: movs r0, 0xFF strb r0, [r5] @@ -227,7 +227,7 @@ SetBoxMonNickFromAnyBox: @ 808BB2C bhi _0808BB62 cmp r4, 0x1D bhi _0808BB62 - ldr r2, _0808BB68 @ =gUnknown_3005010 + ldr r2, _0808BB68 @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -248,7 +248,7 @@ _0808BB62: pop {r0} bx r0 .align 2, 0 -_0808BB68: .4byte gUnknown_3005010 +_0808BB68: .4byte gPokemonStoragePtr thumb_func_end SetBoxMonNickFromAnyBox thumb_func_start GetAndCopyBoxMonDataFromAnyBox @@ -264,7 +264,7 @@ GetAndCopyBoxMonDataFromAnyBox: @ 808BB6C bhi _0808BBAC cmp r4, 0x1D bhi _0808BBAC - ldr r2, _0808BBA8 @ =gUnknown_3005010 + ldr r2, _0808BBA8 @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -282,7 +282,7 @@ GetAndCopyBoxMonDataFromAnyBox: @ 808BB6C bl GetBoxMonData b _0808BBAE .align 2, 0 -_0808BBA8: .4byte gUnknown_3005010 +_0808BBA8: .4byte gPokemonStoragePtr _0808BBAC: movs r0, 0 _0808BBAE: @@ -303,7 +303,7 @@ CopyBoxMonFromAnyBox: @ 808BBB4 bhi _0808BBEA cmp r1, 0x1D bhi _0808BBEA - ldr r0, _0808BBF0 @ =gUnknown_3005010 + ldr r0, _0808BBF0 @ =gPokemonStoragePtr ldr r0, [r0] lsls r3, r1, 2 adds r3, r1 @@ -324,7 +324,7 @@ _0808BBEA: pop {r0} bx r0 .align 2, 0 -_0808BBF0: .4byte gUnknown_3005010 +_0808BBF0: .4byte gPokemonStoragePtr thumb_func_end CopyBoxMonFromAnyBox thumb_func_start sub_808BBF4 @@ -339,7 +339,7 @@ sub_808BBF4: @ 808BBF4 bhi _0808BC2A cmp r2, 0x1D bhi _0808BC2A - ldr r0, _0808BC30 @ =gUnknown_3005010 + ldr r0, _0808BC30 @ =gPokemonStoragePtr ldr r1, [r0] lsls r3, r2, 2 adds r3, r2 @@ -360,7 +360,7 @@ _0808BC2A: pop {r0} bx r0 .align 2, 0 -_0808BC30: .4byte gUnknown_3005010 +_0808BC30: .4byte gPokemonStoragePtr thumb_func_end sub_808BBF4 thumb_func_start sub_808BC34 @@ -395,7 +395,7 @@ sub_808BC34: @ 808BC34 bhi _0808BCA0 cmp r6, 0x1D bhi _0808BCA0 - ldr r2, _0808BCB0 @ =gUnknown_3005010 + ldr r2, _0808BCB0 @ =gPokemonStoragePtr lsls r0, r7, 2 adds r0, r7 lsls r1, r0, 4 @@ -427,7 +427,7 @@ _0808BCA0: pop {r0} bx r0 .align 2, 0 -_0808BCB0: .4byte gUnknown_3005010 +_0808BCB0: .4byte gPokemonStoragePtr thumb_func_end sub_808BC34 thumb_func_start sub_808BCB4 @@ -441,7 +441,7 @@ sub_808BCB4: @ 808BCB4 bhi _0808BCE4 cmp r4, 0x1D bhi _0808BCE4 - ldr r2, _0808BCEC @ =gUnknown_3005010 + ldr r2, _0808BCEC @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -460,7 +460,7 @@ _0808BCE4: pop {r0} bx r0 .align 2, 0 -_0808BCEC: .4byte gUnknown_3005010 +_0808BCEC: .4byte gPokemonStoragePtr thumb_func_end sub_808BCB4 thumb_func_start sub_808BCF0 @@ -475,7 +475,7 @@ sub_808BCF0: @ 808BCF0 bhi _0808BD24 cmp r4, 0x1D bhi _0808BD24 - ldr r2, _0808BD2C @ =gUnknown_3005010 + ldr r2, _0808BD2C @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -495,7 +495,7 @@ _0808BD24: pop {r0} bx r0 .align 2, 0 -_0808BD2C: .4byte gUnknown_3005010 +_0808BD2C: .4byte gPokemonStoragePtr thumb_func_end sub_808BCF0 thumb_func_start GetBoxedMonPtr @@ -509,7 +509,7 @@ GetBoxedMonPtr: @ 808BD30 bhi _0808BD64 cmp r4, 0x1D bhi _0808BD64 - ldr r2, _0808BD60 @ =gUnknown_3005010 + ldr r2, _0808BD60 @ =gPokemonStoragePtr lsls r0, r3, 2 adds r0, r3 lsls r1, r0, 4 @@ -524,7 +524,7 @@ GetBoxedMonPtr: @ 808BD30 adds r0, r1 b _0808BD66 .align 2, 0 -_0808BD60: .4byte gUnknown_3005010 +_0808BD60: .4byte gPokemonStoragePtr _0808BD64: movs r0, 0 _0808BD66: @@ -543,7 +543,7 @@ GetBoxNamePtr: @ 808BD6C movs r0, 0 b _0808BD88 _0808BD7A: - ldr r0, _0808BD8C @ =gUnknown_3005010 + ldr r0, _0808BD8C @ =gPokemonStoragePtr lsls r1, r2, 3 adds r1, r2 ldr r2, _0808BD90 @ =0x00008344 @@ -554,7 +554,7 @@ _0808BD88: pop {r1} bx r1 .align 2, 0 -_0808BD8C: .4byte gUnknown_3005010 +_0808BD8C: .4byte gPokemonStoragePtr _0808BD90: .4byte 0x00008344 thumb_func_end GetBoxNamePtr @@ -568,7 +568,7 @@ sub_808BD94: @ 808BD94 movs r0, 0 b _0808BDAE _0808BDA2: - ldr r0, _0808BDB4 @ =gUnknown_3005010 + ldr r0, _0808BDB4 @ =gPokemonStoragePtr ldr r0, [r0] ldr r2, _0808BDB8 @ =0x000083c2 adds r0, r2 @@ -578,7 +578,7 @@ _0808BDAE: pop {r1} bx r1 .align 2, 0 -_0808BDB4: .4byte gUnknown_3005010 +_0808BDB4: .4byte gPokemonStoragePtr _0808BDB8: .4byte 0x000083c2 thumb_func_end sub_808BD94 @@ -593,7 +593,7 @@ sub_808BDBC: @ 808BDBC bhi _0808BDDA cmp r1, 0xF bhi _0808BDDA - ldr r0, _0808BDE0 @ =gUnknown_3005010 + ldr r0, _0808BDE0 @ =gPokemonStoragePtr ldr r0, [r0] ldr r3, _0808BDE4 @ =0x000083c2 adds r0, r3 @@ -603,7 +603,7 @@ _0808BDDA: pop {r0} bx r0 .align 2, 0 -_0808BDE0: .4byte gUnknown_3005010 +_0808BDE0: .4byte gPokemonStoragePtr _0808BDE4: .4byte 0x000083c2 thumb_func_end sub_808BDBC diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s index ef96d8e6d..fb46afb94 100644 --- a/asm/reset_save_heap.s +++ b/asm/reset_save_heap.s @@ -28,10 +28,10 @@ sub_8079B7C: @ 8079B7C strb r0, [r1] bl SetSaveBlocksPointers bl sub_8054A28 - bl ResetSaveCounters + bl Save_ResetSaveCounters movs r0, 0 - bl sub_80DA4FC - ldr r0, _08079BF8 @ =gUnknown_30053A0 + bl Save_LoadGameData + ldr r0, _08079BF8 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _08079BC4 @@ -59,7 +59,7 @@ _08079BC8: _08079BEC: .4byte 0x04000208 _08079BF0: .4byte gMain _08079BF4: .4byte 0x00000439 -_08079BF8: .4byte gUnknown_30053A0 +_08079BF8: .4byte gSaveFileStatus _08079BFC: .4byte gSaveBlock2Ptr _08079C00: .4byte gHeap _08079C04: .4byte sub_8056938 diff --git a/asm/save.s b/asm/save.s deleted file mode 100644 index 1d8d61769..000000000 --- a/asm/save.s +++ /dev/null @@ -1,2156 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ClearSaveData -ClearSaveData: @ 80D972C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080D974C @ =EraseFlashSector -_080D9732: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1F - bls _080D9732 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D974C: .4byte EraseFlashSector - thumb_func_end ClearSaveData - - thumb_func_start ResetSaveCounters -ResetSaveCounters: @ 80D9750 - ldr r0, _080D9760 @ =gUnknown_3005390 - movs r1, 0 - str r1, [r0] - ldr r0, _080D9764 @ =gUnknown_3005380 - strh r1, [r0] - ldr r0, _080D9768 @ =gUnknown_300538C - str r1, [r0] - bx lr - .align 2, 0 -_080D9760: .4byte gUnknown_3005390 -_080D9764: .4byte gUnknown_3005380 -_080D9768: .4byte gUnknown_300538C - thumb_func_end ResetSaveCounters - - thumb_func_start SetDamagedSectorBits -SetDamagedSectorBits: @ 80D976C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - movs r4, 0 - cmp r0, 0x1 - beq _080D97A0 - cmp r0, 0x1 - bgt _080D9786 - cmp r0, 0 - beq _080D978C - b _080D97C4 -_080D9786: - cmp r0, 0x2 - beq _080D97B4 - b _080D97C4 -_080D978C: - ldr r2, _080D979C @ =gUnknown_300538C - movs r1, 0x1 - lsls r1, r3 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _080D97C4 - .align 2, 0 -_080D979C: .4byte gUnknown_300538C -_080D97A0: - ldr r2, _080D97B0 @ =gUnknown_300538C - adds r1, r0, 0 - lsls r1, r3 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - b _080D97C4 - .align 2, 0 -_080D97B0: .4byte gUnknown_300538C -_080D97B4: - ldr r0, _080D97CC @ =gUnknown_300538C - movs r1, 0x1 - lsls r1, r3 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _080D97C4 - movs r4, 0x1 -_080D97C4: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D97CC: .4byte gUnknown_300538C - thumb_func_end SetDamagedSectorBits - - thumb_func_start save_write_to_flash -save_write_to_flash: @ 80D97D0 - push {r4-r7,lr} - adds r7, r1, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _080D97F4 @ =gUnknown_3005394 - ldr r0, _080D97F8 @ =gUnknown_2039A38 - str r0, [r1] - ldr r0, _080D97FC @ =0x0000ffff - cmp r2, r0 - beq _080D9800 - adds r0, r2, 0 - adds r1, r7, 0 - bl HandleWriteSector - lsls r0, 24 - lsrs r5, r0, 24 - b _080D9852 - .align 2, 0 -_080D97F4: .4byte gUnknown_3005394 -_080D97F8: .4byte gUnknown_2039A38 -_080D97FC: .4byte 0x0000ffff -_080D9800: - ldr r1, _080D985C @ =gUnknown_3005388 - ldr r5, _080D9860 @ =gUnknown_3005380 - ldrh r0, [r5] - strh r0, [r1] - ldr r1, _080D9864 @ =gUnknown_3005384 - ldr r6, _080D9868 @ =gUnknown_3005390 - ldr r4, [r6] - str r4, [r1] - adds r0, 0x1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, 0xE - bl __umodsi3 - strh r0, [r5] - adds r4, 0x1 - str r4, [r6] - movs r5, 0x1 - movs r4, 0 -_080D9826: - adds r0, r4, 0 - adds r1, r7, 0 - bl HandleWriteSector - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _080D9826 - ldr r0, _080D986C @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080D9852 - movs r5, 0xFF - ldr r1, _080D9860 @ =gUnknown_3005380 - ldr r0, _080D985C @ =gUnknown_3005388 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080D9868 @ =gUnknown_3005390 - ldr r0, _080D9864 @ =gUnknown_3005384 - ldr r0, [r0] - str r0, [r1] -_080D9852: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080D985C: .4byte gUnknown_3005388 -_080D9860: .4byte gUnknown_3005380 -_080D9864: .4byte gUnknown_3005384 -_080D9868: .4byte gUnknown_3005390 -_080D986C: .4byte gUnknown_300538C - thumb_func_end save_write_to_flash - - thumb_func_start HandleWriteSector -HandleWriteSector: @ 80D9870 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080D993C @ =gUnknown_3005380 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _080D9940 @ =gUnknown_3005390 - ldr r1, [r2] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r6, 3 - adds r0, r4 - ldr r1, [r0] - mov r10, r1 - ldrh r4, [r0, 0x4] - movs r3, 0 - mov r9, r2 - ldr r2, _080D9944 @ =gUnknown_3005394 - mov r12, r2 - mov r8, r12 - movs r2, 0 - ldr r1, _080D9948 @ =0x00000fff -_080D98C2: - mov r7, r8 - ldr r0, [r7] - adds r0, r3 - strb r2, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bls _080D98C2 - mov r0, r12 - ldr r1, [r0] - ldr r2, _080D994C @ =0x00000ff4 - adds r0, r1, r2 - strh r6, [r0] - ldr r3, _080D9950 @ =0x00000ff8 - adds r2, r1, r3 - ldr r0, _080D9954 @ =0x08012025 - str r0, [r2] - ldr r6, _080D9958 @ =0x00000ffc - adds r1, r6 - mov r7, r9 - ldr r0, [r7] - str r0, [r1] - movs r3, 0 - lsls r5, 24 - cmp r3, r4 - bcs _080D9910 - mov r2, r12 -_080D98FA: - ldr r1, [r2] - adds r1, r3 - mov r6, r10 - adds r0, r6, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080D98FA -_080D9910: - mov r0, r10 - adds r1, r4, 0 - bl CalculateChecksum - ldr r1, _080D9944 @ =gUnknown_3005394 - ldr r1, [r1] - ldr r7, _080D995C @ =0x00000ff6 - adds r2, r1, r7 - strh r0, [r2] - lsrs r0, r5, 24 - bl TryWriteSector - lsls r0, 24 - lsrs r0, 24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080D993C: .4byte gUnknown_3005380 -_080D9940: .4byte gUnknown_3005390 -_080D9944: .4byte gUnknown_3005394 -_080D9948: .4byte 0x00000fff -_080D994C: .4byte 0x00000ff4 -_080D9950: .4byte 0x00000ff8 -_080D9954: .4byte 0x08012025 -_080D9958: .4byte 0x00000ffc -_080D995C: .4byte 0x00000ff6 - thumb_func_end HandleWriteSector - - thumb_func_start HandleWriteSectorNBytes -HandleWriteSectorNBytes: @ 80D9960 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080D99C4 @ =gUnknown_2039A38 - movs r3, 0 - movs r6, 0 - ldr r1, _080D99C8 @ =0x00000fff -_080D9974: - adds r0, r4, r3 - strb r6, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bls _080D9974 - ldr r0, _080D99CC @ =0x00000ff8 - adds r1, r4, r0 - ldr r0, _080D99D0 @ =0x08012025 - str r0, [r1] - movs r3, 0 - cmp r3, r2 - bcs _080D99A2 -_080D9990: - adds r1, r4, r3 - adds r0, r5, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r2 - bcc _080D9990 -_080D99A2: - adds r0, r5, 0 - adds r1, r2, 0 - bl CalculateChecksum - ldr r2, _080D99D4 @ =0x00000ff4 - adds r1, r4, r2 - strh r0, [r1] - adds r0, r7, 0 - adds r1, r4, 0 - bl TryWriteSector - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080D99C4: .4byte gUnknown_2039A38 -_080D99C8: .4byte 0x00000fff -_080D99CC: .4byte 0x00000ff8 -_080D99D0: .4byte 0x08012025 -_080D99D4: .4byte 0x00000ff4 - thumb_func_end HandleWriteSectorNBytes - - thumb_func_start TryWriteSector -TryWriteSector: @ 80D99D8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl ProgramFlashSectorAndVerify - cmp r0, 0 - bne _080D99F4 - movs r0, 0x1 - adds r1, r4, 0 - bl SetDamagedSectorBits - movs r0, 0x1 - b _080D99FE -_080D99F4: - movs r0, 0 - adds r1, r4, 0 - bl SetDamagedSectorBits - movs r0, 0xFF -_080D99FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryWriteSector - - thumb_func_start RestoreSaveBackupVarsAndIncrement -RestoreSaveBackupVarsAndIncrement: @ 80D9A04 - push {r4-r6,lr} - ldr r1, _080D9A40 @ =gUnknown_3005394 - ldr r0, _080D9A44 @ =gUnknown_2039A38 - str r0, [r1] - ldr r1, _080D9A48 @ =gUnknown_3005388 - ldr r5, _080D9A4C @ =gUnknown_3005380 - ldrh r0, [r5] - strh r0, [r1] - ldr r1, _080D9A50 @ =gUnknown_3005384 - ldr r6, _080D9A54 @ =gUnknown_3005390 - ldr r4, [r6] - str r4, [r1] - adds r0, 0x1 - strh r0, [r5] - ldrh r0, [r5] - movs r1, 0xE - bl __umodsi3 - strh r0, [r5] - adds r4, 0x1 - str r4, [r6] - ldr r1, _080D9A58 @ =gUnknown_3005398 - movs r0, 0 - strh r0, [r1] - ldr r1, _080D9A5C @ =gUnknown_300538C - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080D9A40: .4byte gUnknown_3005394 -_080D9A44: .4byte gUnknown_2039A38 -_080D9A48: .4byte gUnknown_3005388 -_080D9A4C: .4byte gUnknown_3005380 -_080D9A50: .4byte gUnknown_3005384 -_080D9A54: .4byte gUnknown_3005390 -_080D9A58: .4byte gUnknown_3005398 -_080D9A5C: .4byte gUnknown_300538C - thumb_func_end RestoreSaveBackupVarsAndIncrement - - thumb_func_start RestoreSaveBackupVars -RestoreSaveBackupVars: @ 80D9A60 - ldr r1, _080D9A84 @ =gUnknown_3005394 - ldr r0, _080D9A88 @ =gUnknown_2039A38 - str r0, [r1] - ldr r1, _080D9A8C @ =gUnknown_3005388 - ldr r0, _080D9A90 @ =gUnknown_3005380 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080D9A94 @ =gUnknown_3005384 - ldr r0, _080D9A98 @ =gUnknown_3005390 - ldr r0, [r0] - str r0, [r1] - ldr r1, _080D9A9C @ =gUnknown_3005398 - movs r0, 0 - strh r0, [r1] - ldr r1, _080D9AA0 @ =gUnknown_300538C - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_080D9A84: .4byte gUnknown_3005394 -_080D9A88: .4byte gUnknown_2039A38 -_080D9A8C: .4byte gUnknown_3005388 -_080D9A90: .4byte gUnknown_3005380 -_080D9A94: .4byte gUnknown_3005384 -_080D9A98: .4byte gUnknown_3005390 -_080D9A9C: .4byte gUnknown_3005398 -_080D9AA0: .4byte gUnknown_300538C - thumb_func_end RestoreSaveBackupVars - - thumb_func_start sub_80D9AA4 -sub_80D9AA4: @ 80D9AA4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080D9AE0 @ =gUnknown_3005398 - ldrh r2, [r4] - subs r0, 0x1 - cmp r2, r0 - bge _080D9AF8 - movs r5, 0x1 - adds r0, r2, 0 - bl HandleWriteSector - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldr r0, _080D9AE4 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080D9AFA - movs r5, 0xFF - ldr r1, _080D9AE8 @ =gUnknown_3005380 - ldr r0, _080D9AEC @ =gUnknown_3005388 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080D9AF0 @ =gUnknown_3005390 - ldr r0, _080D9AF4 @ =gUnknown_3005384 - ldr r0, [r0] - str r0, [r1] - b _080D9AFA - .align 2, 0 -_080D9AE0: .4byte gUnknown_3005398 -_080D9AE4: .4byte gUnknown_300538C -_080D9AE8: .4byte gUnknown_3005380 -_080D9AEC: .4byte gUnknown_3005388 -_080D9AF0: .4byte gUnknown_3005390 -_080D9AF4: .4byte gUnknown_3005384 -_080D9AF8: - movs r5, 0xFF -_080D9AFA: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80D9AA4 - - thumb_func_start sub_80D9B04 -sub_80D9B04: @ 80D9B04 - push {r4,lr} - lsls r0, 16 - movs r4, 0x1 - ldr r2, _080D9B38 @ =0xffff0000 - adds r0, r2 - lsrs r0, 16 - bl ClearSaveData_2 - ldr r0, _080D9B3C @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080D9B2E - movs r4, 0xFF - ldr r1, _080D9B40 @ =gUnknown_3005380 - ldr r0, _080D9B44 @ =gUnknown_3005388 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _080D9B48 @ =gUnknown_3005390 - ldr r0, _080D9B4C @ =gUnknown_3005384 - ldr r0, [r0] - str r0, [r1] -_080D9B2E: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D9B38: .4byte 0xffff0000 -_080D9B3C: .4byte gUnknown_300538C -_080D9B40: .4byte gUnknown_3005380 -_080D9B44: .4byte gUnknown_3005388 -_080D9B48: .4byte gUnknown_3005390 -_080D9B4C: .4byte gUnknown_3005384 - thumb_func_end sub_80D9B04 - - thumb_func_start ClearSaveData_2 -ClearSaveData_2: @ 80D9B50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r1, 0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080D9C1C @ =gUnknown_3005380 - ldrh r0, [r0] - adds r0, r6, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r5, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _080D9C20 @ =gUnknown_3005390 - ldr r1, [r2] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r6, 3 - adds r0, r4 - ldr r1, [r0] - mov r10, r1 - ldrh r3, [r0, 0x4] - movs r4, 0 - mov r9, r2 - ldr r2, _080D9C24 @ =gUnknown_3005394 - mov r12, r2 - mov r8, r12 - movs r2, 0 - ldr r1, _080D9C28 @ =0x00000fff -_080D9BA2: - mov r7, r8 - ldr r0, [r7] - adds r0, r4 - strb r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bls _080D9BA2 - mov r0, r12 - ldr r1, [r0] - ldr r2, _080D9C2C @ =0x00000ff4 - adds r0, r1, r2 - strh r6, [r0] - ldr r6, _080D9C30 @ =0x00000ff8 - adds r2, r1, r6 - ldr r0, _080D9C34 @ =0x08012025 - str r0, [r2] - ldr r7, _080D9C38 @ =0x00000ffc - adds r1, r7 - mov r2, r9 - ldr r0, [r2] - str r0, [r1] - movs r4, 0 - lsls r6, r5, 24 - mov r8, r6 - cmp r4, r3 - bcs _080D9BF2 - mov r2, r12 -_080D9BDC: - ldr r1, [r2] - adds r1, r4 - mov r7, r10 - adds r0, r7, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r3 - bcc _080D9BDC -_080D9BF2: - mov r0, r10 - adds r1, r3, 0 - bl CalculateChecksum - ldr r1, _080D9C24 @ =gUnknown_3005394 - ldr r1, [r1] - ldr r2, _080D9C3C @ =0x00000ff6 - adds r1, r2 - strh r0, [r1] - ldr r0, _080D9C40 @ =EraseFlashSector - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - movs r6, 0x1 - movs r4, 0 - ldr r7, _080D9C44 @ =0x00000ff7 - mov r9, r7 - ldr r7, _080D9C48 @ =ProgramFlashByte - b _080D9C52 - .align 2, 0 -_080D9C1C: .4byte gUnknown_3005380 -_080D9C20: .4byte gUnknown_3005390 -_080D9C24: .4byte gUnknown_3005394 -_080D9C28: .4byte 0x00000fff -_080D9C2C: .4byte 0x00000ff4 -_080D9C30: .4byte 0x00000ff8 -_080D9C34: .4byte 0x08012025 -_080D9C38: .4byte 0x00000ffc -_080D9C3C: .4byte 0x00000ff6 -_080D9C40: .4byte EraseFlashSector -_080D9C44: .4byte 0x00000ff7 -_080D9C48: .4byte ProgramFlashByte -_080D9C4C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080D9C52: - cmp r4, r9 - bhi _080D9C70 - ldr r0, _080D9C7C @ =gUnknown_3005394 - ldr r0, [r0] - adds r0, r4 - ldrb r2, [r0] - ldr r3, [r7] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - beq _080D9C4C - movs r6, 0xFF -_080D9C70: - cmp r6, 0xFF - bne _080D9C80 - mov r0, r8 - lsrs r1, r0, 24 - b _080D9CD8 - .align 2, 0 -_080D9C7C: .4byte gUnknown_3005394 -_080D9C80: - movs r6, 0x1 - movs r4, 0 - ldr r1, _080D9C8C @ =ProgramFlashByte - mov r9, r1 - ldr r7, _080D9C90 @ =0x00000ff9 - b _080D9C9A - .align 2, 0 -_080D9C8C: .4byte ProgramFlashByte -_080D9C90: .4byte 0x00000ff9 -_080D9C94: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080D9C9A: - cmp r4, 0x6 - bhi _080D9CBC - adds r1, r4, r7 - ldr r0, _080D9CD0 @ =gUnknown_3005394 - ldr r0, [r0] - adds r0, r4, r0 - adds r0, r7 - ldrb r2, [r0] - mov r0, r9 - ldr r3, [r0] - adds r0, r5, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - beq _080D9C94 - movs r6, 0xFF -_080D9CBC: - cmp r6, 0xFF - beq _080D9CD4 - mov r2, r8 - lsrs r1, r2, 24 - movs r0, 0x1 - bl SetDamagedSectorBits - movs r0, 0x1 - b _080D9CE0 - .align 2, 0 -_080D9CD0: .4byte gUnknown_3005394 -_080D9CD4: - mov r6, r8 - lsrs r1, r6, 24 -_080D9CD8: - movs r0, 0 - bl SetDamagedSectorBits - movs r0, 0xFF -_080D9CE0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ClearSaveData_2 - - thumb_func_start sub_80D9CF0 -sub_80D9CF0: @ 80D9CF0 - push {r4-r6,lr} - lsls r0, 16 - ldr r6, _080D9D4C @ =gUnknown_3005380 - lsrs r0, 16 - ldrh r1, [r6] - adds r0, r1 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _080D9D50 @ =gUnknown_3005390 - ldr r1, [r5] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r3, _080D9D54 @ =ProgramFlashByte - ldr r1, _080D9D58 @ =0x00000ff8 - ldr r0, _080D9D5C @ =gUnknown_3005394 - ldr r0, [r0] - adds r0, r1 - ldrb r2, [r0] - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - bne _080D9D60 - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - bl SetDamagedSectorBits - movs r0, 0x1 - b _080D9D78 - .align 2, 0 -_080D9D4C: .4byte gUnknown_3005380 -_080D9D50: .4byte gUnknown_3005390 -_080D9D54: .4byte ProgramFlashByte -_080D9D58: .4byte 0x00000ff8 -_080D9D5C: .4byte gUnknown_3005394 -_080D9D60: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0 - bl SetDamagedSectorBits - ldr r0, _080D9D80 @ =gUnknown_3005388 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, _080D9D84 @ =gUnknown_3005384 - ldr r0, [r0] - str r0, [r5] - movs r0, 0xFF -_080D9D78: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080D9D80: .4byte gUnknown_3005388 -_080D9D84: .4byte gUnknown_3005384 - thumb_func_end sub_80D9CF0 - - thumb_func_start sub_80D9D88 -sub_80D9D88: @ 80D9D88 - push {r4-r6,lr} - lsls r0, 16 - ldr r6, _080D9DDC @ =gUnknown_3005380 - lsrs r0, 16 - ldrh r1, [r6] - adds r0, r1 - subs r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0xE - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _080D9DE0 @ =gUnknown_3005390 - ldr r1, [r5] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080D9DE4 @ =ProgramFlashByte - ldr r1, _080D9DE8 @ =0x00000ff8 - ldr r3, [r0] - adds r0, r4, 0 - movs r2, 0x25 - bl _call_via_r3 - lsls r0, 16 - cmp r0, 0 - bne _080D9DEC - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - bl SetDamagedSectorBits - movs r0, 0x1 - b _080D9E04 - .align 2, 0 -_080D9DDC: .4byte gUnknown_3005380 -_080D9DE0: .4byte gUnknown_3005390 -_080D9DE4: .4byte ProgramFlashByte -_080D9DE8: .4byte 0x00000ff8 -_080D9DEC: - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0 - bl SetDamagedSectorBits - ldr r0, _080D9E0C @ =gUnknown_3005388 - ldrh r0, [r0] - strh r0, [r6] - ldr r0, _080D9E10 @ =gUnknown_3005384 - ldr r0, [r0] - str r0, [r5] - movs r0, 0xFF -_080D9E04: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080D9E0C: .4byte gUnknown_3005388 -_080D9E10: .4byte gUnknown_3005384 - thumb_func_end sub_80D9D88 - - thumb_func_start sub_80D9E14 -sub_80D9E14: @ 80D9E14 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080D9E2C @ =gUnknown_3005394 - ldr r0, _080D9E30 @ =gUnknown_2039A38 - str r0, [r1] - ldr r0, _080D9E34 @ =0x0000ffff - cmp r4, r0 - beq _080D9E38 - movs r5, 0xFF - b _080D9E4A - .align 2, 0 -_080D9E2C: .4byte gUnknown_3005394 -_080D9E30: .4byte gUnknown_2039A38 -_080D9E34: .4byte 0x0000ffff -_080D9E38: - adds r0, r6, 0 - bl GetSaveValidStatus - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80D9E54 -_080D9E4A: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80D9E14 - - thumb_func_start sub_80D9E54 -sub_80D9E54: @ 80D9E54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - ldr r0, _080D9EF0 @ =gUnknown_3005390 - ldr r1, [r0] - movs r0, 0x1 - ands r1, r0 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 17 - lsrs r7, r0, 16 - movs r5, 0 - ldr r6, _080D9EF4 @ =gUnknown_3005394 -_080D9E70: - adds r0, r5, r7 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r6] - bl DoReadFlashWholeSection - ldr r0, [r6] - ldr r1, _080D9EF8 @ =0x00000ff4 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - bne _080D9E8C - ldr r0, _080D9EFC @ =gUnknown_3005380 - strh r5, [r0] -_080D9E8C: - ldr r0, [r6] - lsls r1, 3 - mov r2, r8 - adds r4, r1, r2 - ldrh r1, [r4, 0x4] - bl CalculateChecksum - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, [r6] - ldr r1, _080D9F00 @ =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _080D9F04 @ =0x08012025 - adds r5, 0x1 - cmp r1, r0 - bne _080D9EDC - ldr r1, _080D9F08 @ =0x00000ff6 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _080D9EDC - movs r2, 0 - ldrh r0, [r4, 0x4] - cmp r2, r0 - bcs _080D9EDC - adds r3, r4, 0 - ldr r4, _080D9EF4 @ =gUnknown_3005394 -_080D9EC4: - ldr r1, [r3] - adds r1, r2 - ldr r0, [r4] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r3, 0x4] - cmp r2, r1 - bcc _080D9EC4 -_080D9EDC: - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080D9E70 - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080D9EF0: .4byte gUnknown_3005390 -_080D9EF4: .4byte gUnknown_3005394 -_080D9EF8: .4byte 0x00000ff4 -_080D9EFC: .4byte gUnknown_3005380 -_080D9F00: .4byte 0x00000ff8 -_080D9F04: .4byte 0x08012025 -_080D9F08: .4byte 0x00000ff6 - thumb_func_end sub_80D9E54 - - thumb_func_start GetSaveValidStatus -GetSaveValidStatus: @ 80D9F0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - movs r6, 0 - movs r5, 0 - movs r4, 0 - ldr r7, _080D9F98 @ =gUnknown_3005394 -_080D9F28: - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, [r7] - bl DoReadFlashWholeSection - ldr r2, [r7] - ldr r1, _080D9F9C @ =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _080D9FA0 @ =0x08012025 - cmp r1, r0 - bne _080D9F78 - movs r5, 0x1 - ldr r3, _080D9FA4 @ =0x00000ff4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, 3 - add r0, r10 - ldrh r1, [r0, 0x4] - adds r0, r2, 0 - bl CalculateChecksum - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, [r7] - ldr r3, _080D9FA8 @ =0x00000ff6 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _080D9F78 - ldr r2, _080D9FAC @ =0x00000ffc - adds r0, r1, r2 - ldr r0, [r0] - mov r8, r0 - subs r3, 0x2 - adds r1, r3 - adds r0, r5, 0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_080D9F78: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _080D9F28 - cmp r5, 0 - beq _080D9FB4 - ldr r0, _080D9FB0 @ =0x00003fff - movs r1, 0xFF - str r1, [sp] - cmp r6, r0 - bne _080D9FB8 - movs r2, 0x1 - str r2, [sp] - b _080D9FB8 - .align 2, 0 -_080D9F98: .4byte gUnknown_3005394 -_080D9F9C: .4byte 0x00000ff8 -_080D9FA0: .4byte 0x08012025 -_080D9FA4: .4byte 0x00000ff4 -_080D9FA8: .4byte 0x00000ff6 -_080D9FAC: .4byte 0x00000ffc -_080D9FB0: .4byte 0x00003fff -_080D9FB4: - movs r3, 0 - str r3, [sp] -_080D9FB8: - movs r6, 0 - movs r5, 0 - movs r4, 0 - ldr r7, _080DA030 @ =gUnknown_3005394 -_080D9FC0: - adds r0, r4, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r7] - bl DoReadFlashWholeSection - ldr r2, [r7] - ldr r1, _080DA034 @ =0x00000ff8 - adds r0, r2, r1 - ldr r1, [r0] - ldr r0, _080DA038 @ =0x08012025 - cmp r1, r0 - bne _080DA014 - movs r5, 0x1 - ldr r3, _080DA03C @ =0x00000ff4 - adds r0, r2, r3 - ldrh r0, [r0] - lsls r0, 3 - add r0, r10 - ldrh r1, [r0, 0x4] - adds r0, r2, 0 - bl CalculateChecksum - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, [r7] - ldr r3, _080DA040 @ =0x00000ff6 - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _080DA014 - ldr r2, _080DA044 @ =0x00000ffc - adds r0, r1, r2 - ldr r0, [r0] - mov r9, r0 - subs r3, 0x2 - adds r1, r3 - adds r0, r5, 0 - ldrh r1, [r1] - lsls r0, r1 - orrs r6, r0 -_080DA014: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xD - bls _080D9FC0 - cmp r5, 0 - beq _080DA04C - ldr r0, _080DA048 @ =0x00003fff - movs r1, 0xFF - cmp r6, r0 - bne _080DA04E - movs r1, 0x1 - b _080DA04E - .align 2, 0 -_080DA030: .4byte gUnknown_3005394 -_080DA034: .4byte 0x00000ff8 -_080DA038: .4byte 0x08012025 -_080DA03C: .4byte 0x00000ff4 -_080DA040: .4byte 0x00000ff6 -_080DA044: .4byte 0x00000ffc -_080DA048: .4byte 0x00003fff -_080DA04C: - movs r1, 0 -_080DA04E: - ldr r0, [sp] - cmp r0, 0x1 - bne _080DA0C0 - cmp r1, 0x1 - bne _080DA0B0 - movs r0, 0x1 - negs r0, r0 - cmp r8, r0 - bne _080DA066 - mov r1, r9 - cmp r1, 0 - beq _080DA070 -_080DA066: - mov r2, r8 - cmp r2, 0 - bne _080DA094 - cmp r9, r0 - bne _080DA094 -_080DA070: - mov r1, r8 - adds r1, 0x1 - mov r0, r9 - adds r0, 0x1 - cmp r1, r0 - bcs _080DA088 - ldr r0, _080DA084 @ =gUnknown_3005390 - mov r3, r9 - b _080DA0A8 - .align 2, 0 -_080DA084: .4byte gUnknown_3005390 -_080DA088: - ldr r0, _080DA090 @ =gUnknown_3005390 - mov r1, r8 - str r1, [r0] - b _080DA0D8 - .align 2, 0 -_080DA090: .4byte gUnknown_3005390 -_080DA094: - cmp r8, r9 - bcs _080DA0A4 - ldr r0, _080DA0A0 @ =gUnknown_3005390 - mov r2, r9 - str r2, [r0] - b _080DA0D8 - .align 2, 0 -_080DA0A0: .4byte gUnknown_3005390 -_080DA0A4: - ldr r0, _080DA0AC @ =gUnknown_3005390 - mov r3, r8 -_080DA0A8: - str r3, [r0] - b _080DA0D8 - .align 2, 0 -_080DA0AC: .4byte gUnknown_3005390 -_080DA0B0: - ldr r0, _080DA0BC @ =gUnknown_3005390 - mov r2, r8 - str r2, [r0] - cmp r1, 0xFF - beq _080DA0D0 - b _080DA0D8 - .align 2, 0 -_080DA0BC: .4byte gUnknown_3005390 -_080DA0C0: - cmp r1, 0x1 - bne _080DA0DC - ldr r0, _080DA0D4 @ =gUnknown_3005390 - mov r3, r9 - str r3, [r0] - ldr r0, [sp] - cmp r0, 0xFF - bne _080DA0D8 -_080DA0D0: - movs r0, 0xFF - b _080DA108 - .align 2, 0 -_080DA0D4: .4byte gUnknown_3005390 -_080DA0D8: - movs r0, 0x1 - b _080DA108 -_080DA0DC: - ldr r2, [sp] - cmp r2, 0 - bne _080DA0FC - cmp r1, 0 - bne _080DA0FC - ldr r0, _080DA0F4 @ =gUnknown_3005390 - str r1, [r0] - ldr r0, _080DA0F8 @ =gUnknown_3005380 - strh r1, [r0] - movs r0, 0 - b _080DA108 - .align 2, 0 -_080DA0F4: .4byte gUnknown_3005390 -_080DA0F8: .4byte gUnknown_3005380 -_080DA0FC: - ldr r0, _080DA118 @ =gUnknown_3005390 - movs r1, 0 - str r1, [r0] - ldr r0, _080DA11C @ =gUnknown_3005380 - strh r1, [r0] - movs r0, 0x2 -_080DA108: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080DA118: .4byte gUnknown_3005390 -_080DA11C: .4byte gUnknown_3005380 - thumb_func_end GetSaveValidStatus - - thumb_func_start sub_80DA120 -sub_80DA120: @ 80DA120 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - ldr r5, _080DA174 @ =gUnknown_2039A38 - adds r1, r5, 0 - bl DoReadFlashWholeSection - ldr r1, _080DA178 @ =0x00000ff8 - adds r0, r5, r1 - ldr r1, [r0] - ldr r0, _080DA17C @ =0x08012025 - cmp r1, r0 - bne _080DA188 - adds r0, r5, 0 - adds r1, r4, 0 - bl CalculateChecksum - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080DA180 @ =0x00000ff4 - adds r1, r5, r2 - ldrh r1, [r1] - cmp r1, r0 - bne _080DA184 - movs r2, 0 - cmp r2, r4 - bcs _080DA16E -_080DA15C: - adds r1, r6, r2 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r4 - bcc _080DA15C -_080DA16E: - movs r0, 0x1 - b _080DA18A - .align 2, 0 -_080DA174: .4byte gUnknown_2039A38 -_080DA178: .4byte 0x00000ff8 -_080DA17C: .4byte 0x08012025 -_080DA180: .4byte 0x00000ff4 -_080DA184: - movs r0, 0x2 - b _080DA18A -_080DA188: - movs r0, 0 -_080DA18A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80DA120 - - thumb_func_start DoReadFlashWholeSection -DoReadFlashWholeSection: @ 80DA190 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - bl ReadFlash - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end DoReadFlashWholeSection - - thumb_func_start CalculateChecksum -CalculateChecksum: @ 80DA1A8 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - movs r2, 0 - movs r3, 0 - lsrs r1, 18 - cmp r2, r1 - bcs _080DA1C6 -_080DA1B8: - ldm r4!, {r0} - adds r2, r0 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080DA1B8 -_080DA1C6: - lsrs r0, r2, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end CalculateChecksum - - thumb_func_start UpdateSaveAddresses -UpdateSaveAddresses: @ 80DA1D4 - push {r4,r5,lr} - ldr r3, _080DA234 @ =gUnknown_30053B0 - ldr r0, _080DA238 @ =gSaveBlock2Ptr - ldr r2, _080DA23C @ =gUnknown_83FEC94 - ldrh r1, [r2] - ldr r0, [r0] - adds r0, r1 - str r0, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - ldr r5, _080DA240 @ =gSaveBlock1Ptr - adds r3, 0x8 - adds r2, 0x4 - movs r4, 0x3 -_080DA1F0: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r0 - str r1, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - adds r3, 0x8 - adds r2, 0x4 - subs r4, 0x1 - cmp r4, 0 - bge _080DA1F0 - movs r4, 0x5 - ldr r1, _080DA234 @ =gUnknown_30053B0 - ldr r5, _080DA244 @ =gUnknown_3005010 - ldr r0, _080DA23C @ =gUnknown_83FEC94 - adds r3, r1, 0 - adds r3, 0x28 - adds r2, r0, 0 - adds r2, 0x14 -_080DA216: - ldrh r0, [r2] - ldr r1, [r5] - adds r1, r0 - str r1, [r3] - ldrh r0, [r2, 0x2] - strh r0, [r3, 0x4] - adds r3, 0x8 - adds r2, 0x4 - adds r4, 0x1 - cmp r4, 0xD - ble _080DA216 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DA234: .4byte gUnknown_30053B0 -_080DA238: .4byte gSaveBlock2Ptr -_080DA23C: .4byte gUnknown_83FEC94 -_080DA240: .4byte gSaveBlock1Ptr -_080DA244: .4byte gUnknown_3005010 - thumb_func_end UpdateSaveAddresses - - thumb_func_start sub_80DA248 -sub_80DA248: @ 80DA248 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DA268 @ =gMain - ldr r6, [r1, 0x20] - movs r0, 0 - str r0, [r1, 0x20] - bl UpdateSaveAddresses - cmp r4, 0x5 - bhi _080DA2CC - lsls r0, r4, 2 - ldr r1, _080DA26C @ =_080DA270 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DA268: .4byte gMain -_080DA26C: .4byte _080DA270 - .align 2, 0 -_080DA270: - .4byte _080DA2CC - .4byte _080DA2F0 - .4byte _080DA310 - .4byte _080DA29E - .4byte _080DA324 - .4byte _080DA288 -_080DA288: - movs r4, 0x1C - ldr r5, _080DA2DC @ =EraseFlashSector -_080DA28C: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _080DA28C -_080DA29E: - movs r0, 0xA - bl GetGameStat - ldr r1, _080DA2E0 @ =0x000003e6 - cmp r0, r1 - bhi _080DA2B0 - movs r0, 0xA - bl IncrementGameStat -_080DA2B0: - ldr r4, _080DA2E4 @ =gUnknown_201C000 - movs r5, 0xF8 - lsls r5, 4 - movs r0, 0x1C - adds r1, r4, 0 - adds r2, r5, 0 - bl HandleWriteSectorNBytes - adds r4, r5 - movs r0, 0x1D - adds r1, r4, 0 - adds r2, r5, 0 - bl HandleWriteSectorNBytes -_080DA2CC: - bl SaveSerializedGame - ldr r0, _080DA2E8 @ =0x0000ffff - ldr r1, _080DA2EC @ =gUnknown_30053B0 - bl save_write_to_flash - b _080DA346 - .align 2, 0 -_080DA2DC: .4byte EraseFlashSector -_080DA2E0: .4byte 0x000003e6 -_080DA2E4: .4byte gUnknown_201C000 -_080DA2E8: .4byte 0x0000ffff -_080DA2EC: .4byte gUnknown_30053B0 -_080DA2F0: - bl SaveSerializedGame - movs r4, 0 -_080DA2F6: - adds r0, r4, 0 - ldr r1, _080DA30C @ =gUnknown_30053B0 - bl save_write_to_flash - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080DA2F6 - b _080DA346 - .align 2, 0 -_080DA30C: .4byte gUnknown_30053B0 -_080DA310: - bl SaveSerializedGame - ldr r1, _080DA320 @ =gUnknown_30053B0 - movs r0, 0 - bl save_write_to_flash - b _080DA346 - .align 2, 0 -_080DA320: .4byte gUnknown_30053B0 -_080DA324: - movs r4, 0x1C - ldr r5, _080DA354 @ =EraseFlashSector -_080DA328: - ldr r1, [r5] - adds r0, r4, 0 - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _080DA328 - bl SaveSerializedGame - ldr r0, _080DA358 @ =0x0000ffff - ldr r1, _080DA35C @ =gUnknown_30053B0 - bl save_write_to_flash -_080DA346: - ldr r0, _080DA360 @ =gMain - str r6, [r0, 0x20] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DA354: .4byte EraseFlashSector -_080DA358: .4byte 0x0000ffff -_080DA35C: .4byte gUnknown_30053B0 -_080DA360: .4byte gMain - thumb_func_end sub_80DA248 - - thumb_func_start TrySavingData -TrySavingData: @ 80DA364 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080DA390 @ =gUnknown_3005004 - ldr r4, [r0] - cmp r4, 0x1 - bne _080DA386 - adds r0, r5, 0 - bl sub_80DA248 - ldr r0, _080DA394 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080DA39C - adds r0, r5, 0 - bl sub_80F5100 -_080DA386: - ldr r1, _080DA398 @ =gUnknown_3005420 - movs r0, 0xFF - strh r0, [r1] - movs r0, 0xFF - b _080DA3A2 - .align 2, 0 -_080DA390: .4byte gUnknown_3005004 -_080DA394: .4byte gUnknown_300538C -_080DA398: .4byte gUnknown_3005420 -_080DA39C: - ldr r0, _080DA3A8 @ =gUnknown_3005420 - strh r4, [r0] - movs r0, 0x1 -_080DA3A2: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DA3A8: .4byte gUnknown_3005420 - thumb_func_end TrySavingData - - thumb_func_start sub_80DA3AC -sub_80DA3AC: @ 80DA3AC - push {lr} - ldr r0, _080DA3C8 @ =gUnknown_3005004 - ldr r0, [r0] - cmp r0, 0x1 - bne _080DA3D0 - bl UpdateSaveAddresses - bl SaveSerializedGame - ldr r0, _080DA3CC @ =gUnknown_30053B0 - bl RestoreSaveBackupVarsAndIncrement - movs r0, 0 - b _080DA3D2 - .align 2, 0 -_080DA3C8: .4byte gUnknown_3005004 -_080DA3CC: .4byte gUnknown_30053B0 -_080DA3D0: - movs r0, 0x1 -_080DA3D2: - pop {r1} - bx r1 - thumb_func_end sub_80DA3AC - - thumb_func_start sub_80DA3D8 -sub_80DA3D8: @ 80DA3D8 - push {r4,lr} - ldr r1, _080DA3FC @ =gUnknown_30053B0 - movs r0, 0xE - bl sub_80D9AA4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DA400 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080DA3F4 - movs r0, 0 - bl sub_80F5100 -_080DA3F4: - cmp r4, 0xFF - beq _080DA404 - movs r0, 0 - b _080DA406 - .align 2, 0 -_080DA3FC: .4byte gUnknown_30053B0 -_080DA400: .4byte gUnknown_300538C -_080DA404: - movs r0, 0x1 -_080DA406: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80DA3D8 - - thumb_func_start sub_80DA40C -sub_80DA40C: @ 80DA40C - push {lr} - ldr r1, _080DA42C @ =gUnknown_30053B0 - movs r0, 0xE - bl sub_80D9B04 - ldr r0, _080DA430 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080DA424 - movs r0, 0 - bl sub_80F5100 -_080DA424: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DA42C: .4byte gUnknown_30053B0 -_080DA430: .4byte gUnknown_300538C - thumb_func_end sub_80DA40C - - thumb_func_start sub_80DA434 -sub_80DA434: @ 80DA434 - push {lr} - ldr r1, _080DA454 @ =gUnknown_30053B0 - movs r0, 0xE - bl sub_80D9CF0 - ldr r0, _080DA458 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080DA44C - movs r0, 0 - bl sub_80F5100 -_080DA44C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DA454: .4byte gUnknown_30053B0 -_080DA458: .4byte gUnknown_300538C - thumb_func_end sub_80DA434 - - thumb_func_start sub_80DA45C -sub_80DA45C: @ 80DA45C - push {r4,lr} - ldr r0, _080DA48C @ =gUnknown_3005004 - ldr r0, [r0] - cmp r0, 0x1 - bne _080DA498 - bl UpdateSaveAddresses - bl SaveSerializedGame - ldr r4, _080DA490 @ =gUnknown_30053B0 - adds r0, r4, 0 - bl RestoreSaveBackupVars - ldr r0, _080DA494 @ =gUnknown_3005398 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl sub_80D9B04 - movs r0, 0 - b _080DA49A - .align 2, 0 -_080DA48C: .4byte gUnknown_3005004 -_080DA490: .4byte gUnknown_30053B0 -_080DA494: .4byte gUnknown_3005398 -_080DA498: - movs r0, 0x1 -_080DA49A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80DA45C - - thumb_func_start sub_80DA4A0 -sub_80DA4A0: @ 80DA4A0 - push {r4-r6,lr} - movs r6, 0 - ldr r0, _080DA4CC @ =gUnknown_3005398 - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - lsls r0, r1, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bhi _080DA4D4 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080DA4D0 @ =gUnknown_30053B0 - adds r1, r4, 0 - bl sub_80D9B04 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80D9D88 - b _080DA4DE - .align 2, 0 -_080DA4CC: .4byte gUnknown_3005398 -_080DA4D0: .4byte gUnknown_30053B0 -_080DA4D4: - ldr r1, _080DA4F4 @ =gUnknown_30053B0 - adds r0, r5, 0 - bl sub_80D9D88 - movs r6, 0x1 -_080DA4DE: - ldr r0, _080DA4F8 @ =gUnknown_300538C - ldr r0, [r0] - cmp r0, 0 - beq _080DA4EC - movs r0, 0x1 - bl sub_80F5100 -_080DA4EC: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DA4F4: .4byte gUnknown_30053B0 -_080DA4F8: .4byte gUnknown_300538C - thumb_func_end sub_80DA4A0 - - thumb_func_start sub_80DA4FC -sub_80DA4FC: @ 80DA4FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DA514 @ =gUnknown_3005004 - ldr r0, [r0] - cmp r0, 0x1 - beq _080DA51C - ldr r1, _080DA518 @ =gUnknown_30053A0 - movs r0, 0x4 - strh r0, [r1] - movs r0, 0xFF - b _080DA57C - .align 2, 0 -_080DA514: .4byte gUnknown_3005004 -_080DA518: .4byte gUnknown_30053A0 -_080DA51C: - bl UpdateSaveAddresses - cmp r4, 0 - beq _080DA528 - cmp r4, 0x3 - beq _080DA554 -_080DA528: - ldr r0, _080DA544 @ =0x0000ffff - ldr r1, _080DA548 @ =gUnknown_30053B0 - bl sub_80D9E14 - lsls r0, 24 - lsrs r4, r0, 24 - bl LoadSerializedGame - ldr r0, _080DA54C @ =gUnknown_30053A0 - strh r4, [r0] - ldr r1, _080DA550 @ =gUnknown_30053A4 - movs r0, 0 - str r0, [r1] - b _080DA57A - .align 2, 0 -_080DA544: .4byte 0x0000ffff -_080DA548: .4byte gUnknown_30053B0 -_080DA54C: .4byte gUnknown_30053A0 -_080DA550: .4byte gUnknown_30053A4 -_080DA554: - ldr r5, _080DA584 @ =gUnknown_201C000 - movs r6, 0xF8 - lsls r6, 4 - movs r0, 0x1C - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80DA120 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _080DA57A - adds r1, r5, r6 - movs r0, 0x1D - adds r2, r6, 0 - bl sub_80DA120 - lsls r0, 24 - lsrs r4, r0, 24 -_080DA57A: - adds r0, r4, 0 -_080DA57C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DA584: .4byte gUnknown_201C000 - thumb_func_end sub_80DA4FC - - thumb_func_start TryCopySpecialSaveSection -TryCopySpecialSaveSection: @ 80DA588 - push {r4-r6,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xE2 - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080DA5B4 - ldr r4, _080DA5B8 @ =gUnknown_2039A38 - movs r3, 0x80 - lsls r3, 5 - adds r0, r1, 0 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - ldr r1, [r4] - ldr r0, _080DA5BC @ =0x0000b39d - cmp r1, r0 - beq _080DA5C0 -_080DA5B4: - movs r0, 0xFF - b _080DA5D6 - .align 2, 0 -_080DA5B8: .4byte gUnknown_2039A38 -_080DA5BC: .4byte 0x0000b39d -_080DA5C0: - movs r3, 0 - ldr r5, _080DA5DC @ =0x00000ffb - adds r2, r4, 0x4 -_080DA5C6: - adds r0, r6, r3 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, r5 - ble _080DA5C6 - movs r0, 0x1 -_080DA5D6: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DA5DC: .4byte 0x00000ffb - thumb_func_end TryCopySpecialSaveSection - - thumb_func_start sub_80DA5E0 -sub_80DA5E0: @ 80DA5E0 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0xE2 - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080DA62C - ldr r7, _080DA620 @ =gUnknown_2039A38 - ldr r0, _080DA624 @ =0x0000b39d - adds r3, r7, 0 - stm r3!, {r0} - movs r2, 0 - ldr r4, _080DA628 @ =0x00000ffb -_080DA600: - adds r0, r3, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - ble _080DA600 - adds r0, r6, 0 - adds r1, r7, 0 - bl ProgramFlashSectorAndVerify - cmp r0, 0 - bne _080DA62C - movs r0, 0x1 - b _080DA62E - .align 2, 0 -_080DA620: .4byte gUnknown_2039A38 -_080DA624: .4byte 0x0000b39d -_080DA628: .4byte 0x00000ffb -_080DA62C: - movs r0, 0xFF -_080DA62E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80DA5E0 - - thumb_func_start sub_80DA634 -sub_80DA634: @ 80DA634 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DA65C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0xB - bls _080DA650 - b _080DA7F6 -_080DA650: - lsls r0, 2 - ldr r1, _080DA660 @ =_080DA664 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DA65C: .4byte gTasks -_080DA660: .4byte _080DA664 - .align 2, 0 -_080DA664: - .4byte _080DA694 - .4byte _080DA6AC - .4byte _080DA6C4 - .4byte _080DA6E8 - .4byte _080DA6F2 - .4byte _080DA712 - .4byte _080DA744 - .4byte _080DA75C - .4byte _080DA778 - .4byte _080DA79C - .4byte _080DA7B4 - .4byte _080DA7D4 -_080DA694: - ldr r1, _080DA6A8 @ =gSoftResetDisabled - movs r0, 0x1 - strb r0, [r1] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA6A8: .4byte gSoftResetDisabled -_080DA6AC: - bl sub_800AB9C - ldr r0, _080DA6C0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA6C0: .4byte gTasks -_080DA6C4: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - bne _080DA6D0 - b _080DA7F6 -_080DA6D0: - bl sub_80590D8 - ldr r0, _080DA6E4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA6E4: .4byte gTasks -_080DA6E8: - bl sub_804C1C0 - bl sub_80DA3AC - b _080DA730 -_080DA6F2: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0x5 - beq _080DA70A - b _080DA7F6 -_080DA70A: - movs r0, 0 - strh r0, [r1, 0xA] - strh r2, [r1, 0x8] - b _080DA7F6 -_080DA712: - bl sub_80DA3D8 - lsls r0, 24 - cmp r0, 0 - beq _080DA730 - ldr r0, _080DA72C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x6 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA72C: .4byte gTasks -_080DA730: - ldr r0, _080DA740 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x4 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA740: .4byte gTasks -_080DA744: - bl sub_80DA40C - ldr r0, _080DA758 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x7 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA758: .4byte gTasks -_080DA75C: - bl sav2_gender2_inplace_and_xFE - bl sub_800AB9C - ldr r0, _080DA774 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x8 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA774: .4byte gTasks -_080DA778: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _080DA7F6 - bl sub_80DA434 - ldr r0, _080DA798 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x9 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA798: .4byte gTasks -_080DA79C: - bl sub_800AB9C - ldr r0, _080DA7B0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0xA - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA7B0: .4byte gTasks -_080DA7B4: - bl sub_800A4BC - lsls r0, 24 - cmp r0, 0 - beq _080DA7F6 - ldr r0, _080DA7D0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080DA7F6 - .align 2, 0 -_080DA7D0: .4byte gTasks -_080DA7D4: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DA7F6 - ldr r1, _080DA7FC @ =gSoftResetDisabled - movs r0, 0 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_080DA7F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DA7FC: .4byte gSoftResetDisabled - thumb_func_end sub_80DA634 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s index ade020812..cbb07e4c7 100644 --- a/asm/save_failed_screen.s +++ b/asm/save_failed_screen.s @@ -15,8 +15,8 @@ sub_80F50F4: @ 80F50F4 _080F50FC: .4byte gUnknown_3005430 thumb_func_end sub_80F50F4 - thumb_func_start sub_80F5100 -sub_80F5100: @ 80F5100 + thumb_func_start DoSaveFailedScreen +DoSaveFailedScreen: @ 80F5100 lsls r0, 24 lsrs r0, 24 ldr r1, _080F5110 @ =gUnknown_203AB4C @@ -28,7 +28,7 @@ sub_80F5100: @ 80F5100 .align 2, 0 _080F5110: .4byte gUnknown_203AB4C _080F5114: .4byte gUnknown_3005430 - thumb_func_end sub_80F5100 + thumb_func_end DoSaveFailedScreen thumb_func_start sub_80F5118 sub_80F5118: @ 80F5118 @@ -435,7 +435,7 @@ _080F5454: .4byte 0x01001180 sub_80F5458: @ 80F5458 push {r4,r5,lr} movs r5, 0 - ldr r0, _080F5490 @ =gUnknown_300538C + ldr r0, _080F5490 @ =gDamagedSaveSectors ldr r1, [r0] adds r4, r0, 0 cmp r1, 0 @@ -447,12 +447,12 @@ _080F5466: bne _080F5498 ldr r0, _080F5494 @ =gUnknown_203AB4C ldrb r0, [r0] - bl sub_80DA248 + bl HandleSavingData adds r5, 0x1 ldr r0, [r4] cmp r0, 0 beq _080F548C - ldr r4, _080F5490 @ =gUnknown_300538C + ldr r4, _080F5490 @ =gDamagedSaveSectors cmp r5, 0x2 ble _080F5466 ldr r0, [r4] @@ -462,7 +462,7 @@ _080F548C: movs r0, 0x1 b _080F549A .align 2, 0 -_080F5490: .4byte gUnknown_300538C +_080F5490: .4byte gDamagedSaveSectors _080F5494: .4byte gUnknown_203AB4C _080F5498: movs r0, 0 @@ -477,7 +477,7 @@ VerifySectorWipe: @ 80F54A0 push {r4,lr} lsls r0, 16 lsrs r0, 16 - ldr r4, _080F54C4 @ =gUnknown_2039A38 + ldr r4, _080F54C4 @ =gSaveDataBuffer movs r3, 0x80 lsls r3, 5 movs r1, 0 @@ -492,7 +492,7 @@ _080F54B8: movs r0, 0x1 b _080F54DA .align 2, 0 -_080F54C4: .4byte gUnknown_2039A38 +_080F54C4: .4byte gSaveDataBuffer _080F54C8: .4byte 0x000003ff _080F54CC: adds r0, r1, 0x1 diff --git a/asm/start_menu.s b/asm/start_menu.s index 3088f613a..377aea3f2 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -1379,7 +1379,7 @@ _0806F814: beq _0806F858 b _0806F864 _0806F81A: - ldr r0, _0806F838 @ =gUnknown_30053A0 + ldr r0, _0806F838 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0806F826 @@ -1396,7 +1396,7 @@ _0806F82E: str r0, [r1] b _0806F864 .align 2, 0 -_0806F838: .4byte gUnknown_30053A0 +_0806F838: .4byte gSaveFileStatus _0806F83C: .4byte gUnknown_2031DB0 _0806F840: .4byte gUnknown_3000FA4 _0806F844: .4byte sub_806F86C diff --git a/asm/title_screen.s b/asm/title_screen.s index de70452ff..c07978623 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -1107,10 +1107,10 @@ _08079248: bl SeedRngAndSetTrainerId bl SetSaveBlocksPointers bl sub_8054A28 - bl ResetSaveCounters + bl Save_ResetSaveCounters movs r0, 0 - bl sub_80DA4FC - ldr r0, _080792B4 @ =gUnknown_30053A0 + bl Save_LoadGameData + ldr r0, _080792B4 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _08079276 @@ -1143,7 +1143,7 @@ _080792A6: bx r0 .align 2, 0 _080792B0: .4byte gPaletteFade -_080792B4: .4byte gUnknown_30053A0 +_080792B4: .4byte gSaveFileStatus _080792B8: .4byte gSaveBlock2Ptr _080792BC: .4byte gHeap _080792C0: .4byte sub_800C300 diff --git a/asm/trade.s b/asm/trade.s index 6d3adb105..784126e55 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -648,7 +648,7 @@ _0804CB9C: ldr r0, [r0] ldr r6, _0804CC18 @ =gUnknown_2031C94 ldr r1, [r6] - ldr r5, _0804CC1C @ =gUnknown_201C000 + ldr r5, _0804CC1C @ =gDecompressionBuffer str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] @@ -701,7 +701,7 @@ _0804CB9C: .align 2, 0 _0804CC14: .4byte gSaveBlock2Ptr _0804CC18: .4byte gUnknown_2031C94 -_0804CC1C: .4byte gUnknown_201C000 +_0804CC1C: .4byte gDecompressionBuffer _0804CC20: .4byte gUnknown_2022744 _0804CC24: .4byte gUnknown_8261ECC _0804CC28: .4byte gMain @@ -1338,7 +1338,7 @@ _0804D19C: ldr r0, [r0] ldr r6, _0804D218 @ =gUnknown_2031C94 ldr r1, [r6] - ldr r5, _0804D21C @ =gUnknown_201C000 + ldr r5, _0804D21C @ =gDecompressionBuffer str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] @@ -1392,7 +1392,7 @@ _0804D200: .align 2, 0 _0804D214: .4byte gSaveBlock2Ptr _0804D218: .4byte gUnknown_2031C94 -_0804D21C: .4byte gUnknown_201C000 +_0804D21C: .4byte gDecompressionBuffer _0804D220: .4byte gUnknown_2022744 _0804D224: .4byte gUnknown_8261ECC _0804D228: .4byte gMain @@ -6024,7 +6024,7 @@ _0804F71E: sub_804F728: @ 804F728 push {lr} sub sp, 0x8 - ldr r2, _0804F744 @ =gUnknown_201C000 + ldr r2, _0804F744 @ =gDecompressionBuffer str r2, [sp] movs r2, 0x6 str r2, [sp, 0x4] @@ -6035,7 +6035,7 @@ sub_804F728: @ 804F728 pop {r0} bx r0 .align 2, 0 -_0804F744: .4byte gUnknown_201C000 +_0804F744: .4byte gDecompressionBuffer thumb_func_end sub_804F728 thumb_func_start sub_804F748 @@ -7852,7 +7852,7 @@ sub_80504CC: @ 80504CC bl sub_80F696C ldr r0, _080505BC @ =gUnknown_8D0051C mov r8, r0 - ldr r4, _080505C0 @ =gUnknown_201C000 + ldr r4, _080505C0 @ =gDecompressionBuffer adds r1, r4, 0 bl LZDecompressWram movs r0, 0 @@ -7898,7 +7898,7 @@ sub_80504CC: @ 80504CC _080505B4: .4byte gUnknown_826D1D4 _080505B8: .4byte gUnknown_8D00000 _080505BC: .4byte gUnknown_8D0051C -_080505C0: .4byte gUnknown_201C000 +_080505C0: .4byte gDecompressionBuffer _080505C4: .4byte gUnknown_8D004D8 _080505C8: .4byte gUnknown_826D1BC thumb_func_end sub_80504CC diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s index 01a4a08cb..4c78d4459 100644 --- a/asm/unk_814D5C8.s +++ b/asm/unk_814D5C8.s @@ -2787,13 +2787,13 @@ sub_814EC80: @ 814EC80 adds r6, r0, 0 movs r5, 0 ldr r0, _0814EC94 @ =gUnknown_8EB0ADC - ldr r4, _0814EC98 @ =gUnknown_201C000 + ldr r4, _0814EC98 @ =gDecompressionBuffer adds r1, r4, 0 bl LZ77UnCompWram b _0814ECCA .align 2, 0 _0814EC94: .4byte gUnknown_8EB0ADC -_0814EC98: .4byte gUnknown_201C000 +_0814EC98: .4byte gDecompressionBuffer _0814EC9C: lsls r1, r5, 2 movs r2, 0xA2 diff --git a/common_syms/save.txt b/common_syms/save.txt new file mode 100644 index 000000000..9b77840e0 --- /dev/null +++ b/common_syms/save.txt @@ -0,0 +1,12 @@ +gFirstSaveSector +gPrevSaveCounter +gLastKnownGoodSector +gDamagedSaveSectors +gSaveCounter +gFastSaveSection +gUnknown_3005398 +gSaveUnusedVar +gSaveFileStatus +gGameContinueCallback +gRamSaveSectionLocations +gUnknown_3005420 diff --git a/data/data.s b/data/data.s index c8b79e61a..5c81abcac 100644 --- a/data/data.s +++ b/data/data.s @@ -115,9 +115,10 @@ gUnknown_8239FD4:: @ 8239FD4 gUnknown_823A004:: @ 823A004 .incbin "baserom.gba", 0x23A004, 0x4554 -gUnknown_823E558:: @ 823E558 - .incbin "baserom.gba", 0x23E558, 0x570 +gTrainerClassNames:: @ 823E558 + .include "data/text/trainer_class_names.inc" + .align 2, 0 gTrainers:: @ 823EAD8 .incbin "baserom.gba", 0x23EAC8, 0x7418 diff --git a/data/data_83F5738.s b/data/data_83F5738.s new file mode 100644 index 000000000..e6f026d0e --- /dev/null +++ b/data/data_83F5738.s @@ -0,0 +1,631 @@ + .section .rodata + + .align 2 +gUnknown_83F5738:: @ 83F5738 + .incbin "baserom.gba", 0x3F5738, 0xCC + +gUnknown_83F5804:: @ 83F5804 + .incbin "baserom.gba", 0x3F5804, 0x20 + +gUnknown_83F5824:: @ 83F5824 + .incbin "baserom.gba", 0x3F5824, 0x20 + +gUnknown_83F5844:: @ 83F5844 + .incbin "baserom.gba", 0x3F5844, 0x10 + +gUnknown_83F5854:: @ 83F5854 + .incbin "baserom.gba", 0x3F5854, 0x10 + +gUnknown_83F5864:: @ 83F5864 + .incbin "baserom.gba", 0x3F5864, 0x1E0 + +gUnknown_83F5A44:: @ 83F5A44 + .incbin "baserom.gba", 0x3F5A44, 0xB4 + +gUnknown_83F5AF8:: @ 83F5AF8 + .incbin "baserom.gba", 0x3F5AF8, 0x22 + +gUnknown_83F5B1A:: @ 83F5B1A + .incbin "baserom.gba", 0x3F5B1A, 0x16 + +gUnknown_83F5B30:: @ 83F5B30 + .incbin "baserom.gba", 0x3F5B30, 0xC + +gUnknown_83F5B3C:: @ 83F5B3C + .incbin "baserom.gba", 0x3F5B3C, 0x8 + +gUnknown_83F5B44:: @ 83F5B44 + .incbin "baserom.gba", 0x3F5B44, 0x50 + +gUnknown_83F5B94:: @ 83F5B94 + .incbin "baserom.gba", 0x3F5B94, 0x12 + +gUnknown_83F5BA6:: @ 83F5BA6 + .incbin "baserom.gba", 0x3F5BA6, 0x12 + +gUnknown_83F5BB8:: @ 83F5BB8 + .incbin "baserom.gba", 0x3F5BB8, 0x9 + +gUnknown_83F5BC1:: @ 83F5BC1 + .incbin "baserom.gba", 0x3F5BC1, 0xB + +gUnknown_83F5BCC:: @ 83F5BCC + .incbin "baserom.gba", 0x3F5BCC, 0x150 + +gUnknown_83F5D1C:: @ 83F5D1C + .incbin "baserom.gba", 0x3F5D1C, 0x10 + +gUnknown_83F5D2C:: @ 83F5D2C + .incbin "baserom.gba", 0x3F5D2C, 0x6 + +gUnknown_83F5D32:: @ 83F5D32 + .incbin "baserom.gba", 0x3F5D32, 0x26 + +gUnknown_83F5D58:: @ 83F5D58 + .incbin "baserom.gba", 0x3F5D58, 0x198 + + .align 2 +gUnknown_83F5EF0:: @ 83F5EF0 + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c" + + .align 2 +gUnknown_83F5F24:: @ 83F5F24 + .asciz "0" + +gUnknown_83F5F26:: @ 83F5F26 + .incbin "baserom.gba", 0x3F5F26, 0x2A + +gUnknown_83F5F50:: @ 83F5F50 + .incbin "baserom.gba", 0x3F5F50, 0x160 + +gUnknown_83F60B0:: @ 83F60B0 + .incbin "baserom.gba", 0x3F60B0, 0x20 + +gUnknown_83F60D0:: @ 83F60D0 + .incbin "baserom.gba", 0x3F60D0, 0x100 + +gUnknown_83F61D0:: @ 83F61D0 + .incbin "baserom.gba", 0x3F61D0, 0x20 + +gUnknown_83F61F0:: @ 83F61F0 + .incbin "baserom.gba", 0x3F61F0, 0xB + +gUnknown_83F61FB:: @ 83F61FB + .incbin "baserom.gba", 0x3F61FB, 0x8 + +gUnknown_83F6203:: @ 83F6203 + .incbin "baserom.gba", 0x3F6203, 0x3 + +gUnknown_83F6206:: @ 83F6206 + .incbin "baserom.gba", 0x3F6206, 0x160 + +gUnknown_83F6366:: @ 83F6366 + .incbin "baserom.gba", 0x3F6366, 0x16 + +gUnknown_83F637C:: @ 83F637C + .incbin "baserom.gba", 0x3F637C, 0xC + +gUnknown_83F6388:: @ 83F6388 + .incbin "baserom.gba", 0x3F6388, 0xC0 + +gUnknown_83F6448:: @ 83F6448 + .incbin "baserom.gba", 0x3F6448, 0x20 + +gUnknown_83F6468:: @ 83F6468 + .incbin "baserom.gba", 0x3F6468, 0x800 + +gUnknown_83F6C68:: @ 83F6C68 + .incbin "baserom.gba", 0x3F6C68, 0x10 + +gUnknown_83F6C78:: @ 83F6C78 + .incbin "baserom.gba", 0x3F6C78, 0x4 + +gUnknown_83F6C7C:: @ 83F6C7C + .incbin "baserom.gba", 0x3F6C7C, 0x8 + +gUnknown_83F6C84:: @ 83F6C84 + .incbin "baserom.gba", 0x3F6C84, 0x2C + +gUnknown_83F6CB0:: @ 83F6CB0 + .incbin "baserom.gba", 0x3F6CB0, 0x6F8 + +gUnknown_83F73A8:: @ 83F73A8 + .incbin "baserom.gba", 0x3F73A8, 0x4E4 + +gUnknown_83F788C:: @ 83F788C + .incbin "baserom.gba", 0x3F788C, 0x4D4 + +gUnknown_83F7D60:: @ 83F7D60 + .incbin "baserom.gba", 0x3F7D60, 0x6A0 + +gUnknown_83F8400:: @ 83F8400 + .incbin "baserom.gba", 0x3F8400, 0x40 + +gUnknown_83F8440:: @ 83F8440 + .incbin "baserom.gba", 0x3F8440, 0x2D + +gUnknown_83F846D:: @ 83F846D + .incbin "baserom.gba", 0x3F846D, 0x10 + +gUnknown_83F847D:: @ 83F847D + .incbin "baserom.gba", 0x3F847D, 0x323 + +gUnknown_83F87A0:: @ 83F87A0 + .incbin "baserom.gba", 0x3F87A0, 0x580 + +gUnknown_83F8D20:: @ 83F8D20 + .incbin "baserom.gba", 0x3F8D20, 0x240 + +gUnknown_83F8F60:: @ 83F8F60 + .incbin "baserom.gba", 0x3F8F60, 0x11E0 + +gUnknown_83FA140:: @ 83FA140 + .incbin "baserom.gba", 0x3FA140, 0x1E0 + +gUnknown_83FA320:: @ 83FA320 + .incbin "baserom.gba", 0x3FA320, 0x48 + +gUnknown_83FA368:: @ 83FA368 + .incbin "baserom.gba", 0x3FA368, 0x48 + +gUnknown_83FA3B0:: @ 83FA3B0 + .incbin "baserom.gba", 0x3FA3B0, 0x10 + +gUnknown_83FA3C0:: @ 83FA3C0 + .incbin "baserom.gba", 0x3FA3C0, 0xC + +gUnknown_83FA3CC:: @ 83FA3CC + .incbin "baserom.gba", 0x3FA3CC, 0x8 + +gUnknown_83FA3D4:: @ 83FA3D4 + .incbin "baserom.gba", 0x3FA3D4, 0x8 + +gUnknown_83FA3DC:: @ 83FA3DC + .incbin "baserom.gba", 0x3FA3DC, 0x18 + +gUnknown_83FA3F4:: @ 83FA3F4 + .incbin "baserom.gba", 0x3FA3F4, 0xC + +gUnknown_83FA400:: @ 83FA400 + .incbin "baserom.gba", 0x3FA400, 0x4 + +gUnknown_83FA404:: @ 83FA404 + .incbin "baserom.gba", 0x3FA404, 0xA + +gUnknown_83FA40E:: @ 83FA40E + .incbin "baserom.gba", 0x3FA40E, 0x6 + +gUnknown_83FA414:: @ 83FA414 + .incbin "baserom.gba", 0x3FA414, 0x1C + +gUnknown_83FA430:: @ 83FA430 + .incbin "baserom.gba", 0x3FA430, 0x8 + +gUnknown_83FA438:: @ 83FA438 + .incbin "baserom.gba", 0x3FA438, 0xC + +gUnknown_83FA444:: @ 83FA444 + .incbin "baserom.gba", 0x3FA444, 0x20 + +gUnknown_83FA464:: @ 83FA464 + .incbin "baserom.gba", 0x3FA464, 0x8 + +gUnknown_83FA46C:: @ 83FA46C + .incbin "baserom.gba", 0x3FA46C, 0x28 + +gUnknown_83FA494:: @ 83FA494 + .incbin "baserom.gba", 0x3FA494, 0x6 + +gUnknown_83FA49A:: @ 83FA49A + .incbin "baserom.gba", 0x3FA49A, 0x14 + +gUnknown_83FA4AE:: @ 83FA4AE + .incbin "baserom.gba", 0x3FA4AE, 0x16 + +gUnknown_83FA4C4:: @ 83FA4C4 + .incbin "baserom.gba", 0x3FA4C4, 0x1C + +gUnknown_83FA4E0:: @ 83FA4E0 + .incbin "baserom.gba", 0x3FA4E0, 0x4 + +gUnknown_83FA4E4:: @ 83FA4E4 + .incbin "baserom.gba", 0x3FA4E4, 0x4 + +gUnknown_83FA4E8:: @ 83FA4E8 + .incbin "baserom.gba", 0x3FA4E8, 0xC + +gUnknown_83FA4F4:: @ 83FA4F4 + .incbin "baserom.gba", 0x3FA4F4, 0x14 + +gUnknown_83FA508:: @ 83FA508 + .incbin "baserom.gba", 0x3FA508, 0xC + +gUnknown_83FA514:: @ 83FA514 + .incbin "baserom.gba", 0x3FA514, 0xC + +gUnknown_83FA520:: @ 83FA520 + .incbin "baserom.gba", 0x3FA520, 0x14 + +gUnknown_83FA534:: @ 83FA534 + .incbin "baserom.gba", 0x3FA534, 0x46 + +gUnknown_83FA57A:: @ 83FA57A + .incbin "baserom.gba", 0x3FA57A, 0xE + +gUnknown_83FA588:: @ 83FA588 + .incbin "baserom.gba", 0x3FA588, 0x44 + +gUnknown_83FA5CC:: @ 83FA5CC + .incbin "baserom.gba", 0x3FA5CC, 0x6C + +gUnknown_83FA638:: @ 83FA638 + .incbin "baserom.gba", 0x3FA638, 0x108 + +gUnknown_83FA740:: @ 83FA740 + .incbin "baserom.gba", 0x3FA740, 0x14 + +gUnknown_83FA754:: @ 83FA754 + .incbin "baserom.gba", 0x3FA754, 0x30 + +gUnknown_83FA784:: @ 83FA784 + .incbin "baserom.gba", 0x3FA784, 0x4B0 + +gUnknown_83FAC34:: @ 83FAC34 + .incbin "baserom.gba", 0x3FAC34, 0x500 + +gUnknown_83FB134:: @ 83FB134 + .incbin "baserom.gba", 0x3FB134, 0xA80 + +BattleText_MistShroud:: @ 83FBBB4 + .incbin "baserom.gba", 0x3FBBB4, 0x35 + +BattleText_GetPumped:: @ 83FBBE9 + .incbin "baserom.gba", 0x3FBBE9, 0xE43 + +gText_PkmnsXPreventsSwitching:: @ 83FCA2C + .incbin "baserom.gba", 0x3FCA2C, 0x11E + +BattleText_Rose:: @ 83FCB4A + .incbin "baserom.gba", 0x3FCB4A, 0x20 + +BattleText_UnknownString3:: @ 83FCB6A + .incbin "baserom.gba", 0x3FCB6A, 0x120 + +gUnknown_83FCC8A:: @ 83FCC8A + .incbin "baserom.gba", 0x3FCC8A, 0x5A + +gUnknown_83FCCE4:: @ 83FCCE4 + .incbin "baserom.gba", 0x3FCCE4, 0x14 + +gUnknown_83FCCF8:: @ 83FCCF8 + .incbin "baserom.gba", 0x3FCCF8, 0x17 + +gUnknown_83FCD0F:: @ 83FCD0F + .incbin "baserom.gba", 0x3FCD0F, 0x18 + +gUnknown_83FCD27:: @ 83FCD27 + .incbin "baserom.gba", 0x3FCD27, 0x1A + +gUnknown_83FCD41:: @ 83FCD41 + .incbin "baserom.gba", 0x3FCD41, 0x25 + +gUnknown_83FCD66:: @ 83FCD66 + .incbin "baserom.gba", 0x3FCD66, 0x2C + +gUnknown_83FCD92:: @ 83FCD92 + .incbin "baserom.gba", 0x3FCD92, 0xD + +gUnknown_83FCD9F:: @ 83FCD9F + .incbin "baserom.gba", 0x3FCD9F, 0x428 + +gUnknown_83FD1C7:: @ 83FD1C7 + .incbin "baserom.gba", 0x3FD1C7, 0xBD + +gUnknown_83FD284:: @ 83FD284 + .incbin "baserom.gba", 0x3FD284, 0x13 + +gUnknown_83FD297:: @ 83FD297 + .incbin "baserom.gba", 0x3FD297, 0x13 + +gUnknown_83FD2AA:: @ 83FD2AA + .incbin "baserom.gba", 0x3FD2AA, 0x15 + +gUnknown_83FD2BF:: @ 83FD2BF + .incbin "baserom.gba", 0x3FD2BF, 0x1A + +gUnknown_83FD2D9:: @ 83FD2D9 + .incbin "baserom.gba", 0x3FD2D9, 0x34 + +gUnknown_83FD30D:: @ 83FD30D + .incbin "baserom.gba", 0x3FD30D, 0x59 + +gUnknown_83FD366:: @ 83FD366 + .incbin "baserom.gba", 0x3FD366, 0x1D + +gUnknown_83FD383:: @ 83FD383 + .incbin "baserom.gba", 0x3FD383, 0x14 + +gUnknown_83FD397:: @ 83FD397 + .incbin "baserom.gba", 0x3FD397, 0x1A + +gUnknown_83FD3B1:: @ 83FD3B1 + .incbin "baserom.gba", 0x3FD3B1, 0x16 + +gUnknown_83FD3C7:: @ 83FD3C7 + .incbin "baserom.gba", 0x3FD3C7, 0x1D + +gUnknown_83FD3E4:: @ 83FD3E4 + .incbin "baserom.gba", 0x3FD3E4, 0x13 + +gUnknown_83FD3F7:: @ 83FD3F7 + .incbin "baserom.gba", 0x3FD3F7, 0x10 + +gUnknown_83FD407:: @ 83FD407 + .incbin "baserom.gba", 0x3FD407, 0x17 + +gUnknown_83FD41E:: @ 83FD41E + .incbin "baserom.gba", 0x3FD41E, 0x20 + +gUnknown_83FD43E:: @ 83FD43E + .incbin "baserom.gba", 0x3FD43E, 0x10 + +gUnknown_83FD44E:: @ 83FD44E + .incbin "baserom.gba", 0x3FD44E, 0x10 + +gUnknown_83FD45E:: @ 83FD45E + .incbin "baserom.gba", 0x3FD45E, 0x8 + +gUnknown_83FD466:: @ 83FD466 + .incbin "baserom.gba", 0x3FD466, 0xF + +gUnknown_83FD475:: @ 83FD475 + .incbin "baserom.gba", 0x3FD475, 0x8 + +gUnknown_83FD47D:: @ 83FD47D + .incbin "baserom.gba", 0x3FD47D, 0xB + +gUnknown_83FD488:: @ 83FD488 + .incbin "baserom.gba", 0x3FD488, 0xF + +gUnknown_83FD497:: @ 83FD497 + .incbin "baserom.gba", 0x3FD497, 0x1E + +gUnknown_83FD4B5:: @ 83FD4B5 + .incbin "baserom.gba", 0x3FD4B5, 0x18 + +gUnknown_83FD4CD:: @ 83FD4CD + .incbin "baserom.gba", 0x3FD4CD, 0x1E + +gUnknown_83FD4EB:: @ 83FD4EB + .incbin "baserom.gba", 0x3FD4EB, 0xF + +gUnknown_83FD4FA:: @ 83FD4FA + .incbin "baserom.gba", 0x3FD4FA, 0x13 + +gUnknown_83FD50D:: @ 83FD50D + .incbin "baserom.gba", 0x3FD50D, 0x15 + +gUnknown_83FD522:: @ 83FD522 + .incbin "baserom.gba", 0x3FD522, 0x13 + +gUnknown_83FD535:: @ 83FD535 + .incbin "baserom.gba", 0x3FD535, 0x10 + +gUnknown_83FD545:: @ 83FD545 + .incbin "baserom.gba", 0x3FD545, 0x10 + +gUnknown_83FD555:: @ 83FD555 + .incbin "baserom.gba", 0x3FD555, 0x6 + +gUnknown_83FD55B:: @ 83FD55B + .incbin "baserom.gba", 0x3FD55B, 0x5 + +gUnknown_83FD560:: @ 83FD560 + .incbin "baserom.gba", 0x3FD560, 0x4 + +gUnknown_83FD564:: @ 83FD564 + .incbin "baserom.gba", 0x3FD564, 0x5 + +gUnknown_83FD569:: @ 83FD569 + .incbin "baserom.gba", 0x3FD569, 0x4 + +gUnknown_83FD56D:: @ 83FD56D + .incbin "baserom.gba", 0x3FD56D, 0x5 + +gUnknown_83FD572:: @ 83FD572 + .incbin "baserom.gba", 0x3FD572, 0x4 + +gUnknown_83FD576:: @ 83FD576 + .incbin "baserom.gba", 0x3FD576, 0x5 + +gUnknown_83FD57B:: @ 83FD57B + .incbin "baserom.gba", 0x3FD57B, 0xB + +gUnknown_83FD586:: @ 83FD586 + .incbin "baserom.gba", 0x3FD586, 0x2 + +gUnknown_83FD588:: @ 83FD588 + .incbin "baserom.gba", 0x3FD588, 0x2 + +gUnknown_83FD58A:: @ 83FD58A + .incbin "baserom.gba", 0x3FD58A, 0x2 + +gUnknown_83FD58C:: @ 83FD58C + .incbin "baserom.gba", 0x3FD58C, 0x2 + +gUnknown_83FD58E:: @ 83FD58E + .incbin "baserom.gba", 0x3FD58E, 0x42 + +gUnknown_83FD5D0:: @ 83FD5D0 + .incbin "baserom.gba", 0x3FD5D0, 0x6C + +gUnknown_83FD63C:: @ 83FD63C + .incbin "baserom.gba", 0x3FD63C, 0x1DE + +gUnknown_83FD81A:: @ 83FD81A + .incbin "baserom.gba", 0x3FD81A, 0xA + +gUnknown_83FD824:: @ 83FD824 + .incbin "baserom.gba", 0x3FD824, 0x7E + +gUnknown_83FD8A2:: @ 83FD8A2 + .incbin "baserom.gba", 0x3FD8A2, 0xD + +gUnknown_83FD8AF:: @ 83FD8AF + .incbin "baserom.gba", 0x3FD8AF, 0x19D + +gUnknown_83FDA4C:: @ 83FDA4C + .incbin "baserom.gba", 0x3FDA4C, 0x96 + +gUnknown_83FDAE2:: @ 83FDAE2 + .incbin "baserom.gba", 0x3FDAE2, 0xB0 + +gUnknown_83FDB92:: @ 83FDB92 + .incbin "baserom.gba", 0x3FDB92, 0x5D + +gUnknown_83FDBEF:: @ 83FDBEF + .incbin "baserom.gba", 0x3FDBEF, 0x69 + +gUnknown_83FDC58:: @ 83FDC58 + .incbin "baserom.gba", 0x3FDC58, 0x3D + +gUnknown_83FDC95:: @ 83FDC95 + .incbin "baserom.gba", 0x3FDC95, 0x3D + +gUnknown_83FDCD2:: @ 83FDCD2 + .incbin "baserom.gba", 0x3FDCD2, 0x51 + +gUnknown_83FDD23:: @ 83FDD23 + .incbin "baserom.gba", 0x3FDD23, 0x41 + +gUnknown_83FDD64:: @ 83FDD64 + .incbin "baserom.gba", 0x3FDD64, 0x87 + +gUnknown_83FDDEB:: @ 83FDDEB + .incbin "baserom.gba", 0x3FDDEB, 0x151 + +gUnknown_83FDF3C:: @ 83FDF3C + .incbin "baserom.gba", 0x3FDF3C, 0x5D8 + +gUnknown_83FE514:: @ 83FE514 + .incbin "baserom.gba", 0x3FE514, 0x150 + +gUnknown_83FE664:: @ 83FE664 + .incbin "baserom.gba", 0x3FE664, 0xE + +gUnknown_83FE672:: @ 83FE672 + .incbin "baserom.gba", 0x3FE672, 0x16 + +gUnknown_83FE688:: @ 83FE688 + .incbin "baserom.gba", 0x3FE688, 0x2D + +gUnknown_83FE6B5:: @ 83FE6B5 + .incbin "baserom.gba", 0x3FE6B5, 0x1B + +gUnknown_83FE6D0:: @ 83FE6D0 + .incbin "baserom.gba", 0x3FE6D0, 0x5 + +gUnknown_83FE6D5:: @ 83FE6D5 + .incbin "baserom.gba", 0x3FE6D5, 0x11 + +gUnknown_83FE6E6:: @ 83FE6E6 + .incbin "baserom.gba", 0x3FE6E6, 0x14 + +gUnknown_83FE6FA:: @ 83FE6FA + .incbin "baserom.gba", 0x3FE6FA, 0x1A + +gUnknown_83FE714:: @ 83FE714 + .incbin "baserom.gba", 0x3FE714, 0x11 + +gUnknown_83FE725:: @ 83FE725 + .incbin "baserom.gba", 0x3FE725, 0x22 + +gUnknown_83FE747:: @ 83FE747 + .incbin "baserom.gba", 0x3FE747, 0x1F + +gUnknown_83FE766:: @ 83FE766 + .incbin "baserom.gba", 0x3FE766, 0x4 + +gUnknown_83FE76A:: @ 83FE76A + .incbin "baserom.gba", 0x3FE76A, 0x6 + +gUnknown_83FE770:: @ 83FE770 + .incbin "baserom.gba", 0x3FE770, 0x21 + +gUnknown_83FE791:: @ 83FE791 + .incbin "baserom.gba", 0x3FE791, 0xF + +gUnknown_83FE7A0:: @ 83FE7A0 + .incbin "baserom.gba", 0x3FE7A0, 0x6C + +gUnknown_83FE80C:: @ 83FE80C + .incbin "baserom.gba", 0x3FE80C, 0x10 + +gUnknown_83FE81C:: @ 83FE81C + .incbin "baserom.gba", 0x3FE81C, 0x3D + +gUnknown_83FE859:: @ 83FE859 + .incbin "baserom.gba", 0x3FE859, 0x3 + +gUnknown_83FE85C:: @ 83FE85C + .incbin "baserom.gba", 0x3FE85C, 0x2 + +gUnknown_83FE85E:: @ 83FE85E + .incbin "baserom.gba", 0x3FE85E, 0x2 + +gUnknown_83FE860:: @ 83FE860 + .incbin "baserom.gba", 0x3FE860, 0x4 + +gUnknown_83FE864:: @ 83FE864 + .incbin "baserom.gba", 0x3FE864, 0x4 + +gText_BadEgg:: @ 83FE868 + .incbin "baserom.gba", 0x3FE868, 0xC + +gUnknown_83FE874:: @ 83FE874 + .incbin "baserom.gba", 0x3FE874, 0x7 + +gUnknown_83FE87B:: @ 83FE87B + .incbin "baserom.gba", 0x3FE87B, 0x8 + +gUnknown_83FE883:: @ 83FE883 + .incbin "baserom.gba", 0x3FE883, 0x8 + +gUnknown_83FE88B:: @ 83FE88B + .incbin "baserom.gba", 0x3FE88B, 0x4 + +gUnknown_83FE88F:: @ 83FE88F + .incbin "baserom.gba", 0x3FE88F, 0xF3 + +gUnknown_83FE982:: @ 83FE982 + .incbin "baserom.gba", 0x3FE982, 0x16 + +gUnknown_83FE998:: @ 83FE998 + .incbin "baserom.gba", 0x3FE998, 0x2C + +gUnknown_83FE9C4:: @ 83FE9C4 + .incbin "baserom.gba", 0x3FE9C4, 0x10 + +gUnknown_83FE9D4:: @ 83FE9D4 + .incbin "baserom.gba", 0x3FE9D4, 0x10 + +gUnknown_83FE9E4:: @ 83FE9E4 + .incbin "baserom.gba", 0x3FE9E4, 0x1B + +gUnknown_83FE9FF:: @ 83FE9FF + .incbin "baserom.gba", 0x3FE9FF, 0x29 + +gUnknown_83FEA28:: @ 83FEA28 + .incbin "baserom.gba", 0x3FEA28, 0x48 + +gUnknown_83FEA70:: @ 83FEA70 + .incbin "baserom.gba", 0x3FEA70, 0xEC + +gUnknown_83FEB5C:: @ 83FEB5C + .incbin "baserom.gba", 0x3FEB5C, 0x8 + +gUnknown_83FEB64:: @ 83FEB64 + .incbin "baserom.gba", 0x3FEB64, 0x12C + +gUnknown_83FEC90:: @ 83FEC90 + .incbin "baserom.gba", 0x3FEC90, 0x4 diff --git a/data/data_84827AC.s b/data/data_83FECCC.s index 2d41b05a0..c4f9e9126 100644 --- a/data/data_84827AC.s +++ b/data/data_83FECCC.s @@ -1,638 +1,6 @@ .section .rodata .align 2 -gUnknown_83F5738:: @ 83F5738 - .incbin "baserom.gba", 0x3F5738, 0xCC - -gUnknown_83F5804:: @ 83F5804 - .incbin "baserom.gba", 0x3F5804, 0x20 - -gUnknown_83F5824:: @ 83F5824 - .incbin "baserom.gba", 0x3F5824, 0x20 - -gUnknown_83F5844:: @ 83F5844 - .incbin "baserom.gba", 0x3F5844, 0x10 - -gUnknown_83F5854:: @ 83F5854 - .incbin "baserom.gba", 0x3F5854, 0x10 - -gUnknown_83F5864:: @ 83F5864 - .incbin "baserom.gba", 0x3F5864, 0x1E0 - -gUnknown_83F5A44:: @ 83F5A44 - .incbin "baserom.gba", 0x3F5A44, 0xB4 - -gUnknown_83F5AF8:: @ 83F5AF8 - .incbin "baserom.gba", 0x3F5AF8, 0x22 - -gUnknown_83F5B1A:: @ 83F5B1A - .incbin "baserom.gba", 0x3F5B1A, 0x16 - -gUnknown_83F5B30:: @ 83F5B30 - .incbin "baserom.gba", 0x3F5B30, 0xC - -gUnknown_83F5B3C:: @ 83F5B3C - .incbin "baserom.gba", 0x3F5B3C, 0x8 - -gUnknown_83F5B44:: @ 83F5B44 - .incbin "baserom.gba", 0x3F5B44, 0x50 - -gUnknown_83F5B94:: @ 83F5B94 - .incbin "baserom.gba", 0x3F5B94, 0x12 - -gUnknown_83F5BA6:: @ 83F5BA6 - .incbin "baserom.gba", 0x3F5BA6, 0x12 - -gUnknown_83F5BB8:: @ 83F5BB8 - .incbin "baserom.gba", 0x3F5BB8, 0x9 - -gUnknown_83F5BC1:: @ 83F5BC1 - .incbin "baserom.gba", 0x3F5BC1, 0xB - -gUnknown_83F5BCC:: @ 83F5BCC - .incbin "baserom.gba", 0x3F5BCC, 0x150 - -gUnknown_83F5D1C:: @ 83F5D1C - .incbin "baserom.gba", 0x3F5D1C, 0x10 - -gUnknown_83F5D2C:: @ 83F5D2C - .incbin "baserom.gba", 0x3F5D2C, 0x6 - -gUnknown_83F5D32:: @ 83F5D32 - .incbin "baserom.gba", 0x3F5D32, 0x26 - -gUnknown_83F5D58:: @ 83F5D58 - .incbin "baserom.gba", 0x3F5D58, 0x198 - - .align 2 -gUnknown_83F5EF0:: @ 83F5EF0 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c" - - .align 2 -gUnknown_83F5F24:: @ 83F5F24 - .asciz "0" - -gUnknown_83F5F26:: @ 83F5F26 - .incbin "baserom.gba", 0x3F5F26, 0x2A - -gUnknown_83F5F50:: @ 83F5F50 - .incbin "baserom.gba", 0x3F5F50, 0x160 - -gUnknown_83F60B0:: @ 83F60B0 - .incbin "baserom.gba", 0x3F60B0, 0x20 - -gUnknown_83F60D0:: @ 83F60D0 - .incbin "baserom.gba", 0x3F60D0, 0x100 - -gUnknown_83F61D0:: @ 83F61D0 - .incbin "baserom.gba", 0x3F61D0, 0x20 - -gUnknown_83F61F0:: @ 83F61F0 - .incbin "baserom.gba", 0x3F61F0, 0xB - -gUnknown_83F61FB:: @ 83F61FB - .incbin "baserom.gba", 0x3F61FB, 0x8 - -gUnknown_83F6203:: @ 83F6203 - .incbin "baserom.gba", 0x3F6203, 0x3 - -gUnknown_83F6206:: @ 83F6206 - .incbin "baserom.gba", 0x3F6206, 0x160 - -gUnknown_83F6366:: @ 83F6366 - .incbin "baserom.gba", 0x3F6366, 0x16 - -gUnknown_83F637C:: @ 83F637C - .incbin "baserom.gba", 0x3F637C, 0xC - -gUnknown_83F6388:: @ 83F6388 - .incbin "baserom.gba", 0x3F6388, 0xC0 - -gUnknown_83F6448:: @ 83F6448 - .incbin "baserom.gba", 0x3F6448, 0x20 - -gUnknown_83F6468:: @ 83F6468 - .incbin "baserom.gba", 0x3F6468, 0x800 - -gUnknown_83F6C68:: @ 83F6C68 - .incbin "baserom.gba", 0x3F6C68, 0x10 - -gUnknown_83F6C78:: @ 83F6C78 - .incbin "baserom.gba", 0x3F6C78, 0x4 - -gUnknown_83F6C7C:: @ 83F6C7C - .incbin "baserom.gba", 0x3F6C7C, 0x8 - -gUnknown_83F6C84:: @ 83F6C84 - .incbin "baserom.gba", 0x3F6C84, 0x2C - -gUnknown_83F6CB0:: @ 83F6CB0 - .incbin "baserom.gba", 0x3F6CB0, 0x6F8 - -gUnknown_83F73A8:: @ 83F73A8 - .incbin "baserom.gba", 0x3F73A8, 0x4E4 - -gUnknown_83F788C:: @ 83F788C - .incbin "baserom.gba", 0x3F788C, 0x4D4 - -gUnknown_83F7D60:: @ 83F7D60 - .incbin "baserom.gba", 0x3F7D60, 0x6A0 - -gUnknown_83F8400:: @ 83F8400 - .incbin "baserom.gba", 0x3F8400, 0x40 - -gUnknown_83F8440:: @ 83F8440 - .incbin "baserom.gba", 0x3F8440, 0x2D - -gUnknown_83F846D:: @ 83F846D - .incbin "baserom.gba", 0x3F846D, 0x10 - -gUnknown_83F847D:: @ 83F847D - .incbin "baserom.gba", 0x3F847D, 0x323 - -gUnknown_83F87A0:: @ 83F87A0 - .incbin "baserom.gba", 0x3F87A0, 0x580 - -gUnknown_83F8D20:: @ 83F8D20 - .incbin "baserom.gba", 0x3F8D20, 0x240 - -gUnknown_83F8F60:: @ 83F8F60 - .incbin "baserom.gba", 0x3F8F60, 0x11E0 - -gUnknown_83FA140:: @ 83FA140 - .incbin "baserom.gba", 0x3FA140, 0x1E0 - -gUnknown_83FA320:: @ 83FA320 - .incbin "baserom.gba", 0x3FA320, 0x48 - -gUnknown_83FA368:: @ 83FA368 - .incbin "baserom.gba", 0x3FA368, 0x48 - -gUnknown_83FA3B0:: @ 83FA3B0 - .incbin "baserom.gba", 0x3FA3B0, 0x10 - -gUnknown_83FA3C0:: @ 83FA3C0 - .incbin "baserom.gba", 0x3FA3C0, 0xC - -gUnknown_83FA3CC:: @ 83FA3CC - .incbin "baserom.gba", 0x3FA3CC, 0x8 - -gUnknown_83FA3D4:: @ 83FA3D4 - .incbin "baserom.gba", 0x3FA3D4, 0x8 - -gUnknown_83FA3DC:: @ 83FA3DC - .incbin "baserom.gba", 0x3FA3DC, 0x18 - -gUnknown_83FA3F4:: @ 83FA3F4 - .incbin "baserom.gba", 0x3FA3F4, 0xC - -gUnknown_83FA400:: @ 83FA400 - .incbin "baserom.gba", 0x3FA400, 0x4 - -gUnknown_83FA404:: @ 83FA404 - .incbin "baserom.gba", 0x3FA404, 0xA - -gUnknown_83FA40E:: @ 83FA40E - .incbin "baserom.gba", 0x3FA40E, 0x6 - -gUnknown_83FA414:: @ 83FA414 - .incbin "baserom.gba", 0x3FA414, 0x1C - -gUnknown_83FA430:: @ 83FA430 - .incbin "baserom.gba", 0x3FA430, 0x8 - -gUnknown_83FA438:: @ 83FA438 - .incbin "baserom.gba", 0x3FA438, 0xC - -gUnknown_83FA444:: @ 83FA444 - .incbin "baserom.gba", 0x3FA444, 0x20 - -gUnknown_83FA464:: @ 83FA464 - .incbin "baserom.gba", 0x3FA464, 0x8 - -gUnknown_83FA46C:: @ 83FA46C - .incbin "baserom.gba", 0x3FA46C, 0x28 - -gUnknown_83FA494:: @ 83FA494 - .incbin "baserom.gba", 0x3FA494, 0x6 - -gUnknown_83FA49A:: @ 83FA49A - .incbin "baserom.gba", 0x3FA49A, 0x14 - -gUnknown_83FA4AE:: @ 83FA4AE - .incbin "baserom.gba", 0x3FA4AE, 0x16 - -gUnknown_83FA4C4:: @ 83FA4C4 - .incbin "baserom.gba", 0x3FA4C4, 0x1C - -gUnknown_83FA4E0:: @ 83FA4E0 - .incbin "baserom.gba", 0x3FA4E0, 0x4 - -gUnknown_83FA4E4:: @ 83FA4E4 - .incbin "baserom.gba", 0x3FA4E4, 0x4 - -gUnknown_83FA4E8:: @ 83FA4E8 - .incbin "baserom.gba", 0x3FA4E8, 0xC - -gUnknown_83FA4F4:: @ 83FA4F4 - .incbin "baserom.gba", 0x3FA4F4, 0x14 - -gUnknown_83FA508:: @ 83FA508 - .incbin "baserom.gba", 0x3FA508, 0xC - -gUnknown_83FA514:: @ 83FA514 - .incbin "baserom.gba", 0x3FA514, 0xC - -gUnknown_83FA520:: @ 83FA520 - .incbin "baserom.gba", 0x3FA520, 0x14 - -gUnknown_83FA534:: @ 83FA534 - .incbin "baserom.gba", 0x3FA534, 0x46 - -gUnknown_83FA57A:: @ 83FA57A - .incbin "baserom.gba", 0x3FA57A, 0xE - -gUnknown_83FA588:: @ 83FA588 - .incbin "baserom.gba", 0x3FA588, 0x44 - -gUnknown_83FA5CC:: @ 83FA5CC - .incbin "baserom.gba", 0x3FA5CC, 0x6C - -gUnknown_83FA638:: @ 83FA638 - .incbin "baserom.gba", 0x3FA638, 0x108 - -gUnknown_83FA740:: @ 83FA740 - .incbin "baserom.gba", 0x3FA740, 0x14 - -gUnknown_83FA754:: @ 83FA754 - .incbin "baserom.gba", 0x3FA754, 0x30 - -gUnknown_83FA784:: @ 83FA784 - .incbin "baserom.gba", 0x3FA784, 0x4B0 - -gUnknown_83FAC34:: @ 83FAC34 - .incbin "baserom.gba", 0x3FAC34, 0x500 - -gUnknown_83FB134:: @ 83FB134 - .incbin "baserom.gba", 0x3FB134, 0xA80 - -BattleText_MistShroud:: @ 83FBBB4 - .incbin "baserom.gba", 0x3FBBB4, 0x35 - -BattleText_GetPumped:: @ 83FBBE9 - .incbin "baserom.gba", 0x3FBBE9, 0xE43 - -gText_PkmnsXPreventsSwitching:: @ 83FCA2C - .incbin "baserom.gba", 0x3FCA2C, 0x11E - -BattleText_Rose:: @ 83FCB4A - .incbin "baserom.gba", 0x3FCB4A, 0x20 - -BattleText_UnknownString3:: @ 83FCB6A - .incbin "baserom.gba", 0x3FCB6A, 0x120 - -gUnknown_83FCC8A:: @ 83FCC8A - .incbin "baserom.gba", 0x3FCC8A, 0x5A - -gUnknown_83FCCE4:: @ 83FCCE4 - .incbin "baserom.gba", 0x3FCCE4, 0x14 - -gUnknown_83FCCF8:: @ 83FCCF8 - .incbin "baserom.gba", 0x3FCCF8, 0x17 - -gUnknown_83FCD0F:: @ 83FCD0F - .incbin "baserom.gba", 0x3FCD0F, 0x18 - -gUnknown_83FCD27:: @ 83FCD27 - .incbin "baserom.gba", 0x3FCD27, 0x1A - -gUnknown_83FCD41:: @ 83FCD41 - .incbin "baserom.gba", 0x3FCD41, 0x25 - -gUnknown_83FCD66:: @ 83FCD66 - .incbin "baserom.gba", 0x3FCD66, 0x2C - -gUnknown_83FCD92:: @ 83FCD92 - .incbin "baserom.gba", 0x3FCD92, 0xD - -gUnknown_83FCD9F:: @ 83FCD9F - .incbin "baserom.gba", 0x3FCD9F, 0x428 - -gUnknown_83FD1C7:: @ 83FD1C7 - .incbin "baserom.gba", 0x3FD1C7, 0xBD - -gUnknown_83FD284:: @ 83FD284 - .incbin "baserom.gba", 0x3FD284, 0x13 - -gUnknown_83FD297:: @ 83FD297 - .incbin "baserom.gba", 0x3FD297, 0x13 - -gUnknown_83FD2AA:: @ 83FD2AA - .incbin "baserom.gba", 0x3FD2AA, 0x15 - -gUnknown_83FD2BF:: @ 83FD2BF - .incbin "baserom.gba", 0x3FD2BF, 0x1A - -gUnknown_83FD2D9:: @ 83FD2D9 - .incbin "baserom.gba", 0x3FD2D9, 0x34 - -gUnknown_83FD30D:: @ 83FD30D - .incbin "baserom.gba", 0x3FD30D, 0x59 - -gUnknown_83FD366:: @ 83FD366 - .incbin "baserom.gba", 0x3FD366, 0x1D - -gUnknown_83FD383:: @ 83FD383 - .incbin "baserom.gba", 0x3FD383, 0x14 - -gUnknown_83FD397:: @ 83FD397 - .incbin "baserom.gba", 0x3FD397, 0x1A - -gUnknown_83FD3B1:: @ 83FD3B1 - .incbin "baserom.gba", 0x3FD3B1, 0x16 - -gUnknown_83FD3C7:: @ 83FD3C7 - .incbin "baserom.gba", 0x3FD3C7, 0x1D - -gUnknown_83FD3E4:: @ 83FD3E4 - .incbin "baserom.gba", 0x3FD3E4, 0x13 - -gUnknown_83FD3F7:: @ 83FD3F7 - .incbin "baserom.gba", 0x3FD3F7, 0x10 - -gUnknown_83FD407:: @ 83FD407 - .incbin "baserom.gba", 0x3FD407, 0x17 - -gUnknown_83FD41E:: @ 83FD41E - .incbin "baserom.gba", 0x3FD41E, 0x20 - -gUnknown_83FD43E:: @ 83FD43E - .incbin "baserom.gba", 0x3FD43E, 0x10 - -gUnknown_83FD44E:: @ 83FD44E - .incbin "baserom.gba", 0x3FD44E, 0x10 - -gUnknown_83FD45E:: @ 83FD45E - .incbin "baserom.gba", 0x3FD45E, 0x8 - -gUnknown_83FD466:: @ 83FD466 - .incbin "baserom.gba", 0x3FD466, 0xF - -gUnknown_83FD475:: @ 83FD475 - .incbin "baserom.gba", 0x3FD475, 0x8 - -gUnknown_83FD47D:: @ 83FD47D - .incbin "baserom.gba", 0x3FD47D, 0xB - -gUnknown_83FD488:: @ 83FD488 - .incbin "baserom.gba", 0x3FD488, 0xF - -gUnknown_83FD497:: @ 83FD497 - .incbin "baserom.gba", 0x3FD497, 0x1E - -gUnknown_83FD4B5:: @ 83FD4B5 - .incbin "baserom.gba", 0x3FD4B5, 0x18 - -gUnknown_83FD4CD:: @ 83FD4CD - .incbin "baserom.gba", 0x3FD4CD, 0x1E - -gUnknown_83FD4EB:: @ 83FD4EB - .incbin "baserom.gba", 0x3FD4EB, 0xF - -gUnknown_83FD4FA:: @ 83FD4FA - .incbin "baserom.gba", 0x3FD4FA, 0x13 - -gUnknown_83FD50D:: @ 83FD50D - .incbin "baserom.gba", 0x3FD50D, 0x15 - -gUnknown_83FD522:: @ 83FD522 - .incbin "baserom.gba", 0x3FD522, 0x13 - -gUnknown_83FD535:: @ 83FD535 - .incbin "baserom.gba", 0x3FD535, 0x10 - -gUnknown_83FD545:: @ 83FD545 - .incbin "baserom.gba", 0x3FD545, 0x10 - -gUnknown_83FD555:: @ 83FD555 - .incbin "baserom.gba", 0x3FD555, 0x6 - -gUnknown_83FD55B:: @ 83FD55B - .incbin "baserom.gba", 0x3FD55B, 0x5 - -gUnknown_83FD560:: @ 83FD560 - .incbin "baserom.gba", 0x3FD560, 0x4 - -gUnknown_83FD564:: @ 83FD564 - .incbin "baserom.gba", 0x3FD564, 0x5 - -gUnknown_83FD569:: @ 83FD569 - .incbin "baserom.gba", 0x3FD569, 0x4 - -gUnknown_83FD56D:: @ 83FD56D - .incbin "baserom.gba", 0x3FD56D, 0x5 - -gUnknown_83FD572:: @ 83FD572 - .incbin "baserom.gba", 0x3FD572, 0x4 - -gUnknown_83FD576:: @ 83FD576 - .incbin "baserom.gba", 0x3FD576, 0x5 - -gUnknown_83FD57B:: @ 83FD57B - .incbin "baserom.gba", 0x3FD57B, 0xB - -gUnknown_83FD586:: @ 83FD586 - .incbin "baserom.gba", 0x3FD586, 0x2 - -gUnknown_83FD588:: @ 83FD588 - .incbin "baserom.gba", 0x3FD588, 0x2 - -gUnknown_83FD58A:: @ 83FD58A - .incbin "baserom.gba", 0x3FD58A, 0x2 - -gUnknown_83FD58C:: @ 83FD58C - .incbin "baserom.gba", 0x3FD58C, 0x2 - -gUnknown_83FD58E:: @ 83FD58E - .incbin "baserom.gba", 0x3FD58E, 0x42 - -gUnknown_83FD5D0:: @ 83FD5D0 - .incbin "baserom.gba", 0x3FD5D0, 0x6C - -gUnknown_83FD63C:: @ 83FD63C - .incbin "baserom.gba", 0x3FD63C, 0x1DE - -gUnknown_83FD81A:: @ 83FD81A - .incbin "baserom.gba", 0x3FD81A, 0xA - -gUnknown_83FD824:: @ 83FD824 - .incbin "baserom.gba", 0x3FD824, 0x7E - -gUnknown_83FD8A2:: @ 83FD8A2 - .incbin "baserom.gba", 0x3FD8A2, 0xD - -gUnknown_83FD8AF:: @ 83FD8AF - .incbin "baserom.gba", 0x3FD8AF, 0x19D - -gUnknown_83FDA4C:: @ 83FDA4C - .incbin "baserom.gba", 0x3FDA4C, 0x96 - -gUnknown_83FDAE2:: @ 83FDAE2 - .incbin "baserom.gba", 0x3FDAE2, 0xB0 - -gUnknown_83FDB92:: @ 83FDB92 - .incbin "baserom.gba", 0x3FDB92, 0x5D - -gUnknown_83FDBEF:: @ 83FDBEF - .incbin "baserom.gba", 0x3FDBEF, 0x69 - -gUnknown_83FDC58:: @ 83FDC58 - .incbin "baserom.gba", 0x3FDC58, 0x3D - -gUnknown_83FDC95:: @ 83FDC95 - .incbin "baserom.gba", 0x3FDC95, 0x3D - -gUnknown_83FDCD2:: @ 83FDCD2 - .incbin "baserom.gba", 0x3FDCD2, 0x51 - -gUnknown_83FDD23:: @ 83FDD23 - .incbin "baserom.gba", 0x3FDD23, 0x41 - -gUnknown_83FDD64:: @ 83FDD64 - .incbin "baserom.gba", 0x3FDD64, 0x87 - -gUnknown_83FDDEB:: @ 83FDDEB - .incbin "baserom.gba", 0x3FDDEB, 0x151 - -gUnknown_83FDF3C:: @ 83FDF3C - .incbin "baserom.gba", 0x3FDF3C, 0x5D8 - -gUnknown_83FE514:: @ 83FE514 - .incbin "baserom.gba", 0x3FE514, 0x150 - -gUnknown_83FE664:: @ 83FE664 - .incbin "baserom.gba", 0x3FE664, 0xE - -gUnknown_83FE672:: @ 83FE672 - .incbin "baserom.gba", 0x3FE672, 0x16 - -gUnknown_83FE688:: @ 83FE688 - .incbin "baserom.gba", 0x3FE688, 0x2D - -gUnknown_83FE6B5:: @ 83FE6B5 - .incbin "baserom.gba", 0x3FE6B5, 0x1B - -gUnknown_83FE6D0:: @ 83FE6D0 - .incbin "baserom.gba", 0x3FE6D0, 0x5 - -gUnknown_83FE6D5:: @ 83FE6D5 - .incbin "baserom.gba", 0x3FE6D5, 0x11 - -gUnknown_83FE6E6:: @ 83FE6E6 - .incbin "baserom.gba", 0x3FE6E6, 0x14 - -gUnknown_83FE6FA:: @ 83FE6FA - .incbin "baserom.gba", 0x3FE6FA, 0x1A - -gUnknown_83FE714:: @ 83FE714 - .incbin "baserom.gba", 0x3FE714, 0x11 - -gUnknown_83FE725:: @ 83FE725 - .incbin "baserom.gba", 0x3FE725, 0x22 - -gUnknown_83FE747:: @ 83FE747 - .incbin "baserom.gba", 0x3FE747, 0x1F - -gUnknown_83FE766:: @ 83FE766 - .incbin "baserom.gba", 0x3FE766, 0x4 - -gUnknown_83FE76A:: @ 83FE76A - .incbin "baserom.gba", 0x3FE76A, 0x6 - -gUnknown_83FE770:: @ 83FE770 - .incbin "baserom.gba", 0x3FE770, 0x21 - -gUnknown_83FE791:: @ 83FE791 - .incbin "baserom.gba", 0x3FE791, 0xF - -gUnknown_83FE7A0:: @ 83FE7A0 - .incbin "baserom.gba", 0x3FE7A0, 0x6C - -gUnknown_83FE80C:: @ 83FE80C - .incbin "baserom.gba", 0x3FE80C, 0x10 - -gUnknown_83FE81C:: @ 83FE81C - .incbin "baserom.gba", 0x3FE81C, 0x3D - -gUnknown_83FE859:: @ 83FE859 - .incbin "baserom.gba", 0x3FE859, 0x3 - -gUnknown_83FE85C:: @ 83FE85C - .incbin "baserom.gba", 0x3FE85C, 0x2 - -gUnknown_83FE85E:: @ 83FE85E - .incbin "baserom.gba", 0x3FE85E, 0x2 - -gUnknown_83FE860:: @ 83FE860 - .incbin "baserom.gba", 0x3FE860, 0x4 - -gUnknown_83FE864:: @ 83FE864 - .incbin "baserom.gba", 0x3FE864, 0x4 - -gText_BadEgg:: @ 83FE868 - .incbin "baserom.gba", 0x3FE868, 0xC - -gUnknown_83FE874:: @ 83FE874 - .incbin "baserom.gba", 0x3FE874, 0x7 - -gUnknown_83FE87B:: @ 83FE87B - .incbin "baserom.gba", 0x3FE87B, 0x8 - -gUnknown_83FE883:: @ 83FE883 - .incbin "baserom.gba", 0x3FE883, 0x8 - -gUnknown_83FE88B:: @ 83FE88B - .incbin "baserom.gba", 0x3FE88B, 0x4 - -gUnknown_83FE88F:: @ 83FE88F - .incbin "baserom.gba", 0x3FE88F, 0xF3 - -gUnknown_83FE982:: @ 83FE982 - .incbin "baserom.gba", 0x3FE982, 0x16 - -gUnknown_83FE998:: @ 83FE998 - .incbin "baserom.gba", 0x3FE998, 0x2C - -gUnknown_83FE9C4:: @ 83FE9C4 - .incbin "baserom.gba", 0x3FE9C4, 0x10 - -gUnknown_83FE9D4:: @ 83FE9D4 - .incbin "baserom.gba", 0x3FE9D4, 0x10 - -gUnknown_83FE9E4:: @ 83FE9E4 - .incbin "baserom.gba", 0x3FE9E4, 0x1B - -gUnknown_83FE9FF:: @ 83FE9FF - .incbin "baserom.gba", 0x3FE9FF, 0x29 - -gUnknown_83FEA28:: @ 83FEA28 - .incbin "baserom.gba", 0x3FEA28, 0x48 - -gUnknown_83FEA70:: @ 83FEA70 - .incbin "baserom.gba", 0x3FEA70, 0xEC - -gUnknown_83FEB5C:: @ 83FEB5C - .incbin "baserom.gba", 0x3FEB5C, 0x8 - -gUnknown_83FEB64:: @ 83FEB64 - .incbin "baserom.gba", 0x3FEB64, 0x12C - -gUnknown_83FEC90:: @ 83FEC90 - .incbin "baserom.gba", 0x3FEC90, 0x4 - -gUnknown_83FEC94:: @ 83FEC94 - .incbin "baserom.gba", 0x3FEC94, 0x38 - gUnknown_83FECCC:: @ 83FECCC .incbin "baserom.gba", 0x3FECCC, 0x6 @@ -4944,693 +4312,3 @@ gUnknown_8468B6C:: @ 8468B6C gUnknown_8468BCC:: @ 8468BCC .incbin "baserom.gba", 0x468BCC, 0x90 - - .section .rodata.8468C98 - - .align 2 -gUnknown_8468C98:: @ 8468C98 - .incbin "baserom.gba", 0x468C98, 0x520 - -gUnknown_84691B8:: @ 84691B8 - .incbin "baserom.gba", 0x4691B8, 0x20 - -gUnknown_84691D8:: @ 84691D8 - .incbin "baserom.gba", 0x4691D8, 0x800 - -gUnknown_84699D8:: @ 84699D8 - .incbin "baserom.gba", 0x4699D8, 0x1520 - -gUnknown_846AEF8:: @ 846AEF8 - .incbin "baserom.gba", 0x46AEF8, 0x4 - -gUnknown_846AEFC:: @ 846AEFC - .incbin "baserom.gba", 0x46AEFC, 0x2C - -gUnknown_846AF28:: @ 846AF28 - .incbin "baserom.gba", 0x46AF28, 0x38 - -gUnknown_846AF60:: @ 846AF60 - .incbin "baserom.gba", 0x46AF60, 0x18 - -gUnknown_846AF78:: @ 846AF78 - .incbin "baserom.gba", 0x46AF78, 0x18 - -gUnknown_846AF90:: @ 846AF90 - .incbin "baserom.gba", 0x46AF90, 0x40 - -gUnknown_846AFD0:: @ 846AFD0 - .incbin "baserom.gba", 0x46AFD0, 0x45C - -gUnknown_846B42C:: @ 846B42C - .incbin "baserom.gba", 0x46B42C, 0x10 - -gUnknown_846B43C:: @ 846B43C - .incbin "baserom.gba", 0x46B43C, 0x58 - -gUnknown_846B494:: @ 846B494 - .incbin "baserom.gba", 0x46B494, 0x18 - -gUnknown_846B4AC:: @ 846B4AC - .incbin "baserom.gba", 0x46B4AC, 0x10 - -gUnknown_846B4BC:: @ 846B4BC - .incbin "baserom.gba", 0x46B4BC, 0x190 - -gUnknown_846B64C:: @ 846B64C - .incbin "baserom.gba", 0x46B64C, 0x24 - -gUnknown_846B670:: @ 846B670 - .incbin "baserom.gba", 0x46B670, 0x24 - -gUnknown_846B694:: @ 846B694 - .incbin "baserom.gba", 0x46B694, 0x10 - -gUnknown_846B6A4:: @ 846B6A4 - .incbin "baserom.gba", 0x46B6A4, 0x8 - -gUnknown_846B6AC:: @ 846B6AC - .incbin "baserom.gba", 0x46B6AC, 0x8 - -gUnknown_846B6B4:: @ 846B6B4 - .incbin "baserom.gba", 0x46B6B4, 0x90 - -gUnknown_846B744:: @ 846B744 - .incbin "baserom.gba", 0x46B744, 0x18 - -gUnknown_846B75C:: @ 846B75C - .incbin "baserom.gba", 0x46B75C, 0x10 - -gUnknown_846B76C:: @ 846B76C - .incbin "baserom.gba", 0x46B76C, 0x28 - -gUnknown_846B794:: @ 846B794 - .incbin "baserom.gba", 0x46B794, 0x20 - -gUnknown_846B7B4:: @ 846B7B4 - .incbin "baserom.gba", 0x46B7B4, 0x20 - -gUnknown_846B7D4:: @ 846B7D4 - .incbin "baserom.gba", 0x46B7D4, 0x22C - -gUnknown_846BA00:: @ 846BA00 - .incbin "baserom.gba", 0x46BA00, 0x1B0 - -gUnknown_846BBB0:: @ 846BBB0 - .incbin "baserom.gba", 0x46BBB0, 0x20 - -gUnknown_846BBD0:: @ 846BBD0 - .incbin "baserom.gba", 0x46BBD0, 0x950 - -gUnknown_846C520:: @ 846C520 - .incbin "baserom.gba", 0x46C520, 0x3B8 - -gUnknown_846C8D8:: @ 846C8D8 - .incbin "baserom.gba", 0x46C8D8, 0x20 - -gUnknown_846C8F8:: @ 846C8F8 - .incbin "baserom.gba", 0x46C8F8, 0xAB0 - -gUnknown_846D3A8:: @ 846D3A8 - .incbin "baserom.gba", 0x46D3A8, 0x52C - -gUnknown_846D8D4:: @ 846D8D4 - .incbin "baserom.gba", 0x46D8D4, 0x10 - -gUnknown_846D8E4:: @ 846D8E4 - .incbin "baserom.gba", 0x46D8E4, 0x18 - -gUnknown_846D8FC:: @ 846D8FC - .incbin "baserom.gba", 0x46D8FC, 0x50 - -gUnknown_846D94C:: @ 846D94C - .incbin "baserom.gba", 0x46D94C, 0x4 - -gUnknown_846D950:: @ 846D950 - .incbin "baserom.gba", 0x46D950, 0x3 - -gUnknown_846D953:: @ 846D953 - .incbin "baserom.gba", 0x46D953, 0xD - -gUnknown_846D960:: @ 846D960 - .incbin "baserom.gba", 0x46D960, 0x8 - -gUnknown_846D968:: @ 846D968 - .incbin "baserom.gba", 0x46D968, 0x40 - -gUnknown_846D9A8:: @ 846D9A8 - .incbin "baserom.gba", 0x46D9A8, 0x2C - -gUnknown_846D9D4:: @ 846D9D4 - .incbin "baserom.gba", 0x46D9D4, 0x6DC - -gUnknown_846E0B0:: @ 846E0B0 - .incbin "baserom.gba", 0x46E0B0, 0x28 - -gUnknown_846E0D8:: @ 846E0D8 - .incbin "baserom.gba", 0x46E0D8, 0x10 - -gUnknown_846E0E8:: @ 846E0E8 - .incbin "baserom.gba", 0x46E0E8, 0x18 - -gUnknown_846E100:: @ 846E100 - .incbin "baserom.gba", 0x46E100, 0x50 - -gUnknown_846E150:: @ 846E150 - .incbin "baserom.gba", 0x46E150, 0x10 - -gUnknown_846E160:: @ 846E160 - .incbin "baserom.gba", 0x46E160, 0x154 - -gUnknown_846E2B4:: @ 846E2B4 - .incbin "baserom.gba", 0x46E2B4, 0x18 - -gUnknown_846E2CC:: @ 846E2CC - .incbin "baserom.gba", 0x46E2CC, 0x8 - -gUnknown_846E2D4:: @ 846E2D4 - .incbin "baserom.gba", 0x46E2D4, 0xC - -gUnknown_846E2E0:: @ 846E2E0 - .incbin "baserom.gba", 0x46E2E0, 0x8 - -gUnknown_846E2E8:: @ 846E2E8 - .incbin "baserom.gba", 0x46E2E8, 0x8 - -gUnknown_846E2F0:: @ 846E2F0 - .incbin "baserom.gba", 0x46E2F0, 0x24 - -gUnknown_846E314:: @ 846E314 - .incbin "baserom.gba", 0x46E314, 0x14 - -gUnknown_846E328:: @ 846E328 - .incbin "baserom.gba", 0x46E328, 0x24 - -gUnknown_846E34C:: @ 846E34C - .incbin "baserom.gba", 0x46E34C, 0x68 - -gUnknown_846E3B4:: @ 846E3B4 - .incbin "baserom.gba", 0x46E3B4, 0x10 - -gUnknown_846E3C4:: @ 846E3C4 - .incbin "baserom.gba", 0x46E3C4, 0x4 - -gUnknown_846E3C8:: @ 846E3C8 - .incbin "baserom.gba", 0x46E3C8, 0x4 - -gUnknown_846E3CC:: @ 846E3CC - .incbin "baserom.gba", 0x46E3CC, 0x4 - -gUnknown_846E3D0:: @ 846E3D0 - .incbin "baserom.gba", 0x46E3D0, 0xC - -gUnknown_846E3DC:: @ 846E3DC - .incbin "baserom.gba", 0x46E3DC, 0x3 - -gUnknown_846E3DF:: @ 846E3DF - .incbin "baserom.gba", 0x46E3DF, 0x3 - -gUnknown_846E3E2:: @ 846E3E2 - .incbin "baserom.gba", 0x46E3E2, 0x3 - -gUnknown_846E3E5:: @ 846E3E5 - .incbin "baserom.gba", 0x46E3E5, 0x6 - -gUnknown_846E3EB:: @ 846E3EB - .incbin "baserom.gba", 0x46E3EB, 0x5 - -gUnknown_846E3F0:: @ 846E3F0 - .incbin "baserom.gba", 0x46E3F0, 0x8 - -gUnknown_846E3F8:: @ 846E3F8 - .incbin "baserom.gba", 0x46E3F8, 0x50 - -gUnknown_846E448:: @ 846E448 - .incbin "baserom.gba", 0x46E448, 0x8 - -gUnknown_846E450:: @ 846E450 - .incbin "baserom.gba", 0x46E450, 0x940 - -gUnknown_846ED90:: @ 846ED90 - .incbin "baserom.gba", 0x46ED90, 0x130 - -gUnknown_846EEC0:: @ 846EEC0 - .incbin "baserom.gba", 0x46EEC0, 0x198 - -gUnknown_846F058:: @ 846F058 - .incbin "baserom.gba", 0x46F058, 0x228 - -gUnknown_846F280:: @ 846F280 - .incbin "baserom.gba", 0x46F280, 0x14 - -gUnknown_846F294:: @ 846F294 - .incbin "baserom.gba", 0x46F294, 0x3C - -gUnknown_846F2D0:: @ 846F2D0 - .incbin "baserom.gba", 0x46F2D0, 0x1 - -gUnknown_846F2D1:: @ 846F2D1 - .incbin "baserom.gba", 0x46F2D1, 0x5 - -gUnknown_846F2D6:: @ 846F2D6 - .incbin "baserom.gba", 0x46F2D6, 0x1 - -gUnknown_846F2D7:: @ 846F2D7 - .incbin "baserom.gba", 0x46F2D7, 0x15 - -gUnknown_846F2EC:: @ 846F2EC - .incbin "baserom.gba", 0x46F2EC, 0xC - -gUnknown_846F2F8:: @ 846F2F8 - .incbin "baserom.gba", 0x46F2F8, 0x28 - -gUnknown_846F320:: @ 846F320 - .incbin "baserom.gba", 0x46F320, 0xF0 - -gUnknown_846F410:: @ 846F410 - .incbin "baserom.gba", 0x46F410, 0x18 - -gUnknown_846F428:: @ 846F428 - .incbin "baserom.gba", 0x46F428, 0x18 - -gUnknown_846F440:: @ 846F440 - .incbin "baserom.gba", 0x46F440, 0x18 - -gUnknown_846F458:: @ 846F458 - .incbin "baserom.gba", 0x46F458, 0x18 - -gUnknown_846F470:: @ 846F470 - .incbin "baserom.gba", 0x46F470, 0x18 - -gUnknown_846F488:: @ 846F488 - .incbin "baserom.gba", 0x46F488, 0x30 - -gUnknown_846F4B8:: @ 846F4B8 - .incbin "baserom.gba", 0x46F4B8, 0x18 - -gUnknown_846F4D0:: @ 846F4D0 - .incbin "baserom.gba", 0x46F4D0, 0x200 - -gUnknown_846F6D0:: @ 846F6D0 - .incbin "baserom.gba", 0x46F6D0, 0x210 - -gUnknown_846F8E0:: @ 846F8E0 - .incbin "baserom.gba", 0x46F8E0, 0x194 - -gUnknown_846FA74:: @ 846FA74 - .incbin "baserom.gba", 0x46FA74, 0x8 - -gUnknown_846FA7C:: @ 846FA7C - .incbin "baserom.gba", 0x46FA7C, 0x30 - -gUnknown_846FAAC:: @ 846FAAC - .incbin "baserom.gba", 0x46FAAC, 0x14 - -gUnknown_846FAC0:: @ 846FAC0 - .incbin "baserom.gba", 0x46FAC0, 0x48 - -gUnknown_846FB08:: @ 846FB08 - .incbin "baserom.gba", 0x46FB08, 0x4 - -gUnknown_846FB0C:: @ 846FB0C - .incbin "baserom.gba", 0x46FB0C, 0x1000 - -gUnknown_8470B0C:: @ 8470B0C - .incbin "baserom.gba", 0x470B0C, 0xF40 - -gUnknown_8471A4C:: @ 8471A4C - .incbin "baserom.gba", 0x471A4C, 0x120 - -gUnknown_8471B6C:: @ 8471B6C - .incbin "baserom.gba", 0x471B6C, 0x280 - -gUnknown_8471DEC:: @ 8471DEC - .incbin "baserom.gba", 0x471DEC, 0xA0 - -gUnknown_8471E8C:: @ 8471E8C - .incbin "baserom.gba", 0x471E8C, 0x50 - -gUnknown_8471EDC:: @ 8471EDC - .incbin "baserom.gba", 0x471EDC, 0x74 - -gUnknown_8471F50:: @ 8471F50 - .incbin "baserom.gba", 0x471F50, 0x113 - -gUnknown_8472063:: @ 8472063 - .incbin "baserom.gba", 0x472063, 0x4B - -gUnknown_84720AE:: @ 84720AE - .incbin "baserom.gba", 0x4720AE, 0x4E - -gUnknown_84720FC:: @ 84720FC - .incbin "baserom.gba", 0x4720FC, 0x37 - -gUnknown_8472133:: @ 8472133 - .incbin "baserom.gba", 0x472133, 0x3409 - -gUnknown_847553C:: @ 847553C - .incbin "baserom.gba", 0x47553C, 0xC - -gUnknown_8475548:: @ 8475548 - .incbin "baserom.gba", 0x475548, 0x8 - -gUnknown_8475550:: @ 8475550 - .incbin "baserom.gba", 0x475550, 0x8 - -gUnknown_8475558:: @ 8475558 - .incbin "baserom.gba", 0x475558, 0x20 - -gUnknown_8475578:: @ 8475578 - .incbin "baserom.gba", 0x475578, 0x30 - -gUnknown_84755A8:: @ 84755A8 - .incbin "baserom.gba", 0x4755A8, 0x30 - -gUnknown_84755D8:: @ 84755D8 - .incbin "baserom.gba", 0x4755D8, 0x8 - -gUnknown_84755E0:: @ 84755E0 - .incbin "baserom.gba", 0x4755E0, 0x8 - -gUnknown_84755E8:: @ 84755E8 - .incbin "baserom.gba", 0x4755E8, 0x10 - -gUnknown_84755F8:: @ 84755F8 - .incbin "baserom.gba", 0x4755F8, 0x4 - -gUnknown_84755FC:: @ 84755FC - .incbin "baserom.gba", 0x4755FC, 0x6 - -gUnknown_8475602:: @ 8475602 - .incbin "baserom.gba", 0x475602, 0x6 - -gUnknown_8475608:: @ 8475608 - .incbin "baserom.gba", 0x475608, 0x40 - -gUnknown_8475648:: @ 8475648 - .incbin "baserom.gba", 0x475648, 0x14 - -gUnknown_847565C:: @ 847565C - .incbin "baserom.gba", 0x47565C, 0x18 - -gUnknown_8475674:: @ 8475674 - .incbin "baserom.gba", 0x475674, 0x10 - -gUnknown_8475684:: @ 8475684 - .incbin "baserom.gba", 0x475684, 0x8 - -gUnknown_847568C:: @ 847568C - .incbin "baserom.gba", 0x47568C, 0x10 - -gUnknown_847569C:: @ 847569C - .incbin "baserom.gba", 0x47569C, 0x8 - -gUnknown_84756A4:: @ 84756A4 - .incbin "baserom.gba", 0x4756A4, 0x204 - -gUnknown_84758A8:: @ 84758A8 - .incbin "baserom.gba", 0x4758A8, 0xC0 - -gUnknown_8475968:: @ 8475968 - .incbin "baserom.gba", 0x475968, 0x1D4 - -gUnknown_8475B3C:: @ 8475B3C - .incbin "baserom.gba", 0x475B3C, 0x890 - -gUnknown_84763CC:: @ 84763CC - .incbin "baserom.gba", 0x4763CC, 0xDCC - -gUnknown_8477198:: @ 8477198 - .incbin "baserom.gba", 0x477198, 0x94 - -gUnknown_847722C:: @ 847722C - .incbin "baserom.gba", 0x47722C, 0x148 - -gUnknown_8477374:: @ 8477374 - .incbin "baserom.gba", 0x477374, 0x121C - -gUnknown_8478590:: @ 8478590 - .incbin "baserom.gba", 0x478590, 0x26C - -gUnknown_84787FC:: @ 84787FC - .incbin "baserom.gba", 0x4787FC, 0x250 - -gUnknown_8478A4C:: @ 8478A4C - .incbin "baserom.gba", 0x478A4C, 0x24C - -gUnknown_8478C98:: @ 8478C98 - .incbin "baserom.gba", 0x478C98, 0x48 - -gUnknown_8478CE0:: @ 8478CE0 - .incbin "baserom.gba", 0x478CE0, 0xB0 - -gUnknown_8478D90:: @ 8478D90 - .incbin "baserom.gba", 0x478D90, 0x8 - -gUnknown_8478D98:: @ 8478D98 - .incbin "baserom.gba", 0x478D98, 0x8 - -gUnknown_8478DA0:: @ 8478DA0 - .incbin "baserom.gba", 0x478DA0, 0x8 - -gUnknown_8478DA8:: @ 8478DA8 - .incbin "baserom.gba", 0x478DA8, 0x24 - -gUnknown_8478DCC:: @ 8478DCC - .incbin "baserom.gba", 0x478DCC, 0x8 - -gUnknown_8478DD4:: @ 8478DD4 - .incbin "baserom.gba", 0x478DD4, 0x8 - -gUnknown_8478DDC:: @ 8478DDC - .incbin "baserom.gba", 0x478DDC, 0x18 - -gUnknown_8478DF4:: @ 8478DF4 - .incbin "baserom.gba", 0x478DF4, 0x18 - -gUnknown_8478E0C:: @ 8478E0C - .incbin "baserom.gba", 0x478E0C, 0x2 - -gUnknown_8478E0E:: @ 8478E0E - .incbin "baserom.gba", 0x478E0E, 0xA - -gUnknown_8478E18:: @ 8478E18 - .incbin "baserom.gba", 0x478E18, 0x8 - -gUnknown_8478E20:: @ 8478E20 - .incbin "baserom.gba", 0x478E20, 0x18 - -gUnknown_8478E38:: @ 8478E38 - .incbin "baserom.gba", 0x478E38, 0x3 - -gUnknown_8478E3B:: @ 8478E3B - .incbin "baserom.gba", 0x478E3B, 0x45 - -gUnknown_8478E80:: @ 8478E80 - .incbin "baserom.gba", 0x478E80, 0x14 - -gUnknown_8478E94:: @ 8478E94 - .incbin "baserom.gba", 0x478E94, 0x14 - -gUnknown_8478EA8:: @ 8478EA8 - .incbin "baserom.gba", 0x478EA8, 0x8 - -gUnknown_8478EB0:: @ 8478EB0 - .incbin "baserom.gba", 0x478EB0, 0xA - -gUnknown_8478EBA:: @ 8478EBA - .incbin "baserom.gba", 0x478EBA, 0xA - -gUnknown_8478EC4:: @ 8478EC4 - .incbin "baserom.gba", 0x478EC4, 0x50 - -gUnknown_8478F14:: @ 8478F14 - .incbin "baserom.gba", 0x478F14, 0x8 - -gUnknown_8478F1C:: @ 8478F1C - .incbin "baserom.gba", 0x478F1C, 0x144 - -gUnknown_8479060:: @ 8479060 - .incbin "baserom.gba", 0x479060, 0x78 - -gUnknown_84790D8:: @ 84790D8 - .incbin "baserom.gba", 0x4790D8, 0xC0 - -gUnknown_8479198:: @ 8479198 - .incbin "baserom.gba", 0x479198, 0x10 - -gUnknown_84791A8:: @ 84791A8 - .incbin "baserom.gba", 0x4791A8, 0x10 - -gUnknown_84791B8:: @ 84791B8 - .incbin "baserom.gba", 0x4791B8, 0x14 - -gUnknown_84791CC:: @ 84791CC - .incbin "baserom.gba", 0x4791CC, 0x1C - -gUnknown_84791E8:: @ 84791E8 - .incbin "baserom.gba", 0x4791E8, 0xE8 - -gUnknown_84792D0:: @ 84792D0 - .incbin "baserom.gba", 0x4792D0, 0x10 - -gUnknown_84792E0:: @ 84792E0 - .incbin "baserom.gba", 0x4792E0, 0x10 - -gUnknown_84792F0:: @ 84792F0 - .incbin "baserom.gba", 0x4792F0, 0x50 - -gUnknown_8479340:: @ 8479340 - .incbin "baserom.gba", 0x479340, 0x28 - -gUnknown_8479368:: @ 8479368 - .incbin "baserom.gba", 0x479368, 0x18 - -gUnknown_8479380:: @ 8479380 - .incbin "baserom.gba", 0x479380, 0x10 - -gUnknown_8479390:: @ 8479390 - .incbin "baserom.gba", 0x479390, 0x1B8 - -gUnknown_8479548:: @ 8479548 - .incbin "baserom.gba", 0x479548, 0x18 - -gUnknown_8479560:: @ 8479560 - .incbin "baserom.gba", 0x479560, 0x18 - -gUnknown_8479578:: @ 8479578 - .incbin "baserom.gba", 0x479578, 0x18 - -gUnknown_8479590:: @ 8479590 - .incbin "baserom.gba", 0x479590, 0x28 - -gUnknown_84795B8:: @ 84795B8 - .incbin "baserom.gba", 0x4795B8, 0x10 - -gUnknown_84795C8:: @ 84795C8 - .incbin "baserom.gba", 0x4795C8, 0x90 - -gUnknown_8479658:: @ 8479658 - .incbin "baserom.gba", 0x479658, 0x600 - -gUnknown_8479C58:: @ 8479C58 - .incbin "baserom.gba", 0x479C58, 0x30 - -gUnknown_8479C88:: @ 8479C88 - .incbin "baserom.gba", 0x479C88, 0x38 - -gUnknown_8479CC0:: @ 8479CC0 - .incbin "baserom.gba", 0x479CC0, 0x18 - - .align 2 -gUnknown_8479CD8:: @ 8479CD8 - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" - - .align 2 -gUnknown_8479D10:: @ 8479D10 - .asciz "ttdata->dummy == 0" - - .align 2 -gUnknown_8479D24:: @ 8479D24 - .asciz "ttdata->id == 0" - -gUnknown_8479D34:: @ 8479D34 - .incbin "baserom.gba", 0x479D34, 0x4 - -gUnknown_8479D38:: @ 8479D38 - .incbin "baserom.gba", 0x479D38, 0x8 - -gUnknown_8479D40:: @ 8479D40 - .incbin "baserom.gba", 0x479D40, 0x8 - -gUnknown_8479D48:: @ 8479D48 - .incbin "baserom.gba", 0x479D48, 0x190 - -gUnknown_8479ED8:: @ 8479ED8 - .incbin "baserom.gba", 0x479ED8, 0x14C - -gUnknown_847A024:: @ 847A024 - .incbin "baserom.gba", 0x47A024, 0x50 - -gUnknown_847A074:: @ 847A074 - .incbin "baserom.gba", 0x47A074, 0x1A4 - -gUnknown_847A218:: @ 847A218 - .incbin "baserom.gba", 0x47A218, 0x14 - -gUnknown_847A22C:: @ 847A22C - .incbin "baserom.gba", 0x47A22C, 0x4 - -gUnknown_847A230:: @ 847A230 - .incbin "baserom.gba", 0x47A230, 0x54 - -gUnknown_847A284:: @ 847A284 - .incbin "baserom.gba", 0x47A284, 0x30 - -gUnknown_847A2B4:: @ 847A2B4 - .incbin "baserom.gba", 0x47A2B4, 0x1E - -gUnknown_847A2D2:: @ 847A2D2 - .incbin "baserom.gba", 0x47A2D2, 0x1C - -gUnknown_847A2EE:: @ 847A2EE - .incbin "baserom.gba", 0x47A2EE, 0x10 - -gUnknown_847A2FE:: @ 847A2FE - .incbin "baserom.gba", 0x47A2FE, 0x10 - -gUnknown_847A30E:: @ 847A30E - .incbin "baserom.gba", 0x47A30E, 0x48E - -gUnknown_847A79C:: @ 847A79C - .incbin "baserom.gba", 0x47A79C, 0x8 - -gUnknown_847A7A4:: @ 847A7A4 - .incbin "baserom.gba", 0x47A7A4, 0xBC - -gUnknown_847A860:: @ 847A860 - .incbin "baserom.gba", 0x47A860, 0x18 - -gUnknown_847A878:: @ 847A878 - .incbin "baserom.gba", 0x47A878, 0x18 - -gUnknown_847A890:: @ 847A890 - .incbin "baserom.gba", 0x47A890, 0x7F1C - -gUnknown_84827AC:: @ 84827AC - .incbin "baserom.gba", 0x4827AC, 0x8 - -gUnknown_84827B4:: @ 84827B4 - .incbin "baserom.gba", 0x4827B4, 0x5F34 - -gUnknown_84886E8:: @ 84886E8 - .incbin "baserom.gba", 0x4886E8, 0x588 - -gUnknown_8488C70:: @ 8488C70 - .incbin "baserom.gba", 0x488C70, 0x32 - -gUnknown_8488CA2:: @ 8488CA2 - .incbin "baserom.gba", 0x488CA2, 0x2C - -gUnknown_8488CCE:: @ 8488CCE - .incbin "baserom.gba", 0x488CCE, 0x28 - -gUnknown_8488CF6:: @ 8488CF6 - .incbin "baserom.gba", 0x488CF6, 0x34 - -gUnknown_8488D2A:: @ 8488D2A - .incbin "baserom.gba", 0x488D2A, 0x36 - -gUnknown_8488D60:: @ 8488D60 - .incbin "baserom.gba", 0x488D60, 0x1C - -gUnknown_8488D7C:: @ 8488D7C - .incbin "baserom.gba", 0x488D7C, 0x12 - -gUnknown_8488D8E:: @ 8488D8E - .incbin "baserom.gba", 0x488D8E, 0x2F - -gUnknown_8488DBD:: @ 8488DBD - .incbin "baserom.gba", 0x488DBD, 0x40 - -gUnknown_8488DFD:: @ 8488DFD - .incbin "baserom.gba", 0x488DFD, 0xB6B diff --git a/data/data_8468C98.s b/data/data_8468C98.s new file mode 100644 index 000000000..26a638f61 --- /dev/null +++ b/data/data_8468C98.s @@ -0,0 +1,689 @@ + .section .rodata + + .align 2 +gUnknown_8468C98:: @ 8468C98 + .incbin "baserom.gba", 0x468C98, 0x520 + +gUnknown_84691B8:: @ 84691B8 + .incbin "baserom.gba", 0x4691B8, 0x20 + +gUnknown_84691D8:: @ 84691D8 + .incbin "baserom.gba", 0x4691D8, 0x800 + +gUnknown_84699D8:: @ 84699D8 + .incbin "baserom.gba", 0x4699D8, 0x1520 + +gUnknown_846AEF8:: @ 846AEF8 + .incbin "baserom.gba", 0x46AEF8, 0x4 + +gUnknown_846AEFC:: @ 846AEFC + .incbin "baserom.gba", 0x46AEFC, 0x2C + +gUnknown_846AF28:: @ 846AF28 + .incbin "baserom.gba", 0x46AF28, 0x38 + +gUnknown_846AF60:: @ 846AF60 + .incbin "baserom.gba", 0x46AF60, 0x18 + +gUnknown_846AF78:: @ 846AF78 + .incbin "baserom.gba", 0x46AF78, 0x18 + +gUnknown_846AF90:: @ 846AF90 + .incbin "baserom.gba", 0x46AF90, 0x40 + +gUnknown_846AFD0:: @ 846AFD0 + .incbin "baserom.gba", 0x46AFD0, 0x45C + +gUnknown_846B42C:: @ 846B42C + .incbin "baserom.gba", 0x46B42C, 0x10 + +gUnknown_846B43C:: @ 846B43C + .incbin "baserom.gba", 0x46B43C, 0x58 + +gUnknown_846B494:: @ 846B494 + .incbin "baserom.gba", 0x46B494, 0x18 + +gUnknown_846B4AC:: @ 846B4AC + .incbin "baserom.gba", 0x46B4AC, 0x10 + +gUnknown_846B4BC:: @ 846B4BC + .incbin "baserom.gba", 0x46B4BC, 0x190 + +gUnknown_846B64C:: @ 846B64C + .incbin "baserom.gba", 0x46B64C, 0x24 + +gUnknown_846B670:: @ 846B670 + .incbin "baserom.gba", 0x46B670, 0x24 + +gUnknown_846B694:: @ 846B694 + .incbin "baserom.gba", 0x46B694, 0x10 + +gUnknown_846B6A4:: @ 846B6A4 + .incbin "baserom.gba", 0x46B6A4, 0x8 + +gUnknown_846B6AC:: @ 846B6AC + .incbin "baserom.gba", 0x46B6AC, 0x8 + +gUnknown_846B6B4:: @ 846B6B4 + .incbin "baserom.gba", 0x46B6B4, 0x90 + +gUnknown_846B744:: @ 846B744 + .incbin "baserom.gba", 0x46B744, 0x18 + +gUnknown_846B75C:: @ 846B75C + .incbin "baserom.gba", 0x46B75C, 0x10 + +gUnknown_846B76C:: @ 846B76C + .incbin "baserom.gba", 0x46B76C, 0x28 + +gUnknown_846B794:: @ 846B794 + .incbin "baserom.gba", 0x46B794, 0x20 + +gUnknown_846B7B4:: @ 846B7B4 + .incbin "baserom.gba", 0x46B7B4, 0x20 + +gUnknown_846B7D4:: @ 846B7D4 + .incbin "baserom.gba", 0x46B7D4, 0x22C + +gUnknown_846BA00:: @ 846BA00 + .incbin "baserom.gba", 0x46BA00, 0x1B0 + +gUnknown_846BBB0:: @ 846BBB0 + .incbin "baserom.gba", 0x46BBB0, 0x20 + +gUnknown_846BBD0:: @ 846BBD0 + .incbin "baserom.gba", 0x46BBD0, 0x950 + +gUnknown_846C520:: @ 846C520 + .incbin "baserom.gba", 0x46C520, 0x3B8 + +gUnknown_846C8D8:: @ 846C8D8 + .incbin "baserom.gba", 0x46C8D8, 0x20 + +gUnknown_846C8F8:: @ 846C8F8 + .incbin "baserom.gba", 0x46C8F8, 0xAB0 + +gUnknown_846D3A8:: @ 846D3A8 + .incbin "baserom.gba", 0x46D3A8, 0x52C + +gUnknown_846D8D4:: @ 846D8D4 + .incbin "baserom.gba", 0x46D8D4, 0x10 + +gUnknown_846D8E4:: @ 846D8E4 + .incbin "baserom.gba", 0x46D8E4, 0x18 + +gUnknown_846D8FC:: @ 846D8FC + .incbin "baserom.gba", 0x46D8FC, 0x50 + +gUnknown_846D94C:: @ 846D94C + .incbin "baserom.gba", 0x46D94C, 0x4 + +gUnknown_846D950:: @ 846D950 + .incbin "baserom.gba", 0x46D950, 0x3 + +gUnknown_846D953:: @ 846D953 + .incbin "baserom.gba", 0x46D953, 0xD + +gUnknown_846D960:: @ 846D960 + .incbin "baserom.gba", 0x46D960, 0x8 + +gUnknown_846D968:: @ 846D968 + .incbin "baserom.gba", 0x46D968, 0x40 + +gUnknown_846D9A8:: @ 846D9A8 + .incbin "baserom.gba", 0x46D9A8, 0x2C + +gUnknown_846D9D4:: @ 846D9D4 + .incbin "baserom.gba", 0x46D9D4, 0x6DC + +gUnknown_846E0B0:: @ 846E0B0 + .incbin "baserom.gba", 0x46E0B0, 0x28 + +gUnknown_846E0D8:: @ 846E0D8 + .incbin "baserom.gba", 0x46E0D8, 0x10 + +gUnknown_846E0E8:: @ 846E0E8 + .incbin "baserom.gba", 0x46E0E8, 0x18 + +gUnknown_846E100:: @ 846E100 + .incbin "baserom.gba", 0x46E100, 0x50 + +gUnknown_846E150:: @ 846E150 + .incbin "baserom.gba", 0x46E150, 0x10 + +gUnknown_846E160:: @ 846E160 + .incbin "baserom.gba", 0x46E160, 0x154 + +gUnknown_846E2B4:: @ 846E2B4 + .incbin "baserom.gba", 0x46E2B4, 0x18 + +gUnknown_846E2CC:: @ 846E2CC + .incbin "baserom.gba", 0x46E2CC, 0x8 + +gUnknown_846E2D4:: @ 846E2D4 + .incbin "baserom.gba", 0x46E2D4, 0xC + +gUnknown_846E2E0:: @ 846E2E0 + .incbin "baserom.gba", 0x46E2E0, 0x8 + +gUnknown_846E2E8:: @ 846E2E8 + .incbin "baserom.gba", 0x46E2E8, 0x8 + +gUnknown_846E2F0:: @ 846E2F0 + .incbin "baserom.gba", 0x46E2F0, 0x24 + +gUnknown_846E314:: @ 846E314 + .incbin "baserom.gba", 0x46E314, 0x14 + +gUnknown_846E328:: @ 846E328 + .incbin "baserom.gba", 0x46E328, 0x24 + +gUnknown_846E34C:: @ 846E34C + .incbin "baserom.gba", 0x46E34C, 0x68 + +gUnknown_846E3B4:: @ 846E3B4 + .incbin "baserom.gba", 0x46E3B4, 0x10 + +gUnknown_846E3C4:: @ 846E3C4 + .incbin "baserom.gba", 0x46E3C4, 0x4 + +gUnknown_846E3C8:: @ 846E3C8 + .incbin "baserom.gba", 0x46E3C8, 0x4 + +gUnknown_846E3CC:: @ 846E3CC + .incbin "baserom.gba", 0x46E3CC, 0x4 + +gUnknown_846E3D0:: @ 846E3D0 + .incbin "baserom.gba", 0x46E3D0, 0xC + +gUnknown_846E3DC:: @ 846E3DC + .incbin "baserom.gba", 0x46E3DC, 0x3 + +gUnknown_846E3DF:: @ 846E3DF + .incbin "baserom.gba", 0x46E3DF, 0x3 + +gUnknown_846E3E2:: @ 846E3E2 + .incbin "baserom.gba", 0x46E3E2, 0x3 + +gUnknown_846E3E5:: @ 846E3E5 + .incbin "baserom.gba", 0x46E3E5, 0x6 + +gUnknown_846E3EB:: @ 846E3EB + .incbin "baserom.gba", 0x46E3EB, 0x5 + +gUnknown_846E3F0:: @ 846E3F0 + .incbin "baserom.gba", 0x46E3F0, 0x8 + +gUnknown_846E3F8:: @ 846E3F8 + .incbin "baserom.gba", 0x46E3F8, 0x50 + +gUnknown_846E448:: @ 846E448 + .incbin "baserom.gba", 0x46E448, 0x8 + +gUnknown_846E450:: @ 846E450 + .incbin "baserom.gba", 0x46E450, 0x940 + +gUnknown_846ED90:: @ 846ED90 + .incbin "baserom.gba", 0x46ED90, 0x130 + +gUnknown_846EEC0:: @ 846EEC0 + .incbin "baserom.gba", 0x46EEC0, 0x198 + +gUnknown_846F058:: @ 846F058 + .incbin "baserom.gba", 0x46F058, 0x228 + +gUnknown_846F280:: @ 846F280 + .incbin "baserom.gba", 0x46F280, 0x14 + +gUnknown_846F294:: @ 846F294 + .incbin "baserom.gba", 0x46F294, 0x3C + +gUnknown_846F2D0:: @ 846F2D0 + .incbin "baserom.gba", 0x46F2D0, 0x1 + +gUnknown_846F2D1:: @ 846F2D1 + .incbin "baserom.gba", 0x46F2D1, 0x5 + +gUnknown_846F2D6:: @ 846F2D6 + .incbin "baserom.gba", 0x46F2D6, 0x1 + +gUnknown_846F2D7:: @ 846F2D7 + .incbin "baserom.gba", 0x46F2D7, 0x15 + +gUnknown_846F2EC:: @ 846F2EC + .incbin "baserom.gba", 0x46F2EC, 0xC + +gUnknown_846F2F8:: @ 846F2F8 + .incbin "baserom.gba", 0x46F2F8, 0x28 + +gUnknown_846F320:: @ 846F320 + .incbin "baserom.gba", 0x46F320, 0xF0 + +gUnknown_846F410:: @ 846F410 + .incbin "baserom.gba", 0x46F410, 0x18 + +gUnknown_846F428:: @ 846F428 + .incbin "baserom.gba", 0x46F428, 0x18 + +gUnknown_846F440:: @ 846F440 + .incbin "baserom.gba", 0x46F440, 0x18 + +gUnknown_846F458:: @ 846F458 + .incbin "baserom.gba", 0x46F458, 0x18 + +gUnknown_846F470:: @ 846F470 + .incbin "baserom.gba", 0x46F470, 0x18 + +gUnknown_846F488:: @ 846F488 + .incbin "baserom.gba", 0x46F488, 0x30 + +gUnknown_846F4B8:: @ 846F4B8 + .incbin "baserom.gba", 0x46F4B8, 0x18 + +gUnknown_846F4D0:: @ 846F4D0 + .incbin "baserom.gba", 0x46F4D0, 0x200 + +gUnknown_846F6D0:: @ 846F6D0 + .incbin "baserom.gba", 0x46F6D0, 0x210 + +gUnknown_846F8E0:: @ 846F8E0 + .incbin "baserom.gba", 0x46F8E0, 0x194 + +gUnknown_846FA74:: @ 846FA74 + .incbin "baserom.gba", 0x46FA74, 0x8 + +gUnknown_846FA7C:: @ 846FA7C + .incbin "baserom.gba", 0x46FA7C, 0x30 + +gUnknown_846FAAC:: @ 846FAAC + .incbin "baserom.gba", 0x46FAAC, 0x14 + +gUnknown_846FAC0:: @ 846FAC0 + .incbin "baserom.gba", 0x46FAC0, 0x48 + +gUnknown_846FB08:: @ 846FB08 + .incbin "baserom.gba", 0x46FB08, 0x4 + +gUnknown_846FB0C:: @ 846FB0C + .incbin "baserom.gba", 0x46FB0C, 0x1000 + +gUnknown_8470B0C:: @ 8470B0C + .incbin "baserom.gba", 0x470B0C, 0xF40 + +gUnknown_8471A4C:: @ 8471A4C + .incbin "baserom.gba", 0x471A4C, 0x120 + +gUnknown_8471B6C:: @ 8471B6C + .incbin "baserom.gba", 0x471B6C, 0x280 + +gUnknown_8471DEC:: @ 8471DEC + .incbin "baserom.gba", 0x471DEC, 0xA0 + +gUnknown_8471E8C:: @ 8471E8C + .incbin "baserom.gba", 0x471E8C, 0x50 + +gUnknown_8471EDC:: @ 8471EDC + .incbin "baserom.gba", 0x471EDC, 0x74 + +gUnknown_8471F50:: @ 8471F50 + .incbin "baserom.gba", 0x471F50, 0x113 + +gUnknown_8472063:: @ 8472063 + .incbin "baserom.gba", 0x472063, 0x4B + +gUnknown_84720AE:: @ 84720AE + .incbin "baserom.gba", 0x4720AE, 0x4E + +gUnknown_84720FC:: @ 84720FC + .incbin "baserom.gba", 0x4720FC, 0x37 + +gUnknown_8472133:: @ 8472133 + .incbin "baserom.gba", 0x472133, 0x3409 + +gUnknown_847553C:: @ 847553C + .incbin "baserom.gba", 0x47553C, 0xC + +gUnknown_8475548:: @ 8475548 + .incbin "baserom.gba", 0x475548, 0x8 + +gUnknown_8475550:: @ 8475550 + .incbin "baserom.gba", 0x475550, 0x8 + +gUnknown_8475558:: @ 8475558 + .incbin "baserom.gba", 0x475558, 0x20 + +gUnknown_8475578:: @ 8475578 + .incbin "baserom.gba", 0x475578, 0x30 + +gUnknown_84755A8:: @ 84755A8 + .incbin "baserom.gba", 0x4755A8, 0x30 + +gUnknown_84755D8:: @ 84755D8 + .incbin "baserom.gba", 0x4755D8, 0x8 + +gUnknown_84755E0:: @ 84755E0 + .incbin "baserom.gba", 0x4755E0, 0x8 + +gUnknown_84755E8:: @ 84755E8 + .incbin "baserom.gba", 0x4755E8, 0x10 + +gUnknown_84755F8:: @ 84755F8 + .incbin "baserom.gba", 0x4755F8, 0x4 + +gUnknown_84755FC:: @ 84755FC + .incbin "baserom.gba", 0x4755FC, 0x6 + +gUnknown_8475602:: @ 8475602 + .incbin "baserom.gba", 0x475602, 0x6 + +gUnknown_8475608:: @ 8475608 + .incbin "baserom.gba", 0x475608, 0x40 + +gUnknown_8475648:: @ 8475648 + .incbin "baserom.gba", 0x475648, 0x14 + +gUnknown_847565C:: @ 847565C + .incbin "baserom.gba", 0x47565C, 0x18 + +gUnknown_8475674:: @ 8475674 + .incbin "baserom.gba", 0x475674, 0x10 + +gUnknown_8475684:: @ 8475684 + .incbin "baserom.gba", 0x475684, 0x8 + +gUnknown_847568C:: @ 847568C + .incbin "baserom.gba", 0x47568C, 0x10 + +gUnknown_847569C:: @ 847569C + .incbin "baserom.gba", 0x47569C, 0x8 + +gUnknown_84756A4:: @ 84756A4 + .incbin "baserom.gba", 0x4756A4, 0x204 + +gUnknown_84758A8:: @ 84758A8 + .incbin "baserom.gba", 0x4758A8, 0xC0 + +gUnknown_8475968:: @ 8475968 + .incbin "baserom.gba", 0x475968, 0x1D4 + +gUnknown_8475B3C:: @ 8475B3C + .incbin "baserom.gba", 0x475B3C, 0x890 + +gUnknown_84763CC:: @ 84763CC + .incbin "baserom.gba", 0x4763CC, 0xDCC + +gUnknown_8477198:: @ 8477198 + .incbin "baserom.gba", 0x477198, 0x94 + +gUnknown_847722C:: @ 847722C + .incbin "baserom.gba", 0x47722C, 0x148 + +gUnknown_8477374:: @ 8477374 + .incbin "baserom.gba", 0x477374, 0x121C + +gUnknown_8478590:: @ 8478590 + .incbin "baserom.gba", 0x478590, 0x26C + +gUnknown_84787FC:: @ 84787FC + .incbin "baserom.gba", 0x4787FC, 0x250 + +gUnknown_8478A4C:: @ 8478A4C + .incbin "baserom.gba", 0x478A4C, 0x24C + +gUnknown_8478C98:: @ 8478C98 + .incbin "baserom.gba", 0x478C98, 0x48 + +gUnknown_8478CE0:: @ 8478CE0 + .incbin "baserom.gba", 0x478CE0, 0xB0 + +gUnknown_8478D90:: @ 8478D90 + .incbin "baserom.gba", 0x478D90, 0x8 + +gUnknown_8478D98:: @ 8478D98 + .incbin "baserom.gba", 0x478D98, 0x8 + +gUnknown_8478DA0:: @ 8478DA0 + .incbin "baserom.gba", 0x478DA0, 0x8 + +gUnknown_8478DA8:: @ 8478DA8 + .incbin "baserom.gba", 0x478DA8, 0x24 + +gUnknown_8478DCC:: @ 8478DCC + .incbin "baserom.gba", 0x478DCC, 0x8 + +gUnknown_8478DD4:: @ 8478DD4 + .incbin "baserom.gba", 0x478DD4, 0x8 + +gUnknown_8478DDC:: @ 8478DDC + .incbin "baserom.gba", 0x478DDC, 0x18 + +gUnknown_8478DF4:: @ 8478DF4 + .incbin "baserom.gba", 0x478DF4, 0x18 + +gUnknown_8478E0C:: @ 8478E0C + .incbin "baserom.gba", 0x478E0C, 0x2 + +gUnknown_8478E0E:: @ 8478E0E + .incbin "baserom.gba", 0x478E0E, 0xA + +gUnknown_8478E18:: @ 8478E18 + .incbin "baserom.gba", 0x478E18, 0x8 + +gUnknown_8478E20:: @ 8478E20 + .incbin "baserom.gba", 0x478E20, 0x18 + +gUnknown_8478E38:: @ 8478E38 + .incbin "baserom.gba", 0x478E38, 0x3 + +gUnknown_8478E3B:: @ 8478E3B + .incbin "baserom.gba", 0x478E3B, 0x45 + +gUnknown_8478E80:: @ 8478E80 + .incbin "baserom.gba", 0x478E80, 0x14 + +gUnknown_8478E94:: @ 8478E94 + .incbin "baserom.gba", 0x478E94, 0x14 + +gUnknown_8478EA8:: @ 8478EA8 + .incbin "baserom.gba", 0x478EA8, 0x8 + +gUnknown_8478EB0:: @ 8478EB0 + .incbin "baserom.gba", 0x478EB0, 0xA + +gUnknown_8478EBA:: @ 8478EBA + .incbin "baserom.gba", 0x478EBA, 0xA + +gUnknown_8478EC4:: @ 8478EC4 + .incbin "baserom.gba", 0x478EC4, 0x50 + +gUnknown_8478F14:: @ 8478F14 + .incbin "baserom.gba", 0x478F14, 0x8 + +gUnknown_8478F1C:: @ 8478F1C + .incbin "baserom.gba", 0x478F1C, 0x144 + +gUnknown_8479060:: @ 8479060 + .incbin "baserom.gba", 0x479060, 0x78 + +gUnknown_84790D8:: @ 84790D8 + .incbin "baserom.gba", 0x4790D8, 0xC0 + +gUnknown_8479198:: @ 8479198 + .incbin "baserom.gba", 0x479198, 0x10 + +gUnknown_84791A8:: @ 84791A8 + .incbin "baserom.gba", 0x4791A8, 0x10 + +gUnknown_84791B8:: @ 84791B8 + .incbin "baserom.gba", 0x4791B8, 0x14 + +gUnknown_84791CC:: @ 84791CC + .incbin "baserom.gba", 0x4791CC, 0x1C + +gUnknown_84791E8:: @ 84791E8 + .incbin "baserom.gba", 0x4791E8, 0xE8 + +gUnknown_84792D0:: @ 84792D0 + .incbin "baserom.gba", 0x4792D0, 0x10 + +gUnknown_84792E0:: @ 84792E0 + .incbin "baserom.gba", 0x4792E0, 0x10 + +gUnknown_84792F0:: @ 84792F0 + .incbin "baserom.gba", 0x4792F0, 0x50 + +gUnknown_8479340:: @ 8479340 + .incbin "baserom.gba", 0x479340, 0x28 + +gUnknown_8479368:: @ 8479368 + .incbin "baserom.gba", 0x479368, 0x18 + +gUnknown_8479380:: @ 8479380 + .incbin "baserom.gba", 0x479380, 0x10 + +gUnknown_8479390:: @ 8479390 + .incbin "baserom.gba", 0x479390, 0x1B8 + +gUnknown_8479548:: @ 8479548 + .incbin "baserom.gba", 0x479548, 0x18 + +gUnknown_8479560:: @ 8479560 + .incbin "baserom.gba", 0x479560, 0x18 + +gUnknown_8479578:: @ 8479578 + .incbin "baserom.gba", 0x479578, 0x18 + +gUnknown_8479590:: @ 8479590 + .incbin "baserom.gba", 0x479590, 0x28 + +gUnknown_84795B8:: @ 84795B8 + .incbin "baserom.gba", 0x4795B8, 0x10 + +gUnknown_84795C8:: @ 84795C8 + .incbin "baserom.gba", 0x4795C8, 0x90 + +gUnknown_8479658:: @ 8479658 + .incbin "baserom.gba", 0x479658, 0x600 + +gUnknown_8479C58:: @ 8479C58 + .incbin "baserom.gba", 0x479C58, 0x30 + +gUnknown_8479C88:: @ 8479C88 + .incbin "baserom.gba", 0x479C88, 0x38 + +gUnknown_8479CC0:: @ 8479CC0 + .incbin "baserom.gba", 0x479CC0, 0x18 + + .align 2 +gUnknown_8479CD8:: @ 8479CD8 + .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/cereader_tool.c" + + .align 2 +gUnknown_8479D10:: @ 8479D10 + .asciz "ttdata->dummy == 0" + + .align 2 +gUnknown_8479D24:: @ 8479D24 + .asciz "ttdata->id == 0" + +gUnknown_8479D34:: @ 8479D34 + .incbin "baserom.gba", 0x479D34, 0x4 + +gUnknown_8479D38:: @ 8479D38 + .incbin "baserom.gba", 0x479D38, 0x8 + +gUnknown_8479D40:: @ 8479D40 + .incbin "baserom.gba", 0x479D40, 0x8 + +gUnknown_8479D48:: @ 8479D48 + .incbin "baserom.gba", 0x479D48, 0x190 + +gUnknown_8479ED8:: @ 8479ED8 + .incbin "baserom.gba", 0x479ED8, 0x14C + +gUnknown_847A024:: @ 847A024 + .incbin "baserom.gba", 0x47A024, 0x50 + +gUnknown_847A074:: @ 847A074 + .incbin "baserom.gba", 0x47A074, 0x1A4 + +gUnknown_847A218:: @ 847A218 + .incbin "baserom.gba", 0x47A218, 0x14 + +gUnknown_847A22C:: @ 847A22C + .incbin "baserom.gba", 0x47A22C, 0x4 + +gUnknown_847A230:: @ 847A230 + .incbin "baserom.gba", 0x47A230, 0x54 + +gUnknown_847A284:: @ 847A284 + .incbin "baserom.gba", 0x47A284, 0x30 + +gUnknown_847A2B4:: @ 847A2B4 + .incbin "baserom.gba", 0x47A2B4, 0x1E + +gUnknown_847A2D2:: @ 847A2D2 + .incbin "baserom.gba", 0x47A2D2, 0x1C + +gUnknown_847A2EE:: @ 847A2EE + .incbin "baserom.gba", 0x47A2EE, 0x10 + +gUnknown_847A2FE:: @ 847A2FE + .incbin "baserom.gba", 0x47A2FE, 0x10 + +gUnknown_847A30E:: @ 847A30E + .incbin "baserom.gba", 0x47A30E, 0x48E + +gUnknown_847A79C:: @ 847A79C + .incbin "baserom.gba", 0x47A79C, 0x8 + +gUnknown_847A7A4:: @ 847A7A4 + .incbin "baserom.gba", 0x47A7A4, 0xBC + +gUnknown_847A860:: @ 847A860 + .incbin "baserom.gba", 0x47A860, 0x18 + +gUnknown_847A878:: @ 847A878 + .incbin "baserom.gba", 0x47A878, 0x18 + +gUnknown_847A890:: @ 847A890 + .incbin "baserom.gba", 0x47A890, 0x7F1C + +gUnknown_84827AC:: @ 84827AC + .incbin "baserom.gba", 0x4827AC, 0x8 + +gUnknown_84827B4:: @ 84827B4 + .incbin "baserom.gba", 0x4827B4, 0x5F34 + +gUnknown_84886E8:: @ 84886E8 + .incbin "baserom.gba", 0x4886E8, 0x588 + +gUnknown_8488C70:: @ 8488C70 + .incbin "baserom.gba", 0x488C70, 0x32 + +gUnknown_8488CA2:: @ 8488CA2 + .incbin "baserom.gba", 0x488CA2, 0x2C + +gUnknown_8488CCE:: @ 8488CCE + .incbin "baserom.gba", 0x488CCE, 0x28 + +gUnknown_8488CF6:: @ 8488CF6 + .incbin "baserom.gba", 0x488CF6, 0x34 + +gUnknown_8488D2A:: @ 8488D2A + .incbin "baserom.gba", 0x488D2A, 0x36 + +gUnknown_8488D60:: @ 8488D60 + .incbin "baserom.gba", 0x488D60, 0x1C + +gUnknown_8488D7C:: @ 8488D7C + .incbin "baserom.gba", 0x488D7C, 0x12 + +gUnknown_8488D8E:: @ 8488D8E + .incbin "baserom.gba", 0x488D8E, 0x2F + +gUnknown_8488DBD:: @ 8488DBD + .incbin "baserom.gba", 0x488DBD, 0x40 + +gUnknown_8488DFD:: @ 8488DFD + .incbin "baserom.gba", 0x488DFD, 0xB6B diff --git a/data/text/trainer_class_names.inc b/data/text/trainer_class_names.inc new file mode 100644 index 000000000..3c4955064 --- /dev/null +++ b/data/text/trainer_class_names.inc @@ -0,0 +1,107 @@ + .string "{PKMN} TRAINER$", 13 + .string "{PKMN} TRAINER$", 13 + .string "AQUA LEADER$", 13 + .string "TEAM AQUA$", 13 + .string "AROMA LADY$", 13 + .string "RUIN MANIAC$", 13 + .string "INTERVIEWER$", 13 + .string "TUBER$", 13 + .string "TUBER$", 13 + .string "COOLTRAINER$", 13 + .string "HEX MANIAC$", 13 + .string "LADY$", 13 + .string "BEAUTY$", 13 + .string "RICH BOY$", 13 + .string "POKéMANIAC$", 13 + .string "SWIMMER♂$", 13 + .string "BLACK BELT$", 13 + .string "GUITARIST$", 13 + .string "KINDLER$", 13 + .string "CAMPER$", 13 + .string "BUG MANIAC$", 13 + .string "PSYCHIC$", 13 + .string "GENTLEMAN$", 13 + .string "ELITE FOUR$", 13 + .string "LEADER$", 13 + .string "SCHOOL KID$", 13 + .string "SR. AND JR.$", 13 + .string "POKéFAN$", 13 + .string "EXPERT$", 13 + .string "YOUNGSTER$", 13 + .string "CHAMPION$", 13 + .string "FISHERMAN$", 13 + .string "TRIATHLETE$", 13 + .string "DRAGON TAMER$", 13 + .string "BIRD KEEPER$", 13 + .string "NINJA BOY$", 13 + .string "BATTLE GIRL$", 13 + .string "PARASOL LADY$", 13 + .string "SWIMMER♀$", 13 + .string "PICNICKER$", 13 + .string "TWINS$", 13 + .string "SAILOR$", 13 + .string "BOARDER$", 13 + .string "COLLECTOR$", 13 + .string "{PKMN} TRAINER$", 13 + .string "{PKMN} BREEDER$", 13 + .string "{PKMN} RANGER$", 13 + .string "MAGMA LEADER$", 13 + .string "TEAM MAGMA$", 13 + .string "LASS$", 13 + .string "BUG CATCHER$", 13 + .string "HIKER$", 13 + .string "YOUNG COUPLE$", 13 + .string "OLD COUPLE$", 13 + .string "SIS AND BRO$", 13 + .string "AQUA ADMIN$", 13 + .string "MAGMA ADMIN$", 13 + .string "YOUNGSTER$", 13 + .string "BUG CATCHER$", 13 + .string "LASS$", 13 + .string "SAILOR$", 13 + .string "CAMPER$", 13 + .string "PICNICKER$", 13 + .string "POKéMANIAC$", 13 + .string "SUPER NERD$", 13 + .string "HIKER$", 13 + .string "BIKER$", 13 + .string "BURGLAR$", 13 + .string "ENGINEER$", 13 + .string "FISHERMAN$", 13 + .string "SWIMMER♂$", 13 + .string "CUE BALL$", 13 + .string "GAMER$", 13 + .string "BEAUTY$", 13 + .string "SWIMMER♀$", 13 + .string "PSYCHIC$", 13 + .string "ROCKER$", 13 + .string "JUGGLER$", 13 + .string "TAMER$", 13 + .string "BIRD KEEPER$", 13 + .string "BLACK BELT$", 13 + .string "RIVAL$", 13 + .string "SCIENTIST$", 13 + .string "BOSS$", 13 + .string "LEADER$", 13 + .string "TEAM ROCKET$", 13 + .string "COOLTRAINER$", 13 + .string "ELITE FOUR$", 13 + .string "GENTLEMAN$", 13 + .string "RIVAL$", 13 + .string "CHAMPION$", 13 + .string "CHANNELER$", 13 + .string "TWINS$", 13 + .string "COOL COUPLE$", 13 + .string "YOUNG COUPLE$", 13 + .string "CRUSH KIN$", 13 + .string "SIS AND BRO$", 13 + .string "{PKMN} PROF.$", 13 + .string "PLAYER$", 13 + .string "CRUSH GIRL$", 13 + .string "TUBER$", 13 + .string "{PKMN} BREEDER$", 13 + .string "{PKMN} RANGER$", 13 + .string "AROMA LADY$", 13 + .string "RUIN MANIAC$", 13 + .string "LADY$", 13 + .string "PAINTER$", 13 diff --git a/include/global.h b/include/global.h index 2b54f5fdc..ee64e855a 100644 --- a/include/global.h +++ b/include/global.h @@ -32,6 +32,9 @@ char* strcpy(char *dst0, const char *src0); #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) >= (b) ? (a) : (b)) + // There are many quirks in the source code which have overarching behavioral differences from // a number of other files. For example, diploma.c seems to declare rodata before each use while // other files declare out of order and must be at the beginning. There are also a number of @@ -551,6 +554,7 @@ struct SaveBlock1 /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[0x44]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; + /*0x3A54*/ u8 filler3A54[0x314]; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/save.h b/include/save.h index 80c2bf804..5a502e1fc 100644 --- a/include/save.h +++ b/include/save.h @@ -1,11 +1,27 @@ #ifndef GUARD_SAVE_H #define GUARD_SAVE_H -extern u16 gSaveFileStatus; +#define NUM_SECTORS 32 // defined in agb_flash but not in a header + +#define SAVE_STATUS_EMPTY 0 +#define SAVE_STATUS_OK 1 +#define SAVE_STATUS_INVALID 2 +#define SAVE_STATUS_NO_FLASH 4 +#define SAVE_STATUS_ERROR 0xFF -struct SaveSectionLocation +enum { - void *data; + SAVE_NORMAL, + SAVE_LINK, + SAVE_EREADER, + SAVE_HALL_OF_FAME, + SAVE_OVERWRITE_DIFFERENT_FILE, + SAVE_HALL_OF_FAME_ERASE_BEFORE, // unused +}; + +struct SaveBlockChunk +{ + u8 *data; u16 size; }; @@ -14,7 +30,7 @@ struct SaveSection u8 data[0xFF4]; u16 id; u16 checksum; - u32 security; + u32 signature; u32 counter; }; // size is 0x1000 @@ -22,21 +38,21 @@ struct SaveSection struct UnkSaveSection { u8 data[0xFF4]; - u32 security; + u32 signature; }; // size is 0xFF8 struct SaveSectionOffsets { - u16 toAdd; - u16 size; + u16 toAdd; + u16 size; }; // Emerald changes this definition to be the sectors per slot. -#define NUM_SECTORS_PER_SLOT 16 // move to save.h +#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot #define UNKNOWN_CHECK_VALUE 0x8012025 -// SetDamagedSectorBits states +// SetSectorDamagedStatus states enum { ENABLE, @@ -49,50 +65,62 @@ enum { NORMAL_SAVE, LINK_SAVE, - //EREADER_SAVE, // depreciated in Emerald - LINK2_SAVE, // unknown 2nd link save + EREADER_SAVE, HOF_SAVE, DIFFERENT_FILE_SAVE, HOF_DELETE_SAVE // unused }; -#define SECTION_ID_RECORDED_BATTLE 31 +extern u16 gFirstSaveSector; +extern u32 gPrevSaveCounter; +extern u16 gLastKnownGoodSector; +extern u32 gDamagedSaveSectors; +extern u32 gSaveCounter; +extern struct SaveSection *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM. +extern u16 gUnknown_3005398; +extern u16 gSaveUnusedVar; +extern u16 gSaveFileStatus; +extern void (*gGameContinueCallback)(void); +extern struct SaveBlockChunk gRamSaveSectionLocations[0xE]; +extern u16 gUnknown_3005420; + +extern struct SaveSection gSaveDataBuffer; void ClearSaveData(void); -void ResetSaveCounters(void); -bool32 SetDamagedSectorBits(u8 op, u8 bit); -u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location); -u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location); +void Save_ResetSaveCounters(void); +bool32 SetSectorDamagedStatus(u8 op, u8 bit); +u8 save_write_to_flash(u16 a1, const struct SaveBlockChunk *location); +u8 HandleWriteSector(u16 a1, const struct SaveBlockChunk *location); u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size); u8 TryWriteSector(u8 sector, u8 *data); -u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location); -u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location); -u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location); -u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location); -u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location); -u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location); -u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location); -u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location); -u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location); -u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location); -u8 GetSaveValidStatus(const struct SaveSectionLocation *location); -u8 sub_81530DC(u8 a1, u8 *data, u16 size); +u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *location); +u32 RestoreSaveBackupVars(const struct SaveBlockChunk *location); +u8 sub_80D9AA4(u16 a1, const struct SaveBlockChunk *location); +u8 sub_80D9B04(u16 a1, const struct SaveBlockChunk *location); +u8 ClearSaveData_2(u16 a1, const struct SaveBlockChunk *location); +u8 sav12_xor_get(u16 a1, const struct SaveBlockChunk *location); +u8 sub_80D9D88(u16 a1, const struct SaveBlockChunk *location); +u8 sub_80D9E14(u16 a1, const struct SaveBlockChunk *location); +u8 sub_80D9E54(u16 a1, const struct SaveBlockChunk *location); +u8 GetSaveValidStatus(const struct SaveBlockChunk *location); +u8 sub_80DA120(u8 a1, u8 *data, u16 size); u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section); u16 CalculateChecksum(void *data, u16 size); void UpdateSaveAddresses(void); u8 HandleSavingData(u8 saveType); u8 TrySavingData(u8 saveType); -u8 sub_8153380(void); -bool8 sub_81533AC(void); -u8 sub_81533E0(void); -u8 sub_8153408(void); -u8 sub_8153430(void); -bool8 sub_8153474(void); -u8 sub_81534D0(u8 a1); -u16 sub_815355C(void); +u8 sub_80DA3AC(void); +bool8 sub_80DA3D8(void); +u8 sub_80DA40C(void); +u8 sub_80DA434(void); +u8 sub_80DA45C(void); +bool8 sub_80DA4A0(void); +u8 Save_LoadGameData(u8 a1); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); -void sub_80DA4FC(u8); +//void Save_LoadGameData(u8); +u32 sub_80DA5E0(u8 sector, u8* src); +void sub_80DA634(u8 taskId); #endif // GUARD_SAVE_H diff --git a/ld_script.txt b/ld_script.txt index 4ef96aae7..5ac1bdeaa 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -181,7 +181,7 @@ SECTIONS { asm/math_util.o(.text); asm/roulette_util.o(.text); asm/cable_car_util.o(.text); - asm/save.o(.text); + src/save.o(.text); asm/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); asm/battle_anim_sound_tasks.o(.text); @@ -366,12 +366,14 @@ SECTIONS { src/string_util.o(.rodata); data/data.o(.rodata); src/battle_ai_script_commands.o(.rodata); - data/data_84827AC.o(.rodata); + data/data_83F5738.o(.rodata); + src/save.o(.rodata); + data/data_83FECCC.o(.rodata); src/quest_log.o(.rodata); data/quest_log.o(.rodata); - data/data_84827AC.o(.rodata.8456C74); + data/data_83FECCC.o(.rodata.8456C74); src/menews_jisan.o(.rodata); - data/data_84827AC.o(.rodata.8468C98); + data/data_8468C98.o(.rodata); src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); } =0 diff --git a/src/quest_log.c b/src/quest_log.c index 61b1e66d6..a1008aa06 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -971,8 +971,8 @@ void sub_8111914(void) void sub_8111984(void) { sub_806E6FC(); - ResetSaveCounters(); - sub_80DA4FC(0); + Save_ResetSaveCounters(); + Save_LoadGameData(0); SetMainCallback2(sub_8057430); gUnknown_3005024 = sub_8111F60; FreeAllWindowBuffers(); diff --git a/src/save.c b/src/save.c new file mode 100644 index 000000000..28f6a2896 --- /dev/null +++ b/src/save.c @@ -0,0 +1,919 @@ +#include "global.h" +#include "save.h" +#include "decompress.h" +#include "main.h" +#include "overworld.h" +#include "load_save.h" +#include "task.h" +#include "link.h" +#include "gba/flash_internal.h" + +#define FILE_SIGNATURE 0x08012025 // signature value to determine if a sector is in use + +#define TOTAL_FLASH_SECTORS 32 + +// Divide save blocks into individual chunks to be written to flash sectors + +// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer +#define SECTOR_DATA_SIZE 3968 +#define SECTOR_FOOTER_SIZE 128 + +/* + * Sector Layout: + * + * Sectors 0 - 13: Save Slot 1 + * Sectors 14 - 27: Save Slot 2 + * Sectors 28 - 29: Hall of Fame + * Sector 30: e-Reader/Mystery Gift Stuff (note: e-Reader is deprecated in Emerald US) + * Sector 31: Recorded Battle + * + * There are two save slots for saving the player's game data. We alternate between + * them each time the game is saved, so that if the current save slot is corrupt, + * we can load the previous one. We also rotate the sectors in each save slot + * so that the same data is not always being written to the same sector. This + * might be done to reduce wear on the flash memory, but I'm not sure, since all + * 14 sectors get written anyway. + */ + +// (u8 *)structure was removed from the first statement of the macro in Emerald +// and Fire Red/Leaf Green. This is because malloc is used to allocate addresses +// so storing the raw addresses should not be done in the offsets information. +#define SAVEBLOCK_CHUNK(structure, chunkNum) \ +{ \ + chunkNum * SECTOR_DATA_SIZE, \ + min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \ +} \ + +// TODO: use gSaveblock2, gSaveblock1, gPokemonStorage instead of structs +// Will be done when load_save is decompiled. +const struct SaveSectionOffsets gSaveSectionOffsets[] = +{ + SAVEBLOCK_CHUNK(struct SaveBlock2, 0), + + SAVEBLOCK_CHUNK(struct SaveBlock1, 0), + SAVEBLOCK_CHUNK(struct SaveBlock1, 1), + SAVEBLOCK_CHUNK(struct SaveBlock1, 2), + SAVEBLOCK_CHUNK(struct SaveBlock1, 3), + + SAVEBLOCK_CHUNK(struct PokemonStorage, 0), + SAVEBLOCK_CHUNK(struct PokemonStorage, 1), + SAVEBLOCK_CHUNK(struct PokemonStorage, 2), + SAVEBLOCK_CHUNK(struct PokemonStorage, 3), + SAVEBLOCK_CHUNK(struct PokemonStorage, 4), + SAVEBLOCK_CHUNK(struct PokemonStorage, 5), + SAVEBLOCK_CHUNK(struct PokemonStorage, 6), + SAVEBLOCK_CHUNK(struct PokemonStorage, 7), + SAVEBLOCK_CHUNK(struct PokemonStorage, 8) +}; + +extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen +extern void sub_800AB9C(void); // link +extern bool8 sub_800A4BC(void); // link +extern void sub_80590D8(void); // fieldmap +extern void sub_804C1C0(void); // load_save +extern void sav2_gender2_inplace_and_xFE(void); // load_save + +// Sector num to begin writing save data. Sectors are rotated each time the game is saved. (possibly to avoid wear on flash memory?) +u16 gFirstSaveSector; +u32 gPrevSaveCounter; +u16 gLastKnownGoodSector; +u32 gDamagedSaveSectors; +u32 gSaveCounter; +struct SaveSection *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM. +u16 gUnknown_3005398; +u16 gSaveUnusedVar; +u16 gSaveFileStatus; +void (*gGameContinueCallback)(void); +struct SaveBlockChunk gRamSaveSectionLocations[0xE]; +u16 gUnknown_3005420; + +EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; +EWRAM_DATA u32 gSaveUnusedVar2 = 0; + +void ClearSaveData(void) +{ + u16 i; + + for (i = 0; i < NUM_SECTORS; i++) + EraseFlashSector(i); +} + +void Save_ResetSaveCounters(void) +{ + gSaveCounter = 0; + gFirstSaveSector = 0; + gDamagedSaveSectors = 0; +} + +bool32 SetSectorDamagedStatus(u8 op, u8 sectorNum) +{ + bool32 retVal = FALSE; + + switch (op) + { + case ENABLE: + gDamagedSaveSectors |= (1 << sectorNum); + break; + case DISABLE: + gDamagedSaveSectors &= ~(1 << sectorNum); + break; + case CHECK: // unused + if (gDamagedSaveSectors & (1 << sectorNum)) + retVal = TRUE; + break; + } + + return retVal; +} + +// If chunkId is 0xFFFF, this function will write all of the chunks pointed to by 'chunks'. +// Otherwise, it will write a single chunk with the given 'chunkId'. +u8 save_write_to_flash(u16 chunkId, const struct SaveBlockChunk *chunks) +{ + u32 retVal; + u16 i; + + gFastSaveSection = &gSaveDataBuffer; + + if (chunkId != 0xFFFF) // write single chunk + { + retVal = HandleWriteSector(chunkId, chunks); + } + else // write all chunks + { + gLastKnownGoodSector = gFirstSaveSector; // backup the current written sector before attempting to write. + gPrevSaveCounter = gSaveCounter; + gFirstSaveSector++; + gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT; // array count save sector locations + gSaveCounter++; + retVal = SAVE_STATUS_OK; + + for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++) + HandleWriteSector(i, chunks); + + // Check for any bad sectors + if (gDamagedSaveSectors != 0) // skip the damaged sector. + { + retVal = SAVE_STATUS_ERROR; + gFirstSaveSector = gLastKnownGoodSector; + gSaveCounter = gPrevSaveCounter; + } + } + + return retVal; +} + +u8 HandleWriteSector(u16 chunkId, const struct SaveBlockChunk *chunks) +{ + u16 i; + u16 sectorNum; + u8 *chunkData; + u16 chunkSize; + + // select sector number + sectorNum = chunkId + gFirstSaveSector; + sectorNum %= NUM_SECTORS_PER_SAVE_SLOT; + // select save slot + sectorNum += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); + + chunkData = chunks[chunkId].data; + chunkSize = chunks[chunkId].size; + + // clear save section. + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)gFastSaveSection)[i] = 0; + + gFastSaveSection->id = chunkId; + gFastSaveSection->signature = FILE_SIGNATURE; + gFastSaveSection->counter = gSaveCounter; + + for (i = 0; i < chunkSize; i++) + gFastSaveSection->data[i] = chunkData[i]; + + gFastSaveSection->checksum = CalculateChecksum(chunkData, chunkSize); + return TryWriteSector(sectorNum, gFastSaveSection->data); +} + +u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size) +{ + u16 i; + struct SaveSection *section = &gSaveDataBuffer; + + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)section)[i] = 0; + + section->signature = FILE_SIGNATURE; + + for (i = 0; i < size; i++) + section->data[i] = data[i]; + + section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used. + return TryWriteSector(sector, section->data); +} + +u8 TryWriteSector(u8 sectorNum, u8 *data) +{ + if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) // is damaged? + { + SetSectorDamagedStatus(ENABLE, sectorNum); // set damaged sector bits. + return SAVE_STATUS_ERROR; + } + else + { + SetSectorDamagedStatus(DISABLE, sectorNum); // unset damaged sector bits. it's safe now. + return SAVE_STATUS_OK; + } +} + +u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *chunk) // chunk is unused +{ + gFastSaveSection = &gSaveDataBuffer; + gLastKnownGoodSector = gFirstSaveSector; + gPrevSaveCounter = gSaveCounter; + gFirstSaveSector++; + gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT; + gSaveCounter++; + gUnknown_3005398 = 0; + gDamagedSaveSectors = 0; + return 0; +} + +u32 RestoreSaveBackupVars(const struct SaveBlockChunk *chunk) // chunk is unused +{ + gFastSaveSection = &gSaveDataBuffer; + gLastKnownGoodSector = gFirstSaveSector; + gPrevSaveCounter = gSaveCounter; + gUnknown_3005398 = 0; + gDamagedSaveSectors = 0; + return 0; +} + +u8 sub_80D9AA4(u16 a1, const struct SaveBlockChunk *chunk) +{ + u8 retVal; + + if (gUnknown_3005398 < a1 - 1) + { + retVal = SAVE_STATUS_OK; + HandleWriteSector(gUnknown_3005398, chunk); + gUnknown_3005398++; + if (gDamagedSaveSectors) + { + retVal = SAVE_STATUS_ERROR; + gFirstSaveSector = gLastKnownGoodSector; + gSaveCounter = gPrevSaveCounter; + } + } + else + { + retVal = SAVE_STATUS_ERROR; + } + + return retVal; +} + +u8 sub_80D9B04(u16 a1, const struct SaveBlockChunk *chunk) +{ + u8 retVal = SAVE_STATUS_OK; + + ClearSaveData_2(a1 - 1, chunk); + + if (gDamagedSaveSectors) + { + retVal = SAVE_STATUS_ERROR; + gFirstSaveSector = gLastKnownGoodSector; + gSaveCounter = gPrevSaveCounter; + } + return retVal; +} + +u8 ClearSaveData_2(u16 chunkId, const struct SaveBlockChunk *chunks) +{ + u16 i; + u16 sector; + u8 *data; + u16 size; + u8 status; + + // select sector number + sector = chunkId + gFirstSaveSector; + sector %= NUM_SECTORS_PER_SAVE_SLOT; + // select save slot + sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); + + data = chunks[chunkId].data; + size = chunks[chunkId].size; + + // clear temp save section. + for (i = 0; i < sizeof(struct SaveSection); i++) + ((char *)gFastSaveSection)[i] = 0; + + gFastSaveSection->id = chunkId; + gFastSaveSection->signature = FILE_SIGNATURE; + gFastSaveSection->counter = gSaveCounter; + + // set temp section's data. + for (i = 0; i < size; i++) + gFastSaveSection->data[i] = data[i]; + + // calculate checksum. + gFastSaveSection->checksum = CalculateChecksum(data, size); + + EraseFlashSector(sector); + + status = SAVE_STATUS_OK; + + for (i = 0; i < sizeof(struct UnkSaveSection); i++) + { + if (ProgramFlashByte(sector, i, gFastSaveSection->data[i])) + { + status = SAVE_STATUS_ERROR; + break; + } + } + + if (status == SAVE_STATUS_ERROR) + { + SetSectorDamagedStatus(ENABLE, sector); + return SAVE_STATUS_ERROR; + } + else + { + status = SAVE_STATUS_OK; + + for (i = 0; i < 7; i++) + { + if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i])) + { + status = SAVE_STATUS_ERROR; + break; + } + } + + if (status == SAVE_STATUS_ERROR) + { + SetSectorDamagedStatus(ENABLE, sector); + return SAVE_STATUS_ERROR; + } + else + { + SetSectorDamagedStatus(DISABLE, sector); + return SAVE_STATUS_OK; + } + } +} + +u8 sav12_xor_get(u16 a1, const struct SaveBlockChunk *chunk) +{ + u16 sector; + + // select sector number + sector = a1 + gFirstSaveSector - 1; + sector %= NUM_SECTORS_PER_SAVE_SLOT; + // select save slot + sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); + + if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)])) + { + // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. + SetSectorDamagedStatus(ENABLE, sector); + gFirstSaveSector = gLastKnownGoodSector; + gSaveCounter = gPrevSaveCounter; + return SAVE_STATUS_ERROR; + } + else + { + SetSectorDamagedStatus(DISABLE, sector); + return SAVE_STATUS_OK; + } +} + +u8 sub_80D9D88(u16 a1, const struct SaveBlockChunk *chunk) +{ + u16 sector; + + sector = a1 + gFirstSaveSector - 1; + sector %= NUM_SECTORS_PER_SAVE_SLOT; + sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); + + if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25)) + { + // sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter. + SetSectorDamagedStatus(ENABLE, sector); + gFirstSaveSector = gLastKnownGoodSector; + gSaveCounter = gPrevSaveCounter; + return SAVE_STATUS_ERROR; + } + else + { + SetSectorDamagedStatus(DISABLE, sector); + return SAVE_STATUS_OK; + } +} + +u8 sub_80D9E14(u16 a1, const struct SaveBlockChunk *chunk) +{ + u8 retVal; + gFastSaveSection = &gSaveDataBuffer; + if (a1 != 0xFFFF) + { + retVal = SAVE_STATUS_ERROR; + } + else + { + retVal = GetSaveValidStatus(chunk); + sub_80D9E54(0xFFFF, chunk); + } + + return retVal; +} + +u8 sub_80D9E54(u16 a1, const struct SaveBlockChunk *chunks) +{ + u16 i; + u16 checksum; + u16 sector = NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2); + u16 id; + + for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++) + { + DoReadFlashWholeSection(i + sector, gFastSaveSection); + id = gFastSaveSection->id; + if (id == 0) + gFirstSaveSector = i; + checksum = CalculateChecksum(gFastSaveSection->data, chunks[id].size); + if (gFastSaveSection->signature == FILE_SIGNATURE + && gFastSaveSection->checksum == checksum) + { + u16 j; + for (j = 0; j < chunks[id].size; j++) + chunks[id].data[j] = gFastSaveSection->data[j]; + } + } + + return 1; +} + +u8 GetSaveValidStatus(const struct SaveBlockChunk *chunks) +{ + u16 sector; + bool8 signatureValid; + u16 checksum; + u32 slot1saveCounter = 0; + u32 slot2saveCounter = 0; + u8 slot1Status; + u8 slot2Status; + u32 validSectors; + const u32 ALL_SECTORS = (1 << NUM_SECTORS_PER_SAVE_SLOT) - 1; // bitmask of all saveblock sectors + + // check save slot 1. + validSectors = 0; + signatureValid = FALSE; + for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++) + { + DoReadFlashWholeSection(sector, gFastSaveSection); + if (gFastSaveSection->signature == FILE_SIGNATURE) + { + signatureValid = TRUE; + checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size); + if (gFastSaveSection->checksum == checksum) + { + slot1saveCounter = gFastSaveSection->counter; + validSectors |= 1 << gFastSaveSection->id; + } + } + } + + if (signatureValid) + { + if (validSectors == ALL_SECTORS) + slot1Status = SAVE_STATUS_OK; + else + slot1Status = SAVE_STATUS_ERROR; + } + else + { + slot1Status = SAVE_STATUS_EMPTY; + } + + // check save slot 2. + validSectors = 0; + signatureValid = FALSE; + for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++) + { + DoReadFlashWholeSection(NUM_SECTORS_PER_SAVE_SLOT + sector, gFastSaveSection); + if (gFastSaveSection->signature == FILE_SIGNATURE) + { + signatureValid = TRUE; + checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size); + if (gFastSaveSection->checksum == checksum) + { + slot2saveCounter = gFastSaveSection->counter; + validSectors |= 1 << gFastSaveSection->id; + } + } + } + + if (signatureValid) + { + if (validSectors == ALL_SECTORS) + slot2Status = SAVE_STATUS_OK; + else + slot2Status = SAVE_STATUS_ERROR; + } + else + { + slot2Status = SAVE_STATUS_EMPTY; + } + + if (slot1Status == SAVE_STATUS_OK && slot2Status == SAVE_STATUS_OK) + { + // Choose counter of the most recent save file + if ((slot1saveCounter == -1 && slot2saveCounter == 0) || (slot1saveCounter == 0 && slot2saveCounter == -1)) + { + if ((unsigned)(slot1saveCounter + 1) < (unsigned)(slot2saveCounter + 1)) + gSaveCounter = slot2saveCounter; + else + gSaveCounter = slot1saveCounter; + } + else + { + if (slot1saveCounter < slot2saveCounter) + gSaveCounter = slot2saveCounter; + else + gSaveCounter = slot1saveCounter; + } + return SAVE_STATUS_OK; + } + + if (slot1Status == SAVE_STATUS_OK) + { + gSaveCounter = slot1saveCounter; + if (slot2Status == SAVE_STATUS_ERROR) + return SAVE_STATUS_ERROR; + else + return SAVE_STATUS_OK; + } + + if (slot2Status == SAVE_STATUS_OK) + { + gSaveCounter = slot2saveCounter; + if (slot1Status == SAVE_STATUS_ERROR) + return SAVE_STATUS_ERROR; + else + return SAVE_STATUS_OK; + } + + if (slot1Status == SAVE_STATUS_EMPTY && slot2Status == SAVE_STATUS_EMPTY) + { + gSaveCounter = 0; + gFirstSaveSector = 0; + return SAVE_STATUS_EMPTY; + } + + gSaveCounter = 0; + gFirstSaveSector = 0; + return 2; +} + +u8 sub_80DA120(u8 sector, u8 *data, u16 size) +{ + u16 i; + struct SaveSection *section = &gSaveDataBuffer; + + DoReadFlashWholeSection(sector, section); + if (section->signature == FILE_SIGNATURE) + { + u16 checksum = CalculateChecksum(section->data, size); + if (section->id == checksum) + { + for (i = 0; i < size; i++) + data[i] = section->data[i]; + return SAVE_STATUS_OK; + } + else + { + return SAVE_STATUS_INVALID; + } + } + else + { + return SAVE_STATUS_EMPTY; + } +} + +u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section) +{ + ReadFlash(sector, 0, section->data, sizeof(struct SaveSection)); + return 1; +} + +u16 CalculateChecksum(void *data, u16 size) +{ + u16 i; + u32 checksum = 0; + + for (i = 0; i < (size / 4); i++) + checksum += *((u32 *)data)++; + + return ((checksum >> 16) + checksum); +} + +void UpdateSaveAddresses(void) +{ + int i = 0; + + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + + for (i = 1; i < 5; i++) + { + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + } + + for (i = 5; i < 14; i++) + { + gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + gSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + + i++;i--; // needed to match + } +} + +u8 HandleSavingData(u8 saveType) +{ + u8 i; + u32 *backupPtr = gMain.vblankCounter1; + u8 *tempAddr; + + gMain.vblankCounter1 = NULL; + UpdateSaveAddresses(); + switch (saveType) + { + case SAVE_HALL_OF_FAME_ERASE_BEFORE: // deletes HOF before overwriting HOF completely. unused + for (i = 0xE * 2 + 0; i < 32; i++) + EraseFlashSector(i); + // fallthrough + case SAVE_HALL_OF_FAME: // hall of fame. + if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999) + IncrementGameStat(GAME_STAT_ENTERED_HOF); + tempAddr = gDecompressionBuffer; + HandleWriteSectorNBytes(0x1C, tempAddr, 0xF80); + HandleWriteSectorNBytes(0x1D, tempAddr + 0xF80, 0xF80); + // fallthrough + case SAVE_NORMAL: // normal save. also called by overwriting your own save. + default: + SaveSerializedGame(); + save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + break; + case SAVE_LINK: // _081532C4 + SaveSerializedGame(); + for(i = 0; i < 5; i++) + save_write_to_flash(i, gRamSaveSectionLocations); + break; + case EREADER_SAVE: + SaveSerializedGame(); + save_write_to_flash(0, gRamSaveSectionLocations); + break; + case SAVE_OVERWRITE_DIFFERENT_FILE: + for (i = (0xE * 2 + 0); i < 32; i++) + EraseFlashSector(i); // erase HOF. + SaveSerializedGame(); + save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + break; + } + gMain.vblankCounter1 = backupPtr; + return 0; +} + +u8 TrySavingData(u8 saveType) +{ + if(gFlashMemoryPresent == TRUE) + { + HandleSavingData(saveType); + if(gDamagedSaveSectors) + DoSaveFailedScreen(saveType); + else + goto OK; // really? + } + gUnknown_3005420 = 0xFF; + return 0xFF; + +OK: + gUnknown_3005420 = 1; + return 1; +} + +u8 sub_80DA3AC(void) +{ + if (gFlashMemoryPresent != TRUE) + return 1; + UpdateSaveAddresses(); + SaveSerializedGame(); + RestoreSaveBackupVarsAndIncrement(gRamSaveSectionLocations); + return 0; +} + +bool8 sub_80DA3D8(void) +{ + u8 retVal = sub_80D9AA4(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + if (retVal == 0xFF) + return 1; + else + return 0; +} + +u8 sub_80DA40C(void) +{ + sub_80D9B04(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + return 0; +} + +u8 sub_80DA434(void) +{ + sav12_xor_get(0xE, gRamSaveSectionLocations); + if (gDamagedSaveSectors) + DoSaveFailedScreen(0); + return 0; +} + +u8 sub_80DA45C(void) +{ + if (gFlashMemoryPresent != TRUE) + return 1; + + UpdateSaveAddresses(); + SaveSerializedGame(); + RestoreSaveBackupVars(gRamSaveSectionLocations); + sub_80D9B04(gUnknown_3005398 + 1, gRamSaveSectionLocations); + return 0; +} + +bool8 sub_80DA4A0(void) +{ + u8 retVal = FALSE; + u16 val = ++gUnknown_3005398; + if (val <= 4) + { + sub_80D9B04(gUnknown_3005398 + 1, gRamSaveSectionLocations); + sub_80D9D88(val, gRamSaveSectionLocations); + } + else + { + sub_80D9D88(val, gRamSaveSectionLocations); + retVal = TRUE; + } + if (gDamagedSaveSectors) + DoSaveFailedScreen(1); + return retVal; +} + +u8 Save_LoadGameData(u8 a1) +{ + u8 result; + + if (gFlashMemoryPresent != TRUE) + { + gSaveFileStatus = 4; + return 0xFF; + } + + UpdateSaveAddresses(); + switch (a1) + { + case 0: + default: + result = sub_80D9E14(0xFFFF, gRamSaveSectionLocations); + LoadSerializedGame(); + gSaveFileStatus = result; + gGameContinueCallback = 0; + break; + case 3: + result = sub_80DA120(0x1C, gDecompressionBuffer, 0xF80); + if(result == 1) + result = sub_80DA120(0x1D, gDecompressionBuffer + 0xF80, 0xF80); + break; + } + + return result; +} + +u32 TryCopySpecialSaveSection(u8 sector, u8* dst) +{ + s32 i; + s32 size; + u8* savData; + + if (sector != 30 && sector != 31) + return 0xFF; + ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection)); + if (*(u32*)(&gSaveDataBuffer.data[0]) != 0xB39D) + return 0xFF; + // copies whole save section except u32 counter + i = 0; + size = 0xFFB; + savData = &gSaveDataBuffer.data[4]; + for (; i <= size; i++) + dst[i] = savData[i]; + return 1; +} + +u32 sub_80DA5E0(u8 sector, u8* src) +{ + s32 i; + s32 size; + u8* savData; + void* savDataBuffer; + + if (sector != 30 && sector != 31) + return 0xFF; + + savDataBuffer = &gSaveDataBuffer; + *(u32*)(savDataBuffer) = 0xB39D; + + // copies whole save section except u32 counter + i = 0; + size = 0xFFB; + savData = &gSaveDataBuffer.data[4]; + for (; i <= size; i++) + savData[i] = src[i]; + if (ProgramFlashSectorAndVerify(sector, savDataBuffer) != 0) + return 0xFF; + return 1; +} + +void sub_80DA634(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + gSoftResetDisabled = TRUE; + gTasks[taskId].data[0] = 1; + break; + case 1: + sub_800AB9C(); + gTasks[taskId].data[0] = 2; + break; + case 2: + if (sub_800A4BC()) + { + sub_80590D8(); + gTasks[taskId].data[0] = 3; + } + break; + case 3: + sub_804C1C0(); + sub_80DA3AC(); + gTasks[taskId].data[0] = 4; + break; + case 4: + if (++gTasks[taskId].data[1] == 5) + { + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[0] = 5; + } + break; + case 5: + if (sub_80DA3D8()) + gTasks[taskId].data[0] = 6; + else + gTasks[taskId].data[0] = 4; + break; + case 6: + sub_80DA40C(); + gTasks[taskId].data[0] = 7; + break; + case 7: + sav2_gender2_inplace_and_xFE(); + sub_800AB9C(); + gTasks[taskId].data[0] = 8; + break; + case 8: + if (sub_800A4BC()) + { + sub_80DA434(); + gTasks[taskId].data[0] = 9; + } + break; + case 9: + sub_800AB9C(); + gTasks[taskId].data[0] = 10; + break; + case 10: + if (sub_800A4BC()) + gTasks[taskId].data[0]++; + break; + case 11: + if (++gTasks[taskId].data[1] > 5) + { + gSoftResetDisabled = FALSE; + DestroyTask(taskId); + } + break; + } +} diff --git a/sym_common.txt b/sym_common.txt index 7c2f0ff7f..65be232af 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -135,7 +135,7 @@ gUnknown_3004FFC: @ 3004FFC .include "random.o" .align 2 -gUnknown_3005004: @ 3005004 +gFlashMemoryPresent: @ 3005004 .space 0x4 gSaveBlock1Ptr: @ 3005008 @@ -144,7 +144,7 @@ gSaveBlock1Ptr: @ 3005008 gSaveBlock2Ptr: @ 300500C .space 0x4 -gUnknown_3005010: @ 3005010 +gPokemonStoragePtr: @ 3005010 .space 0x4 gUnknown_3005014: @ 3005014 @@ -240,39 +240,9 @@ gUnknown_3005378: @ 3005378 gUnknown_300537C: @ 300537C .space 0x4 -gUnknown_3005380: @ 3005380 - .space 0x4 - -gUnknown_3005384: @ 3005384 - .space 0x4 - -gUnknown_3005388: @ 3005388 - .space 0x4 - -gUnknown_300538C: @ 300538C - .space 0x4 - -gUnknown_3005390: @ 3005390 - .space 0x4 - -gUnknown_3005394: @ 3005394 - .space 0x4 - -gUnknown_3005398: @ 3005398 - .space 0x8 - -gUnknown_30053A0: @ 30053A0 - .space 0x4 - -gUnknown_30053A4: @ 30053A4 - .space 0xC - -gUnknown_30053B0: @ 30053B0 - .space 0x70 - -gUnknown_3005420: @ 3005420 - .space 0x4 + .include "save.o" + .align 2 gUnknown_3005424: @ 3005424 .space 0x4 diff --git a/sym_ewram.txt b/sym_ewram.txt index c44e340ec..4cad7bb1f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,4 +1,4 @@ -gUnknown_201C000: @ 201C000 +gDecompressionBuffer: @ 201C000 .space 0x20 gUnknown_201C020: @ 201C020 @@ -1208,9 +1208,9 @@ gUnknown_2039A30: @ 2039A30 gUnknown_2039A34: @ 2039A34 .space 0x4 -gUnknown_2039A38: @ 2039A38 - .space 0x1004 + .include "src/save.o" + .align 2 gUnknown_203AA3C: @ 203AA3C .space 0x74 |