Extract some map data definitions

This commit is contained in:
octorock
2023-06-10 15:12:51 +02:00
parent 99c0d42297
commit 551cb72093
88 changed files with 1554 additions and 2327 deletions
+4 -4
View File
@@ -210,7 +210,7 @@ _080040F2:
movs r3, #0x38
ldrb r3, [r0, r3]
lsls r3, r3, #2
ldr r4, _08004380 @ =gUnk_08000248
ldr r4, _08004380 @ =gCollisionDataPtrs
ldr r3, [r4, r3]
ldrb r4, [r3, r2]
pop {r2, r3}
@@ -403,7 +403,7 @@ _0800423C:
movs r4, #0x38
ldrb r4, [r0, r4]
lsls r4, r4, #3
ldr r3, _08004394 @ =gUnk_08000228
ldr r3, _08004394 @ =gMapDataPtrs
adds r3, r3, r4
ldr r4, [r3]
ldrh r1, [r4, r2]
@@ -610,12 +610,12 @@ _08004370: .4byte 0x0000011E
_08004374: .4byte gRoomControls + 6
_08004378: .4byte gRoomControls + 8
_0800437C: .4byte 0x000003F0
_08004380: .4byte gUnk_08000248
_08004380: .4byte gCollisionDataPtrs
_08004384: .4byte 0x000FFFFF
_08004388: .4byte 0x00080000
_0800438C: .4byte 0x0000EE00
_08004390: .4byte 0x00001FFF
_08004394: .4byte gUnk_08000228
_08004394: .4byte gMapDataPtrs
_08004398: .4byte 0x00004000
_0800439C: .4byte gSpritePtrs
_080043A0: .4byte gSpritePtrs
+12 -11
View File
@@ -10,6 +10,7 @@
.global RAMFUNCS_BASE
RAMFUNCS_BASE::
@ Called when gUpdateVisibleTiles == 1
sub_080B197C:: @ 0x080B197C
push {r4, r5, r6}
ldr r2, _080B19C0 @ =gRoomControls
@@ -107,7 +108,7 @@ arm_sub_080B1A58:
arm_func_start arm_GetTileType
arm_GetTileType: @ 0x080B1A60
ldr r2, _080B1C1C @ =gUnk_08000228
ldr r2, _080B1C1C @ =gMapDataPtrs
_080B1A64:
add r2, r2, r1, lsl #3
ldr r1, [r2]
@@ -180,8 +181,8 @@ arm_sub_080B1B2C:
arm_sub_080B1B3C:
add r0, r0, r1, lsl #6
mov r1, r2
arm_sub_080B1B44:
ldr r2, _080B1C2C @ =gUnk_08000248
arm_GetCollisionData:
ldr r2, _080B1C2C @ =gCollisionDataPtrs
ldr r1, [r2, r1, lsl #2]
ldrb r0, [r1, r0]
bx lr
@@ -198,7 +199,7 @@ arm_sub_080B1B54: @ 0x080B1B54
arm_sub_080B1B68: @ 0x080B1B68
lsrs r2, r0, #0xe
bxne lr
ldr r2, _080B1C38 @ =gUnk_0800022C
ldr r2, _080B1C38 @ =gMetatileTypesPtrs
ldr r1, [r2, r1, lsl #3]
lsl r0, r0, #1
ldrh r0, [r1, r0]
@@ -251,14 +252,14 @@ sub_080B1BCC: @ 0x080B1BCC
_080B1C10: .4byte gRoomControls
_080B1C14: .4byte gUnk_08000258
_080B1C18: .4byte gRoomControls
_080B1C1C: .4byte gUnk_08000228
_080B1C1C: .4byte gMapDataPtrs
_080B1C20: .4byte gRoomControls
_080B1C24: .4byte gUnk_08000278
_080B1C28: .4byte gRoomControls
_080B1C2C: .4byte gUnk_08000248
_080B1C2C: .4byte gCollisionDataPtrs
_080B1C30: .4byte gUnk_080B37A0
_080B1C34: .4byte gUnk_080B7910
_080B1C38: .4byte gUnk_0800022C
_080B1C38: .4byte gMetatileTypesPtrs
_080B1C3C: .4byte gUnk_08000360
_080B1C40: .4byte gUnk_080B7A3E
_080B1C44: .4byte gUnk_08000360
@@ -1697,7 +1698,7 @@ _080B1FBC:
mov r3, #0
bl arm_CheckBitsEU
mov r5, #0
ldr r4, _080B2194 @ =0x03003DF8
ldr r4, _080B2194 @ =gInteractableObjects
_080B1FECEU:
ldr r0, [r4, #8]
cmp r0, #0
@@ -1813,7 +1814,7 @@ _080B1FBC:
mov r3, #0
bl arm_CheckBitsEU
mov r5, #0
ldr r4, _080B2194 @ =0x03003DF8
ldr r4, _080B2194 @ =gInteractableObjects
_080B1FECEU:
ldr r0, [r4, #8]
cmp r0, #0
@@ -1940,8 +1941,8 @@ _080B2A64: .4byte gOAMControls
_080B2A68: .4byte ram_0x80b2be8
_080B2A6C: .4byte 0x3E003F00
.ifdef EU
_080B2194: .4byte 0x03003DF8 @TODO pointer?
_080B2194: .4byte gInteractableObjects
.endif
.ifdef DEMO_JP @ TODO deduplicate same as EU
_080B2194: .4byte 0x03003DF8 @TODO pointer?
_080B2194: .4byte gInteractableObjects
.endif
+2 -2
View File
@@ -205,7 +205,7 @@ sub_080086D8: @ 0x080086D8
movs r3, #0x38
ldrb r3, [r2, r3]
lsls r3, r3, #2
ldr r1, _080088C4 @ =gUnk_08000248
ldr r1, _080088C4 @ =gCollisionDataPtrs
ldr r1, [r1, r3]
ldrb r2, [r0, r1]
push {r2}
@@ -451,7 +451,7 @@ _080088B4: .4byte gRoomControls + 6
_080088B8: .4byte gRoomControls + 8
_080088BC: .4byte gPlayerEntity
_080088C0: .4byte 0x000003F0
_080088C4: .4byte gUnk_08000248
_080088C4: .4byte gCollisionDataPtrs
_080088C8: .4byte gPlayerState
_080088CC: .4byte gUnk_0800823C
_080088D0: .4byte gUnk_08007DF4
+40 -39
View File
@@ -11,13 +11,13 @@ UpdateScrollVram: @ 0x08000108
ldr r0, _080001E8 @ =gUpdateVisibleTiles
ldrb r1, [r0]
lsls r1, r1, #2
beq _08000136
add r4, pc, #0x20
ldr r4, [r4, r1]
beq _08000136 @ jump if gUpdateVisibleTiles == 0
add r4, pc, #0x20 @ r4 = 0x8000134
ldr r4, [r4, r1] @ r4 = r4[gUpdateVisibleTiles] (1: _08000138, 2: _0800013C, 3: _08000140, 4:_08000144)
ldr r0, _080001EC @ =gMapBottom
ldr r0, [r0]
cmp r0, #0
beq _08000126
beq _08000126 @ jump if gMapBottom.bgSettings == NULL
ldr r0, _080001F0 @ =gMapDataBottomSpecial
ldr r1, _080001F4 @ =gBG1Buffer+0x40
bl _call_via_r4
@@ -25,7 +25,7 @@ _08000126:
ldr r0, _080001F8 @ =gMapTop
ldr r0, [r0]
cmp r0, #0
beq _08000136
beq _08000136 @ jump if gMapTop.bgSettings == NULL
ldr r0, _080001FC @ =gMapDataTopSpecial
ldr r1, _08000200 @ =gBG2Buffer+0x40
bl _call_via_r4
@@ -37,10 +37,10 @@ _0800013C: .4byte sub_0807D280 @ layer 1, 2, 3?
_08000140: .4byte sub_0807D46C
_08000144: .4byte sub_0807D6D8
thumb_func_start sub_08000148
sub_08000148: @ 0x08000148
thumb_func_start SetCollisionData
SetCollisionData: @ 0x08000148
lsls r2, r2, #2
ldr r3, _08000204 @ =gUnk_08000248
ldr r3, _08000204 @ =gCollisionDataPtrs
ldr r2, [r3, r2]
strb r0, [r2, r1]
bx lr
@@ -58,7 +58,7 @@ CloneTile: @ 0x08000152
SetTile: @ r0 = tile type, r1, = tile position, r2 = layer
push {r4-r7, lr}
lsls r3, r2, #3
ldr r4, _08000208 @ =gUnk_08000228
ldr r4, _08000208 @ =gMapDataPtrs
ldr r5, [r4, r3]
lsls r6, r1, #1
ldrh r7, [r5, r6]
@@ -74,7 +74,7 @@ SetTile: @ r0 = tile type, r1, = tile position, r2 = layer
ldr r3, _08000214 @ =gUnk_080B79A7
ldrb r0, [r3, r4]
lsrs r2, r2, #2
bl sub_08000148
bl SetCollisionData
pop {r0, r1} @ tilepos, layer
push {r0, r1}
bl DeleteLoadedTileEntity
@@ -94,7 +94,7 @@ _0800019A:
ldr r3, _0800021C @ =gUnk_080B3E80
ldrb r0, [r3, r4]
lsrs r2, r2, #2
bl sub_08000148
bl SetCollisionData
pop {r0, r1}
bl DeleteLoadedTileEntity
pop {r4, r5, r6, r7, pc}
@@ -115,7 +115,7 @@ sub_080001D0: @ 0x080001D0
non_word_aligned_thumb_func_start GetTileIndex
GetTileIndex: @ 0x080001DA
lsls r1, r1, #3
ldr r2, _08000224 @ =gUnk_08000228
ldr r2, _08000224 @ =gMapDataPtrs
ldr r1, [r2, r1]
lsls r0, r0, #1
ldrh r0, [r1, r0]
@@ -128,44 +128,45 @@ _080001F4: .4byte gBG1Buffer+0x40
_080001F8: .4byte gMapTop
_080001FC: .4byte gMapDataTopSpecial
_08000200: .4byte gBG2Buffer+0x40
_08000204: .4byte gUnk_08000248
_08000208: .4byte gUnk_08000228
_08000204: .4byte gCollisionDataPtrs
_08000208: .4byte gMapDataPtrs
_0800020C: .4byte 0x00004000
_08000210: .4byte gUnk_080B7910
_08000214: .4byte gUnk_080B79A7
_08000218: .4byte gUnk_080B37A0
_0800021C: .4byte gUnk_080B3E80
_08000220: .4byte gUnk_08000278
_08000224: .4byte gUnk_08000228
gUnk_08000228::
.4byte gMapBottom+0x0004
gUnk_0800022C::
_08000224: .4byte gMapDataPtrs
gMapDataPtrs::
.4byte gMapBottom+0x0004 @ layer 0
gMetatileTypesPtrs::
.4byte gMapBottom+0x5004
.4byte gMapBottom+0x0004
.4byte gMapBottom+0x0004 @ layer 1
.4byte gMapBottom+0x5004
.4byte gMapTop+0x0004
.4byte gMapTop+0x0004 @ layer 2
.4byte gMapTop+0x5004
.4byte gMapBottom+0x0004
.4byte gMapBottom+0x0004 @ layer 3
.4byte gMapBottom+0x5004
gUnk_08000248::
.4byte gMapBottom+0x2004
.4byte gMapBottom+0x2004
.4byte gMapTop+0x2004
.4byte gMapBottom+0x2004
gUnk_08000258::
.4byte gMapBottom+0x3004
gCollisionDataPtrs::
.4byte gMapBottom+0x2004 @ layer 0
.4byte gMapBottom+0x2004 @ layer 1
.4byte gMapTop+0x2004 @ layer 2
.4byte gMapBottom+0x2004 @ layer 3
gUnk_08000258:: @ mapDataClone and metatileTypes
.4byte gMapBottom+0x3004 @ layer 0
.4byte gMapBottom+0x5004
.4byte gMapBottom+0x3004
.4byte gMapBottom+0x3004 @ layer 1
.4byte gMapBottom+0x5004
.4byte gMapTop+0x3004
.4byte gMapTop+0x3004 @ layer 2
.4byte gMapTop+0x5004
.4byte gMapBottom+0x3004
.4byte gMapBottom+0x3004 @ layer 3
.4byte gMapBottom+0x5004
gUnk_08000278:: @ unkData3 for layers
.4byte gMapBottom+0xb004
.4byte gMapBottom+0xb004
.4byte gMapTop+0xb004
.4byte gMapBottom+0xb004
.4byte gMapBottom+0xb004 @ layer 0
.4byte gMapBottom+0xb004 @ layer 1
.4byte gMapTop+0xb004 @ layer 2
.4byte gMapBottom+0xb004 @ layer 3
@ call 0x80B19CC
@ ========
@@ -364,9 +365,9 @@ sub_080B1B3C: @ 0x080002DC
@ call 0x080B1B44
@ ========
@ Unused? Doesn't seem to be called by anything in Ghidra.
thumb_func_start sub_080B1B44
sub_080B1B44: @ 0x080002E0
ldr r3, _0800034C @ =ram_sub_080B1B44
thumb_func_start GetCollisionData
GetCollisionData: @ 0x080002E0
ldr r3, _0800034C @ =ram_GetCollisionData
bx r3
@ call 0x080B1B54
@@ -423,7 +424,7 @@ _0800033C: .4byte ram_sub_080B1B0C
_08000340: .4byte ram_sub_080B1B18
_08000344: .4byte ram_sub_080B1B2C
_08000348: .4byte ram_sub_080B1B3C
_0800034C: .4byte ram_sub_080B1B44
_0800034C: .4byte ram_GetCollisionData
_08000350: .4byte ram_sub_080B1B54
_08000354: .4byte ram_sub_080B1B68
_08000358: .4byte ram_sub_080B1B84