mirror of https://github.com/zeldaret/tmc.git
Move demo screen into own file
This commit is contained in:
parent
ae2d83a1ae
commit
813a824e8a
|
|
@ -0,0 +1,111 @@
|
|||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A2FF4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A30A8
|
||||
movs r5, #0
|
||||
ldr r0, _080A2FF8 @ =gInput
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0x10
|
||||
beq _080A3020
|
||||
cmp r0, #0x10
|
||||
bgt _080A2FFC
|
||||
cmp r0, #1
|
||||
beq _080A303C
|
||||
cmp r0, #8
|
||||
beq _080A303C
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A2FF4: .4byte gFadeControl
|
||||
_080A2FF8: .4byte gInput
|
||||
_080A2FFC:
|
||||
cmp r0, #0x40
|
||||
beq _080A3052
|
||||
cmp r0, #0x40
|
||||
bgt _080A3052
|
||||
cmp r0, #0x20
|
||||
bne _080A3052
|
||||
ldr r1, _080A301C @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
rsbs r5, r5, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xfc
|
||||
b _080A302E
|
||||
.align 2, 0
|
||||
_080A301C: .4byte gChooseFileState
|
||||
_080A3020:
|
||||
ldr r1, _080A3038 @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
adds r1, #0x20
|
||||
movs r0, #4
|
||||
_080A302E:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A3038: .4byte gChooseFileState
|
||||
_080A303C:
|
||||
ldr r0, _080A3090 @ =gChooseFileState
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _080A3052
|
||||
ldr r1, _080A3094 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #3]
|
||||
strb r2, [r1, #4]
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
_080A3052:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0x12
|
||||
ldrb r0, [r4, #4]
|
||||
adds r1, r5, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #4]
|
||||
ldr r5, _080A3090 @ =gChooseFileState
|
||||
movs r0, #0x10
|
||||
ldrsh r2, [r5, r0]
|
||||
ldrb r1, [r4, #4]
|
||||
movs r0, #0x68
|
||||
muls r0, r1, r0
|
||||
cmp r0, r2
|
||||
beq _080A3098
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r0, r2, r0
|
||||
movs r1, #0x9c
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl __modsi3
|
||||
strh r0, [r5, #0x10]
|
||||
movs r0, #1
|
||||
b _080A309A
|
||||
.align 2, 0
|
||||
_080A3090: .4byte gChooseFileState
|
||||
_080A3094: .4byte gMain
|
||||
_080A3098:
|
||||
movs r0, #0
|
||||
_080A309A:
|
||||
strb r0, [r5]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #4]
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
_080A30A8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
ldr r4, _080A3188 @ =gOamCmd
|
||||
movs r1, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
strh r0, [r4, #4]
|
||||
strh r1, [r4, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A318C @ =gChooseFileState
|
||||
movs r1, #0x10
|
||||
ldrsh r6, [r0, r1]
|
||||
ldr r1, _080A3190 @ =0xFFFFFED8
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r0, _080A3194 @ =0x08A068BF
|
||||
mov r8, r0
|
||||
ldr r1, [r0]
|
||||
mov r5, r8
|
||||
subs r5, #0xc
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xc0
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x58
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x78
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0xe0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xa4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xd8
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A3188: .4byte gOamCmd
|
||||
_080A318C: .4byte gChooseFileState
|
||||
_080A3190: .4byte 0xFFFFFED8
|
||||
_080A3194: .4byte gUnk_08A068BF
|
||||
.syntax divided
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080A31D0 @ =0x08127CC8
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r4, [r0]
|
||||
ldr r1, _080A31D4 @ =gChooseFileState
|
||||
ldrh r0, [r1, #0x12]
|
||||
cmp r0, r4
|
||||
beq _080A31CC
|
||||
strh r4, [r1, #0x12]
|
||||
ldr r5, _080A31D8 @ =something2
|
||||
ldr r0, [r5]
|
||||
subs r0, #0x1e
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #1
|
||||
bl MemClear
|
||||
cmp r4, #0
|
||||
beq _080A31C6DEMO
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F46C
|
||||
_080A31C6DEMO:
|
||||
ldr r1, _080A31DC @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
_080A31CC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A31D0: .4byte gUnk_08127CC8
|
||||
_080A31D4: .4byte gChooseFileState
|
||||
_080A31D8: .4byte gUnk_08127C98
|
||||
_080A31DC: .4byte gScreen
|
||||
.syntax divided
|
||||
|
|
@ -203,451 +203,3 @@ _080A3200:
|
|||
|
||||
|
||||
|
||||
// DEMO only functions
|
||||
|
||||
.ifdef DEMO
|
||||
thumb_func_start HandleChooseDemoScreen
|
||||
HandleChooseDemoScreen: @ 0x080A2E18
|
||||
push {lr}
|
||||
bl FlushSprites
|
||||
ldr r1, _080A2E38 @ =demoFunctions
|
||||
ldr r0, _080A2E3C @ =gMain
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
bl sub_080A30AC
|
||||
bl sub_080AD918
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A2E38: .4byte demoFunctions
|
||||
_080A2E3C: .4byte gMain
|
||||
|
||||
thumb_func_start sub_080A2E40
|
||||
sub_080A2E40: @ 0x080A2E40
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6}
|
||||
movs r0, #1
|
||||
bl DispReset
|
||||
bl InitSoundPlayingInfo
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x13
|
||||
mov sb, r0
|
||||
movs r1, #0x80
|
||||
bl MemClear
|
||||
bl MessageInitialize
|
||||
bl EraseAllEntities
|
||||
bl sub_080ADD30
|
||||
movs r0, #0
|
||||
bl sub_0801CFA8
|
||||
ldr r0, _080A2F4C @ =gUnk_02032EC0
|
||||
movs r1, #0xed
|
||||
lsls r1, r1, #2
|
||||
bl MemClear
|
||||
ldr r0, _080A2F50 @ =gChooseFileState
|
||||
movs r1, #0x30
|
||||
bl MemClear
|
||||
ldr r0, _080A2F54 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
mov r8, r1
|
||||
bl MemClear
|
||||
bl sub_08053320
|
||||
movs r0, #0xb5
|
||||
bl LoadPaletteGroup
|
||||
movs r0, #0x56
|
||||
bl LoadGfxGroup
|
||||
ldr r5, _080A2F58 @ =0x089FD1B4
|
||||
ldr r4, _080A2F5C @ =0x02017760
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #1
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
adds r4, r4, r0
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
ldr r4, _080A2F60 @ =0x089FD2F4
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #8
|
||||
adds r0, r4, #0
|
||||
mov r1, sb
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
ldr r1, _080A2F64 @ =0x06010000
|
||||
adds r0, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
ldr r4, _080A2F68 @ =0x08A05751
|
||||
ldr r1, _080A2F6C @ =gBG1Buffer
|
||||
adds r0, r4, #0
|
||||
mov r2, r8
|
||||
bl MemCopy
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
adds r4, r4, r1
|
||||
ldr r1, _080A2F70 @ =gBG2Buffer
|
||||
adds r0, r4, #0
|
||||
mov r2, r8
|
||||
bl MemCopy
|
||||
ldr r1, _080A2F74 @ =gScreen
|
||||
movs r2, #0
|
||||
movs r0, #0xf8
|
||||
lsls r0, r0, #5
|
||||
strh r0, [r1]
|
||||
ldr r0, _080A2F78 @ =0x00001C81
|
||||
strh r0, [r1, #0x14]
|
||||
ldr r0, _080A2F7C @ =0x00001D82
|
||||
strh r0, [r1, #0x20]
|
||||
adds r0, #0x89
|
||||
strh r0, [r1, #0x2c]
|
||||
movs r4, #1
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0x1a]
|
||||
strh r0, [r1, #0x26]
|
||||
strh r0, [r1, #0x32]
|
||||
adds r3, r1, #0
|
||||
adds r3, #0x66
|
||||
ldr r0, _080A2F80 @ =0x00001044
|
||||
strh r0, [r3]
|
||||
adds r1, #0x68
|
||||
ldr r0, _080A2F84 @ =0x00000B04
|
||||
strh r0, [r1]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
strb r2, [r0, #4]
|
||||
movs r0, #0
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
ldr r0, _080A2F88 @ =gMain
|
||||
strb r4, [r0, #3]
|
||||
movs r0, #7
|
||||
bl SoundReq
|
||||
movs r0, #4
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A2F4C: .4byte gUnk_02032EC0
|
||||
_080A2F50: .4byte gChooseFileState
|
||||
_080A2F54: .4byte gBG0Buffer
|
||||
_080A2F58: .4byte gUnk_089FD1B4
|
||||
_080A2F5C: .4byte 0x02017760
|
||||
_080A2F60: .4byte gUnk_089FD2F4
|
||||
_080A2F64: .4byte 0x06010000
|
||||
_080A2F68: .4byte gUnk_08A05751
|
||||
_080A2F6C: .4byte gBG1Buffer
|
||||
_080A2F70: .4byte gBG2Buffer
|
||||
_080A2F74: .4byte gScreen
|
||||
_080A2F78: .4byte 0x00001C81
|
||||
_080A2F7C: .4byte 0x00001D82
|
||||
_080A2F80: .4byte 0x00001044
|
||||
_080A2F84: .4byte 0x00000B04
|
||||
_080A2F88: .4byte gMain
|
||||
|
||||
|
||||
thumb_func_start sub_080A2F8C
|
||||
sub_080A2F8C: @ 0x080A2F8C
|
||||
push {lr}
|
||||
ldr r0, _080A2FA4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A2FCC
|
||||
ldr r2, _080A2FA8 @ =gMain
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
beq _080A2FAC
|
||||
cmp r0, #1
|
||||
beq _080A2FC6
|
||||
b _080A2FCC
|
||||
.align 2, 0
|
||||
_080A2FA4: .4byte gFadeControl
|
||||
_080A2FA8: .4byte gMain
|
||||
_080A2FAC:
|
||||
movs r0, #1
|
||||
strb r0, [r2, #4]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x12
|
||||
strb r0, [r1, #5]
|
||||
strb r0, [r1, #6]
|
||||
movs r0, #2
|
||||
strb r0, [r2, #3]
|
||||
movs r0, #5
|
||||
movs r1, #8
|
||||
bl DoFade
|
||||
b _080A2FCC
|
||||
_080A2FC6:
|
||||
movs r0, #2
|
||||
bl InitScreen
|
||||
_080A2FCC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
||||
thumb_func_start sub_080A2FD0
|
||||
sub_080A2FD0: @ 0x080A2FD0
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _080A2FF4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A30A8
|
||||
movs r5, #0
|
||||
ldr r0, _080A2FF8 @ =gInput
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0x10
|
||||
beq _080A3020
|
||||
cmp r0, #0x10
|
||||
bgt _080A2FFC
|
||||
cmp r0, #1
|
||||
beq _080A303C
|
||||
cmp r0, #8
|
||||
beq _080A303C
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A2FF4: .4byte gFadeControl
|
||||
_080A2FF8: .4byte gInput
|
||||
_080A2FFC:
|
||||
cmp r0, #0x40
|
||||
beq _080A3052
|
||||
cmp r0, #0x40
|
||||
bgt _080A3052
|
||||
cmp r0, #0x20
|
||||
bne _080A3052
|
||||
ldr r1, _080A301C @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
rsbs r5, r5, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xfc
|
||||
b _080A302E
|
||||
.align 2, 0
|
||||
_080A301C: .4byte gChooseFileState
|
||||
_080A3020:
|
||||
ldr r1, _080A3038 @ =gChooseFileState
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
movs r5, #1
|
||||
adds r1, #0x20
|
||||
movs r0, #4
|
||||
_080A302E:
|
||||
strb r0, [r1]
|
||||
movs r0, #0x69
|
||||
bl SoundReq
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A3038: .4byte gChooseFileState
|
||||
_080A303C:
|
||||
ldr r0, _080A3090 @ =gChooseFileState
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _080A3052
|
||||
ldr r1, _080A3094 @ =gMain
|
||||
movs r0, #2
|
||||
strb r0, [r1, #3]
|
||||
strb r2, [r1, #4]
|
||||
movs r0, #0x6a
|
||||
bl SoundReq
|
||||
_080A3052:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #0x12
|
||||
ldrb r0, [r4, #4]
|
||||
adds r1, r5, #3
|
||||
adds r0, r0, r1
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #4]
|
||||
ldr r5, _080A3090 @ =gChooseFileState
|
||||
movs r0, #0x10
|
||||
ldrsh r2, [r5, r0]
|
||||
ldrb r1, [r4, #4]
|
||||
movs r0, #0x68
|
||||
muls r0, r1, r0
|
||||
cmp r0, r2
|
||||
beq _080A3098
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x20
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
adds r0, r2, r0
|
||||
movs r1, #0x9c
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
bl __modsi3
|
||||
strh r0, [r5, #0x10]
|
||||
movs r0, #1
|
||||
b _080A309A
|
||||
.align 2, 0
|
||||
_080A3090: .4byte gChooseFileState
|
||||
_080A3094: .4byte gMain
|
||||
_080A3098:
|
||||
movs r0, #0
|
||||
_080A309A:
|
||||
strb r0, [r5]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #4]
|
||||
movs r1, #0
|
||||
bl sub_080A3198
|
||||
_080A30A8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080A30AC
|
||||
sub_080A30AC: @ 0x080A30AC
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
ldr r4, _080A3188 @ =gOamCmd
|
||||
movs r1, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
strh r0, [r4, #4]
|
||||
strh r1, [r4, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A318C @ =gChooseFileState
|
||||
movs r1, #0x10
|
||||
ldrsh r6, [r0, r1]
|
||||
ldr r1, _080A3190 @ =0xFFFFFED8
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r0, _080A3194 @ =0x08A068BF
|
||||
mov r8, r0
|
||||
ldr r1, [r0]
|
||||
mov r5, r8
|
||||
subs r5, #0xc
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xc0
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x58
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0x78
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r0, #0xe0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xa4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0xd8
|
||||
lsls r1, r1, #1
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #4]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
movs r1, #0x86
|
||||
lsls r1, r1, #2
|
||||
adds r0, r1, #0
|
||||
subs r0, r0, r6
|
||||
strh r0, [r4]
|
||||
ldr r1, [r5, #8]
|
||||
adds r1, r1, r5
|
||||
adds r0, r4, #0
|
||||
bl sub_080ADA04
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A3188: .4byte gOamCmd
|
||||
_080A318C: .4byte gChooseFileState
|
||||
_080A3190: .4byte 0xFFFFFED8
|
||||
_080A3194: .4byte gUnk_08A068BF
|
||||
|
||||
thumb_func_start sub_080A3198
|
||||
sub_080A3198: @ 0x080A3198
|
||||
push {r4, r5, lr}
|
||||
ldr r1, _080A31D0 @ =0x08127CC8
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r4, [r0]
|
||||
ldr r1, _080A31D4 @ =gChooseFileState
|
||||
ldrh r0, [r1, #0x12]
|
||||
cmp r0, r4
|
||||
beq _080A31CC
|
||||
strh r4, [r1, #0x12]
|
||||
ldr r5, _080A31D8 @ =something2
|
||||
ldr r0, [r5]
|
||||
subs r0, #0x1e
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #1
|
||||
bl MemClear
|
||||
cmp r4, #0
|
||||
beq _080A31C6DEMO
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F46C
|
||||
_080A31C6DEMO:
|
||||
ldr r1, _080A31DC @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
_080A31CC:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A31D0: .4byte gUnk_08127CC8
|
||||
_080A31D4: .4byte gChooseFileState
|
||||
_080A31D8: .4byte gUnk_08127C98
|
||||
_080A31DC: .4byte gScreen
|
||||
|
||||
.endif
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
.ifdef DEMO
|
||||
@ TODO choose demo screen
|
||||
demoFunctions::
|
||||
.4byte sub_080A2E40
|
||||
.4byte sub_080A2FD0
|
||||
.4byte sub_080A2F8C
|
||||
|
||||
gUnk_08127C98::
|
||||
.incbin "baserom_demo.gba", 0x127c98, 0x30
|
||||
gUnk_08127CC8::
|
||||
.incbin "baserom_demo.gba", 0x127CC8, 0x8
|
||||
.endif
|
||||
|
|
@ -11,17 +11,3 @@ gUnk_08127270:: @ 08127270
|
|||
gUnk_08127278:: @ 08127278
|
||||
.incbin "baserom.gba", 0x127278, 0x0000008
|
||||
|
||||
.ifdef DEMO
|
||||
@ TODO choose demo screen
|
||||
demoFunctions::
|
||||
.4byte sub_080A2E40
|
||||
.4byte sub_080A2FD0
|
||||
.4byte sub_080A2F8C
|
||||
|
||||
gUnk_08127C98::
|
||||
.incbin "baserom_demo.gba", 0x127c98, 0x30
|
||||
gUnk_08127CC8::
|
||||
.incbin "baserom_demo.gba", 0x127CC8, 0x8
|
||||
.endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ SECTIONS {
|
|||
. = 0x000176A0; gPaletteBuffer = .;
|
||||
. = 0x000176E0; gUnk_020176E0 = .;
|
||||
. = 0x00017700; gUnk_02017700 = .;
|
||||
. = 0x00017760; gUnk_02017760 = .;
|
||||
. = 0x00017830; gUnk_02017830 = .;
|
||||
. = 0x000178E0; gUnk_020178E0 = .;
|
||||
. = 0x00017AA0; gUnk_02017AA0 = .;
|
||||
|
|
@ -920,6 +921,9 @@ SECTIONS {
|
|||
asm/code_080A29BC.o(.text);
|
||||
asm/playerItem/playerItemShield.o(.text);
|
||||
asm/playerItem/playerItem15.o(.text);
|
||||
#ifdef DEMO
|
||||
src/demoScreen.o(.text);
|
||||
#endif
|
||||
src/audio.o(.text);
|
||||
asm/code_080A3480.o(.text);
|
||||
src/sub_080A3B84.o(.text);
|
||||
|
|
@ -1652,6 +1656,9 @@ data/const/object/object1D.o(.rodata);
|
|||
data/data_08125104.o(.rodata);
|
||||
data/const/playerItem/playerItemShield.o(.rodata);
|
||||
data/const/playerItem/playerItem15.o(.rodata);
|
||||
#ifdef DEMO
|
||||
data/const/demoScreen.o(.rodata);
|
||||
#endif
|
||||
data/data_08127280.o(.rodata);
|
||||
data/const/playerItem/playerItemSword.o(.rodata);
|
||||
data/data_08129320.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,96 @@
|
|||
#include "global.h"
|
||||
#include "functions.h"
|
||||
#include "main.h"
|
||||
#include "utils.h"
|
||||
#include "textbox.h"
|
||||
#include "fileScreen.h"
|
||||
#include "screen.h"
|
||||
|
||||
extern void (*const demoFunctions[])(void);
|
||||
void sub_080A30AC();
|
||||
|
||||
extern u8 gUnk_02000004;
|
||||
void sub_080A3198(u32, u32);
|
||||
|
||||
extern u8 gUnk_02017760[];
|
||||
extern u8 gUnk_08A05751[];
|
||||
|
||||
// sprite_table
|
||||
extern void gUnk_089FD1B4;
|
||||
extern void gUnk_089FD2F4;
|
||||
|
||||
extern u8 gUnk_02000006;
|
||||
|
||||
void HandleChooseDemoScreen(void) {
|
||||
FlushSprites();
|
||||
demoFunctions[gMain.funcIndex]();
|
||||
sub_080A30AC();
|
||||
sub_080AD918();
|
||||
}
|
||||
|
||||
void sub_080A2E40(void) {
|
||||
DispReset(1);
|
||||
InitSoundPlayingInfo();
|
||||
MemClear((void*)0x6000000, 0x80);
|
||||
MessageInitialize();
|
||||
EraseAllEntities();
|
||||
sub_080ADD30();
|
||||
sub_0801CFA8(0);
|
||||
MemClear(&gUnk_02032EC0, 0x3b4);
|
||||
MemClear(&gChooseFileState, 0x30);
|
||||
MemClear(&gBG0Buffer, 0x800);
|
||||
sub_08053320();
|
||||
LoadPaletteGroup(0xb5);
|
||||
LoadGfxGroup(0x56);
|
||||
MemCopy(&gUnk_089FD1B4, &gUnk_02017760[0], 0x100);
|
||||
MemCopy(&gUnk_089FD1B4, &gUnk_02017760[0x200], 0x100);
|
||||
MemCopy(&gUnk_089FD2F4, (void*)0x6000000, 0x8000);
|
||||
MemCopy(&gUnk_089FD2F4, (void*)0x6010000, 0x8000);
|
||||
MemCopy(&gUnk_08A05751, &gBG1Buffer, 0x800);
|
||||
MemCopy(&gUnk_08A05751[0x800], &gBG2Buffer, 0x800);
|
||||
gScreen.lcd.displayControl = 0x1f00;
|
||||
gScreen.bg.bg1Control = 0x1c81;
|
||||
gScreen.affine.bg2Control = 0x1d82;
|
||||
gScreen.affine.bg3Control = 0x1e0b;
|
||||
gScreen.bg.bg1Updated = 1;
|
||||
gScreen.affine.bg2Updated = 1;
|
||||
gScreen.affine.bg3Updated = 1;
|
||||
gScreen.controls.layerFXControl = 0x1044;
|
||||
gScreen.controls.alphaBlend = 0xb04;
|
||||
{
|
||||
// TODO write to 0x2000004
|
||||
u32 addr = (0x80 << 0x12);
|
||||
*(u8*)(addr + 4) = 0;
|
||||
}
|
||||
sub_080A3198(0, 0);
|
||||
gMain.funcIndex = 1;
|
||||
SoundReq(BGM_FILE_SELECT);
|
||||
DoFade(4, 8);
|
||||
}
|
||||
|
||||
void sub_080A2F8C(void) {
|
||||
if (gFadeControl.active == 0) {
|
||||
switch (gMain.transition) {
|
||||
case 0:
|
||||
gMain.transition = 1;
|
||||
{
|
||||
// TODO write to 0x2000005
|
||||
u32 addr = (0x80 << 0x12);
|
||||
*(u8*)(addr + 5) = 1;
|
||||
*(u8*)(addr + 6) = 1;
|
||||
}
|
||||
gMain.funcIndex = 2;
|
||||
DoFade(5, 8);
|
||||
break;
|
||||
case 1:
|
||||
InitScreen(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void))
|
||||
|
||||
ASM_FUNC("asm/non_matching/demoScreen/sub_080A30AC.inc", void sub_080A30AC(void))
|
||||
|
||||
ASM_FUNC("asm/non_matching/demoScreen/sub_080A3198.inc", void sub_080A3198(u32 param_1, u32 param_2))
|
||||
Loading…
Reference in New Issue