Merge remote-tracking branch 'upstream/master' into m

This commit is contained in:
theo3
2021-11-05 01:58:55 -07:00
440 changed files with 7319 additions and 11526 deletions
+36
View File
@@ -40,7 +40,43 @@ _08000144EU:
.byte 0x33, 0x5A, 0x43, 0x4D
.4byte gUnk_03007FA0
.4byte gUnk_03006C14
.else
.ifdef DEMO_JP @ TODO deduplicate
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
.endif
thumb_func_start sub_08000108
+6 -1
View File
@@ -2254,7 +2254,11 @@ gUnk_08007CAC:: @ 08007CAC
.incbin "baserom.gba", 0x007CAC, 0x000005B
gUnk_08007D07:: @ 08007D07
.ifdef DEMO
.ifdef DEMO_JP
@ TODO only one byte differs
.incbin "baserom_demo_jp.gba", 0x007D4F, 0x00000CF
.else
.ifdef DEMO_USA
@ TODO only one byte differs
.incbin "baserom_demo.gba", 0x007D07, 0x00000CF
.else
@@ -2269,6 +2273,7 @@ gUnk_08007D07:: @ 08007D07
.incbin "baserom.gba", 0x007D07, 0x00000CF
.endif
.endif
.endif
.endif
non_word_aligned_thumb_func_start sub_08007DD6
+4
View File
@@ -640,9 +640,13 @@ _080189D0:
.else
.ifdef EU
movs r1, #0x77
.else
.ifdef DEMO_JP
movs r1, #0x77 @ TODO deduplicate
.else
movs r1, #0x79
.endif
.endif
.endif
bl SetLocalFlagByOffset
ldr r0, _080189E8 @ =gUnk_080FEE38
+8 -1
View File
@@ -991,11 +991,18 @@ _08019DEE:
beq _08019DF6
b _0801A2A4
.else
.ifdef DEMO
.ifdef DEMO_USA
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08019DF6
b _0801A2A4
.else
.ifdef DEMO_JP @ TODO deduplicate
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08019DF6
b _0801A2A4
.endif
.endif
.endif
_08019DF6:
+98
View File
@@ -2190,6 +2190,103 @@ _0801E8D2:
thumb_func_start sub_0801E8D4
sub_0801E8D4: @ 0x0801E8D4
.ifdef DEMO_JP
push {r4, r5, lr}
movs r5, #0xa
_0801E914:
adds r0, r5, #0
bl CheckKinstoneFused
cmp r0, #0
beq _0801E9C4
adds r0, r5, #0
bl sub_0801E810
cmp r0, #0
bne _0801E9C4
ldr r1, _0801E94C @ =0x080C9500
lsls r0, r5, #3
adds r0, r0, r1
ldrb r1, [r0, #4]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0801E950 @ =0x080FDB04
adds r2, r0, r1
ldrh r3, [r2, #0x12]
ldrb r0, [r2, #0x10]
cmp r0, #9
bhi _0801E9B0
lsls r0, r0, #2
ldr r1, _0801E954 @ =_0801E958
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801E94C: .4byte 0x080C9500
_0801E950: .4byte 0x080FDB04
_0801E954: .4byte _0801E958
_0801E958: @ jump table
.4byte _0801E980 @ case 0
.4byte _0801E984 @ case 1
.4byte _0801E988 @ case 2
.4byte _0801E98C @ case 3
.4byte _0801E990 @ case 4
.4byte _0801E994 @ case 5
.4byte _0801E99A @ case 6
.4byte _0801E9A0 @ case 7
.4byte _0801E9A6 @ case 8
.4byte _0801E9AC @ case 9
_0801E980:
movs r4, #0
b _0801E9B0
_0801E984:
ldrb r4, [r2, #0x11]
b _0801E9B0
_0801E988:
movs r4, #0xf
b _0801E9B0
_0801E98C:
movs r4, #0x10
b _0801E9B0
_0801E990:
movs r4, #0x11
b _0801E9B0
_0801E994:
movs r4, #4
movs r3, #0x83
b _0801E9B0
_0801E99A:
movs r4, #4
movs r3, #0x84
b _0801E9B0
_0801E9A0:
movs r4, #4
movs r3, #0x87
b _0801E9B0
_0801E9A6:
movs r4, #4
movs r3, #0x88
b _0801E9B0
_0801E9AC:
movs r4, #4
movs r3, #0x8b
_0801E9B0:
adds r0, r4, #0
adds r1, r3, #0
bl sub_0807CB24
cmp r0, #0
beq _0801E9C4
ldr r0, _0801E9CC @ =gUnk_02002C8E
adds r1, r5, #0
bl WriteBit
_0801E9C4:
adds r5, #1
cmp r5, #0x64
bls _0801E914
pop {r4, r5, pc}
.align 2, 0
_0801E9CC: .4byte gUnk_02002C8E
.else
.ifdef JP
push {r4, r5, lr}
movs r4, #0xa
@@ -2431,6 +2528,7 @@ _0801E990:
.align 2, 0
_0801E998: .4byte gUnk_02002C8E
.endif
.endif
.endif
thumb_func_start sub_0801E99C
+37 -2
View File
@@ -696,7 +696,7 @@ _08052C30:
_08052C34: .4byte gScreenTransition
_08052C38: .4byte gArea
.else
.ifdef DEMO @TODO deduplicate
.ifdef DEMO_USA @TODO deduplicate
thumb_func_start sub_08052BF8
sub_08052BF8: @ 0x08052BF8
push {lr}
@@ -733,6 +733,37 @@ _08052C38: .4byte gArea
.endif
.endif
.ifdef DEMO_JP
thumb_func_start sub_08052BF8
sub_08052BF8: @ 0x08052BF8
push {lr}
ldr r0, _08052B38 @ =gScreenTransition
adds r1, r0, #0
adds r1, #0x31
ldrb r0, [r1]
cmp r0, #0
bne _08052B36
movs r0, #1
strb r0, [r1]
bl GetEmptyManager
adds r1, r0, #0
cmp r1, #0
beq _08052B36
movs r0, #9
strb r0, [r1, #8]
movs r0, #0xf
strb r0, [r1, #9]
strb r0, [r1, #0xa]
adds r0, r1, #0
movs r1, #0
bl AppendEntityToList
_08052B36:
pop {pc}
.align 2, 0
_08052B38: .4byte gScreenTransition
.endif
thumb_func_start sub_08052C3C
sub_08052C3C: @ 0x08052C3C
push {lr}
@@ -1359,14 +1390,18 @@ _0805310C:
_0805311A:
movs r0, #0x80
lsls r0, r0, #1
.ifdef JP
.ifdef JP @ TODO deduplicate
movs r1, #0x9b
.else
.ifdef EU
movs r1, #0x9b
.else
.ifdef DEMO_JP
movs r1, #0x9b
.else
movs r1, #0x9c
.endif
.endif
.endif
bl CheckLocalFlagByOffset
cmp r0, #0
+4
View File
@@ -388,9 +388,13 @@ sub_08054EB8: @ 0x08054EB8
.else
.ifdef EU
movs r0, #0x77
.else
.ifdef DEMO_JP
movs r0, #0x77 @ TODO deduplicate
.else
movs r0, #0x79
.endif
.endif
.endif
strh r0, [r3, #0x3e]
adds r0, r3, #0
+13 -2
View File
@@ -1302,7 +1302,11 @@ _080A45A2:
thumb_func_start sub_080A45A4
sub_080A45A4: @ 0x080A45A4
.ifdef DEMO
.ifdef DEMO_USA
bx lr
.align 2, 0
.else
.ifdef DEMO_JP
bx lr
.align 2, 0
.else
@@ -1344,6 +1348,7 @@ _080A45E0:
.align 2, 0
_080A4600: .4byte gUnk_0812814C
_080A4604: .4byte gMenu
.endif
.endif
thumb_func_start sub_080A4608
@@ -3219,7 +3224,12 @@ _080A52DC: .4byte gInput
_080A52E0:
cmp r4, #0x10
bne _080A52EC
.ifdef DEMO
.ifdef DEMO_USA
movs r0, #0x6d
bl SoundReq
b _080A5336
.else
.ifdef DEMO_JP @ TODO same as DEMO_USA
movs r0, #0x6d
bl SoundReq
b _080A5336
@@ -3228,6 +3238,7 @@ _080A52E0:
bl sub_080A4E84
b _080A530A
.endif
.endif
_080A52EC:
ldr r0, _080A5314 @ =gMenu
adds r0, #0x10
+35 -6
View File
@@ -202,11 +202,15 @@ _080A570C:
cmp r0, #1
bne _080A575E
ldrb r3, [r2, #3]
.ifdef DEMO
.ifdef DEMO_USA
movs r4, #0
.else
.ifdef DEMO_JP
movs r4, #0
.else
movs r1, #0
.endif
.endif
cmp r3, #2
beq _080A572E
cmp r3, #2
@@ -227,23 +231,39 @@ _080A572E:
ldrb r0, [r0]
cmp r0, #0
beq _080A574E
.ifdef DEMO
.ifdef DEMO_USA
movs r4, #8
.else
.ifdef DEMO_JP
movs r4, #8
.else
movs r1, #8
.endif
.endif
cmp r3, #0
bne _080A574E
.ifdef DEMO
.ifdef DEMO_USA
movs r4, #7
.else
.ifdef DEMO_JP
movs r4, #7
.else
movs r1, #7
.endif
.endif
b _080A5752
.align 2, 0
_080A5744: .4byte gMenu
_080A5748:
.ifdef DEMO
.ifdef DEMO_USA
movs r0, #0x6d
bl SoundReq
b _080A574E
_080A574C:
movs r0, #0x6d
bl SoundReq
.else
.ifdef DEMO_JP
movs r0, #0x6d
bl SoundReq
b _080A574E
@@ -256,19 +276,28 @@ _080A574C:
_080A574C:
movs r1, #0xa
.endif
.endif
_080A574E:
.ifdef DEMO
.ifdef DEMO_USA
cmp r4, #0
.else
.ifdef DEMO_JP
cmp r4, #0
.else
cmp r1, #0
.endif
.endif
beq _080A575E
_080A5752:
.ifdef DEMO
.ifdef DEMO_USA
adds r0, r4, #0
.else
.ifdef DEMO_JP
adds r0, r4, #0
.else
adds r0, r1, #0
.endif
.endif
bl sub_080A4E84
movs r0, #0x6a
bl SoundReq
+10
View File
@@ -24,6 +24,12 @@ start_vector:
ldr r1, unk_function
mov lr, pc
bx r1
.else
.ifdef DEMO_JP
ldr r1, unk_function
mov lr, pc
bx r1
.endif
.endif
ldr r1, =AgbMain
mov lr, pc
@@ -36,4 +42,8 @@ INTR_VECTOR_BUF: .4byte 0x03007FFC
intr_main: .4byte gIntrMain
.ifdef EU
unk_function: .4byte sub_08000118
.else
.ifdef DEMO_JP
unk_function: .4byte sub_08000118
.endif
.endif
+35
View File
@@ -987,9 +987,13 @@ _080880B2:
.else
.ifdef EU
movs r1, #0x9b
.else
.ifdef DEMO_JP
movs r1, #0x9b @ TODO deduplicate
.else
movs r1, #0x9c
.endif
.endif
.endif
bl CheckLocalFlagByOffset
cmp r0, #0
@@ -2192,5 +2196,36 @@ _08088678:
.align 2, 0
_08088684: .4byte gPlayerEntity
_08088688: .4byte gActiveScriptInfo
.else
.ifdef DEMO_JP @ TODO deduplicate
thumb_func_start sub_08088658
sub_08088658: @ 0x08088658
push {r4, lr}
adds r4, r1, #0
movs r0, #0x78
movs r1, #0x78
movs r2, #0x10
movs r3, #8
bl CheckPlayerInRegion
str r0, [r4, #0x14]
ldr r0, _08088684 @ =gPlayerEntity
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
beq _08088678
movs r0, #0
str r0, [r4, #0x14]
_08088678:
ldr r2, _08088688 @ =gActiveScriptInfo
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_08088684: .4byte gPlayerEntity
_08088688: .4byte gActiveScriptInfo
.endif
.endif
.endif
+32 -2
View File
@@ -5,7 +5,7 @@
.text
.ifdef DEMO
.ifdef DEMO_USA
thumb_func_start HandleGameplayScreen
HandleGameplayScreen: @ 08051A28
push {r4, lr}
@@ -340,9 +340,30 @@ _08051B5A:
bl sub_08078A90
ldr r0, _08051BC8 @ =gUnk_02034490
strb r4, [r0]
.ifdef DEMO_JP
ldr r0, _08051C30 @ =gUnk_030010A0
adds r0,#0x31
ldrb r0,[r0,#0x0]
cmp r0,#0x0
beq _08051bee
bl sub_08053178
_08051bee:
adds r0,r5,#0x0
adds r0,#0x28
ldrb r0,[r0,#0x0]
cmp r0,#0xff
beq _08051bfc
bl sub_0801855C
_08051bfc:
bl sub_08052BF8
.else
.ifdef JP
bl sub_08053178
.endif
.ifndef EU
adds r0, r5, #0
adds r0, #0x28
@@ -356,10 +377,16 @@ _08051B96:
bl sub_08053178 @ TODO fix addresses
bl sub_08053178
.else
.ifdef DEMO_JP
bl sub_08053178 @ TODO fix addresses
bl sub_08053178
.else
.ifndef JP
bl sub_08052BF8
bl sub_08053178
.endif
.endif
.endif
.endif
ldr r0, _08051BCC @ =gRoomVars
ldrb r0, [r0]
@@ -380,6 +407,9 @@ _08051BBC: .4byte 0x00000864
_08051BC0: .4byte 0x800B0000
_08051BC4: .4byte gMain
_08051BC8: .4byte gUnk_02034490
.ifdef DEMO_JP
_08051C30: .4byte gUnk_030010A0
.endif
_08051BCC: .4byte gRoomVars
.endif
@@ -523,7 +553,7 @@ _08051D28: .4byte gScreenTransition
thumb_func_start sub_08051D2C
sub_08051D2C: @ 0x08051D2C
.ifdef DEMO
.ifdef DEMO_USA
push {lr}
ldr r0, _08051E04 @ =0x03000FD0
ldrb r0, [r0]
+308
View File
@@ -881,6 +881,56 @@ sub_080B19C8: @ 0x080B19C8
ldm sp!, {lr}
b _080B1C40EU
.else
.ifdef DEMO_JP @ TODO deduplicate same as EU
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 ResolveOamDrawPriority
bl sub_080B2534
ldm sp!, {lr}
b _080B1C40EU
.else
push {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr fp, _080B2A30 @ =gUnk_03000000
ldrb r2, [fp, #3]
@@ -919,6 +969,7 @@ sub_080B2448: @ 0x080B2448
bl sub_080B2534
ldm sp!, {lr}
b _080B26B4
.endif
.endif
arm_func_start ResolveOamDrawPriority
@@ -1008,7 +1059,142 @@ sub_080B255C: @ 0x080B255C
bl sub_080B299C
ldr r3, [fp, #0x1c]
mov lr, pc
.ifdef DEMO_JP
bx r3
.else
bxne r3
.endif
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
.ifdef DEMO_JP @ TODO deduplicate nearly same as EU
stmdb sp!, {lr}
mov r4, r0
bl sub_080B299C
ldr r3, [fp, #0x1c]
mov lr, pc
.ifdef DEMO_JP
bx r3
.else
bxne r3
.endif
mov r5, #0
strb r5, [fp, #0x12]
ldrsb r2, [r4, #0x29]
@@ -1252,6 +1438,7 @@ _080B26D0:
bx lr
.endif
.endif
_080B2718:
@@ -1593,11 +1780,129 @@ _080B2144:
.4byte gUnk_030068F0
.4byte gUnk_0300689C
.endif
.ifdef DEMO_JP @ TODO deduplicate same as EU
_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
_080B2154: .4byte 0x03006958 @TODO make pointer?
.endif
.ifdef DEMO_JP @ TODO deduplicate same as EU
_080B2154: .4byte 0x03006958 @TODO make pointer?
.endif
_080B2A34: .4byte gUnk_081326EC
_080B2A38: .4byte gUnk_081326EC
_080B2A3C: .4byte gUnk_081326EC
@@ -1616,3 +1921,6 @@ _080B2A6C: .4byte 0x3E003F00
.ifdef EU
_080B2194: .4byte 0x03003DF8 @TODO pointer?
.endif
.ifdef DEMO_JP @ TODO deduplicate same as EU
_080B2194: .4byte 0x03003DF8 @TODO pointer?
.endif
@@ -1,168 +0,0 @@
.syntax unified
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
ldr r0, _080ACD20 @ =gScreenTransition
ldr r0, [r0]
adds r0, r2, r0
movs r1, #1
ands r0, r1
cmp r0, #0
beq _080ACCF8
ldr r0, _080ACD24 @ =gUnk_0812AAAC
lsls r1, r2, #2
adds r1, r1, r0
ldr r7, [r1]
ldr r0, [r4, #0x74]
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080ACCA4
str r0, [r4, #0x74]
_080ACCA4:
ldr r0, [r4, #0x74]
adds r0, r7, r0
movs r2, #0
ldrsb r2, [r0, r2]
movs r3, #1
ldrsb r3, [r0, r3]
adds r0, r4, #0
movs r1, #0xe
bl sub_08008782
adds r5, r0, #0
cmp r5, #0
beq _080ACCF2
ldrb r1, [r5, #5]
ldrb r2, [r5, #2]
movs r0, #0x11
bl CreateObject
adds r6, r0, #0
cmp r6, #0
beq _080ACCF2
ldrb r0, [r5, #3]
strb r0, [r6, #0xe]
ldr r0, [r4, #0x74]
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r6, #0x2e]
ldr r0, [r4, #0x74]
adds r0, r0, r7
ldrb r0, [r0, #1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r6, #0x32]
_080ACCF2:
ldr r0, [r4, #0x74]
adds r0, #2
str r0, [r4, #0x74]
_080ACCF8:
ldr r2, [r4, #0x54]
cmp r2, #0
bne _080ACD08
ldr r0, [r4, #0x70]
cmp r0, #2
bls _080ACD08
movs r0, #1
str r0, [r4, #0x70]
_080ACD08:
ldr r0, [r4, #0x70]
subs r0, #1
str r0, [r4, #0x70]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _080ACDAE
cmp r2, #0
bne _080ACD28
movs r0, #2
b _080ACD32
.align 2, 0
_080ACD20: .4byte gScreenTransition
_080ACD24: .4byte gUnk_0812AAAC
_080ACD28:
ldr r0, _080ACD74 @ =gUnk_0812AABC
ldrb r1, [r4, #0xa]
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
_080ACD32:
str r0, [r4, #0x70]
movs r0, #0x17
movs r1, #0
movs r2, #0
bl CreateObject
adds r6, r0, #0
cmp r6, #0
beq _080ACDAE
bl Random
adds r2, r0, #0
movs r0, #0xf
ands r2, r0
ldr r3, [r4, #0x48]
ldrb r1, [r3, #6]
cmp r1, r2
bge _080ACD58
adds r2, r1, #0
_080ACD58:
movs r0, #1
ands r0, r2
cmp r0, #0
beq _080ACD62
rsbs r2, r2, #0
_080ACD62:
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
cmp r0, #1
beq _080ACD9C
cmp r0, #1
bgt _080ACD78
cmp r0, #0
beq _080ACD82
b _080ACDAE
.align 2, 0
_080ACD74: .4byte gUnk_0812AABC
_080ACD78:
cmp r0, #2
beq _080ACD8C
cmp r0, #3
beq _080ACDA2
b _080ACDAE
_080ACD82:
ldrb r0, [r3, #7]
ldrh r1, [r4, #0x32]
subs r1, r1, r0
strh r1, [r6, #0x32]
b _080ACD94
_080ACD8C:
ldrh r0, [r4, #0x32]
ldrb r3, [r3, #7]
adds r0, r0, r3
strh r0, [r6, #0x32]
_080ACD94:
ldrh r0, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r6, #0x2e]
b _080ACDAE
_080ACD9C:
ldrh r0, [r4, #0x2e]
adds r0, r0, r1
b _080ACDA6
_080ACDA2:
ldrh r0, [r4, #0x2e]
subs r0, r0, r1
_080ACDA6:
strh r0, [r6, #0x2e]
ldrh r0, [r4, #0x32]
adds r0, r0, r2
strh r0, [r6, #0x32]
_080ACDAE:
pop {r4, r5, r6, r7, pc}
.syntax divided
@@ -26,9 +26,13 @@
.else
.ifdef EU
bl CreateItemEntity
.else
.ifdef DEMO_JP
bl CreateItemEntity @ TODO deduplicate
.else
bl sub_080A7C18
.endif
.endif
.endif
ldr r0, _0801BB8C @ =0x00000109
bl SoundReq
@@ -7,9 +7,13 @@
.else
.ifdef EU
movs r0, #0xd7
.else
.ifdef DEMO_JP
movs r0, #0xd7 @ TODO deduplicate
.else
movs r0, #0xda
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
@@ -20,9 +24,13 @@
.else
.ifdef EU
movs r0, #0xd7
.else
.ifdef DEMO_JP
movs r0, #0xd7 @ TODO deduplicate
.else
movs r0, #0xda
.endif
.endif
.endif
bl SetLocalFlag
b _080638D6
@@ -32,9 +40,13 @@ _08063896:
.else
.ifdef EU
movs r0, #0xce
.else
.ifdef DEMO_JP
movs r0, #0xce @ TODO deduplicate
.else
movs r0, #0xd1
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
@@ -61,9 +73,13 @@ _080638B2:
.else
.ifdef EU
movs r0, #0xce
.else
.ifdef DEMO_JP
movs r0, #0xce @ TODO deduplicate
.else
movs r0, #0xd1
.endif
.endif
.endif
bl SetLocalFlag
ldr r0, _080638FC @ =0x00000A17
@@ -7,9 +7,13 @@
.else
.ifdef EU
movs r0, #0xd6
.else
.ifdef DEMO_JP
movs r0, #0xd6 @ TODO deduplicate
.else
movs r0, #0xd9
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
@@ -20,9 +24,13 @@
.else
.ifdef EU
movs r0, #0xd6
.else
.ifdef DEMO_JP
movs r0, #0xd6 @ TODO deduplicate
.else
movs r0, #0xd9
.endif
.endif
.endif
bl SetLocalFlag
adds r0, r4, #0
+4
View File
@@ -121,9 +121,13 @@ _0804C206:
.else
.ifdef EU
movs r0, #0x5a
.else
.ifdef DEMO_JP
movs r0, #0x5a @ TODO deduplicate
.else
movs r0, #0x5c
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
+4
View File
@@ -72,9 +72,13 @@ _0804DE5C:
.else
.ifdef EU
movs r0, #0xca
.else
.ifdef DEMO_JP
movs r0, #0xca @ TODO deduplicate
.else
movs r0, #0xcd
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
+4
View File
@@ -29,9 +29,13 @@ _0804E17C:
.else
.ifdef EU
movs r0, #0xce
.else
.ifdef DEMO_JP
movs r0, #0xce @ TODO deduplicate
.else
movs r0, #0xd1
.endif
.endif
.endif
bl CheckLocalFlag
cmp r0, #0
+249
View File
@@ -423,6 +423,254 @@ _0803548C:
.align 2, 0
_08035498: .4byte 0x00000109
.else
.ifdef DEMO_JP @ TODO 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 _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
push {r4, r5, r6, r7, lr}
@@ -918,6 +1166,7 @@ _080354E8:
.align 2, 0
_080354F4: .4byte 0x00000109
.endif
.endif
.endif
thumb_func_start sub_080354F8
+116
View File
@@ -115,6 +115,121 @@ _080A0FFE:
thumb_func_start sub_080A1000
sub_080A1000: @ 0x080A1000
.ifdef DEMO_JP
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xd]
cmp r1, #1
beq _080A0B52
cmp r1, #1
bgt _080A0B3C
cmp r1, #0
beq _080A0B46
b _080A0BB0
_080A0B3C:
cmp r1, #2
beq _080A0B60
cmp r1, #3
beq _080A0B8C
b _080A0BB0
_080A0B46:
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _080A0BF0
_080A0B52:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0BF0
b _080A0B98
_080A0B60:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0B7E
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r0, #0xf5
bl SoundReq
b _080A0BF0
_080A0B7E:
ldr r0, _080A0B88 @ =gScreenTransition
ldr r0, [r0]
movs r1, #7
b _080A0BDE
.align 2, 0
_080A0B88: .4byte gScreenTransition
_080A0B8C:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0BA4
_080A0B98:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
b _080A0BF0
_080A0BA4:
ldr r0, _080A0BAC @ =gScreenTransition
ldr r0, [r0]
b _080A0BDE
.align 2, 0
_080A0BAC: .4byte gScreenTransition
_080A0BB0:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0BD8
movs r0, #0xfc
bl SetLocalFlag
ldrb r1, [r4, #0xb]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080A0BD4 @ =0x0813AA10
adds r0, r0, r1
bl DoExitTransition
b _080A0BF0
.align 2, 0
_080A0BD4: .4byte 0x0813AA10
_080A0BD8:
ldr r0, _080A0BF4 @ =gScreenTransition
ldr r0, [r0]
movs r1, #1
_080A0BDE:
ands r0, r1
cmp r0, #0
bne _080A0BF0
ldr r0, _080A0BF8 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_080A0BF0:
pop {r4, pc}
.align 2, 0
_080A0BF4: .4byte gScreenTransition
_080A0BF8: .4byte gPlayerEntity
.else
.ifdef JP
push {lr}
adds r1, r0, #0
@@ -460,6 +575,7 @@ _080A10D4:
_080A10D8: .4byte gScreenTransition
_080A10DC: .4byte gPlayerEntity
.endif
.endif
.endif
thumb_func_start sub_080A10E0