mirror of https://github.com/zeldaret/tmc.git
done
This commit is contained in:
parent
0b52f80e4d
commit
edbf03101a
|
@ -980,7 +980,7 @@ _080512B8:
|
|||
bl sub_08051480
|
||||
b _08051322
|
||||
_080512C0:
|
||||
ldr r2, _080512E4 @ =gUnk_02001A40
|
||||
ldr r2, _080512E4 @ =gBG3Buffer
|
||||
ldr r0, _080512E8 @ =gMenu
|
||||
ldrb r1, [r0, #0x10]
|
||||
lsls r1, r1, #1
|
||||
|
@ -997,7 +997,7 @@ _080512C0:
|
|||
bl sub_08051480
|
||||
b _08051322
|
||||
.align 2, 0
|
||||
_080512E4: .4byte gUnk_02001A40
|
||||
_080512E4: .4byte gBG3Buffer
|
||||
_080512E8: .4byte gMenu
|
||||
_080512EC:
|
||||
movs r3, #5
|
||||
|
@ -2576,7 +2576,7 @@ sub_08052010: @ 0x08052010
|
|||
bl sub_08056418
|
||||
movs r0, #1
|
||||
bl sub_0801DA90
|
||||
ldr r0, _0805207C @ =gUnk_02021F30
|
||||
ldr r0, _0805207C @ =gBG1Buffer
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #4
|
||||
adds r1, r4, #0
|
||||
|
@ -2615,7 +2615,7 @@ sub_08052010: @ 0x08052010
|
|||
strh r0, [r1, #0x26]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805207C: .4byte gUnk_02021F30
|
||||
_0805207C: .4byte gBG1Buffer
|
||||
_08052080: .4byte gUnk_020344B0
|
||||
_08052084: .4byte gMenu
|
||||
_08052088: .4byte gScreen
|
||||
|
|
|
@ -71,7 +71,7 @@ _08001230:
|
|||
ldr r3, _0800135C @ =UpdateAnimationVariableFrames
|
||||
bx r3
|
||||
_0800123E:
|
||||
ldr r3, _08001360 @ =sub_080043B4
|
||||
ldr r3, _08001360 @ =CreateItemOnGround
|
||||
bx r3
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08001242
|
||||
|
@ -154,7 +154,7 @@ gUnk_080012C8::
|
|||
.4byte 0x00000000
|
||||
_080012CC: .4byte sub_08001214
|
||||
_080012D0: .4byte sub_080043A8
|
||||
_080012D4: .4byte sub_080043AC
|
||||
_080012D4: .4byte CreateChestSpawner
|
||||
_080012D8: .4byte sub_080043B0
|
||||
|
||||
thumb_func_start sub_080012DC
|
||||
|
@ -239,7 +239,7 @@ _08001352:
|
|||
.align 2, 0
|
||||
_08001358: .4byte gEnemyFunctions
|
||||
_0800135C: .4byte UpdateAnimationVariableFrames
|
||||
_08001360: .4byte sub_080043B4
|
||||
_08001360: .4byte CreateItemOnGround
|
||||
_08001364: .4byte 0x00001800
|
||||
_08001368: .4byte gUnk_080012C8
|
||||
_0800136C: .4byte gUnk_080012C8
|
||||
|
|
|
@ -52,9 +52,9 @@ sub_0800442E: @ 0x0800442E
|
|||
_08004448:
|
||||
movs r0, #0
|
||||
pop {r1, pc}
|
||||
_0800444C: .4byte sub_080043B4
|
||||
_0800444C: .4byte CreateItemOnGround
|
||||
_08004450: .4byte sub_080043A8
|
||||
_08004454: .4byte sub_080043AC
|
||||
_08004454: .4byte CreateChestSpawner
|
||||
_08004458: .4byte sub_080043B0
|
||||
|
||||
thumb_func_start sub_0800445C
|
||||
|
|
|
@ -108,7 +108,7 @@ _08016E94:
|
|||
cmp r1, #0
|
||||
beq _08016ED6
|
||||
ldr r2, _08016F14 @ =0x040000D4
|
||||
ldr r0, _08016F18 @ =gUnk_02021F30
|
||||
ldr r0, _08016F18 @ =gBG1Buffer
|
||||
str r0, [r2]
|
||||
ldrh r1, [r1]
|
||||
movs r0, #0xf8
|
||||
|
@ -152,7 +152,7 @@ _08016F08: .4byte gUnk_03001000
|
|||
_08016F0C: .4byte gUnk_02000070
|
||||
_08016F10: .4byte gUnk_02025EB0
|
||||
_08016F14: .4byte 0x040000D4
|
||||
_08016F18: .4byte gUnk_02021F30
|
||||
_08016F18: .4byte gBG1Buffer
|
||||
_08016F1C: .4byte 0x84000170
|
||||
_08016F20: .4byte gUnk_0200B650
|
||||
_08016F24: .4byte gUnk_020344B0
|
||||
|
|
|
@ -44,7 +44,7 @@ _0801C398:
|
|||
bl LoadPaletteGroup
|
||||
movs r0, #0x10
|
||||
bl LoadGfxGroup
|
||||
ldr r4, _0801C478 @ =gUnk_02034CB0
|
||||
ldr r4, _0801C478 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
adds r0, r4, #0
|
||||
|
@ -122,7 +122,7 @@ _0801C398:
|
|||
.align 2, 0
|
||||
_0801C470: .4byte gUnk_0200AF00
|
||||
_0801C474: .4byte gUnk_02002A40
|
||||
_0801C478: .4byte gUnk_02034CB0
|
||||
_0801C478: .4byte gBG0Buffer
|
||||
_0801C47C: .4byte gScreen
|
||||
_0801C480: .4byte 0x00001F0C
|
||||
_0801C484: .4byte gUnk_03000000
|
||||
|
|
|
@ -375,7 +375,7 @@ sub_0801CB20: @ 0x0801CB20
|
|||
bne _0801CB76
|
||||
ldrh r1, [r1, #6]
|
||||
lsls r1, r1, #4
|
||||
ldr r0, _0801CB54 @ =gUnk_080029B4
|
||||
ldr r0, _0801CB54 @ =gSpritePtrs
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r3, #0x10]
|
||||
lsls r0, r0, #2
|
||||
|
@ -395,7 +395,7 @@ sub_0801CB20: @ 0x0801CB20
|
|||
strb r0, [r3]
|
||||
b _0801CB74
|
||||
.align 2, 0
|
||||
_0801CB54: .4byte gUnk_080029B4
|
||||
_0801CB54: .4byte gSpritePtrs
|
||||
_0801CB58:
|
||||
ldrb r0, [r3, #0x19]
|
||||
cmp r0, r2
|
||||
|
|
|
@ -324,7 +324,7 @@ sub_0801DA90: @ 0x0801DA90
|
|||
ldr r0, _0801DB08 @ =0x0600C000
|
||||
movs r1, #0x20
|
||||
bl _DmaZero
|
||||
ldr r0, _0801DB0C @ =gUnk_02034CB0
|
||||
ldr r0, _0801DB0C @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -339,7 +339,7 @@ _0801DAFC: .4byte 0x040000B0
|
|||
_0801DB00: .4byte 0x0000C5FF
|
||||
_0801DB04: .4byte 0x00007FFF
|
||||
_0801DB08: .4byte 0x0600C000
|
||||
_0801DB0C: .4byte gUnk_02034CB0
|
||||
_0801DB0C: .4byte gBG0Buffer
|
||||
|
||||
thumb_func_start sub_0801DB10
|
||||
sub_0801DB10: @ 0x0801DB10
|
||||
|
@ -370,11 +370,11 @@ sub_0801DB34: @ 0x0801DB34
|
|||
adds r0, r4, #0
|
||||
movs r1, #0x7c
|
||||
bl _DmaZero
|
||||
ldr r0, _0801DB70 @ =gUnk_02034CB0
|
||||
ldr r0, _0801DB70 @ =gBG0Buffer
|
||||
str r0, [r4, #0x10]
|
||||
ldr r0, _0801DB74 @ =0x00001F0C
|
||||
strh r0, [r4, #8]
|
||||
ldr r0, _0801DB78 @ =gUnk_02021F30
|
||||
ldr r0, _0801DB78 @ =gBG1Buffer
|
||||
str r0, [r4, #0x1c]
|
||||
ldr r0, _0801DB7C @ =0x00001C01
|
||||
strh r0, [r4, #0x14]
|
||||
|
@ -382,7 +382,7 @@ sub_0801DB34: @ 0x0801DB34
|
|||
str r0, [r4, #0x28]
|
||||
ldr r0, _0801DB84 @ =0x00001D02
|
||||
strh r0, [r4, #0x20]
|
||||
ldr r0, _0801DB88 @ =gUnk_02001A40
|
||||
ldr r0, _0801DB88 @ =gBG3Buffer
|
||||
str r0, [r4, #0x34]
|
||||
ldr r0, _0801DB8C @ =0x00001E03
|
||||
strh r0, [r4, #0x2c]
|
||||
|
@ -394,13 +394,13 @@ sub_0801DB34: @ 0x0801DB34
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801DB6C: .4byte gScreen
|
||||
_0801DB70: .4byte gUnk_02034CB0
|
||||
_0801DB70: .4byte gBG0Buffer
|
||||
_0801DB74: .4byte 0x00001F0C
|
||||
_0801DB78: .4byte gUnk_02021F30
|
||||
_0801DB78: .4byte gBG1Buffer
|
||||
_0801DB7C: .4byte 0x00001C01
|
||||
_0801DB80: .4byte gUnk_020344B0
|
||||
_0801DB84: .4byte 0x00001D02
|
||||
_0801DB88: .4byte gUnk_02001A40
|
||||
_0801DB88: .4byte gBG3Buffer
|
||||
_0801DB8C: .4byte 0x00001E03
|
||||
_0801DB90: .4byte 0x0000FFFF
|
||||
|
||||
|
|
|
@ -1566,18 +1566,18 @@ _0805331C: .4byte gScreenTransition
|
|||
thumb_func_start sub_08053320
|
||||
sub_08053320: @ 0x08053320
|
||||
push {r4, lr}
|
||||
ldr r0, _0805337C @ =gUnk_02034CB0
|
||||
ldr r0, _0805337C @ =gBG0Buffer
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #4
|
||||
adds r1, r4, #0
|
||||
bl _DmaZero
|
||||
ldr r0, _08053380 @ =gUnk_02021F30
|
||||
ldr r0, _08053380 @ =gBG1Buffer
|
||||
adds r1, r4, #0
|
||||
bl _DmaZero
|
||||
ldr r0, _08053384 @ =gUnk_020344B0
|
||||
adds r1, r4, #0
|
||||
bl _DmaZero
|
||||
ldr r0, _08053388 @ =gUnk_02001A40
|
||||
ldr r0, _08053388 @ =gBG3Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl _DmaZero
|
||||
|
@ -1602,10 +1602,10 @@ _08053362:
|
|||
bl sub_0801D79C
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805337C: .4byte gUnk_02034CB0
|
||||
_08053380: .4byte gUnk_02021F30
|
||||
_0805337C: .4byte gBG0Buffer
|
||||
_08053380: .4byte gBG1Buffer
|
||||
_08053384: .4byte gUnk_020344B0
|
||||
_08053388: .4byte gUnk_02001A40
|
||||
_08053388: .4byte gBG3Buffer
|
||||
_0805338C: .4byte gRoomControls
|
||||
|
||||
thumb_func_start sub_08053390
|
||||
|
@ -2219,7 +2219,7 @@ sub_08053800: @ 0x08053800
|
|||
adds r0, r5, #0
|
||||
adds r0, #0x3a
|
||||
bl LoadGfxGroup
|
||||
ldr r0, _08053888 @ =gUnk_02021F30
|
||||
ldr r0, _08053888 @ =gBG1Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -2251,7 +2251,7 @@ _0805387A:
|
|||
_0805387C: .4byte gFadeControl
|
||||
_08053880: .4byte gMenu
|
||||
_08053884: .4byte gUnk_080FCCB4
|
||||
_08053888: .4byte gUnk_02021F30
|
||||
_08053888: .4byte gBG1Buffer
|
||||
_0805388C: .4byte 0x00000F01
|
||||
_08053890: .4byte gScreen
|
||||
|
||||
|
|
|
@ -1071,7 +1071,7 @@ sub_08056C68: @ 0x08056C68
|
|||
ldrb r1, [r5, #4]
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _08056CBC @ =gUnk_02034CB0
|
||||
ldr r1, _08056CBC @ =gBG0Buffer
|
||||
adds r1, r0, r1
|
||||
ldrb r0, [r5, #7]
|
||||
adds r0, #2
|
||||
|
@ -1101,7 +1101,7 @@ _08056CB4:
|
|||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08056CB8: .4byte gUnk_02036A38
|
||||
_08056CBC: .4byte gUnk_02034CB0
|
||||
_08056CBC: .4byte gBG0Buffer
|
||||
|
||||
thumb_func_start sub_08056CC0
|
||||
sub_08056CC0: @ 0x08056CC0
|
||||
|
@ -1215,7 +1215,7 @@ sub_08056D70: @ 0x08056D70
|
|||
ldrb r1, [r4, #4]
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r1, _08056DBC @ =gUnk_02034CB0
|
||||
ldr r1, _08056DBC @ =gBG0Buffer
|
||||
adds r0, r0, r1
|
||||
ldr r3, _08056DC0 @ =0x0000F07B
|
||||
ldrb r1, [r4, #6]
|
||||
|
@ -1234,7 +1234,7 @@ _08056DB0:
|
|||
.align 2, 0
|
||||
_08056DB4: .4byte gUnk_02022780
|
||||
_08056DB8: .4byte gUnk_02036A40
|
||||
_08056DBC: .4byte gUnk_02034CB0
|
||||
_08056DBC: .4byte gBG0Buffer
|
||||
_08056DC0: .4byte 0x0000F07B
|
||||
_08056DC4: .4byte gUnk_02036A38
|
||||
|
||||
|
@ -1438,7 +1438,7 @@ sub_08056F1C: @ 0x08056F1C
|
|||
ldrb r0, [r2, #4]
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _08056F68 @ =gUnk_02034CB0
|
||||
ldr r0, _08056F68 @ =gBG0Buffer
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r2, #7]
|
||||
adds r0, #1
|
||||
|
@ -1458,7 +1458,7 @@ _08056F58: .4byte gUnk_02022780
|
|||
_08056F5C: .4byte 0x0010FF00
|
||||
_08056F60: .4byte 0x00100200
|
||||
_08056F64: .4byte gUnk_02036A40
|
||||
_08056F68: .4byte gUnk_02034CB0
|
||||
_08056F68: .4byte gBG0Buffer
|
||||
_08056F6C: .4byte 0x0000F080
|
||||
|
||||
thumb_func_start sub_08056F70
|
||||
|
|
|
@ -5,117 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0805EC60
|
||||
sub_0805EC60: @ 0x0805EC60
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r3, #0x19]
|
||||
lsls r0, r1, #0x1e
|
||||
cmp r0, #0
|
||||
beq _0805EC90
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r3, #0x19]
|
||||
ldrb r2, [r3, #0x1b]
|
||||
lsls r1, r2, #0x1a
|
||||
lsrs r1, r1, #0x1b
|
||||
movs r0, #0x3f
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
strb r0, [r3, #0x1b]
|
||||
ldr r0, _0805EC94 @ =gUnk_03000000
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r0
|
||||
ldr r0, _0805EC98 @ =0x00000426
|
||||
adds r1, r1, r0
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
_0805EC90:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805EC94: .4byte gUnk_03000000
|
||||
_0805EC98: .4byte 0x00000426
|
||||
|
||||
thumb_func_start sub_0805EC9C
|
||||
sub_0805EC9C: @ 0x0805EC9C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r6, r2, #0
|
||||
adds r7, r3, #0
|
||||
ldrb r0, [r4, #0x1b]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1b
|
||||
cmp r0, #0
|
||||
bne _0805ECBE
|
||||
adds r0, r4, #0
|
||||
bl sub_0805EC04
|
||||
cmp r0, #0
|
||||
bne _0805ECBE
|
||||
movs r0, #0
|
||||
b _0805ECE0
|
||||
_0805ECBE:
|
||||
ldr r1, _0805ECE4 @ =gUnk_03000000
|
||||
ldr r0, _0805ECE8 @ =0x00000427
|
||||
adds r2, r1, r0
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r4, #0x1b]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1b
|
||||
lsls r0, r0, #3
|
||||
movs r2, #0x84
|
||||
lsls r2, r2, #3
|
||||
adds r1, r1, r2
|
||||
adds r0, r0, r1
|
||||
strh r5, [r0]
|
||||
strh r6, [r0, #2]
|
||||
strh r7, [r0, #4]
|
||||
movs r0, #1
|
||||
_0805ECE0:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0805ECE4: .4byte gUnk_03000000
|
||||
_0805ECE8: .4byte 0x00000427
|
||||
|
||||
thumb_func_start sub_0805ECEC
|
||||
sub_0805ECEC: @ 0x0805ECEC
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _0805ED0C @ =gUnk_03000000
|
||||
ldr r4, _0805ED10 @ =0x00000427
|
||||
adds r6, r5, r4
|
||||
movs r4, #1
|
||||
strb r4, [r6]
|
||||
lsls r0, r0, #3
|
||||
movs r4, #0x84
|
||||
lsls r4, r4, #3
|
||||
adds r5, r5, r4
|
||||
adds r0, r0, r5
|
||||
strh r1, [r0]
|
||||
strh r2, [r0, #2]
|
||||
strh r3, [r0, #4]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0805ED0C: .4byte gUnk_03000000
|
||||
_0805ED10: .4byte 0x00000427
|
||||
|
||||
thumb_func_start sub_0805ED14
|
||||
sub_0805ED14: @ 0x0805ED14
|
||||
ldr r2, _0805ED2C @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x9c
|
||||
str r0, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x98
|
||||
movs r1, #0
|
||||
strh r1, [r0]
|
||||
adds r0, #2
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0805ED2C: .4byte gPlayerState
|
||||
|
||||
thumb_func_start sub_0805ED30
|
||||
sub_0805ED30: @ 0x0805ED30
|
||||
push {r4, lr}
|
||||
|
@ -1529,677 +1418,3 @@ _0805F7D2:
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0805F7DC
|
||||
sub_0805F7DC: @ 0x0805F7DC
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
ldrh r0, [r4, #4]
|
||||
ldrh r1, [r4, #6]
|
||||
cmp r0, r1
|
||||
bhi _0805F7EE
|
||||
movs r0, #0
|
||||
b _0805F81E
|
||||
_0805F7EE:
|
||||
adds r0, r6, #0
|
||||
bl sub_0805F25C
|
||||
adds r5, r0, #0
|
||||
ldrh r7, [r4, #6]
|
||||
lsrs r0, r6, #8
|
||||
cmp r0, #4
|
||||
bls _0805F808
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F820
|
||||
adds r5, #0x40
|
||||
_0805F808:
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0805F820
|
||||
ldrh r1, [r4, #4]
|
||||
ldrh r0, [r4, #6]
|
||||
cmp r0, r1
|
||||
bls _0805F81A
|
||||
strh r1, [r4, #6]
|
||||
_0805F81A:
|
||||
ldrh r0, [r4, #6]
|
||||
subs r0, r0, r7
|
||||
_0805F81E:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0805F820
|
||||
sub_0805F820: @ 0x0805F820
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r7, r0, #0
|
||||
adds r4, r1, #0
|
||||
ldrh r0, [r7, #4]
|
||||
ldrh r1, [r7, #6]
|
||||
subs r0, r0, r1
|
||||
cmp r0, #0
|
||||
ble _0805F8DC
|
||||
ldr r1, _0805F854 @ =gUnk_02036A58
|
||||
adds r0, r4, #0
|
||||
bl sub_08002724
|
||||
ldrb r0, [r7, #1]
|
||||
cmp r0, #0
|
||||
bne _0805F858
|
||||
ldr r0, [r4]
|
||||
bl sub_0805F7A0
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
lsrs r4, r0, #8
|
||||
b _0805F85C
|
||||
.align 2, 0
|
||||
_0805F854: .4byte gUnk_02036A58
|
||||
_0805F858:
|
||||
movs r1, #0
|
||||
movs r4, #8
|
||||
_0805F85C:
|
||||
ldrh r0, [r7, #4]
|
||||
ldrh r3, [r7, #6]
|
||||
subs r0, r0, r3
|
||||
cmp r0, #8
|
||||
ble _0805F868
|
||||
movs r0, #8
|
||||
_0805F868:
|
||||
cmp r0, r4
|
||||
bge _0805F86E
|
||||
adds r4, r0, #0
|
||||
_0805F86E:
|
||||
ldr r0, _0805F8BC @ =gUnk_02036A58
|
||||
adds r6, r1, r0
|
||||
ldr r0, [r7, #8]
|
||||
mov sb, r0
|
||||
ldrb r0, [r7, #3]
|
||||
lsls r2, r0, #1
|
||||
adds r2, r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldrb r0, [r7, #2]
|
||||
lsls r0, r0, #5
|
||||
ldr r1, _0805F8C0 @ =gUnk_0810942E
|
||||
adds r0, r0, r1
|
||||
adds r2, r2, r0
|
||||
mov r8, r2
|
||||
adds r5, r3, #0
|
||||
adds r0, r5, r4
|
||||
strh r0, [r7, #6]
|
||||
ldrb r0, [r7]
|
||||
lsrs r0, r0, #4
|
||||
cmp r0, #1
|
||||
beq _0805F8D4
|
||||
adds r0, r4, #0
|
||||
subs r4, #1
|
||||
cmp r0, #0
|
||||
ble _0805F8DC
|
||||
_0805F8A0:
|
||||
adds r0, r6, #0
|
||||
mov r1, sb
|
||||
mov r2, r8
|
||||
adds r3, r5, #0
|
||||
bl sub_080026C4
|
||||
adds r6, #1
|
||||
adds r5, #1
|
||||
adds r0, r4, #0
|
||||
subs r4, #1
|
||||
cmp r0, #0
|
||||
bgt _0805F8A0
|
||||
b _0805F8DC
|
||||
.align 2, 0
|
||||
_0805F8BC: .4byte gUnk_02036A58
|
||||
_0805F8C0: .4byte gUnk_0810942E
|
||||
_0805F8C4:
|
||||
adds r0, r6, #0
|
||||
mov r1, sb
|
||||
mov r2, r8
|
||||
adds r3, r5, #0
|
||||
bl sub_080026F2
|
||||
adds r6, #1
|
||||
adds r5, #1
|
||||
_0805F8D4:
|
||||
adds r0, r4, #0
|
||||
subs r4, #1
|
||||
cmp r0, #0
|
||||
bgt _0805F8C4
|
||||
_0805F8DC:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0805F8E4
|
||||
sub_0805F8E4: @ 0x0805F8E4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r1, #0
|
||||
ldrb r5, [r4, #1]
|
||||
movs r1, #1
|
||||
strb r1, [r4, #1]
|
||||
adds r1, r4, #0
|
||||
bl sub_0805F7DC
|
||||
strb r5, [r4, #1]
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0805F8F8
|
||||
sub_0805F8F8: @ 0x0805F8F8
|
||||
lsls r1, r0, #1
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #6
|
||||
ldr r0, _0805F910 @ =gUnk_081094CE
|
||||
adds r1, r1, r0
|
||||
ldr r2, _0805F914 @ =gUnk_0810926C
|
||||
ldrb r0, [r1, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r2
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0805F910: .4byte gUnk_081094CE
|
||||
_0805F914: .4byte gUnk_0810926C
|
||||
|
||||
thumb_func_start sub_0805F918
|
||||
sub_0805F918: @ 0x0805F918
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
mov sl, r2
|
||||
adds r0, r5, #0
|
||||
bl sub_0805F8F8
|
||||
ldr r1, _0805F990 @ =gUnk_02036AD8
|
||||
movs r2, #0xe0
|
||||
bl _DmaFill32
|
||||
ldr r0, _0805F994 @ =gUnk_081092AC
|
||||
lsls r4, r4, #2
|
||||
adds r4, r4, r0
|
||||
ldr r4, [r4]
|
||||
mov r8, r4
|
||||
lsls r0, r5, #1
|
||||
adds r0, r0, r5
|
||||
lsls r0, r0, #6
|
||||
ldr r1, _0805F998 @ =gUnk_081094CE
|
||||
adds r0, r0, r1
|
||||
mov sb, r0
|
||||
movs r7, #0
|
||||
movs r6, #0
|
||||
_0805F950:
|
||||
ldr r4, _0805F99C @ =gUnk_02036A58
|
||||
mov r0, r8
|
||||
adds r1, r4, #0
|
||||
bl sub_08002724
|
||||
movs r0, #0x40
|
||||
add r8, r0
|
||||
movs r5, #0
|
||||
adds r6, #1
|
||||
_0805F962:
|
||||
adds r0, r4, #0
|
||||
ldr r1, _0805F990 @ =gUnk_02036AD8
|
||||
mov r2, sb
|
||||
adds r3, r7, #0
|
||||
bl sub_080026C4
|
||||
adds r4, #1
|
||||
adds r7, #1
|
||||
adds r5, #1
|
||||
cmp r5, #7
|
||||
bls _0805F962
|
||||
cmp r6, #2
|
||||
bls _0805F950
|
||||
ldr r0, _0805F990 @ =gUnk_02036AD8
|
||||
mov r1, sl
|
||||
movs r2, #0xe0
|
||||
bl LoadAssetAsync
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0805F990: .4byte gUnk_02036AD8
|
||||
_0805F994: .4byte gUnk_081092AC
|
||||
_0805F998: .4byte gUnk_081094CE
|
||||
_0805F99C: .4byte gUnk_02036A58
|
||||
|
||||
thumb_func_start sub_0805F9A0
|
||||
sub_0805F9A0: @ 0x0805F9A0
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
bne _0805F9D0
|
||||
ldr r1, _0805F9C4 @ =gUnk_081092D4
|
||||
movs r3, #0
|
||||
_0805F9B2:
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r2
|
||||
beq _0805F9C8
|
||||
adds r3, #1
|
||||
adds r1, #2
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0805F9B2
|
||||
b _0805F9D8
|
||||
.align 2, 0
|
||||
_0805F9C4: .4byte gUnk_081092D4
|
||||
_0805F9C8:
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
adds r0, r3, r1
|
||||
b _0805F9E2
|
||||
_0805F9D0:
|
||||
ldr r0, _0805F9E4 @ =0x0000031A
|
||||
cmp r2, r0
|
||||
bne _0805F9D8
|
||||
movs r2, #1
|
||||
_0805F9D8:
|
||||
movs r0, #0xff
|
||||
ands r0, r2
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
adds r0, r0, r1
|
||||
_0805F9E2:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805F9E4: .4byte 0x0000031A
|
||||
|
||||
thumb_func_start HandleDebugTextScreen
|
||||
HandleDebugTextScreen: @ 0x0805F9E8
|
||||
push {lr}
|
||||
ldr r1, _0805F9FC @ =gUnk_08109A30
|
||||
ldr r0, _0805FA00 @ =gUnk_03001000
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805F9FC: .4byte gUnk_08109A30
|
||||
_0805FA00: .4byte gUnk_03001000
|
||||
|
||||
thumb_func_start sub_0805FA04
|
||||
sub_0805FA04: @ 0x0805FA04
|
||||
push {r4, r5, lr}
|
||||
movs r0, #1
|
||||
bl sub_0801DA90
|
||||
ldr r0, _0805FA78 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
ldr r0, _0805FA7C @ =gUnk_02001A40
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl _DmaZero
|
||||
ldr r0, _0805FA80 @ =gScreen
|
||||
movs r2, #0
|
||||
movs r1, #0x94
|
||||
lsls r1, r1, #4
|
||||
strh r1, [r0]
|
||||
strh r2, [r0, #0xa]
|
||||
strh r2, [r0, #0xc]
|
||||
strh r2, [r0, #0x2e]
|
||||
strh r2, [r0, #0x30]
|
||||
ldr r1, _0805FA84 @ =0x00001E0F
|
||||
strh r1, [r0, #0x2c]
|
||||
movs r5, #1
|
||||
movs r1, #1
|
||||
strh r1, [r0, #0x32]
|
||||
bl sub_08056418
|
||||
ldr r0, _0805FA88 @ =gUnk_02032EC0
|
||||
movs r1, #0xed
|
||||
lsls r1, r1, #2
|
||||
bl _DmaZero
|
||||
ldr r4, _0805FA8C @ =gMenu
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x30
|
||||
bl _DmaZero
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
strb r0, [r4, #0x16]
|
||||
bl sub_08053320
|
||||
ldr r1, _0805FA90 @ =0x00001144
|
||||
movs r0, #0
|
||||
bl sub_0801D79C
|
||||
ldr r0, _0805FA94 @ =gUnk_03001000
|
||||
strb r5, [r0, #3]
|
||||
bl sub_080A3210
|
||||
bl sub_08050008
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0805FA78: .4byte gBG0Buffer
|
||||
_0805FA7C: .4byte gUnk_02001A40
|
||||
_0805FA80: .4byte gScreen
|
||||
_0805FA84: .4byte 0x00001E0F
|
||||
_0805FA88: .4byte gUnk_02032EC0
|
||||
_0805FA8C: .4byte gMenu
|
||||
_0805FA90: .4byte 0x00001144
|
||||
_0805FA94: .4byte gUnk_03001000
|
||||
|
||||
thumb_func_start sub_0805FA98
|
||||
sub_0805FA98: @ 0x0805FA98
|
||||
push {r4, lr}
|
||||
ldr r0, _0805FAB4 @ =gUnk_03000FF0
|
||||
ldrh r1, [r0, #2]
|
||||
adds r2, r0, #0
|
||||
cmp r1, #0x80
|
||||
beq _0805FAD8
|
||||
cmp r1, #0x80
|
||||
bgt _0805FAB8
|
||||
cmp r1, #2
|
||||
beq _0805FB44
|
||||
cmp r1, #0x40
|
||||
beq _0805FACA
|
||||
b _0805FB4A
|
||||
.align 2, 0
|
||||
_0805FAB4: .4byte gUnk_03000FF0
|
||||
_0805FAB8:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
cmp r1, r0
|
||||
beq _0805FB28
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
beq _0805FAE8
|
||||
b _0805FB4A
|
||||
_0805FACA:
|
||||
ldr r1, _0805FAD4 @ =gMenu
|
||||
ldrb r0, [r1, #0x11]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0x11]
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FAD4: .4byte gMenu
|
||||
_0805FAD8:
|
||||
ldr r1, _0805FAE4 @ =gMenu
|
||||
ldrb r0, [r1, #0x11]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0x11]
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FAE4: .4byte gMenu
|
||||
_0805FAE8:
|
||||
ldr r0, _0805FB04 @ =gMenu
|
||||
ldrb r1, [r0, #0x10]
|
||||
movs r2, #1
|
||||
eors r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
cmp r1, #0
|
||||
bne _0805FB10
|
||||
ldr r0, _0805FB08 @ =gScreen
|
||||
ldr r1, _0805FB0C @ =0x00001F0C
|
||||
strh r1, [r0, #8]
|
||||
subs r1, #0xfd
|
||||
strh r1, [r0, #0x2c]
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FB04: .4byte gMenu
|
||||
_0805FB08: .4byte gScreen
|
||||
_0805FB0C: .4byte 0x00001F0C
|
||||
_0805FB10:
|
||||
ldr r0, _0805FB1C @ =gScreen
|
||||
ldr r1, _0805FB20 @ =0x00001F0F
|
||||
strh r1, [r0, #8]
|
||||
ldr r1, _0805FB24 @ =0x00001E0C
|
||||
strh r1, [r0, #0x2c]
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FB1C: .4byte gScreen
|
||||
_0805FB20: .4byte 0x00001F0F
|
||||
_0805FB24: .4byte 0x00001E0C
|
||||
_0805FB28:
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0x12
|
||||
ldr r1, _0805FB40 @ =gMenu
|
||||
ldrb r0, [r1, #0x16]
|
||||
strb r0, [r2, #7]
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsls r0, r0, #8
|
||||
ldrb r1, [r1, #0x15]
|
||||
adds r0, r0, r1
|
||||
bl TextboxNoOverlapFollow
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FB40: .4byte gMenu
|
||||
_0805FB44:
|
||||
bl sub_08056418
|
||||
b _0805FBA4
|
||||
_0805FB4A:
|
||||
ldrh r0, [r2, #4]
|
||||
cmp r0, #0x10
|
||||
beq _0805FB5A
|
||||
cmp r0, #0x20
|
||||
bne _0805FB5E
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
b _0805FB60
|
||||
_0805FB5A:
|
||||
movs r1, #1
|
||||
b _0805FB60
|
||||
_0805FB5E:
|
||||
movs r1, #0
|
||||
_0805FB60:
|
||||
ldr r4, _0805FB74 @ =gMenu
|
||||
ldrb r0, [r4, #0x11]
|
||||
cmp r0, #1
|
||||
beq _0805FB8E
|
||||
cmp r0, #1
|
||||
bgt _0805FB78
|
||||
cmp r0, #0
|
||||
beq _0805FB7E
|
||||
b _0805FBA4
|
||||
.align 2, 0
|
||||
_0805FB74: .4byte gMenu
|
||||
_0805FB78:
|
||||
cmp r0, #2
|
||||
beq _0805FB96
|
||||
b _0805FBA4
|
||||
_0805FB7E:
|
||||
ldrb r0, [r4, #0x14]
|
||||
adds r0, r0, r1
|
||||
adds r0, #0x50
|
||||
movs r1, #0x50
|
||||
bl __modsi3
|
||||
strb r0, [r4, #0x14]
|
||||
b _0805FBA4
|
||||
_0805FB8E:
|
||||
ldrb r0, [r4, #0x15]
|
||||
adds r0, r0, r1
|
||||
strb r0, [r4, #0x15]
|
||||
b _0805FBA4
|
||||
_0805FB96:
|
||||
ldrb r0, [r4, #0x16]
|
||||
adds r0, r0, r1
|
||||
adds r0, #7
|
||||
movs r1, #7
|
||||
bl __modsi3
|
||||
strb r0, [r4, #0x16]
|
||||
_0805FBA4:
|
||||
ldr r4, _0805FBBC @ =gMenu
|
||||
ldrb r0, [r4, #0x11]
|
||||
adds r0, #3
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #0x11]
|
||||
ldr r1, _0805FBC0 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0x32]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805FBBC: .4byte gMenu
|
||||
_0805FBC0: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_0805FBC4
|
||||
sub_0805FBC4: @ 0x0805FBC4
|
||||
push {lr}
|
||||
movs r0, #0
|
||||
bl InitScreen
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0805FBD0
|
||||
sub_0805FBD0: @ 0x0805FBD0
|
||||
push {lr}
|
||||
ldr r2, _0805FBE4 @ =gUnk_08109AC8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805FBE4: .4byte gUnk_08109AC8
|
||||
|
||||
thumb_func_start sub_0805FBE8
|
||||
sub_0805FBE8: @ 0x0805FBE8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r4, _0805FC68 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl CopyPosition
|
||||
ldrb r0, [r5, #0xc]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
adds r4, #0x3c
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x3c
|
||||
strb r0, [r1]
|
||||
ldr r0, _0805FC6C @ =gUnk_08109AD0
|
||||
str r0, [r5, #0x48]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r5, #0x24]
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r5, #0x14]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _0805FC36
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xb]
|
||||
_0805FC36:
|
||||
ldrb r1, [r5, #0x14]
|
||||
lsls r0, r1, #2
|
||||
strb r0, [r5, #0x15]
|
||||
movs r0, #0x3c
|
||||
str r0, [r5, #0x6c]
|
||||
lsls r1, r1, #0x18
|
||||
lsrs r1, r1, #0x19
|
||||
adds r1, #0xc
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r5, #0
|
||||
bl sub_0801766C
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F69C
|
||||
adds r0, r5, #0
|
||||
bl sub_0805FC74
|
||||
ldr r0, _0805FC70 @ =0x0000013F
|
||||
bl PlaySFX
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0805FC68: .4byte gPlayerEntity
|
||||
_0805FC6C: .4byte gUnk_08109AD0
|
||||
_0805FC70: .4byte 0x0000013F
|
||||
|
||||
thumb_func_start sub_0805FC74
|
||||
sub_0805FC74: @ 0x0805FC74
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x6c]
|
||||
subs r0, #1
|
||||
str r0, [r4, #0x6c]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
cmp r0, r1
|
||||
beq _0805FD1C
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F69C
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0xb]
|
||||
cmp r0, #0
|
||||
bne _0805FCA4
|
||||
adds r0, r4, #0
|
||||
bl sub_0800451C
|
||||
_0805FCA4:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _0805FD10 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r4, r5]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldr r1, _0805FD14 @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
movs r2, #0x80
|
||||
bl sub_080002F0
|
||||
cmp r0, #0
|
||||
bne _0805FCF6
|
||||
ldr r1, _0805FD18 @ =gUnk_08003E44
|
||||
movs r0, #0x2e
|
||||
ldrsh r2, [r4, r0]
|
||||
movs r5, #0x32
|
||||
ldrsh r3, [r4, r5]
|
||||
adds r0, r4, #0
|
||||
bl sub_080040D8
|
||||
cmp r0, #0
|
||||
beq _0805FCF6
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x19
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
bl DeleteThisEntity
|
||||
_0805FCF6:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805FD20
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x19
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
bl DeleteThisEntity
|
||||
b _0805FD20
|
||||
.align 2, 0
|
||||
_0805FD10: .4byte gRoomControls
|
||||
_0805FD14: .4byte gPlayerEntity
|
||||
_0805FD18: .4byte gUnk_08003E44
|
||||
_0805FD1C:
|
||||
bl DeleteThisEntity
|
||||
_0805FD20:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
|
|
@ -802,7 +802,7 @@ sub_0807007C: @ 0x0807007C
|
|||
beq _080700C4
|
||||
ldrh r0, [r2, #2]
|
||||
lsls r0, r0, #4
|
||||
ldr r1, _080700C0 @ =gUnk_080029B4
|
||||
ldr r1, _080700C0 @ =gSpritePtrs
|
||||
adds r3, r0, r1
|
||||
ldr r1, [r3, #4]
|
||||
cmp r1, #0
|
||||
|
@ -820,7 +820,7 @@ sub_0807007C: @ 0x0807007C
|
|||
movs r0, #1
|
||||
b _080700C6
|
||||
.align 2, 0
|
||||
_080700C0: .4byte gUnk_080029B4
|
||||
_080700C0: .4byte gSpritePtrs
|
||||
_080700C4:
|
||||
movs r0, #0
|
||||
_080700C6:
|
||||
|
|
|
@ -813,7 +813,7 @@ sub_08078E84: @ 0x08078E84
|
|||
adds r1, #1
|
||||
strb r0, [r1]
|
||||
_08078EAC:
|
||||
ldr r0, _08078ED4 @ =gUnk_080029B4
|
||||
ldr r0, _08078ED4 @ =gSpritePtrs
|
||||
ldrh r2, [r4, #0x12]
|
||||
lsls r2, r2, #4
|
||||
adds r0, #4
|
||||
|
@ -832,7 +832,7 @@ _08078EAC:
|
|||
b _08078EE2
|
||||
.align 2, 0
|
||||
_08078ED0: .4byte gPlayerEntity
|
||||
_08078ED4: .4byte gUnk_080029B4
|
||||
_08078ED4: .4byte gSpritePtrs
|
||||
_08078ED8:
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
|
|
|
@ -351,7 +351,7 @@ sub_080A36F8: @ 0x080A36F8
|
|||
bl LoadPaletteGroup
|
||||
ldrb r0, [r4, #1]
|
||||
bl LoadGfxGroup
|
||||
ldr r0, _080A3760 @ =gUnk_02021F30
|
||||
ldr r0, _080A3760 @ =gBG1Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -383,7 +383,7 @@ _080A3752:
|
|||
_080A3754: .4byte gFadeControl
|
||||
_080A3758: .4byte gMenu
|
||||
_080A375C: .4byte gUnk_08127CEC
|
||||
_080A3760: .4byte gUnk_02021F30
|
||||
_080A3760: .4byte gBG1Buffer
|
||||
_080A3764: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_080A3768
|
||||
|
@ -407,7 +407,7 @@ _080A3780:
|
|||
beq _080A3812
|
||||
b _080A384C
|
||||
_080A378A:
|
||||
ldr r0, _080A37B8 @ =gUnk_02021F30
|
||||
ldr r0, _080A37B8 @ =gBG1Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -429,7 +429,7 @@ _080A378A:
|
|||
strb r2, [r4, #0x18]
|
||||
b _080A385E
|
||||
.align 2, 0
|
||||
_080A37B8: .4byte gUnk_02021F30
|
||||
_080A37B8: .4byte gBG1Buffer
|
||||
_080A37BC: .4byte gUnk_081272E0
|
||||
_080A37C0: .4byte gScreen
|
||||
_080A37C4:
|
||||
|
@ -576,7 +576,7 @@ sub_080A38D0: @ 0x080A38D0
|
|||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A3914
|
||||
ldr r0, _080A3920 @ =gUnk_02021F30
|
||||
ldr r0, _080A3920 @ =gBG1Buffer
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #4
|
||||
adds r1, r6, #0
|
||||
|
@ -606,7 +606,7 @@ _080A3914:
|
|||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A391C: .4byte gFadeControl
|
||||
_080A3920: .4byte gUnk_02021F30
|
||||
_080A3920: .4byte gBG1Buffer
|
||||
_080A3924: .4byte gScreen
|
||||
_080A3928: .4byte gUnk_020344B0
|
||||
_080A392C: .4byte gMenu
|
||||
|
|
|
@ -1266,11 +1266,11 @@ sub_080A4608: @ 0x080A4608
|
|||
adds r1, r4, r2
|
||||
ldrh r1, [r1]
|
||||
bl sub_0801D79C
|
||||
ldr r0, _080A46A4 @ =gUnk_02034CB0
|
||||
ldr r0, _080A46A4 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
ldr r0, _080A46A8 @ =gUnk_02001A40
|
||||
ldr r0, _080A46A8 @ =gBG3Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl _DmaZero
|
||||
|
@ -1321,8 +1321,8 @@ _080A4694:
|
|||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A46A0: .4byte gPaletteBuffer
|
||||
_080A46A4: .4byte gUnk_02034CB0
|
||||
_080A46A8: .4byte gUnk_02001A40
|
||||
_080A46A4: .4byte gBG0Buffer
|
||||
_080A46A8: .4byte gBG3Buffer
|
||||
_080A46AC: .4byte gScreen
|
||||
_080A46B0: .4byte 0x00007898
|
||||
_080A46B4: .4byte gMenu
|
||||
|
@ -2118,7 +2118,7 @@ sub_080A4CBC: @ 0x080A4CBC
|
|||
cmp r0, r6
|
||||
beq _080A4CFE
|
||||
strb r6, [r1, #0x1a]
|
||||
ldr r4, _080A4D10 @ =gUnk_02021F30
|
||||
ldr r4, _080A4D10 @ =gBG1Buffer
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #4
|
||||
adds r0, r4, #0
|
||||
|
@ -2151,7 +2151,7 @@ _080A4CFE:
|
|||
b _080A4D28
|
||||
.align 2, 0
|
||||
_080A4D0C: .4byte gMenu
|
||||
_080A4D10: .4byte gUnk_02021F30
|
||||
_080A4D10: .4byte gBG1Buffer
|
||||
_080A4D14: .4byte 0x0600E000
|
||||
_080A4D18: .4byte gUnk_08128190
|
||||
_080A4D1C: .4byte gScreen
|
||||
|
@ -2241,12 +2241,12 @@ sub_080A4DB8: @ 0x080A4DB8
|
|||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_08056250
|
||||
ldr r0, _080A4E58 @ =gUnk_02034CB0
|
||||
ldr r0, _080A4E58 @ =gBG0Buffer
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #4
|
||||
adds r1, r4, #0
|
||||
bl _DmaZero
|
||||
ldr r0, _080A4E5C @ =gUnk_02021F30
|
||||
ldr r0, _080A4E5C @ =gBG1Buffer
|
||||
adds r1, r4, #0
|
||||
bl _DmaZero
|
||||
ldr r0, _080A4E60 @ =gUnk_020344B0
|
||||
|
@ -2312,8 +2312,8 @@ _080A4E4A:
|
|||
_080A4E54:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A4E58: .4byte gUnk_02034CB0
|
||||
_080A4E5C: .4byte gUnk_02021F30
|
||||
_080A4E58: .4byte gBG0Buffer
|
||||
_080A4E5C: .4byte gBG1Buffer
|
||||
_080A4E60: .4byte gUnk_020344B0
|
||||
_080A4E64: .4byte gUnk_0200AF34
|
||||
_080A4E68: .4byte gMenu
|
||||
|
@ -2577,7 +2577,7 @@ _080A507C: .4byte gUnk_02034490
|
|||
_080A5080:
|
||||
movs r0, #3
|
||||
bl sub_080A4E90
|
||||
ldr r0, _080A5098 @ =gUnk_02034CB0
|
||||
ldr r0, _080A5098 @ =gBG0Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -2587,7 +2587,7 @@ _080A5080:
|
|||
_080A5096:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A5098: .4byte gUnk_02034CB0
|
||||
_080A5098: .4byte gBG0Buffer
|
||||
_080A509C: .4byte gScreen
|
||||
|
||||
thumb_func_start sub_080A50A0
|
||||
|
|
|
@ -2787,7 +2787,7 @@ sub_080A6B04: @ 0x080A6B04
|
|||
adds r1, r4, #0
|
||||
bl sub_0801D79C
|
||||
ldr r0, _080A6C04 @ =0x00005001
|
||||
ldr r1, _080A6C08 @ =gUnk_02001A40
|
||||
ldr r1, _080A6C08 @ =gBG3Buffer
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl _DmaFill16
|
||||
|
@ -2857,7 +2857,7 @@ _080A6BF8: .4byte gUnk_080FE320
|
|||
_080A6BFC: .4byte gMenu
|
||||
_080A6C00: .4byte 0x0000475F
|
||||
_080A6C04: .4byte 0x00005001
|
||||
_080A6C08: .4byte gUnk_02001A40
|
||||
_080A6C08: .4byte gBG3Buffer
|
||||
_080A6C0C: .4byte gPlayerState
|
||||
_080A6C10: .4byte gScreenTransition
|
||||
_080A6C14: .4byte 0x000001FB
|
||||
|
@ -12666,7 +12666,7 @@ _080AB60A:
|
|||
b _080AB62E
|
||||
_080AB610:
|
||||
adds r0, r4, #0
|
||||
bl sub_080043B4
|
||||
bl CreateItemOnGround
|
||||
movs r0, #1
|
||||
b _080AB630
|
||||
_080AB61A:
|
||||
|
@ -12676,7 +12676,7 @@ _080AB61A:
|
|||
b _080AB630
|
||||
_080AB624:
|
||||
adds r0, r4, #0
|
||||
bl sub_080043AC
|
||||
bl CreateChestSpawner
|
||||
movs r0, #1
|
||||
b _080AB630
|
||||
_080AB62E:
|
||||
|
|
|
@ -404,7 +404,7 @@ sub_08057450: @ 0x08057450
|
|||
_08057474:
|
||||
asrs r0, r1, #6
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0805750C @ =gUnk_02001A40
|
||||
ldr r1, _0805750C @ =gBG3Buffer
|
||||
adds r1, r0, r1
|
||||
str r1, [r4, #0x34]
|
||||
ldr r0, [r3, #0x34]
|
||||
|
@ -479,7 +479,7 @@ _08057502:
|
|||
.align 2, 0
|
||||
_08057504: .4byte gScreen
|
||||
_08057508: .4byte gRoomControls
|
||||
_0805750C: .4byte gUnk_02001A40
|
||||
_0805750C: .4byte gBG3Buffer
|
||||
_08057510: .4byte gScreenTransition
|
||||
_08057514: .4byte gUnk_08107C30
|
||||
_08057518: .4byte gUnk_085B4180
|
||||
|
|
|
@ -333,7 +333,7 @@ _080597F4:
|
|||
bl LoadGfxGroup
|
||||
b _08059838
|
||||
_08059800:
|
||||
ldr r4, _0805981C @ =gUnk_02001A40
|
||||
ldr r4, _0805981C @ =gBG3Buffer
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #4
|
||||
adds r0, r4, #0
|
||||
|
@ -345,7 +345,7 @@ _08059800:
|
|||
bl LoadAssetAsync
|
||||
b _08059838
|
||||
.align 2, 0
|
||||
_0805981C: .4byte gUnk_02001A40
|
||||
_0805981C: .4byte gBG3Buffer
|
||||
_08059820: .4byte 0x0600E800
|
||||
_08059824:
|
||||
ldr r0, _0805983C @ =gUnk_0200B650
|
||||
|
|
|
@ -54,7 +54,7 @@ _0805AA04:
|
|||
_0805AA2C:
|
||||
asr r0, r0, #6
|
||||
lsl r0, r0, #9
|
||||
ldr r1, _0805AA54 @ =gUnk_02001A40
|
||||
ldr r1, _0805AA54 @ =gBG3Buffer
|
||||
add r1, r0, r1
|
||||
str r1, [r3, #0x34]
|
||||
add r2, r3, #0
|
||||
|
@ -72,4 +72,4 @@ _0805AA4A:
|
|||
.align 2, 0
|
||||
_0805AA4C: .4byte gScreen
|
||||
_0805AA50: .4byte gRoomControls
|
||||
_0805AA54: .4byte gUnk_02001A40
|
||||
_0805AA54: .4byte gBG3Buffer
|
||||
|
|
|
@ -11,7 +11,7 @@ sub_08052418: @ 0x08052418
|
|||
sub sp, #0x18
|
||||
adds r6, r0, #0
|
||||
adds r4, r1, #0
|
||||
ldr r0, _08052494 @ =gUnk_02021F30
|
||||
ldr r0, _08052494 @ =gBG1Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl _DmaZero
|
||||
|
@ -66,7 +66,7 @@ sub_08052418: @ 0x08052418
|
|||
add sp, #0x18
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08052494: .4byte gUnk_02021F30
|
||||
_08052494: .4byte gBG1Buffer
|
||||
_08052498: .4byte gUnk_020227E8
|
||||
_0805249C: .4byte gUnk_080FCA8C
|
||||
_080524A0: .4byte gUnk_080FCAA4
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_080029B4:: @ 080029B4
|
||||
gSpritePtrs:: @ 080029B4
|
||||
.incbin "baserom.gba", 0x0029B4, 0x000004C
|
||||
|
||||
gUnk_08002A00:: @ 08002A00
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
/*0x11*/ .4byte Item11
|
||||
/*0x12*/ .4byte sub_080700E8
|
||||
/*0x13*/ .4byte sub_080ACF14
|
||||
/*0x14*/ .4byte sub_0805FBD0
|
||||
/*0x14*/ .4byte Item14
|
||||
/*0x15*/ .4byte sub_080A306C
|
||||
/*0x16*/ .4byte SwordBeam
|
||||
/*0x17*/ .4byte NulledItem
|
||||
|
@ -53,7 +53,7 @@
|
|||
.4byte Item11
|
||||
.4byte sub_080700E8
|
||||
.4byte sub_080ACF14
|
||||
.4byte sub_0805FBD0
|
||||
.4byte Item14
|
||||
.4byte sub_080A306C
|
||||
.4byte SwordBeam
|
||||
.4byte NulledItem
|
||||
|
|
|
@ -50,10 +50,10 @@ typedef struct Entity {
|
|||
/* */ } PACKED b;
|
||||
/* */ } PACKED spriteSettings;
|
||||
/*0x19*/ struct {
|
||||
/* */ u8 b0 : 2; // 1-2
|
||||
/* */ u8 alphaBlend : 2; // 4-8
|
||||
/* */ u8 b2 : 2; //0x10
|
||||
/* */ u8 b3 : 2; //0x40
|
||||
/* */ u32 b0 : 2; // 1-2
|
||||
/* */ u32 alphaBlend : 2; // 4-8
|
||||
/* */ u32 b2 : 2; //0x10
|
||||
/* */ u32 b3 : 2; //0x40
|
||||
/* */ } PACKED spriteRendering;
|
||||
/*0x1a*/ union {
|
||||
/* */ u8 raw;
|
||||
|
@ -63,9 +63,9 @@ typedef struct Entity {
|
|||
/* */ } PACKED b;
|
||||
/* */} PACKED palette;
|
||||
/*0x1b*/ struct {
|
||||
/* */ u8 b0 : 4;
|
||||
/* */ u8 flipX : 2; //0x10
|
||||
/* */ u8 flipY : 2; //0x40
|
||||
/* */ u32 b0 : 1;
|
||||
/* */ u32 b1 : 5; //0x10
|
||||
/* */ u32 flipY : 2; //0x40
|
||||
/* */ } PACKED spriteOrientation;
|
||||
/*0x1c*/ u8 field_0x1c;
|
||||
/*0x1d*/ u8 field_0x1d;
|
||||
|
|
|
@ -270,4 +270,15 @@ extern u32 sub_0800442E(Entity*);
|
|||
extern void sub_08081404(Entity*, u32);
|
||||
extern void sub_0807B7D8(u32, u32, u32);
|
||||
extern void sub_08052D74(void*, void*, void*);
|
||||
extern void sub_0800451C(Entity*);
|
||||
extern u32 sub_080002F0(u32, u32, u32);
|
||||
extern u32 sub_080040D8(Entity*, u8*, s32, s32);
|
||||
extern void sub_08053320();
|
||||
extern void sub_0801D79C(u32, u32);
|
||||
extern u32 sub_0805F8F8(u32);
|
||||
extern void sub_08002724(void*, u8*);
|
||||
extern void sub_080026C4(u8*, u8*, u8*, u32);
|
||||
extern void sub_080026F2(u8*, void*, u8*, u32);
|
||||
extern u32 sub_0805F7A0(u32);
|
||||
extern u32* sub_0805F25C(u32);
|
||||
#endif
|
||||
|
|
|
@ -47,6 +47,8 @@
|
|||
#define min(a, b) ((a) < (b) ? (a) : (b))
|
||||
#define max(a, b) ((a) >= (b) ? (a) : (b))
|
||||
|
||||
#define static_assert(cond) extern char assertion[(cond) ? 1 : -1]
|
||||
|
||||
typedef union {
|
||||
s32 WORD;
|
||||
struct {
|
||||
|
@ -74,4 +76,6 @@ union SplitHWord {
|
|||
} PACKED HALF;
|
||||
} PACKED;
|
||||
|
||||
|
||||
|
||||
#endif // GUARD_GLOBAL_H
|
||||
|
|
|
@ -50,6 +50,7 @@ typedef struct {
|
|||
/*0x0A*/ u16 fadeInTime;
|
||||
/*0x0C*/ u8 fillerC[0x3A8];
|
||||
} UI;
|
||||
static_assert(sizeof(UI) == 0x3b4);
|
||||
|
||||
extern Main gUnk_03001000;
|
||||
extern UI gUnk_02032EC0;
|
||||
|
|
|
@ -29,15 +29,17 @@ typedef struct {
|
|||
u16 transitionTimer;
|
||||
u16 field_0xa;
|
||||
u8* field_0xc;
|
||||
u8 unk10[2];
|
||||
u8 focusCoords[2];
|
||||
u8 field_0x12;
|
||||
u8 unk13;
|
||||
u8 filler14[0x2];
|
||||
u8 unk14;
|
||||
u8 unk15;
|
||||
u8 unk16;
|
||||
u8 filler17[0x13];
|
||||
u8 unk2a;
|
||||
int field_0x2c;
|
||||
} Menu;
|
||||
static_assert(sizeof(Menu) == 0x30);
|
||||
|
||||
extern Menu gMenu;
|
||||
|
||||
|
|
|
@ -62,7 +62,10 @@ typedef struct {
|
|||
/*0x8b*/ u8 field_0x8b;
|
||||
/*0x8c*/ u32 field_0x8c;
|
||||
/*0x90*/ union SplitWord field_0x90;
|
||||
/*0x94*/ u32 field_0x94[5];
|
||||
/*0x94*/ u32 field_0x94;
|
||||
/*0x98*/ u16 field_0x98;
|
||||
/*0x9a*/ u16 field_0x9a;
|
||||
/*0x9c*/ u32 field_0x9c[3];
|
||||
/*0xa8*/ u8 field_0xa8;
|
||||
/*0xa9*/ u8 field_0xa9;
|
||||
/*0xaa*/ u8 field_0xaa;
|
||||
|
|
|
@ -174,4 +174,21 @@ typedef struct {
|
|||
} data;
|
||||
} Dialog;
|
||||
|
||||
typedef struct {
|
||||
u8 filler0[0x29C];
|
||||
u16 unk29C;
|
||||
u8 filler29E[0x562];
|
||||
} BGBuffer;
|
||||
extern BGBuffer gBG0Buffer;
|
||||
extern BGBuffer gBG1Buffer;
|
||||
static_assert(sizeof(BGBuffer) == 0x800);
|
||||
|
||||
/*
|
||||
typedef struct {
|
||||
u16 filler0[0x800];
|
||||
} BG3Buffer;
|
||||
extern BG3Buffer gBG3Buffer;
|
||||
static_assert(sizeof(BG3Buffer) == 0x1000);
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,7 +26,7 @@ SECTIONS {
|
|||
. = 0x00000D00; gUnk_02000D00 = .;
|
||||
. = 0x00001A00; gUnk_02001A00 = .;
|
||||
. = 0x00001A3C; gUnk_02001A3C = .;
|
||||
. = 0x00001A40; gUnk_02001A40 = .;
|
||||
. = 0x00001A40; gBG3Buffer = .;
|
||||
. = 0x00001B40; gUnk_02001B40 = .;
|
||||
. = 0x00002A40; gUnk_02002A40 = .;
|
||||
. = 0x00002AA0; gUnk_02002AA0 = .;
|
||||
|
@ -536,6 +536,9 @@ SECTIONS {
|
|||
src/entity.o(.text);
|
||||
src/code_0805EC04.o(.text);
|
||||
asm/code_0805EC04.o(.text);
|
||||
src/code_0805F9A0.o(.text);
|
||||
src/screenDebug.o(.text);
|
||||
src/item14.o(.text);
|
||||
/* npcs */
|
||||
src/npc/gentari.o(.text);
|
||||
src/npc/festari.o(.text);
|
||||
|
|
|
@ -38,14 +38,6 @@ typedef struct {
|
|||
|
||||
extern struct_020227E8 gUnk_020227E8;
|
||||
|
||||
typedef struct {
|
||||
u8 filler0[0x29C];
|
||||
u16 unk29C;
|
||||
u8 filler29E[0x562];
|
||||
} struct_02034CB0;
|
||||
|
||||
extern struct_02034CB0 gUnk_02034CB0;
|
||||
extern struct_02034CB0 gUnk_02021F30;
|
||||
extern SaveFile gSaveFiles[];
|
||||
extern u32 gUsedPalettes;
|
||||
extern u8 gUnk_02000D00[];
|
||||
|
@ -96,7 +88,7 @@ void sub_08050318(u32 arg0, u32 arg1) {
|
|||
|
||||
void sub_08050384(void) {
|
||||
sub_0801C4A0(0, 0);
|
||||
_DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0));
|
||||
_DmaZero(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
gScreen.bg.bg3Control = 1;
|
||||
}
|
||||
|
||||
|
@ -108,8 +100,8 @@ void sub_080503A8(u32 gfxGroup) {
|
|||
|
||||
void sub_080503BC(u8 state) {
|
||||
gUnk_02032EC0.state = state;
|
||||
_DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0));
|
||||
_DmaZero(&gUnk_02021F30, sizeof(gUnk_02021F30));
|
||||
_DmaZero(&gBG0Buffer, sizeof(gBG0Buffer));
|
||||
_DmaZero(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
}
|
||||
|
||||
void sub_080503E4(u32 saveFileId) {
|
||||
|
@ -483,9 +475,9 @@ void sub_08050B3C(u16*);
|
|||
|
||||
void sub_08050AFC(u32 saveFileId) {
|
||||
sub_0805041C(saveFileId);
|
||||
_DmaZero(&gUnk_02021F30, sizeof(gUnk_02021F30));
|
||||
_DmaZero(&gBG1Buffer, sizeof(gBG1Buffer));
|
||||
if (gUnk_02019EE0.unk8[saveFileId] == 1) {
|
||||
sub_08050B3C(&gUnk_02021F30.unk29C);
|
||||
sub_08050B3C(&gBG1Buffer.unk29C);
|
||||
}
|
||||
gScreen.bg.bg2yOffset = 1;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,107 @@
|
|||
#include "entity.h"
|
||||
#include "player.h"
|
||||
|
||||
extern u8 gUnk_03000000;
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
} VStruct;
|
||||
|
||||
typedef struct {
|
||||
u8 filler[0x420];
|
||||
VStruct unk[0x100];
|
||||
} UStruct;
|
||||
|
||||
extern UStruct gUnk_03000000;
|
||||
|
||||
bool32 sub_0805EC04(Entity* this) {
|
||||
u32 i = 1;
|
||||
u8* l = &gUnk_03000000;
|
||||
UStruct* temp = &gUnk_03000000;
|
||||
u32 j = 1;
|
||||
for (; i < 0x20; i++) {
|
||||
if (l[(i * 8) + 0x426] == 0) {
|
||||
l[(i * 8) + 0x426] = j;
|
||||
this->spriteSet.b1 = i;
|
||||
this->spriteSet.b0 |= j;
|
||||
if (temp->unk[i].unk6 == 0) {
|
||||
temp->unk[i].unk6 = j;
|
||||
this->spriteOrientation.b1 = i;
|
||||
this->spriteRendering.b0 |= j;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_0805EC60(Entity* this) {
|
||||
u8 temp;
|
||||
UStruct* temp2;
|
||||
|
||||
if (this->spriteRendering.b0 != 0) {
|
||||
this->spriteRendering.b0 = 0;
|
||||
temp = this->spriteOrientation.b1;
|
||||
this->spriteOrientation.b1 = 0;
|
||||
temp2 = &gUnk_03000000;
|
||||
temp2->unk[temp].unk6 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4) {
|
||||
asm_unified("\
|
||||
push {r4, r5, r6, r7, lr} \n\
|
||||
adds r4, r0, #0 \n\
|
||||
adds r5, r1, #0 \n\
|
||||
adds r6, r2, #0 \n\
|
||||
adds r7, r3, #0 \n\
|
||||
ldrb r0, [r4, #0x1b] \n\
|
||||
lsls r0, r0, #0x1a \n\
|
||||
lsrs r0, r0, #0x1b \n\
|
||||
cmp r0, #0 \n\
|
||||
bne _0805ECBE \n\
|
||||
adds r0, r4, #0 \n\
|
||||
bl sub_0805EC04 \n\
|
||||
cmp r0, #0 \n\
|
||||
bne _0805ECBE \n\
|
||||
movs r0, #0 \n\
|
||||
b _0805ECE0 \n\
|
||||
_0805ECBE: \n\
|
||||
ldr r1, _0805ECE4 @ =gUnk_03000000 \n\
|
||||
ldr r0, _0805ECE8 @ =0x00000427 \n\
|
||||
adds r2, r1, r0 \n\
|
||||
movs r0, #1 \n\
|
||||
strb r0, [r2] \n\
|
||||
ldrb r0, [r4, #0x1b] \n\
|
||||
lsls r0, r0, #0x1a \n\
|
||||
lsrs r0, r0, #0x1b \n\
|
||||
lsls r0, r0, #3 \n\
|
||||
movs r2, #0x84 \n\
|
||||
lsls r2, r2, #3 \n\
|
||||
adds r1, r1, r2 \n\
|
||||
adds r0, r0, r1 \n\
|
||||
strh r5, [r0] \n\
|
||||
strh r6, [r0, #2] \n\
|
||||
strh r7, [r0, #4] \n\
|
||||
movs r0, #1 \n\
|
||||
_0805ECE0: \n\
|
||||
pop {r4, r5, r6, r7, pc} \n\
|
||||
.align 2, 0 \n\
|
||||
_0805ECE4: .4byte gUnk_03000000 \n\
|
||||
_0805ECE8: .4byte 0x00000427 \n\
|
||||
");
|
||||
}
|
||||
|
||||
void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||
u16* temp;
|
||||
|
||||
gUnk_03000000.unk[0].unk7 = 1;
|
||||
|
||||
temp = &gUnk_03000000.unk[param_1].unk0;
|
||||
temp[0] = param_2;
|
||||
temp[1] = param_3;
|
||||
temp[2] = param_4;
|
||||
}
|
||||
|
||||
void sub_0805ED14(u32 param_1) {
|
||||
gPlayerState.field_0x9c[0] = param_1;
|
||||
gPlayerState.field_0x98 = 0;
|
||||
gPlayerState.field_0x9a = 0;
|
||||
}
|
|
@ -0,0 +1,169 @@
|
|||
#include "global.h"
|
||||
#include "functions.h"
|
||||
#include "structures.h"
|
||||
|
||||
extern u16 gUnk_081092D4;
|
||||
extern u8 gUnk_02036AD8;
|
||||
extern u8 gUnk_081094CE;
|
||||
extern u8 gUnk_02036A58;
|
||||
extern void* gUnk_081092AC[];
|
||||
|
||||
typedef struct {
|
||||
u8 filler0[12][16];
|
||||
} VStruct;
|
||||
|
||||
extern VStruct gUnk_0810942E[];
|
||||
extern u32 gUnk_0810926C[];
|
||||
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
} UStruct;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
void* unk8;
|
||||
} WStruct;
|
||||
|
||||
void sub_0805F820(WStruct* r0, u32* r1);
|
||||
|
||||
u32 sub_0805F7DC(u32 r0, WStruct* r1) {
|
||||
u32 temp;
|
||||
u32 temp2;
|
||||
u32* offset;
|
||||
|
||||
if (r1->unk4 <= r1->unk6)
|
||||
return 0;
|
||||
|
||||
offset = sub_0805F25C(r0);
|
||||
temp = r1->unk6;
|
||||
if ((r0 >> 8) > 4) {
|
||||
sub_0805F820(r1, offset);
|
||||
offset += 0x10;
|
||||
}
|
||||
|
||||
sub_0805F820(r1, offset);
|
||||
if (r1->unk6 > r1->unk4) {
|
||||
r1->unk6 = r1->unk4;
|
||||
}
|
||||
return r1->unk6 - temp;
|
||||
}
|
||||
|
||||
void sub_0805F820(WStruct* r0, u32* r1) {
|
||||
u32 bVar1;
|
||||
u32 bVar2;
|
||||
s32 uVar3;
|
||||
s32 uVar4;
|
||||
void* uVar5;
|
||||
u32 uVar6;
|
||||
u32 uVar7;
|
||||
u8* puVar8;
|
||||
u8* temp;
|
||||
void* temp2;
|
||||
VStruct* temp3;
|
||||
|
||||
if (r0->unk4 - r0->unk6 > 0) {
|
||||
sub_08002724(r1, &gUnk_02036A58);
|
||||
if (r0->unk1 == 0) {
|
||||
u32 tmp = sub_0805F7A0(*r1);
|
||||
uVar6 = tmp & 0xf;
|
||||
uVar3 = tmp >> 8;
|
||||
} else {
|
||||
uVar6 = 0;
|
||||
uVar3 = 8;
|
||||
}
|
||||
|
||||
uVar4 = r0->unk4 - r0->unk6;
|
||||
if (uVar4 > 8) {
|
||||
uVar4 = 8;
|
||||
}
|
||||
if (uVar4 < uVar3) {
|
||||
uVar3 = uVar4;
|
||||
}
|
||||
|
||||
puVar8 = &gUnk_02036A58 + uVar6;
|
||||
temp2 = r0->unk8;
|
||||
temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2];
|
||||
uVar7 = r0->unk6;
|
||||
r0->unk6 += uVar3;
|
||||
|
||||
if (r0->unk0 / 16 != 1) {
|
||||
while (uVar3-- > 0) {
|
||||
sub_080026C4(puVar8, temp2, temp, uVar7);
|
||||
puVar8++;
|
||||
uVar7++;
|
||||
}
|
||||
} else {
|
||||
while (uVar3-- > 0) {
|
||||
sub_080026F2(puVar8, temp2, temp, uVar7);
|
||||
puVar8++;
|
||||
uVar7++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805F8E4(u32 r0, WStruct* r1) {
|
||||
u32 old = r1->unk1;
|
||||
r1->unk1 = 1;
|
||||
sub_0805F7DC(r0, r1);
|
||||
r1->unk1 = old;
|
||||
}
|
||||
|
||||
u32 sub_0805F8F8(u32 idx) {
|
||||
u8* temp = &gUnk_0810942E[idx].filler0[10][10];
|
||||
return gUnk_0810926C[*temp];
|
||||
}
|
||||
|
||||
void sub_0805F918(u32 idx, u32 idx2, void* dest) {
|
||||
u32 i;
|
||||
void* puVar1;
|
||||
u8* puVar2;
|
||||
u32 j;
|
||||
u32 idx3;
|
||||
u8* temp;
|
||||
u8* temp2;
|
||||
|
||||
_DmaFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0);
|
||||
puVar1 = gUnk_081092AC[idx];
|
||||
|
||||
temp = &gUnk_081094CE + idx2 * 0xc0;
|
||||
idx3 = 0;
|
||||
for (i = 0; i < 3; i++) {
|
||||
puVar2 = &gUnk_02036A58;
|
||||
sub_08002724(puVar1, &gUnk_02036A58);
|
||||
puVar1 += 0x40;
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3);
|
||||
puVar2++;
|
||||
idx3++;
|
||||
}
|
||||
}
|
||||
LoadAssetAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0);
|
||||
}
|
||||
|
||||
u32 sub_0805F9A0(u32 r0) {
|
||||
|
||||
if (gUnk_02000000->gameLanguage == 0) {
|
||||
u16* val = &gUnk_081092D4;
|
||||
u32 i = 0;
|
||||
|
||||
do {
|
||||
if (*val == r0) {
|
||||
return i + 0x800;
|
||||
}
|
||||
i++;
|
||||
val++;
|
||||
} while (*val != 0);
|
||||
} else if (r0 == 0x31a) {
|
||||
r0 = 1;
|
||||
r0 &= 0xff;
|
||||
}
|
||||
return (r0 & 0xff) + 0x800;
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
void sub_0802A39C(Entity*);
|
||||
void sub_0802A334(Entity*);
|
||||
|
||||
extern u16 gUnk_02001A40[];
|
||||
extern u16 gBG3Buffer[];
|
||||
|
||||
extern void (*const gUnk_080CD030[])(Entity*);
|
||||
extern const u8 gUnk_080CD03C[];
|
||||
|
@ -63,7 +63,7 @@ void sub_0802A2FC(Entity* this) {
|
|||
void sub_0802A334(Entity* this) {
|
||||
u32 x = (this->x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg.bg1yOffset) >> 3;
|
||||
u32 y = (this->y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg.bg2xOffset) >> 3;
|
||||
if (gUnk_02001A40[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) {
|
||||
if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) {
|
||||
this->collisionLayer = 2;
|
||||
} else {
|
||||
this->collisionLayer = 1;
|
||||
|
@ -74,7 +74,7 @@ void sub_0802A334(Entity* this) {
|
|||
void sub_0802A39C(Entity* this) {
|
||||
u32 x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg.bg1yOffset) >> 3;
|
||||
u32 y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg.bg2xOffset - 10) >> 3;
|
||||
if (gUnk_02001A40[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) {
|
||||
if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) {
|
||||
this->flags &= ~0x80;
|
||||
} else {
|
||||
this->flags |= 0x80;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#include "entity.h"
|
||||
#include "functions.h"
|
||||
#include "player.h"
|
||||
#include "room.h"
|
||||
|
||||
extern void (*const gUnk_08109AC8[])(Entity*);
|
||||
extern BoundingBox gUnk_08109AD0;
|
||||
extern u8 gUnk_08003E44;
|
||||
|
||||
void sub_0805FC74(Entity*);
|
||||
|
||||
void Item14(Entity *this) {
|
||||
gUnk_08109AC8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0805FBE8(Entity* this) {
|
||||
CopyPosition(&gPlayerEntity,this);
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
this->field_0x3c = gPlayerEntity.field_0x3c + 1;
|
||||
this->boundingBox = &gUnk_08109AD0;
|
||||
this->nonPlanarMovement = 0x380;
|
||||
this->animationState = this->animationState & 0x7f;
|
||||
if (this->collisionLayer == 2) {
|
||||
this->entityType.parameter = 1;
|
||||
}
|
||||
this->direction = this->animationState << 2;
|
||||
*(u32 *)&this->field_0x6c = 0x3c;
|
||||
InitializeAnimation(this, (this->animationState >> 1) + 0xc);
|
||||
sub_0801766C(this);
|
||||
sub_0806F69C(this);
|
||||
sub_0805FC74(this);
|
||||
PlaySFX(0x13f);
|
||||
}
|
||||
|
||||
void sub_0805FC74(Entity* this) {
|
||||
int iVar1;
|
||||
|
||||
if (--*(int *)&this->field_0x6c != -1) {
|
||||
GetNextFrame(this);
|
||||
sub_0806F69C(this);
|
||||
++this->actionDelay;
|
||||
if (this->entityType.parameter == 0) {
|
||||
sub_0800451C(this);
|
||||
}
|
||||
if (!sub_080002F0(COORD_TO_TILE(this),gPlayerEntity.collisionLayer,0x80) &&
|
||||
sub_080040D8(this,&gUnk_08003E44, this->x.HALF.HI, this->y.HALF.HI)) {
|
||||
CreateFx(this, 0x19, 0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (this->bitfield != 0) {
|
||||
CreateFx(this, 0x19, 0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
|
@ -427,7 +427,7 @@ void sub_0805A94C(Manager15* this) {
|
|||
gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2);
|
||||
}
|
||||
|
||||
extern u8 gUnk_02001A40[];
|
||||
extern u8 gBG3Buffer[];
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void sub_0805A9CC(Manager15* this) {
|
||||
|
@ -449,7 +449,7 @@ void sub_0805A9CC(Manager15* this) {
|
|||
gScreen.affine.bg3yOffset = tmp1 & 0x3F;
|
||||
if (tmp1 < 0)
|
||||
tmp1 += 0x3F;
|
||||
tmp3 = (&gUnk_02001A40[(tmp1 >> 6 << 9)]);
|
||||
tmp3 = (&gBG3Buffer[(tmp1 >> 6 << 9)]);
|
||||
gScreen.affine.unk5 = (u32)tmp3;
|
||||
gScreen.controls.window1VerticalDimensions = 0xa0;
|
||||
if (this->unk_28 == tmp3)
|
||||
|
@ -499,7 +499,7 @@ void sub_0805AAF0(u32 unk0) {
|
|||
gScreen.controls.layerFXControl = 0x3E48;
|
||||
gScreen.controls.alphaBlend = 0x1008;
|
||||
gScreen.affine.bg3Control = 0x1E04;
|
||||
gScreen.affine.unk5 = &gUnk_02001A40;
|
||||
gScreen.affine.unk5 = &gBG3Buffer;
|
||||
gScreen.affine.bg3xOffset = 0;
|
||||
gScreen.affine.bg3yOffset = 0;
|
||||
gScreen.affine.unk4 = 1;
|
||||
|
|
|
@ -41,7 +41,7 @@ void sub_08057EFC(Manager8* this) {
|
|||
|
||||
void sub_08058004(u32, void*, void*);
|
||||
|
||||
extern u8 gUnk_02001A40[];
|
||||
extern u8 gBG3Buffer[];
|
||||
extern u8 gUnk_02006F00[];
|
||||
|
||||
void sub_08057F20(Manager8* this) {
|
||||
|
@ -50,8 +50,8 @@ void sub_08057F20(Manager8* this) {
|
|||
tmp = tmp + (tmp >> 3) + ((0x400 - gRoomControls.width) / 2);
|
||||
gScreen.affine.bg3xOffset = tmp & 0xF;
|
||||
gScreen.affine.bg3yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 2);
|
||||
gScreen.affine.unk5 = gUnk_02001A40;
|
||||
sub_08058004(tmp, gUnk_02006F00, gUnk_02001A40);
|
||||
gScreen.affine.unk5 = gBG3Buffer;
|
||||
sub_08058004(tmp, gUnk_02006F00, gBG3Buffer);
|
||||
tmp = ((tmp >> 4) << 1);
|
||||
if (this->unk_38 != tmp) {
|
||||
this->unk_38 = tmp;
|
||||
|
@ -61,8 +61,8 @@ void sub_08057F20(Manager8* this) {
|
|||
tmp = tmp + (tmp >> 2) + ((0x400 - gRoomControls.width) / 2);
|
||||
gScreen.bg.bg1yOffset = tmp & 0xF;
|
||||
gScreen.bg.bg2xOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1);
|
||||
gScreen.bg.unk_14 = gUnk_02001A40 + 0x800;
|
||||
sub_08058004(tmp, gUnk_02006F00 + 0x2000, gUnk_02001A40 + 0x800);
|
||||
gScreen.bg.unk_14 = gBG3Buffer + 0x800;
|
||||
sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x800);
|
||||
tmp = ((tmp >> 4) << 1);
|
||||
if (this->unk_3c != tmp) {
|
||||
this->unk_3c = tmp;
|
||||
|
@ -117,19 +117,19 @@ void sub_080580B0(u32 unk1) {
|
|||
sub_08058034();
|
||||
tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7
|
||||
tmp = tmp + (tmp >> 3) + (0x400 - gRoomControls.width) / 2;
|
||||
sub_08058004(tmp, gUnk_02006F00, gUnk_02001A40);
|
||||
sub_08058004(tmp, gUnk_02006F00, gBG3Buffer);
|
||||
gScreen.affine.bg3xOffset = tmp & 0xF;
|
||||
gScreen.affine.bg3yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //?
|
||||
gScreen.affine.bg3Control = 0x1D09;
|
||||
gScreen.affine.unk5 = gUnk_02001A40;
|
||||
gScreen.affine.unk5 = gBG3Buffer;
|
||||
gScreen.affine.unk4 = 1;
|
||||
tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7
|
||||
tmp = tmp + (tmp >> 2) + (0x400 - gRoomControls.width) / 2;
|
||||
sub_08058004(tmp, gUnk_02006F00 + 0x2000, gUnk_02001A40 + 0x800);
|
||||
sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x800);
|
||||
gScreen.bg.bg1yOffset = tmp & 0xF;
|
||||
gScreen.bg.bg2xOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //?
|
||||
gScreen.bg.bg1xOffset = 0x1E09;
|
||||
gScreen.bg.unk_14 = gUnk_02001A40 + 0x800;
|
||||
gScreen.bg.unk_14 = gBG3Buffer + 0x800;
|
||||
gScreen.bg.bg2yOffset = 1;
|
||||
gScreen.controls.layerFXControl = 0x3C48;
|
||||
gScreen.controls.alphaBlend = 0x609;
|
||||
|
|
|
@ -18,7 +18,7 @@ void sub_080582F8(u8*, u8*);
|
|||
void sub_08058324();
|
||||
|
||||
extern u32 gUnk_02006F00[];
|
||||
extern u8 gUnk_02001A40[];
|
||||
extern u8 gBG3Buffer[];
|
||||
|
||||
const u16 gUnk_081081EC[] = { 0x30, 0x30, 0x30, 0x38 };
|
||||
|
||||
|
@ -40,7 +40,7 @@ void sub_08058210(Manager9* this) {
|
|||
if (this->unk_3c == tmp)
|
||||
return;
|
||||
this->unk_3c = tmp;
|
||||
sub_080582A0(tmp, gUnk_02006F00, gUnk_02001A40);
|
||||
sub_080582A0(tmp, gUnk_02006F00, gBG3Buffer);
|
||||
gScreen.bg.bg2yOffset = 1;
|
||||
}
|
||||
|
||||
|
@ -91,9 +91,9 @@ void sub_08058324(u32 unk) {
|
|||
LoadPaletteGroup(unk + 0x86);
|
||||
LoadGfxGroup(unk + 0x36);
|
||||
sub_080582D0();
|
||||
sub_080582A0(sub_08058244(unk), gUnk_02006F00, gUnk_02001A40);
|
||||
sub_080582A0(sub_08058244(unk), gUnk_02006F00, gBG3Buffer);
|
||||
gScreen.bg.bg1xOffset = 0x1D47;
|
||||
gScreen.bg.unk_14 = gUnk_02001A40;
|
||||
gScreen.bg.unk_14 = gBG3Buffer;
|
||||
gScreen.bg.bg2yOffset = 1;
|
||||
gScreen.lcd.displayControl |= 0x200;
|
||||
}
|
||||
|
|
|
@ -223,7 +223,7 @@ void sub_0808EABC(Entity* this) {
|
|||
}
|
||||
break;
|
||||
case 5:
|
||||
switch (gMenu.unk10[this->entityType.form]) {
|
||||
switch (gMenu.focusCoords[this->entityType.form]) {
|
||||
case 0:
|
||||
var0 = 42;
|
||||
var1 = 40;
|
||||
|
@ -232,7 +232,7 @@ void sub_0808EABC(Entity* this) {
|
|||
case 2:
|
||||
var0 = 20;
|
||||
var1 = 144;
|
||||
var1 -= (gMenu.unk16 - gMenu.unk10[this->entityType.form]) * 32;
|
||||
var1 -= (gMenu.unk16 - gMenu.focusCoords[this->entityType.form]) * 32;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -376,9 +376,9 @@ void sub_0808ECBC(Entity* this) {
|
|||
|
||||
void sub_0808ED64(Entity* this) {
|
||||
int y = 255;
|
||||
if (gUnk_02032EC0.transitionType == 1 && gMenu.unk10[1] != 5) {
|
||||
this->x.HALF.HI = gMenu.unk10[0] * 16 + 28;
|
||||
y = gMenu.unk10[1] * 16 + 58;
|
||||
if (gUnk_02032EC0.transitionType == 1 && gMenu.focusCoords[1] != 5) {
|
||||
this->x.HALF.HI = gMenu.focusCoords[0] * 16 + 28;
|
||||
y = gMenu.focusCoords[1] * 16 + 58;
|
||||
}
|
||||
this->y.HALF.HI = y;
|
||||
}
|
||||
|
@ -421,7 +421,7 @@ void sub_0808EE00(Entity* this) {
|
|||
}
|
||||
|
||||
this->field_0x6a.HWORD = var2;
|
||||
this->palette.b.b0 = gMenu.unk10[1] == 5 && var1 == gMenu.field_0x12 ? 11 : 9;
|
||||
this->palette.b.b0 = gMenu.focusCoords[1] == 5 && var1 == gMenu.field_0x12 ? 11 : 9;
|
||||
gUnk_02019EE0.unk0 |= sub_0808EF6C(this);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
#include "global.h"
|
||||
#include "functions.h"
|
||||
#include "main.h"
|
||||
#include "menu.h"
|
||||
#include "screen.h"
|
||||
#include "structures.h"
|
||||
#include "textbox.h"
|
||||
|
||||
typedef struct {
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
} VStruct;
|
||||
|
||||
extern VStruct gUnk_03000FF0;
|
||||
extern u8 gBG3Buffer[];
|
||||
|
||||
extern void (*const gUnk_08109A30[])();
|
||||
|
||||
void HandleDebugTextScreen() {
|
||||
gUnk_08109A30[gUnk_03001000.funcIndex]();
|
||||
}
|
||||
|
||||
void sub_0805FA04(void) {
|
||||
sub_0801DA90(1);
|
||||
_DmaZero((void*)&gBG0Buffer, sizeof(BGBuffer));
|
||||
_DmaZero((void*)&gBG3Buffer, 0x1000);
|
||||
gScreen.lcd.displayControl = 0x940;
|
||||
gScreen.bg.bg1Control = 0;
|
||||
gScreen.bg.bg2Control = 0;
|
||||
gScreen.affine.bg3xOffset = 0;
|
||||
gScreen.affine.bg3yOffset = 0;
|
||||
gScreen.affine.bg3Control = 0x1e0f;
|
||||
gScreen.affine.unk4 = 1;
|
||||
sub_08056418();
|
||||
_DmaZero((void*)&gUnk_02032EC0, sizeof(UI));
|
||||
_DmaZero((void*)&gMenu, sizeof(Menu));
|
||||
gMenu.unk16 = gUnk_02000000->gameLanguage;
|
||||
sub_08053320();
|
||||
sub_0801D79C(0, 0x1144);
|
||||
gUnk_03001000.funcIndex = 1;
|
||||
sub_080A3210();
|
||||
sub_08050008();
|
||||
}
|
||||
|
||||
void sub_0805FA98(void) {
|
||||
int iVar1;
|
||||
|
||||
switch (gUnk_03000FF0.unk2) {
|
||||
case 0x40:
|
||||
gMenu.focusCoords[1] -= 1;
|
||||
break;
|
||||
case 0x80:
|
||||
gMenu.focusCoords[1] += 1;
|
||||
break;
|
||||
case 0x200:
|
||||
gMenu.focusCoords[0] ^= 1;
|
||||
if (gMenu.focusCoords[0] == 0) {
|
||||
gScreen.bg.bg0Control = 0x1f0c;
|
||||
gScreen.affine.bg3Control = 0x1e0f;
|
||||
} else {
|
||||
gScreen.bg.bg0Control = 0x1f0f;
|
||||
gScreen.affine.bg3Control = 0x1e0c;
|
||||
}
|
||||
break;
|
||||
case 0x100:
|
||||
gUnk_02000000->gameLanguage = gMenu.unk16;
|
||||
TextboxNoOverlapFollow(gMenu.unk14 * 0x100 + gMenu.unk15);
|
||||
break;
|
||||
case 0x2:
|
||||
sub_08056418();
|
||||
break;
|
||||
default:
|
||||
switch (gUnk_03000FF0.unk4) {
|
||||
case 0x20:
|
||||
iVar1 = -1;
|
||||
break;
|
||||
case 0x10:
|
||||
iVar1 = 1;
|
||||
break;
|
||||
default:
|
||||
iVar1 = 0;
|
||||
break;
|
||||
}
|
||||
switch (gMenu.focusCoords[1]) {
|
||||
case 0:
|
||||
gMenu.unk14 = (gMenu.unk14 + iVar1 + 0x50) % 0x50;
|
||||
break;
|
||||
case 1:
|
||||
gMenu.unk15 += iVar1;
|
||||
break;
|
||||
case 2:
|
||||
gMenu.unk16 = (gMenu.unk16 + iVar1 + 7) % 7;
|
||||
break;
|
||||
}
|
||||
}
|
||||
gMenu.focusCoords[1] = (gMenu.focusCoords[1] + 3) % 3;
|
||||
gScreen.affine.unk4 = 1;
|
||||
}
|
||||
|
||||
void sub_0805FBC4() {
|
||||
InitScreen(0);
|
||||
}
|
Loading…
Reference in New Issue