This commit is contained in:
theo3 2020-11-23 22:18:34 -08:00
parent 0b52f80e4d
commit edbf03101a
39 changed files with 581 additions and 914 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -4,7 +4,7 @@
.section .rodata
.align 2
gUnk_080029B4:: @ 080029B4
gSpritePtrs:: @ 080029B4
.incbin "baserom.gba", 0x0029B4, 0x000004C
gUnk_08002A00:: @ 08002A00

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}

169
src/code_0805F9A0.c Normal file
View File

@ -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;
}

View File

@ -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;

58
src/item14.c Normal file
View File

@ -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();
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

103
src/screenDebug.c Normal file
View File

@ -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);
}