Disassemble functions

This commit is contained in:
octorock
2021-06-22 22:58:34 +02:00
parent 78f88ccee2
commit 5a301b97fa
66 changed files with 8187 additions and 153 deletions
+247 -1
View File
@@ -23,7 +23,253 @@ _08089D18: .4byte gUnk_08120DF4
thumb_func_start sub_08089D1C
sub_08089D1C: @ 0x08089D1C
.ifdef EU
.incbin "baserom_eu.gba", 0x089620, 0x00001E0 @TODO disassemble
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0x19]
movs r4, #0x3f
adds r0, r4, #0
ands r0, r1
movs r6, #0x80
orrs r0, r6
strb r0, [r5, #0x19]
ldrb r1, [r5, #0x1b]
adds r0, r4, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
movs r1, #4
bl sub_0805E3A0
ldrb r0, [r5, #0xa]
cmp r0, #7
bne _08089688
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _0808966C
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0808966C
bl CheckLocalFlag
cmp r0, #0
bne _08089662
b _080897FE
_08089662:
ldrb r1, [r5, #0x1b]
adds r0, r4, #0
ands r0, r1
orrs r0, r6
strb r0, [r5, #0x1b]
_0808966C:
ldr r4, _08089684 @ =gUnk_08120E3C
ldrb r0, [r5, #0xb]
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0]
adds r0, r5, #0
bl InitializeAnimation
ldrb r0, [r5, #0xb]
lsls r0, r0, #2
adds r0, r0, r4
b _080896C6
.align 2, 0
_08089684: .4byte gUnk_08120E3C
_08089688:
cmp r0, #0
beq _080896A4
ldr r0, _080896A0 @ =gUnk_08120E14
ldrb r1, [r5, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r5, #0
bl InitializeAnimation
b _080896BE
.align 2, 0
_080896A0: .4byte gUnk_08120E14
_080896A4:
adds r0, r5, #0
movs r1, #1
movs r2, #2
bl sub_080AE008
ldr r0, _08089700 @ =gUnk_08120E14
ldrb r1, [r5, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r5, #0
bl InitAnimationForceUpdate
_080896BE:
ldr r1, _08089700 @ =gUnk_08120E14
ldrb r0, [r5, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
_080896C6:
ldrb r0, [r0, #1]
adds r3, r5, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xa]
cmp r0, #1
bge _080896F4
b _080897F8
_080896F4:
cmp r0, #6
ble _08089704
cmp r0, #7
beq _08089714
b _080897F8
.align 2, 0
_08089700: .4byte gUnk_08120E14
_08089704:
adds r0, r5, #0
adds r0, #0x60
movs r2, #0
movs r1, #0xe0
lsls r1, r1, #1
strh r1, [r0]
strb r2, [r5, #0xe]
b _080897F8
_08089714:
ldrb r1, [r5, #0xb]
cmp r1, #3
bgt _08089724
cmp r1, #2
bge _080897E4
cmp r1, #0
beq _0808972A
b _080897F8
_08089724:
cmp r1, #4
beq _080897F0
b _080897F8
_0808972A:
movs r0, #0x10
str r0, [r5, #0x6c]
strb r1, [r5, #0xe]
_08089730:
movs r0, #0x2c
movs r1, #7
movs r2, #1
bl CreateObject
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _080897C0
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0x2e]
ldr r2, [r5, #0x54]
ldr r1, [r5, #0x6c]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
strh r0, [r2, #0x32]
movs r0, #3
strb r0, [r5, #0xf]
_08089754:
ldrb r0, [r5, #0xe]
lsls r0, r0, #2
ldr r1, _080897DC @ =gUnk_08120DFC
adds r4, r0, r1
ldrb r2, [r4]
subs r2, #2
movs r0, #0x2c
movs r1, #7
bl CreateObject
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _080897A2
movs r0, #1
ldrsb r0, [r4, r0]
ldrh r2, [r5, #0x2e]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldr r2, [r5, #0x54]
ldr r1, [r5, #0x6c]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
movs r1, #2
ldrsb r1, [r4, r1]
subs r0, r0, r1
strh r0, [r2, #0x32]
ldr r3, [r5, #0x54]
ldrb r2, [r4, #3]
movs r0, #1
ands r2, r0
lsls r2, r2, #6
ldrb r0, [r3, #0x18]
movs r4, #0x41
rsbs r4, r4, #0
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
_080897A2:
ldrb r0, [r5, #0xe]
adds r2, r0, #1
strb r2, [r5, #0xe]
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _08089754
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
cmp r0, #5
bls _080897C0
strb r1, [r5, #0xe]
_080897C0:
ldr r0, [r5, #0x6c]
adds r0, #0x38
str r0, [r5, #0x6c]
ldrh r1, [r5, #0x32]
subs r1, r1, r0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
ldr r0, _080897E0 @ =gRoomControls
ldrh r0, [r0, #8]
cmp r1, r0
bge _08089730
movs r0, #1
strb r0, [r5, #0xe]
b _080897F8
.align 2, 0
_080897DC: .4byte gUnk_08120DFC
_080897E0: .4byte gRoomControls
_080897E4:
ldrb r0, [r5, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r5, #0x19]
_080897F0:
adds r1, r5, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
_080897F8:
adds r0, r5, #0
bl sub_08089F08
_080897FE:
pop {r4, r5, r6, pc}
.else
push {r4, r5, r6, lr}
adds r5, r0, #0
+309 -2
View File
@@ -1728,7 +1728,279 @@ _080269C8: .4byte 0xFFFFFF00
thumb_func_start sub_080269CC
sub_080269CC: @ 0x080269CC
.ifdef EU
.incbin "baserom_eu.gba", 0x0269B0, 0x218 @ TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
movs r7, #0
ldr r5, [r6, #0x54]
ldr r0, [r6, #0x68]
mov sl, r0
ldr r1, [r6, #0x50]
mov sb, r1
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
movs r1, #0xc0
lsls r1, r1, #2
mov r8, r1
cmp r0, #0
beq _080269DC
ldr r0, _080269FC @ =0xFFFFFD00
mov r8, r0
_080269DC:
mov r0, sl
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x20
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x3f
bhi _08026A00
mov r1, sl
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A02
.align 2, 0
_080269FC: .4byte 0xFFFFFD00
_08026A00:
movs r7, #1
_08026A02:
mov r0, sb
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x44
lsls r0, r4, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x87
bhi _08026A20
mov r1, sb
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A22
_08026A20:
adds r7, #1
_08026A22:
adds r0, r5, #0
adds r0, #0x83
ldrb r0, [r0]
adds r4, r0, #0
adds r4, #0x40
adds r0, #0x20
cmp r0, #0x40
bls _08026A62
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026A50
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #6
beq _08026A62
adds r0, r5, #0
movs r1, #6
bl InitAnimationForceUpdate
b _08026A62
_08026A50:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #5
beq _08026A62
adds r0, r5, #0
movs r1, #5
bl InitAnimationForceUpdate
_08026A62:
lsls r0, r4, #0x18
cmp r0, #0
blt _08026A74
adds r1, r5, #0
adds r1, #0x82
ldrh r0, [r1]
add r0, r8
strh r0, [r1]
b _08026A76
_08026A74:
adds r7, #1
_08026A76:
cmp r7, #3
beq _08026A7C
b _08026B98
_08026A7C:
ldrb r1, [r6, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r6, #0x10]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r1, r5, #0
adds r1, #0x76
ldrh r0, [r1]
adds r0, #3
strh r0, [r1]
movs r0, #0x20
movs r1, #0
bl sub_08080964
ldr r0, _08026B24 @ =0x0000010B
bl SoundReq
adds r0, r6, #0
movs r1, #0x15
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
adds r4, r0, #0
cmp r4, #0
beq _08026B2E
movs r0, #0xc9
strh r0, [r4, #0x12]
adds r0, r6, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
ldrb r1, [r6, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
adds r1, r4, #0
adds r1, #0x58
movs r0, #1
strb r0, [r1]
ldrh r0, [r4, #0x32]
adds r0, #0x10
strh r0, [r4, #0x32]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r2, [r5, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x1b]
ldrb r1, [r6, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08026B28
ldrh r0, [r4, #0x2e]
subs r0, #0x38
b _08026B2C
.align 2, 0
_08026B24: .4byte 0x0000010B
_08026B28:
ldrh r0, [r4, #0x2e]
adds r0, #0x38
_08026B2C:
strh r0, [r4, #0x2e]
_08026B2E:
ldr r3, [r6, #0x50]
ldr r2, [r6, #0x54]
ldr r0, [r6, #0x68]
adds r0, #0x84
movs r1, #1
strb r1, [r0]
adds r2, #0x84
strb r1, [r2]
adds r3, #0x84
strb r1, [r3]
mov r0, sb
adds r0, #0x7a
movs r1, #0x98
strh r1, [r0]
mov r0, sl
adds r0, #0x7a
strh r1, [r0]
adds r0, r5, #0
adds r0, #0x7a
strh r1, [r0]
bl Random
ldr r2, _08026B94 @ =gUnk_080CC278
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r7, r6, #0
adds r7, #0x7c
strb r0, [r7]
adds r0, r6, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
adds r0, r5, #0
movs r1, #0x49
movs r2, #0xa
movs r3, #0
bl CreateObjectWithParent
adds r4, r0, #0
cmp r4, #0
beq _08026BB4
adds r1, r4, #0
adds r1, #0x84
ldrb r0, [r7]
str r0, [r1]
b _08026BB4
.align 2, 0
_08026B94: .4byte gUnk_080CC278
_08026B98:
adds r0, r5, #0
adds r0, #0x76
ldrh r0, [r0]
cmp r0, #0xef
bhi _08026BB4
ldr r0, [r5, #0x74]
movs r1, #0x80
lsls r1, r1, #0xb
adds r0, r0, r1
str r0, [r5, #0x74]
ldr r0, [r5, #0x78]
ldr r1, _08026BC4 @ =0xFFFF8000
adds r0, r0, r1
str r0, [r5, #0x78]
_08026BB4:
adds r0, r6, #0
bl sub_08027870
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08026BC4: .4byte 0xFFFF8000
.else
push {r4, r5, r6, r7, lr}
mov r7, sl
@@ -4289,7 +4561,42 @@ _08027D1E:
thumb_func_start sub_08027D20
sub_08027D20: @ 0x08027D20
.ifdef EU
.incbin "baserom_eu.gba", 0x027D00, 0x48 @TODO disassemble
push {r4, lr}
adds r4, r0, #0
movs r1, #0x15
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
adds r3, r0, #0
cmp r3, #0
beq _08027D44
movs r0, #0xc9
strh r0, [r3, #0x12]
adds r0, r4, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x60
strh r1, [r0]
ldrb r1, [r4, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r3, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x1a]
ldrh r0, [r3, #0x32]
adds r0, #1
strh r0, [r3, #0x32]
adds r1, r3, #0
adds r1, #0x63
movs r0, #8
strb r0, [r1]
_08027D44:
adds r0, r3, #0
pop {r4, pc}
.else
push {r4, r5, lr}
adds r5, r0, #0
+35 -1
View File
@@ -6,7 +6,41 @@
.text
.ifdef EU
.incbin "baserom_eu.gba", 0x000118, 0x38 @TODO disassemble
thumb_func_start sub_08000118
sub_08000118: @ 0x08000118
add r0, pc, #0x28
ldm r0!, {r1, r2, r3}
_0800011C:
subs r2, #4
str r1, [r2]
cmp r2, r3
bgt _0800011C
bx lr
non_word_aligned_thumb_func_start sub_08000126
sub_08000126: @ 0x08000126
add r0, pc, #0x1C
ldm r0!, {r1, r2, r3}
_0800012A:
ldr r0, [r3]
adds r3, #4
cmp r0, r1
beq _0800012A
subs r2, #0xa0
_08000134:
ldr r0, [r2]
adds r2, #4
cmp r0, r1
beq _08000134
subs r1, r2, #4
subs r0, r3, #4
bx lr
.align 2, 0
_08000144EU:
.byte 0x33, 0x5A, 0x43, 0x4D
.4byte gUnk_03007FA0
.4byte gUnk_03006C14
.endif
thumb_func_start sub_08000108
+137 -2
View File
@@ -2191,10 +2191,145 @@ _0801E8D2:
thumb_func_start sub_0801E8D4
sub_0801E8D4: @ 0x0801E8D4
.ifdef JP
.incbin "baserom_jp.gba", 0x01E8B8, 0x90 @TODO disassemble
push {r4, r5, lr}
movs r4, #0xa
_0801E8BC:
adds r0, r4, #0
bl CheckKinstoneFused
cmp r0, #0
beq _0801E93A
adds r0, r4, #0
bl sub_0801E810
cmp r0, #0
bne _0801E93A
ldr r1, _0801E8F4 @ =0x080C9A5C
lsls r0, r4, #3
adds r0, r0, r1
ldrb r1, [r0, #4]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0801E8F8 @ =0x080FDFD0
adds r2, r0, r1
ldrb r0, [r2, #0x10]
cmp r0, #4
bhi _0801E926
lsls r0, r0, #2
ldr r1, _0801E8FC @ =_0801E900
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E8F4: .4byte 0x080C9A5C
_0801E8F8: .4byte 0x080FDFD0
_0801E8FC: .4byte _0801E900
_0801E900: @ jump table
.4byte _0801E914 @ case 0
.4byte _0801E918 @ case 1
.4byte _0801E91C @ case 2
.4byte _0801E920 @ case 3
.4byte _0801E924 @ case 4
_0801E914:
movs r5, #0
b _0801E926
_0801E918:
ldrb r5, [r2, #0x11]
b _0801E926
_0801E91C:
movs r5, #0xf
b _0801E926
_0801E920:
movs r5, #0x10
b _0801E926
_0801E924:
movs r5, #0x11
_0801E926:
ldrh r1, [r2, #0x12]
adds r0, r5, #0
bl sub_0807CB24
cmp r0, #0
beq _0801E93A
ldr r0, _0801E944 @ =0x02002C8E
adds r1, r4, #0
bl WriteBit
_0801E93A:
adds r4, #1
cmp r4, #0x64
bls _0801E8BC
pop {r4, r5, pc}
.align 2, 0
_0801E944: .4byte 0x02002C8E
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x01E90C, 0x90 @TODO probably the same as JP?
push {r4, r5, lr}
movs r4, #0xa
_0801E910:
adds r0, r4, #0
bl CheckKinstoneFused
cmp r0, #0
beq _0801E98E
adds r0, r4, #0
bl sub_0801E810
cmp r0, #0
bne _0801E98E
ldr r1, _0801E948 @ =gUnk_080C9CBC
lsls r0, r4, #3
adds r0, r0, r1
ldrb r1, [r0, #4]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0801E94C @ =gUnk_080FE320
adds r2, r0, r1
ldrb r0, [r2, #0x10]
cmp r0, #4
bhi _0801E97A
lsls r0, r0, #2
ldr r1, _0801E950 @ =_0801E954
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E948: .4byte gUnk_080C9CBC
_0801E94C: .4byte gUnk_080FE320
_0801E950: .4byte _0801E954
_0801E954: @ jump table
.4byte _0801E968 @ case 0
.4byte _0801E96C @ case 1
.4byte _0801E970 @ case 2
.4byte _0801E974 @ case 3
.4byte _0801E978 @ case 4
_0801E968:
movs r5, #0
b _0801E97A
_0801E96C:
ldrb r5, [r2, #0x11]
b _0801E97A
_0801E970:
movs r5, #0xf
b _0801E97A
_0801E974:
movs r5, #0x10
b _0801E97A
_0801E978:
movs r5, #0x11
_0801E97A:
ldrh r1, [r2, #0x12]
adds r0, r5, #0
bl sub_0807CB24
cmp r0, #0
beq _0801E98E
ldr r0, _0801E998 @ =gUnk_02002C8E
adds r1, r4, #0
bl WriteBit
_0801E98E:
adds r4, #1
cmp r4, #0x64
bls _0801E910
pop {r4, r5, pc}
.align 2, 0
_0801E998: .4byte gUnk_02002C8E
.else
push {r4, r5, lr}
movs r5, #0xa
+532 -3
View File
@@ -545,7 +545,99 @@ _080A407C: .4byte gUnk_02019EE0
thumb_func_start sub_080A4080
sub_080A4080: @ 0x080A4080
.ifdef EU
.incbin "baserom_eu.gba", 0x0A3898, 0x00000CC @TODO disassemble
push {r4, r5, r6, r7, lr}
ldr r4, _080A394C @ =gOamCmd
movs r0, #0
strh r0, [r4, #4]
strh r0, [r4, #6]
ldr r5, _080A3950 @ =gChooseFileState
adds r0, r5, #0
adds r0, #0x2f
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #0x10
subs r0, r0, r1
strh r0, [r4, #2]
movs r0, #0x40
strh r0, [r4]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r4, #8]
movs r0, #0xfd
lsls r0, r0, #1
movs r1, #0
bl sub_080ADA14
movs r0, #0x94
strh r0, [r4, #2]
movs r0, #0x50
strh r0, [r4]
movs r0, #0x90
lsls r0, r0, #3
strh r0, [r4, #8]
ldr r7, _080A3954 @ =0x000001F9
adds r0, r7, #0
movs r1, #0
bl sub_080ADA14
movs r0, #0xb8
strh r0, [r4]
movs r0, #0x94
lsls r0, r0, #3
strh r0, [r4, #8]
adds r0, r7, #0
movs r1, #1
bl sub_080ADA14
ldr r0, _080A3958 @ =gMain
ldrh r0, [r0, #0xc]
lsrs r0, r0, #2
movs r1, #0xe
ands r0, r1
ldr r1, _080A395C @ =gUnk_08128110
adds r6, r0, r1
ldrb r1, [r6]
movs r0, #0xa
subs r0, r0, r1
strh r0, [r4]
movs r0, #0x9c
lsls r0, r0, #3
strh r0, [r4, #8]
bl sub_080A3B48
subs r0, #1
cmp r0, #0
ble _080A3948
ldr r1, [r5, #0x10]
cmp r1, #0
bge _080A3920
ldr r2, _080A3960 @ =0x0000FFFF
adds r1, r1, r2
_080A3920:
asrs r5, r1, #0x10
cmp r5, r0
beq _080A3934
ldrb r0, [r6, #1]
adds r0, #0x77
strh r0, [r4, #2]
adds r0, r7, #0
movs r1, #3
bl sub_080ADA14
_080A3934:
cmp r5, #0
beq _080A3948
ldrb r1, [r6, #1]
movs r0, #0x27
subs r0, r0, r1
strh r0, [r4, #2]
adds r0, r7, #0
movs r1, #2
bl sub_080ADA14
_080A3948:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A394C: .4byte gOamCmd
_080A3950: .4byte gChooseFileState
_080A3954: .4byte 0x000001F9
_080A3958: .4byte gMain
_080A395C: .4byte gUnk_08128110
_080A3960: .4byte 0x0000FFFF
.else
push {r4, r5, r6, r7, lr}
ldr r4, _080A4134 @ =gOamCmd
@@ -1712,7 +1804,224 @@ _080A4974: .4byte gSave
thumb_func_start sub_080A4978
sub_080A4978: @ 0x080A4978
.ifdef EU
.incbin "baserom_eu.gba", 0x0A4190, 0x00001CC @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r5, _080A432C @ =gOamCmd
movs r0, #0
strh r0, [r5, #4]
strh r0, [r5, #6]
movs r0, #0x80
lsls r0, r0, #4
strh r0, [r5, #8]
movs r0, #0x9c
strh r0, [r5]
movs r0, #0x48
strh r0, [r5, #2]
ldr r7, _080A4330 @ =0x000001FB
adds r0, r7, #0
movs r1, #0
bl sub_080ADA14
ldr r0, _080A4334 @ =gSave
ldrb r0, [r0, #6]
movs r2, #0x88
cmp r0, #0
bne _080A41C2
movs r2, #0x82
_080A41C2:
ldr r3, _080A4338 @ =gChooseFileState
ldrb r1, [r3, #1]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080A4226
ldrb r4, [r3, #0x1c]
cmp r2, r4
blt _080A4226
movs r6, #0xe8
strh r6, [r5]
movs r0, #0xa0
lsls r0, r0, #7
adds r1, r2, #0
bl __divsi3
subs r1, r4, #1
muls r0, r1, r0
cmp r0, #0
bge _080A41EC
adds r0, #0xff
_080A41EC:
asrs r0, r0, #8
adds r0, #0x20
strh r0, [r5, #2]
adds r0, r7, #0
movs r1, #1
bl sub_080ADA14
ldr r0, _080A433C @ =gMain
ldrh r1, [r0, #0xc]
movs r0, #0x10
ands r0, r1
movs r4, #2
cmp r0, #0
beq _080A420A
movs r4, #4
_080A420A:
strh r6, [r5]
movs r0, #0x1a
strh r0, [r5, #2]
adds r0, r7, #0
adds r1, r4, #0
bl sub_080ADA14
strh r6, [r5]
movs r0, #0x76
strh r0, [r5, #2]
adds r1, r4, #1
adds r0, r7, #0
bl sub_080ADA14
_080A4226:
ldr r0, _080A433C @ =gMain
ldrh r1, [r0, #0xc]
movs r2, #0x10
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080A427C
ldr r5, _080A4338 @ =gChooseFileState
ldrb r1, [r5, #1]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080A427C
ldrb r0, [r5, #0x1e]
cmp r0, #0
beq _080A427C
ldr r4, _080A432C @ =gOamCmd
strh r2, [r4, #2]
movs r0, #0x1f
ldrsb r0, [r5, r0]
cmp r0, #0
ble _080A4262
movs r0, #6
strh r0, [r4]
movs r0, #0x9c
strh r0, [r4, #2]
ldr r0, _080A4330 @ =0x000001FB
movs r1, #6
bl sub_080ADA14
_080A4262:
ldrb r1, [r5, #0x1e]
movs r0, #0x1f
ldrsb r0, [r5, r0]
cmp r1, r0
ble _080A427C
movs r0, #0xea
strh r0, [r4]
movs r0, #0x9c
strh r0, [r4, #2]
ldr r0, _080A4330 @ =0x000001FB
movs r1, #7
bl sub_080ADA14
_080A427C:
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #0
beq _080A42D0
ldr r2, _080A4338 @ =gChooseFileState
ldrb r1, [r2, #1]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080A42D0
ldr r1, _080A432C @ =gOamCmd
movs r0, #0x10
strh r0, [r1, #2]
ldrb r4, [r2, #0x1c]
movs r6, #2
adds r7, r1, #0
movs r5, #0x6b
_080A42A0:
strh r5, [r7]
adds r0, r4, #0
movs r1, #0xa
bl __modsi3
lsls r0, r0, #1
movs r2, #0x9e
lsls r2, r2, #4
adds r1, r2, #0
orrs r0, r1
strh r0, [r7, #8]
movs r0, #0
movs r1, #9
bl sub_080ADA14
adds r0, r4, #0
movs r1, #0xa
bl __divsi3
adds r4, r0, #0
subs r5, #7
subs r6, #1
cmp r6, #0
bge _080A42A0
_080A42D0:
ldr r4, _080A4338 @ =gChooseFileState
ldrb r1, [r4, #1]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080A4352
ldrb r0, [r4, #0x1c]
bl sub_080A4948
cmp r0, #0
beq _080A4352
ldr r1, _080A432C @ =gOamCmd
movs r0, #0x2c
strh r0, [r1]
movs r0, #0x48
strh r0, [r1, #2]
movs r0, #0xd4
lsls r0, r0, #7
strh r0, [r1, #8]
ldr r0, _080A4340 @ =0x000001F7
ldrb r1, [r4, #0x1c]
subs r1, #1
bl sub_080ADA14
ldrb r1, [r4, #0x1c]
ldrb r0, [r4, #0x1d]
cmp r0, r1
beq _080A4352
strb r1, [r4, #0x1d]
ldrb r4, [r4, #0x1c]
lsls r4, r4, #4
ldr r0, _080A4344 @ =gUnk_081281A8
adds r4, r4, r0
ldr r0, [r4]
movs r1, #0x16
movs r2, #9
bl LoadPalettes
ldr r0, [r4, #4]
ldr r2, [r4, #8]
cmp r2, #0
bge _080A434CEU
ldr r1, _080A4348EU @ =0x06014000
bl LZ77UnCompVram
b _080A4352
.align 2, 0
_080A432C: .4byte gOamCmd
_080A4330: .4byte 0x000001FB
_080A4334: .4byte gSave
_080A4338: .4byte gChooseFileState
_080A433C: .4byte gMain
_080A4340: .4byte 0x000001F7
_080A4344: .4byte gUnk_081281A8
_080A4348EU: .4byte 0x06014000
_080A434CEU:
ldr r1, _080A4358EU @ =0x06014000
bl LoadResourceAsync
_080A4352:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A4358EU: .4byte 0x06014000
.else
push {r4, r5, r6, r7, lr}
mov r7, r8
@@ -3007,7 +3316,227 @@ _080A5380:
thumb_func_start sub_080A5384
sub_080A5384: @ 0x080A5384
.ifdef EU
.incbin "baserom_eu.gba", 0x0A4B98, 0x00001C8 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r0, _080A4C14EU @ =gOamCmd
movs r2, #0
movs r1, #0x80
lsls r1, r1, #3
strh r1, [r0, #4]
strh r2, [r0, #6]
strh r2, [r0, #8]
movs r5, #0
ldr r4, _080A4C18 @ =gSave
movs r0, #0xb6
adds r0, r0, r4
mov sl, r0
movs r1, #0xac
adds r1, r1, r4
mov sb, r1
movs r2, #0xad
adds r2, r2, r4
mov r8, r2
movs r6, #0
_080A4BC8:
ldr r0, _080A4C1C @ =gChooseFileState
adds r0, #0x10
adds r2, r5, r0
ldrb r0, [r2]
cmp r0, #0
beq _080A4C68
ldr r0, _080A4C20 @ =gUnk_08128B64
adds r1, r6, r0
ldrb r0, [r1, #6]
ldr r3, _080A4C14EU @ =gOamCmd
strh r0, [r3]
ldrb r0, [r1, #7]
strh r0, [r3, #2]
ldrb r3, [r2]
cmp r3, #0x1f
bhi _080A4BF4
cmp r3, #0x1c
blo _080A4BF4
adds r0, r3, #0
subs r0, #0x1c
add r0, sl
ldrb r3, [r0]
_080A4BF4:
movs r2, #3
cmp r3, #7
blo _080A4C42
cmp r3, #8
bhi _080A4C28
ldr r0, _080A4C24 @ =gBombBagSizes
adds r1, r4, #0
adds r1, #0xae
ldrb r1, [r1]
adds r1, r1, r0
ldrb r0, [r1]
mov r7, sb
ldrb r7, [r7]
cmp r0, r7
bhi _080A4C42
b _080A4C40
.align 2, 0
_080A4C14EU: .4byte gOamCmd
_080A4C18: .4byte gSave
_080A4C1C: .4byte gChooseFileState
_080A4C20: .4byte gUnk_08128B64
_080A4C24: .4byte gBombBagSizes
_080A4C28:
cmp r3, #0xa
bhi _080A4C42
ldr r0, _080A4D40 @ =gQuiverSizes
adds r1, r4, #0
adds r1, #0xaf
ldrb r1, [r1]
adds r1, r1, r0
ldrb r0, [r1]
mov r1, r8
ldrb r1, [r1]
cmp r0, r1
bhi _080A4C42
_080A4C40:
movs r2, #4
_080A4C42:
lsls r2, r2, #0xc
movs r7, #0xd8
lsls r7, r7, #2
adds r0, r6, r7
movs r7, #0x80
lsls r7, r7, #4
adds r1, r7, #0
orrs r0, r1
orrs r2, r0
ldr r0, _080A4D44 @ =gOamCmd
strh r2, [r0, #8]
ldr r1, _080A4D48 @ =gUnk_080FDFD8
lsls r0, r3, #2
adds r0, r0, r1
ldr r0, [r0]
ldrb r1, [r0]
ldr r0, _080A4D4C @ =0x00000141
bl sub_080ADA14
_080A4C68:
adds r6, #8
adds r5, #1
cmp r5, #0x10
bls _080A4BC8
ldr r0, _080A4D44 @ =gOamCmd
movs r1, #0x80
lsls r1, r1, #4
strh r1, [r0, #8]
ldr r1, _080A4D50EU @ =gChooseFileState
ldrb r1, [r1, #3]
mov sb, r0
cmp r1, #0x10
bne _080A4C8E
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #0
beq _080A4C8E
movs r1, #0x11
_080A4C8E:
lsls r0, r1, #3
ldr r1, _080A4D54EU @ =gUnk_08128B64
mov r8, r1
adds r1, r0, r1
mov r4, sb
ldrb r0, [r1, #6]
strh r0, [r4]
ldrb r0, [r1, #7]
strh r0, [r4, #2]
ldrb r2, [r1, #4]
ldr r0, _080A4D58 @ =gMain
ldrh r1, [r0, #0xc]
movs r0, #0x10
ands r0, r1
adds r1, r2, #4
cmp r0, #0
beq _080A4CB2EU
adds r1, r2, #3
_080A4CB2EU:
movs r6, #0xfd
lsls r6, r6, #1
adds r0, r6, #0
bl sub_080ADA14
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
movs r1, #0x11
cmp r0, #0
beq _080A4CCA
movs r1, #0x10
_080A4CCA:
lsls r0, r1, #3
mov r2, r8
adds r1, r0, r2
ldrb r0, [r1, #6]
strh r0, [r4]
ldrb r0, [r1, #7]
strh r0, [r4, #2]
movs r0, #0x80
lsls r0, r0, #4
strh r0, [r4, #8]
adds r0, r6, #0
movs r1, #0x22
bl sub_080ADA14
ldr r7, _080A4D5C @ =gSave
adds r0, r7, #0
adds r0, #0xb4
ldrb r0, [r0]
bl sub_080A554C
adds r5, r0, #0
cmp r5, #0x10
bhi _080A4D0E
lsls r0, r5, #3
mov r3, r8
adds r1, r0, r3
ldrb r0, [r1, #6]
strh r0, [r4]
ldrb r0, [r1, #7]
strh r0, [r4, #2]
adds r0, r6, #0
movs r1, #3
bl sub_080ADA14
_080A4D0E:
adds r0, r7, #0
adds r0, #0xb5
ldrb r0, [r0]
bl sub_080A554C
adds r5, r0, #0
cmp r5, #0x10
bhi _080A4D36
lsls r0, r5, #3
mov r7, r8
adds r1, r0, r7
ldrb r0, [r1, #6]
mov r2, sb
strh r0, [r2]
ldrb r0, [r1, #7]
strh r0, [r2, #2]
adds r0, r6, #0
movs r1, #3
bl sub_080ADA14
_080A4D36:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A4D40: .4byte gQuiverSizes
_080A4D44: .4byte gOamCmd
_080A4D48: .4byte gUnk_080FDFD8
_080A4D4C: .4byte 0x00000141
_080A4D50EU: .4byte gChooseFileState
_080A4D54EU: .4byte gUnk_08128B64
_080A4D58: .4byte gMain
_080A4D5C: .4byte gSave
.else
push {r4, r5, r6, r7, lr}
mov r7, sl
+1052 -10
View File
File diff suppressed because it is too large Load Diff
+145 -3
View File
@@ -44,7 +44,53 @@ _080ADD6C: .4byte gUnk_02024490
thumb_func_start sub_080ADD70
sub_080ADD70: @ 0x080ADD70
.ifdef EU
.incbin "baserom_eu.gba", 0x0AD514, 0x0000058 @TODO disassemble
push {r4, r5, lr}
ldr r0, _080AD540 @ =gUnk_02024490
ldrb r0, [r0]
cmp r0, #0
beq _080AD56A
movs r4, #0
movs r5, #0
_080AD522:
ldr r0, _080AD544 @ =gUnk_02024494
adds r2, r5, r0
ldrb r1, [r2]
lsls r0, r1, #0x1c
lsrs r0, r0, #0x1c
cmp r0, #2
bne _080AD548
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r3, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2]
b _080AD562
.align 2, 0
_080AD540: .4byte gUnk_02024490
_080AD544: .4byte gUnk_02024494
_080AD548:
cmp r0, #2
blt _080AD562
cmp r0, #6
bgt _080AD562
cmp r0, #4
blt _080AD562
movs r0, #0xf0
ands r0, r1
cmp r0, #0x30
bne _080AD562
adds r0, r4, #0
bl sub_080ADE74
_080AD562:
adds r5, #0xc
adds r4, #1
cmp r4, #0x2b
bls _080AD522
_080AD56A:
pop {r4, r5, pc}
.else
push {r4, r5, lr}
ldr r1, _080ADD88 @ =gUnk_02024490
@@ -322,7 +368,63 @@ _080ADF7C:
thumb_func_start LoadFixedGFX
LoadFixedGFX: @ 0x080ADF80
.ifdef EU
.incbin "baserom_eu.gba", 0x0AD714, 0x0000070 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r5, r1, #0
cmp r5, #0
bne _080AD726
movs r0, #1
b _080AD77E
_080AD726:
movs r4, #4
ldr r0, _080AD774 @ =gUnk_02024490
adds r0, #0x30
_080AD72C:
ldrh r1, [r0, #8]
cmp r5, r1
beq _080AD766
adds r0, #0xc
adds r4, #1
cmp r4, #0x2b
bls _080AD72C
ldr r0, _080AD778 @ =gUnk_08132B30
lsls r1, r5, #2
adds r1, r1, r0
ldr r7, [r1]
movs r0, #0xfe
lsls r0, r0, #0x17
ands r0, r7
lsrs r6, r0, #0x18
adds r0, r6, #0
bl sub_080AE174
adds r4, r0, #0
cmp r4, #0
beq _080AD77C
adds r1, r5, #0
adds r2, r6, #0
bl sub_080AE104
adds r0, r4, #0
adds r1, r7, #0
bl sub_080ADDD8
_080AD766:
adds r0, r4, #0
mov r1, r8
movs r2, #4
bl sub_080AE0C8
movs r0, #1
b _080AD77E
.align 2, 0
_080AD774: .4byte gUnk_02024490
_080AD778: .4byte gUnk_08132B30
_080AD77C:
movs r0, #0
_080AD77E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.else
push {r4, r5, r6, r7, lr}
mov r7, r8
@@ -394,7 +496,47 @@ _080AE004: .4byte gUnk_08132B30
thumb_func_start sub_080AE008
sub_080AE008: @ 0x080AE008
.ifdef EU
.incbin "baserom_eu.gba", 0x0AD784, 0x0000050 @TODO disassemble
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r5, r1, #0
adds r4, r2, #0
cmp r4, #0
bne _080AD79C
adds r0, r5, #0
bl sub_080AE174
adds r4, r0, #0
cmp r4, #0
beq _080AD7C4
_080AD79C:
ldr r0, _080AD7D0 @ =gUnk_02024490
lsls r1, r4, #1
adds r1, r1, r4
lsls r1, r1, #2
adds r1, r1, r0
ldrb r0, [r1, #4]
lsls r0, r0, #0x1c
lsrs r2, r0, #0x1c
cmp r2, #6
beq _080AD7BC
adds r0, r4, #0
movs r1, #0
adds r2, r5, #0
bl sub_080AE104
movs r2, #5
_080AD7BC:
adds r0, r4, #0
adds r1, r6, #0
bl sub_080AE0C8
_080AD7C4:
adds r0, r4, #0
cmp r0, #0
beq _080AD7CC
movs r0, #1
_080AD7CC:
pop {r4, r5, r6, pc}
.align 2, 0
_080AD7D0: .4byte gUnk_02024490
.else
push {r4, r5, r6, lr}
adds r6, r0, #0
+1 -1
View File
@@ -35,5 +35,5 @@ sp_usr: .4byte gUnk_03007F00
INTR_VECTOR_BUF: .4byte 0x03007FFC
intr_main: .4byte IntrMain
.ifdef EU
unk_function: .4byte 0x08000119 @ TODO ptr
unk_function: .4byte sub_08000118
.endif
+41 -1
View File
@@ -10,7 +10,47 @@
thumb_func_start Enemy50
Enemy50: @ 0x08040B2C
.ifdef EU
.incbin "baserom_eu.gba", 0x040a2c, 0x5c @TODO disassemble
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _08040A5E
ldr r0, [r5, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08040A5E
ldrb r0, [r5, #0xc]
subs r0, #8
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _08040A50
adds r0, r5, #0
bl sub_0803F6EC
_08040A50:
adds r0, r5, #0
movs r1, #2
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_08040A5E:
ldr r4, _08040A84 @ =gUnk_080D0DC4
adds r0, r5, #0
bl GetNextFunction
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r5, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
pop {r4, r5, pc}
.align 2, 0
_08040A84: .4byte gUnk_080D0DC4
.else
push {r4, r5, lr}
adds r5, r0, #0
+665 -7
View File
@@ -365,7 +365,118 @@ _08087E5A:
thumb_func_start sub_08087E5C
sub_08087E5C: @ 0x08087E5C
.ifdef EU
.incbin "baserom_eu.gba", 0x087838, 0x00000E0 @TODO disassemble
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7a
ldrb r1, [r5]
cmp r1, #1
beq _08087888
cmp r1, #1
bgt _08087850
cmp r1, #0
beq _08087856
b _0808790C
_08087850:
cmp r1, #2
beq _080878EA
b _0808790C
_08087856:
adds r0, r4, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #4
bne _08087880
movs r0, #1
bl CheckRoomFlag
cmp r0, #0
beq _0808790C
movs r0, #1
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x81
strb r0, [r1]
bl ClearRoomFlag
adds r0, r4, #0
bl sub_0808826C
b _080878E2
_08087880:
adds r0, r4, #0
bl sub_080880D8
b _0808790C
_08087888:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08087892
subs r0, #1
strb r0, [r4, #0xe]
_08087892:
ldr r2, _080878B0 @ =gInput
ldrh r0, [r2, #2]
ands r1, r0
cmp r1, #0
beq _080878B4
movs r0, #0x6a
bl SoundReq
movs r0, #2
strb r0, [r5]
movs r0, #0x3c
strb r0, [r4, #0xe]
bl sub_08050384
b _0808790C
.align 2, 0
_080878B0: .4byte gInput
_080878B4:
adds r0, r4, #0
adds r0, #0x81
ldrb r6, [r0]
ldrh r1, [r2, #4]
adds r5, r0, #0
cmp r1, #0x40
beq _080878C8
cmp r1, #0x80
beq _080878D2
b _080878DC
_080878C8:
adds r0, r4, #0
movs r1, #1
bl sub_08087F94
b _080878DC
_080878D2:
movs r1, #1
rsbs r1, r1, #0
adds r0, r4, #0
bl sub_08087F94
_080878DC:
ldrb r5, [r5]
cmp r6, r5
beq _0808790C
_080878E2:
adds r0, r4, #0
bl sub_080882A8
b _0808790C
_080878EA:
movs r0, #0
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x7b
movs r0, #4
strb r0, [r1]
movs r0, #3
bl SetRoomFlag
ldr r0, _08087910 @ =0x0000431A
bl TextboxNoOverlapFollow
ldr r1, _08087914 @ =gTextBox
adds r0, r4, #0
adds r0, #0x81
ldrb r0, [r0]
str r0, [r1, #0x10]
_0808790C:
pop {r4, r5, r6, pc}
.align 2, 0
_08087910: .4byte 0x0000431A
_08087914: .4byte gTextBox
.else
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
@@ -538,10 +649,181 @@ _08087F90: .4byte 0x00004022
thumb_func_start sub_08087F94
sub_08087F94: @ 0x08087F94
.ifdef JP
.incbin "baserom_jp.gba", 0x087dac, 0xb0 @TODO disassemble
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r0, #0x5f
bl CheckLocalFlag
cmp r0, #0
bne _08087E3E
adds r0, r5, #0
adds r0, #0x83
movs r7, #0
ldrsb r7, [r0, r7]
adds r3, r7, r4
mov ip, r0
cmp r4, #0
bge _08087E0A
adds r2, r5, #0
adds r2, #0x82
movs r0, #0
ldrsb r0, [r2, r0]
cmp r3, r0
bge _08087DF4
mov r0, ip
movs r1, #0
ldrsb r1, [r0, r1]
ldrb r3, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r1, r0
beq _08087E3E
mov r2, ip
strb r3, [r2]
adds r1, r5, #0
adds r1, #0x81
movs r0, #1
b _08087E00
_08087DF4:
mov r0, ip
strb r3, [r0]
adds r1, r5, #0
adds r1, #0x81
ldrb r0, [r1]
adds r0, r0, r4
_08087E00:
strb r0, [r1]
movs r0, #0x69
bl SoundReq
b _08087E58
_08087E0A:
adds r1, r5, #0
adds r1, #0x81
ldrb r6, [r1]
adds r2, r6, r4
ldr r0, _08087E2C @ =0x02002A40
adds r0, #0xc2
ldrh r0, [r0]
cmp r2, r0
ble _08087E30
cmp r0, r6
beq _08087E3E
adds r2, r0, #0
subs r4, r2, r6
adds r3, r7, r4
cmp r3, #0x64
ble _08087E4C
b _08087E46
.align 2, 0
_08087E2C: .4byte 0x02002A40
_08087E30:
cmp r3, #0x64
ble _08087E4C
mov r2, ip
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0x64
bne _08087E46
_08087E3E:
adds r0, r5, #0
bl sub_08088034
b _08087E58
_08087E46:
movs r3, #0x64
subs r4, r3, r7
adds r2, r6, r4
_08087E4C:
mov r0, ip
strb r3, [r0]
strb r2, [r1]
movs r0, #0x69
bl SoundReq
_08087E58:
pop {r4, r5, r6, r7, pc}
.align 2, 0
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x087954, 0x000009C @TODO disassemble
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r5, #0
adds r7, #0x83
ldrb r0, [r7]
adds r4, r0, r6
movs r0, #0x5f
bl CheckLocalFlag
cmp r0, #0
bne _080879CE
cmp r6, #0
bge _0808799E
adds r0, r5, #0
adds r0, #0x82
ldrb r1, [r0]
cmp r4, r1
bhs _0808798A
ldrb r0, [r7]
cmp r0, r1
beq _080879CE
strb r1, [r7]
adds r1, r5, #0
adds r1, #0x81
movs r0, #1
b _08087994
_0808798A:
strb r4, [r7]
adds r1, r5, #0
adds r1, #0x81
ldrb r0, [r1]
adds r0, r0, r6
_08087994:
strb r0, [r1]
movs r0, #0x69
bl SoundReq
b _080879EC
_0808799E:
adds r1, r5, #0
adds r1, #0x81
ldrb r3, [r1]
adds r2, r3, r6
ldr r0, _080879C0 @ =gSave
adds r0, #0xc2
ldrh r0, [r0]
cmp r2, r0
bls _080879C4
cmp r0, r3
beq _080879CE
adds r2, r0, #0
subs r0, r2, r3
ldrb r7, [r7]
adds r4, r0, r7
b _080879DE
.align 2, 0
_080879C0: .4byte gSave
_080879C4:
cmp r4, #0x64
bls _080879DE
ldrb r0, [r7]
cmp r0, #0x64
bne _080879D6
_080879CE:
adds r0, r5, #0
bl sub_08088034
b _080879EC
_080879D6:
movs r4, #0x64
ldrb r0, [r7]
subs r6, r4, r0
adds r2, r3, r6
_080879DE:
adds r0, r5, #0
adds r0, #0x83
strb r4, [r0]
strb r2, [r1]
movs r0, #0x69
bl SoundReq
_080879EC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
.else
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
@@ -813,10 +1095,237 @@ _0808815C: .4byte gSave
thumb_func_start sub_08088160
sub_08088160: @ 0x08088160
.ifdef JP
.incbin "baserom_jp.gba", 0x087f88, 0xe8 @TODO disassemble
push {r4, lr}
adds r2, r0, #0
lsls r1, r1, #3
ldr r0, _08087FB0 @ =0x080FC094
adds r1, r1, r0
movs r4, #0
adds r0, r2, #0
adds r0, #0x7c
ldrb r0, [r0]
ldrb r3, [r1, #6]
cmp r0, r3
bhs _08088068
ldrb r0, [r1, #6]
cmp r0, #0x10
beq _08087FC6
cmp r0, #0x10
bgt _08087FB4
cmp r0, #8
beq _08087FBC
b _0808806A
.align 2, 0
_08087FB0: .4byte 0x080FC094
_08087FB4:
cmp r0, #0x20
beq _08087FCA
cmp r0, #0x40
bne _0808806A
_08087FBC:
ldr r0, [r1]
ldrh r1, [r1, #4]
bl CheckLocalFlagByOffset
b _08088064EU
_08087FC6:
ldrh r0, [r1, #4]
b _08088060EU
_08087FCA:
ldrh r0, [r1, #4]
cmp r0, #4
bhi _0808806A
lsls r0, r0, #2
ldr r1, _08087FDC @ =_08087FE0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08087FDC: .4byte _08087FE0
_08087FE0: @ jump table
.4byte _08087FF4 @ case 0
.4byte _0808800C @ case 1
.4byte _0808801A @ case 2
.4byte _08088032 @ case 3
.4byte _0808804A @ case 4
_08087FF4:
movs r0, #0x20
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x10
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x19
b _08088060EU
_0808800C:
adds r0, r2, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #4
bls _0808806A
movs r0, #0x28
b _08088060EU
_0808801A:
movs r0, #0x54
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x56
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x3d
b _08088060EU
_08088032:
movs r0, #0x3b
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x4a
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0xd
b _08088060EU
_0808804A:
movs r0, #0x49
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x55
bl CheckKinstoneFused
cmp r0, #0
bne _08088068
movs r0, #0x3c
_08088060EU:
bl CheckKinstoneFused
_08088064EU:
cmp r0, #0
beq _0808806A
_08088068:
movs r4, #1
_0808806A:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x087B1C, 0x00000E8 @ TODO same as JP
push {r4, lr}
adds r2, r0, #0
lsls r1, r1, #3
ldr r0, _08087B44 @ =gUnk_080FC3E4
adds r1, r1, r0
movs r4, #0
adds r0, r2, #0
adds r0, #0x7d
ldrb r0, [r0]
ldrb r3, [r1, #6]
cmp r0, r3
bhs _08087BFC
ldrb r0, [r1, #6]
cmp r0, #0x10
beq _08087B5A
cmp r0, #0x10
bgt _08087B48
cmp r0, #8
beq _08087B50
b _08087BFE
.align 2, 0
_08087B44: .4byte gUnk_080FC3E4
_08087B48:
cmp r0, #0x20
beq _08087B5E
cmp r0, #0x40
bne _08087BFE
_08087B50:
ldr r0, [r1]
ldrh r1, [r1, #4]
bl CheckLocalFlagByOffset
b _08087BF8
_08087B5A:
ldrh r0, [r1, #4]
b _08087BF4
_08087B5E:
ldrh r0, [r1, #4]
cmp r0, #4
bhi _08087BFE
lsls r0, r0, #2
ldr r1, _08087B70 @ =_08087B74
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08087B70: .4byte _08087B74
_08087B74: @ jump table
.4byte _08087B88 @ case 0
.4byte _08087BA0 @ case 1
.4byte _08087BAE @ case 2
.4byte _08087BC6 @ case 3
.4byte _08087BDE @ case 4
_08087B88:
movs r0, #0x20
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x10
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x19
b _08087BF4
_08087BA0:
adds r0, r2, #0
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #4
bls _08087BFE
movs r0, #0x28
b _08087BF4
_08087BAE:
movs r0, #0x54
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x56
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x3d
b _08087BF4
_08087BC6:
movs r0, #0x3b
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x4a
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0xd
b _08087BF4
_08087BDE:
movs r0, #0x49
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x55
bl CheckKinstoneFused
cmp r0, #0
bne _08087BFC
movs r0, #0x3c
_08087BF4:
bl CheckKinstoneFused
_08087BF8:
cmp r0, #0
beq _08087BFE
_08087BFC:
movs r4, #1
_08087BFE:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
.else
push {r4, lr}
adds r2, r0, #0
@@ -1049,7 +1558,132 @@ _08088324: .4byte gScreen
thumb_func_start sub_08088328
sub_08088328: @ 0x08088328
.ifdef EU
.incbin "baserom_eu.gba", 0x087CBC, 0x00000F8 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
movs r4, #0x7f
_08087CC6:
bl Random
adds r5, r0, #0
ands r5, r4
cmp r5, #0x63
bhi _08087CC6
adds r0, r6, #0
adds r0, #0x81
ldrb r0, [r0]
rsbs r0, r0, #0
bl sub_080542C0
bl Random
movs r1, #0x7f
ands r1, r0
adds r4, r1, #1
adds r7, r4, #0
adds r0, r6, #0
bl sub_08088424
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r5, r0
bhs _08087D34EU
movs r5, #0
movs r0, #0x7e
adds r0, r0, r6
mov r8, r0
_08087D02EU:
cmp r5, #0
bne _08087D72
cmp r4, #0x88
bls _08087D0C
movs r4, #1
_08087D0C:
adds r0, r6, #0
adds r1, r4, #0
bl sub_08088160
cmp r0, #0
beq _08087D2C
ldr r0, _08087D28 @ =gUnk_02002B0E
adds r1, r4, #0
bl ReadBit
cmp r0, #0
bne _08087D2C
movs r5, #1
b _08087D2E
.align 2, 0
_08087D28: .4byte gUnk_02002B0E
_08087D2C:
adds r4, #1
_08087D2E:
cmp r7, r4
bne _08087D02EU
b _08087D6E
_08087D34EU:
movs r5, #1
movs r0, #0x7e
adds r0, r0, r6
mov r8, r0
_08087D3C:
cmp r5, #0
beq _08087DA4
cmp r4, #0x88
bls _08087D46
movs r4, #1
_08087D46:
adds r0, r6, #0
adds r1, r4, #0
bl sub_08088160
cmp r0, #0
beq _08087D68
ldr r0, _08087D64 @ =gUnk_02002B0E
adds r1, r4, #0
bl ReadBit
cmp r0, #0
beq _08087D68
movs r5, #0
b _08087D6A
.align 2, 0
_08087D64: .4byte gUnk_02002B0E
_08087D68:
adds r4, #1
_08087D6A:
cmp r7, r4
bne _08087D3C
_08087D6E:
cmp r5, #0
beq _08087DA4
_08087D72:
ldr r0, _08087D94 @ =gSave
adds r0, #0xb0
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
adds r0, r6, #0
adds r0, #0x7c
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldrb r0, [r0]
cmp r1, r0
beq _08087D98
movs r0, #7
bl SetRoomFlag
b _08087DA4
.align 2, 0
_08087D94: .4byte gSave
_08087D98:
movs r0, #0x5f
bl SetLocalFlag
movs r0, #8
bl SetRoomFlag
_08087DA4:
mov r0, r8
strb r4, [r0]
ldr r0, [r6, #0x50]
adds r0, #0x7e
strb r4, [r0]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.else
push {r4, r5, r6, r7, lr}
mov r7, r8
@@ -1473,7 +2107,31 @@ _08088618: .4byte gSave
thumb_func_start sub_0808861C
sub_0808861C: @ 0x0808861C
.ifdef JP
.incbin "baserom_jp.gba", 0x088420, 0x34 @TODO disassemble
push {r4, lr}
adds r4, r1, #0
movs r0, #0xa8
movs r1, #0x54
movs r2, #0xc
movs r3, #8
bl CheckPlayerInRegion
str r0, [r4, #0x14]
ldr r0, _0808844C @ =0x03001160
ldrb r0, [r0, #0x14]
cmp r0, #0
beq _0808843E
movs r0, #0
str r0, [r4, #0x14]
_0808843E:
ldr r2, _08088450 @ =0x02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0808844C: .4byte 0x03001160
_08088450: .4byte 0x02033280
.else
push {r4, lr}
adds r4, r1, #0
+91 -6
View File
@@ -39,10 +39,10 @@ HandleGameplayScreen: @ 08051A28
_08051A64:
pop {r4, pc}
.byte 0x00, 0x00
_08051A68: .4byte 0x030010A0 @TODO ptr
_08051A6C: .4byte 0x080FC55C @TODO ptr
_08051A70x: .4byte 0x03001000 @TODO ptr
_08051A74x: .4byte 0x02002A40 @TODO ptr
_08051A68: .4byte gUnk_030010A0
_08051A6C: .4byte gUnk_080FC9D8
_08051A70x: .4byte gMain
_08051A74x: .4byte gUnk_02002A40
.else
thumb_func_start HandleGameplayScreen
HandleGameplayScreen: @ 0x08051988
@@ -201,7 +201,83 @@ _08051AEC: .4byte gScreenTransition
thumb_func_start sub_08051AF0
sub_08051AF0: @ 0x08051AF0
.ifdef EU
.incbin "baserom_eu.gba", 0x05172C, 0x00000D0 @TODO disassemble
push {r4, lr}
bl sub_0805E5C0
bl sub_0805BBBC
cmp r0, #0
bne _0805173E
bl UpdateScroll
_0805173E:
bl UpdateBgAnim
bl sub_08000108
bl sub_0801C344
bl sub_0805E5F8
bl FlushSprites
bl sub_0801C208
bl sub_08078CB4
bl sub_080AD9B0
bl sub_080AD918
ldr r0, _080517E0 @ =gFadeControl
ldrb r0, [r0]
cmp r0, #0
bne _080517DC
ldr r0, _080517E4 @ =gRoomControls
ldrh r0, [r0]
cmp r0, #0
bne _080517DC
bl sub_08052F1C
ldr r0, _080517E8 @ =gArea
movs r1, #0x86
lsls r1, r1, #4
adds r3, r0, r1
adds r1, #4
adds r0, r0, r1
ldr r1, [r3]
ldr r2, [r0]
cmp r1, r2
beq _08051796
str r2, [r3]
ldr r0, _080517EC @ =0x800B0000
orrs r2, r0
adds r0, r2, #0
bl SoundReq
_08051796:
bl sub_0805E9F4
bl sub_0805BC04
adds r4, r0, #0
cmp r4, #0
bne _080517DC
bl sub_08052C5C
bl sub_0805E5B4
bl sub_08051E04
bl sub_080300C4
ldr r1, _080517F0 @ =gMain
movs r0, #2
strb r0, [r1, #4]
movs r0, #0
bl sub_08078A90
ldr r0, _080517F4 @ =gUnk_02034490
strb r4, [r0]
bl sub_08053178
bl sub_0801855C
ldr r0, _080517F8 @ =gRoomVars
ldrb r0, [r0]
cmp r0, #0
bne _080517DC
movs r0, #0
movs r1, #1
bl sub_0805E4E0
_080517DC:
pop {r4, pc}
.align 2, 0
_080517E0: .4byte gFadeControl
_080517E4: .4byte gRoomControls
_080517E8: .4byte gArea
_080517EC: .4byte 0x800B0000
_080517F0: .4byte gMain
_080517F4: .4byte gUnk_02034490
_080517F8: .4byte gRoomVars
.else
push {r4, r5, lr}
bl sub_0805E5C0
@@ -448,7 +524,16 @@ _08051D28: .4byte gScreenTransition
thumb_func_start sub_08051D2C
sub_08051D2C: @ 0x08051D2C
.ifdef DEMO
.incbin "baserom_demo.gba", 0x051df4, 0x14 @TODO disassemble
push {lr}
ldr r0, _08051E04 @ =0x03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _08051E02
bl DoSoftReset
_08051E02:
pop {pc}
.align 2, 0
_08051E04: .4byte 0x03000FD0
.else
push {lr}
movs r0, #7
+85 -1
View File
@@ -993,7 +993,91 @@ _0802D7B0: .4byte gScreenTransition
thumb_func_start sub_0802D7B4
sub_0802D7B4: @ 0x0802D7B4
.ifdef EU
.incbin "baserom_eu.gba", 0x02d73c, 0xb0 @TODO disassemble
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
adds r2, r0, #0
cmp r2, #0
bne _0802D7ACEU
ldr r4, _0802D780 @ =gUnk_080CD7F8
ldrb r3, [r5, #0xf]
adds r0, r3, r4
ldrb r1, [r0]
adds r0, r1, #0
cmp r0, #0xff
bne _0802D790
strb r2, [r5, #0xf]
strb r2, [r5, #0xe]
movs r0, #1
strb r0, [r5, #0xc]
strb r2, [r5, #0xd]
adds r0, r5, #0
adds r0, #0x84
ldr r0, [r0]
ldr r1, [r0, #0x50]
movs r0, #0x18
strb r0, [r1, #0xe]
ldr r1, _0802D784 @ =gRoomControls
ldr r0, _0802D788 @ =gPlayerEntity
str r0, [r1, #0x30]
ldr r0, _0802D78C @ =gUnk_02034490
strb r2, [r0]
movs r0, #0x2e
bl SoundReq
b _0802D7E8
.align 2, 0
_0802D780: .4byte gUnk_080CD7F8
_0802D784: .4byte gRoomControls
_0802D788: .4byte gPlayerEntity
_0802D78C: .4byte gUnk_02034490
_0802D790:
strb r1, [r5, #0xe]
adds r0, r3, #1
adds r0, r0, r4
ldrb r0, [r0]
strb r0, [r5, #0x15]
ldrb r0, [r5, #0xf]
adds r0, #2
strb r0, [r5, #0xf]
ldr r0, _0802D7A8 @ =0x00000127
bl SoundReq
b _0802D7B0EU
.align 2, 0
_0802D7A8: .4byte 0x00000127
_0802D7ACEU:
subs r0, #1
strb r0, [r5, #0xe]
_0802D7B0EU:
ldrb r0, [r5, #0x15]
cmp r0, #1
bhi _0802D7C8
adds r4, r5, #0
adds r4, #0x84
ldr r0, [r4]
ldrb r3, [r5, #0x15]
movs r1, #5
movs r2, #0x40
bl sub_0802EA48
b _0802D7DC
_0802D7C8:
adds r4, r5, #0
adds r4, #0x84
cmp r0, #0xff
beq _0802D7DC
ldr r0, [r4]
ldrb r3, [r5, #0x15]
movs r1, #5
movs r2, #0x40
bl sub_0802EA68
_0802D7DC:
ldr r0, [r4]
bl sub_0802E768
adds r0, r5, #0
bl sub_0802E518
_0802D7E8:
pop {r4, r5, pc}
.align 2, 0
.else
push {r4, r5, lr}
adds r5, r0, #0
+178 -3
View File
@@ -472,7 +472,6 @@ _08046494:
pop {r4, r5, r6, pc}
.align 2, 0
@ TODO move inside, if EU no longer references this function
thumb_func_start sub_08046498
sub_08046498: @ 0x08046498
.ifndef EU
@@ -708,7 +707,33 @@ _0804665A:
thumb_func_start sub_08046668
sub_08046668: @ 0x08046668
.ifdef EU
.incbin "baserom_eu.gba", 0x046438, 0x38 @TODO disassemble
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _08046468EU
bl Random
ldr r2, _0804646C @ =gUnk_080D1AF8
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r1, [r1]
adds r0, r4, #0
adds r0, #0x78
movs r2, #0
strb r1, [r0]
adds r0, #7
strb r2, [r0]
adds r0, #3
strb r2, [r0]
adds r0, r4, #0
bl sub_080467DC
_08046468EU:
pop {r4, pc}
.align 2, 0
_0804646C: .4byte gUnk_080D1AF8
.else
push {r4, r5, lr}
adds r4, r0, #0
@@ -745,7 +770,157 @@ _080466A4: .4byte gUnk_080D1AF8
thumb_func_start sub_080466A8
sub_080466A8: @ 0x080466A8
.ifdef EU
.incbin "baserom_eu.gba", 0x046470, 0x12c @TODO disassemble
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r0, #0x7c
ldrb r2, [r0]
cmp r2, #0
beq _08046514EU
adds r0, #1
ldrb r1, [r0]
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4, #0xe]
adds r5, r0, #0
cmp r1, #0
bne _08046498
subs r0, #5
ldrb r0, [r0]
cmp r0, #0xff
beq _08046498
movs r0, #3
strb r0, [r4, #0xe]
_08046498:
ldrb r0, [r5]
bl sub_08000E62
cmp r0, #2
bls _08046514EU
movs r0, #0
strb r0, [r4, #0xe]
strb r0, [r5]
adds r7, r4, #0
adds r7, #0x78
subs r0, #1
adds r6, r0, #0
movs r0, #0xff
strb r0, [r7]
adds r0, #0x28
bl SoundReq
adds r5, r4, #0
adds r5, #0x45
ldrb r0, [r5]
cmp r0, #0
beq _0804650E
movs r0, #8
movs r1, #0
bl sub_08080964
adds r1, r4, #0
adds r1, #0x82
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ands r0, r6
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xc
bhi _080464E6
ldrb r0, [r5]
subs r0, #1
strb r0, [r5]
_080464E6:
ldrb r0, [r5]
cmp r0, #0
bne _080464F8
strb r0, [r7]
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0xa5
lsls r0, r0, #3
b _0804650CEU
_080464F8:
adds r1, r4, #0
adds r1, #0x7f
ldrb r0, [r1]
cmp r0, #0
bne _0804650E
movs r0, #1
strb r0, [r1]
subs r1, #5
movs r0, #0x87
lsls r0, r0, #3
_0804650CEU:
strh r0, [r1]
_0804650E:
adds r0, r4, #0
bl sub_080467DC
_08046514EU:
ldrb r1, [r4, #0xe]
cmp r1, #0
beq _0804658C
adds r0, r4, #0
adds r0, #0x78
ldrb r0, [r0]
cmp r0, #0xff
beq _0804658C
subs r0, r1, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _0804658C
adds r2, r4, #0
adds r2, #0x80
adds r3, r4, #0
adds r3, #0x7d
ldrb r0, [r2]
ldrb r1, [r3]
orrs r0, r1
strb r0, [r2]
strb r5, [r3]
adds r0, r4, #0
bl sub_080467DC
ldr r2, _08046598 @ =gPlayerEntity
ldr r0, [r4, #0x64]
adds r0, #0x3c
ldrb r0, [r0]
adds r1, r2, #0
adds r1, #0x3e
strb r0, [r1]
subs r1, #1
movs r0, #0xf4
strb r0, [r1]
adds r1, #5
movs r0, #0xa
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x2c
movs r2, #0
bl CreateFx
adds r2, r0, #0
cmp r2, #0
beq _0804658C
ldr r0, [r4, #0x64]
ldrh r0, [r0, #0x38]
strh r0, [r2, #0x2e]
ldr r0, [r4, #0x64]
ldrh r0, [r0, #0x3a]
strh r0, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r2, #0
bl UpdateSpriteForCollisionLayer
_0804658C:
adds r1, r4, #0
adds r1, #0x7c
movs r0, #0
strb r0, [r1]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08046598: .4byte gPlayerEntity
.else
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
+65 -1
View File
@@ -45,7 +45,71 @@ _080489C8: .4byte gUnk_080D1F7C
thumb_func_start sub_080489CC
sub_080489CC: @ 0x080489CC
.ifdef EU
.incbin "baserom_eu.gba", 0x048788, 0x84 @TODO disassemble
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r0, #0x45
adds r0, r0, r5
mov ip, r0
ldrb r0, [r0]
cmp r0, #0xff
beq _080487F4
ldr r3, [r5, #0x50]
adds r2, r3, #0
adds r2, #0x7c
movs r0, #1
ldrb r1, [r5, #0xa]
lsls r0, r1
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
ldr r4, [r3, #0x64]
ldrb r0, [r5, #0xa]
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x18
adds r1, r1, r0
ldr r0, [r5, #0x4c]
str r0, [r1]
ldr r2, _08048804 @ =gPlayerEntity
movs r6, #0x2e
ldrsh r0, [r2, r6]
movs r6, #0x2e
ldrsh r1, [r5, r6]
adds r0, r0, r1
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r4, #0x38]
ldr r4, [r3, #0x64]
movs r1, #0x32
ldrsh r0, [r2, r1]
movs r2, #0x32
ldrsh r1, [r5, r2]
adds r0, r0, r1
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r4, #0x3a]
ldr r2, [r3, #0x64]
adds r3, r5, #0
adds r3, #0x3e
ldrb r0, [r3]
movs r1, #0x10
eors r0, r1
strb r0, [r3]
adds r2, #0x3c
strb r0, [r2]
_080487F4:
movs r0, #0xff
mov r6, ip
strb r0, [r6]
ldr r1, _08048808 @ =gUnk_080D1F64
adds r0, r5, #0
bl sub_0804AA30
pop {r4, r5, r6, pc}
.align 2, 0
_08048804: .4byte gPlayerEntity
_08048808: .4byte gUnk_080D1F64
.else
push {r4, r5, r6, lr}
mov ip, r0
+290 -5
View File
@@ -815,7 +815,54 @@ _080B23EC: .4byte gUnk_0800464E
arm_func_start sub_080B23F0
sub_080B23F0: @ 0x080B23F0
.ifdef EU
.incbin "baserom_eu.gba", 0x0B1950, 0x00000A8 @TODO disassemble
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr fp, _080B2A30 @ =gUnk_03000000
ldrb r2, [fp, #3]
cmp r2, #0x80
bhs _080B19C0EU
add r0, pc, #0x54 @ =_080B19C0
str r0, [fp, #0x18]
str sp, [fp, #0x14]
ldrb r0, [fp, #0xf]
cmp r0, #0xff
bne _080B1984
bl _080B1FBC
_080B1980:
mov r0, #0x0
_080B1984:
ldr r1, _080B2154 @ =0x03006958
ldr r1, [r1, r0, lsl #2]
str r1, [fp, #0x1c]
ldr r0, _080B2A34 @ =gUnk_081326EC
ldr r0, [r0]
bl sub_080B19C8
ldr r0, _080B2A38 @ =gUnk_081326EC
ldr r0, [r0, #4]
bl sub_080B19C8
ldr r0, _080B2A3C @ =gUnk_081326EC
ldr r0, [r0, #8]
bl sub_080B19C8
ldr r0, _080B2A40 @ =gUnk_081326EC
ldr r0, [r0, #0xc]
bl sub_080B19C8
_080B19C0EU:
pop {r4, r5, r6, r7, r8, sb, sl, fp, lr}
bx lr
arm_func_start sub_080B19C8
sub_080B19C8: @ 0x080B19C8
ldrb r2, [r0]
cmp r2, #0
bxeq lr
ldr r1, _080B2A44 @ =0x08131D3C
ldr r1, [r1, #0x10]
mov r2, #0
strb r2, [r1]
stmdb sp!, {lr}
bl sub_080B2478
bl sub_080B2534
ldm sp!, {lr}
b _080B1C40EU
.else
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr fp, _080B2A30 @ =gUnk_03000000
@@ -932,7 +979,131 @@ _080B2540:
arm_func_start sub_080B255C
sub_080B255C: @ 0x080B255C
.ifdef EU
.incbin "baserom_eu.gba", 0x0B1ADC, 0x00001C8 @TODO disassemble
stmdb sp!, {lr}
mov r4, r0
bl sub_080B299C
ldr r3, [fp, #0x1c]
mov lr, pc
bxne r3
mov r5, #0
strb r5, [fp, #0x12]
ldrsb r2, [r4, #0x29]
ands r2, r2, #8
beq _080B1BB8
ldrsh r3, [r4, #0x36]
cmp r3, #0
bmi _080B1BA4
mov r1, #0
mov r2, #0
bl sub_080B1BCC
ldrb r1, [r4, #0x18]
and r1, r1, #0x30
mov r1, r1
cmp r0, #0x19
beq _080B1B98
cmp r0, #0x2f
beq _080B1B64
cmp r0, #0xf
bne _080B1BA4
mov r5, #2
strb r5, [fp, #0x12]
add r7, r7, r5
ldrb r2, [fp, #1]
and r2, r2, #0x18
add r2, r2, #0x80
lsr r2, r2, #2
b _080B1B74
_080B1B64:
ldrb r2, [r4, #0x2e]
ldrb r3, [r4, #0x32]
eor r2, r2, r3
and r2, r2, #6
_080B1B74:
ldr r3, _080B2A48 @ =gUnk_030068CC
add r2, r1, r2, lsl #1
ldr sl, [r3, r2]
push {r4, r8, sb}
mov r8, #0
and sb, sb, #0xc00
bl _080B2874
pop {r4, r8, sb, lr}
b _080B2718
_080B1B98:
mov r5, #2
strb r5, [fp, #0x12]
add r7, r7, r5
_080B1BA4:
stmdb sp!, {r4}
mov r0, r4
bl _080B2718
pop {r4, lr}
b _080B1BC0
_080B1BB8:
ldm sp!, {lr}
b _080B2718
_080B1BC0:
ldrsh r1, [r4, #0x36]
ldrb r0, [r4, #0x29]
tst r0, #0x10
beq _080B1BD8
cmp r1, #0
bxpl lr
_080B1BD8:
tst r0, #0x20
beq _080B1BEC
ldrb r0, [fp, #1]
tst r0, #1
bxne lr
_080B1BEC:
mov r2, r7
cmp r1, #0
submi r2, r2, r1
ldr r3, _080B2A4C @ =gUnk_081326EC
ldr r3, [r3, #0x10]
ldrb r0, [r3]
cmp r0, #0x40
bxhs lr
add r0, r0, #1
strb r0, [r3]
add r3, r3, r0, lsl #2
lsr r0, sb, #0xa
and r0, r0, #3
orr r0, r0, r2, lsl #6
strh r0, [r3, #2]
ldrb r0, [r4, #0x18]
and r0, r0, #0x30
lsr r0, r0, #4
orr r0, r0, r6, lsl #6
strh r0, [r3]
bx lr
_080B1C40EU:
ldr r4, _080B2A50 @ =gUnk_081326EC
ldr r4, [r4, #0x10]
ldrb r5, [r4]
cmp r5, #0
bxeq lr
stmdb sp!, {lr}
add r4, r4, #4
_080B1C5C:
ldrsh r0, [r4]
asr r6, r0, #6
and r1, r0, #7
ldr sl, _080B2A54 @ =gUnk_0300694C
ldr sl, [sl, r1, lsl #2]
ldrsh r0, [r4, #2]
asr r7, r0, #6
and r1, r0, #3
lsl sb, r1, #0xa
mov r8, #0
push {r4, r5}
bl _080B2874
pop {r4, r5}
add r4, r4, #4
subs r5, r5, #1
bgt _080B1C5C
ldm sp!, {lr}
bx lr
.else
stmdb sp!, {lr}
mov r4, r0
@@ -1057,6 +1228,8 @@ _080B26D0:
bx lr
.endif
_080B2718:
ldrsb r0, [r4, #0x28]
cmp r0, #0
@@ -1282,12 +1455,124 @@ _080B2A0C:
.align 2, 0
.ifdef EU
.incbin "baserom_eu.gba", 0x0B1FBC, 0x0000194 @TODO disassemble
_080B1FBC:
mov sl, lr
ldrsh r0, [fp, #0x1c]
ldrsh r1, [fp, #0x1e]
ldrsh r2, [fp, #4]
sub r0, r0, r2
ldrsh r3, [fp, #6]
sub r1, r1, r3
mov r2, #0
mov r3, #0
bl sub_080B20ECEU
mov r5, #0
ldr r4, _080B2194 @ =0x03003DF8
_080B1FECEU:
ldr r0, [r4, #8]
cmp r0, #0
beq _080B2074EU
ldrsh r6, [r0, #0x2e]
ldrsh r7, [r0, #0x32]
ldr r3, [r4, #4]
cmp r3, #0
beq _080B2024
ldrsb r0, [r3]
add r6, r6, r0
ldrsb r0, [r3, #1]
add r7, r7, r0
add r3, r3, #2
b _080B202C
_080B2024:
ldr r3, [r0, #0x48]
add r3, r3, #6
_080B202C:
ldrsh r0, [fp, #4]
sub r6, r6, r0
ldrsh r0, [fp, #6]
sub r7, r7, r0
ldrb r0, [r3]
ldrb r1, [r3, #1]
ldr r2, [fp, #1]
and r2, r2, #3
lsl r3, r2, #0x1c
lsrs r2, r2, #1
rsblo r0, r0, #0
subhs r0, r0, #8
rsbeq r1, r1, #0
subne r1, r1, #8
add r0, r0, r6
add r1, r1, r7
mov r2, #0
bl sub_080B20ECEU
_080B2074EU:
add r4, r4, #0xc
add r5, r5, #1
cmp r5, #0x1f
bls _080B1FECEU
bx sl
arm_func_start sub_080B2088
sub_080B2088: @ 0x080B2088
ldr r5, [r4, #0x48]
cmp r5, #0
bxeq lr
ldrb r0, [r5, #6]
ldrb r1, [r5, #7]
ldr r2, [fp, #1]
and r2, r2, #3
lsl r3, r2, #0x1c
lsrs r2, r2, #1
rsblo r0, r0, #0
subhs r0, r0, #8
rsbeq r1, r1, #0
subne r1, r1, #8
ldrsb r2, [r5]
add r0, r6, r0
add r0, r0, r2
ldrsb r2, [r5, #1]
add r1, r7, r1
add r1, r1, r2
mov r2, sb
b sub_080B20ECEU
_080B20DC:
mov r0, r6
mov r1, r7
mov r2, r9
mov r3, #0x0
arm_func_start sub_080B20ECEU
sub_080B20ECEU: @ 0x080B20EC
add ip, r1, #7
cmp ip, #0xa8
bxhs lr
add ip, r0, #7
cmp ip, #0xf8
bxhs lr
and r1, r1, #0xff
lsl r0, r0, #0x17
orr r0, r1, r0, lsr #7
eor r0, r0, r3
and r1, r2, #0xc00
add r1, r1, #0xff
ldrb r3, [fp, #3]
add ip, fp, #0x20
add ip, ip, r3, lsl #3
str r0, [ip]
strh r1, [ip, #4]
add r3, r3, #1
cmp r3, #0x80
bhs _080B298C
strb r3, [fp, #3]
bx lr
_080B2144:
.4byte gUnk_03006954
.4byte gUnk_030068F0
.4byte gUnk_0300689C
.endif
_080B2A30: .4byte gUnk_03000000
.ifdef EU
.4byte 0x03006958 @TODO make pointer?
_080B2154: .4byte 0x03006958 @TODO make pointer?
.endif
_080B2A34: .4byte gUnk_081326EC
_080B2A38: .4byte gUnk_081326EC
@@ -1305,5 +1590,5 @@ _080B2A64: .4byte gUnk_03000000
_080B2A68: .4byte gUnk_0300695C
_080B2A6C: .4byte 0x3E003F00
.ifdef EU
.4byte 0x03003DF8 @TODO pointer?
_080B2194: .4byte 0x03003DF8 @TODO pointer?
.endif
+56 -1
View File
@@ -119,7 +119,62 @@ _08075AD8: .4byte gUnk_08126EEC
thumb_func_start sub_08075ADC
sub_08075ADC: @ 0x08075ADC
.ifdef EU
.incbin "baserom_eu.gba", 0x07550C, 0x0000074 @TODO disassemble
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r1, [r4, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08075532
ldr r0, _08075570 @ =gPlayerState
ldr r0, [r0, #0x30]
movs r1, #0x88
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _08075532
bl sub_08079D48
cmp r0, #0
bne _08075578
_08075532:
movs r0, #0
strb r0, [r4, #0xf]
ldrb r0, [r4, #4]
adds r0, #1
strb r0, [r4, #4]
ldr r3, _08075570 @ =gPlayerState
ldr r0, [r3, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
orrs r0, r1
str r0, [r3, #0x30]
movs r2, #8
asrs r2, r5
lsls r1, r2, #4
orrs r1, r2
ldrb r0, [r3, #4]
bics r0, r1
strb r0, [r3, #4]
mvns r2, r2
ldrb r1, [r3, #0xa]
adds r0, r2, #0
ands r0, r1
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
ands r2, r0
strb r2, [r3, #0xb]
ldr r0, _08075574 @ =0x0000013D
bl SoundReq
b _0807557E
.align 2, 0
_08075570: .4byte gPlayerState
_08075574: .4byte 0x0000013D
_08075578:
adds r0, r4, #0
bl UpdateItemAnim
_0807557E:
pop {r4, r5, pc}
.else
push {r4, r5, lr}
adds r4, r0, #0
+179 -1
View File
@@ -27,7 +27,185 @@ _08075334: .4byte gUnk_0811BD44
thumb_func_start sub_08075338
sub_08075338: @ 0x08075338
.ifdef EU
.incbin "baserom_eu.gba", 0x074D74, 0x0000174 @TODO disassemble
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r7, r1, #0
ldr r4, _08074DA8 @ =gPlayerState
ldr r1, [r4, #0x30]
movs r3, #0x80
adds r0, r1, #0
ands r0, r3
cmp r0, #0
beq _08074DAC
ldrb r0, [r5, #9]
movs r1, #0x80
orrs r1, r0
strb r1, [r5, #9]
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
movs r0, #0xc0
lsls r0, r0, #4
strh r0, [r4, #8]
movs r0, #0x75
bl SoundReq
b _08074EE2
.align 2, 0
_08074DA8: .4byte gPlayerState
_08074DAC:
ldrb r2, [r4, #2]
cmp r2, #0
beq _08074E22
movs r6, #7
adds r0, r6, #0
ands r0, r2
cmp r0, #3
beq _08074E18
movs r0, #0x78
ands r0, r2
cmp r0, #0
bne _08074E18
ldr r3, _08074E10 @ =gPlayerEntity
ldr r1, [r3, #0x20]
ldr r0, _08074E14 @ =0x00017FFF
cmp r1, r0
bhi _08074E18
adds r0, r4, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08074E18
ldr r0, [r3, #0x34]
cmp r0, #0
beq _08074E18
movs r0, #0x20
orrs r0, r2
strb r0, [r4, #2]
adds r0, r4, #0
adds r0, #0xab
strb r6, [r0]
movs r0, #8
asrs r0, r7
lsls r1, r0, #4
orrs r0, r1
ldrb r1, [r4, #4]
orrs r0, r1
strb r0, [r4, #4]
adds r0, r5, #0
bl sub_08077B98
movs r0, #6
strb r0, [r5, #4]
adds r0, r5, #0
adds r1, r7, #0
bl sub_08075898
b _08074EE2
.align 2, 0
_08074E10: .4byte gPlayerEntity
_08074E14: .4byte 0x00017FFF
_08074E18:
adds r0, r5, #0
adds r1, r7, #0
bl sub_080759B8
b _08074EE2
_08074E22:
movs r6, #0x80
lsls r6, r6, #0xb
ands r6, r1
cmp r6, #0
beq _08074EAE
adds r0, r4, #0
adds r0, #0xac
ldrh r1, [r0]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, #0
bne _08074E4C
ldr r0, [r4, #0x2c]
cmp r0, #0
beq _08074EE2
bl DeleteEntity
str r6, [r4, #0x2c]
b _08074EE2
_08074E4C:
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
adds r0, r5, #0
bl sub_08077B98
movs r3, #8
adds r1, r3, #0
asrs r1, r7
lsls r0, r1, #4
orrs r0, r1
ldrb r2, [r4, #4]
orrs r0, r2
strb r0, [r4, #4]
ldrb r2, [r4, #0xa]
adds r0, r1, #0
orrs r0, r2
strb r0, [r4, #0xa]
ldrb r0, [r4, #0xb]
orrs r1, r0
strb r1, [r4, #0xb]
strb r3, [r5, #4]
movs r0, #0x14
strb r0, [r5, #7]
movs r0, #6
strb r0, [r5, #0xf]
ldrb r1, [r5, #9]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #9]
adds r1, r4, #0
adds r1, #0xab
movs r0, #2
strb r0, [r1]
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0x14
orrs r0, r1
str r0, [r4, #0x30]
movs r1, #0x98
lsls r1, r1, #1
adds r0, r5, #0
bl sub_08077DF4
movs r0, #0x77
bl SoundReq
b _08074EE2
_08074EAE:
ldrb r1, [r4, #0x1b]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _08074EC0
strb r6, [r4, #0x1b]
ldr r0, _08074EE4 @ =gPlayerEntity
bl sub_0806F948
_08074EC0:
ldr r1, [r4, #0x2c]
cmp r1, #0
beq _08074ED4
ldrb r0, [r1, #9]
cmp r0, #1
beq _08074ED4
adds r0, r1, #0
bl DeleteEntity
str r6, [r4, #0x2c]
_08074ED4:
adds r0, r5, #0
adds r1, r7, #0
bl sub_08077D38
adds r0, r5, #0
bl sub_08077B98
_08074EE2:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08074EE4: .4byte gPlayerEntity
.else
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
+250 -1
View File
@@ -10,7 +10,256 @@
thumb_func_start LadderUp
LadderUp: @ 0x0808DB54
.ifdef EU
.incbin "baserom_eu.gba", 0x08D44C, 0x0000200 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
ldrb r0, [r7, #0xc]
cmp r0, #1
beq _0808D4D8
cmp r0, #1
bgt _0808D518
cmp r0, #0
bne _0808D518
ldrb r0, [r7, #0xe]
movs r1, #2
cmp r0, #0
beq _0808D46C
movs r1, #1
_0808D46C:
strb r1, [r7, #0xc]
adds r1, r7, #0
adds r1, #0x63
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
adds r0, r7, #0
movs r1, #0xa
bl InitializeAnimation
ldrb r0, [r7, #0xc]
cmp r0, #1
bne _0808D48A
ldr r0, _0808D4CC @ =0x0000FF80
strh r0, [r7, #0x36]
_0808D48A:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _0808D492
b _0808D642
_0808D492:
ldrh r1, [r7, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
adds r0, #0xc
strh r0, [r7, #0x32]
ldr r0, _0808D4D0 @ =0x00004023
movs r2, #0x2e
ldrsh r1, [r7, r2]
ldr r3, _0808D4D4 @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r5, #0x32
ldrsh r2, [r7, r5]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r7, #0
adds r2, #0x38
ldrb r2, [r2]
bl SetTile
b _0808D642
.align 2, 0
_0808D4CC: .4byte 0x0000FF80
_0808D4D0: .4byte 0x00004023
_0808D4D4: .4byte gRoomControls
_0808D4D8:
movs r1, #0x80
lsls r1, r1, #5
adds r0, r7, #0
bl sub_08003FC4
cmp r0, #0
beq _0808D4E8
b _0808D642
_0808D4E8:
adds r0, r7, #0
movs r1, #0x46
movs r2, #0x40
bl CreateFx
adds r1, r0, #0
cmp r1, #0
beq _0808D4FE
ldrh r0, [r1, #0x32]
adds r0, #8
strh r0, [r1, #0x32]
_0808D4FE:
movs r0, #0x1e
movs r1, #0
bl sub_08080964
ldr r0, _0808D514 @ =0x0000010B
bl SoundReq
movs r0, #2
strb r0, [r7, #0xc]
b _0808D642
.align 2, 0
_0808D514: .4byte 0x0000010B
_0808D518:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _0808D520
b _0808D642
_0808D520:
ldr r0, _0808D598 @ =gPlayerEntity
movs r2, #0x32
ldrsh r1, [r0, r2]
movs r3, #0x32
ldrsh r0, [r7, r3]
cmp r1, r0
bge _0808D5AC
ldr r0, _0808D59C @ =gPlayerState
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
bne _0808D538
b _0808D642
_0808D538:
adds r0, r7, #0
bl GetTileTypeByEntity
ldr r1, _0808D5A0 @ =0x00004017
cmp r0, r1
beq _0808D546
b _0808D642
_0808D546:
ldr r0, _0808D5A4 @ =0x00004023
movs r5, #0x2e
ldrsh r1, [r7, r5]
ldr r4, _0808D5A8 @ =gRoomControls
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r5, #0x3f
ands r1, r5
movs r3, #0x32
ldrsh r2, [r7, r3]
ldrh r3, [r4, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
adds r6, r7, #0
adds r6, #0x38
ldrb r2, [r6]
bl SetTile
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r5
movs r2, #0x32
ldrsh r1, [r7, r2]
ldrh r2, [r4, #8]
adds r2, #0x10
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r6]
bl sub_0807BA8C
b _0808D642
.align 2, 0
_0808D598: .4byte gPlayerEntity
_0808D59C: .4byte gPlayerState
_0808D5A0: .4byte 0x00004017
_0808D5A4: .4byte 0x00004023
_0808D5A8: .4byte gRoomControls
_0808D5AC:
adds r0, r7, #0
bl GetTileTypeByEntity
ldr r3, _0808D614 @ =0x00004017
mov r8, r3
cmp r0, r8
beq _0808D642
movs r5, #0x2e
ldrsh r1, [r7, r5]
ldr r5, _0808D618 @ =gRoomControls
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r6, #0x3f
ands r1, r6
movs r2, #0x32
ldrsh r0, [r7, r2]
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r4, r7, #0
adds r4, #0x38
ldrb r2, [r4]
mov r0, r8
bl SetTile
ldrb r0, [r7, #0xa]
cmp r0, #0
bne _0808D61C
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r7, r2]
ldrh r2, [r5, #8]
adds r2, #0x10
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
ldrb r2, [r4]
mov r0, r8
bl SetTile
b _0808D642
.align 2, 0
_0808D614: .4byte 0x00004017
_0808D618: .4byte gRoomControls
_0808D61C:
ldr r0, _0808D648 @ =0x00004014
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r7, r3]
ldrh r3, [r5, #8]
adds r3, #0x10
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl SetTile
_0808D642:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808D648: .4byte 0x00004014
.else
push {r4, r5, r6, r7, lr}
mov r7, r8
+57 -2
View File
@@ -35,10 +35,65 @@ _0805DE64: .4byte gUnk_08108DC4
thumb_func_start sub_0805DE68
sub_0805DE68: @ 0x0805DE68
.ifdef JP
.incbin "baserom_jp.gba", 0x05dcbc, 0x3c @TODO disassemble
push {r4, lr}
adds r4, r0, #0
movs r0, #0x7b
bl CheckLocalFlag
cmp r0, #0
bne _0805DCCE
bl DeleteThisEntity
_0805DCCE:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805DCF4 @ =0x030010A0
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x39
movs r0, #0xf
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3a
movs r1, #0x20
strb r1, [r0]
adds r0, #1
strb r1, [r0]
pop {r4, pc}
.align 2, 0
_0805DCF4: .4byte gScreenTransition
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x05D904, 0x3c @TODO same as JP
push {r4, lr}
adds r4, r0, #0
movs r0, #0x7b
bl CheckLocalFlag
cmp r0, #0
bne _0805D916
bl DeleteThisEntity
_0805D916:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805D93C @ =gScreenTransition
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x39
movs r0, #0xf
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3a
movs r1, #0x20
strb r1, [r0]
adds r0, #1
strb r1, [r0]
pop {r4, pc}
.align 2, 0
_0805D93C: .4byte gScreenTransition
.else
push {r4, lr}
adds r4, r0, #0
+1 -2
View File
@@ -805,10 +805,9 @@ _080594D2:
_080594D4: .4byte gUnk_08108380
_080594D8: .4byte gPlayerEntity
@TODO move down once EU pointers are fixed
.ifndef EU
thumb_func_start sub_080594DC
sub_080594DC: @ 0x080594DC
.ifndef EU
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
+251
View File
@@ -0,0 +1,251 @@
.syntax unified
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _080170E4 @ =gUnk_0200AF00
adds r2, r0, #0
adds r2, #0x2f
movs r1, #0
strb r1, [r2]
subs r2, #2
strb r1, [r2]
adds r0, #0x2e
strb r1, [r0]
ldr r2, _080170E8 @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08017072
adds r0, r2, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08017072
movs r0, #0x86
bl SoundReq
_08017072:
ldr r4, _080170EC @ =gPlayerState
ldr r0, [r4, #0x30]
ldr r1, _080170F0 @ =0xFDFFFDFF
ands r0, r1
str r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _0801708A
bl ResetPlayer
_0801708A:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _080170A4
adds r0, r4, #0
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
bne _080170A4
bl sub_0807A108
_080170A4:
bl sub_08079B24
cmp r0, #0
bne _080170B2
adds r0, r5, #0
bl sub_08079708
_080170B2:
ldr r0, _080170F4 @ =gUnk_03003DF0
movs r4, #0
strb r4, [r0]
ldr r2, _080170EC @ =gPlayerState
adds r1, r2, #0
adds r1, #0x27
ldrb r0, [r1]
cmp r0, #0
beq _080170C8
subs r0, #1
strb r0, [r1]
_080170C8:
adds r1, r2, #0
adds r1, #0xa8
ldrb r0, [r1]
adds r3, r2, #0
adds r3, #0xa9
strb r0, [r3]
strb r4, [r1]
subs r1, #0x1e
ldrb r0, [r1]
cmp r0, #0
beq _080170F8
subs r0, #1
strb r0, [r1]
b _08017222
.align 2, 0
_080170E4: .4byte gUnk_0200AF00
_080170E8: .4byte gPlayerEntity
_080170EC: .4byte gPlayerState
_080170F0: .4byte 0xFDFFFDFF
_080170F4: .4byte gUnk_03003DF0
_080170F8:
adds r0, r2, #0
adds r0, #0x8b
ldrb r0, [r0]
cmp r0, #0
beq _08017104
b _08017222
_08017104:
ldr r0, _08017160 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _08017112
b _08017222
_08017112:
ldr r0, _08017164 @ =gUnk_0200AF00
ldrb r0, [r0, #1]
cmp r0, #0
bne _0801714E
ldr r0, _08017168 @ =gScreenTransition
ldr r0, [r0]
movs r1, #0x5a
bl __modsi3
cmp r0, #0
bne _0801714E
ldr r2, _0801716C @ =gSave
adds r0, r2, #0
adds r0, #0xab
ldrb r0, [r0]
lsrs r1, r0, #2
cmp r1, #0x18
bls _08017138
movs r1, #0x18
_08017138:
cmp r1, #7
bhi _0801713E
movs r1, #8
_0801713E:
adds r0, r2, #0
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, r1
bhi _0801714E
ldr r0, _08017170 @ =0x0000011F
bl EnqueueSFX
_0801714E:
ldr r0, _0801716C @ =gSave
adds r2, r0, #0
adds r2, #0xb2
ldrb r1, [r2]
cmp r1, #0
bne _08017174
adds r0, #0xc4
strh r1, [r0]
b _08017192
.align 2, 0
_08017160: .4byte gTextBox
_08017164: .4byte gUnk_0200AF00
_08017168: .4byte gScreenTransition
_0801716C: .4byte gSave
_08017170: .4byte 0x0000011F
_08017174:
adds r1, r0, #0
adds r1, #0xc4
ldrh r0, [r1]
cmp r0, #0
beq _08017188
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08017192
_08017188:
movs r0, #0
strb r0, [r2]
ldr r0, _080171A4 @ =0x000001B3
bl SoundReq
_08017192:
ldr r0, _080171A8 @ =gSave
adds r3, r0, #0
adds r3, #0xb3
ldrb r1, [r3]
cmp r1, #0
bne _080171AC
adds r0, #0xc6
strh r1, [r0]
b _080171DC
.align 2, 0
_080171A4: .4byte 0x000001B3
_080171A8: .4byte gSave
_080171AC:
adds r2, r0, #0
adds r2, #0xc6
ldrh r0, [r2]
cmp r0, #0
beq _080171C0
subs r1, r0, #1
strh r1, [r2]
lsls r0, r1, #0x10
cmp r0, #0
bne _080171CE
_080171C0:
movs r0, #0
strb r0, [r3]
movs r0, #0xa0
lsls r0, r0, #1
bl SoundReq
b _080171DC
_080171CE:
movs r0, #0xf
ands r1, r0
cmp r1, #0
bne _080171DC
adds r0, r5, #0
bl CreateSparkle
_080171DC:
ldr r0, _080171F0 @ =gSave
adds r3, r0, #0
adds r3, #0xba
ldrb r1, [r3]
cmp r1, #0
bne _080171F4
adds r0, #0xc8
strh r1, [r0]
b _08017222
.align 2, 0
_080171F0: .4byte gSave
_080171F4:
adds r2, r0, #0
adds r2, #0xc8
ldrh r0, [r2]
cmp r0, #0
beq _08017208
subs r1, r0, #1
strh r1, [r2]
lsls r0, r1, #0x10
cmp r0, #0
bne _0801720E
_08017208:
movs r0, #0
strb r0, [r3]
b _08017222
_0801720E:
movs r0, #0x3f
ands r1, r0
cmp r1, #0
bne _08017222
ldrb r1, [r3]
adds r1, #0x55
adds r0, r5, #0
movs r2, #0
bl CreateFx
_08017222:
pop {r4, r5}
pop {r0}
bx r0
.syntax divided
+95
View File
@@ -0,0 +1,95 @@
.syntax unified
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080578C4
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x20
movs r0, #0xff
strb r0, [r1]
ldr r1, _0805791C @ =sub_080582F8
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_080578C4:
ldr r0, _08057920 @ =gRoomControls
ldrh r5, [r0]
cmp r5, #0
bne _08057960
adds r0, r4, #0
bl sub_08057E40
cmp r0, #0
beq _080578E8
ldr r0, _08057924 @ =gRoomVars
ldrb r6, [r0, #0x10]
adds r1, r4, #0
adds r1, #0x20
ldrb r0, [r1]
cmp r0, r6
beq _080578E8
strb r6, [r1]
strb r5, [r4, #0xe]
_080578E8:
lsls r1, r6, #6
ldr r0, _08057928 @ =gUnk_081080A4
adds r2, r1, r0
ldrb r1, [r4, #0xe]
cmp r1, #0
bne _08057938
ldr r1, _0805792C @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
ldr r0, [r2]
ldr r1, _08057930 @ =gGlobalGfxAndPalettes
adds r0, r0, r1
ldr r1, [r2, #4]
movs r2, #0x80
lsls r2, r2, #5
bl LoadResourceAsync
ldr r0, _08057934 @ =gUnk_081081E4
adds r0, r6, r0
ldrb r0, [r0]
bl LoadPaletteGroup
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
b _08057960
.align 2, 0
_0805791C: .4byte sub_08057E30
_08057920: .4byte gRoomControls
_08057924: .4byte gRoomVars
_08057928: .4byte gUnk_081080A4
_0805792C: .4byte gUnk_02034490
_08057930: .4byte gGlobalGfxAndPalettes
_08057934: .4byte gUnk_081081E4
_08057938:
cmp r1, #0
blt _08057960
cmp r1, #7
bgt _08057960
lsls r1, r1, #3
adds r1, r1, r2
ldr r0, [r1]
ldr r2, _08057964 @ =gGlobalGfxAndPalettes
adds r0, r0, r2
ldr r1, [r1, #4]
movs r2, #0x80
lsls r2, r2, #5
bl LoadResourceAsync
ldrb r0, [r4, #0xe]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xe]
ldr r0, _08057968 @ =gUnk_02034490
strb r1, [r0]
_08057960:
pop {r4, r5, r6, pc}
.align 2, 0
_08057964: .4byte gGlobalGfxAndPalettes
_08057968: .4byte gUnk_02034490
.syntax divided
@@ -0,0 +1,153 @@
.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
ldr r0, _08056570 @ =gUnk_02024030
movs r7, #3
ldrsb r7, [r0, r7]
ldr r0, _08056574 @ =gInput
ldrh r0, [r0, #2]
cmp r0, #8
beq _08056582
cmp r0, #8
bgt _08056578
cmp r0, #1
beq _08056582
b _080565EA
.align 2, 0
_08056570: .4byte gUnk_02024030
_08056574: .4byte gInput
_08056578:
cmp r0, #0x10
beq _080565E8
cmp r0, #0x20
beq _080565E4
b _080565EA
_08056582:
ldr r0, _08056598EU @ =gUnk_02024030
lsls r1, r7, #1
adds r0, #0x10
adds r1, r1, r0
ldrh r1, [r1]
cmp r1, #0
bne _080565A0EU
ldr r1, _0805659CEU @ =gUnk_08107C14
adds r0, r6, #0
adds r0, #0x20
b _080565B0EU
.align 2, 0
_08056598EU: .4byte gUnk_02024030
_0805659CEU: .4byte gUnk_08107C14
_080565A0EU:
strh r1, [r6, #8]
adds r4, r6, #0
adds r4, #0x20
adds r0, r4, #0
bl sub_0805EEB4
ldr r1, _080565D8 @ =gUnk_08107C0F
adds r0, r4, #0
_080565B0EU:
bl sub_0805EF40
ldr r2, _080565DC @ =gUnk_02000040
ldr r0, _080565E0 @ =gUnk_02024030
ldrb r1, [r0, #3]
strb r1, [r2, #1]
movs r1, #3
strb r1, [r2]
movs r1, #0x18
bl MemClear
movs r0, #0x6a
bl SoundReq
adds r1, r6, #0
adds r1, #0x89
movs r0, #1
strb r0, [r1]
b _080565EA
.align 2, 0
_080565D8: .4byte gUnk_08107C0F
_080565DC: .4byte gUnk_02000040
_080565E0: .4byte gUnk_02024030
_080565E4:
subs r7, #1
b _080565EA
_080565E8:
adds r7, #1
_080565EA:
ldr r4, _0805660C @ =gUnk_02024030
movs r1, #2
ldrsb r1, [r4, r1]
adds r0, r7, r1
bl __modsi3
adds r7, r0, #0
movs r5, #3
ldrsb r5, [r4, r5]
cmp r7, r5
beq _08056610
strb r7, [r4, #3]
movs r0, #0x69
bl SoundReq
movs r1, #1
b _08056612
.align 2, 0
_0805660C: .4byte gUnk_02024030
_08056610:
movs r1, #0
_08056612:
ldr r2, _08056674 @ =gUnk_02000040
ldrb r0, [r2]
cmp r0, #1
bne _08056624
ldr r1, _08056678 @ =gUnk_02024030
movs r0, #2
strb r0, [r2]
strb r0, [r1]
movs r1, #1
_08056624:
cmp r1, #0
beq _0805666A
ldr r0, _0805667C @ =gCurrentTextBox
mov sl, r0
movs r1, #0x56
add r1, sl
mov sb, r1
ldrh r0, [r1]
mov r8, r0
ldr r4, _08056678 @ =gUnk_02024030
lsls r0, r5, #1
adds r4, #8
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r6, #0x50
movs r0, #0
adds r1, r6, #0
bl sub_0805F8E4
lsls r0, r7, #1
adds r0, r0, r4
ldrh r0, [r0]
mov r1, sb
strh r0, [r1]
movs r0, #1
adds r1, r6, #0
bl sub_0805F8E4
mov r1, r8
mov r0, sb
strh r1, [r0]
movs r0, #1
ldr r1, _08056680 @ =0x0202281D
strb r0, [r1]
_0805666A:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08056674: .4byte gUnk_02000040
_08056678: .4byte gUnk_02024030
_0805667C: .4byte gCurrentTextBox
_08056680: .4byte 0x0202281D
.syntax divided
+47
View File
@@ -0,0 +1,47 @@
.syntax unified
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0804A720
movs r4, #0
movs r0, #1
strb r0, [r5, #0xc]
bl Random
strb r0, [r5, #0xe]
adds r0, r5, #0
adds r0, #0x45
ldrb r1, [r0]
adds r0, #0x3b
strb r1, [r0]
adds r0, #2
strb r4, [r0]
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0801F484
movs r0, #3
strb r0, [r5, #0xc]
movs r0, #0x1e
strb r0, [r5, #0xf]
adds r0, r5, #0
movs r1, #1
bl sub_08049F84
strb r0, [r5, #0x15]
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
movs r1, #2
bl InitializeAnimation
_0801F484:
pop {r4, r5, pc}
.align 2, 0
.syntax divided
+101
View File
@@ -0,0 +1,101 @@
.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
bl sub_0802AC40
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802AAB4
adds r0, r4, #0
movs r1, #4
bl sub_0802AD1C
_0802AAB4:
adds r6, r4, #0
adds r6, #0x81
ldrb r0, [r6]
cmp r0, #0
beq _0802AB38
ldr r5, [r4, #0x54]
cmp r5, #0
bne _0802AAC8
strb r5, [r6]
b _0802AB56
_0802AAC8:
ldr r0, [r5, #4]
cmp r0, #0
bne _0802AAD4
strb r0, [r6]
str r0, [r4, #0x54]
b _0802AB56
_0802AAD4:
ldrb r0, [r5, #0xe]
mov r8, r0
cmp r0, #0
bne _0802AB56
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0802AB24 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r7, #0x32
ldrsh r1, [r4, r7]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
movs r1, #1
bl sub_080002E0
cmp r0, #0
bne _0802AB2C
ldr r1, _0802AB28 @ =gPlayerEntity
adds r0, r4, #0
movs r2, #0x10
movs r3, #0x10
bl sub_080041A0
cmp r0, #0
beq _0802AB56
ldrb r0, [r5, #0xf]
cmp r0, #0x50
bhi _0802AB56
mov r0, r8
strb r0, [r6]
b _0802AB56
.align 2, 0
_0802AB24: .4byte gRoomControls
_0802AB28: .4byte gPlayerEntity
_0802AB2C:
ldrb r0, [r5, #0xf]
cmp r0, #0x13
bhi _0802AB56
mov r1, r8
strb r1, [r6]
b _0802AB56
_0802AB38:
movs r1, #4
strb r1, [r4, #0xc]
movs r0, #0xc0
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x80
ldrb r0, [r2]
movs r1, #1
eors r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
_0802AB56:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.syntax divided
+50
View File
@@ -0,0 +1,50 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
bl sub_0802AC40
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0802ABA6
adds r0, r4, #0
adds r0, #0x7a
ldrb r0, [r0]
cmp r0, #4
bhi _0802AB90
movs r0, #5
strb r0, [r4, #0xc]
strh r1, [r4, #0x24]
ldrb r1, [r4, #0xa]
adds r1, #1
adds r0, r4, #0
bl InitializeAnimation
b _0802ABBA
_0802AB90:
movs r0, #0xc0
strb r0, [r4, #0xe]
movs r0, #4
strb r0, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x80
ldrb r0, [r2]
movs r1, #1
eors r0, r1
strb r0, [r2]
b _0802ABBA
_0802ABA6:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r2
cmp r0, #0
bne _0802ABBA
adds r0, r4, #0
movs r1, #4
bl sub_0802ACDC
_0802ABBA:
pop {r4, pc}
.syntax divided
+43
View File
@@ -0,0 +1,43 @@
.syntax unified
push {r4, r5, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
adds r5, r4, #0
adds r5, #0x7a
ldrb r0, [r5]
cmp r0, #0
beq _0802AC26
adds r0, r4, #0
bl sub_0802B234
cmp r0, #0
bne _0802AC44
strb r0, [r5]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
b _0802AC42
_0802AC26:
adds r0, r4, #0
bl sub_0802B234
cmp r0, #0
beq _0802AC44
movs r0, #1
strb r0, [r5]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3a
ands r0, r1
movs r1, #0x18
orrs r0, r1
_0802AC42:
strb r0, [r2]
_0802AC44:
pop {r4, r5, pc}
.align 2, 0
.syntax divided
+38
View File
@@ -0,0 +1,38 @@
.syntax unified
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xa]
adds r1, #2
movs r0, #0x1b
bl CreateEnemy
adds r4, r0, #0
cmp r4, #0
beq _0802AD92
adds r0, r5, #0
bl sub_0802B234
rsbs r1, r0, #0
orrs r1, r0
lsrs r1, r1, #0x1f
strb r1, [r4, #0xb]
str r5, [r4, #0x50]
str r4, [r5, #0x54]
adds r0, r5, #0
adds r1, r4, #0
bl CopyPosition
ldrh r0, [r4, #0x36]
adds r0, #8
strh r0, [r4, #0x36]
adds r1, r5, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _0802AD92
subs r1, #7
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0802AD92:
pop {r4, r5, pc}
.syntax divided
+78
View File
@@ -0,0 +1,78 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
ldr r2, [r4, #0x50]
cmp r2, #0
bne _0802ADFA
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x80
movs r0, #1
strb r0, [r1]
_0802ADFA:
adds r0, r2, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _0802AE1E
adds r0, r2, #0
adds r1, r4, #0
bl CopyPosition
ldrh r0, [r4, #0x36]
adds r0, #8
strh r0, [r4, #0x36]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _0802AE68
_0802AE1E:
movs r0, #3
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x80
movs r2, #1
movs r0, #1
strb r0, [r1]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0802B234
cmp r0, #0
beq _0802AE54
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
movs r0, #0x18
orrs r1, r0
strb r1, [r2]
b _0802AE62
_0802AE54:
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
_0802AE62:
adds r0, r4, #0
bl GetNextFrame
_0802AE68:
pop {r4, pc}
.align 2, 0
.syntax divided
+71
View File
@@ -0,0 +1,71 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802B17A
subs r0, #1
strb r0, [r4, #0xe]
_0802B17A:
ldr r2, [r4, #0x50]
cmp r2, #0
bne _0802B190
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
_0802B190:
adds r0, r2, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
beq _0802B1AA
adds r0, r2, #0
adds r1, r4, #0
bl CopyPosition
ldrh r0, [r4, #0x36]
adds r0, #8
strh r0, [r4, #0x36]
b _0802B1EC
_0802B1AA:
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0802B234
cmp r0, #0
beq _0802B1D8
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
movs r0, #0x18
orrs r1, r0
strb r1, [r2]
b _0802B1E6
_0802B1D8:
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
_0802B1E6:
adds r0, r4, #0
bl GetNextFrame
_0802B1EC:
pop {r4, pc}
.align 2, 0
.syntax divided
+207
View File
@@ -0,0 +1,207 @@
.syntax unified
push {r4, r5, r6, r7, lr}
sub sp, #0x20
adds r6, r0, #0
adds r3, r1, #0
ldr r0, _08054138 @ =gRoomVars
ldrb r0, [r0, #2]
cmp r0, #1
bne _08054126
b _080542CC
_08054126:
ldr r2, _0805413C @ =gUnk_08001A1C
movs r4, #0
cmp r3, #0x18
bhi _080541BC
lsls r0, r3, #2
ldr r1, _08054140 @ =_08054144
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08054138: .4byte gRoomVars
_0805413C: .4byte gUnk_08001A1C
_08054140: .4byte _08054144
_08054144: @ jump table
.4byte _080541BC @ case 0
.4byte _080541A8 @ case 1
.4byte _080541A8 @ case 2
.4byte _080541A8 @ case 3
.4byte _080541A8 @ case 4
.4byte _080541A8 @ case 5
.4byte _080541A8 @ case 6
.4byte _080541A8 @ case 7
.4byte _080541A8 @ case 8
.4byte _080541A8 @ case 9
.4byte _080541A8 @ case 10
.4byte _080541A8 @ case 11
.4byte _080541A8 @ case 12
.4byte _080541BC @ case 13
.4byte _080541BC @ case 14
.4byte _080541BA @ case 15
.4byte _080541B4 @ case 16
.4byte _080541B4 @ case 17
.4byte _080541B4 @ case 18
.4byte _080541B4 @ case 19
.4byte _080541B4 @ case 20
.4byte _080541B4 @ case 21
.4byte _080541B4 @ case 22
.4byte _080541B4 @ case 23
.4byte _080541B4 @ case 24
_080541A8:
lsls r1, r3, #5
ldr r0, _080541B0 @ =gUnk_0800137C
adds r4, r1, r0
b _080541BC
.align 2, 0
_080541B0: .4byte gUnk_0800137C
_080541B4:
lsls r1, r3, #5
ldr r0, _080541D0 @ =gUnk_0800161C
adds r2, r1, r0
_080541BA:
ldr r4, _080541D4 @ =gUnk_02034398
_080541BC:
cmp r4, #0
bne _080541C2
b _080542CC
_080541C2:
ldr r0, _080541D8 @ =gSave
adds r0, #0xb3
ldrb r1, [r0]
cmp r1, #0
bne _080541E0
ldr r3, _080541DC @ =gUnk_08001A1C
b _080541E6
.align 2, 0
_080541D0: .4byte gUnk_0800161C
_080541D4: .4byte gUnk_02034398
_080541D8: .4byte gSave
_080541DC: .4byte gUnk_08001A1C
_080541E0:
lsls r1, r1, #5
ldr r0, _080542BC @ =0x080014E4
adds r3, r1, r0
_080541E6:
mov r0, sp
adds r1, r4, #0
bl sub_08000F14
ldr r4, _080542C0 @ =gSave
adds r0, r4, #0
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, #8
bhi _08054204
mov r1, sp
mov r0, sp
ldrh r0, [r0, #8]
adds r0, #5
strh r0, [r1, #8]
_08054204:
adds r0, r4, #0
adds r0, #0xac
ldrb r0, [r0]
cmp r0, #0
bne _08054218
mov r1, sp
mov r0, sp
ldrh r0, [r0, #0xc]
adds r0, #3
strh r0, [r1, #0xc]
_08054218:
adds r0, r4, #0
adds r0, #0xad
ldrb r0, [r0]
cmp r0, #0
bne _0805422C
mov r1, sp
mov r0, sp
ldrh r0, [r0, #0xe]
adds r0, #3
strh r0, [r1, #0xe]
_0805422C:
adds r0, r4, #0
adds r0, #0xc0
ldrh r0, [r0]
cmp r0, #0xa
bhi _08054240
mov r1, sp
mov r0, sp
ldrh r0, [r0, #4]
adds r0, #1
strh r0, [r1, #4]
_08054240:
ldr r2, _080542C4 @ =gUnk_08001A1C
adds r0, r4, #0
adds r0, #0xbb
ldrb r0, [r0]
adds r3, r2, #0
cmp r0, #0
beq _08054250
adds r2, #0x20
_08054250:
movs r1, #0x8b
lsls r1, r1, #1
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, #0
beq _0805425E
adds r3, #0x40
_0805425E:
mov r0, sp
mov r1, sp
bl sub_08000F2C
adds r4, r0, #0
bl Random
adds r2, r0, #0
asrs r5, r2, #0x18
movs r0, #0xf
ands r5, r0
adds r0, r2, #0
adds r1, r4, #0
bl __modsi3
adds r2, r0, #0
movs r3, #0
lsls r0, r5, #1
add r0, sp
movs r4, #0
ldrsh r1, [r0, r4]
cmp r1, r2
bgt _080542A6
movs r4, #0xf
_0805428E:
adds r3, #1
adds r5, #1
ands r5, r4
cmp r3, #0xf
bhi _080542A6
lsls r0, r5, #1
add r0, sp
movs r7, #0
ldrsh r0, [r0, r7]
adds r1, r1, r0
cmp r1, r2
ble _0805428E
_080542A6:
ldr r0, _080542C8 @ =gUnk_080FE1B4
adds r0, r5, r0
ldrb r1, [r0]
cmp r1, #0
beq _080542CC
adds r0, r6, #0
movs r2, #0
bl CreateItemDrop
b _080542CE
.align 2, 0
_080542BC: .4byte 0x080014E4
_080542C0: .4byte gSave
_080542C4: .4byte gUnk_08001A1C
_080542C8: .4byte gUnk_080FE1B4
_080542CC:
movs r0, #0
_080542CE:
add sp, #0x20
pop {r4, r5, r6, r7, pc}
.align 2, 0
.syntax divided
+56
View File
@@ -0,0 +1,56 @@
.syntax unified
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
mov r8, r0
adds r4, r1, #0
bl sub_0805E5A8
ldr r5, _080575E8 @ =gUnk_03004030
ldrb r0, [r5, #9]
strb r0, [r5, #0xa]
ldr r3, _080575EC @ =gRoomControls
ldrb r0, [r3, #4]
strb r0, [r5, #9]
ldr r1, _080575F0 @ =gScreenTransition
ldrb r0, [r4, #4]
strb r0, [r1, #0xc]
ldrb r0, [r4, #5]
strb r0, [r1, #0xd]
ldrb r0, [r4, #4]
strb r0, [r3, #4]
ldrb r0, [r4, #5]
strb r0, [r3, #5]
str r4, [r5]
ldr r6, _080575F4 @ =gPlayerEntity
ldrh r1, [r6, #0x2e]
ldrh r0, [r3, #6]
subs r1, r1, r0
ldrh r2, [r4]
movs r0, #0x3f
ands r0, r2
lsls r0, r0, #4
subs r1, r1, r0
strh r1, [r5, #4]
ldrh r1, [r6, #0x32]
ldrh r0, [r3, #8]
subs r1, r1, r0
ldrh r2, [r4]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r2
lsrs r0, r0, #2
subs r1, r1, r0
strh r1, [r5, #6]
ldrb r0, [r4, #3]
bl sub_08080930
mov r0, r8
bl DeleteManager
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_080575E8: .4byte gUnk_03004030
_080575EC: .4byte gRoomControls
_080575F0: .4byte gScreenTransition
_080575F4: .4byte gPlayerEntity
.syntax divided
+37
View File
@@ -0,0 +1,37 @@
.syntax unified
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r0, _080579F0 @ =gUnk_081081E4
adds r0, r4, r0
ldrb r0, [r0]
bl LoadPaletteGroup
lsls r1, r4, #6
ldr r0, _080579F4 @ =gUnk_081080A4
adds r1, r1, r0
movs r3, #0
ldr r2, _080579F8 @ =0x040000D4
ldr r6, _080579FC @ =gGlobalGfxAndPalettes
ldr r5, _08057A00 @ =0x84000400
_080579D4:
ldr r0, [r1]
adds r0, r0, r6
str r0, [r2]
ldr r0, [r1, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
adds r3, #1
adds r1, #8
cmp r3, #7
bls _080579D4
ldr r0, _08057A04 @ =gRoomVars
strb r4, [r0, #0x10]
pop {r4, r5, r6, pc}
.align 2, 0
_080579F0: .4byte gUnk_081081E4
_080579F4: .4byte gUnk_081080A4
_080579F8: .4byte 0x040000D4
_080579FC: .4byte gGlobalGfxAndPalettes
_08057A00: .4byte 0x84000400
_08057A04: .4byte gRoomVars
.syntax divided
+24
View File
@@ -0,0 +1,24 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
bl sub_08050384
adds r4, #0x68
movs r1, #0
ldrsh r0, [r4, r1]
ldr r1, _0806E520 @ =gUnk_020227E8
ldr r2, _0806E524 @ =0x00202020
bl sub_08057044
ldr r0, _0806E528 @ =0x00003302
ldr r1, _0806E52C @ =gUnk_081146B8
bl sub_0805F46C
ldr r1, _0806E530 @ =gScreen
movs r0, #1
strh r0, [r1, #0xe]
pop {r4, pc}
.align 2, 0
_0806E520: .4byte gUnk_020227E8
_0806E524: .4byte 0x00202020
_0806E528: .4byte 0x00003302
_0806E52C: .4byte gUnk_081146B8
_0806E530: .4byte gScreen
.syntax divided
+98
View File
@@ -0,0 +1,98 @@
.syntax unified
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x54]
cmp r5, #0
bne _080A984A
bl DeleteThisEntity
_080A984A:
ldr r0, [r5, #4]
cmp r0, #0
bne _080A9856
bl DeleteThisEntity
b _080A989A
_080A9856:
ldrh r0, [r5, #0x12]
ldrb r1, [r5, #0x1e]
bl GetSpriteSubEntryOffsetDataPointer
adds r3, r0, #0
ldrb r1, [r5, #0x14]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _080A9884
movs r2, #0
ldrsb r2, [r3, r2]
rsbs r2, r2, #0
lsls r2, r2, #0x10
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl PositionRelative
b _080A989A
_080A9884:
movs r2, #0
ldrsb r2, [r3, r2]
lsls r2, r2, #0x10
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl PositionRelative
_080A989A:
adds r0, r5, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
bne _080A98F8
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _080A98B0
subs r0, #1
strb r0, [r4, #0xf]
b _080A98F8
_080A98B0:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A98F8
movs r0, #4
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x82
movs r0, #3
strb r0, [r1]
movs r2, #0x40
movs r0, #0x40
strb r0, [r4, #0xf]
ldrb r0, [r5, #0x14]
lsls r1, r0, #2
strb r1, [r4, #0x15]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1a
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x1b]
ldr r0, _080A98FC @ =gUnk_080FD150
str r0, [r4, #0x48]
adds r0, r4, #0
movs r1, #0
bl sub_080AA3E0
_080A98F8:
pop {r4, r5, pc}
.align 2, 0
_080A98FC: .4byte gUnk_080FD150
.syntax divided
+148 -1
View File
@@ -1,7 +1,154 @@
.syntax unified
.ifdef EU
.incbin "baserom_eu.gba", 0x06E3DC, 0x000011C @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r2, r1, #0
ldr r4, _0806E3F8 @ =gInput
ldrh r1, [r4, #2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0806E3FC
bl sub_08050384
b _0806E4EA
.align 2, 0
_0806E3F8: .4byte gInput
_0806E3FC:
ldrb r0, [r2, #0x18]
adds r1, r0, #0
mov r6, r8
adds r6, #0x6c
cmp r1, #0
bne _0806E414
adds r0, #1
strb r0, [r2, #0x18]
strh r1, [r6]
mov r0, r8
bl sub_0806EABC
_0806E414:
ldrh r2, [r4, #4]
movs r0, #0xc0
ands r0, r2
cmp r0, #0
beq _0806E466
mov r1, r8
adds r1, #0x68
movs r0, #0
ldrsh r4, [r1, r0]
movs r0, #0x40
ands r0, r2
adds r7, r1, #0
cmp r0, #0
beq _0806E434
adds r4, #1
b _0806E436
_0806E434:
subs r4, #1
_0806E436:
cmp r4, #0
bgt _0806E43C
movs r4, #1
_0806E43C:
movs r5, #0x1c
movs r0, #0x55
bl CheckGlobalFlag
cmp r0, #0
beq _0806E44A
movs r5, #0x34
_0806E44A:
cmp r4, r5
ble _0806E450
adds r4, r5, #0
_0806E450:
strh r4, [r7]
mov r0, r8
bl sub_0806EABC
ldrh r1, [r6]
movs r2, #0
ldrsh r0, [r6, r2]
cmp r0, #0
ble _0806E466
subs r0, r1, #1
strh r0, [r6]
_0806E466:
ldr r0, _0806E4B4 @ =gInput
ldrh r1, [r0, #2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0806E4C6
mov r5, r8
adds r5, #0x68
mov r7, r8
adds r7, #0x6a
movs r0, #0
ldrsh r1, [r5, r0]
movs r2, #0
ldrsh r0, [r7, r2]
cmp r1, r0
bne _0806E48E
movs r1, #0
ldrsh r0, [r6, r1]
cmp r0, #0
bne _0806E4BC
_0806E48E:
ldr r4, _0806E4B8 @ =gUnk_081145E4
movs r2, #0
ldrsh r0, [r5, r2]
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0
ldrsh r0, [r0, r1]
bl SoundReq
ldrh r0, [r5]
strh r0, [r7]
movs r2, #0
ldrsh r0, [r5, r2]
lsls r0, r0, #2
adds r4, #2
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r6]
b _0806E4C6
.align 2, 0
_0806E4B4: .4byte gInput
_0806E4B8: .4byte gUnk_081145E4
_0806E4BC:
ldr r0, _0806E4F0 @ =0x80010000
bl SoundReq
movs r0, #0
strh r0, [r7]
_0806E4C6:
ldrh r1, [r6]
movs r2, #0
ldrsh r0, [r6, r2]
cmp r0, #0
ble _0806E4E4
subs r0, r1, #1
movs r1, #0
strh r0, [r6]
lsls r0, r0, #0x10
cmp r0, #0
bgt _0806E4E4
mov r0, r8
adds r0, #0x6a
strh r1, [r0]
strh r1, [r6]
_0806E4E4:
ldr r1, _0806E4F4 @ =gActiveScriptInfo
movs r0, #0
strb r0, [r1, #6]
_0806E4EA:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0806E4F0: .4byte 0x80010000
_0806E4F4: .4byte gActiveScriptInfo
.else
push {r4, r5, r6, r7, lr}
mov r7, sb
+178 -1
View File
@@ -1,7 +1,184 @@
.syntax unified
.ifdef EU
.incbin "baserom_eu.gba", 0x064DE8, 0x0000164 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r4, r0, #0
mov r8, r1
movs r6, #1
ldr r0, _08064E14 @ =gRoomVars
ldrb r5, [r0, #6]
movs r0, #0
mov sb, r0
cmp r5, #0x66
beq _08064E8E
cmp r5, #0x66
bhi _08064E1E
cmp r5, #0x61
beq _08064E94
cmp r5, #0x61
bhi _08064E18
cmp r5, #0xd
beq _08064E44
b _08064EAA
.align 2, 0
_08064E14: .4byte gRoomVars
_08064E18:
cmp r5, #0x64
beq _08064E88
b _08064EAA
_08064E1E:
cmp r5, #0x6c
blo _08064EAA
cmp r5, #0x6d
bls _08064E60
cmp r5, #0x6f
bhi _08064EAA
ldr r2, _08064E3C @ =gQuiverSizes
ldr r1, _08064E40 @ =gSave
adds r0, r1, #0
adds r0, #0xaf
ldrb r0, [r0]
adds r0, r0, r2
adds r1, #0xad
b _08064E6E
.align 2, 0
_08064E3C: .4byte gQuiverSizes
_08064E40: .4byte gSave
_08064E44:
movs r0, #0xd
bl GetInventoryValue
cmp r0, #0
bne _08064E58
movs r0, #0xe
bl GetInventoryValue
cmp r0, #0
beq _08064EAA
_08064E58:
ldr r0, _08064E5C @ =0x00002C0B
b _08064F32
.align 2, 0
_08064E5C: .4byte 0x00002C0B
_08064E60:
ldr r2, _08064E7C @ =gBombBagSizes
ldr r1, _08064E80 @ =gSave
adds r0, r1, #0
adds r0, #0xae
ldrb r0, [r0]
adds r0, r0, r2
adds r1, #0xac
_08064E6E:
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bhi _08064EAA
ldr r0, _08064E84 @ =0x00002C0E
b _08064F32
.align 2, 0
_08064E7C: .4byte gBombBagSizes
_08064E80: .4byte gSave
_08064E84: .4byte 0x00002C0E
_08064E88:
movs r1, #0x55
mov sb, r1
b _08064EAA
_08064E8E:
movs r0, #0x56
mov sb, r0
b _08064EAA
_08064E94:
ldr r0, _08064F04 @ =gSave
adds r0, #0xc2
ldrh r1, [r0]
ldr r0, _08064F08 @ =0x000003E6
cmp r1, r0
bls _08064EAA
ldr r0, _08064F0C @ =0x00002C0E
adds r1, r4, #0
bl TextboxNoOverlap
movs r6, #0
_08064EAA:
cmp r6, #0
beq _08064F38
adds r0, r5, #0
bl GetItemPrice
adds r6, r0, #0
ldr r7, _08064F04 @ =gSave
adds r0, r7, #0
adds r0, #0xc0
ldrh r0, [r0]
cmp r6, r0
bhi _08064F30
rsbs r0, r6, #0
bl ModRupees
ldr r4, _08064F10 @ =gRoomVars
ldrb r1, [r4, #7]
adds r0, r5, #0
movs r2, #2
bl sub_080A7C18
movs r0, #0
strb r0, [r4, #6]
strb r0, [r4, #7]
movs r0, #1
mov r1, r8
str r0, [r1, #0x14]
mov r0, sb
cmp r0, #0
beq _08064EEA
bl SetLocalFlag
_08064EEA:
ldr r1, [r7, #0x5c]
movs r0, #2
rsbs r0, r0, #0
cmp r1, r0
bhi _08064EF8
adds r0, r1, #1
str r0, [r7, #0x5c]
_08064EF8:
ldr r0, [r7, #0x5c]
cmp r0, #9
bls _08064F18
ldr r0, _08064F14 @ =0x00002C11
b _08064F26
.align 2, 0
_08064F04: .4byte gSave
_08064F08: .4byte 0x000003E6
_08064F0C: .4byte 0x00002C0E
_08064F10: .4byte gRoomVars
_08064F14: .4byte 0x00002C11
_08064F18:
cmp r6, #0x63
bls _08064F24
ldr r0, _08064F20 @ =0x00002C10
b _08064F26
.align 2, 0
_08064F20: .4byte 0x00002C10
_08064F24:
ldr r0, _08064F2C @ =0x00002C0F
_08064F26:
mov r1, r8
str r0, [r1, #4]
b _08064F3E
.align 2, 0
_08064F2C: .4byte 0x00002C0F
_08064F30:
ldr r0, _08064F48 @ =0x00002C0D
_08064F32:
adds r1, r4, #0
bl TextboxNoOverlap
_08064F38:
movs r0, #0
mov r1, r8
str r0, [r1, #0x14]
_08064F3E:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08064F48: .4byte 0x00002C0D
.else
push {r4, r5, r6, r7, lr}
mov r7, sb
+100 -1
View File
@@ -31,7 +31,106 @@ _08089870: .4byte gUnk_08120D90
thumb_func_start sub_08089874
sub_08089874: @ 0x08089874
.ifdef EU
.incbin "baserom_eu.gba", 0x089184, 0x00000C4 @TODO disassemble
push {r4, lr}
adds r4, r0, #0
adds r0, #0x38
movs r2, #3
strb r2, [r0]
ldrb r1, [r4, #0xb]
cmp r1, #0
bne _08089200
ldrb r0, [r4, #0xa]
cmp r0, #0x80
bne _080891B4
strb r2, [r4, #0xc]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
adds r0, r4, #0
bl sub_08089AE0
b _08089246
_080891B4:
str r1, [r4, #0x50]
adds r0, r4, #0
movs r1, #0x29
movs r2, #0
movs r3, #0xff
bl CreateObjectWithParent
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080891FA
_080891C8:
ldrb r3, [r4, #0xa]
adds r0, r4, #0
movs r1, #0x29
movs r2, #0
bl CreateObjectWithParent
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _080891EE
ldr r0, [r4, #0x50]
str r0, [r1, #0x50]
ldr r1, [r4, #0x50]
cmp r1, #0
beq _080891EA
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
_080891EA:
ldr r0, [r4, #0x54]
str r0, [r4, #0x50]
_080891EE:
ldrb r0, [r4, #0xa]
subs r0, #1
strb r0, [r4, #0xa]
lsls r0, r0, #0x18
cmp r0, #0
bne _080891C8
_080891FA:
bl DeleteThisEntity
b _08089246
_08089200:
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, [r4, #0x50]
cmp r0, #0
bne _08089214
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
b _0808921C
_08089214:
adds r0, r4, #0
movs r1, #1
bl InitializeAnimation
_0808921C:
ldrb r0, [r4, #0xb]
cmp r0, #0xff
bne _0808923A
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A30
adds r0, r4, #0
movs r1, #0x15
bl sub_0801D2B4
b _08089246
_0808923A:
ldrb r1, [r4, #0xb]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
rsbs r0, r0, #0
strh r0, [r4, #0x36]
_08089246:
pop {r4, pc}
.else
push {r4, r5, lr}
adds r4, r0, #0
+81 -1
View File
@@ -729,7 +729,87 @@ sub_08094F98: @ 0x08094F98
thumb_func_start sub_08094FA8
sub_08094FA8: @ 0x08094FA8
.ifdef EU
.incbin "baserom_eu.gba", 0x09487C, 0x000009C @TODO disassemble
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #1
beq _080948B4
cmp r1, #1
bgt _08094890
cmp r1, #0
beq _0809489A
b _08094912
_08094890:
cmp r1, #2
beq _080948E0
cmp r1, #3
beq _080948FC
b _08094912
_0809489A:
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_080787B4
b _08094912
_080948B4:
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08094912
movs r0, #0
strb r0, [r1]
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080788E0
ldr r0, _080948DC @ =gPlayerState
movs r1, #0xc
strb r1, [r0, #0xc]
adds r0, #0x38
movs r1, #0x36
strb r1, [r0]
b _08094912
.align 2, 0
_080948DC: .4byte gPlayerState
_080948E0:
movs r0, #0x36
bl GetInventoryValue
cmp r0, #2
bne _08094912
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
b _08094912
_080948FC:
ldr r0, _08094914 @ =gPlayerEntity
ldrb r0, [r0, #0xc]
cmp r0, #0xc
beq _08094912
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x1c
movs r1, #0
movs r2, #0
bl CreateItemEntity
_08094912:
pop {r4, pc}
.align 2, 0
_08094914: .4byte gPlayerEntity
.else
push {r4, lr}
adds r4, r0, #0
+139 -1
View File
@@ -29,7 +29,145 @@ _080A1700: .4byte gUnk_08124ED0
thumb_func_start sub_080A1704
sub_080A1704: @ 0x080A1704
.ifdef EU
.incbin "baserom_eu.gba", 0x0A0F40, 0x0000128 @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sl, r0
movs r0, #0x7b
bl CheckFlags
cmp r0, #0
beq _080A0F5A
bl DeleteThisEntity
_080A0F5A:
ldr r0, _080A1050 @ =gEntCount
ldrb r0, [r0]
cmp r0, #0x45
bhi _080A1044
movs r0, #0x40
bl zMalloc
adds r7, r0, #0
cmp r7, #0
beq _080A1044
movs r6, #0
movs r0, #1
mov sb, r0
mov r2, sb
mov r1, sl
strb r2, [r1, #0xc]
str r7, [r1, #0x64]
adds r1, #0x6e
movs r3, #0
mov r8, r3
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
mov r0, sl
adds r0, #0x6c
strh r6, [r0]
mov r0, sl
str r0, [r7]
movs r0, #0x5c
movs r1, #0
bl CreateEnemy
adds r1, r0, #0
str r7, [r1, #0x64]
str r1, [r7, #4]
movs r0, #0x5d
movs r1, #0
bl CreateEnemy
adds r1, r0, #0
ldr r4, _080A1054 @ =gRoomControls
movs r2, #0x80
lsls r2, r2, #2
adds r5, r2, #0
ldrh r3, [r4, #6]
adds r0, r5, r3
strh r0, [r1, #0x2e]
movs r2, #0xe0
lsls r2, r2, #2
adds r0, r2, #0
ldrh r3, [r4, #8]
adds r0, r0, r3
strh r0, [r1, #0x32]
str r7, [r1, #0x64]
str r1, [r7, #8]
movs r0, #0x5d
movs r1, #1
bl CreateEnemy
adds r1, r0, #0
movs r2, #0x98
lsls r2, r2, #2
adds r0, r2, #0
ldrh r3, [r4, #6]
adds r0, r0, r3
strh r0, [r1, #0x2e]
movs r2, #0xd8
lsls r2, r2, #2
adds r0, r2, #0
ldrh r3, [r4, #8]
adds r0, r0, r3
strh r0, [r1, #0x32]
str r7, [r1, #0x64]
str r1, [r7, #0xc]
ldr r2, _080A1058 @ =gScreen
ldr r0, _080A105C @ =0x00001E07
strh r0, [r2, #0x2c]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
mov r0, sl
adds r0, #0x70
strh r6, [r0]
adds r0, #2
strh r6, [r0]
adds r0, #2
mov r1, r8
strb r1, [r0]
adds r0, #6
strb r1, [r0]
subs r0, #4
movs r1, #0xc0
strh r1, [r0]
adds r0, #2
strh r1, [r0]
ldr r0, _080A1060 @ =gScreenTransition
adds r0, #0x39
mov r2, sb
strb r2, [r0]
ldr r2, _080A1064 @ =gPlayerState
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xa
orrs r0, r1
str r0, [r2, #0x30]
ldrh r3, [r4, #6]
adds r5, r5, r3
strh r5, [r2, #0x16]
movs r1, #0x84
lsls r1, r1, #2
adds r0, r1, #0
ldrh r4, [r4, #8]
adds r0, r0, r4
strh r0, [r2, #0x18]
_080A1044:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A1050: .4byte gEntCount
_080A1054: .4byte gRoomControls
_080A1058: .4byte gScreen
_080A105C: .4byte 0x00001E07
_080A1060: .4byte gScreenTransition
_080A1064: .4byte gPlayerState
.else
push {r4, r5, r6, r7, lr}
mov r7, sl
+492 -2
View File
@@ -177,10 +177,500 @@ _080352FA:
thumb_func_start sub_080352FC
sub_080352FC: @ 0x080352FC
.ifdef JP
.incbin "baserom_jp.gba", 0x0352a0, 0x1fc @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
adds r0, #0x7c
ldrb r0, [r0]
movs r6, #1
adds r4, r6, #0
ands r4, r0
cmp r4, #0
bne _08035390
adds r0, r5, #0
adds r0, #0x84
ldr r1, [r0]
ldr r1, [r1, #0xc]
adds r1, #0x7d
ldrb r2, [r1]
mov sb, r0
cmp r2, #0
beq _080352D0
subs r0, r2, #1
strb r0, [r1]
_080352D0:
ldr r3, _08035334 @ =gRoomControls
movs r0, #0x84
lsls r0, r0, #1
adds r1, r0, #0
ldrh r0, [r3, #6]
adds r1, r1, r0
ldrh r0, [r5, #0x2e]
subs r1, r1, r0
adds r1, #4
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldrh r0, [r3, #8]
ldrh r2, [r5, #0x32]
subs r0, r0, r2
adds r0, #0x8c
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, #8
bhi _080352FAJP
cmp r0, #8
bls _08035338
_080352FAJP:
mov r1, sb
ldr r0, [r1]
strb r6, [r0, #2]
ldrh r0, [r3, #6]
movs r1, #0x84
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x10
ldr r1, [r5, #0x2c]
subs r0, r0, r1
ldrh r1, [r3, #8]
adds r1, #0x88
lsls r1, r1, #0x10
ldr r2, [r5, #0x30]
subs r1, r1, r2
bl sub_080045DA
asrs r0, r0, #3
strb r0, [r5, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r5, #0x24]
adds r0, r5, #0
bl ProcessMovement
adds r7, r5, #0
adds r7, #0x79
b _080353FA
.align 2, 0
_08035334: .4byte gRoomControls
_08035338:
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _0803537C
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #0
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #1
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #2
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #3
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #4
bl CreateObjectWithParent
strb r6, [r5, #0xb]
_0803537C:
mov r1, sb
ldr r0, [r1]
strb r4, [r0, #2]
adds r1, r5, #0
adds r1, #0x79
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
adds r7, r1, #0
b _080353FA
_08035390:
adds r0, r5, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r1, [r1, #1]
subs r4, r1, #1
mov sb, r0
adds r7, r5, #0
adds r7, #0x79
cmp r4, #0
beq _080353DC
mov ip, sb
movs r0, #1
mov sl, r0
lsls r0, r4, #2
subs r6, r0, #4
movs r1, #3
mov r8, r1
_080353B2:
mov r1, ip
ldr r0, [r1]
adds r0, #0xc
adds r0, r0, r6
ldr r3, [r0]
ldrb r2, [r3, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
mov r0, sl
orrs r1, r0
mov r0, r8
ands r1, r0
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
subs r6, #4
subs r4, #1
cmp r4, #0
bne _080353B2
_080353DC:
ldr r1, _08035450 @ =gScreenTransition
ldr r0, [r1]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _080353F4
adds r0, r5, #0
movs r1, #0x87
movs r2, #6
movs r3, #0
bl CreateObjectWithParent
_080353F4:
ldrb r0, [r7]
subs r0, #1
strb r0, [r7]
_080353FA:
ldrb r0, [r7]
cmp r0, #0
bne _0803548C
movs r0, #2
strb r0, [r5, #0xd]
adds r4, r5, #0
adds r4, #0x7c
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
adds r0, r5, #0
bl sub_080AE068
ldrb r1, [r4]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08035454
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0x5f
strb r0, [r1]
movs r1, #0x84
lsls r1, r1, #1
adds r0, r5, #0
bl LoadFixedGFX
adds r0, r5, #0
movs r1, #0xef
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #0xef
bl sub_08036F14
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0xc]
movs r1, #1
bl InitAnimationForceUpdate
b _08035480
.align 2, 0
_08035450: .4byte gScreenTransition
_08035454:
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0x61
strb r0, [r1]
ldr r1, _08035498 @ =0x00000109
adds r0, r5, #0
bl LoadFixedGFX
adds r0, r5, #0
movs r1, #0xf0
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #0xf3
bl sub_08036F14
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0xc]
movs r1, #2
bl InitAnimationForceUpdate
_08035480:
adds r0, r5, #0
movs r1, #0x87
movs r2, #8
movs r3, #0
bl CreateObjectWithParent
_0803548C:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08035498: .4byte 0x00000109
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x03527C, 0x1fc @TODO disassemble same as JP
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
adds r0, #0x7c
ldrb r0, [r0]
movs r6, #1
adds r4, r6, #0
ands r4, r0
cmp r4, #0
bne _0803536C
adds r0, r5, #0
adds r0, #0x84
ldr r1, [r0]
ldr r1, [r1, #0xc]
adds r1, #0x7d
ldrb r2, [r1]
mov sb, r0
cmp r2, #0
beq _080352AC
subs r0, r2, #1
strb r0, [r1]
_080352AC:
ldr r3, _08035310 @ =gRoomControls
movs r0, #0x84
lsls r0, r0, #1
adds r1, r0, #0
ldrh r0, [r3, #6]
adds r1, r1, r0
ldrh r0, [r5, #0x2e]
subs r1, r1, r0
adds r1, #4
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldrh r0, [r3, #8]
ldrh r2, [r5, #0x32]
subs r0, r0, r2
adds r0, #0x8c
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, #8
bhi _080352D6
cmp r0, #8
bls _08035314
_080352D6:
mov r1, sb
ldr r0, [r1]
strb r6, [r0, #2]
ldrh r0, [r3, #6]
movs r1, #0x84
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #0x10
ldr r1, [r5, #0x2c]
subs r0, r0, r1
ldrh r1, [r3, #8]
adds r1, #0x88
lsls r1, r1, #0x10
ldr r2, [r5, #0x30]
subs r1, r1, r2
bl sub_080045DA
asrs r0, r0, #3
strb r0, [r5, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r5, #0x24]
adds r0, r5, #0
bl ProcessMovement
adds r7, r5, #0
adds r7, #0x79
b _080353D6
.align 2, 0
_08035310: .4byte gRoomControls
_08035314:
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _08035358
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #0
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #1
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #2
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #3
bl CreateObjectWithParent
adds r0, r5, #0
movs r1, #0x87
movs r2, #5
movs r3, #4
bl CreateObjectWithParent
strb r6, [r5, #0xb]
_08035358:
mov r1, sb
ldr r0, [r1]
strb r4, [r0, #2]
adds r1, r5, #0
adds r1, #0x79
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
adds r7, r1, #0
b _080353D6
_0803536C:
adds r0, r5, #0
adds r0, #0x84
ldr r1, [r0]
ldrb r1, [r1, #1]
subs r4, r1, #1
mov sb, r0
adds r7, r5, #0
adds r7, #0x79
cmp r4, #0
beq _080353B8
mov ip, sb
movs r0, #1
mov sl, r0
lsls r0, r4, #2
subs r6, r0, #4
movs r1, #3
mov r8, r1
_0803538E:
mov r1, ip
ldr r0, [r1]
adds r0, #0xc
adds r0, r0, r6
ldr r3, [r0]
ldrb r2, [r3, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
mov r0, sl
orrs r1, r0
mov r0, r8
ands r1, r0
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
subs r6, #4
subs r4, #1
cmp r4, #0
bne _0803538E
_080353B8:
ldr r1, _0803542C @ =gScreenTransition
ldr r0, [r1]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _080353D0
adds r0, r5, #0
movs r1, #0x87
movs r2, #6
movs r3, #0
bl CreateObjectWithParent
_080353D0:
ldrb r0, [r7]
subs r0, #1
strb r0, [r7]
_080353D6:
ldrb r0, [r7]
cmp r0, #0
bne _08035468
movs r0, #2
strb r0, [r5, #0xd]
adds r4, r5, #0
adds r4, #0x7c
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
adds r0, r5, #0
bl sub_080AE068
ldrb r1, [r4]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08035430
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0x5f
strb r0, [r1]
movs r1, #0x84
lsls r1, r1, #1
adds r0, r5, #0
bl LoadFixedGFX
adds r0, r5, #0
movs r1, #0xef
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #0xef
bl sub_08036F14
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0xc]
movs r1, #1
bl InitAnimationForceUpdate
b _0803545C
.align 2, 0
_0803542C: .4byte gScreenTransition
_08035430:
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0x61
strb r0, [r1]
ldr r1, _08035474 @ =0x00000109
adds r0, r5, #0
bl LoadFixedGFX
adds r0, r5, #0
movs r1, #0xf0
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #0xf3
bl sub_08036F14
mov r1, sb
ldr r0, [r1]
ldr r0, [r0, #0xc]
movs r1, #2
bl InitAnimationForceUpdate
_0803545C:
adds r0, r5, #0
movs r1, #0x87
movs r2, #8
movs r3, #0
bl CreateObjectWithParent
_08035468:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08035474: .4byte 0x00000109
.else
push {r4, r5, r6, r7, lr}
mov r7, sl
+436 -7
View File
@@ -206,19 +206,448 @@ _080A3200:
// DEMO only functions
.ifdef DEMO
thumb_func_start HandleChooseDemoScreen
thumb_func_start HandleChooseDemoScreen
HandleChooseDemoScreen: @ 0x080A2E18
.incbin "baserom_demo.gba", 0x0a2e18, 0x28 @TODO disassemble
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
.incbin "baserom_demo.gba", 0x0a2e40, 0x14c @TODO disassemble
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
thumb_func_start sub_080A2F8C
sub_080A2F8C: @ 0x080A2F8C
.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 @TODO disassemble
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
thumb_func_start sub_080A2FD0
sub_080A2FD0: @ 0x080A2FD0
.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 @TODO disassemble
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
+101 -1
View File
@@ -67,7 +67,107 @@ _0801B4C4: .4byte 0xFFFFE000
thumb_func_start sub_0801B4C8
sub_0801B4C8: @ 0x0801B4C8
.ifdef EU
.incbin "baserom_eu.gba", 0x01B4F4, 0xc8 @ TODO disassemble
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _0801B564 @ =gPlayerState
str r4, [r3, #0x2c]
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _0801B568 @ =gUnk_081271CC
str r0, [r4, #0x48]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
ldr r5, _0801B56C @ =gPlayerEntity
adds r0, r5, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
adds r1, r4, #0
adds r1, #0x58
movs r0, #0xb
strb r0, [r1]
str r5, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x86
strh r2, [r0]
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B550
ldrb r0, [r5, #0x18]
lsls r0, r0, #0x19
lsrs r0, r0, #0x1f
movs r1, #1
bics r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0801B550:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B570
movs r0, #0xa0
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x3c
b _0801B578
.align 2, 0
_0801B564: .4byte gPlayerState
_0801B568: .4byte gUnk_081271CC
_0801B56C: .4byte gPlayerEntity
_0801B570:
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x1e
_0801B578:
strb r0, [r4, #0xe]
ldrb r1, [r3, #0xd]
movs r0, #0xd
ldrsb r0, [r3, r0]
cmp r0, #0
blt _0801B588
strb r1, [r4, #0x15]
b _0801B58E
_0801B588:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_0801B58E:
ldrb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x83
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _0801B5A4
movs r0, #1
strb r0, [r4, #0xb]
_0801B5A4:
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0801B584
pop {r4, r5, pc}
.else
push {r4, r5, lr}
adds r4, r0, #0
+5 -5
View File
@@ -107,13 +107,13 @@ _0807CA04:
str r0, [r2, #0x00]
movs r0, #0x01
pop {r4, r5, r6, pc}
_0807CA38: .4byte 0x02002A40 @TODO ptr
_0807CA3C: .4byte 0x0811DFF4 @TODO ptr
_0807CA40: .4byte 0x0811EF10 @TODO ptr
_0807CA38: .4byte gSave
_0807CA3C: .4byte gUnk_0811E470
_0807CA40: .4byte demoPointers
_0807CA44: .4byte 0x000004B4
_0807CA48: .4byte 0xFFFFD8F1
_0807CA4C: .4byte 0x02000010 @TODO ptr
_0807CA50: .4byte 0x0811DFF9 @TODO ptr
_0807CA4C: .4byte gUnk_02000010
_0807CA50: .4byte demoUnknown1
.else
thumb_func_start sub_0807CA18
sub_0807CA18: @ 0x0807CA18
+34 -2
View File
@@ -3165,10 +3165,42 @@ _08043C8C:
thumb_func_start sub_08043C98
sub_08043C98: @ 0x08043C98
.ifdef JP
.incbin "baserom_jp.gba", 0x043BB0, 0x20 @TODO disassemble
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x64]
ldr r0, [r0, #0xc]
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9d
beq _08043BC4JP
movs r0, #0
b _08043BCC
_08043BC4JP:
adds r0, r1, #0
bl sub_08043D08
movs r0, #1
_08043BCC:
pop {pc}
.align 2, 0
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x043AC4, 0x20 @TODO same as JP
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x64]
ldr r0, [r0, #0xc]
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9d
beq _08043AD8
movs r0, #0
b _08043AE0
_08043AD8:
adds r0, r1, #0
bl sub_08043D08
movs r0, #1
_08043AE0:
pop {pc}
.align 2, 0
.else
push {lr}
adds r3, r0, #0
+78 -2
View File
@@ -52,7 +52,57 @@ _0803E0D8: .4byte gUnk_080D0660
thumb_func_start sub_0803E0DC
sub_0803E0DC: @ 0x0803E0DC
.ifdef EU
.incbin "baserom_eu.gba", 0x03E038, 0x68 @TODO disassemble
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _0803E08E
movs r0, #5
strb r0, [r5, #0xc]
ldrb r2, [r5, #0x10]
movs r1, #0x7f
adds r0, r1, #0
ands r0, r2
strb r0, [r5, #0x10]
adds r3, r5, #0
adds r3, #0x29
ldrb r2, [r3]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
strb r0, [r3]
ldr r3, _0803E098 @ =gPlayerEntity
ldrb r0, [r3, #0x10]
ands r1, r0
strb r1, [r3, #0x10]
ldrb r2, [r5, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r4, [r3, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r4
orrs r0, r2
strb r0, [r3, #0x1b]
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r3, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r3, #0x19]
adds r0, r5, #0
bl sub_0803E444
_0803E08E:
ldr r1, _0803E09C @ =gUnk_080D0648
adds r0, r5, #0
bl sub_0804AA30
pop {r4, r5, pc}
.align 2, 0
_0803E098: .4byte gPlayerEntity
_0803E09C: .4byte gUnk_080D0648
.else
push {r4, r5, r6, lr}
adds r5, r0, #0
@@ -560,7 +610,33 @@ _0803E49E:
thumb_func_start sub_0803E4A0
sub_0803E4A0: @ 0x0803E4A0
.ifdef EU
.incbin "baserom_eu.gba", 0x03e3b8, 0x30 @TODO disassemble
push {lr}
adds r1, r0, #0
ldr r0, _0803E3CCEU @ =gScreenTransition
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0
bne _0803E3D0EU
movs r0, #1
b _0803E3E6
.align 2, 0
_0803E3CCEU: .4byte gScreenTransition
_0803E3D0EU:
ldr r0, [r1, #0x50]
cmp r0, #0
bne _0803E3DA
movs r0, #0
b _0803E3E6
_0803E3DA:
movs r1, #0
ldr r0, [r0, #4]
cmp r0, #0
bne _0803E3E4EU
movs r1, #1
_0803E3E4EU:
adds r0, r1, #0
_0803E3E6:
pop {pc}
.else
push {lr}
adds r1, r0, #0
+110 -3
View File
@@ -65,10 +65,28 @@ _0804139C: .4byte gUnk_080D0E1C
thumb_func_start sub_080413A0
sub_080413A0: @ 0x080413A0
.ifdef JP
.incbin "baserom_jp.gba", 0x041344, 0x18 @TODO disassemble
push {lr}
ldr r2, _08041358 @ =gUnk_080D0E2C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08041358: .4byte gUnk_080D0E2C
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x041274, 0x18 @TODO same as JP
push {lr}
ldr r2, _08041288 @ =gUnk_080D0E2C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08041288: .4byte gUnk_080D0E2C
.else
push {r4, lr}
adds r4, r0, #0
@@ -1126,7 +1144,96 @@ _08041BE4: .4byte gUnk_080D0E68
thumb_func_start sub_08041BE8
sub_08041BE8: @ 0x08041BE8
.ifdef EU
.incbin "baserom_eu.gba", 0x041AB4, 0xCA @TODO disassemble
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
bl sub_08079F8C
cmp r0, #0
beq _08041B72
movs r5, #0
movs r0, #1
strb r0, [r6, #0xd]
movs r0, #0x78
strb r0, [r6, #0xe]
ldrb r1, [r6, #0x11]
movs r4, #0x10
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r1
movs r1, #3
mov r8, r1
mov r1, r8
orrs r0, r1
strb r0, [r6, #0x11]
adds r0, r6, #0
movs r1, #0xa
bl InitAnimationForceUpdate
ldr r0, [r6, #0x64]
ldr r7, [r0, #4]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #4]
ldr r7, [r0, #8]
ldrb r0, [r7, #0x11]
ands r4, r0
mov r0, r8
orrs r4, r0
strb r4, [r7, #0x11]
adds r0, r7, #0
bl sub_080AE068
ldr r1, _08041B78 @ =0x000001F5
adds r0, r7, #0
bl LoadFixedGFX
ldr r1, _08041B7C @ =0x0000016B
adds r0, r7, #0
bl sub_0801D2B4
adds r0, r7, #0
movs r1, #0x1a
bl InitializeAnimation
ldr r0, [r6, #0x64]
ldr r7, [r0, #0xc]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #0xc]
ldr r7, [r0, #0x1c]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #0x1c]
ldr r7, [r0, #0x20]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #0x20]
ldr r7, [r0, #0x24]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #0x24]
ldr r7, [r0, #0x28]
str r5, [r7, #0x64]
adds r0, r7, #0
bl DeleteEntity
ldr r0, [r6, #0x64]
str r5, [r0, #0x28]
movs r0, #2
bl sub_08078A90
_08041B72:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08041B78: .4byte 0x000001F5
_08041B7C: .4byte 0x0000016B
.else
push {r4, r5, r6, r7, lr}
mov r7, r8
+158 -1
View File
@@ -10,7 +10,164 @@
thumb_func_start WaterfallOpening
WaterfallOpening: @ 0x0809FF68
.ifdef EU
.incbin "baserom_eu.gba", 0x09F7C8, 0x000013C @TODO disassemble
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _0809F802
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r1, _0809F824 @ =gUnk_08124868
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0x78
strh r0, [r1]
_0809F802:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0809F8BC
movs r0, #0xff
bl CheckRoomFlag
cmp r0, #0
beq _0809F8FE
ldrb r2, [r4, #0xd]
cmp r2, #1
beq _0809F85A
cmp r2, #1
bgt _0809F828
cmp r2, #0
beq _0809F82E
b _0809F8AE
.align 2, 0
_0809F824: .4byte gUnk_08124868
_0809F828:
cmp r2, #2
beq _0809F88C
b _0809F8AE
_0809F82E:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809F8AE
movs r0, #0x20
strh r0, [r1]
movs r1, #1
strb r1, [r4, #0xe]
movs r0, #0
strb r0, [r4, #0xf]
strb r1, [r4, #0xd]
strb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080AE068
movs r1, #0xc6
lsls r1, r1, #1
b _0809F87E
_0809F85A:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809F8AE
movs r0, #0x2d
strh r0, [r1]
strb r2, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xd]
strb r0, [r4, #0xa]
adds r0, r4, #0
bl sub_080AE068
ldr r1, _0809F888 @ =0x0000018D
_0809F87E:
adds r0, r4, #0
bl LoadFixedGFX
b _0809F8AE
.align 2, 0
_0809F888: .4byte 0x0000018D
_0809F88C:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809F8AE
movs r0, #3
strb r0, [r4, #0xd]
ldr r1, _0809F8B8 @ =gChooseFileState
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r0, #0x73
bl SoundReq
_0809F8AE:
adds r0, r4, #0
bl sub_080A00B0
b _0809F8FE
.align 2, 0
_0809F8B8: .4byte gChooseFileState
_0809F8BC:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809F8F8
cmp r0, #2
bne _0809F8F8
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _0809F8F8
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0809F900 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x39
movs r2, #1
bl SetTileType
_0809F8F8:
adds r0, r4, #0
bl sub_080A00B0
_0809F8FE:
pop {r4, r5, pc}
.align 2, 0
_0809F900: .4byte gRoomControls
.else
push {r4, r5, lr}
adds r4, r0, #0
+223 -2
View File
@@ -116,10 +116,231 @@ _080A0FFE:
thumb_func_start sub_080A1000
sub_080A1000: @ 0x080A1000
.ifdef JP
.incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 @TODO disassemble
push {lr}
adds r1, r0, #0
ldrb r2, [r1, #0xd]
cmp r2, #1
beq _080A0DF2
cmp r2, #1
bgt _080A0DDC
cmp r2, #0
beq _080A0DE6
b _080A0E50
_080A0DDC:
cmp r2, #2
beq _080A0E00
cmp r2, #3
beq _080A0E2C
b _080A0E50
_080A0DE6:
movs r0, #0x1e
strb r0, [r1, #0xe]
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
b _080A0E8C
_080A0DF2:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0E8C
b _080A0E38
_080A0E00:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0E1E
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
movs r0, #0x1e
strb r0, [r1, #0xe]
adds r0, #0xf5
bl SoundReq
b _080A0E8C
_080A0E1E:
ldr r0, _080A0E28 @ =0x030010A0
ldr r0, [r0]
movs r1, #7
b _080A0E7A
.align 2, 0
_080A0E28: .4byte 0x030010A0
_080A0E2C:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0E44
_080A0E38:
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
movs r0, #0x1e
strb r0, [r1, #0xe]
b _080A0E8C
_080A0E44:
ldr r0, _080A0E4C @ =0x030010A0
ldr r0, [r0]
ands r0, r2
b _080A0E7C
.align 2, 0
_080A0E4C: .4byte 0x030010A0
_080A0E50:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0E74
ldrb r1, [r1, #0xb]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080A0E70 @ =0x0813AA18
adds r0, r0, r1
bl DoExitTransition
b _080A0E8C
.align 2, 0
_080A0E70: .4byte 0x0813AA18
_080A0E74:
ldr r0, _080A0E90 @ =0x030010A0
ldr r0, [r0]
movs r1, #1
_080A0E7A:
ands r0, r1
_080A0E7C:
cmp r0, #0
bne _080A0E8C
ldr r0, _080A0E94 @ =0x03001160
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_080A0E8C:
pop {pc}
.align 2, 0
_080A0E90: .4byte 0x030010A0
_080A0E94: .4byte 0x03001160
.else
.ifdef EU
.incbin "baserom_eu.gba", 0x0A084C, 0xd0 @TODO same as JP
push {lr}
adds r1, r0, #0
ldrb r2, [r1, #0xd]
cmp r2, #1
beq _080A0876
cmp r2, #1
bgt _080A0860
cmp r2, #0
beq _080A086A
b _080A08D4
_080A0860:
cmp r2, #2
beq _080A0884
cmp r2, #3
beq _080A08B0
b _080A08D4
_080A086A:
movs r0, #0x1e
strb r0, [r1, #0xe]
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
b _080A0910
_080A0876:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0910
b _080A08BC
_080A0884:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A08A2
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
movs r0, #0x1e
strb r0, [r1, #0xe]
adds r0, #0xf5
bl SoundReq
b _080A0910
_080A08A2:
ldr r0, _080A08AC @ =gScreenTransition
ldr r0, [r0]
movs r1, #7
b _080A08FE
.align 2, 0
_080A08AC: .4byte gScreenTransition
_080A08B0:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A08C8
_080A08BC:
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
movs r0, #0x1e
strb r0, [r1, #0xe]
b _080A0910
_080A08C8:
ldr r0, _080A08D0 @ =gScreenTransition
ldr r0, [r0]
ands r0, r2
b _080A0900
.align 2, 0
_080A08D0: .4byte gScreenTransition
_080A08D4:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A08F8
ldrb r1, [r1, #0xb]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080A08F4 @ =gUnk_0813ADEC
adds r0, r0, r1
bl DoExitTransition
b _080A0910
.align 2, 0
_080A08F4: .4byte gUnk_0813ADEC
_080A08F8:
ldr r0, _080A0914 @ =gScreenTransition
ldr r0, [r0]
movs r1, #1
_080A08FE:
ands r0, r1
_080A0900:
cmp r0, #0
bne _080A0910
ldr r0, _080A0918 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_080A0910:
pop {pc}
.align 2, 0
_080A0914: .4byte gScreenTransition
_080A0918: .4byte gPlayerEntity
.else
push {r4, lr}
adds r4, r0, #0
+5 -3
View File
@@ -13,13 +13,15 @@ gUnk_08127278:: @ 08127278
.ifdef DEMO
@ TODO choose demo screen
something:
demoFunctions::
.4byte sub_080A2E40
.4byte sub_080A2FD0
.4byte sub_080A2F8C
something2::
.incbin "baserom_demo.gba", 0x127c98, 0x38
gUnk_08127C98::
.incbin "baserom_demo.gba", 0x127c98, 0x30
gUnk_08127CC8::
.incbin "baserom_demo.gba", 0x127CC8, 0x8
.endif
+1 -1
View File
@@ -420,7 +420,7 @@ gUnk_08109230:: @ 08109230
gUnk_08109244:: @ 08109244
.incbin "baserom.gba", 0x109244, 0x0000004
gUnk_08109248:: @ 08109248 TODO might be a pointer array?
gUnk_08109248:: @ 08109248
.4byte gUnk_08692F60
.4byte gUnk_08692F60
.4byte gUnk_086978E0
-7
View File
@@ -2237,7 +2237,6 @@ ENUM_12AED0_LV1_CLEAR_MES:
.4byte gUnk_0812AC84
.endif
.ifndef JP
gUnk_0812B604:: @ 0812B604
.incbin "baserom.gba", 0x12B604, 0x0000008
@@ -2249,12 +2248,6 @@ gUnk_0812B614:: @ 0812B614
gUnk_0812B61C:: @ 0812B61C
.incbin "baserom.gba", 0x12B61C, 0x0000008
.else
gUnk_0812B61C::
.space 0x3c
.endif
gUnk_0812B624:: @ 0812B624
-2
View File
@@ -3955,8 +3955,6 @@ gAreaRoomMap_TempleOfDroplets_31:: @ 08105EAC
map_bottom 0x20A614+0x154, 0x1BA, 1
map_top 0x20A64C+0x1CC, 0x1BA, 1, 1
.else
@nocheckin map_bottom 0x20A614, 0x186, 1
@nocheckin map_top 0x20A64C, 0x186, 1, 1
map_bottom 0x20A784, 0x1BA, 1
map_top 0x20A834, 0x1BA, 1, 1
.endif
+91 -8
View File
@@ -3840,7 +3840,32 @@ bgmDarkHyruleCastle:: @ 08DD6BFC
bgmSecretCastleEntrance_track0:: @ 08DD6C20
.ifdef EU
.incbin "baserom_eu.gba", 0xEE2278, 0x0000073 @TODO pointers inside
.incbin "baserom_eu.gba", 0xEE2278, 0x000000B
gUnk_08EE2283::
.incbin "baserom_eu.gba", 0xEE2283, 0x000000D
gUnk_08EE2290::
.incbin "baserom_eu.gba", 0xEE2290, 0x000000F
.4byte gUnk_08EE2290
.byte 0xB3
.4byte gUnk_08EE2290
.byte 0xB3
.4byte gUnk_08EE2290
.byte 0xB3
.4byte gUnk_08EE2290
.incbin "baserom_eu.gba", 0xEE22B2, 0x0000010
.4byte gUnk_08EE2290
gUnk_08EE22C6::
.incbin "baserom_eu.gba", 0xEE22C6, 0x000000F
.4byte gUnk_08EE22C6
.byte 0xB3
.4byte gUnk_08EE22C6
.byte 0xB3
.4byte gUnk_08EE22C6
.byte 0xBB
.byte 0x3C
.byte 0xB2
.4byte gUnk_08EE2283
.byte 0xB1
.else
.incbin "baserom.gba", 0xDD6C20, 0x000000B
gUnk_08DD6C2B:: @ 08DD6C2B
@@ -3865,7 +3890,32 @@ gUnk_08DD6C85:: @ 08DD6C85
bgmSecretCastleEntrance_track1:: @ 08DD6CB6
.ifdef EU
.incbin "baserom_eu.gba", 0xEE22EB, 0x0000063 @TODO pointers inside
.incbin "baserom_eu.gba", 0xEE22EB, 0x0000007
gUnk_08EE22F2:: @ 08EE22F2
.incbin "baserom_eu.gba", 0xEE22F2, 0x000000D
gUnk_08EE22FF:: @ 08EE22FF
.incbin "baserom_eu.gba", 0xEE22FF, 0x000000F
.4byte gUnk_08EE22FF
.incbin "baserom_eu.gba", 0xEE2312, 0x0000001
.4byte gUnk_08EE22FF
.incbin "baserom_eu.gba", 0xEE2317, 0x0000001
.4byte gUnk_08EE22FF
.incbin "baserom_eu.gba", 0xEE231C, 0x0000001
.4byte gUnk_08EE22FF
.incbin "baserom_eu.gba", 0xEE2321, 0x0000001
.4byte gUnk_08EE22FF
.incbin "baserom_eu.gba", 0xEE2326, 0x0000001
.4byte gUnk_08EE22FF
gUnk_08EE232B:: @ 08EE232B
.incbin "baserom_eu.gba", 0xEE232B, 0x000000F
.4byte gUnk_08EE232B
.incbin "baserom_eu.gba", 0xEE233E, 0x0000001
.4byte gUnk_08EE232B
.incbin "baserom_eu.gba", 0xEE2343, 0x0000001
.4byte gUnk_08EE232B
.incbin "baserom_eu.gba", 0xEE2348, 0x0000001
.4byte gUnk_08EE22F2
.incbin "baserom_eu.gba", 0xEE234D, 0x0000001
.else
.incbin "baserom.gba", 0xDD6CB6, 0x0000007
gUnk_08DD6CBD:: @ 08DD6CBD
@@ -3980,7 +4030,11 @@ gUnk_08DD6ECD:: @ 08DD6ECD
bgmSecretCastleEntrance_track7:: @ 08DD6F8A
.ifdef EU
.incbin "baserom_eu.gba", 0xEE259D, 0x000003B @TODO pointers inside
.incbin "baserom_eu.gba", 0xEE259D, 0x0000003
gUnk_08EE25A0:: @ 08EE25A0
.incbin "baserom_eu.gba", 0xEE25A0, 0x0000030
.4byte gUnk_08EE25A0
.incbin "baserom_eu.gba", 0xEE25D4, 0x0000004
.else
.incbin "baserom.gba", 0xDD6F8A, 0x0000003
gUnk_08DD6F8D:: @ 08DD6F8D
@@ -6058,7 +6112,11 @@ bgmDiggingCave:: @ 08DDC394
bgmSwiftbladeDojo_track0:: @ 08DDC3B4
.ifdef EU
.incbin "baserom_eu.gba", 0xEE79C8, 0x000002B @TODO pointers inside
.incbin "baserom_eu.gba", 0xEE79C8, 0x000000B
gUnk_08EE79D3:: @ 08EE79D3
.incbin "baserom_eu.gba", 0xEE79D3, 0x000001B
.4byte gUnk_08EE79D3
.incbin "baserom_eu.gba", 0xEE79F2, 0x0000001
.else
.incbin "baserom.gba", 0xDDC3B4, 0x000000B
gUnk_08DDC3BF:: @ 08DDC3BF
@@ -6068,7 +6126,12 @@ gUnk_08DDC3BF:: @ 08DDC3BF
.endif
.ifdef EU
.incbin "baserom_eu.gba", 0xEE79F3, 0x000009D @TODO pointers inside
gUnk_08EE79F3:: @ 08EE79F3
.incbin "baserom_eu.gba", 0xEE79F3, 0x0000007
gUnk_08EE79FA:: @ 08EE79FA
.incbin "baserom_eu.gba", 0xEE79FA, 0x000008E
.4byte gUnk_08EE79FA
.incbin "baserom_eu.gba", 0xEE7A8C, 0x0000004
.else
bgmSwiftbladeDojo_track1:: @ 08DDC3E2
.incbin "baserom.gba", 0xDDC3E2, 0x0000007
@@ -6092,7 +6155,10 @@ gUnk_08DDC423:: @ 08DDC423
bgmSwiftbladeDojo:: @ 08DDC4B4
.ifdef EU
.incbin "baserom_eu.gba",0xEE7A90, 0x0000010 @TODO pointers inside
.incbin "baserom_eu.gba", 0xEE7A90, 0x0000004
.4byte gUnk_08A0CF44
.4byte bgmSwiftbladeDojo_track0
.4byte gUnk_08EE79F3
.else
sound_header 4 0 0 0x9e gUnk_08A0CF44 bgmSwiftbladeDojo_track0 bgmSwiftbladeDojo_track1 bgmSwiftbladeDojo_track2 bgmSwiftbladeDojo_track3
.endif
@@ -7142,7 +7208,20 @@ bgmWindRuins:: @ 08DDEC38
sound_header 7 0 0 0xa8 gUnk_08A0F014 bgmWindRuins_track0 bgmWindRuins_track1 bgmWindRuins_track2 bgmWindRuins_track3 bgmWindRuins_track4 bgmWindRuins_track5 bgmWindRuins_track6
.ifdef EU
.incbin "baserom_eu.gba", 0xEEA230, 0x00000DC @TODO pointers inside
gUnk_08EEA230:: @ 08EEA230
.incbin "baserom_eu.gba", 0xEEA230, 0x000000E
gUnk_08EEA23E:: @ 08EEA23E
.incbin "baserom_eu.gba", 0xEEA23E, 0x000001B
.4byte gUnk_08EEA23E
.incbin "baserom_eu.gba", 0xEEA25D, 0x0000001
gUnk_08EEA25E:: @ 08EEA25E
.incbin "baserom_eu.gba", 0xEEA25E, 0x000000B
gUnk_08EEA269:: @ 08EEA269
.incbin "baserom_eu.gba", 0xEEA269, 0x0000010
gUnk_08EEA279:: @ 08EEA279
.incbin "baserom_eu.gba", 0xEEA279, 0x000008E
.4byte gUnk_08EEA279
.incbin "baserom_eu.gba", 0xEEA30B, 0x0000001
.else
bgmLearnScroll_track0:: @ 08DDEC5C
.incbin "baserom.gba", 0xDDEC5C, 0x000000C
@@ -7174,7 +7253,11 @@ gUnk_08DDECDA:: @ 08DDECDA
bgmLearnScroll:: @ 08DDED6C
.ifdef EU
.incbin "baserom_eu.gba", 0xEEA30C, 0x0000014 @TODO pointers inside
.incbin "baserom_eu.gba", 0xEEA30C, 0x0000004
.4byte gUnk_08A0CF44
.4byte gUnk_08EEA230
.4byte gUnk_08EEA25E
.4byte gUnk_08EEA269
.else
sound_header 5 0 0 0x9e gUnk_08A0CF44 bgmLearnScroll_track0 bgmLearnScroll_track1 bgmLearnScroll_track2 bgmLearnScroll_track3 bgmLearnScroll_track4
.endif
+9 -1
View File
@@ -15,5 +15,13 @@ gUnk_089FB780:: @ 089FB780
.endif
@ More sprites in demo
.ifdef DEMO
.incbin "baserom_demo.gba", 0x9FD0F4, 0x984c
.incbin "baserom_demo.gba", 0x9FD0F4, 0xC0
gUnk_089FD1B4::
.incbin "baserom_demo.gba", 0x9FD1B4, 0x140
gUnk_089FD2F4::
.incbin "baserom_demo.gba", 0x9FD2F4, 0x845D
gUnk_08A05751::
.incbin "baserom_demo.gba", 0xA05751, 0x116e
gUnk_08A068BF::
.incbin "baserom_demo.gba", 0xA068BF, 0x81
.endif
+6
View File
@@ -32,6 +32,7 @@ SECTIONS {
. = 0x00001A40; gBG3Buffer = .;
. = 0x00001B40; gUnk_02001B40 = .;
. = 0x00002A40; gSave = .;
. = 0x00002A40; gUnk_02002A40 = .;
. = 0x00002AA0; gUnk_02002AA0 = .;
. = 0x00002AC0; gUnk_02002AC0 = .;
. = 0x00002AC8; gUnk_02002AC8 = .;
@@ -192,6 +193,7 @@ SECTIONS {
. = 0x00001010; gOamCmd = .;
. = 0x00001020; gUnk_03001020 = .;
. = 0x000010A0; gScreenTransition = .;
. = 0x000010A0; gUnk_030010A0 = .;
. = 0x000010AC; gUnk_030010AC = .;
. = 0x000010EC; gUnk_030010EC = .;
. = 0x0000110C; gUnk_0300110C = .;
@@ -283,10 +285,14 @@ SECTIONS {
#ifdef EU
. = 0x000065AC; gUnk_03006580 = .;
. = 0x000065C8; gUnk_0300659C = .;
. = 0x0000689C; gUnk_0300689C = .;
. = 0x000068F0; gUnk_030068F0 = .;
. = 0x00006954; gUnk_03006954 = .;
. = 0x000069AC; gUnk_030067E4 = .;
. = 0x00006A94; gUnk_030068CC = .;
. = 0x00006B14; gUnk_0300694C = .;
. = 0x00006B24; gUnk_0300695C = .;
. = 0x00006C14; gUnk_03006C14 = .;
#else
. = 0x00006580; gUnk_03006580 = .;
. = 0x0000659C; gUnk_0300659C = .;
+1 -3
View File
@@ -158,9 +158,7 @@ void PlayerUpdate(Entity* this) {
// Responsible for some life things like low health beep and initiating the death sequence
#ifdef EU
NAKED void HandlePlayerLife(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x017038, 0x1f0"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/HandlePlayerLife.inc", void HandlePlayerLife(Entity* this));
#else
void HandlePlayerLife(Entity* this) {
u32 temp;
+1 -3
View File
@@ -173,9 +173,7 @@ void sub_08054570(void) {
}
#ifdef EU
NAKED u32 sub_0805457C(u32 arg0, u32 arg1) {
asm(".incbin \"baserom_eu.gba\", 0x054114, 0x1c0"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1));
#else
ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1));
#endif
+6 -18
View File
@@ -189,9 +189,7 @@ void sub_0802AA40(Entity* this) {
}
#ifdef EU
NAKED void sub_0802AAC0(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02aa94, 0xc8"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802AAC0.inc", void sub_0802AAC0(Entity* this))
#else
void sub_0802AAC0(Entity* this) {
sub_0802AC40(this);
@@ -223,9 +221,7 @@ void sub_0802AAC0(Entity* this) {
#endif
#ifdef EU
NAKED void sub_0802AB40(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02ab5c, 0x60"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802AB40.inc", void sub_0802AB40(Entity* this));
#else
void sub_0802AB40(Entity* this) {
sub_0802AC40(this);
@@ -280,9 +276,7 @@ void sub_0802AC08(Entity* this) {
}
#ifdef EU
NAKED void sub_0802AC40(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02ABF4, 0x54"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this))
#else
void sub_0802AC40(Entity* this) {
GetNextFrame(this);
@@ -364,9 +358,7 @@ void sub_0802AD54(Entity* this) {
#ifdef EU
// TODO regalloc in EU version
NAKED void sub_0802ADDC(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802ADDC.inc", void sub_0802ADDC(Entity* this))
#else
void sub_0802ADDC(Entity* this) {
Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2);
@@ -400,9 +392,7 @@ void sub_0802AE24(Entity* this) {
}
#ifdef EU
NAKED void sub_0802AE68(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02add8, 0x94"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802AE68.inc", void sub_0802AE68(Entity* this))
#else
void sub_0802AE68(Entity* this) {
Entity* ent = sub_0802B250(this);
@@ -579,9 +569,7 @@ void sub_0802B1A0(Entity* this) {
}
#ifdef EU
NAKED void sub_0802B1BC(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x02b16c, 0x84"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0802B1BC.inc", void sub_0802B1BC(Entity* this))
#else
void sub_0802B1BC(Entity* this) {
Entity* ent;
+1 -3
View File
@@ -333,9 +333,7 @@ void sub_0801F3AC(Entity* this) {
}
#ifdef EU
NAKED void sub_0801F428(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x01F428, 0x60"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0801F428.inc", void sub_0801F428(Entity* this))
#else
void sub_0801F428(Entity* this) {
sub_0804A720(this);
+1 -3
View File
@@ -97,9 +97,7 @@ END_NONMATCH
extern void sub_08080930();
#ifdef EU
NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr))
#else
void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
u16 tmp;
+2 -6
View File
@@ -56,9 +56,7 @@ const u32 gUnk_081080A4[0x50] = {
const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
#ifdef EU
NAKED void Manager7_Main(Manager7* this) {
asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/Manager7_Main.inc", void Manager7_Main(Manager7* this))
#else
void Manager7_Main(Manager7* this) {
u32 tmp;
@@ -133,9 +131,7 @@ void sub_08057E64() {
}
#ifdef EU
NAKED void sub_08057E7C(u32 unk1) {
asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_08057E7C.inc", void sub_08057E7C(u32 unk1))
#else
void sub_08057E7C(u32 unk1) {
u32 tmp;
+1 -3
View File
@@ -26,9 +26,7 @@ ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc",
void sub_0806E964(Entity* this, ScriptExecutionContext* context))
#ifdef EU
NAKED void sub_0806EABC(Entity* this, u32 param) {
asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_0806EABC.inc", void sub_0806EABC(Entity* this, u32 param))
#else
void sub_0806EABC(Entity* this, u32 param) {
sub_08050384();
+1 -3
View File
@@ -124,9 +124,7 @@ void sub_080A9FD0(Entity* this) {
}
#ifdef EU
NAKED void sub_080AA044(Entity* this) {
asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/sub_080AA044.inc", void sub_080AA044(Entity* this))
#else
void sub_080AA044(Entity* this) {
u32 uVar1;
+12 -2
View File
@@ -44,7 +44,8 @@ const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500,
const char gUnk_0811E470[4] = "LINK";
#ifdef DEMO
const u8 unknown[] = { 0x0, 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 };
const u8 demoUnknown0 = 0x0;
const u8 demoUnknown1[] = { 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 };
#else
const u8 padding[2] = { 0, 0 };
#endif
@@ -52,7 +53,16 @@ const u8 padding[2] = { 0, 0 };
static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone };
#ifdef DEMO
asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO disassemble
asm("demoPointer1: .incbin \"baserom_demo.gba\", 0x11e010, 0x500");
asm("demoPointer2: .incbin \"baserom_demo.gba\", 0x11e510, 0x500");
asm("demoPointer3: .incbin \"baserom_demo.gba\", 0x11ea10, 0x500");
extern const u32 demoPointer1;
extern const u32 demoPointer2;
extern const u32 demoPointer3;
const u32 demoPointers[] = { (u32)&demoPointer1, (u32)&demoPointer2, (u32)&demoPointer3 };
#else
#if defined(JP) || defined(EU)
+1 -3
View File
@@ -477,9 +477,7 @@ extern u8 gUnk_08107C14;
extern u8 gUnk_08107C0F;
#ifdef EU
NAKED void TextBoxHandlerQuestion(CurrentTextBox* ctb) {
asm(".incbin \"baserom_eu.gba\", 0x05654c, 0x138"); // TODO disassemble
}
ASM_FUNC("asm/non_matching/eu/TextBoxHandlerQuestion.inc", void TextBoxHandlerQuestion(CurrentTextBox* ctb))
#else
void TextBoxHandlerQuestion(CurrentTextBox* ctb) {