mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
decomp, label, doc, repeat
This commit is contained in:
parent
cb77386b65
commit
4886c9f7dc
|
|
@ -1116,7 +1116,7 @@ _08000F58:
|
|||
ldr r0, _08000F64
|
||||
bl sub_80121E0
|
||||
_08000F5E:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _08000F78
|
||||
.align 2, 0
|
||||
_08000F64: .4byte 0x000f1209
|
||||
|
|
|
|||
|
|
@ -5,93 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_800D16C
|
||||
sub_800D16C:
|
||||
push {r0-r3}
|
||||
push {lr}
|
||||
mov r12, r4
|
||||
ldr r4, _0800D198
|
||||
add sp, r4
|
||||
mov r4, r12
|
||||
ldr r0, _0800D19C
|
||||
add r0, sp
|
||||
ldr r1, [r0]
|
||||
movs r2, 0x81
|
||||
lsls r2, 3
|
||||
add r2, sp
|
||||
mov r0, sp
|
||||
bl vsprintf
|
||||
movs r3, 0x80
|
||||
lsls r3, 3
|
||||
add sp, r3
|
||||
pop {r3}
|
||||
add sp, 0x10
|
||||
bx r3
|
||||
.align 2, 0
|
||||
_0800D198: .4byte 0xfffffc00
|
||||
_0800D19C: .4byte 0x00000404
|
||||
thumb_func_end sub_800D16C
|
||||
|
||||
thumb_func_start sub_800D1A0
|
||||
sub_800D1A0:
|
||||
push {r3}
|
||||
add sp, 0x4
|
||||
bx lr
|
||||
thumb_func_end sub_800D1A0
|
||||
|
||||
thumb_func_start nullsub_183
|
||||
nullsub_183:
|
||||
bx lr
|
||||
thumb_func_end nullsub_183
|
||||
|
||||
thumb_func_start nullsub_188
|
||||
nullsub_188:
|
||||
bx lr
|
||||
thumb_func_end nullsub_188
|
||||
|
||||
thumb_func_start nullsub_184
|
||||
nullsub_184:
|
||||
bx lr
|
||||
thumb_func_end nullsub_184
|
||||
|
||||
thumb_func_start sub_800D1B4
|
||||
sub_800D1B4:
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800D1B4
|
||||
|
||||
thumb_func_start sub_800D1B8
|
||||
sub_800D1B8:
|
||||
adds r0, r2, 0
|
||||
bx lr
|
||||
thumb_func_end sub_800D1B8
|
||||
|
||||
thumb_func_start nullsub_187
|
||||
nullsub_187:
|
||||
bx lr
|
||||
thumb_func_end nullsub_187
|
||||
|
||||
thumb_func_start sub_800D1C0
|
||||
sub_800D1C0:
|
||||
push {lr}
|
||||
ldr r1, _0800D1D4
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2
|
||||
bne _0800D1D8
|
||||
ldr r0, [r1, 0x4]
|
||||
cmp r0, 0x2
|
||||
bne _0800D1D8
|
||||
movs r0, 0x1
|
||||
b _0800D1DA
|
||||
.align 2, 0
|
||||
_0800D1D4: .4byte gUnknown_202DB60
|
||||
_0800D1D8:
|
||||
movs r0, 0
|
||||
_0800D1DA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800D1C0
|
||||
|
||||
thumb_func_start sub_800D1E0
|
||||
sub_800D1E0:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
@ Unused
|
||||
thumb_func_start PrintMessageWithFuncFileLine
|
||||
PrintMessageWithFuncFileLine:
|
||||
push {r2,r3}
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldr r1, [sp, 0x10]
|
||||
add r2, sp, 0x14
|
||||
bl vsprintf
|
||||
adds r0, r4, 0
|
||||
bl strlen
|
||||
adds r4, r0
|
||||
ldr r1, _08011AFC
|
||||
ldr r2, [r5, 0x8]
|
||||
ldr r3, [r5]
|
||||
ldr r0, [r5, 0x4]
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
bl sprintf
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r3}
|
||||
add sp, 0x8
|
||||
bx r3
|
||||
.align 2, 0
|
||||
_08011AFC: .4byte gFuncFileLineString2
|
||||
thumb_func_end PrintMessageWithFuncFileLine
|
||||
|
||||
.align 2,0 @ Don't pad with nop
|
||||
|
|
@ -2875,7 +2875,7 @@ _08014110: .4byte 0x004000bc
|
|||
thumb_func_start sub_8014114
|
||||
sub_8014114:
|
||||
push {lr}
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
movs r0, 0
|
||||
bl SetSavingIconCoords
|
||||
pop {r0}
|
||||
|
|
|
|||
|
|
@ -1277,7 +1277,7 @@ _08028782:
|
|||
ldr r1, [r4]
|
||||
str r0, [r1, 0x44]
|
||||
_0802878A:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _08028AF2
|
||||
_08028790:
|
||||
ldr r0, [r6]
|
||||
|
|
|
|||
|
|
@ -4476,7 +4476,7 @@ _08054B58:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8058AAC
|
||||
bl SkyAttackMoveAction
|
||||
bl _080554BA
|
||||
_08054B68:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -4800,7 +4800,7 @@ _08054E0C:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805B220
|
||||
bl TrapperOrbAction
|
||||
b _080554BA
|
||||
_08054E1A:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -4849,7 +4849,7 @@ _08054E6E:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805B8B0
|
||||
bl SkullBashMoveAction
|
||||
b _080554BA
|
||||
_08054E7C:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -4905,7 +4905,7 @@ _08054EDE:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8057A98
|
||||
bl TormentMoveAction
|
||||
b _080554BA
|
||||
_08054EEC:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -4961,7 +4961,7 @@ _08054F4E:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805C2AC
|
||||
bl FillInOrbAction
|
||||
b _080554BA
|
||||
_08054F5C:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5031,7 +5031,7 @@ _08054FDA:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805983C
|
||||
bl DiveMoveAction
|
||||
b _080554BA
|
||||
_08054FE8:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5066,7 +5066,7 @@ _08055020:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805BF40
|
||||
bl TrapbustOrbAction
|
||||
b _080554BA
|
||||
_0805502E:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5087,7 +5087,7 @@ _0805504A:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805810C
|
||||
bl GrudgeMoveAction
|
||||
b _080554BA
|
||||
_08055058:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5236,7 +5236,7 @@ _08055174:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805A640
|
||||
bl SpitUpMoveAction
|
||||
b _080554BA
|
||||
_08055182:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5341,7 +5341,7 @@ _08055246:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8059C8C
|
||||
bl HelpingHandMoveAction
|
||||
b _080554BA
|
||||
_08055254:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5390,7 +5390,7 @@ _080552A8:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805B038
|
||||
bl TransformMoveAction
|
||||
b _080554BA
|
||||
_080552B6:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5425,7 +5425,7 @@ _080552EE:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805BD88
|
||||
bl TransferOrbAction
|
||||
b _080554BA
|
||||
_080552FC:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5474,7 +5474,7 @@ _08055350:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805BED4
|
||||
bl EscapeOrbAction
|
||||
b _080554BA
|
||||
_0805535E:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5502,7 +5502,7 @@ _08055388:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8059340
|
||||
bl SketchMoveAction
|
||||
b _080554BA
|
||||
_08055396:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5523,7 +5523,7 @@ _080553B2:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_8059290
|
||||
bl SkillSwapMoveAction
|
||||
b _080554BA
|
||||
_080553C0:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5537,7 +5537,7 @@ _080553CE:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805BBA8
|
||||
bl CleanseOrbAction
|
||||
b _080554BA
|
||||
_080553DC:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -5635,7 +5635,7 @@ _08055492:
|
|||
adds r1, r5, 0
|
||||
mov r2, r8
|
||||
mov r3, r9
|
||||
bl sub_805B464
|
||||
bl MimicMoveAction
|
||||
b _080554BA
|
||||
_080554A0:
|
||||
adds r0, r7, 0
|
||||
|
|
@ -10577,8 +10577,8 @@ _08057A90: .4byte gUnknown_202DF98
|
|||
_08057A94: .4byte gUnknown_80FC7EC
|
||||
thumb_func_end sub_8057A0C
|
||||
|
||||
thumb_func_start sub_8057A98
|
||||
sub_8057A98:
|
||||
thumb_func_start TormentMoveAction
|
||||
TormentMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
|
|
@ -10719,7 +10719,7 @@ _08057B9C:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_08057BB0: .4byte gUnknown_80FCFE4
|
||||
thumb_func_end sub_8057A98
|
||||
thumb_func_end TormentMoveAction
|
||||
|
||||
thumb_func_start sub_8057BB4
|
||||
sub_8057BB4:
|
||||
|
|
@ -11439,8 +11439,8 @@ _080580F4:
|
|||
bx r1
|
||||
thumb_func_end sub_805805C
|
||||
|
||||
thumb_func_start sub_805810C
|
||||
sub_805810C:
|
||||
thumb_func_start GrudgeMoveAction
|
||||
GrudgeMoveAction:
|
||||
push {r4-r7,lr}
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
|
|
@ -11478,7 +11478,7 @@ _0805814E:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_08058158: .4byte gUnknown_80FD294
|
||||
thumb_func_end sub_805810C
|
||||
thumb_func_end GrudgeMoveAction
|
||||
|
||||
thumb_func_start sub_805815C
|
||||
sub_805815C:
|
||||
|
|
@ -12740,8 +12740,8 @@ _08058AA4: .4byte gUnknown_8106A4C
|
|||
_08058AA8: .4byte gUnknown_8106A50
|
||||
thumb_func_end sub_8058A7C
|
||||
|
||||
thumb_func_start sub_8058AAC
|
||||
sub_8058AAC:
|
||||
thumb_func_start SkyAttackMoveAction
|
||||
SkyAttackMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
@ -12810,7 +12810,7 @@ _08058B2A:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_08058B38: .4byte gUnknown_80FACC4
|
||||
thumb_func_end sub_8058AAC
|
||||
thumb_func_end SkyAttackMoveAction
|
||||
|
||||
thumb_func_start sub_8058B3C
|
||||
sub_8058B3C:
|
||||
|
|
@ -13804,8 +13804,8 @@ _0805927E:
|
|||
bx r1
|
||||
thumb_func_end sub_80591E4
|
||||
|
||||
thumb_func_start sub_8059290
|
||||
sub_8059290:
|
||||
thumb_func_start SkillSwapMoveAction
|
||||
SkillSwapMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
@ -13890,10 +13890,10 @@ _0805932E:
|
|||
.align 2, 0
|
||||
_08059338: .4byte gUnknown_203B418
|
||||
_0805933C: .4byte gUnknown_80FC888
|
||||
thumb_func_end sub_8059290
|
||||
thumb_func_end SkillSwapMoveAction
|
||||
|
||||
thumb_func_start sub_8059340
|
||||
sub_8059340:
|
||||
thumb_func_start SketchMoveAction
|
||||
SketchMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
|
|
@ -14008,7 +14008,7 @@ _0805940A:
|
|||
.align 2, 0
|
||||
_0805941C: .4byte gUnknown_202DE58
|
||||
_08059420: .4byte gUnknown_80FE38C
|
||||
thumb_func_end sub_8059340
|
||||
thumb_func_end SketchMoveAction
|
||||
|
||||
thumb_func_start sub_8059424
|
||||
sub_8059424:
|
||||
|
|
@ -14549,8 +14549,8 @@ sub_80597F0:
|
|||
bx r1
|
||||
thumb_func_end sub_80597F0
|
||||
|
||||
thumb_func_start sub_805983C
|
||||
sub_805983C:
|
||||
thumb_func_start DiveMoveAction
|
||||
DiveMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
@ -14616,7 +14616,7 @@ _080598B8:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_080598C8: .4byte gUnknown_80FAD2C
|
||||
thumb_func_end sub_805983C
|
||||
thumb_func_end DiveMoveAction
|
||||
|
||||
thumb_func_start sub_80598CC
|
||||
sub_80598CC:
|
||||
|
|
@ -15126,8 +15126,8 @@ sub_8059C80:
|
|||
bx r1
|
||||
thumb_func_end sub_8059C80
|
||||
|
||||
thumb_func_start sub_8059C8C
|
||||
sub_8059C8C:
|
||||
thumb_func_start HelpingHandMoveAction
|
||||
HelpingHandMoveAction:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
|
|
@ -15163,7 +15163,7 @@ _08059CC6:
|
|||
.align 2, 0
|
||||
_08059CD0: .4byte gUnknown_8106A4C
|
||||
_08059CD4: .4byte gUnknown_8106A50
|
||||
thumb_func_end sub_8059C8C
|
||||
thumb_func_end HelpingHandMoveAction
|
||||
|
||||
thumb_func_start sub_8059CD8
|
||||
sub_8059CD8:
|
||||
|
|
@ -16432,8 +16432,8 @@ _0805A632:
|
|||
_0805A63C: .4byte gUnknown_80F4DD2
|
||||
thumb_func_end sub_805A5E8
|
||||
|
||||
thumb_func_start sub_805A640
|
||||
sub_805A640:
|
||||
thumb_func_start SpitUpMoveAction
|
||||
SpitUpMoveAction:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
|
|
@ -16469,7 +16469,7 @@ _0805A678:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805A684: .4byte gUnknown_80FCA3C
|
||||
thumb_func_end sub_805A640
|
||||
thumb_func_end SpitUpMoveAction
|
||||
|
||||
thumb_func_start sub_805A688
|
||||
sub_805A688:
|
||||
|
|
@ -17721,8 +17721,8 @@ sub_805B028:
|
|||
bx r1
|
||||
thumb_func_end sub_805B028
|
||||
|
||||
thumb_func_start sub_805B038
|
||||
sub_805B038:
|
||||
thumb_func_start TransformMoveAction
|
||||
TransformMoveAction:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
|
|
@ -17751,7 +17751,7 @@ _0805B068:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805B070: .4byte gUnknown_80FEFF4
|
||||
thumb_func_end sub_805B038
|
||||
thumb_func_end TransformMoveAction
|
||||
|
||||
thumb_func_start sub_805B074
|
||||
sub_805B074:
|
||||
|
|
@ -17977,8 +17977,8 @@ sub_805B214:
|
|||
bx r1
|
||||
thumb_func_end sub_805B214
|
||||
|
||||
thumb_func_start sub_805B220
|
||||
sub_805B220:
|
||||
thumb_func_start TrapperOrbAction
|
||||
TrapperOrbAction:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
|
|
@ -18012,7 +18012,7 @@ _0805B252:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805B260: .4byte gUnknown_80FC5A8
|
||||
thumb_func_end sub_805B220
|
||||
thumb_func_end TrapperOrbAction
|
||||
|
||||
thumb_func_start sub_805B264
|
||||
sub_805B264:
|
||||
|
|
@ -18297,8 +18297,8 @@ sub_805B454:
|
|||
bx r1
|
||||
thumb_func_end sub_805B454
|
||||
|
||||
thumb_func_start sub_805B464
|
||||
sub_805B464:
|
||||
thumb_func_start MimicMoveAction
|
||||
MimicMoveAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
|
|
@ -18404,7 +18404,7 @@ _0805B524:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805B538: .4byte gUnknown_80FDD00
|
||||
thumb_func_end sub_805B464
|
||||
thumb_func_end MimicMoveAction
|
||||
|
||||
thumb_func_start sub_805B53C
|
||||
sub_805B53C:
|
||||
|
|
@ -18864,8 +18864,8 @@ sub_805B884:
|
|||
_0805B8AC: .4byte gUnknown_8106A4C
|
||||
thumb_func_end sub_805B884
|
||||
|
||||
thumb_func_start sub_805B8B0
|
||||
sub_805B8B0:
|
||||
thumb_func_start SkullBashMoveAction
|
||||
SkullBashMoveAction:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
adds r5, r0, 0
|
||||
|
|
@ -18910,7 +18910,7 @@ _0805B900:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805B90C: .4byte gUnknown_80FAFF0
|
||||
thumb_func_end sub_805B8B0
|
||||
thumb_func_end SkullBashMoveAction
|
||||
|
||||
thumb_func_start sub_805B910
|
||||
sub_805B910:
|
||||
|
|
@ -19256,8 +19256,8 @@ sub_805BB98:
|
|||
bx r1
|
||||
thumb_func_end sub_805BB98
|
||||
|
||||
thumb_func_start sub_805BBA8
|
||||
sub_805BBA8:
|
||||
thumb_func_start CleanseOrbAction
|
||||
CleanseOrbAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
|
|
@ -19358,7 +19358,7 @@ _0805BC60:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805BC6C: .4byte gUnknown_80FC920
|
||||
thumb_func_end sub_805BBA8
|
||||
thumb_func_end CleanseOrbAction
|
||||
|
||||
thumb_func_start sub_805BC70
|
||||
sub_805BC70:
|
||||
|
|
@ -19517,8 +19517,8 @@ sub_805BD7C:
|
|||
bx r1
|
||||
thumb_func_end sub_805BD7C
|
||||
|
||||
thumb_func_start sub_805BD88
|
||||
sub_805BD88:
|
||||
thumb_func_start TransferOrbAction
|
||||
TransferOrbAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
|
|
@ -19644,7 +19644,7 @@ _0805BE78:
|
|||
.align 2, 0
|
||||
_0805BE88: .4byte gUnknown_202DF98
|
||||
_0805BE8C: .4byte gUnknown_80FD450
|
||||
thumb_func_end sub_805BD88
|
||||
thumb_func_end TransferOrbAction
|
||||
|
||||
thumb_func_start sub_805BE90
|
||||
sub_805BE90:
|
||||
|
|
@ -19694,8 +19694,8 @@ sub_805BEC8:
|
|||
bx r1
|
||||
thumb_func_end sub_805BEC8
|
||||
|
||||
thumb_func_start sub_805BED4
|
||||
sub_805BED4:
|
||||
thumb_func_start EscapeOrbAction
|
||||
EscapeOrbAction:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r1, 0
|
||||
|
|
@ -19739,7 +19739,7 @@ _0805BF26:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805BF30: .4byte gUnknown_80FD4C4
|
||||
thumb_func_end sub_805BED4
|
||||
thumb_func_end EscapeOrbAction
|
||||
|
||||
thumb_func_start sub_805BF34
|
||||
sub_805BF34:
|
||||
|
|
@ -19750,8 +19750,8 @@ sub_805BF34:
|
|||
bx r1
|
||||
thumb_func_end sub_805BF34
|
||||
|
||||
thumb_func_start sub_805BF40
|
||||
sub_805BF40:
|
||||
thumb_func_start TrapbustOrbAction
|
||||
TrapbustOrbAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
|
|
@ -19908,7 +19908,7 @@ _0805C06A:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805C07C: .4byte gUnknown_80FD1CC
|
||||
thumb_func_end sub_805BF40
|
||||
thumb_func_end TrapbustOrbAction
|
||||
|
||||
thumb_func_start sub_805C080
|
||||
sub_805C080:
|
||||
|
|
@ -20209,8 +20209,8 @@ sub_805C2A0:
|
|||
bx r1
|
||||
thumb_func_end sub_805C2A0
|
||||
|
||||
thumb_func_start sub_805C2AC
|
||||
sub_805C2AC:
|
||||
thumb_func_start FillInOrbAction
|
||||
FillInOrbAction:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
|
|
@ -20356,7 +20356,7 @@ _0805C3CA:
|
|||
bx r1
|
||||
.align 2, 0
|
||||
_0805C3D8: .4byte gUnknown_80FD0B8
|
||||
thumb_func_end sub_805C2AC
|
||||
thumb_func_end FillInOrbAction
|
||||
|
||||
thumb_func_start sub_805C3DC
|
||||
sub_805C3DC:
|
||||
|
|
|
|||
|
|
@ -5,34 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8097F74
|
||||
sub_8097F74:
|
||||
push {r4,lr}
|
||||
ldr r4, _08097FA0
|
||||
ldr r0, [r4]
|
||||
movs r1, 0
|
||||
movs r2, 0x64
|
||||
bl memset
|
||||
movs r2, 0
|
||||
ldr r3, _08097FA4
|
||||
_08097F86:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x58
|
||||
adds r0, r2
|
||||
ldrb r1, [r3, 0x2]
|
||||
strb r1, [r0]
|
||||
adds r3, 0x4
|
||||
adds r2, 0x1
|
||||
cmp r2, 0xB
|
||||
ble _08097F86
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097FA0: .4byte gUnknown_203B498
|
||||
_08097FA4: .4byte gExclusivePokemon
|
||||
thumb_func_end sub_8097F74
|
||||
|
||||
thumb_func_start sub_8097FA8
|
||||
sub_8097FA8:
|
||||
lsls r0, 24
|
||||
|
|
|
|||
|
|
@ -1481,7 +1481,7 @@ _0809DEE8:
|
|||
str r0, [r1]
|
||||
add r0, sp, 0x4
|
||||
ldrh r0, [r0, 0x2]
|
||||
bl sub_8011940
|
||||
bl IsEqualtoBGTrack
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0809DF06
|
||||
|
|
|
|||
270
asm/music.s
270
asm/music.s
|
|
@ -5,276 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_800C074
|
||||
sub_800C074:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
mov r8, r5
|
||||
lsls r1, 16
|
||||
lsrs r6, r1, 16
|
||||
ldr r0, _0800C0FC
|
||||
cmp r5, r0
|
||||
bne _0800C08C
|
||||
b _0800C208
|
||||
_0800C08C:
|
||||
movs r7, 0x80
|
||||
lsls r7, 1
|
||||
cmp r6, r7
|
||||
bls _0800C096
|
||||
adds r6, r7, 0
|
||||
_0800C096:
|
||||
adds r0, r5, 0
|
||||
bl sub_800CACC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0800C0A4
|
||||
b _0800C1B0
|
||||
_0800C0A4:
|
||||
adds r0, r5, 0
|
||||
bl sub_800CAE0
|
||||
lsls r0, 16
|
||||
lsrs r7, r0, 16
|
||||
cmp r7, 0x1
|
||||
beq _0800C0B4
|
||||
b _0800C1D0
|
||||
_0800C0B4:
|
||||
bl DisableInterrupts
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
ldr r6, _0800C100
|
||||
strh r5, [r6]
|
||||
ldr r4, _0800C104
|
||||
ldrh r0, [r4]
|
||||
adds r2, r0, 0
|
||||
cmp r2, 0
|
||||
bne _0800C144
|
||||
ldr r0, _0800C108
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0800C10C
|
||||
cmp r1, r0
|
||||
beq _0800C12C
|
||||
ldr r0, _0800C110
|
||||
ldrh r1, [r0]
|
||||
subs r0, r1, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1
|
||||
bhi _0800C120
|
||||
strh r7, [r4]
|
||||
ldr r1, _0800C114
|
||||
movs r0, 0x10
|
||||
strh r0, [r1]
|
||||
ldr r0, _0800C118
|
||||
strb r2, [r0]
|
||||
ldr r0, _0800C11C
|
||||
movs r1, 0x1
|
||||
bl m4aMPlayFadeOutTemporarily
|
||||
b _0800C15E
|
||||
.align 2, 0
|
||||
_0800C0FC: .4byte 0x000003e5
|
||||
_0800C100: .4byte gUnknown_202D68E
|
||||
_0800C104: .4byte gUnknown_202D690
|
||||
_0800C108: .4byte gCurrentBGSong
|
||||
_0800C10C: .4byte 0x000003e7
|
||||
_0800C110: .4byte gBGMusicPlayerState
|
||||
_0800C114: .4byte gUnknown_202D692
|
||||
_0800C118: .4byte gUnknown_202D694
|
||||
_0800C11C: .4byte gUnknown_20008F0
|
||||
_0800C120:
|
||||
lsls r0, r1, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x3
|
||||
bne _0800C12C
|
||||
movs r0, 0x2
|
||||
b _0800C15C
|
||||
_0800C12C:
|
||||
movs r0, 0x3
|
||||
strh r0, [r4]
|
||||
ldr r0, _0800C140
|
||||
bl m4aMPlayStop
|
||||
ldrh r0, [r6]
|
||||
bl m4aSongNumStart
|
||||
b _0800C15E
|
||||
.align 2, 0
|
||||
_0800C140: .4byte gUnknown_20008F0
|
||||
_0800C144:
|
||||
subs r0, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1
|
||||
bls _0800C15E
|
||||
ldr r0, _0800C17C
|
||||
bl m4aMPlayStop
|
||||
ldrh r0, [r6]
|
||||
bl m4aSongNumStart
|
||||
movs r0, 0x3
|
||||
_0800C15C:
|
||||
strh r0, [r4]
|
||||
_0800C15E:
|
||||
ldr r0, _0800C180
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x26
|
||||
bgt _0800C184
|
||||
cmp r0, 0x25
|
||||
bge _0800C19A
|
||||
cmp r0, 0x1A
|
||||
blt _0800C1A0
|
||||
cmp r0, 0x1F
|
||||
ble _0800C19A
|
||||
cmp r0, 0x23
|
||||
bgt _0800C1A0
|
||||
cmp r0, 0x22
|
||||
blt _0800C1A0
|
||||
b _0800C19A
|
||||
.align 2, 0
|
||||
_0800C17C: .4byte gUnknown_20008F0
|
||||
_0800C180: .4byte gCurrentBGSong
|
||||
_0800C184:
|
||||
cmp r0, 0x7A
|
||||
beq _0800C19A
|
||||
cmp r0, 0x7A
|
||||
bgt _0800C196
|
||||
cmp r0, 0x77
|
||||
bgt _0800C1A0
|
||||
cmp r0, 0x75
|
||||
blt _0800C1A0
|
||||
b _0800C19A
|
||||
_0800C196:
|
||||
cmp r0, 0x7F
|
||||
bne _0800C1A0
|
||||
_0800C19A:
|
||||
ldr r1, _0800C1AC
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_0800C1A0:
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _0800C208
|
||||
bl EnableInterrupts
|
||||
b _0800C208
|
||||
.align 2, 0
|
||||
_0800C1AC: .4byte gUnknown_202D694
|
||||
_0800C1B0:
|
||||
adds r0, r5, 0
|
||||
bl sub_800CAAC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0800C208
|
||||
adds r0, r5, 0
|
||||
bl sub_800CAE0
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
lsls r2, r0, 3
|
||||
ldr r1, _0800C1D8
|
||||
adds r4, r2, r1
|
||||
cmp r0, 0x1
|
||||
bhi _0800C1DC
|
||||
_0800C1D0:
|
||||
adds r0, r5, 0
|
||||
bl nullsub_20
|
||||
b _0800C208
|
||||
.align 2, 0
|
||||
_0800C1D8: .4byte gUnknown_3000FD8
|
||||
_0800C1DC:
|
||||
bl DisableInterrupts
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
mov r0, r8
|
||||
bl m4aSongNumStart
|
||||
movs r0, 0x1
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
strh r0, [r4, 0x2]
|
||||
cmp r6, r7
|
||||
bne _0800C1FA
|
||||
movs r0, 0
|
||||
b _0800C1FC
|
||||
_0800C1FA:
|
||||
movs r0, 0x1
|
||||
_0800C1FC:
|
||||
strb r0, [r4, 0x6]
|
||||
strh r6, [r4, 0x4]
|
||||
cmp r5, 0
|
||||
beq _0800C208
|
||||
bl EnableInterrupts
|
||||
_0800C208:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_800C074
|
||||
|
||||
thumb_func_start sub_800C214
|
||||
sub_800C214:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
lsls r1, 16
|
||||
lsrs r7, r1, 16
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
cmp r7, r0
|
||||
bls _0800C22C
|
||||
adds r7, r0, 0
|
||||
_0800C22C:
|
||||
adds r0, r5, 0
|
||||
bl sub_800CACC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0800C286
|
||||
adds r0, r5, 0
|
||||
bl sub_800CAAC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0800C286
|
||||
adds r0, r5, 0
|
||||
bl sub_800CAE0
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r2, _0800C290
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldr r1, [r1]
|
||||
mov r8, r1
|
||||
lsls r2, r0, 3
|
||||
ldr r1, _0800C294
|
||||
adds r4, r2, r1
|
||||
cmp r0, 0x1
|
||||
bls _0800C286
|
||||
bl DisableInterrupts
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldrh r0, [r4, 0x2]
|
||||
cmp r0, r5
|
||||
bne _0800C27E
|
||||
mov r0, r8
|
||||
movs r1, 0xF
|
||||
adds r2, r7, 0
|
||||
bl m4aMPlayVolumeControl
|
||||
_0800C27E:
|
||||
cmp r6, 0
|
||||
beq _0800C286
|
||||
bl EnableInterrupts
|
||||
_0800C286:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800C290: .4byte gMPlayTable
|
||||
_0800C294: .4byte gUnknown_3000FD8
|
||||
thumb_func_end sub_800C214
|
||||
|
||||
thumb_func_start sub_800C298
|
||||
sub_800C298:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -2393,7 +2393,7 @@ _0802AEE2:
|
|||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
_0802AEE6:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _0802B2AA
|
||||
_0802AEEC:
|
||||
ldr r0, _0802AEF0
|
||||
|
|
@ -18996,7 +18996,7 @@ _080333DA:
|
|||
_080333DC:
|
||||
str r0, [r1]
|
||||
_080333DE:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _080338B4
|
||||
_080333E4:
|
||||
ldr r0, _080333E8
|
||||
|
|
@ -26254,7 +26254,7 @@ _08036D44:
|
|||
ldr r1, [r4]
|
||||
str r0, [r1, 0xC]
|
||||
_08036D66:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _08036DFA
|
||||
.align 2, 0
|
||||
_08036D6C: .4byte gUnknown_203B358
|
||||
|
|
@ -27375,7 +27375,7 @@ _080376AE:
|
|||
ldr r1, [r4]
|
||||
str r0, [r1, 0x4]
|
||||
_080376BE:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
|
@ -32681,7 +32681,7 @@ _0803A138:
|
|||
movs r2, 0xB4
|
||||
bl memcpy
|
||||
_0803A14C:
|
||||
bl sub_8011854
|
||||
bl xxx_call_start_bg_music
|
||||
b _0803A1AA
|
||||
_0803A152:
|
||||
ldr r0, _0803A160
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef GUARD_MUSIC_H
|
||||
#define GUARD_MUSIC_H
|
||||
|
||||
void sub_800C93C(void);
|
||||
void sub_800C9CC(void);
|
||||
void StopBGMusicVSync(void);
|
||||
void StartBGMusicVSync(void);
|
||||
u8 sub_800CA38(u32 songIndex);
|
||||
void StartNewBGM(u16 songIndex);
|
||||
bool8 IsBGSong(u32 songIndex);
|
||||
|
|
|
|||
|
|
@ -78,10 +78,8 @@ SECTIONS {
|
|||
src/code_800D090.o(.text);
|
||||
asm/code_800D090.o(.text);
|
||||
src/code_80118A4.o(.text);
|
||||
asm/code_80118A4.o(.text);
|
||||
src/code_80118A4_1.o(.text);
|
||||
src/fatal_system.o(.text);
|
||||
asm/fatal_system_1.o(.text);
|
||||
src/debug.o(.text);
|
||||
asm/debug.o(.text);
|
||||
src/save.o(.text);
|
||||
asm/save.o(.text);
|
||||
src/save_mid.o(.text);
|
||||
|
|
|
|||
|
|
@ -16,58 +16,17 @@ extern void sub_800CC44(s32 r0, s32 r1);
|
|||
void sub_80060A8(void)
|
||||
{
|
||||
|
||||
bool32 temp;
|
||||
bool32 preload;
|
||||
bool32 preload2;
|
||||
|
||||
gUnknown_2026E3C = gUnknown_2026E58;
|
||||
|
||||
preload = gUnknown_2026E54;
|
||||
temp = FALSE;
|
||||
if (!gUnknown_2026E54)
|
||||
{
|
||||
temp = TRUE;
|
||||
}
|
||||
gUnknown_2026E54 = temp;
|
||||
|
||||
preload2 = gUnknown_2026E50;
|
||||
temp = FALSE;
|
||||
if (!gUnknown_2026E50)
|
||||
{
|
||||
temp = TRUE;
|
||||
}
|
||||
gUnknown_2026E50 = temp;
|
||||
|
||||
gUnknown_2026E54 = !gUnknown_2026E54;
|
||||
gUnknown_2026E50 = !gUnknown_2026E50;
|
||||
gUnknown_2026E38 = FALSE;
|
||||
}
|
||||
|
||||
void sub_80060EC(void)
|
||||
{
|
||||
bool32 temp;
|
||||
bool32 preload;
|
||||
bool32 preload2;
|
||||
|
||||
gUnknown_2026E3C = gUnknown_2026E58;
|
||||
|
||||
preload = gUnknown_2026E54;
|
||||
temp = FALSE;
|
||||
|
||||
if (!gUnknown_2026E54)
|
||||
{
|
||||
temp = TRUE;
|
||||
}
|
||||
gUnknown_2026E54 = temp;
|
||||
|
||||
|
||||
preload2 = gUnknown_2026E50;
|
||||
temp = FALSE;
|
||||
|
||||
if (!gUnknown_2026E50)
|
||||
{
|
||||
temp = TRUE;
|
||||
}
|
||||
gUnknown_2026E50 = temp;
|
||||
|
||||
gUnknown_2026E54 = !gUnknown_2026E54;
|
||||
gUnknown_2026E50 = !gUnknown_2026E50;
|
||||
sub_800CC44((gUnknown_2026E4E & (0xF8 << 5)) >> 8, gUnknown_2026E4E & 0x1F);
|
||||
gUnknown_2026E38 = TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ extern u8 gUnknown_202D6B9;
|
|||
extern u16 gUnknown_202D7FA;
|
||||
extern u8 gUnknown_202D7FE;
|
||||
|
||||
extern struct BGControlStruct gUnknown_202D698;
|
||||
extern struct BGControlStruct gUnknown_202D6A0;
|
||||
extern struct BGControlStruct gUnknown_202D6A8;
|
||||
extern struct BGControlStruct gUnknown_202D6B0;
|
||||
extern struct BGControlStruct gBG0Control;
|
||||
extern struct BGControlStruct gBG1Control;
|
||||
extern struct BGControlStruct gBG2Control;
|
||||
extern struct BGControlStruct gBG3Control;
|
||||
|
||||
void ReadKeyInput(struct Inputs *r0)
|
||||
{
|
||||
|
|
@ -93,26 +93,26 @@ void sub_800CC44(s32 r0, s32 r1)
|
|||
|
||||
void SetBG0RegOffsets(s32 xoffset, s32 yoffset)
|
||||
{
|
||||
gUnknown_202D698.hofs = xoffset;
|
||||
gUnknown_202D698.vofs = yoffset;
|
||||
gBG0Control.hofs = xoffset;
|
||||
gBG0Control.vofs = yoffset;
|
||||
}
|
||||
|
||||
void SetBG1RegOffsets(s32 xoffset, s32 yoffset)
|
||||
{
|
||||
gUnknown_202D6A0.hofs = xoffset;
|
||||
gUnknown_202D6A0.vofs = yoffset;
|
||||
gBG1Control.hofs = xoffset;
|
||||
gBG1Control.vofs = yoffset;
|
||||
}
|
||||
|
||||
void SetBG2RegOffsets(s32 xoffset, s32 yoffset)
|
||||
{
|
||||
gUnknown_202D6A8.hofs = xoffset;
|
||||
gUnknown_202D6A8.vofs = yoffset;
|
||||
gBG2Control.hofs = xoffset;
|
||||
gBG2Control.vofs = yoffset;
|
||||
}
|
||||
|
||||
void SetBG3RegOffsets(s32 xoffset, s32 yoffset)
|
||||
{
|
||||
gUnknown_202D6B0.hofs = xoffset;
|
||||
gUnknown_202D6B0.vofs = yoffset;
|
||||
gBG3Control.hofs = xoffset;
|
||||
gBG3Control.vofs = yoffset;
|
||||
}
|
||||
|
||||
void SetBGRegOffsets(s32 reg, u32 xoffset, s32 yoffset)
|
||||
|
|
@ -131,16 +131,16 @@ void SetBGRegXOffset(s32 reg, s32 offset)
|
|||
switch (reg) {
|
||||
default:
|
||||
case 0:
|
||||
gUnknown_202D698.hofs = offset;
|
||||
gBG0Control.hofs = offset;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_202D6A0.hofs = offset;
|
||||
gBG1Control.hofs = offset;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_202D6A8.hofs = offset;
|
||||
gBG2Control.hofs = offset;
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_202D6B0.hofs = offset;
|
||||
gBG3Control.hofs = offset;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -150,16 +150,16 @@ void SetBGRegYOffset(s32 reg, s32 offset)
|
|||
switch (reg) {
|
||||
default:
|
||||
case 0:
|
||||
gUnknown_202D698.vofs = offset;
|
||||
gBG0Control.vofs = offset;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_202D6A0.vofs = offset;
|
||||
gBG1Control.vofs = offset;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_202D6A8.vofs = offset;
|
||||
gBG2Control.vofs = offset;
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_202D6B0.vofs = offset;
|
||||
gBG3Control.vofs = offset;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -167,7 +167,7 @@ void SetBGRegYOffset(s32 reg, s32 offset)
|
|||
void sub_800CD64(s32 r0, u8 r1)
|
||||
{
|
||||
gUnknown_202D7FE = r1;
|
||||
gUnknown_202D6A8.unk2 = r0 ? 0x8000 : 0;
|
||||
gBG2Control.unk2 = r0 ? 0x8000 : 0;
|
||||
}
|
||||
|
||||
void SetBGOBJEnableFlags(u32 mask)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,20 @@
|
|||
#include <stdio.h>
|
||||
#include "gba/gba.h"
|
||||
#include "config.h"
|
||||
#include "global.h"
|
||||
|
||||
|
||||
extern void SoundBiasReset(void);
|
||||
extern void SoundBiasSet(void);
|
||||
|
||||
struct unkStruct_202DB60
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
extern struct unkStruct_202DB60 gUnknown_202DB60;
|
||||
|
||||
void Hang(void)
|
||||
{
|
||||
while(1)
|
||||
|
|
@ -62,7 +71,6 @@ void sub_800D098(void)
|
|||
|
||||
REG_IME = 1;
|
||||
|
||||
// Good after here
|
||||
while(REG_VCOUNT <= 159){}
|
||||
REG_DISPCNT = dispcnt_save; // restore DISPCNT
|
||||
while(REG_KEYINPUT != 0x3ff){} // All buttons
|
||||
|
|
@ -75,3 +83,53 @@ void sub_800D158(u8 *buffer, const char *text, ...)
|
|||
vsprintf(buffer, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_800D16C(const char *text, ...)
|
||||
{
|
||||
char buffer[1024];
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
vsprintf(buffer, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_800D10A(const char *r0, u32 r1, u32 r2, u32 r3, ...)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_183(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_188(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_184(void)
|
||||
{
|
||||
}
|
||||
|
||||
u32 sub_800D1B4(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_800D1B8(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
return r2;
|
||||
}
|
||||
|
||||
void nullsub_187(void)
|
||||
{
|
||||
}
|
||||
|
||||
u32 sub_800D1C0(void)
|
||||
{
|
||||
if(gUnknown_202DB60.unk0 != 2)
|
||||
return 0;
|
||||
if(gUnknown_202DB60.unk4 != 2)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include "global.h"
|
||||
#include "music.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "time.h"
|
||||
#include "bg.h"
|
||||
#include "input.h"
|
||||
#include "config.h"
|
||||
|
||||
|
||||
void sub_8011924(void);
|
||||
void nullsub_26(void);
|
||||
|
||||
extern u8 sub_80023E4(u8);
|
||||
extern void sub_800BF48(u16 r0);
|
||||
|
|
@ -18,15 +21,6 @@ extern void sub_800C074(u16 r0, u16 r1);
|
|||
extern void sub_800C298(u16 r0);
|
||||
extern u8 sub_800C5D0(u16 r0);
|
||||
|
||||
extern void nullsub_27(void);
|
||||
extern void nullsub_29(void);
|
||||
extern void nullsub_30(void);
|
||||
extern void nullsub_31(void);
|
||||
extern void nullsub_32(void);
|
||||
extern void nullsub_28(void);
|
||||
|
||||
extern int sprintf(char *, const char *, ...);
|
||||
|
||||
extern struct PlayTimeStruct *gUnknown_203B47C;
|
||||
|
||||
struct UnkSaveStruct1
|
||||
|
|
@ -50,23 +44,12 @@ struct UnkBgStruct
|
|||
};
|
||||
extern struct UnkBgStruct *gUnknown_203B0E4;
|
||||
|
||||
struct DebugLocation
|
||||
{
|
||||
char *file;
|
||||
u32 line;
|
||||
char *func;
|
||||
};
|
||||
|
||||
|
||||
extern u16 gUnknown_80D4144[];
|
||||
extern s16 gUnknown_202DE20;
|
||||
extern s16 gUnknown_202DE22;
|
||||
extern s16 gUnknown_202DE24;
|
||||
extern u32 gUnknown_202DE1C;
|
||||
extern u32 gUnknown_203B14C;
|
||||
extern const char gNotEntryText[];
|
||||
extern const char gFuncFileLineString[];
|
||||
extern const char gFuncFileLineStringWPrefix[];
|
||||
|
||||
void nullsub_8(u32);
|
||||
void sub_8005838(u32, u32);
|
||||
|
|
@ -114,32 +97,23 @@ void sub_801169C(void)
|
|||
void sub_8011760(void)
|
||||
{
|
||||
if(sub_80023E4(0xD) != 0)
|
||||
{
|
||||
StartNewBGM(MUS_WORLD_CALAMITY);
|
||||
return;
|
||||
}
|
||||
if(sub_80023E4(0xC) != 0)
|
||||
{
|
||||
else if(sub_80023E4(0xC) != 0)
|
||||
StartNewBGM(MUS_POKEMON_SQUARE);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801178C(void)
|
||||
{
|
||||
if(sub_80023E4(0xD) != 0)
|
||||
{
|
||||
StartNewBGM(MUS_WORLD_CALAMITY);
|
||||
return;
|
||||
}
|
||||
StartNewBGM(MUS_POKEMON_SQUARE);
|
||||
else
|
||||
StartNewBGM(MUS_POKEMON_SQUARE);
|
||||
}
|
||||
|
||||
void sub_80117AC(void)
|
||||
{
|
||||
if(sub_80023E4(0xD) == 0)
|
||||
{
|
||||
sub_800BFD0(0x1E);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80117C4(void)
|
||||
|
|
@ -149,17 +123,19 @@ void sub_80117C4(void)
|
|||
|
||||
void sub_80117D0(void)
|
||||
{
|
||||
sub_800C074(0x97 << 1, 0x80 << 1);
|
||||
sub_800C074(0x97 << 1, 256);
|
||||
}
|
||||
|
||||
// Some sound effect
|
||||
void sub_80117E4(void)
|
||||
{
|
||||
sub_800C074(0x12f, 0x80 << 1);
|
||||
sub_800C074(303, 256);
|
||||
}
|
||||
|
||||
// Some sound effect
|
||||
void sub_80117F8(void)
|
||||
{
|
||||
sub_800C074(0x12d, 0x80 << 1);
|
||||
sub_800C074(301, 256);
|
||||
}
|
||||
|
||||
void sub_801180C(void)
|
||||
|
|
@ -172,15 +148,15 @@ void sub_801180C(void)
|
|||
|
||||
void sub_8011830(void)
|
||||
{
|
||||
sub_800C93C();
|
||||
StopBGMusicVSync();
|
||||
gUnknown_202DE20 = 0;
|
||||
gUnknown_202DE22 = 0;
|
||||
gUnknown_202DE24 = 0;
|
||||
}
|
||||
|
||||
void sub_8011854(void)
|
||||
void xxx_call_start_bg_music(void)
|
||||
{
|
||||
sub_800C9CC();
|
||||
StartBGMusicVSync();
|
||||
}
|
||||
|
||||
void sub_8011860(void)
|
||||
|
|
@ -238,40 +214,40 @@ void sub_8011930(u16 r0)
|
|||
sub_800BFD0(r0);
|
||||
}
|
||||
|
||||
u32 sub_8011940(u16 r0)
|
||||
u32 IsEqualtoBGTrack(u16 songIndex)
|
||||
{
|
||||
u32 temp;
|
||||
temp = GetCurrentBGSong();
|
||||
|
||||
if(r0 == 999)
|
||||
if(songIndex == 999)
|
||||
return temp != 999;
|
||||
|
||||
return temp == r0;
|
||||
return temp == songIndex;
|
||||
}
|
||||
|
||||
void sub_8011974(u16 r0, u16 r1)
|
||||
void sub_8011974(u16 songIndex, u16 r1)
|
||||
{
|
||||
sub_800C074(r0, r1);
|
||||
sub_800C074(songIndex, r1);
|
||||
}
|
||||
|
||||
void sub_8011988(u16 r0)
|
||||
void sub_8011988(u16 songIndex)
|
||||
{
|
||||
sub_800C074(r0, 0x80 << 1);
|
||||
sub_800C074(songIndex, 0x80 << 1);
|
||||
}
|
||||
|
||||
void sub_801199C(u16 r0)
|
||||
void sub_801199C(u16 songIndex)
|
||||
{
|
||||
sub_800C298(r0);
|
||||
sub_800C298(songIndex);
|
||||
}
|
||||
|
||||
void sub_80119AC(u16 r0, u16 r1)
|
||||
void sub_80119AC(u16 songIndex, u16 r1)
|
||||
{
|
||||
sub_800C3F8(r0, r1);
|
||||
sub_800C3F8(songIndex, r1);
|
||||
}
|
||||
|
||||
u8 sub_80119C0(u16 r0)
|
||||
u8 sub_80119C0(u16 songIndex)
|
||||
{
|
||||
return sub_800C5D0(r0);
|
||||
return sub_800C5D0(songIndex);
|
||||
}
|
||||
|
||||
void sub_80119D4(u32 r0)
|
||||
|
|
@ -294,41 +270,3 @@ void sub_8011A2C(u32 r0)
|
|||
{
|
||||
gUnknown_202DE1C = r0;
|
||||
}
|
||||
|
||||
void NDS_DebugInit(void)
|
||||
{
|
||||
nullsub_26();
|
||||
nullsub_27();
|
||||
nullsub_29();
|
||||
nullsub_30();
|
||||
nullsub_31();
|
||||
nullsub_32();
|
||||
nullsub_28();
|
||||
gUnknown_203B14C = 1; // Maybe a flag saying Debug is on?
|
||||
}
|
||||
|
||||
void nullsub_25(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_26(void)
|
||||
{
|
||||
}
|
||||
|
||||
// Unused
|
||||
void PrintFuncFileLineOrNotEntry(char * r0, struct DebugLocation *r1)
|
||||
{
|
||||
if(r1 != 0)
|
||||
{
|
||||
sprintf(r0, gFuncFileLineString, r1->func, r1->file, r1->line);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(r0, gNotEntryText);
|
||||
}
|
||||
}
|
||||
|
||||
void PrintFuncFileLine(char *buf, struct DebugLocation *loc, char* prefix)
|
||||
{
|
||||
sprintf(buf, gFuncFileLineStringWPrefix, prefix, loc->func, loc->file, loc->line);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
#include "global.h"
|
||||
|
||||
extern u8 gUnknown_203B150;
|
||||
|
||||
void PrintFuncFileLine(char *r0, const char *r1, ...);
|
||||
extern const char gUnknown_80D421C;
|
||||
|
||||
void nullsub_199(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_27(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8011B08(void)
|
||||
{
|
||||
gUnknown_203B150 = 1;
|
||||
}
|
||||
|
||||
void sub_8011B14(void)
|
||||
{
|
||||
gUnknown_203B150 = 0;
|
||||
}
|
||||
|
||||
u8 sub_8011B20(void)
|
||||
{
|
||||
gUnknown_203B150 = !gUnknown_203B150;
|
||||
return gUnknown_203B150;
|
||||
}
|
||||
|
||||
// unused
|
||||
u8 sub_8011B3C(void)
|
||||
{
|
||||
return gUnknown_203B150;
|
||||
}
|
||||
|
||||
// unused
|
||||
void nullsub_137(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// TODO merge with fatal_system
|
||||
void FatalErrorPrintFuncFileLine(const char *r0, const char *r1)
|
||||
{
|
||||
char buf[0x100];
|
||||
if(r0 != 0){
|
||||
PrintFuncFileLine(buf, r1, r0);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintFuncFileLine(buf, r1, &gUnknown_80D421C);
|
||||
}
|
||||
}
|
||||
|
|
@ -119,16 +119,10 @@ void sub_808EB48(u8 *r0, s32 r1)
|
|||
|
||||
bool8 sub_808EB7C(s32 r0, u8 r1)
|
||||
{
|
||||
u8 return_var;
|
||||
if(r1 == 0)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return_var = FALSE;
|
||||
if(gUnknown_810A390[r1] <= r0)
|
||||
{
|
||||
return_var = TRUE;
|
||||
}
|
||||
return return_var;
|
||||
return gUnknown_810A390[r1] <= r0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,13 @@
|
|||
#include "global.h"
|
||||
#define NUM_EXCLUSIVE_POKEMON 12
|
||||
|
||||
struct ExclusivePokemon
|
||||
{
|
||||
u16 poke_id;
|
||||
bool8 in_rrt; // red rescue team
|
||||
bool8 in_brt; // blue rescue team
|
||||
};
|
||||
extern struct ExclusivePokemon gExclusivePokemon[];
|
||||
|
||||
extern u8 gUnknown_810ACC0[];
|
||||
extern u8 *gUnknown_203B498;
|
||||
|
|
@ -6,14 +15,7 @@ extern u8 gUnknown_2039840;
|
|||
|
||||
bool8 sub_8097F40(u32 r0)
|
||||
{
|
||||
bool8 temp;
|
||||
temp = FALSE;
|
||||
if(gUnknown_810ACC0[r0] == 2)
|
||||
{
|
||||
temp = TRUE;
|
||||
}
|
||||
return temp;
|
||||
|
||||
return gUnknown_810ACC0[r0] == 2;
|
||||
}
|
||||
|
||||
void sub_8097F5C(void)
|
||||
|
|
@ -26,3 +28,45 @@ u8 *sub_8097F6C(void)
|
|||
return &gUnknown_2039840;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8097F74(void)
|
||||
{
|
||||
s32 counter;
|
||||
memset(gUnknown_203B498, 0, 0x64);
|
||||
for(counter = 0; counter < NUM_EXCLUSIVE_POKEMON; counter++)
|
||||
{
|
||||
// TODO fix switching of addition statements (when it figures out the index)
|
||||
gUnknown_203B498[counter + 0x58] = gExclusivePokemon[counter].in_rrt;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_8097F74(void)
|
||||
{
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tldr r4, _08097FA0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r2, 0x64\n"
|
||||
"\tbl memset\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldr r3, _08097FA4\n"
|
||||
"_08097F86:\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x58\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tldrb r1, [r3, 0x2]\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tadds r3, 0x4\n"
|
||||
"\tadds r2, 0x1\n"
|
||||
"\tcmp r2, 0xB\n"
|
||||
"\tble _08097F86\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08097FA0: .4byte gUnknown_203B498\n"
|
||||
"_08097FA4: .4byte gExclusivePokemon");
|
||||
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
198
src/debug.c
Normal file
198
src/debug.c
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include "gba/gba.h"
|
||||
#include "config.h"
|
||||
#include "debug.h"
|
||||
|
||||
extern void Hang();
|
||||
|
||||
extern u8 gUnknown_203B150;
|
||||
|
||||
extern bool32 gNDS_DebugEnabled;
|
||||
|
||||
extern const char gUnknown_80D421C[];
|
||||
extern const char gNotMountText[];
|
||||
extern const char gNotEntryText[];
|
||||
extern const char gFuncFileLineString[];
|
||||
extern const char gFuncFileLineStringWPrefix[];
|
||||
extern const char gFuncFileLineString2[];
|
||||
|
||||
void NDS_DebugInit(void)
|
||||
{
|
||||
nullsub_26();
|
||||
nullsub_27();
|
||||
nullsub_29();
|
||||
nullsub_30();
|
||||
nullsub_31();
|
||||
nullsub_32();
|
||||
nullsub_28();
|
||||
gNDS_DebugEnabled = TRUE;
|
||||
}
|
||||
|
||||
void nullsub_25(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_26(void)
|
||||
{
|
||||
}
|
||||
|
||||
// Unused
|
||||
void PrintFuncFileLineOrNotEntry(char * buf, struct DebugLocation *debug)
|
||||
{
|
||||
if(debug != NULL)
|
||||
{
|
||||
sprintf(buf, gFuncFileLineString, debug->func, debug->file, debug->line);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buf, gNotEntryText);
|
||||
}
|
||||
}
|
||||
|
||||
void PrintFuncFileLine(char *buf, struct DebugLocation *loc, const char* prefix)
|
||||
{
|
||||
sprintf(buf, gFuncFileLineStringWPrefix, prefix, loc->func, loc->file, loc->line);
|
||||
}
|
||||
|
||||
void PrintMessageWithFuncFileLine(u8 *buffer, struct DebugLocation *debug, const char *text, ...)
|
||||
{
|
||||
va_list vArgv;
|
||||
u32 length;
|
||||
|
||||
va_start(vArgv, text);
|
||||
vsprintf(buffer, text, vArgv);
|
||||
length = strlen(buffer);
|
||||
sprintf(&buffer[length], gFuncFileLineString2, debug->func, debug->file, debug->line);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
void nullsub_199(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_27(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8011B08(void)
|
||||
{
|
||||
gUnknown_203B150 = 1;
|
||||
}
|
||||
|
||||
void sub_8011B14(void)
|
||||
{
|
||||
gUnknown_203B150 = 0;
|
||||
}
|
||||
|
||||
u8 sub_8011B20(void)
|
||||
{
|
||||
gUnknown_203B150 = !gUnknown_203B150;
|
||||
return gUnknown_203B150;
|
||||
}
|
||||
|
||||
// unused
|
||||
u8 sub_8011B3C(void)
|
||||
{
|
||||
return gUnknown_203B150;
|
||||
}
|
||||
|
||||
// unused
|
||||
void nullsub_137(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void FatalErrorPrintFuncFileLine(const char *r0, struct DebugLocation *debug)
|
||||
{
|
||||
char buf[0x100];
|
||||
if(r0 != NULL){
|
||||
PrintFuncFileLine(buf, debug, r0);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintFuncFileLine(buf, debug, gUnknown_80D421C);
|
||||
}
|
||||
}
|
||||
|
||||
void FatalErrorFormatMessage(const char *text, ...)
|
||||
{
|
||||
char bufPrint[0x100];
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
vsprintf(bufPrint, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
|
||||
void sub_8011B88(const char *text, ...)
|
||||
{
|
||||
char bufPrint[0x100];
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
vsprintf(bufPrint, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
void nullsub_28(void)
|
||||
{
|
||||
}
|
||||
|
||||
u32 sub_8011BA4(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Unused
|
||||
u32 sub_8011BA8(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Unused
|
||||
const char *sub_8011BAC(void)
|
||||
{
|
||||
return gNotMountText;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void UnusedHang(void)
|
||||
{
|
||||
Hang();
|
||||
}
|
||||
|
||||
void Log(u8 *buffer, const char *text, ...)
|
||||
{
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8011BC8(u32 r0, u32 r1, u32 r2, ...)
|
||||
{
|
||||
va_list vArgv;
|
||||
va_start(vArgv, r2);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
void nullsub_29()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_30()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_31()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_32()
|
||||
{
|
||||
}
|
||||
|
||||
void FatalErrorHang()
|
||||
{
|
||||
Hang();
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include "gba/gba.h"
|
||||
#include "config.h"
|
||||
|
||||
extern const char gNotMountText;
|
||||
extern void Hang();
|
||||
|
||||
void FatalErrorFormatMessage(const char *text, ...)
|
||||
{
|
||||
char bufPrint[0x100];
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
vsprintf(bufPrint, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
|
||||
void sub_8011B88(const char *text, ...)
|
||||
{
|
||||
char bufPrint[0x100];
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
vsprintf(bufPrint, text, vArgv);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
void nullsub_28(void)
|
||||
{
|
||||
}
|
||||
|
||||
u32 sub_8011BA4(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Unused
|
||||
u32 sub_8011BA8(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Unused
|
||||
const char *sub_8011BAC(void)
|
||||
{
|
||||
return &gNotMountText;
|
||||
}
|
||||
|
||||
// Unused
|
||||
void UnusedHang(void)
|
||||
{
|
||||
Hang();
|
||||
}
|
||||
|
||||
void Log(u8 *buffer, const char *text, ...)
|
||||
{
|
||||
va_list vArgv;
|
||||
va_start(vArgv, text);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
// Unused
|
||||
void sub_8011BC8(u32 r0, u32 r1, u32 r2, ...)
|
||||
{
|
||||
va_list vArgv;
|
||||
va_start(vArgv, r2);
|
||||
va_end(vArgv);
|
||||
}
|
||||
|
||||
void nullsub_29()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_30()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_31()
|
||||
{
|
||||
}
|
||||
|
||||
void nullsub_32()
|
||||
{
|
||||
}
|
||||
|
||||
void FatalErrorHang()
|
||||
{
|
||||
Hang();
|
||||
}
|
||||
|
|
@ -18,14 +18,6 @@ struct unkStruct_203B45C
|
|||
u8 unk29[0x2f];
|
||||
};
|
||||
|
||||
struct unkFriendAreaStruct
|
||||
{
|
||||
// size: 0x18
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 padding[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B45C gUnknown_203B45C[];
|
||||
|
||||
extern bool8 *gFriendAreas;
|
||||
|
|
@ -622,75 +614,20 @@ void sub_8092558(u8 *buffer, u8 index)
|
|||
sub_800D158(buffer, &gUnknown_81098A4, gFriendAreaNames[index]);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8092578(u8 *buffer, u8 index, u8 r2)
|
||||
{
|
||||
// I think this is when we buy the friend area from wigglytuff
|
||||
struct unkFriendAreaStruct temp;
|
||||
u32 temp[5];
|
||||
if(r2)
|
||||
{
|
||||
sub_8090FEC(gFriendAreaSettings[index].price, &(temp.unk4), 1);
|
||||
// TODO: There's some stack storage here in the middle calling this func
|
||||
// add r0, sp, 0x4
|
||||
// str r0, [sp]
|
||||
//temp.unk0 = temp.unk4;
|
||||
sub_800D158(buffer, &gUnknown_81098AC, gFriendAreaNames[index], 96);
|
||||
sub_8090FEC(gFriendAreaSettings[index].price, (&temp[0]), 1);
|
||||
sub_800D158(buffer, &gUnknown_81098AC, gFriendAreaNames[index], 96, temp);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(buffer, gFriendAreaNames[index]);
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED void sub_8092578(u8 *buffer, u8 index, u8 r2)
|
||||
{
|
||||
asm_unified("\tpush {r4,r5,lr}\n"
|
||||
"\tsub sp, 0x18\n"
|
||||
"\tadds r5, r0, 0\n"
|
||||
"\tlsls r1, 24\n"
|
||||
"\tlsrs r4, r1, 24\n"
|
||||
"\tlsls r2, 24\n"
|
||||
"\tcmp r2, 0\n"
|
||||
"\tbeq _080925C0\n"
|
||||
"\tldr r0, _080925B4\n"
|
||||
"\tlsls r1, r4, 3\n"
|
||||
"\tadds r0, 0x4\n"
|
||||
"\tadds r1, r0\n"
|
||||
"\tldr r0, [r1]\n"
|
||||
"\tadd r1, sp, 0x4\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_8090FEC\n"
|
||||
"\tldr r1, _080925B8\n"
|
||||
"\tldr r2, _080925BC\n"
|
||||
"\tlsls r0, r4, 2\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tldr r2, [r0]\n"
|
||||
"\tadd r0, sp, 0x4\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tmovs r3, 0x60\n"
|
||||
"\tbl sub_800D158\n"
|
||||
"\tb _080925CE\n"
|
||||
"\t.align 2, 0\n"
|
||||
"\t_080925B4: .4byte gFriendAreaSettings\n"
|
||||
"\t_080925B8: .4byte gUnknown_81098AC\n"
|
||||
"\t_080925BC: .4byte gFriendAreaNames\n"
|
||||
"\t_080925C0:\n"
|
||||
"\tldr r0, _080925D8\n"
|
||||
"\tlsls r1, r4, 2\n"
|
||||
"\tadds r1, r0\n"
|
||||
"\tldr r1, [r1]\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl strcpy\n"
|
||||
"\t_080925CE:\n"
|
||||
"\tadd sp, 0x18\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"\t_080925D8: .4byte gFriendAreaNames");
|
||||
}
|
||||
#endif
|
||||
|
||||
u32 GetFriendAreaDescription(u8 index)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,10 +17,8 @@ u32 sub_80927A8(u32 r0, u32 r1)
|
|||
sub_809486C(temp, r0, r1);
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
// TODO moves into R1 for the load else it matches
|
||||
if(!gFriendAreas[counter])
|
||||
temp[4] = gFriendAreas[counter];
|
||||
else
|
||||
// TODO fix one line diff of storing into temp[4]
|
||||
if(gFriendAreas[counter])
|
||||
temp[4] = -1;
|
||||
sub_809488C(temp, &(temp[4]), 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ bool8 sub_800CAAC(u32);
|
|||
bool8 sub_800CACC(u32);
|
||||
u16 sub_800CAE0(u16);
|
||||
|
||||
void sub_800C93C(void)
|
||||
void StopBGMusicVSync(void)
|
||||
{
|
||||
bool8 interrupt_flag;
|
||||
u16 temp;
|
||||
|
|
@ -50,7 +50,7 @@ void sub_800C93C(void)
|
|||
{
|
||||
if(gBGMusicPlayerState == 2)
|
||||
{
|
||||
gUnknown_202D694 = gUnknown_202D690;
|
||||
gUnknown_202D694 = 0;
|
||||
}
|
||||
else if(gBGMusicPlayerState == 1)
|
||||
{
|
||||
|
|
@ -68,7 +68,7 @@ void sub_800C93C(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_800C9CC(void)
|
||||
void StartBGMusicVSync(void)
|
||||
{
|
||||
bool8 interrupt_flag = DisableInterrupts();
|
||||
m4aSoundVSyncOn();
|
||||
|
|
|
|||
372
src/music_pre.c
372
src/music_pre.c
|
|
@ -11,13 +11,17 @@ extern void SoundBiasSet();
|
|||
extern void SetInterruptFlag(u16);
|
||||
extern void nullsub_25();
|
||||
extern void nullsub_18();
|
||||
extern void UpdateSound();
|
||||
extern void UpdateInput();
|
||||
|
||||
extern void sub_800C298(u16 r0);
|
||||
|
||||
typedef void (*IntrCallback)(void);
|
||||
extern IntrCallback gUnknown_202D5F0[];
|
||||
|
||||
extern struct MusicPlayerInfo gUnknown_20008F0; // BGM??
|
||||
extern u32 gUnknown_203B0A0;
|
||||
extern u32 gUnknown_203B0A4;
|
||||
extern u16 gBGMusicPlayerState;
|
||||
extern u16 gCurrentBGSong;
|
||||
extern u16 gUnknown_202D68C;
|
||||
|
|
@ -33,20 +37,19 @@ extern u8 gUnknown_203B09A;
|
|||
struct unkStruct_3000FD8
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 songIndex;
|
||||
u16 unk4;
|
||||
u8 unk6;
|
||||
u8 padding;
|
||||
};
|
||||
|
||||
extern struct unkStruct_3000FD8 gUnknown_3000FD8[8];
|
||||
|
||||
extern u8 gUnknown_202D7FE;
|
||||
extern u16 gUnknown_202D7FC;
|
||||
extern struct BGControlStruct gUnknown_202D698;
|
||||
extern struct BGControlStruct gUnknown_202D6A0;
|
||||
extern struct BGControlStruct gUnknown_202D6A8;
|
||||
extern struct BGControlStruct gUnknown_202D6B0;
|
||||
extern struct BGControlStruct gBG0Control;
|
||||
extern struct BGControlStruct gBG1Control;
|
||||
extern struct BGControlStruct gBG2Control;
|
||||
extern struct BGControlStruct gBG3Control;
|
||||
|
||||
void sub_800BF80(void);
|
||||
void xxx_update_bg_sound_input(void);
|
||||
|
|
@ -219,18 +222,18 @@ void UpdateBGControlRegisters(void)
|
|||
BG[3] = 3;
|
||||
}
|
||||
|
||||
REG_BG0HOFS = gUnknown_202D698.hofs;
|
||||
REG_BG0VOFS = gUnknown_202D698.vofs;
|
||||
REG_BG1HOFS = gUnknown_202D6A0.hofs;
|
||||
REG_BG1VOFS = gUnknown_202D6A0.vofs;
|
||||
REG_BG2HOFS = gUnknown_202D6A8.hofs;
|
||||
REG_BG2VOFS = gUnknown_202D6A8.vofs;
|
||||
REG_BG3HOFS = gUnknown_202D6B0.hofs;
|
||||
REG_BG3VOFS = gUnknown_202D6B0.vofs;
|
||||
REG_BG0HOFS = gBG0Control.hofs;
|
||||
REG_BG0VOFS = gBG0Control.vofs;
|
||||
REG_BG1HOFS = gBG1Control.hofs;
|
||||
REG_BG1VOFS = gBG1Control.vofs;
|
||||
REG_BG2HOFS = gBG2Control.hofs;
|
||||
REG_BG2VOFS = gBG2Control.vofs;
|
||||
REG_BG3HOFS = gBG3Control.hofs;
|
||||
REG_BG3VOFS = gBG3Control.vofs;
|
||||
|
||||
REG_BG0CNT = BG[0] | 0xB0 << 6;
|
||||
REG_BG1CNT = BG[1] | 0xB4 << 6;
|
||||
if(gUnknown_202D6A8.unk2 == 0x80 << 8)
|
||||
if(gBG2Control.unk2 == 0x80 << 8)
|
||||
{
|
||||
REG_BG2CNT = BG[2] | 0x2e08;
|
||||
}
|
||||
|
|
@ -276,7 +279,7 @@ void sub_800BD08(void)
|
|||
while(counter >= 0)
|
||||
{
|
||||
preload->unk0 = zero2;
|
||||
preload->unk2 = 0x3e5;
|
||||
preload->songIndex = 0x3e5;
|
||||
preload->unk4 = zero2;
|
||||
preload->unk6 = zero;
|
||||
counter--;
|
||||
|
|
@ -449,3 +452,340 @@ u16 GetCurrentBGSong(void)
|
|||
{
|
||||
return gCurrentBGSong;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_800C074(u16 SongIndex,u16 param_2)
|
||||
{
|
||||
bool8 interrupt_flag;
|
||||
u16 msVar;
|
||||
struct unkStruct_3000FD8 *preload;
|
||||
|
||||
if (SongIndex == 0x3e5)
|
||||
return;
|
||||
if (0x100 < param_2)
|
||||
param_2 = 0x100;
|
||||
|
||||
if (sub_800CACC(SongIndex))
|
||||
{
|
||||
msVar = sub_800CAE0(SongIndex);
|
||||
if (msVar == 1) {
|
||||
interrupt_flag = DisableInterrupts();
|
||||
gUnknown_202D68E = SongIndex;
|
||||
if(gUnknown_202D690 == 0)
|
||||
{
|
||||
if (gCurrentBGSong != 999)
|
||||
{
|
||||
if ((u16)(gBGMusicPlayerState - 1U) < 2)
|
||||
{
|
||||
gUnknown_202D690 = msVar;
|
||||
gUnknown_202D692 = 16;
|
||||
gUnknown_202D694 = 0;
|
||||
m4aMPlayFadeOutTemporarily(&gUnknown_20008F0,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBGMusicPlayerState == 3)
|
||||
gUnknown_202D690 = 2;
|
||||
else
|
||||
{
|
||||
gUnknown_202D690 = 3;
|
||||
m4aMPlayStop(&gUnknown_20008F0);
|
||||
m4aSongNumStart(gUnknown_202D68E);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (1 < (u16)(gUnknown_202D690 - 1U))
|
||||
{
|
||||
m4aMPlayStop(&gUnknown_20008F0);
|
||||
m4aSongNumStart(gUnknown_202D68E);
|
||||
gUnknown_202D690 = 3;
|
||||
}
|
||||
}
|
||||
switch(gCurrentBGSong)
|
||||
{
|
||||
case 26: // 0x1A
|
||||
case 27: // 0x1B
|
||||
case 28: // 0x1C
|
||||
case 29: // 0x1D
|
||||
case 30: // 0x1E
|
||||
case 31: // 0x1F
|
||||
case 34: // 0x22
|
||||
case 35: // 0x23
|
||||
case 37: // 0x25
|
||||
case 38: // 0x26
|
||||
case 117: // 0x75
|
||||
case 118: // 0x76
|
||||
case 119: // 0x77
|
||||
case 122: // 0x7A
|
||||
case 127: // 0x7F
|
||||
gUnknown_202D694 = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (interrupt_flag)
|
||||
EnableInterrupts();
|
||||
}
|
||||
else
|
||||
{
|
||||
nullsub_20(SongIndex);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!sub_800CAAC(SongIndex))
|
||||
return;
|
||||
msVar = sub_800CAE0(SongIndex);
|
||||
preload = &gUnknown_3000FD8[msVar]; // need to load this before comparison to match
|
||||
if (msVar <= 1)
|
||||
nullsub_20(SongIndex);
|
||||
else
|
||||
{
|
||||
interrupt_flag = DisableInterrupts();
|
||||
m4aSongNumStart(SongIndex);
|
||||
preload->unk0 = 1;
|
||||
preload->songIndex = SongIndex;
|
||||
// TODO fix this comparison
|
||||
// Generates eor/neg/lsr
|
||||
preload->unk6 = param_2 != 0x100;
|
||||
preload->unk4 = param_2;
|
||||
if (interrupt_flag)
|
||||
EnableInterrupts();
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_800C074(u16 SongIndex, u16 param_2)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tmov r7, r8\n"
|
||||
"\tpush {r7}\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r5, r0, 16\n"
|
||||
"\tmov r8, r5\n"
|
||||
"\tlsls r1, 16\n"
|
||||
"\tlsrs r6, r1, 16\n"
|
||||
"\tldr r0, _0800C0FC\n"
|
||||
"\tcmp r5, r0\n"
|
||||
"\tbne _0800C08C\n"
|
||||
"\tb _0800C208\n"
|
||||
"_0800C08C:\n"
|
||||
"\tmovs r7, 0x80\n"
|
||||
"\tlsls r7, 1\n"
|
||||
"\tcmp r6, r7\n"
|
||||
"\tbls _0800C096\n"
|
||||
"\tadds r6, r7, 0\n"
|
||||
"_0800C096:\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_800CACC\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbne _0800C0A4\n"
|
||||
"\tb _0800C1B0\n"
|
||||
"_0800C0A4:\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_800CAE0\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r7, r0, 16\n"
|
||||
"\tcmp r7, 0x1\n"
|
||||
"\tbeq _0800C0B4\n"
|
||||
"\tb _0800C1D0\n"
|
||||
"_0800C0B4:\n"
|
||||
"\tbl DisableInterrupts\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tmov r8, r0\n"
|
||||
"\tldr r6, _0800C100\n"
|
||||
"\tstrh r5, [r6]\n"
|
||||
"\tldr r4, _0800C104\n"
|
||||
"\tldrh r0, [r4]\n"
|
||||
"\tadds r2, r0, 0\n"
|
||||
"\tcmp r2, 0\n"
|
||||
"\tbne _0800C144\n"
|
||||
"\tldr r0, _0800C108\n"
|
||||
"\tldrh r1, [r0]\n"
|
||||
"\tldr r0, _0800C10C\n"
|
||||
"\tcmp r1, r0\n"
|
||||
"\tbeq _0800C12C\n"
|
||||
"\tldr r0, _0800C110\n"
|
||||
"\tldrh r1, [r0]\n"
|
||||
"\tsubs r0, r1, 0x1\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbhi _0800C120\n"
|
||||
"\tstrh r7, [r4]\n"
|
||||
"\tldr r1, _0800C114\n"
|
||||
"\tmovs r0, 0x10\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r0, _0800C118\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, _0800C11C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tbl m4aMPlayFadeOutTemporarily\n"
|
||||
"\tb _0800C15E\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0800C0FC: .4byte 0x000003e5\n"
|
||||
"_0800C100: .4byte gUnknown_202D68E\n"
|
||||
"_0800C104: .4byte gUnknown_202D690\n"
|
||||
"_0800C108: .4byte gCurrentBGSong\n"
|
||||
"_0800C10C: .4byte 0x000003e7\n"
|
||||
"_0800C110: .4byte gBGMusicPlayerState\n"
|
||||
"_0800C114: .4byte gUnknown_202D692\n"
|
||||
"_0800C118: .4byte gUnknown_202D694\n"
|
||||
"_0800C11C: .4byte gUnknown_20008F0\n"
|
||||
"_0800C120:\n"
|
||||
"\tlsls r0, r1, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tcmp r0, 0x3\n"
|
||||
"\tbne _0800C12C\n"
|
||||
"\tmovs r0, 0x2\n"
|
||||
"\tb _0800C15C\n"
|
||||
"_0800C12C:\n"
|
||||
"\tmovs r0, 0x3\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"\tldr r0, _0800C140\n"
|
||||
"\tbl m4aMPlayStop\n"
|
||||
"\tldrh r0, [r6]\n"
|
||||
"\tbl m4aSongNumStart\n"
|
||||
"\tb _0800C15E\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0800C140: .4byte gUnknown_20008F0\n"
|
||||
"_0800C144:\n"
|
||||
"\tsubs r0, 0x1\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbls _0800C15E\n"
|
||||
"\tldr r0, _0800C17C\n"
|
||||
"\tbl m4aMPlayStop\n"
|
||||
"\tldrh r0, [r6]\n"
|
||||
"\tbl m4aSongNumStart\n"
|
||||
"\tmovs r0, 0x3\n"
|
||||
"_0800C15C:\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"_0800C15E:\n"
|
||||
"\tldr r0, _0800C180\n"
|
||||
"\tldrh r0, [r0]\n"
|
||||
"\tcmp r0, 0x26\n"
|
||||
"\tbgt _0800C184\n"
|
||||
"\tcmp r0, 0x25\n"
|
||||
"\tbge _0800C19A\n"
|
||||
"\tcmp r0, 0x1A\n"
|
||||
"\tblt _0800C1A0\n"
|
||||
"\tcmp r0, 0x1F\n"
|
||||
"\tble _0800C19A\n"
|
||||
"\tcmp r0, 0x23\n"
|
||||
"\tbgt _0800C1A0\n"
|
||||
"\tcmp r0, 0x22\n"
|
||||
"\tblt _0800C1A0\n"
|
||||
"\tb _0800C19A\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0800C17C: .4byte gUnknown_20008F0\n"
|
||||
"_0800C180: .4byte gCurrentBGSong\n"
|
||||
"_0800C184:\n"
|
||||
"\tcmp r0, 0x7A\n"
|
||||
"\tbeq _0800C19A\n"
|
||||
"\tcmp r0, 0x7A\n"
|
||||
"\tbgt _0800C196\n"
|
||||
"\tcmp r0, 0x77\n"
|
||||
"\tbgt _0800C1A0\n"
|
||||
"\tcmp r0, 0x75\n"
|
||||
"\tblt _0800C1A0\n"
|
||||
"\tb _0800C19A\n"
|
||||
"_0800C196:\n"
|
||||
"\tcmp r0, 0x7F\n"
|
||||
"\tbne _0800C1A0\n"
|
||||
"_0800C19A:\n"
|
||||
"\tldr r1, _0800C1AC\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tstrb r0, [r1]\n"
|
||||
"_0800C1A0:\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0800C208\n"
|
||||
"\tbl EnableInterrupts\n"
|
||||
"\tb _0800C208\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0800C1AC: .4byte gUnknown_202D694\n"
|
||||
"_0800C1B0:\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_800CAAC\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0800C208\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_800CAE0\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tlsls r2, r0, 3\n"
|
||||
"\tldr r1, _0800C1D8\n"
|
||||
"\tadds r4, r2, r1\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbhi _0800C1DC\n"
|
||||
"_0800C1D0:\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl nullsub_20\n"
|
||||
"\tb _0800C208\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0800C1D8: .4byte gUnknown_3000FD8\n"
|
||||
"_0800C1DC:\n"
|
||||
"\tbl DisableInterrupts\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r5, r0, 24\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tbl m4aSongNumStart\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tstrh r0, [r4, 0x2]\n"
|
||||
"\tcmp r6, r7\n"
|
||||
"\tbne _0800C1FA\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tb _0800C1FC\n"
|
||||
"_0800C1FA:\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"_0800C1FC:\n"
|
||||
"\tstrb r0, [r4, 0x6]\n"
|
||||
"\tstrh r6, [r4, 0x4]\n"
|
||||
"\tcmp r5, 0\n"
|
||||
"\tbeq _0800C208\n"
|
||||
"\tbl EnableInterrupts\n"
|
||||
"_0800C208:\n"
|
||||
"\tpop {r3}\n"
|
||||
"\tmov r8, r3\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0");
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_800C214(u16 songIndex, u16 volume)
|
||||
{
|
||||
bool8 interrupt_flag;
|
||||
u16 msVar;
|
||||
struct MusicPlayerInfo *info;
|
||||
struct unkStruct_3000FD8 *preload;
|
||||
|
||||
if (256 < volume) {
|
||||
volume = 256;
|
||||
}
|
||||
|
||||
if ((!sub_800CACC(songIndex)) && (sub_800CAAC(songIndex))) {
|
||||
msVar = sub_800CAE0(songIndex);
|
||||
info = gMPlayTable[msVar].info;
|
||||
preload = &gUnknown_3000FD8[msVar];
|
||||
if (msVar > 1) {
|
||||
interrupt_flag = DisableInterrupts();
|
||||
if (preload->songIndex == songIndex) {
|
||||
m4aMPlayVolumeControl(info, 0xf, volume);
|
||||
}
|
||||
if (interrupt_flag)
|
||||
EnableInterrupts();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ extern void MemoryFree(void* a);
|
|||
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
|
||||
extern void sub_8011830(void);
|
||||
extern s32 WriteFlashData(s32 sector, u8 *src, s32 size);
|
||||
extern void sub_8011854(void);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
extern u32 *sub_809769C(void);
|
||||
u32 *sub_8011C4C(void);
|
||||
extern void sub_80958E4(u8 *a, u32 b);
|
||||
|
|
@ -125,7 +125,7 @@ u32 sub_8012240(void)
|
|||
MemoryFill8((u8 *)r5, 0xFF, 0x4);
|
||||
sub_8011830();
|
||||
temp = WriteFlashData(0x1F, (u8 *)r5, sizeof(struct unk_struct));
|
||||
sub_8011854();
|
||||
xxx_call_start_bg_music();
|
||||
MemoryFree(r5);
|
||||
if(temp != 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -292,16 +292,16 @@ gUnknown_202D692 = .; /* 202D692 */
|
|||
gUnknown_202D694 = .; /* 202D694 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_202D698 = .; /* 202D698 */
|
||||
gBG0Control = .; /* 202D698 */
|
||||
. += 0x8;
|
||||
|
||||
gUnknown_202D6A0 = .; /* 202D6A0 */
|
||||
gBG1Control = .; /* 202D6A0 */
|
||||
. += 0x8;
|
||||
|
||||
gUnknown_202D6A8 = .; /* 202D6A8 */
|
||||
gBG2Control = .; /* 202D6A8 */
|
||||
. += 0x8;
|
||||
|
||||
gUnknown_202D6B0 = .; /* 202D6B0 */
|
||||
gBG3Control = .; /* 202D6B0 */
|
||||
. += 0x8;
|
||||
|
||||
gUnknown_202D6B8 = .; /* 202D6B8 */
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ gUnknown_203B0E8 = .; /* 203B0E8 */
|
|||
gUnknown_203B0EC = .; /* 203B0EC */
|
||||
. += 0x60;
|
||||
|
||||
gUnknown_203B14C = .; /* 203B14C */
|
||||
gNDS_DebugEnabled = .; /* 203B14C */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B150 = .; /* 203B150 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user