mirror of
https://github.com/zeldaret/tmc
synced 2026-09-02 02:02:30 -04:00
Merge remote-tracking branch 'upstream/master' into m
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user