mirror of
https://github.com/pret/colosseum-mb.git
synced 2026-04-26 00:37:33 -05:00
Start decompiling gflib/save.c
This commit is contained in:
parent
4b0f0e2563
commit
64a5c49e04
|
|
@ -334,8 +334,8 @@ _02000564:
|
|||
bx r0
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_02000584
|
||||
sub_02000584: @ 0x02000584
|
||||
thumb_func_start RenderText_NoPlaceholders
|
||||
RenderText_NoPlaceholders: @ 0x02000584
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
@ -481,8 +481,8 @@ _02000682:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0200068C
|
||||
sub_0200068C: @ 0x0200068C
|
||||
thumb_func_start DrawPartyMonHealthBar
|
||||
DrawPartyMonHealthBar: @ 0x0200068C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
|
|
@ -604,16 +604,16 @@ _02000782:
|
|||
pop {r0}
|
||||
bx r0
|
||||
|
||||
thumb_func_start sub_02000794
|
||||
sub_02000794: @ 0x02000794
|
||||
thumb_func_start IsScreenFadedOut
|
||||
IsScreenFadedOut: @ 0x02000794
|
||||
ldr r0, =gScreenIsFadedOut
|
||||
ldrb r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_020007A0
|
||||
sub_020007A0: @ 0x020007A0
|
||||
thumb_func_start OverrideScreenFadeState
|
||||
OverrideScreenFadeState: @ 0x020007A0
|
||||
ldr r1, =gScreenIsFadedOut
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
|
|
@ -893,8 +893,8 @@ _020009BA:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_020009C4
|
||||
sub_020009C4: @ 0x020009C4
|
||||
thumb_func_start RenderTextAt
|
||||
RenderTextAt: @ 0x020009C4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r3, #0
|
||||
|
|
@ -906,8 +906,9 @@ sub_020009C4: @ 0x020009C4
|
|||
pop {r0}
|
||||
bx r0
|
||||
|
||||
thumb_func_start sub_020009DC
|
||||
sub_020009DC: @ 0x020009DC
|
||||
thumb_func_start CreateSomeWindowParameterized
|
||||
CreateSomeWindowParameterized: @ 0x020009DC
|
||||
@ struct Window * CreateSomeWindowParameterized(u32 windowId, u32 left, u32 top, u32 width, u32 height, u8 glyphSize);
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
adds r6, r0, #0
|
||||
|
|
@ -923,7 +924,7 @@ sub_020009DC: @ 0x020009DC
|
|||
strb r5, [r0, #3]
|
||||
strb r7, [r0, #4]
|
||||
mov r1, sp
|
||||
ldr r0, =gUnknown_02020A44
|
||||
ldr r0, =sSomeWindowBaseBlock
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1, #6]
|
||||
movs r0, #0xf
|
||||
|
|
@ -959,7 +960,7 @@ _02000A36:
|
|||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r1, =gUnknown_02020A44
|
||||
ldr r1, =sSomeWindowBaseBlock
|
||||
adds r0, r5, #0
|
||||
muls r0, r7, r0
|
||||
ldrh r2, [r1]
|
||||
|
|
@ -973,8 +974,8 @@ _02000A36:
|
|||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_02000A74
|
||||
sub_02000A74: @ 0x02000A74
|
||||
thumb_func_start CreatePartyMonHPWindow
|
||||
CreatePartyMonHPWindow: @ 0x02000A74
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
adds r3, r0, #0
|
||||
|
|
@ -988,7 +989,7 @@ sub_02000A74: @ 0x02000A74
|
|||
adds r1, r3, #0
|
||||
adds r2, r4, #0
|
||||
movs r3, #7
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r7, r0, #0
|
||||
movs r1, #0
|
||||
bl ClearWindowCharBuffer
|
||||
|
|
@ -1062,7 +1063,7 @@ _02000B16:
|
|||
bl TextWindowSetXY
|
||||
adds r0, r7, #0
|
||||
add r1, sp, #8
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
adds r0, r7, #0
|
||||
add sp, #0x10
|
||||
pop {r4, r5, r6, r7}
|
||||
|
|
@ -1071,8 +1072,8 @@ _02000B16:
|
|||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_02000B38
|
||||
sub_02000B38: @ 0x02000B38
|
||||
thumb_func_start CreateMonIcon
|
||||
CreateMonIcon: @ 0x02000B38
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x18]
|
||||
|
|
@ -1209,7 +1210,7 @@ _02000C1A:
|
|||
movs r1, #0
|
||||
movs r2, #2
|
||||
ldr r3, =gUnknown_0202004D
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _02000C7E
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -1299,7 +1300,7 @@ sub_02000CA4: @ 0x02000CA4
|
|||
bl AddSprite
|
||||
adds r4, r0, #0
|
||||
str r6, [r4, #0x14]
|
||||
ldr r0, =sub_02000B38
|
||||
ldr r0, =CreateMonIcon
|
||||
str r0, [r4, #0x10]
|
||||
ldr r5, =gAgbPmRomParams
|
||||
ldr r0, [r5]
|
||||
|
|
@ -1484,7 +1485,7 @@ _02000E7E:
|
|||
movs r0, #8
|
||||
str r0, [sp, #4]
|
||||
movs r0, #1
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
mov r3, sb
|
||||
str r0, [r3, #0x14]
|
||||
ldr r4, =gPlayerPartyPtr
|
||||
|
|
@ -1618,7 +1619,7 @@ _02000F9A:
|
|||
mov r2, sb
|
||||
ldr r0, [r2, #0x14]
|
||||
add r1, sp, #0x20
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
mov r3, sb
|
||||
ldrb r0, [r3, #3]
|
||||
cmp r0, #0
|
||||
|
|
@ -1637,7 +1638,7 @@ _02000FBE:
|
|||
str r0, [sp, #4]
|
||||
movs r0, #1
|
||||
movs r3, #3
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r6, r0, #0
|
||||
ldr r2, =gPlayerPartyPtr
|
||||
movs r0, #0x64
|
||||
|
|
@ -1685,7 +1686,7 @@ _0200102A:
|
|||
_02001034:
|
||||
adds r1, r4, r1
|
||||
adds r0, r6, #0
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
mov r1, sb
|
||||
str r6, [r1, #0x18]
|
||||
b _0200107A
|
||||
|
|
@ -1811,7 +1812,7 @@ _02001120:
|
|||
ldrb r1, [r2, #1]
|
||||
adds r1, #5
|
||||
mov r2, sl
|
||||
bl sub_02000A74
|
||||
bl CreatePartyMonHPWindow
|
||||
mov r3, sb
|
||||
str r0, [r3, #0x1c]
|
||||
mov r0, r8
|
||||
|
|
@ -1821,7 +1822,7 @@ _02001120:
|
|||
adds r2, #4
|
||||
movs r0, #0
|
||||
mov r3, sl
|
||||
bl sub_0200068C
|
||||
bl DrawPartyMonHealthBar
|
||||
movs r0, #0x2c
|
||||
mov r1, sl
|
||||
muls r1, r0, r1
|
||||
|
|
@ -1861,7 +1862,7 @@ _02001178:
|
|||
movs r3, #0x10
|
||||
str r3, [sp, #4]
|
||||
movs r3, #6
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r4, r0, #0
|
||||
mov r0, sb
|
||||
str r4, [r0, #0x24]
|
||||
|
|
@ -1877,7 +1878,7 @@ _02001178:
|
|||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _020011F2
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -2082,7 +2083,7 @@ _02001366:
|
|||
movs r0, #8
|
||||
str r0, [sp, #4]
|
||||
movs r0, #1
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
mov r3, sb
|
||||
str r0, [r3, #0x14]
|
||||
ldr r4, =gPlayerPartyPtr
|
||||
|
|
@ -2216,7 +2217,7 @@ _02001482:
|
|||
mov r2, sb
|
||||
ldr r0, [r2, #0x14]
|
||||
add r1, sp, #0x20
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
mov r3, sb
|
||||
ldrb r0, [r3, #3]
|
||||
cmp r0, #0
|
||||
|
|
@ -2235,7 +2236,7 @@ _020014A6:
|
|||
str r0, [sp, #4]
|
||||
movs r0, #1
|
||||
movs r3, #3
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r6, r0, #0
|
||||
ldr r2, =gPlayerPartyPtr
|
||||
movs r0, #0x64
|
||||
|
|
@ -2283,7 +2284,7 @@ _02001512:
|
|||
_0200151C:
|
||||
adds r1, r4, r1
|
||||
adds r0, r6, #0
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
mov r1, sb
|
||||
str r6, [r1, #0x18]
|
||||
b _0200155C
|
||||
|
|
@ -2406,7 +2407,7 @@ _020015FC:
|
|||
ldrb r1, [r2, #1]
|
||||
adds r1, #2
|
||||
mov r2, sl
|
||||
bl sub_02000A74
|
||||
bl CreatePartyMonHPWindow
|
||||
mov r3, sb
|
||||
str r0, [r3, #0x1c]
|
||||
mov r0, r8
|
||||
|
|
@ -2416,7 +2417,7 @@ _020015FC:
|
|||
adds r2, #1
|
||||
movs r0, #0
|
||||
mov r3, sl
|
||||
bl sub_0200068C
|
||||
bl DrawPartyMonHealthBar
|
||||
movs r0, #0x2c
|
||||
mov r1, sl
|
||||
muls r1, r0, r1
|
||||
|
|
@ -2455,7 +2456,7 @@ _02001654:
|
|||
movs r3, #0x10
|
||||
str r3, [sp, #4]
|
||||
movs r3, #6
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r4, r0, #0
|
||||
mov r0, sb
|
||||
str r4, [r0, #0x24]
|
||||
|
|
@ -2471,7 +2472,7 @@ _02001654:
|
|||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _020016CA
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -2617,7 +2618,7 @@ sub_020017E8: @ 0x020017E8
|
|||
push {r4, r5, r6, lr}
|
||||
sub sp, #0xc
|
||||
adds r6, r0, #0
|
||||
ldr r1, =gUnknown_02020A44
|
||||
ldr r1, =sSomeWindowBaseBlock
|
||||
movs r0, #0x80
|
||||
strh r0, [r1]
|
||||
bl ClearVram
|
||||
|
|
@ -2977,7 +2978,7 @@ _02001AC8:
|
|||
ldr r3, =gUnknown_0201FF98
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _02001B98
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -2986,7 +2987,7 @@ _02001B8C:
|
|||
ldr r3, =gUnknown_0201FF9F
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
_02001B98:
|
||||
ldr r5, =gUnknown_02021860
|
||||
movs r0, #0x86
|
||||
|
|
@ -2996,12 +2997,12 @@ _02001B98:
|
|||
ldr r3, =gUnknown_0201FFA8
|
||||
movs r1, #0
|
||||
movs r2, #0x10
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4]
|
||||
ldr r3, =gUnknown_0201FFB0
|
||||
movs r1, #0
|
||||
movs r2, #0x20
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r2, =gUnknown_0201F910
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
|
|
@ -3023,7 +3024,7 @@ _02001B98:
|
|||
ldr r1, =gBgTilemapBufferTransferScheduled
|
||||
movs r0, #1
|
||||
strb r0, [r1, #2]
|
||||
bl sub_02000794
|
||||
bl IsScreenFadedOut
|
||||
cmp r0, #0
|
||||
beq _02001BF4
|
||||
bl FadeIn
|
||||
|
|
@ -3484,7 +3485,7 @@ _02001F50:
|
|||
ldr r3, =gUnknown_0201FFB7
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _0200201C
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -3493,7 +3494,7 @@ _02002010:
|
|||
ldr r3, =gUnknown_0201FFBE
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
_0200201C:
|
||||
ldr r5, =gUnknown_02021860
|
||||
movs r2, #0x86
|
||||
|
|
@ -3503,12 +3504,12 @@ _0200201C:
|
|||
ldr r3, =gUnknown_0201FFA8
|
||||
movs r1, #0
|
||||
movs r2, #0x10
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4]
|
||||
ldr r3, =gUnknown_0201FFB0
|
||||
movs r1, #0
|
||||
movs r2, #0x20
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r2, =gUnknown_0201F910
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
|
|
@ -3530,7 +3531,7 @@ _0200201C:
|
|||
ldr r1, =gBgTilemapBufferTransferScheduled
|
||||
movs r0, #1
|
||||
strb r0, [r1, #2]
|
||||
bl sub_02000794
|
||||
bl IsScreenFadedOut
|
||||
cmp r0, #0
|
||||
beq _02002098
|
||||
bl FadeIn
|
||||
|
|
@ -3704,7 +3705,7 @@ _020021D4:
|
|||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _0200222C
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -3784,7 +3785,7 @@ _02002278:
|
|||
movs r1, #0
|
||||
movs r2, #2
|
||||
ldr r3, =gUnknown_0202004D
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _020022DE
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -3823,7 +3824,7 @@ _020022DE:
|
|||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _02002336
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -5118,7 +5119,7 @@ sub_02002D60: @ 0x02002D60
|
|||
adds r1, r3, #0
|
||||
adds r2, r4, #0
|
||||
movs r3, #3
|
||||
bl sub_020009DC
|
||||
bl CreateSomeWindowParameterized
|
||||
adds r6, r0, #0
|
||||
ldr r2, =gPlayerPartyPtr
|
||||
movs r0, #0x64
|
||||
|
|
@ -5171,7 +5172,7 @@ _02002DE4:
|
|||
add r1, sp
|
||||
adds r1, #8
|
||||
adds r0, r6, #0
|
||||
bl sub_02000584
|
||||
bl RenderText_NoPlaceholders
|
||||
adds r0, r6, #0
|
||||
add sp, #0x10
|
||||
pop {r4, r5, r6}
|
||||
|
|
@ -5319,7 +5320,7 @@ sub_02002EE0: @ 0x02002EE0
|
|||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #2
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
b _02002F2A
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
|
@ -7121,7 +7122,7 @@ _02003F20:
|
|||
ldr r3, =gUnknown_02020046
|
||||
movs r1, #0
|
||||
movs r2, #0x30
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r5, #0x10]
|
||||
cmp r0, #0
|
||||
bne _02003F82
|
||||
|
|
@ -7995,7 +7996,7 @@ sub_0200465C: @ 0x0200465C
|
|||
ldr r1, =gUnknown_0201FB90
|
||||
movs r0, #0
|
||||
bl AddWindow
|
||||
ldr r1, =gUnknown_020219E4
|
||||
ldr r1, =gMessageWindowPtr
|
||||
str r0, [r1]
|
||||
movs r1, #1
|
||||
movs r2, #8
|
||||
|
|
@ -8030,34 +8031,34 @@ _02004744:
|
|||
beq _02004768
|
||||
b _020047AC
|
||||
_0200474A:
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, #0
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #0x18]
|
||||
b _02004798
|
||||
.align 2, 0
|
||||
.pool
|
||||
_02004768:
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, #0
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #0x1c]
|
||||
b _02004798
|
||||
.align 2, 0
|
||||
.pool
|
||||
_02004788:
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, #0
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #0x20]
|
||||
_02004798:
|
||||
adds r0, r4, #0
|
||||
|
|
@ -8066,12 +8067,12 @@ _02004798:
|
|||
.align 2, 0
|
||||
.pool
|
||||
_020047AC:
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, #0
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #4]
|
||||
adds r0, r4, #0
|
||||
bl RenderText
|
||||
|
|
@ -8100,13 +8101,13 @@ sub_020047D4: @ 0x020047D4
|
|||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
blt _020047FE
|
||||
ldr r0, =gRomDetection_IsRS
|
||||
ldr r0, =gRomDetection_IsEnglishROM
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _02004898
|
||||
_020047FE:
|
||||
movs r0, #1
|
||||
bl sub_020007A0
|
||||
bl OverrideScreenFadeState
|
||||
add r1, sp, #0x10
|
||||
ldr r0, =gFont0LatinInfo
|
||||
ldm r0!, {r2, r3, r5}
|
||||
|
|
@ -8143,12 +8144,12 @@ _020047FE:
|
|||
ldr r1, =gBgTilemapBufferTransferScheduled
|
||||
movs r0, #1
|
||||
strb r0, [r1, #2]
|
||||
bl sub_02000794
|
||||
bl IsScreenFadedOut
|
||||
cmp r0, #1
|
||||
bne _02004862
|
||||
bl FadeIn
|
||||
_02004862:
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl RenderText
|
||||
|
|
@ -8168,7 +8169,7 @@ _02004898:
|
|||
.align 2, 0
|
||||
.pool
|
||||
_020048AC:
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
|
|
@ -8215,7 +8216,7 @@ _0200491C:
|
|||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _02004932
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, =gUnknown_02020508
|
||||
bl RenderText
|
||||
|
|
@ -8283,12 +8284,12 @@ _02004998:
|
|||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
bl sub_02006264
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, #0
|
||||
ldr r1, =0x0000FFFF
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
ldr r1, [r0, #4]
|
||||
adds r0, r4, #0
|
||||
bl RenderText
|
||||
|
|
@ -8304,16 +8305,16 @@ _020049C2:
|
|||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_02004A04
|
||||
sub_02004A04: @ 0x02004A04
|
||||
thumb_func_start WarningPrint
|
||||
WarningPrint: @ 0x02004A04
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, =gUnknown_020219E4
|
||||
ldr r0, =gMessageWindowPtr
|
||||
ldr r5, [r0]
|
||||
ldr r1, =0x0000FFFF
|
||||
adds r0, r5, #0
|
||||
bl ClearWindowCharBuffer
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
lsls r4, r4, #2
|
||||
adds r4, r4, r0
|
||||
ldr r1, [r4]
|
||||
|
|
@ -8367,12 +8368,12 @@ ErrorPrint: @ 0x02004A34
|
|||
ldr r1, =gBgTilemapBufferTransferScheduled
|
||||
movs r0, #1
|
||||
strb r0, [r1, #2]
|
||||
bl sub_02000794
|
||||
bl IsScreenFadedOut
|
||||
cmp r0, #1
|
||||
bne _02004A9A
|
||||
bl FadeIn
|
||||
_02004A9A:
|
||||
ldr r0, =gUnknown_0201FBB0
|
||||
ldr r0, =gErrorMessagePtrs
|
||||
lsls r1, r5, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
|
|
@ -8783,7 +8784,7 @@ _02004E84:
|
|||
movs r1, #0xc
|
||||
movs r2, #0xa
|
||||
adds r3, r6, #0
|
||||
bl sub_0200068C
|
||||
bl DrawPartyMonHealthBar
|
||||
movs r2, #4
|
||||
rsbs r2, r2, #0
|
||||
movs r0, #1
|
||||
|
|
@ -8852,7 +8853,7 @@ _02004F12:
|
|||
subs r2, r0, r2
|
||||
ldr r3, [r4, #4]
|
||||
adds r0, r6, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
subs r5, #1
|
||||
adds r4, #0xc
|
||||
cmp r5, #0
|
||||
|
|
@ -9193,7 +9194,7 @@ sub_02005168: @ 0x02005168
|
|||
ldr r3, [r1]
|
||||
movs r1, #0xb0
|
||||
movs r2, #0x10
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r1, =gUnknown_02021A20
|
||||
ldr r0, [r1, #0x18]
|
||||
mov r2, r8
|
||||
|
|
@ -9240,7 +9241,7 @@ sub_02005168: @ 0x02005168
|
|||
movs r1, #0xbf
|
||||
movs r2, #0
|
||||
add r3, sp, #8
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
add sp, #0x18
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
|
|
@ -9282,7 +9283,7 @@ sub_02005264: @ 0x02005264
|
|||
ldr r3, =gUnknown_02020098
|
||||
movs r1, #0xb0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
movs r0, #0
|
||||
bl sub_02005168
|
||||
movs r6, #0
|
||||
|
|
@ -9617,7 +9618,7 @@ sub_02005548: @ 0x02005548
|
|||
ldr r3, =gUnknown_0202010F
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r5, #0x18]
|
||||
ldr r4, =gUnknown_0201FE24
|
||||
adds r1, r4, #0
|
||||
|
|
@ -9757,7 +9758,7 @@ _02005658:
|
|||
ldr r3, =gUnknown_02020087
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4, #0x18]
|
||||
ldr r1, =gUnknown_0201FD94
|
||||
movs r2, #4
|
||||
|
|
@ -9814,7 +9815,7 @@ sub_02005704: @ 0x02005704
|
|||
ldr r3, =gUnknown_02020087
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4, #0x18]
|
||||
ldr r1, =gUnknown_0201FD94
|
||||
movs r2, #4
|
||||
|
|
@ -9869,7 +9870,7 @@ _020057B8:
|
|||
ldr r3, =gUnknown_02020087
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4, #0x18]
|
||||
ldr r4, =gUnknown_0201FD94
|
||||
adds r1, r4, #0
|
||||
|
|
@ -10120,7 +10121,7 @@ _02005A00:
|
|||
ldr r3, =gUnknown_02020087
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4, #0x18]
|
||||
ldr r1, =gUnknown_0201FD94
|
||||
movs r2, #4
|
||||
|
|
@ -10276,7 +10277,7 @@ _02005B74:
|
|||
ldrb r0, [r1]
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
bl sub_02000794
|
||||
bl IsScreenFadedOut
|
||||
cmp r0, #0
|
||||
bne _02005B9A
|
||||
bl FadeOut
|
||||
|
|
@ -10639,7 +10640,7 @@ sub_02005E68: @ 0x02005E68
|
|||
ldr r3, =gUnknown_02020087
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl sub_020009C4
|
||||
bl RenderTextAt
|
||||
ldr r0, [r4, #0x18]
|
||||
ldr r1, =gUnknown_0201FD94
|
||||
movs r2, #4
|
||||
|
|
@ -10859,7 +10860,7 @@ _0200604E:
|
|||
sub_02006058: @ 0x02006058
|
||||
push {r4, r5, r6, lr}
|
||||
movs r0, #2
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
ldr r0, =gUnknown_02024960
|
||||
ldr r1, =0x0000084C
|
||||
adds r2, r0, r1
|
||||
|
|
@ -10880,11 +10881,11 @@ _02006074:
|
|||
cmp r0, #0
|
||||
beq _02006074
|
||||
_02006084:
|
||||
ldr r0, =gRomDetection_IsEnglish
|
||||
ldr r0, =gRomDetection_IsRubySapphire
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _020060C0
|
||||
bl sub_0200CD38
|
||||
bl GetPlayerMapType
|
||||
movs r1, #2
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
|
|
@ -10894,7 +10895,7 @@ _02006084:
|
|||
rsbs r0, r0, #0
|
||||
str r0, [r1]
|
||||
movs r0, #5
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
_020060A6:
|
||||
movs r0, #2
|
||||
b _02006256
|
||||
|
|
@ -10967,7 +10968,7 @@ _02006108:
|
|||
bl ErrorPrint
|
||||
_02006144:
|
||||
movs r0, #3
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
ldr r5, =gUnknown_02024960
|
||||
ldr r0, =0x0000084C
|
||||
adds r1, r5, r0
|
||||
|
|
@ -11054,15 +11055,15 @@ _02006214:
|
|||
b _02006230
|
||||
_0200621A:
|
||||
movs r0, #1
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
b _02006230
|
||||
_02006222:
|
||||
movs r0, #4
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
b _02006230
|
||||
_0200622A:
|
||||
movs r0, #5
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
_02006230:
|
||||
ldr r1, =gUnknown_02024960
|
||||
ldr r0, =0x0000084C
|
||||
|
|
@ -11094,7 +11095,7 @@ _02006256:
|
|||
sub_02006264: @ 0x02006264
|
||||
push {r4, r5, lr}
|
||||
movs r0, #3
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
ldr r5, =gUnknown_02024960
|
||||
ldr r0, =0x0000085B
|
||||
adds r4, r5, r0
|
||||
|
|
@ -11159,15 +11160,15 @@ _020062F4:
|
|||
b _02006310
|
||||
_020062FA:
|
||||
movs r0, #1
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
b _02006310
|
||||
_02006302:
|
||||
movs r0, #4
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
b _02006310
|
||||
_0200630A:
|
||||
movs r0, #5
|
||||
bl sub_02004A04
|
||||
bl WarningPrint
|
||||
_02006310:
|
||||
ldr r1, =gUnknown_02024960
|
||||
ldr r0, =0x0000084C
|
||||
|
|
@ -11432,6 +11433,6 @@ _020064E8:
|
|||
.lcomm gUnknown_02020A38, 8
|
||||
.lcomm gScreenIsFadedOut, 1
|
||||
.lcomm _padding_02020A41, 2
|
||||
.lcomm gUnknown_02020A44, 2
|
||||
.lcomm sSomeWindowBaseBlock, 2
|
||||
.lcomm _padding_02020A46, 2
|
||||
.lcomm gUnknown_02020A48, 4
|
||||
|
|
|
|||
|
|
@ -3,73 +3,10 @@
|
|||
.text
|
||||
.syntax unified
|
||||
|
||||
thumb_func_start GetPicUncompPtr
|
||||
GetPicUncompPtr: @ 0x020098D0
|
||||
ldr r0, =0x03004400
|
||||
bx lr
|
||||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_020098D8
|
||||
sub_020098D8: @ 0x020098D8
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
ldr r4, =gSaveSectors
|
||||
ldr r0, =gAgbPmRomParams
|
||||
ldr r0, [r0]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x88
|
||||
ldr r1, [r1]
|
||||
strh r1, [r4, #4]
|
||||
adds r0, #0x8c
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xf8
|
||||
lsls r1, r1, #4
|
||||
bl __umodsi3
|
||||
strh r0, [r4, #0x24]
|
||||
adds r4, #0x6c
|
||||
movs r0, #0xfa
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r4]
|
||||
bl IdentifyFlash
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _0200994C
|
||||
lsls r0, r5, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
adds r1, r6, #0
|
||||
bl SetFlashTimerIntr
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r1, r0, #0x10
|
||||
cmp r1, #0
|
||||
bne _0200994C
|
||||
ldr r0, =gSaveCounter
|
||||
str r1, [r0]
|
||||
ldr r0, =gFirstSaveSector
|
||||
strh r1, [r0]
|
||||
ldr r0, =gDamagedSaveSectors
|
||||
str r1, [r0]
|
||||
ldr r1, =gSaveValidStatus
|
||||
movs r0, #0x80
|
||||
str r0, [r1]
|
||||
movs r0, #0
|
||||
b _02009950
|
||||
.align 2, 0
|
||||
.pool
|
||||
_0200994C:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_02009950:
|
||||
pop {r4, r5, r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start SetSaveSectorPtrs
|
||||
SetSaveSectorPtrs: @ 0x02009958
|
||||
push {r4, r5, lr}
|
||||
ldr r2, =gSaveSectors
|
||||
ldr r2, =sSaveBlockChunks
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
|
|
@ -511,7 +448,7 @@ _02009CC6:
|
|||
thumb_func_start sub_02009CD8
|
||||
sub_02009CD8: @ 0x02009CD8
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, =gSaveSectors
|
||||
ldr r6, =sSaveBlockChunks
|
||||
ldr r1, =gFastSaveSection
|
||||
ldr r0, =gSaveReadBuffer
|
||||
str r0, [r1]
|
||||
|
|
@ -728,7 +665,7 @@ _02009EB6:
|
|||
thumb_func_start sub_02009EC8
|
||||
sub_02009EC8: @ 0x02009EC8
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, =gSaveSectors
|
||||
ldr r6, =sSaveBlockChunks
|
||||
ldr r1, =gFastSaveSection
|
||||
ldr r0, =gSaveReadBuffer
|
||||
str r0, [r1]
|
||||
|
|
@ -1144,7 +1081,7 @@ _0200A256:
|
|||
sub_0200A260: @ 0x0200A260
|
||||
push {r4, lr}
|
||||
_0200A262:
|
||||
ldr r1, =gSaveSectors
|
||||
ldr r1, =sSaveBlockChunks
|
||||
ldr r4, =gUnknown_02023F40
|
||||
ldrh r0, [r4]
|
||||
cmp r0, #0xd
|
||||
|
|
@ -1323,7 +1260,7 @@ _0200A3DE:
|
|||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
_0200A3EC:
|
||||
ldr r4, =gSaveSectors
|
||||
ldr r4, =sSaveBlockChunks
|
||||
bl SoundVSyncOff
|
||||
movs r0, #0xd
|
||||
adds r1, r4, #0
|
||||
|
|
@ -1347,7 +1284,7 @@ _0200A3EC:
|
|||
_0200A42C:
|
||||
movs r4, #0
|
||||
_0200A42E:
|
||||
ldr r1, =gSaveSectors
|
||||
ldr r1, =sSaveBlockChunks
|
||||
movs r0, #0xe
|
||||
bl sub_0200A118
|
||||
ldr r1, =gDamagedSaveSectors
|
||||
|
|
@ -1386,7 +1323,7 @@ _0200A46E:
|
|||
_0200A478:
|
||||
movs r4, #0
|
||||
_0200A47A:
|
||||
ldr r1, =gSaveSectors
|
||||
ldr r1, =sSaveBlockChunks
|
||||
movs r0, #0xe
|
||||
bl sub_0200A1B8
|
||||
ldr r1, =gDamagedSaveSectors
|
||||
|
|
@ -1890,3 +1827,6 @@ _0200A8AC:
|
|||
|
||||
.lcomm sWipeTries, 4
|
||||
.lcomm gSaveValidStatus, 4
|
||||
|
||||
.global sWipeTries
|
||||
.global gSaveValidStatus
|
||||
|
|
|
|||
|
|
@ -2228,7 +2228,7 @@ DrawSpindasSpots: @ 0x0200B89C
|
|||
lsls r1, r1, #0x11
|
||||
cmp r0, r1
|
||||
bne _0200B9AE
|
||||
ldr r0, =gRomDetection_IsEnglish
|
||||
ldr r0, =gRomDetection_IsRubySapphire
|
||||
ldrb r0, [r0]
|
||||
movs r1, #7
|
||||
str r1, [sp, #4]
|
||||
|
|
|
|||
|
|
@ -576,7 +576,7 @@ _0200C9E2:
|
|||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r7]
|
||||
bl sub_0200CD38
|
||||
bl GetPlayerMapType
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x19
|
||||
ands r0, r5
|
||||
|
|
@ -588,7 +588,7 @@ _0200C9E2:
|
|||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r7]
|
||||
bl sub_0200CDD0
|
||||
bl IsFRLG
|
||||
ands r0, r4
|
||||
lsls r0, r0, #2
|
||||
movs r1, #5
|
||||
|
|
@ -597,7 +597,7 @@ _0200C9E2:
|
|||
ands r1, r2
|
||||
orrs r1, r0
|
||||
strb r1, [r7]
|
||||
bl sub_0200CD38
|
||||
bl GetPlayerMapType
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x1f
|
||||
ands r0, r4
|
||||
|
|
@ -848,10 +848,10 @@ _0200CBF6:
|
|||
thumb_func_start DetectROM
|
||||
DetectROM: @ 0x0200CBF8
|
||||
push {r4, r5, lr}
|
||||
ldr r2, =gRomDetection_IsEnglish
|
||||
ldr r2, =gRomDetection_IsRubySapphire
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r1, =gRomDetection_IsRS
|
||||
ldr r1, =gRomDetection_IsEnglishROM
|
||||
strb r0, [r1]
|
||||
movs r4, #0
|
||||
ldr r0, =0x080000AC
|
||||
|
|
@ -985,10 +985,10 @@ _0200CD30:
|
|||
bx r0
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0200CD38
|
||||
sub_0200CD38: @ 0x0200CD38
|
||||
thumb_func_start GetPlayerMapType
|
||||
GetPlayerMapType: @ 0x0200CD38
|
||||
push {lr}
|
||||
ldr r0, =gRomDetection_IsEnglish
|
||||
ldr r0, =gRomDetection_IsRubySapphire
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0200CD60
|
||||
|
|
@ -1006,7 +1006,7 @@ sub_0200CD38: @ 0x0200CD38
|
|||
_0200CD60:
|
||||
ldr r0, =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
bl sub_0200CED8
|
||||
bl USRom_GetPlayerMapType
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
movs r0, #1
|
||||
|
|
@ -1030,7 +1030,7 @@ sub_0200CD84: @ 0x0200CD84
|
|||
thumb_func_start sub_0200CD88
|
||||
sub_0200CD88: @ 0x0200CD88
|
||||
push {lr}
|
||||
ldr r0, =gRomDetection_IsEnglish
|
||||
ldr r0, =gRomDetection_IsRubySapphire
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0200CDB4
|
||||
|
|
@ -1064,8 +1064,8 @@ _0200CDCA:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0200CDD0
|
||||
sub_0200CDD0: @ 0x0200CDD0
|
||||
thumb_func_start IsFRLG
|
||||
IsFRLG: @ 0x0200CDD0
|
||||
ldr r0, =gAgbPmRomParams
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
|
|
@ -1081,8 +1081,8 @@ _0200CDE4:
|
|||
_0200CDE6:
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_0200CDE8
|
||||
sub_0200CDE8: @ 0x0200CDE8
|
||||
thumb_func_start CheckGameClear
|
||||
CheckGameClear: @ 0x0200CDE8
|
||||
ldr r1, =gSaveBlock1Ptr
|
||||
ldr r0, =gAgbPmRomParams
|
||||
ldr r0, [r0]
|
||||
|
|
@ -1230,8 +1230,8 @@ _0200CED0:
|
|||
.align 2, 0
|
||||
.pool
|
||||
|
||||
thumb_func_start sub_0200CED8
|
||||
sub_0200CED8: @ 0x0200CED8
|
||||
thumb_func_start USRom_GetPlayerMapType
|
||||
USRom_GetPlayerMapType: @ 0x0200CED8
|
||||
push {r4, lr}
|
||||
movs r1, #4
|
||||
ldrsb r1, [r0, r1]
|
||||
|
|
@ -2195,7 +2195,7 @@ _0200D698:
|
|||
.align 2, 0
|
||||
.pool
|
||||
_0200D6A8:
|
||||
bl sub_0200CDE8
|
||||
bl CheckGameClear
|
||||
ldrb r3, [r5, #0xb]
|
||||
lsls r2, r3, #0x1f
|
||||
lsrs r2, r2, #0x1f
|
||||
|
|
|
|||
|
|
@ -15,17 +15,28 @@
|
|||
.section .rodata
|
||||
.align 2, 0
|
||||
gFont0LatinInfo::
|
||||
.byte 0x02, 0x04, 0x0F, 0x16
|
||||
.byte 0x04, 0x00
|
||||
.byte 2 @ bg
|
||||
.byte 4 @ left
|
||||
.byte 15 @ top
|
||||
.byte 22 @ width
|
||||
.byte 4 @ height
|
||||
.align 1
|
||||
.2byte 0x0020
|
||||
.byte 0x0F, 0x10, 0x00, 0x00
|
||||
.2byte 0x0020 @ base block
|
||||
.byte 0x0F @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x06008400
|
||||
.4byte gFont0LatinGfx
|
||||
.4byte gFont0LatinWidths
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.4byte 0x06008400 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gFont0LatinGfx::
|
||||
.incbin "graphics/fonts/font0_lat.2bpp"
|
||||
|
||||
|
|
@ -285,28 +296,123 @@ gUnknown_0201FAF8::
|
|||
.byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0xA0, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_0201FB10::
|
||||
.byte 0x00, 0x00, 0x00, 0x0B, 0x02, 0x00, 0x20, 0x00, 0x0D, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x06
|
||||
.byte 0x4C, 0x00, 0x01, 0x02, 0xCC, 0x3F, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_0201FB30::
|
||||
.byte 0x00, 0x01, 0x0C, 0x09, 0x08, 0x00, 0x36, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xC0, 0x06, 0x00, 0x06
|
||||
.byte 0x4C, 0x00, 0x01, 0x02, 0xCC, 0x3F, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_0201FB50::
|
||||
.byte 0x00, 0x0B, 0x03, 0x13, 0x11, 0x00, 0x7E, 0x00, 0x0D, 0x10, 0x00, 0x00, 0xC0, 0x0F, 0x00, 0x06
|
||||
.byte 0x4C, 0x00, 0x01, 0x02, 0xCC, 0x3F, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_0201FB70::
|
||||
.byte 0x00, 0x19, 0x00, 0x05, 0x02, 0x00, 0xC1, 0x01, 0x0D, 0x10, 0x00, 0x00, 0x20, 0x38, 0x00, 0x06
|
||||
.byte 0x4C, 0x00, 0x01, 0x02, 0xCC, 0x3F, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_0201FB90::
|
||||
.byte 0x02, 0x01, 0x11, 0x1C, 0x02, 0x00, 0x20, 0x00, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x84, 0x00, 0x06
|
||||
.byte 0x4C, 0x00, 0x01, 0x02, 0xCC, 0x3F, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0 @ bg
|
||||
.byte 0 @ left
|
||||
.byte 0 @ top
|
||||
.byte 11 @ width
|
||||
.byte 2 @ height
|
||||
.align 1
|
||||
.2byte 0x0020 @ base block
|
||||
.byte 0x0D @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x06000400 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_0201FBB0::
|
||||
gUnknown_0201FB30::
|
||||
.byte 0 @ bg
|
||||
.byte 1 @ left
|
||||
.byte 12 @ top
|
||||
.byte 9 @ width
|
||||
.byte 8 @ height
|
||||
.align 1
|
||||
.2byte 0x0036 @ base block
|
||||
.byte 0x0D @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x060006C0 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_0201FB50::
|
||||
.byte 0 @ bg
|
||||
.byte 11 @ left
|
||||
.byte 3 @ top
|
||||
.byte 19 @ width
|
||||
.byte 17 @ height
|
||||
.align 1
|
||||
.2byte 0x007E @ base block
|
||||
.byte 0x0D @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x06000FC0 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_0201FB70::
|
||||
.byte 0 @ bg
|
||||
.byte 25 @ left
|
||||
.byte 0 @ top
|
||||
.byte 5 @ width
|
||||
.byte 2 @ height
|
||||
.align 1
|
||||
.2byte 0x01C1 @ base block
|
||||
.byte 0x0D @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x06003820 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gUnknown_0201FB90::
|
||||
.byte 2 @ bg
|
||||
.byte 1 @ left
|
||||
.byte 17 @ top
|
||||
.byte 28 @ width
|
||||
.byte 2 @ height
|
||||
.align 1
|
||||
.2byte 0x0020 @ base block
|
||||
.byte 0x0F @ bg color
|
||||
.byte 0x10 @ glyph size
|
||||
.align 2
|
||||
.4byte 0x06008400 @ char addr
|
||||
.4byte gFont0LatinGfx @ gfx
|
||||
.4byte gFont0LatinWidths @ glyph widths
|
||||
.byte 0 @ fg color
|
||||
.byte 0 @ shadow color
|
||||
.byte 0 @ current X
|
||||
.byte 0 @ current Y
|
||||
.byte 0 @ glyph fixed width
|
||||
.byte 0 @ start X
|
||||
.byte 0 @ start Y
|
||||
|
||||
.align 2, 0
|
||||
gErrorMessagePtrs::
|
||||
.4byte 0
|
||||
.4byte gUnknown_02020378
|
||||
.4byte gUnknown_02020388
|
||||
|
|
|
|||
|
|
@ -244,22 +244,6 @@ gRSSpecialAreaMaps::
|
|||
|
||||
.data
|
||||
.align 2
|
||||
gSaveSectors::
|
||||
.4byte gSaveBlock2Ptr, 0x00000004
|
||||
.4byte gSaveBlock1Ptr + 0xF80 * 0, 0x00000f80
|
||||
.4byte gSaveBlock1Ptr + 0xF80 * 1, 0x00000f80
|
||||
.4byte gSaveBlock1Ptr + 0xF80 * 2, 0x00000f80
|
||||
.4byte gSaveBlock1Ptr + 0xF80 * 3, 0x00000c40
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 0, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 1, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 2, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 3, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 4, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 5, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 6, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 7, 0x00000f80
|
||||
.4byte gPokemonStoragePtr + 0xF80 * 8, 0x00000004
|
||||
|
||||
gUnknown_020205BC::
|
||||
.4byte gSaveReadBuffer, 0x00000f80
|
||||
.4byte gSaveReadBuffer, 0x00000f80
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ struct FlashType {
|
|||
struct FlashSetupInfo
|
||||
{
|
||||
u16 (*programFlashByte)(u16, u32, u8);
|
||||
u16 (*programFlashSector)(u16, u8 *);
|
||||
u16 (*programFlashSector)(u16, void *);
|
||||
u16 (*eraseFlashChip)(void);
|
||||
u16 (*eraseFlashSector)(u16);
|
||||
u16 (*WaitForFlashWrite)(u8, u8 *, u8);
|
||||
|
|
@ -46,7 +46,7 @@ struct FlashSetupInfo
|
|||
extern u16 gFlashNumRemainingBytes;
|
||||
|
||||
extern u16 (*ProgramFlashByte)(u16, u32, u8);
|
||||
extern u16 (*ProgramFlashSector)(u16, u8 *);
|
||||
extern u16 (*ProgramFlashSector)(u16, void *);
|
||||
extern u16 (*EraseFlashChip)(void);
|
||||
extern u16 (*EraseFlashSector)(u16);
|
||||
extern u16 (*WaitForFlashWrite)(u8, u8 *, u8);
|
||||
|
|
@ -65,13 +65,19 @@ u16 ReadFlashId(void);
|
|||
void StartFlashTimer(u8 phase);
|
||||
void SetReadFlash1(u16 *dest);
|
||||
void StopFlashTimer(void);
|
||||
void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size);
|
||||
u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void));
|
||||
u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src);
|
||||
void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size);
|
||||
u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n);
|
||||
|
||||
u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData);
|
||||
|
||||
u16 EraseFlashChip_MX(void);
|
||||
u16 EraseFlashSector_MX(u16 sectorNum);
|
||||
u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data);
|
||||
u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src);
|
||||
u16 ProgramFlashSector_MX(u16 sectorNum, void *src);
|
||||
|
||||
// agb_flash_1m
|
||||
u16 IdentifyFlash(void);
|
||||
|
||||
#endif // GUARD_GBA_FLASH_INTERNAL_H
|
||||
|
|
|
|||
|
|
@ -16,30 +16,45 @@ struct RomInfo
|
|||
/*0x44*/ const u8 *speciesNames;
|
||||
/*0x48*/ const u8 *moveNames;
|
||||
/*0x4C*/ const struct Decoration *decorations;
|
||||
/*0x50*/ ptrdiff_t flagsOffs;
|
||||
/*0x54*/ ptrdiff_t varsOffs;
|
||||
/*0x58*/ ptrdiff_t pokedexOffs;
|
||||
/*0x5C*/ ptrdiff_t dexSeen2Offs;
|
||||
/*0x60*/ ptrdiff_t dexSeen3Offs;
|
||||
/*0x64*/ ptrdiff_t unk64;
|
||||
/*0x68*/ ptrdiff_t unk68;
|
||||
/*0x6C*/ ptrdiff_t unk6C;
|
||||
/*0x70*/ ptrdiff_t unk70;
|
||||
/*0x74*/ u8 unk74[16];
|
||||
/*0x84*/ ptrdiff_t unk84;
|
||||
/*0x88*/ ptrdiff_t saveBlock2Size;
|
||||
/*0x8C*/ ptrdiff_t saveBlock1Size;
|
||||
/*0x90*/ ptrdiff_t playerPartyCountOffs;
|
||||
/*0x94*/ ptrdiff_t playerPartyOffs;
|
||||
/*0x98*/ ptrdiff_t unk98;
|
||||
/*0x9C*/ ptrdiff_t sb2PlayerIdOffs;
|
||||
/*0xA0*/ ptrdiff_t sb2PlayerNameOffs;
|
||||
/*0xA4*/ ptrdiff_t sb2PlayerGenderOffs;
|
||||
/*0xA8*/ ptrdiff_t unkA8;
|
||||
/*0xAC*/ ptrdiff_t unkAC;
|
||||
/*0xB0*/ ptrdiff_t unkB0;
|
||||
/*0xB4*/ ptrdiff_t unkB4;
|
||||
/*0xB8*/ ptrdiff_t unkB8;
|
||||
/*0x50*/ size_t flagsOffs;
|
||||
/*0x54*/ size_t varsOffs;
|
||||
/*0x58*/ size_t pokedexOffs;
|
||||
/*0x5C*/ size_t dexSeen2Offs;
|
||||
/*0x60*/ size_t dexSeen3Offs;
|
||||
/*0x64*/ size_t unk64;
|
||||
/*0x68*/ size_t unk68;
|
||||
/*0x6C*/ size_t unk6C;
|
||||
/*0x70*/ size_t unk70;
|
||||
/*0x74*/ u8 unk74;
|
||||
/*0x75*/ u8 unk75;
|
||||
/*0x76*/ u8 unk76;
|
||||
/*0x77*/ u8 pokemonNameLength;
|
||||
/*0x78*/ u8 unk78;
|
||||
/*0x79*/ u8 unk79;
|
||||
/*0x7A*/ u8 unk7A;
|
||||
/*0x7B*/ u8 unk7B;
|
||||
/*0x7C*/ u8 unk7C;
|
||||
/*0x7D*/ u8 unk7D;
|
||||
/*0x7E*/ u8 unk7E;
|
||||
/*0x7F*/ u8 unk7F;
|
||||
/*0x80*/ u8 unk80;
|
||||
/*0x81*/ u8 unk81;
|
||||
/*0x82*/ u8 unk82;
|
||||
/*0x83*/ u8 unk83;
|
||||
/*0x84*/ u8 unk84;
|
||||
/*0x88*/ size_t saveBlock2Size;
|
||||
/*0x8C*/ size_t saveBlock1Size;
|
||||
/*0x90*/ size_t playerPartyCountOffs;
|
||||
/*0x94*/ size_t playerPartyOffs;
|
||||
/*0x98*/ size_t sb2SpecialSaveWarpOffs;
|
||||
/*0x9C*/ size_t sb2PlayerIdOffs;
|
||||
/*0xA0*/ size_t sb2PlayerNameOffs;
|
||||
/*0xA4*/ size_t sb2PlayerGenderOffs;
|
||||
/*0xA8*/ size_t unkA8;
|
||||
/*0xAC*/ size_t unkAC;
|
||||
/*0xB0*/ size_t externalEventFlagsOffs;
|
||||
/*0xB4*/ size_t externalEventDataOffs;
|
||||
/*0xB8*/ u8 unkB8; // some sort of flag array?
|
||||
/*0xBC*/ const struct BaseStats *baseStats;
|
||||
/*0xC0*/ const u8 *abilityNames;
|
||||
/*0xC4*/ const u8 *abilityDescriptions;
|
||||
|
|
@ -47,15 +62,15 @@ struct RomInfo
|
|||
/*0xCC*/ const struct BattleMove *battleMoves;
|
||||
/*0xD0*/ const struct CompressedSpriteSheet *ballSpriteSheets;
|
||||
/*0xD4*/ const struct CompressedSpritePalette *ballSpritePalettes;
|
||||
/*0xD8*/ ptrdiff_t unkD8;
|
||||
/*0xDC*/ ptrdiff_t unkDC;
|
||||
/*0xE0*/ ptrdiff_t unkE0;
|
||||
/*0xE4*/ ptrdiff_t unkE4;
|
||||
/*0xE8*/ ptrdiff_t unkE8;
|
||||
/*0xEC*/ ptrdiff_t pcItemsOffs;
|
||||
/*0xF0*/ ptrdiff_t giftRibbonsOffs;
|
||||
/*0xF4*/ ptrdiff_t enigmaBerryOffs;
|
||||
/*0xF8*/ ptrdiff_t enigmaBerrySize;
|
||||
/*0xD8*/ size_t unkD8;
|
||||
/*0xDC*/ size_t sysGameClearFlagIdx;
|
||||
/*0xE0*/ size_t unkE0;
|
||||
/*0xE4*/ size_t unkE4;
|
||||
/*0xE8*/ size_t unkE8;
|
||||
/*0xEC*/ size_t pcItemsOffs;
|
||||
/*0xF0*/ size_t giftRibbonsOffs;
|
||||
/*0xF4*/ size_t enigmaBerryOffs;
|
||||
/*0xF8*/ size_t enigmaBerrySize;
|
||||
/*0xFC*/ const u8 *moveDescriptions;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
#ifndef GFLIB_INIT_H
|
||||
#define GFLIB_INIT_H
|
||||
|
||||
#define TEST_BUTTON(arr, flags) ({(arr) & (flags);})
|
||||
#include "gflib/types.h"
|
||||
|
||||
typedef void (*IntrFunc)(void);
|
||||
#define TEST_BUTTON(arr, flags) ({(arr) & (flags);})
|
||||
|
||||
// Expose to crt0.s
|
||||
void AgbMain(void);
|
||||
|
|
|
|||
6
payload/include/gflib/types.h
Normal file
6
payload/include/gflib/types.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef GFLIB_TYPES_H
|
||||
#define GFLIB_TYPES_H
|
||||
|
||||
typedef void (*IntrFunc)(void);
|
||||
|
||||
#endif //GFLIB_TYPES_H
|
||||
14
payload/include/iwram.h
Normal file
14
payload/include/iwram.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#ifndef GUARD_IWRAM_H
|
||||
#define GUARD_IWRAM_H
|
||||
|
||||
IWRAM_DATA u8 _Iwram[0x8000];
|
||||
|
||||
#define gBgTilemapBuffers ((u16 *)IWRAM_START)
|
||||
#define BG_TILEMAP_BUFFER(i) ((u16 *)(IWRAM_START + BG_SCREEN_SIZE * (i)))
|
||||
#define BG_TILEMAP_BUFFERS_SIZE (BG_SCREEN_SIZE * 4)
|
||||
#define gFontHalfrowLookupTable ((u32 *)(IWRAM_START + 0x4000))
|
||||
#define FONT_HALFROW_LOOKUP_TABLE_SIZE (0x400)
|
||||
#define gPicUncompBuffer ((u8 *)(IWRAM_START + 0x4400))
|
||||
#define PIC_UNCOMP_BUFFER_SIZE (0x800)
|
||||
|
||||
#endif //GUARD_IWRAM_H
|
||||
|
|
@ -27,6 +27,8 @@ SECTIONS {
|
|||
src/gflib/gfxload.o(.text);
|
||||
src/gflib/sound.o(.text);
|
||||
asm/gflib/agb_rom.o(.text);
|
||||
src/gflib/pic_uncomp.o(.text);
|
||||
src/gflib/save.o(.text);
|
||||
asm/mb_020094A8.o(.text);
|
||||
asm/pokemon.o(.text);
|
||||
asm/unk_0200C5DC.o(.text);
|
||||
|
|
@ -81,6 +83,7 @@ SECTIONS {
|
|||
lib_data :
|
||||
ALIGN(4)
|
||||
{
|
||||
src/gflib/save.o(.data);
|
||||
data/mb_020094A8.o(.data);
|
||||
} =0
|
||||
bss_start = .;
|
||||
|
|
@ -99,18 +102,6 @@ SECTIONS {
|
|||
}
|
||||
. = 0x02040000; /* Limit EWRAM size */
|
||||
|
||||
. = 0x03000000;
|
||||
gpu_buffer (NOLOAD) :
|
||||
ALIGN(4)
|
||||
{
|
||||
gBgTilemapBuffers = .;
|
||||
. += 0x4000;
|
||||
gFontHalfrowLookupTable = .;
|
||||
. += 0x400;
|
||||
gPicUncompBuffer = .;
|
||||
. += 0x800;
|
||||
}
|
||||
. = 0x03008000; /* Limit IWRAM size */
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(*);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ static u16 sSavedIme;
|
|||
u8 gFlashTimeoutFlag;
|
||||
u8 (*PollFlashStatus)(u8 *);
|
||||
u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData);
|
||||
u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src);
|
||||
u16 (*ProgramFlashSector)(u16 sectorNum, void *src);
|
||||
const struct FlashType *gFlash;
|
||||
u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data);
|
||||
u16 gFlashNumRemainingBytes;
|
||||
|
|
@ -136,7 +136,7 @@ void ReadFlash_Core(vu8 *src, u8 *dest, u32 size)
|
|||
}
|
||||
}
|
||||
|
||||
void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
|
||||
void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size)
|
||||
{
|
||||
u8 *src;
|
||||
u16 i;
|
||||
|
|
@ -276,7 +276,7 @@ u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src)
|
|||
return result;
|
||||
}
|
||||
|
||||
u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n)
|
||||
u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *src, u32 n)
|
||||
{
|
||||
u8 i;
|
||||
u32 result;
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ static u16 ProgramByte(u8 *src, u8 *dest)
|
|||
return WaitForFlashWrite(1, dest, *src);
|
||||
}
|
||||
|
||||
u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src)
|
||||
u16 ProgramFlashSector_MX(u16 sectorNum, void *src)
|
||||
{
|
||||
u16 result;
|
||||
u8 *dest;
|
||||
|
|
|
|||
7
payload/src/gflib/pic_uncomp.c
Normal file
7
payload/src/gflib/pic_uncomp.c
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "iwram.h"
|
||||
|
||||
void * GetPicUncompPtr(void)
|
||||
{
|
||||
return gPicUncompBuffer;
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
#include "global.h"
|
||||
#include "gflib/types.h"
|
||||
#include "gflib/save.h"
|
||||
#include "gflib/agb_rom.h"
|
||||
#include "gba/flash_internal.h"
|
||||
|
||||
struct SaveBlockChunk
|
||||
{
|
||||
u8 *data;
|
||||
u16 size;
|
||||
};
|
||||
|
||||
struct SaveSector
|
||||
{
|
||||
u8 data[0xFF4];
|
||||
u16 id;
|
||||
u16 checksum;
|
||||
u32 signature;
|
||||
u32 counter;
|
||||
}; // size is 0x1000
|
||||
|
||||
|
||||
// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
|
||||
#define SECTOR_DATA_SIZE 3968u
|
||||
#define SECTOR_FOOTER_SIZE 128
|
||||
|
||||
#define HALL_OF_FAME_SECTOR 28
|
||||
|
||||
#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot
|
||||
#define NUM_HALL_OF_FAME_SECTORS 2
|
||||
|
||||
#define SAVEBLOCK_CHUNK_EX(structure, size, chunkNum) \
|
||||
{ \
|
||||
(u8 *)structure + chunkNum * SECTOR_DATA_SIZE, \
|
||||
min(size - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
|
||||
} \
|
||||
|
||||
#define SAVEBLOCK_CHUNK(structure, chunkNum) SAVEBLOCK_CHUNK_EX(&structure, sizeof(structure), chunkNum)
|
||||
|
||||
struct SaveBlockChunk sSaveBlockChunks[] = {
|
||||
{(u8 *)&gSaveBlock2Ptr, 0x00000004},
|
||||
{(u8 *)&gSaveBlock1Ptr + SECTOR_DATA_SIZE * 0, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gSaveBlock1Ptr + SECTOR_DATA_SIZE * 1, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gSaveBlock1Ptr + SECTOR_DATA_SIZE * 2, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gSaveBlock1Ptr + SECTOR_DATA_SIZE * 3, 0x0c40},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 0, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 1, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 2, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 3, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 4, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 5, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 6, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 7, SECTOR_DATA_SIZE},
|
||||
{(u8 *)&gPokemonStoragePtr + SECTOR_DATA_SIZE * 8, 0x0004},
|
||||
};
|
||||
|
||||
u16 gFirstSaveSector;
|
||||
u32 gPrevSaveCounter;
|
||||
u16 gLastKnownGoodSector;
|
||||
u32 gDamagedSaveSectors;
|
||||
u32 gSaveCounter;
|
||||
struct SaveSector *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM.
|
||||
u16 gUnknown_03005EB4;
|
||||
u16 gSaveFileStatus;
|
||||
u32 gGameContinueCallback;
|
||||
extern u32 gSaveValidStatus;
|
||||
extern u8 sWipeTries;
|
||||
|
||||
s32 sub_020098D8(u32 timerNum, IntrFunc * intrFunc)
|
||||
{
|
||||
sSaveBlockChunks[0].size = gAgbPmRomParams->saveBlock2Size;
|
||||
sSaveBlockChunks[4].size = gAgbPmRomParams->saveBlock1Size % SECTOR_DATA_SIZE;
|
||||
sSaveBlockChunks[13].size = sizeof(struct PokemonStorage) % SECTOR_DATA_SIZE;
|
||||
|
||||
if (!IdentifyFlash() && !SetFlashTimerIntr(timerNum, intrFunc))
|
||||
{
|
||||
gSaveCounter = 0;
|
||||
gFirstSaveSector = 0;
|
||||
gDamagedSaveSectors = 0;
|
||||
gSaveValidStatus = 0x80;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ gUnknown_020219DF:
|
|||
gUnknown_020219E0:
|
||||
.space 0x4
|
||||
|
||||
gUnknown_020219E4:
|
||||
gMessageWindowPtr:
|
||||
.space 0xc
|
||||
|
||||
gUnknown_020219F0:
|
||||
|
|
@ -155,13 +155,13 @@ gUnknown_02024950:
|
|||
gUnknown_02024960:
|
||||
.space 0x884
|
||||
|
||||
gRomDetection_IsRS:
|
||||
gRomDetection_IsEnglishROM:
|
||||
.space 0x4
|
||||
|
||||
gAgbPmRomParams:
|
||||
.space 0x4
|
||||
|
||||
gRomDetection_IsEnglish:
|
||||
gRomDetection_IsRubySapphire:
|
||||
.space 0x4
|
||||
|
||||
gUnknown_020251F0:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user