summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2016-11-19 00:36:57 -0600
committerYamaArashi <YamaArashi@users.noreply.github.com>2016-11-18 22:36:57 -0800
commitc84d788ebfb4ff0f1a3dd1cf6ce820c403fbf169 (patch)
tree989233a4ce3a447980ae1787a37ec3e8c41ddeb5
parent2405562993bcc4f3eda613b0fa443dd94573c5ab (diff)
decompile field_camera.c (#103)
* start decompiling field_camera.c * can't get CameraUpdate to match * finish decompiling
-rw-r--r--asm/berry_tag_screen.s4
-rw-r--r--asm/field_camera.s1330
-rw-r--r--asm/item_menu.s160
-rw-r--r--asm/item_use.s4
-rw-r--r--asm/menu_helpers.s8
-rw-r--r--asm/party_menu.s28
-rw-r--r--asm/rom6.s20
-rw-r--r--asm/roulette.s36
-rw-r--r--asm/shop.s56
-rw-r--r--ld_script.txt2
-rw-r--r--src/field_camera.c516
-rw-r--r--src/text.c5
12 files changed, 676 insertions, 1493 deletions
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
index 738f02d42..7f26885e6 100644
--- a/asm/berry_tag_screen.s
+++ b/asm/berry_tag_screen.s
@@ -380,7 +380,7 @@ _08146338: .4byte gUnknown_08E78A84
_0814633C: .4byte 0x06003000
_08146340:
movs r1, 0
- ldr r7, _0814635C @ =gBG2TilemapBuffer
+ ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000
adds r2, r7, 0
ldr r6, _08146360 @ =0x00004042
ldr r5, _08146364 @ =gSaveBlock2
@@ -395,7 +395,7 @@ _0814634E:
strh r6, [r0]
b _08146376
.align 2, 0
-_0814635C: .4byte gBG2TilemapBuffer
+_0814635C: .4byte gBGTilemapBuffers + 0x1000
_08146360: .4byte 0x00004042
_08146364: .4byte gSaveBlock2
_08146368: .4byte 0x00005042
diff --git a/asm/field_camera.s b/asm/field_camera.s
deleted file mode 100644
index 624e1cd14..000000000
--- a/asm/field_camera.s
+++ /dev/null
@@ -1,1330 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start move_tilemap_camera_to_upper_left_corner_
-move_tilemap_camera_to_upper_left_corner_: @ 80579BC
- movs r1, 0
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- strb r1, [r0]
- strb r1, [r0, 0x1]
- movs r1, 0x1
- strb r1, [r0, 0x4]
- bx lr
- thumb_func_end move_tilemap_camera_to_upper_left_corner_
-
- thumb_func_start tilemap_move_something
-tilemap_move_something: @ 80579CC
- ldrb r3, [r0, 0x2]
- adds r3, r1
- strb r3, [r0, 0x2]
- ldrb r1, [r0, 0x2]
- movs r3, 0x1F
- ands r1, r3
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- adds r1, r2
- strb r1, [r0, 0x3]
- ldrb r1, [r0, 0x3]
- ands r1, r3
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end tilemap_move_something
-
- thumb_func_start coords8_add
-coords8_add: @ 80579E8
- ldrb r3, [r0]
- adds r3, r1
- strb r3, [r0]
- ldrb r1, [r0, 0x1]
- adds r1, r2
- strb r1, [r0, 0x1]
- bx lr
- thumb_func_end coords8_add
-
- thumb_func_start move_tilemap_camera_to_upper_left_corner
-move_tilemap_camera_to_upper_left_corner: @ 80579F8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08057A44 @ =gUnknown_03000590
- bl move_tilemap_camera_to_upper_left_corner_
- mov r0, sp
- movs r6, 0
- strh r6, [r0]
- ldr r4, _08057A48 @ =gBG2TilemapBuffer
- ldr r5, _08057A4C @ =0x01000400
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- strh r6, [r0]
- ldr r2, _08057A50 @ =0xfffff800
- adds r1, r4, r2
- adds r2, r5, 0
- bl CpuSet
- add r0, sp, 0x4
- ldr r2, _08057A54 @ =0x00003014
- adds r1, r2, 0
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 4
- adds r4, r1
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057A44: .4byte gUnknown_03000590
-_08057A48: .4byte gBG2TilemapBuffer
-_08057A4C: .4byte 0x01000400
-_08057A50: .4byte 0xfffff800
-_08057A54: .4byte 0x00003014
- thumb_func_end move_tilemap_camera_to_upper_left_corner
-
- thumb_func_start sub_8057A58
-sub_8057A58: @ 8057A58
- push {r4-r7,lr}
- ldr r5, _08057AE8 @ =gBGHOffsetRegs
- ldr r1, [r5, 0x4]
- ldr r6, _08057AEC @ =gUnknown_03000590
- ldr r4, _08057AF0 @ =gUnknown_03000598
- ldrh r0, [r4]
- ldrb r2, [r6]
- adds r0, r2
- strh r0, [r1]
- ldr r3, _08057AF4 @ =gBGVOffsetRegs
- ldr r1, [r3, 0x4]
- ldr r2, _08057AF8 @ =gUnknown_0300059A
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, [r5, 0x8]
- ldrh r0, [r4]
- ldrb r7, [r6]
- adds r0, r7
- strh r0, [r1]
- ldr r1, [r3, 0x8]
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, [r5, 0xC]
- ldrh r0, [r4]
- ldrb r4, [r6]
- adds r0, r4
- strh r0, [r1]
- ldr r1, [r3, 0xC]
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldrb r0, [r6, 0x4]
- cmp r0, 0
- beq _08057AE0
- ldr r0, _08057AFC @ =0x040000d4
- ldr r2, _08057B00 @ =gBG1TilemapBuffer
- str r2, [r0]
- ldr r1, _08057B04 @ =0x0600e800
- str r1, [r0, 0x4]
- ldr r3, _08057B08 @ =0x80000400
- str r3, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r4, 0x80
- lsls r4, 4
- adds r1, r2, r4
- str r1, [r0]
- ldr r1, _08057B0C @ =0x0600e000
- str r1, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r7, 0x80
- lsls r7, 5
- adds r2, r7
- str r2, [r0]
- ldr r1, _08057B10 @ =0x0600f000
- str r1, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0
- strb r0, [r6, 0x4]
-_08057AE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057AE8: .4byte gBGHOffsetRegs
-_08057AEC: .4byte gUnknown_03000590
-_08057AF0: .4byte gUnknown_03000598
-_08057AF4: .4byte gBGVOffsetRegs
-_08057AF8: .4byte gUnknown_0300059A
-_08057AFC: .4byte 0x040000d4
-_08057B00: .4byte gBG1TilemapBuffer
-_08057B04: .4byte 0x0600e800
-_08057B08: .4byte 0x80000400
-_08057B0C: .4byte 0x0600e000
-_08057B10: .4byte 0x0600f000
- thumb_func_end sub_8057A58
-
- thumb_func_start sub_8057B14
-sub_8057B14: @ 8057B14
- push {r4,lr}
- ldr r3, _08057B34 @ =gUnknown_03000590
- ldr r2, _08057B38 @ =gUnknown_03000598
- ldrh r2, [r2]
- ldrb r4, [r3]
- adds r2, r4
- strh r2, [r0]
- ldr r0, _08057B3C @ =gUnknown_0300059A
- ldrh r0, [r0]
- ldrb r3, [r3, 0x1]
- adds r0, r3
- adds r0, 0x8
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08057B34: .4byte gUnknown_03000590
-_08057B38: .4byte gUnknown_03000598
-_08057B3C: .4byte gUnknown_0300059A
- thumb_func_end sub_8057B14
-
- thumb_func_start DrawWholeMapView
-DrawWholeMapView: @ 8057B40
- push {lr}
- ldr r1, _08057B60 @ =gSaveBlock1
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- ldr r2, _08057B64 @ =gMapHeader
- ldr r2, [r2]
- bl DrawWholeMapViewInternal
- ldr r1, _08057B68 @ =gUnknown_03000590
- movs r0, 0x1
- strb r0, [r1, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_08057B60: .4byte gSaveBlock1
-_08057B64: .4byte gMapHeader
-_08057B68: .4byte gUnknown_03000590
- thumb_func_end DrawWholeMapView
-
- thumb_func_start DrawWholeMapViewInternal
-DrawWholeMapViewInternal: @ 8057B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r9, r1
- mov r8, r2
- movs r1, 0
-_08057B80:
- ldr r2, _08057BEC @ =gUnknown_03000590
- ldrb r0, [r2, 0x3]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057B94
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057B94:
- lsls r6, r0, 5
- movs r4, 0
- adds r7, r1, 0x2
- str r7, [sp]
- lsrs r5, r1, 1
-_08057B9E:
- ldr r1, _08057BEC @ =gUnknown_03000590
- ldrb r0, [r1, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057BB2
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057BB2:
- adds r1, r6, r0
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r4, 1
- add r2, r10
- mov r0, r8
- mov r7, r9
- adds r3, r7, r5
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057B9E
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08057B80
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057BEC: .4byte gUnknown_03000590
- thumb_func_end DrawWholeMapViewInternal
-
- thumb_func_start RedrawMapSlicesForCameraUpdate
-RedrawMapSlicesForCameraUpdate: @ 8057BF0
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- ldr r0, _08057C38 @ =gMapHeader
- ldr r4, [r0]
- cmp r6, 0
- ble _08057C08
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8057D48
-_08057C08:
- cmp r6, 0
- bge _08057C14
- adds r0, r5, 0
- adds r1, r4, 0
- bl RedrawMapSliceEast
-_08057C14:
- cmp r7, 0
- ble _08057C20
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8057C3C
-_08057C20:
- cmp r7, 0
- bge _08057C2C
- adds r0, r5, 0
- adds r1, r4, 0
- bl RedrawMapSliceSouth
-_08057C2C:
- movs r0, 0x1
- strb r0, [r5, 0x4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057C38: .4byte gMapHeader
- thumb_func_end RedrawMapSlicesForCameraUpdate
-
- thumb_func_start sub_8057C3C
-sub_8057C3C: @ 8057C3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r0, [r5, 0x3]
- adds r0, 0x1C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057C58
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057C58:
- lsls r7, r0, 5
- movs r4, 0
- ldr r6, _08057CA0 @ =gSaveBlock1
-_08057C5E:
- ldrb r0, [r5, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057C70
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057C70:
- adds r1, r7, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- ldrsh r2, [r6, r0]
- lsrs r0, r4, 1
- adds r2, r0
- movs r0, 0x2
- ldrsh r3, [r6, r0]
- adds r3, 0xE
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057C5E
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057CA0: .4byte gSaveBlock1
- thumb_func_end sub_8057C3C
-
- thumb_func_start RedrawMapSliceSouth
-RedrawMapSliceSouth: @ 8057CA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r0, [r5, 0x3]
- lsls r7, r0, 5
- movs r4, 0
- ldr r6, _08057CF0 @ =gSaveBlock1
-_08057CB6:
- ldrb r0, [r5, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057CC8
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057CC8:
- adds r1, r7, r0
- movs r0, 0
- ldrsh r2, [r6, r0]
- lsrs r0, r4, 1
- adds r2, r0
- movs r0, 0x2
- ldrsh r3, [r6, r0]
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057CB6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057CF0: .4byte gSaveBlock1
- thumb_func_end RedrawMapSliceSouth
-
- thumb_func_start RedrawMapSliceEast
-RedrawMapSliceEast: @ 8057CF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r6, [r5, 0x2]
- movs r4, 0
-_08057D02:
- ldrb r0, [r5, 0x3]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057D14
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057D14:
- lsls r1, r0, 5
- adds r1, r6
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08057D44 @ =gSaveBlock1
- movs r3, 0
- ldrsh r2, [r0, r3]
- movs r7, 0x2
- ldrsh r3, [r0, r7]
- lsrs r0, r4, 1
- adds r3, r0
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057D02
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057D44: .4byte gSaveBlock1
- thumb_func_end RedrawMapSliceEast
-
- thumb_func_start sub_8057D48
-sub_8057D48: @ 8057D48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- ldrb r0, [r6, 0x2]
- adds r0, 0x1C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1F
- bls _08057D66
- adds r0, r5, 0
- subs r0, 0x20
- lsls r0, 24
- lsrs r5, r0, 24
-_08057D66:
- movs r4, 0
- ldr r7, _08057DAC @ =gSaveBlock1
-_08057D6A:
- ldrb r0, [r6, 0x3]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057D7C
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057D7C:
- lsls r1, r0, 5
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- ldrsh r2, [r7, r0]
- adds r2, 0xE
- movs r0, 0x2
- ldrsh r3, [r7, r0]
- lsrs r0, r4, 1
- adds r3, r0
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057D6A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057DAC: .4byte gSaveBlock1
- thumb_func_end sub_8057D48
-
- thumb_func_start CurrentMapDrawMetatileAt
-CurrentMapDrawMetatileAt: @ 8057DB0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, _08057DE4 @ =gUnknown_03000590
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MapPosToBgTilemapOffset
- adds r1, r0, 0
- cmp r1, 0
- blt _08057DDC
- ldr r0, _08057DE8 @ =gMapHeader
- ldr r0, [r0]
- lsls r1, 16
- lsrs r1, 16
- adds r2, r4, 0
- adds r3, r5, 0
- bl DrawMetatileAt
- movs r0, 0x1
- strb r0, [r6, 0x4]
-_08057DDC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057DE4: .4byte gUnknown_03000590
-_08057DE8: .4byte gMapHeader
- thumb_func_end CurrentMapDrawMetatileAt
-
- thumb_func_start DrawDoorMetatileAt
-DrawDoorMetatileAt: @ 8057DEC
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r6, _08057E1C @ =gUnknown_03000590
- adds r0, r6, 0
- adds r1, r3, 0
- adds r2, r4, 0
- bl MapPosToBgTilemapOffset
- cmp r0, 0
- blt _08057E14
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0x1
- adds r1, r5, 0
- bl DrawMetatile
- movs r0, 0x1
- strb r0, [r6, 0x4]
-_08057E14:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057E1C: .4byte gUnknown_03000590
- thumb_func_end DrawDoorMetatileAt
-
- thumb_func_start DrawMetatileAt
-DrawMetatileAt: @ 8057E20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r2, 0
- adds r7, r3, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x80
- lsls r0, 3
- cmp r4, r0
- bls _08057E48
- movs r4, 0
-_08057E48:
- ldr r0, _08057E54 @ =0x000001ff
- cmp r4, r0
- bhi _08057E58
- ldr r0, [r5, 0x10]
- ldr r5, [r0, 0xC]
- b _08057E64
- .align 2, 0
-_08057E54: .4byte 0x000001ff
-_08057E58:
- ldr r0, [r5, 0x14]
- ldr r5, [r0, 0xC]
- ldr r1, _08057E84 @ =0xfffffe00
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_08057E64:
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 4
- adds r1, r5, r1
- mov r2, r8
- bl DrawMetatile
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057E84: .4byte 0xfffffe00
- thumb_func_end DrawMetatileAt
-
- thumb_func_start DrawMetatile
-DrawMetatile: @ 8057E88
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r1, 0
- lsls r2, 16
- lsrs r6, r2, 16
- cmp r0, 0x1
- beq _08057F28
- cmp r0, 0x1
- bgt _08057EA6
- cmp r0, 0
- bne _08057EA4
- b _08057FA0
-_08057EA4:
- b _08058010
-_08057EA6:
- cmp r0, 0x2
- beq _08057EAC
- b _08058010
-_08057EAC:
- ldr r0, _08057F24 @ =gBG0TilemapBuffer
- mov r12, r0
- lsls r1, r6, 1
- mov r9, r1
- movs r5, 0xC0
- lsls r5, 5
- add r5, r12
- adds r1, r5
- ldrh r0, [r7]
- movs r2, 0
- mov r8, r2
- strh r0, [r1]
- adds r4, r6, 0x1
- lsls r4, 1
- adds r1, r4, r5
- ldrh r0, [r7, 0x2]
- strh r0, [r1]
- adds r3, r6, 0
- adds r3, 0x20
- lsls r3, 1
- adds r1, r3, r5
- ldrh r0, [r7, 0x4]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0x21
- lsls r2, 1
- adds r5, r2, r5
- ldrh r0, [r7, 0x6]
- strh r0, [r5]
- movs r1, 0x80
- lsls r1, 5
- add r1, r12
- mov r5, r9
- adds r0, r5, r1
- mov r5, r8
- strh r5, [r0]
- adds r0, r4, r1
- strh r5, [r0]
- adds r0, r3, r1
- strh r5, [r0]
- adds r1, r2, r1
- strh r5, [r1]
- movs r5, 0x80
- lsls r5, 4
- add r5, r12
- add r9, r5
- ldrh r0, [r7, 0x8]
- mov r1, r9
- strh r0, [r1]
- adds r4, r5
- ldrh r0, [r7, 0xA]
- strh r0, [r4]
- adds r3, r5
- ldrh r0, [r7, 0xC]
- strh r0, [r3]
- adds r2, r5
- ldrh r0, [r7, 0xE]
- strh r0, [r2]
- b _08058010
- .align 2, 0
-_08057F24: .4byte gBG0TilemapBuffer
-_08057F28:
- ldr r2, _08057F98 @ =gBG0TilemapBuffer
- mov r12, r2
- lsls r3, r6, 1
- mov r8, r3
- movs r2, 0xC0
- lsls r2, 5
- add r2, r12
- adds r1, r3, r2
- ldrh r0, [r7]
- movs r5, 0
- mov r9, r5
- strh r0, [r1]
- adds r5, r6, 0x1
- lsls r5, 1
- adds r1, r5, r2
- ldrh r0, [r7, 0x2]
- strh r0, [r1]
- adds r4, r6, 0
- adds r4, 0x20
- lsls r4, 1
- adds r1, r4, r2
- ldrh r0, [r7, 0x4]
- strh r0, [r1]
- adds r3, r6, 0
- adds r3, 0x21
- lsls r3, 1
- adds r2, r3, r2
- ldrh r0, [r7, 0x6]
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- add r1, r12
- mov r0, r8
- adds r2, r0, r1
- ldrh r0, [r7, 0x8]
- strh r0, [r2]
- adds r2, r5, r1
- ldrh r0, [r7, 0xA]
- strh r0, [r2]
- adds r2, r4, r1
- ldrh r0, [r7, 0xC]
- strh r0, [r2]
- adds r1, r3, r1
- ldrh r0, [r7, 0xE]
- strh r0, [r1]
- ldr r1, _08057F9C @ =gBG1TilemapBuffer
- add r8, r1
- mov r0, r9
- mov r2, r8
- strh r0, [r2]
- adds r5, r1
- strh r0, [r5]
- adds r4, r1
- strh r0, [r4]
- adds r3, r1
- b _0805800E
- .align 2, 0
-_08057F98: .4byte gBG0TilemapBuffer
-_08057F9C: .4byte gBG1TilemapBuffer
-_08057FA0:
- ldr r1, _0805801C @ =gBG0TilemapBuffer
- mov r9, r1
- lsls r2, r6, 1
- mov r8, r2
- movs r1, 0xC0
- lsls r1, 5
- add r1, r9
- adds r0, r2, r1
- ldr r2, _08058020 @ =0x00003014
- strh r2, [r0]
- adds r5, r6, 0x1
- lsls r5, 1
- adds r0, r5, r1
- strh r2, [r0]
- adds r4, r6, 0
- adds r4, 0x20
- lsls r4, 1
- adds r0, r4, r1
- strh r2, [r0]
- adds r3, r6, 0
- adds r3, 0x21
- lsls r3, 1
- adds r1, r3, r1
- strh r2, [r1]
- movs r1, 0x80
- lsls r1, 5
- add r1, r9
- mov r0, r8
- adds r2, r0, r1
- ldrh r0, [r7]
- strh r0, [r2]
- adds r2, r5, r1
- ldrh r0, [r7, 0x2]
- strh r0, [r2]
- adds r2, r4, r1
- ldrh r0, [r7, 0x4]
- strh r0, [r2]
- adds r1, r3, r1
- ldrh r0, [r7, 0x6]
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 4
- add r2, r9
- add r8, r2
- ldrh r0, [r7, 0x8]
- mov r1, r8
- strh r0, [r1]
- adds r5, r2
- ldrh r0, [r7, 0xA]
- strh r0, [r5]
- adds r4, r2
- ldrh r0, [r7, 0xC]
- strh r0, [r4]
- adds r3, r2
- ldrh r0, [r7, 0xE]
-_0805800E:
- strh r0, [r3]
-_08058010:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805801C: .4byte gBG0TilemapBuffer
-_08058020: .4byte 0x00003014
- thumb_func_end DrawMetatile
-
- thumb_func_start MapPosToBgTilemapOffset
-MapPosToBgTilemapOffset: @ 8058024
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r4, _08058054 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r4, r5]
- subs r1, r0
- lsls r1, 1
- cmp r1, 0x1F
- bhi _0805804C
- ldrb r0, [r3, 0x2]
- adds r1, r0
- cmp r1, 0x1F
- ble _08058040
- subs r1, 0x20
-_08058040:
- movs r5, 0x2
- ldrsh r0, [r4, r5]
- subs r0, r2, r0
- lsls r2, r0, 1
- cmp r2, 0x1F
- bls _08058058
-_0805804C:
- movs r0, 0x1
- negs r0, r0
- b _08058066
- .align 2, 0
-_08058054: .4byte gSaveBlock1
-_08058058:
- ldrb r0, [r3, 0x3]
- adds r2, r0
- cmp r2, 0x1F
- ble _08058062
- subs r2, 0x20
-_08058062:
- lsls r0, r2, 5
- adds r0, r1
-_08058066:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MapPosToBgTilemapOffset
-
- thumb_func_start CameraUpdateCallback
-CameraUpdateCallback: @ 805806C
- push {lr}
- adds r3, r0, 0
- ldr r2, [r3, 0x4]
- cmp r2, 0
- beq _0805808C
- ldr r1, _08058090 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x8]
- movs r1, 0x34
- ldrsh r0, [r0, r1]
- str r0, [r3, 0xC]
-_0805808C:
- pop {r0}
- bx r0
- .align 2, 0
-_08058090: .4byte gSprites
- thumb_func_end CameraUpdateCallback
-
- thumb_func_start ResetCameraUpdateInfo
-ResetCameraUpdateInfo: @ 8058094
- ldr r1, _080580A8 @ =gUnknown_03004880
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0xC]
- str r0, [r1, 0x10]
- str r0, [r1, 0x14]
- str r0, [r1, 0x4]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080580A8: .4byte gUnknown_03004880
- thumb_func_end ResetCameraUpdateInfo
-
- thumb_func_start InitCameraUpdateCallback
-InitCameraUpdateCallback: @ 80580AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080580E0 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- cmp r1, 0
- beq _080580C8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080580E4 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_080580C8:
- adds r0, r5, 0
- bl AddCameraObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _080580E8 @ =CameraUpdateCallback
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080580E0: .4byte gUnknown_03004880
-_080580E4: .4byte gSprites
-_080580E8: .4byte CameraUpdateCallback
- thumb_func_end InitCameraUpdateCallback
-
- thumb_func_start CameraUpdate
-CameraUpdate: @ 80580EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _080581EC @ =gUnknown_03004880
- ldr r1, [r6]
- cmp r1, 0
- beq _08058100
- adds r0, r6, 0
- bl _call_via_r1
-_08058100:
- ldr r7, [r6, 0x8]
- ldr r0, [r6, 0xC]
- mov r8, r0
- movs r4, 0
- movs r5, 0
- ldr r1, [r6, 0x10]
- ldr r0, [r6, 0x14]
- cmp r1, 0
- bne _0805811E
- cmp r7, 0
- beq _0805811E
- subs r4, 0x1
- cmp r7, 0
- ble _0805811E
- movs r4, 0x1
-_0805811E:
- cmp r0, 0
- bne _08058132
- mov r2, r8
- cmp r2, 0
- beq _08058132
- movs r5, 0x1
- negs r5, r5
- cmp r2, 0
- ble _08058132
- movs r5, 0x1
-_08058132:
- cmp r1, 0
- beq _08058144
- cmn r1, r7
- bne _08058144
- movs r4, 0x1
- negs r4, r4
- cmp r7, 0
- ble _08058144
- movs r4, 0x1
-_08058144:
- cmp r0, 0
- beq _08058158
- mov r3, r8
- cmn r0, r3
- bne _08058158
- movs r4, 0x1
- negs r4, r4
- cmp r3, 0
- ble _08058158
- movs r4, 0x1
-_08058158:
- ldr r2, _080581EC @ =gUnknown_03004880
- ldr r0, [r2, 0x10]
- adds r1, r0, r7
- str r1, [r2, 0x10]
- adds r0, r1, 0
- cmp r1, 0
- bge _08058168
- adds r0, 0xF
-_08058168:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- str r0, [r2, 0x10]
- ldr r0, [r2, 0x14]
- mov r3, r8
- adds r1, r0, r3
- str r1, [r2, 0x14]
- adds r0, r1, 0
- cmp r1, 0
- bge _08058180
- adds r0, 0xF
-_08058180:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- str r0, [r2, 0x14]
- cmp r4, 0
- bne _08058190
- cmp r5, 0
- beq _080581C6
-_08058190:
- adds r0, r4, 0
- adds r1, r5, 0
- bl CameraMove
- adds r0, r4, 0
- adds r1, r5, 0
- bl UpdateFieldObjectsForCameraUpdate
- adds r0, r4, 0
- adds r1, r5, 0
- bl RotatingGatePuzzleCameraUpdate
- bl ResetBerryTreeSparkleFlags
- ldr r6, _080581F0 @ =gUnknown_03000590
- lsls r4, 1
- lsls r5, 1
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl tilemap_move_something
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl RedrawMapSlicesForCameraUpdate
-_080581C6:
- ldr r0, _080581F0 @ =gUnknown_03000590
- adds r1, r7, 0
- mov r2, r8
- bl coords8_add
- ldr r1, _080581F4 @ =gUnknown_0300489C
- ldrh r0, [r1]
- subs r0, r7
- strh r0, [r1]
- ldr r1, _080581F8 @ =gUnknown_03004898
- ldrh r0, [r1]
- mov r2, r8
- subs r0, r2
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080581EC: .4byte gUnknown_03004880
-_080581F0: .4byte gUnknown_03000590
-_080581F4: .4byte gUnknown_0300489C
-_080581F8: .4byte gUnknown_03004898
- thumb_func_end CameraUpdate
-
- thumb_func_start camera_move_and_redraw
-camera_move_and_redraw: @ 80581FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl CameraMove
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl UpdateFieldObjectsForCameraUpdate
- bl DrawWholeMapView
- ldr r1, _08058230 @ =gUnknown_0300489C
- lsls r4, 4
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- ldr r1, _08058234 @ =gUnknown_03004898
- lsls r5, 4
- ldrh r0, [r1]
- subs r0, r5
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08058230: .4byte gUnknown_0300489C
-_08058234: .4byte gUnknown_03004898
- thumb_func_end camera_move_and_redraw
-
- thumb_func_start SetCameraPanningCallback
-SetCameraPanningCallback: @ 8058238
- ldr r1, _08058240 @ =gUnknown_030005A0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08058240: .4byte gUnknown_030005A0
- thumb_func_end SetCameraPanningCallback
-
- thumb_func_start SetCameraPanning
-SetCameraPanning: @ 8058244
- ldr r2, _08058254 @ =gUnknown_03000598
- strh r0, [r2]
- ldr r0, _08058258 @ =gUnknown_0300059A
- lsls r1, 16
- asrs r1, 16
- adds r1, 0x20
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08058254: .4byte gUnknown_03000598
-_08058258: .4byte gUnknown_0300059A
- thumb_func_end SetCameraPanning
-
- thumb_func_start InstallCameraPanAheadCallback
-InstallCameraPanAheadCallback: @ 805825C
- ldr r1, _08058278 @ =gUnknown_030005A0
- ldr r0, _0805827C @ =CameraPanningCB_PanAhead
- str r0, [r1]
- ldr r1, _08058280 @ =gUnknown_0300059C
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08058284 @ =gUnknown_03000598
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08058288 @ =gUnknown_0300059A
- movs r0, 0x20
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08058278: .4byte gUnknown_030005A0
-_0805827C: .4byte CameraPanningCB_PanAhead
-_08058280: .4byte gUnknown_0300059C
-_08058284: .4byte gUnknown_03000598
-_08058288: .4byte gUnknown_0300059A
- thumb_func_end InstallCameraPanAheadCallback
-
- thumb_func_start UpdateCameraPanning
-UpdateCameraPanning: @ 805828C
- push {lr}
- ldr r0, _080582BC @ =gUnknown_030005A0
- ldr r0, [r0]
- cmp r0, 0
- beq _0805829A
- bl _call_via_r0
-_0805829A:
- ldr r2, _080582C0 @ =gSpriteCoordOffsetX
- ldr r0, _080582C4 @ =gUnknown_0300489C
- ldr r1, _080582C8 @ =gUnknown_03000598
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r2, _080582CC @ =gSpriteCoordOffsetY
- ldr r0, _080582D0 @ =gUnknown_03004898
- ldr r1, _080582D4 @ =gUnknown_0300059A
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- subs r0, 0x8
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080582BC: .4byte gUnknown_030005A0
-_080582C0: .4byte gSpriteCoordOffsetX
-_080582C4: .4byte gUnknown_0300489C
-_080582C8: .4byte gUnknown_03000598
-_080582CC: .4byte gSpriteCoordOffsetY
-_080582D0: .4byte gUnknown_03004898
-_080582D4: .4byte gUnknown_0300059A
- thumb_func_end UpdateCameraPanning
-
- thumb_func_start CameraPanningCB_PanAhead
-CameraPanningCB_PanAhead: @ 80582D8
- push {lr}
- ldr r0, _080582E8 @ =gUnknown_0202E854
- ldrb r0, [r0]
- cmp r0, 0
- bne _080582EC
- bl InstallCameraPanAheadCallback
- b _08058374
- .align 2, 0
-_080582E8: .4byte gUnknown_0202E854
-_080582EC:
- ldr r0, _08058304 @ =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x1
- bne _0805830C
- ldr r0, _08058308 @ =gUnknown_0300059C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- cmp r1, 0
- beq _08058374
- b _08058312
- .align 2, 0
-_08058304: .4byte gPlayerAvatar
-_08058308: .4byte gUnknown_0300059C
-_0805830C:
- ldr r1, _08058334 @ =gUnknown_0300059C
- movs r0, 0
- strb r0, [r1]
-_08058312:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805833C
- ldr r2, _08058338 @ =gUnknown_0300059A
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- ble _08058374
- subs r0, r3, 0x2
- b _08058372
- .align 2, 0
-_08058334: .4byte gUnknown_0300059C
-_08058338: .4byte gUnknown_0300059A
-_0805833C:
- cmp r0, 0x1
- bne _08058358
- ldr r1, _08058354 @ =gUnknown_0300059A
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x47
- bgt _08058374
- adds r0, r2, 0x2
- strh r0, [r1]
- b _08058374
- .align 2, 0
-_08058354: .4byte gUnknown_0300059A
-_08058358:
- ldr r2, _08058368 @ =gUnknown_0300059A
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x1F
- bgt _0805836C
- adds r0, 0x2
- b _08058372
- .align 2, 0
-_08058368: .4byte gUnknown_0300059A
-_0805836C:
- cmp r1, 0x20
- ble _08058374
- subs r0, 0x2
-_08058372:
- strh r0, [r2]
-_08058374:
- pop {r0}
- bx r0
- thumb_func_end CameraPanningCB_PanAhead
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 324541240..e2abfe960 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -24,7 +24,7 @@ sub_80A3134: @ 80A3134
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r1, _080A3168 @ =gBG1TilemapBuffer
+ ldr r1, _080A3168 @ =gBGTilemapBuffers + 0x800
ldr r2, _080A316C @ =0x06002000
ldr r0, _080A3170 @ =0x040000d4
str r1, [r0]
@@ -43,7 +43,7 @@ sub_80A3134: @ 80A3134
pop {r0}
bx r0
.align 2, 0
-_080A3168: .4byte gBG1TilemapBuffer
+_080A3168: .4byte gBGTilemapBuffers + 0x800
_080A316C: .4byte 0x06002000
_080A3170: .4byte 0x040000d4
_080A3174: .4byte 0x80000400
@@ -230,7 +230,7 @@ _080A3328:
ldr r1, _080A3378 @ =gUnknown_0203855A
movs r0, 0x10
strb r0, [r1]
- ldr r4, _080A337C @ =gBG2TilemapBuffer
+ ldr r4, _080A337C @ =gBGTilemapBuffers + 0x1000
ldr r5, _080A3380 @ =gUnknown_02038559
ldrb r1, [r5]
adds r1, 0x1
@@ -261,7 +261,7 @@ _080A3328:
b _080A3464
.align 2, 0
_080A3378: .4byte gUnknown_0203855A
-_080A337C: .4byte gBG2TilemapBuffer
+_080A337C: .4byte gBGTilemapBuffers + 0x1000
_080A3380: .4byte gUnknown_02038559
_080A3384: .4byte gBagPockets
_080A3388: .4byte gUnknown_03005D24
@@ -486,14 +486,14 @@ _080A3568: .4byte gBagScreen_Gfx
_080A356C: .4byte 0x06004000
_080A3570:
ldr r0, _080A3580 @ =gUnknown_08E77004
- ldr r1, _080A3584 @ =gBG2TilemapBuffer
+ ldr r1, _080A3584 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 3
bl CpuSet
b _080A35EA
.align 2, 0
_080A3580: .4byte gUnknown_08E77004
-_080A3584: .4byte gBG2TilemapBuffer
+_080A3584: .4byte gBGTilemapBuffers + 0x1000
_080A3588:
ldr r0, _080A35A4 @ =gSaveBlock2
ldrb r0, [r0, 0x8]
@@ -837,7 +837,7 @@ sub_80A37F8: @ 80A37F8
bhi _080A3868
adds r0, r5, 0x1
strb r0, [r6]
- ldr r4, _080A3858 @ =gBG2TilemapBuffer
+ ldr r4, _080A3858 @ =gBGTilemapBuffers + 0x1000
ldrb r2, [r6]
adds r0, r4, 0
adds r1, r5, 0
@@ -873,7 +873,7 @@ sub_80A37F8: @ 80A37F8
b _080A3932
.align 2, 0
_080A3854: .4byte gUnknown_0203855A
-_080A3858: .4byte gBG2TilemapBuffer
+_080A3858: .4byte gBGTilemapBuffers + 0x1000
_080A385C: .4byte gUnknown_02038559
_080A3860: .4byte gTasks
_080A3864: .4byte gUnknown_02038558
@@ -1915,7 +1915,7 @@ sub_80A4008: @ 80A4008
thumb_func_start sub_80A4030
sub_80A4030: @ 80A4030
- ldr r1, _080A4058 @ =gBG2TilemapBuffer + 0xB4
+ ldr r1, _080A4058 @ =gBGTilemapBuffers + 0x1000 + 0xB4
lsls r0, 7
adds r1, r0, r1
movs r0, 0x5A
@@ -1936,7 +1936,7 @@ sub_80A4030: @ 80A4030
strh r0, [r1]
bx lr
.align 2, 0
-_080A4058: .4byte gBG2TilemapBuffer + 0xB4
+_080A4058: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A4030
thumb_func_start sub_80A405C
@@ -1944,7 +1944,7 @@ sub_80A405C: @ 80A405C
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080A40A8 @ =gBG2TilemapBuffer + 0xB4
+ ldr r2, _080A40A8 @ =gBGTilemapBuffers + 0x1000 + 0xB4
movs r0, 0
adds r4, r2, 0
movs r1, 0x4F
@@ -1980,13 +1980,13 @@ _080A406A:
pop {r0}
bx r0
.align 2, 0
-_080A40A8: .4byte gBG2TilemapBuffer + 0xB4
+_080A40A8: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A405C
thumb_func_start sub_80A40AC
sub_80A40AC: @ 80A40AC
lsls r0, 24
- ldr r1, _080A40CC @ =gBG2TilemapBuffer + 0xB4
+ ldr r1, _080A40CC @ =gBGTilemapBuffers + 0x1000 + 0xB4
lsrs r0, 17
adds r1, r0, r1
movs r2, 0x4F
@@ -2002,7 +2002,7 @@ sub_80A40AC: @ 80A40AC
strh r2, [r1]
bx lr
.align 2, 0
-_080A40CC: .4byte gBG2TilemapBuffer + 0xB4
+_080A40CC: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A40AC
thumb_func_start sub_80A40D0
@@ -2302,7 +2302,7 @@ sub_80A42B0: @ 80A42B0
adds r2, r5, 0
bl MenuPrint
lsls r0, r5, 6
- ldr r1, _080A435C @ =gBG2TilemapBuffer + 0x1C
+ ldr r1, _080A435C @ =gBGTilemapBuffers + 0x1000 + 0x1C
adds r0, r1
movs r2, 0x4F
strh r2, [r0]
@@ -2339,7 +2339,7 @@ _080A434C: .4byte gUnknown_02038559
_080A4350: .4byte gUnknown_03000701
_080A4354: .4byte gStringVar1
_080A4358: .4byte gOtherText_CloseBag
-_080A435C: .4byte gBG2TilemapBuffer + 0x1C
+_080A435C: .4byte gBGTilemapBuffers + 0x1000 + 0x1C
_080A4360:
adds r1, r5, 0x2
lsls r1, 24
@@ -2601,11 +2601,11 @@ sub_80A4548: @ 80A4548
lsls r1, 24
lsrs r1, 24
mov r8, r1
- ldr r0, _080A456C @ =gBG2TilemapBuffer
+ ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000
mov r9, r0
b _080A46C2
.align 2, 0
-_080A456C: .4byte gBG2TilemapBuffer
+_080A456C: .4byte gBGTilemapBuffers + 0x1000
_080A4570:
ldr r1, _080A461C @ =gUnknown_03005D10
ldr r0, _080A4620 @ =gUnknown_02038559
@@ -2809,7 +2809,7 @@ sub_80A46FC: @ 80A46FC
str r0, [sp, 0x4]
lsls r1, 24
lsrs r6, r1, 24
- ldr r0, _080A4724 @ =gBG2TilemapBuffer
+ ldr r0, _080A4724 @ =gBGTilemapBuffers + 0x1000
mov r10, r0
ldr r1, _080A4728 @ =gStringVar2
mov r9, r1
@@ -2817,7 +2817,7 @@ sub_80A46FC: @ 80A46FC
mov r8, r0
b _080A47B4
.align 2, 0
-_080A4724: .4byte gBG2TilemapBuffer
+_080A4724: .4byte gBGTilemapBuffers + 0x1000
_080A4728: .4byte gStringVar2
_080A472C: .4byte gUnknown_03005D24
_080A4730:
@@ -3718,7 +3718,7 @@ sub_80A4DD8: @ 80A4DD8
lsrs r3, 24
adds r0, r4, 0
bl MenuDrawTextWindow
- ldr r0, _080A4E88 @ =gBG1TilemapBuffer
+ ldr r0, _080A4E88 @ =gBGTilemapBuffers + 0x800
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
@@ -3757,7 +3757,7 @@ sub_80A4DD8: @ 80A4DD8
bx r0
.align 2, 0
_080A4E84: .4byte gTasks
-_080A4E88: .4byte gBG1TilemapBuffer
+_080A4E88: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A4DD8
thumb_func_start sub_80A4E8C
@@ -3791,7 +3791,7 @@ sub_80A4E8C: @ 80A4E8C
bl sub_80F996C
movs r0, 0x3
bl sub_80F996C
- ldr r5, _080A4F04 @ =gBG2TilemapBuffer
+ ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
lsls r4, 24
asrs r4, 24
adds r0, r5, 0
@@ -3809,7 +3809,7 @@ sub_80A4E8C: @ 80A4E8C
pop {r0}
bx r0
.align 2, 0
-_080A4F04: .4byte gBG2TilemapBuffer
+_080A4F04: .4byte gBGTilemapBuffers + 0x1000
_080A4F08: .4byte gUnknown_02038559
thumb_func_end sub_80A4E8C
@@ -4594,7 +4594,7 @@ _080A5500:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A557C @ =gBG1TilemapBuffer
+ ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A5580 @ =gUnknown_083C1640
ldr r0, _080A5584 @ =gUnknown_03000704
@@ -4624,7 +4624,7 @@ _080A5552:
_080A5570: .4byte gTasks
_080A5574: .4byte gUnknown_03005D10
_080A5578: .4byte gUnknown_02038559
-_080A557C: .4byte gBG1TilemapBuffer
+_080A557C: .4byte gBGTilemapBuffers + 0x800
_080A5580: .4byte gUnknown_083C1640
_080A5584: .4byte gUnknown_03000704
_080A5588: .4byte gUnknown_03000701
@@ -4636,7 +4636,7 @@ _080A5590:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1C]
- ldr r0, _080A55C4 @ =gBG1TilemapBuffer
+ ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A55C8 @ =gUnknown_083C1640
ldr r0, _080A55CC @ =gUnknown_03000700
@@ -4654,7 +4654,7 @@ _080A5590:
b _080A5552
.align 2, 0
_080A55C0: .4byte gTasks
-_080A55C4: .4byte gBG1TilemapBuffer
+_080A55C4: .4byte gBGTilemapBuffers + 0x800
_080A55C8: .4byte gUnknown_083C1640
_080A55CC: .4byte gUnknown_03000700
_080A55D0: .4byte gUnknown_03000704
@@ -4821,7 +4821,7 @@ _080A56E4:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A5758 @ =gBG1TilemapBuffer
+ ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A575C @ =gUnknown_083C1640
ldr r0, _080A5760 @ =gUnknown_03000704
@@ -4847,7 +4847,7 @@ _080A5736:
_080A574C: .4byte gTasks
_080A5750: .4byte gUnknown_03005D10
_080A5754: .4byte gUnknown_02038559
-_080A5758: .4byte gBG1TilemapBuffer
+_080A5758: .4byte gBGTilemapBuffers + 0x800
_080A575C: .4byte gUnknown_083C1640
_080A5760: .4byte gUnknown_03000704
_080A5764: .4byte gUnknown_03000700
@@ -4858,7 +4858,7 @@ _080A5768:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1C]
- ldr r0, _080A579C @ =gBG1TilemapBuffer
+ ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A57A0 @ =gUnknown_083C1640
ldr r0, _080A57A4 @ =gUnknown_03000700
@@ -4876,7 +4876,7 @@ _080A5768:
b _080A5736
.align 2, 0
_080A5798: .4byte gTasks
-_080A579C: .4byte gBG1TilemapBuffer
+_080A579C: .4byte gBGTilemapBuffers + 0x800
_080A57A0: .4byte gUnknown_083C1640
_080A57A4: .4byte gUnknown_03000700
_080A57A8: .4byte gUnknown_03000704
@@ -4947,7 +4947,7 @@ _080A5824:
movs r5, 0x7
_080A582C:
adds r6, r1, 0
- ldr r0, _080A5884 @ =gBG1TilemapBuffer
+ ldr r0, _080A5884 @ =gBGTilemapBuffers + 0x800
adds r4, r5, 0x1
ldrb r1, [r6]
lsls r1, 25
@@ -4985,7 +4985,7 @@ _080A582C:
bx r0
.align 2, 0
_080A5880: .4byte gUnknown_02038564
-_080A5884: .4byte gBG1TilemapBuffer
+_080A5884: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A57C4
thumb_func_start sub_80A5888
@@ -5062,7 +5062,7 @@ _080A58F4:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A5954 @ =gBG1TilemapBuffer
+ ldr r0, _080A5954 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A5958 @ =gUnknown_083C1640
ldr r0, _080A595C @ =gUnknown_03000700
@@ -5082,7 +5082,7 @@ _080A58F4:
_080A5948: .4byte gTasks
_080A594C: .4byte gUnknown_03005D10
_080A5950: .4byte gUnknown_02038559
-_080A5954: .4byte gBG1TilemapBuffer
+_080A5954: .4byte gBGTilemapBuffers + 0x800
_080A5958: .4byte gUnknown_083C1640
_080A595C: .4byte gUnknown_03000700
_080A5960: .4byte gUnknown_03000704
@@ -5097,7 +5097,7 @@ _080A5964:
lsls r0, 3
adds r0, r1
strh r2, [r0, 0x1C]
- ldr r0, _080A5994 @ =gBG1TilemapBuffer
+ ldr r0, _080A5994 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r0, _080A5998 @ =gUnknown_083C1640
ldr r1, [r0, 0x14]
@@ -5109,7 +5109,7 @@ _080A5988:
bx r0
.align 2, 0
_080A5990: .4byte gTasks
-_080A5994: .4byte gBG1TilemapBuffer
+_080A5994: .4byte gBGTilemapBuffers + 0x800
_080A5998: .4byte gUnknown_083C1640
thumb_func_end sub_80A5888
@@ -5200,7 +5200,7 @@ _080A5A48: .4byte gUnknown_03005D10
_080A5A4C: .4byte gUnknown_02038559
_080A5A50: .4byte sub_80A5888
_080A5A54:
- ldr r0, _080A5A7C @ =gBG1TilemapBuffer
+ ldr r0, _080A5A7C @ =gBGTilemapBuffers + 0x800
bl sub_80A4BF0
ldr r0, _080A5A80 @ =gUnknown_02038559
ldrb r0, [r0]
@@ -5220,7 +5220,7 @@ _080A5A6E:
ldr r0, _080A5A8C @ =sub_80A5414
b _080A5A9A
.align 2, 0
-_080A5A7C: .4byte gBG1TilemapBuffer
+_080A5A7C: .4byte gBGTilemapBuffers + 0x800
_080A5A80: .4byte gUnknown_02038559
_080A5A84: .4byte gUnknown_03000701
_080A5A88: .4byte gTasks
@@ -5457,7 +5457,7 @@ sub_80A5C48: @ 80A5C48
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A5C90 @ =gBG1TilemapBuffer
+ ldr r0, _080A5C90 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -5486,7 +5486,7 @@ sub_80A5C48: @ 80A5C48
pop {r0}
bx r0
.align 2, 0
-_080A5C90: .4byte gBG1TilemapBuffer
+_080A5C90: .4byte gBGTilemapBuffers + 0x800
_080A5C94: .4byte gTasks
_080A5C98: .4byte sub_80A5C24
thumb_func_end sub_80A5C48
@@ -5588,7 +5588,7 @@ sub_80A5D38: @ 80A5D38
adds r0, r1
movs r1, 0
strh r1, [r0, 0xA]
- ldr r0, _080A5D74 @ =gBG1TilemapBuffer
+ ldr r0, _080A5D74 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0
bl sub_80A7528
@@ -5602,14 +5602,14 @@ sub_80A5D38: @ 80A5D38
bx r0
.align 2, 0
_080A5D70: .4byte gTasks
-_080A5D74: .4byte gBG1TilemapBuffer
+_080A5D74: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5D38
thumb_func_start sub_80A5D78
sub_80A5D78: @ 80A5D78
push {lr}
sub sp, 0x4
- ldr r0, _080A5D9C @ =gBG1TilemapBuffer
+ ldr r0, _080A5D9C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0x8
@@ -5624,7 +5624,7 @@ sub_80A5D78: @ 80A5D78
pop {r0}
bx r0
.align 2, 0
-_080A5D9C: .4byte gBG1TilemapBuffer
+_080A5D9C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5D78
thumb_func_start sub_80A5DA0
@@ -5654,7 +5654,7 @@ _080A5DCC:
movs r3, 0x2
bl ConvertIntToDecimalStringN
_080A5DD8:
- ldr r0, _080A5DF4 @ =gBG1TilemapBuffer
+ ldr r0, _080A5DF4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0x5
bl sub_80A7528
@@ -5664,13 +5664,13 @@ _080A5DD8:
bx r0
.align 2, 0
_080A5DF0: .4byte gStringVar2
-_080A5DF4: .4byte gBG1TilemapBuffer
+_080A5DF4: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5DA0
thumb_func_start sub_80A5DF8
sub_80A5DF8: @ 80A5DF8
push {lr}
- ldr r0, _080A5E18 @ =gBG1TilemapBuffer
+ ldr r0, _080A5E18 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0x7
movs r1, 0x6
@@ -5682,7 +5682,7 @@ sub_80A5DF8: @ 80A5DF8
pop {r0}
bx r0
.align 2, 0
-_080A5E18: .4byte gBG1TilemapBuffer
+_080A5E18: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5DF8
thumb_func_start sub_80A5E1C
@@ -5950,7 +5950,7 @@ sub_80A6024: @ 80A6024
ands r0, r1
cmp r0, 0
beq _080A6062
- ldr r0, _080A6070 @ =gBG1TilemapBuffer
+ ldr r0, _080A6070 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -5976,7 +5976,7 @@ _080A6062:
bx r0
.align 2, 0
_080A606C: .4byte gMain
-_080A6070: .4byte gBG1TilemapBuffer
+_080A6070: .4byte gBGTilemapBuffers + 0x800
_080A6074: .4byte gTasks
_080A6078: .4byte sub_80A6000
thumb_func_end sub_80A6024
@@ -6437,7 +6437,7 @@ sub_80A6444: @ 80A6444
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A6480 @ =gBG1TilemapBuffer
+ ldr r0, _080A6480 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -6461,7 +6461,7 @@ sub_80A6444: @ 80A6444
pop {r0}
bx r0
.align 2, 0
-_080A6480: .4byte gBG1TilemapBuffer
+_080A6480: .4byte gBGTilemapBuffers + 0x800
_080A6484: .4byte gTasks
_080A6488: .4byte sub_80A640C
thumb_func_end sub_80A6444
@@ -6479,7 +6479,7 @@ sub_80A648C: @ 80A648C
adds r4, r1
ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput
str r0, [r4]
- ldr r0, _080A64F0 @ =gBG1TilemapBuffer
+ ldr r0, _080A64F0 @ =gBGTilemapBuffers + 0x800
movs r5, 0x2
str r5, [sp]
movs r1, 0x1
@@ -6513,7 +6513,7 @@ sub_80A648C: @ 80A648C
.align 2, 0
_080A64E8: .4byte gTasks
_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
-_080A64F0: .4byte gBG1TilemapBuffer
+_080A64F0: .4byte gBGTilemapBuffers + 0x800
_080A64F4: .4byte gUnknown_02038559
_080A64F8:
str r5, [sp]
@@ -6622,7 +6622,7 @@ sub_80A65AC: @ 80A65AC
movs r2, 0xD
movs r3, 0xC
bl MenuZeroFillWindowRect
- ldr r0, _080A6600 @ =gBG1TilemapBuffer
+ ldr r0, _080A6600 @ =gBGTilemapBuffers + 0x800
movs r1, 0x6
str r1, [sp]
movs r1, 0x7
@@ -6649,7 +6649,7 @@ sub_80A65AC: @ 80A65AC
pop {r0}
bx r0
.align 2, 0
-_080A6600: .4byte gBG1TilemapBuffer
+_080A6600: .4byte gBGTilemapBuffers + 0x800
_080A6604: .4byte gScriptItemId
_080A6608: .4byte gStringVar2
_080A660C: .4byte gStringVar4
@@ -6669,7 +6669,7 @@ sub_80A6618: @ 80A6618
movs r2, 0xD
movs r3, 0xC
bl MenuZeroFillWindowRect
- ldr r0, _080A664C @ =gBG1TilemapBuffer
+ ldr r0, _080A664C @ =gBGTilemapBuffers + 0x800
movs r1, 0x6
str r1, [sp]
movs r1, 0x7
@@ -6683,7 +6683,7 @@ sub_80A6618: @ 80A6618
pop {r0}
bx r0
.align 2, 0
-_080A664C: .4byte gBG1TilemapBuffer
+_080A664C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A6618
thumb_func_start sub_80A6650
@@ -6748,7 +6748,7 @@ _080A66B4:
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080A6728 @ =gBG1TilemapBuffer
+ ldr r0, _080A6728 @ =gBGTilemapBuffers + 0x800
movs r1, 0x3
str r1, [sp]
movs r1, 0
@@ -6785,7 +6785,7 @@ _080A66B4:
b _080A6758
.align 2, 0
_080A6724: .4byte gMain
-_080A6728: .4byte gBG1TilemapBuffer
+_080A6728: .4byte gBGTilemapBuffers + 0x800
_080A672C: .4byte gStringVar1
_080A6730: .4byte gScriptItemId
_080A6734: .4byte gTasks
@@ -6842,7 +6842,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80A6798
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A67E8 @ =gBG1TilemapBuffer
+ ldr r0, _080A67E8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -6874,7 +6874,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80A6798
pop {r0}
bx r0
.align 2, 0
-_080A67E8: .4byte gBG1TilemapBuffer
+_080A67E8: .4byte gBGTilemapBuffers + 0x800
_080A67EC: .4byte gTasks
_080A67F0: .4byte sub_80A6760
thumb_func_end BuyMenuPrintItemQuantityAndPrice
@@ -6927,7 +6927,7 @@ sub_80A683C: @ 80A683C
movs r1, 0
movs r2, 0
bl sub_80B7C14
- ldr r0, _080A686C @ =gBG1TilemapBuffer
+ ldr r0, _080A686C @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0x1
@@ -6939,7 +6939,7 @@ sub_80A683C: @ 80A683C
bx r0
.align 2, 0
_080A6868: .4byte gSaveBlock1
-_080A686C: .4byte gBG1TilemapBuffer
+_080A686C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A683C
thumb_func_start sub_80A6870
@@ -7238,7 +7238,7 @@ sub_80A6A84: @ 80A6A84
ldr r6, _080A6AE8 @ =gTasks + 0x8
adds r0, r4, r6
mov r8, r0
- ldr r0, _080A6AEC @ =gBG1TilemapBuffer
+ ldr r0, _080A6AEC @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r0, _080A6AF0 @ =gScriptItemId
ldrh r0, [r0]
@@ -7271,7 +7271,7 @@ sub_80A6A84: @ 80A6A84
bx r0
.align 2, 0
_080A6AE8: .4byte gTasks + 0x8
-_080A6AEC: .4byte gBG1TilemapBuffer
+_080A6AEC: .4byte gBGTilemapBuffers + 0x800
_080A6AF0: .4byte gScriptItemId
_080A6AF4: .4byte gStringVar1
_080A6AF8: .4byte gStringVar2
@@ -7409,14 +7409,14 @@ sub_80A6BE0: @ 80A6BE0
beq _080A6C20
movs r0, 0x5
bl PlaySE
- ldr r0, _080A6C1C @ =gBG1TilemapBuffer
+ ldr r0, _080A6C1C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
adds r0, r4, 0
bl sub_80A6B64
b _080A6C58
.align 2, 0
_080A6C18: .4byte gMain
-_080A6C1C: .4byte gBG1TilemapBuffer
+_080A6C1C: .4byte gBGTilemapBuffers + 0x800
_080A6C20:
movs r0, 0x2
ands r0, r1
@@ -7801,7 +7801,7 @@ _080A6F14:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A6F74 @ =gBG1TilemapBuffer
+ ldr r0, _080A6F74 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A6F78 @ =gUnknown_083C1640
ldr r0, _080A6F7C @ =gUnknown_03000700
@@ -7821,7 +7821,7 @@ _080A6F14:
_080A6F68: .4byte gTasks
_080A6F6C: .4byte gUnknown_03005D10
_080A6F70: .4byte gUnknown_02038559
-_080A6F74: .4byte gBG1TilemapBuffer
+_080A6F74: .4byte gBGTilemapBuffers + 0x800
_080A6F78: .4byte gUnknown_083C1640
_080A6F7C: .4byte gUnknown_03000700
_080A6F80: .4byte gUnknown_03000704
@@ -7847,7 +7847,7 @@ _080A6F84:
adds r0, r5, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A6FD4 @ =gBG1TilemapBuffer
+ ldr r0, _080A6FD4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r0, _080A6FD8 @ =gUnknown_083C1640
ldr r1, [r0, 0x2C]
@@ -7861,7 +7861,7 @@ _080A6FC0:
_080A6FC8: .4byte gTasks
_080A6FCC: .4byte gUnknown_03005D10
_080A6FD0: .4byte gUnknown_02038559
-_080A6FD4: .4byte gBG1TilemapBuffer
+_080A6FD4: .4byte gBGTilemapBuffers + 0x800
_080A6FD8: .4byte gUnknown_083C1640
thumb_func_end sub_80A6EB8
@@ -7936,7 +7936,7 @@ sub_80A7024: @ 80A7024
adds r1, r2, 0
bl sub_80A48E8
bl sub_80A73FC
- ldr r0, _080A708C @ =gBG1TilemapBuffer
+ ldr r0, _080A708C @ =gBGTilemapBuffers + 0x800
bl sub_80A6DF0
ldr r0, _080A7090 @ =sub_80A6EB8
str r0, [r4]
@@ -7948,7 +7948,7 @@ _080A707C: .4byte gUnknown_03000700
_080A7080: .4byte gTasks
_080A7084: .4byte gUnknown_03005D10
_080A7088: .4byte gUnknown_02038559
-_080A708C: .4byte gBG1TilemapBuffer
+_080A708C: .4byte gBGTilemapBuffers + 0x800
_080A7090: .4byte sub_80A6EB8
thumb_func_end sub_80A7024
@@ -8227,7 +8227,7 @@ _080A727A:
adds r1, r2, 0
bl sub_80A48E8
bl sub_80A73FC
- ldr r0, _080A72F0 @ =gBG1TilemapBuffer
+ ldr r0, _080A72F0 @ =gBGTilemapBuffers + 0x800
bl sub_80A6DF0
b _080A7358
.align 2, 0
@@ -8237,11 +8237,11 @@ _080A72E0: .4byte gUnknown_083C1708
_080A72E4: .4byte gUnknown_02038564
_080A72E8: .4byte gUnknown_03005D10
_080A72EC: .4byte gUnknown_02038559
-_080A72F0: .4byte gBG1TilemapBuffer
+_080A72F0: .4byte gBGTilemapBuffers + 0x800
_080A72F4:
movs r0, 0x5
bl PlaySE
- ldr r0, _080A7344 @ =gBG1TilemapBuffer
+ ldr r0, _080A7344 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r4, _080A7348 @ =gSaveBlock1 + 0x560
ldr r5, _080A734C @ =0x0201e000
@@ -8275,7 +8275,7 @@ _080A72F4:
bl BeginNormalPaletteFade
b _080A735E
.align 2, 0
-_080A7344: .4byte gBG1TilemapBuffer
+_080A7344: .4byte gBGTilemapBuffers + 0x800
_080A7348: .4byte gSaveBlock1 + 0x560
_080A734C: .4byte 0x0201e000
_080A7350: .4byte sub_802E424
diff --git a/asm/item_use.s b/asm/item_use.s
index b32a308be..65953583e 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -2105,7 +2105,7 @@ sub_80C9F80: @ 80C9F80
movs r1, 0x7
movs r2, 0x1
bl DisplayYesNoMenu
- ldr r0, _080C9FB8 @ =gBG1TilemapBuffer
+ ldr r0, _080C9FB8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0x1
@@ -2122,7 +2122,7 @@ sub_80C9F80: @ 80C9F80
pop {r0}
bx r0
.align 2, 0
-_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FB8: .4byte gBGTilemapBuffers + 0x800
_080C9FBC: .4byte gUnknown_083D61F4
thumb_func_end sub_80C9F80
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index eafb7788b..0b95b553e 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -9,7 +9,7 @@
thumb_func_start sub_80F9020
sub_80F9020: @ 80F9020
push {r4,r5,lr}
- ldr r4, _080F9054 @ =gBG1TilemapBuffer
+ ldr r4, _080F9054 @ =gBGTilemapBuffers + 0x800
movs r5, 0x80
lsls r5, 4
adds r0, r4, 0
@@ -31,7 +31,7 @@ sub_80F9020: @ 80F9020
pop {r0}
bx r0
.align 2, 0
-_080F9054: .4byte gBG1TilemapBuffer
+_080F9054: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80F9020
thumb_func_start sav2_get_text_speed
@@ -44,7 +44,7 @@ sav2_get_text_speed: @ 80F9058
bl MenuDisplayMessageBox
cmp r4, 0
beq _080F907C
- ldr r0, _080F908C @ =gBG1TilemapBuffer
+ ldr r0, _080F908C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
str r4, [sp, 0x4]
@@ -60,7 +60,7 @@ _080F907C:
pop {r0}
bx r0
.align 2, 0
-_080F908C: .4byte gBG1TilemapBuffer
+_080F908C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sav2_get_text_speed
thumb_func_start sub_80F9090
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 26eab6b57..8f1d9d5b7 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -803,7 +803,7 @@ sub_806B548: @ 806B548
ldrb r3, [r4]
cmp r3, 0
beq _0806B56E
- ldr r1, _0806B57C @ =gBG2TilemapBuffer
+ ldr r1, _0806B57C @ =gBGTilemapBuffers + 0x1000
ldr r2, _0806B580 @ =0x06003000
ldr r0, _0806B584 @ =0x040000d4
str r1, [r0]
@@ -822,7 +822,7 @@ _0806B56E:
.align 2, 0
_0806B574: .4byte 0x0201b000
_0806B578: .4byte 0x00000261
-_0806B57C: .4byte gBG2TilemapBuffer
+_0806B57C: .4byte gBGTilemapBuffers + 0x1000
_0806B580: .4byte 0x06003000
_0806B584: .4byte 0x040000d4
_0806B588: .4byte 0x80000400
@@ -892,14 +892,14 @@ _0806B5F0:
.4byte _0806B8C6
.4byte _0806B8E8
_0806B614:
- ldr r0, _0806B624 @ =gBG2TilemapBuffer
+ ldr r0, _0806B624 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 4
movs r1, 0
bl memset
b _0806B900
.align 2, 0
-_0806B624: .4byte gBG2TilemapBuffer
+_0806B624: .4byte gBGTilemapBuffers + 0x1000
_0806B628:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
@@ -1269,7 +1269,7 @@ _0806B902:
thumb_func_start sub_806B908
sub_806B908: @ 806B908
push {r4,r5,lr}
- ldr r0, _0806B948 @ =gBG2TilemapBuffer
+ ldr r0, _0806B948 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 4
movs r1, 0
@@ -1297,7 +1297,7 @@ sub_806B908: @ 806B908
bl sub_806BA94
b _0806B964
.align 2, 0
-_0806B948: .4byte gBG2TilemapBuffer
+_0806B948: .4byte gBGTilemapBuffers + 0x1000
_0806B94C: .4byte gUnknown_0202E8FA
_0806B950: .4byte gUnknown_083769A8
_0806B954: .4byte gPlayerParty + 1 * 0x64
@@ -1372,7 +1372,7 @@ _0806B9CA:
lsls r0, r1, 5
ldr r4, [sp, 0x4]
adds r6, r4, r0
- ldr r0, _0806BA30 @ =gBG2TilemapBuffer
+ ldr r0, _0806BA30 @ =gBGTilemapBuffers + 0x1000
mov r12, r0
ldr r4, [sp]
lsls r5, r4, 12
@@ -1415,7 +1415,7 @@ _0806BA12:
bx r0
.align 2, 0
_0806BA2C: .4byte gUnknown_083769D8
-_0806BA30: .4byte gBG2TilemapBuffer
+_0806BA30: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806B9A4
thumb_func_start sub_806BA34
@@ -1440,7 +1440,7 @@ _0806BA48:
lsls r0, r1, 5
mov r5, r8
adds r1, r5, r0
- ldr r6, _0806BA90 @ =gBG2TilemapBuffer
+ ldr r6, _0806BA90 @ =gBGTilemapBuffers + 0x1000
movs r5, 0
_0806BA5E:
adds r0, r3, r2
@@ -1470,7 +1470,7 @@ _0806BA7C:
pop {r0}
bx r0
.align 2, 0
-_0806BA90: .4byte gBG2TilemapBuffer
+_0806BA90: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BA34
thumb_func_start sub_806BA94
@@ -1515,7 +1515,7 @@ _0806BACC:
lsls r0, r1, 5
ldr r4, [sp, 0x4]
adds r6, r4, r0
- ldr r0, _0806BB38 @ =gBG2TilemapBuffer
+ ldr r0, _0806BB38 @ =gBGTilemapBuffers + 0x1000
mov r8, r0
ldr r4, [sp]
lsls r5, r4, 12
@@ -1560,7 +1560,7 @@ _0806BB16:
.align 2, 0
_0806BB30: .4byte gUnknown_08376A5E
_0806BB34: .4byte gUnknown_08376A25
-_0806BB38: .4byte gBG2TilemapBuffer
+_0806BB38: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BA94
thumb_func_start sub_806BB3C
@@ -1585,7 +1585,7 @@ _0806BB50:
lsls r0, r1, 5
mov r5, r8
adds r1, r5, r0
- ldr r6, _0806BB98 @ =gBG2TilemapBuffer
+ ldr r6, _0806BB98 @ =gBGTilemapBuffers + 0x1000
movs r5, 0
_0806BB66:
adds r0, r3, r2
@@ -1615,7 +1615,7 @@ _0806BB84:
pop {r0}
bx r0
.align 2, 0
-_0806BB98: .4byte gBG2TilemapBuffer
+_0806BB98: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BB3C
thumb_func_start sub_806BB9C
diff --git a/asm/rom6.s b/asm/rom6.s
index daa43e5bd..ad1e71be5 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -488,7 +488,7 @@ sub_810B68C: @ 810B68C
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBG2TilemapBuffer
+ ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
ldr r2, _0810B6B4 @ =0x06007800
ldr r0, _0810B6B8 @ =0x040000d4
str r1, [r0]
@@ -499,7 +499,7 @@ sub_810B68C: @ 810B68C
pop {r0}
bx r0
.align 2, 0
-_0810B6B0: .4byte gBG2TilemapBuffer
+_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
_0810B6B4: .4byte 0x06007800
_0810B6B8: .4byte 0x040000d4
_0810B6BC: .4byte 0x80000400
@@ -862,12 +862,12 @@ _0810B9DC: .4byte gMenuPokeblock_Gfx
_0810B9E0: .4byte 0x06008000
_0810B9E4:
ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBG2TilemapBuffer
+ ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
bl sub_800D238
b _0810BA0E
.align 2, 0
_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBG2TilemapBuffer
+_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
_0810B9F8:
ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
movs r1, 0
@@ -1317,7 +1317,7 @@ sub_810BD64: @ 810BD64
lsrs r3, r0, 16
movs r2, 0
ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBG2TilemapBuffer
+ ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
_0810BD70:
ldrb r0, [r5]
lsls r0, 1
@@ -1346,7 +1346,7 @@ _0810BD70:
bx r0
.align 2, 0
_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBG2TilemapBuffer
+_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_810BD64
thumb_func_start sub_810BDAC
@@ -1409,7 +1409,7 @@ _0810BE20:
bl sub_80F979C
_0810BE28:
movs r6, 0
- ldr r7, _0810BE94 @ =gBG2TilemapBuffer
+ ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
movs r0, 0xF
mov r8, r0
_0810BE30:
@@ -1461,7 +1461,7 @@ _0810BE30:
strh r2, [r0]
b _0810BECC
.align 2, 0
-_0810BE94: .4byte gBG2TilemapBuffer
+_0810BE94: .4byte gBGTilemapBuffers + 0x1000
_0810BE98: .4byte 0x000001a1
_0810BE9C: .4byte gUnknown_02039248
_0810BEA0: .4byte gSaveBlock1 + 0x7F8
@@ -1887,7 +1887,7 @@ _0810C1D8:
lsls r0, 1
adds r1, r0, 0x1
lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBG2TilemapBuffer
+ ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
adds r0, 0x2
lsls r4, r0, 5
_0810C208:
@@ -1914,7 +1914,7 @@ _0810C226:
_0810C22C: .4byte 0x00001005
_0810C230: .4byte gTasks
_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBG2TilemapBuffer
+_0810C238: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_810C1C8
thumb_func_start sub_810C23C
diff --git a/asm/roulette.s b/asm/roulette.s
index 919819bbe..01ff3ac8f 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -55,7 +55,7 @@ _08115154:
cmp r0, 0
beq _08115170
ldr r1, _08115194 @ =0x040000d4
- ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0
+ ldr r0, _08115198 @ =gBGTilemapBuffers + 0x800 + 0x1C0
str r0, [r1]
ldr r0, _0811519C @ =0x060021c0
str r0, [r1, 0x4]
@@ -81,7 +81,7 @@ _08115188: .4byte REG_BG1HOFS
_0811518C: .4byte 0x02019000
_08115190: .4byte REG_BLDALPHA
_08115194: .4byte 0x040000d4
-_08115198: .4byte gBG1TilemapBuffer + 0x1C0
+_08115198: .4byte gBGTilemapBuffers + 0x800 + 0x1C0
_0811519C: .4byte 0x060021c0
_081151A0: .4byte 0x800001a0
_081151A4:
@@ -91,7 +91,7 @@ _081151A4:
adds r0, r4, 0
strh r0, [r1]
adds r1, 0xCC
- ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0
+ ldr r0, _081151C8 @ =gBGTilemapBuffers + 0x1000 + 0x1C0
str r0, [r1]
ldr r0, _081151CC @ =0x0600f9c0
str r0, [r1, 0x4]
@@ -102,12 +102,12 @@ _081151A4:
b _08115218
.align 2, 0
_081151C4: .4byte REG_BG0CNT
-_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
+_081151C8: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
_081151CC: .4byte 0x0600f9c0
_081151D0: .4byte 0x800001a0
_081151D4:
ldr r1, _081151E8 @ =0x040000d4
- ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0
+ ldr r0, _081151EC @ =gBGTilemapBuffers + 0x1000 + 0x1C0
str r0, [r1]
ldr r0, _081151F0 @ =0x0600f9c0
str r0, [r1, 0x4]
@@ -117,7 +117,7 @@ _081151D4:
b _0811521A
.align 2, 0
_081151E8: .4byte 0x040000d4
-_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
+_081151EC: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
_081151F0: .4byte 0x0600f9c0
_081151F4: .4byte 0x800001a0
_081151F8:
@@ -822,7 +822,7 @@ _081157EC:
.4byte _081158C8
.4byte _08115884
_0811582C:
- ldr r0, _08115844 @ =gBG2TilemapBuffer
+ ldr r0, _08115844 @ =gBGTilemapBuffers + 0x1000
movs r1, 0x10
str r1, [sp]
movs r1, 0xD
@@ -833,14 +833,14 @@ _0811582C:
bl sub_8124DDC
b _08115918
.align 2, 0
-_08115844: .4byte gBG2TilemapBuffer
+_08115844: .4byte gBGTilemapBuffers + 0x1000
_08115848:
lsls r0, r4, 1
adds r0, r4
adds r0, 0xE
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, _0811587C @ =gBG2TilemapBuffer
+ ldr r5, _0811587C @ =gBGTilemapBuffers + 0x1000
movs r0, 0x10
str r0, [sp]
movs r4, 0xD
@@ -860,7 +860,7 @@ _08115848:
bl sub_8124E2C
b _08115918
.align 2, 0
-_0811587C: .4byte gBG2TilemapBuffer
+_0811587C: .4byte gBGTilemapBuffers + 0x1000
_08115880: .4byte 0x02018a32
_08115884:
subs r0, r4, 0x1
@@ -871,7 +871,7 @@ _08115884:
adds r1, 0xA
lsls r1, 24
lsrs r6, r1, 24
- ldr r5, _081158C0 @ =gBG2TilemapBuffer
+ ldr r5, _081158C0 @ =gBGTilemapBuffers + 0x1000
movs r4, 0x10
str r4, [sp]
movs r0, 0xD
@@ -891,7 +891,7 @@ _08115884:
bl sub_8124E2C
b _08115918
.align 2, 0
-_081158C0: .4byte gBG2TilemapBuffer
+_081158C0: .4byte gBGTilemapBuffers + 0x1000
_081158C4: .4byte 0x02018a80
_081158C8:
adds r0, r4, 0
@@ -912,7 +912,7 @@ _081158C8:
adds r1, 0x7
lsls r1, 24
lsrs r6, r1, 24
- ldr r4, _08115920 @ =gBG2TilemapBuffer
+ ldr r4, _08115920 @ =gBGTilemapBuffers + 0x1000
movs r0, 0x10
str r0, [sp]
movs r0, 0xD
@@ -936,7 +936,7 @@ _08115918:
pop {r0}
bx r0
.align 2, 0
-_08115920: .4byte gBG2TilemapBuffer
+_08115920: .4byte gBGTilemapBuffers + 0x1000
_08115924: .4byte 0x02018a20
thumb_func_end sub_81157D0
@@ -4016,7 +4016,7 @@ sub_8117158: @ 8117158
movs r0, 0
movs r1, 0
bl sub_8117AA8
- ldr r0, _081171A0 @ =gBG1TilemapBuffer
+ ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800
ldr r1, _081171A4 @ =0xfffff800
adds r4, r1
movs r1, 0x10
@@ -4036,7 +4036,7 @@ sub_8117158: @ 8117158
mov pc, r0
.align 2, 0
_0811719C: .4byte 0x02019000
-_081171A0: .4byte gBG1TilemapBuffer
+_081171A0: .4byte gBGTilemapBuffers + 0x800
_081171A4: .4byte 0xfffff800
_081171A8: .4byte _081171AC
.align 2, 0
@@ -4169,7 +4169,7 @@ _0811727C:
bhi _08117350
add r5, sp, 0xC
ldr r7, [sp, 0x20]
- ldr r0, _08117374 @ =gBG1TilemapBuffer
+ ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800
mov r8, r0
ldr r6, [sp, 0x1C]
ldr r1, _08117378 @ =0x020189a0
@@ -4263,7 +4263,7 @@ _08117360:
bx r0
.align 2, 0
_08117370: .4byte gUnknown_083F8C00
-_08117374: .4byte gBG1TilemapBuffer
+_08117374: .4byte gBGTilemapBuffers + 0x800
_08117378: .4byte 0x020189a0
_0811737C: .4byte 0x020189a4
thumb_func_end sub_8117158
diff --git a/asm/shop.s b/asm/shop.s
index a87bb308c..94ee3c867 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -446,7 +446,7 @@ sub_80B30AC: @ 80B30AC
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r3, _080B30F0 @ =gBG1TilemapBuffer
+ ldr r3, _080B30F0 @ =gBGTilemapBuffers + 0x800
ldr r1, _080B30F4 @ =0x0600e800
ldr r0, _080B30F8 @ =0x040000d4
str r3, [r0]
@@ -474,7 +474,7 @@ sub_80B30AC: @ 80B30AC
pop {r0}
bx r0
.align 2, 0
-_080B30F0: .4byte gBG1TilemapBuffer
+_080B30F0: .4byte gBGTilemapBuffers + 0x800
_080B30F4: .4byte 0x0600e800
_080B30F8: .4byte 0x040000d4
_080B30FC: .4byte 0x80000400
@@ -762,12 +762,12 @@ _080B3356:
beq _080B3398
b _080B33C0
_080B335C:
- ldr r5, _080B3360 @ =gBG2TilemapBuffer
+ ldr r5, _080B3360 @ =gBGTilemapBuffers + 0x1000
b _080B3366
.align 2, 0
-_080B3360: .4byte gBG2TilemapBuffer
+_080B3360: .4byte gBGTilemapBuffers + 0x1000
_080B3364:
- ldr r5, _080B3390 @ =gBG3TilemapBuffer
+ ldr r5, _080B3390 @ =gBGTilemapBuffers + 0x1800
_080B3366:
lsls r6, r0, 16
asrs r6, 16
@@ -788,10 +788,10 @@ _080B3366:
bl BuyMenuDrawMapMetatileLayer
b _080B33C0
.align 2, 0
-_080B3390: .4byte gBG3TilemapBuffer
+_080B3390: .4byte gBGTilemapBuffers + 0x1800
_080B3394: .4byte 0xfffff800
_080B3398:
- ldr r5, _080B33C8 @ =gBG3TilemapBuffer
+ ldr r5, _080B33C8 @ =gBGTilemapBuffers + 0x1800
lsls r6, r0, 16
asrs r6, 16
lsls r4, r1, 16
@@ -814,7 +814,7 @@ _080B33C0:
pop {r0}
bx r0
.align 2, 0
-_080B33C8: .4byte gBG3TilemapBuffer
+_080B33C8: .4byte gBGTilemapBuffers + 0x1800
_080B33CC: .4byte 0xfffff000
thumb_func_end BuyMenuDrawMapMetatile
@@ -827,7 +827,7 @@ sub_80B33D0: @ 80B33D0
adds r4, r1, 0
mov r8, r2
lsls r4, 22
- ldr r5, _080B3418 @ =gBG3TilemapBuffer
+ ldr r5, _080B3418 @ =gBGTilemapBuffers + 0x1800
lsls r6, 17
asrs r6, 16
movs r0, 0x80
@@ -854,7 +854,7 @@ sub_80B33D0: @ 80B33D0
pop {r0}
bx r0
.align 2, 0
-_080B3418: .4byte gBG3TilemapBuffer
+_080B3418: .4byte gBGTilemapBuffers + 0x1800
_080B341C: .4byte 0xfffff800
thumb_func_end sub_80B33D0
@@ -983,7 +983,7 @@ _080B3506:
beq _080B3520
lsls r1, 17
asrs r1, 16
- ldr r0, _080B3550 @ =gBG1TilemapBuffer
+ ldr r0, _080B3550 @ =gBGTilemapBuffers + 0x800
movs r2, 0x40
bl sub_80B32EC
_080B3520:
@@ -1010,7 +1010,7 @@ _080B3520:
bx r0
.align 2, 0
_080B354C: .4byte 0xfffffe00
-_080B3550: .4byte gBG1TilemapBuffer
+_080B3550: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80B3420
thumb_func_start BuyMenuDrawMapGraphics
@@ -1250,7 +1250,7 @@ _080B371C: .4byte gSprites
sub_80B3720: @ 80B3720
push {r4-r6,lr}
movs r1, 0
- ldr r6, _080B3754 @ =gBG1TilemapBuffer
+ ldr r6, _080B3754 @ =gBGTilemapBuffers + 0x800
ldr r5, _080B3758 @ =0x000003ff
ldr r4, _080B375C @ =0x02018000
ldr r0, _080B3760 @ =0x0000c3e0
@@ -1277,7 +1277,7 @@ _080B3742:
pop {r0}
bx r0
.align 2, 0
-_080B3754: .4byte gBG1TilemapBuffer
+_080B3754: .4byte gBGTilemapBuffers + 0x800
_080B3758: .4byte 0x000003ff
_080B375C: .4byte 0x02018000
_080B3760: .4byte 0x0000c3e0
@@ -1316,7 +1316,7 @@ _080B3798: .4byte gUnknown_03000708
sub_80B379C: @ 80B379C
push {r4-r7,lr}
movs r1, 0
- ldr r0, _080B37E0 @ =gBG1TilemapBuffer
+ ldr r0, _080B37E0 @ =gBGTilemapBuffers + 0x800
mov r12, r0
ldr r7, _080B37E4 @ =0x02018300
ldr r0, _080B37E8 @ =0x0000c3e0
@@ -1351,7 +1351,7 @@ _080B37B6:
pop {r0}
bx r0
.align 2, 0
-_080B37E0: .4byte gBG1TilemapBuffer
+_080B37E0: .4byte gBGTilemapBuffers + 0x800
_080B37E4: .4byte 0x02018300
_080B37E8: .4byte 0x0000c3e0
thumb_func_end sub_80B379C
@@ -1417,7 +1417,7 @@ sub_80B37F8: @ 80B37F8
movs r1, 0x1
movs r2, 0xB
bl MenuPrint
- ldr r0, _080B3894 @ =gBG1TilemapBuffer
+ ldr r0, _080B3894 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
ldr r1, _080B3898 @ =0x0000c3e1
@@ -1435,7 +1435,7 @@ _080B3884: .4byte gUnknown_03000708
_080B3888: .4byte gTasks
_080B388C: .4byte gStringVar1
_080B3890: .4byte gOtherText_xString1
-_080B3894: .4byte gBG1TilemapBuffer
+_080B3894: .4byte gBGTilemapBuffers + 0x800
_080B3898: .4byte 0x0000c3e1
thumb_func_end sub_80B37F8
@@ -1880,7 +1880,7 @@ sub_80B3BF4: @ 80B3BF4
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3C7C @ =gBG1TilemapBuffer
+ ldr r0, _080B3C7C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0
@@ -1932,7 +1932,7 @@ sub_80B3BF4: @ 80B3BF4
bl sub_80B4470
b _080B3D24
.align 2, 0
-_080B3C7C: .4byte gBG1TilemapBuffer
+_080B3C7C: .4byte gBGTilemapBuffers + 0x800
_080B3C80: .4byte gSaveBlock1
_080B3C84: .4byte gUnknown_020386A0
_080B3C88: .4byte gUnknown_03000708
@@ -2023,7 +2023,7 @@ sub_80B3D38: @ 80B3D38
movs r1, 0x8
movs r2, 0x1
bl DisplayYesNoMenu
- ldr r0, _080B3D70 @ =gBG1TilemapBuffer
+ ldr r0, _080B3D70 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
ldr r1, _080B3D74 @ =0x0000c3e1
@@ -2040,7 +2040,7 @@ sub_80B3D38: @ 80B3D38
pop {r0}
bx r0
.align 2, 0
-_080B3D70: .4byte gBG1TilemapBuffer
+_080B3D70: .4byte gBGTilemapBuffers + 0x800
_080B3D74: .4byte 0x0000c3e1
_080B3D78: .4byte gUnknown_083CC708
thumb_func_end sub_80B3D38
@@ -2062,7 +2062,7 @@ sub_80B3D7C: @ 80B3D7C
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3DC4 @ =gBG1TilemapBuffer
+ ldr r0, _080B3DC4 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0
@@ -2079,7 +2079,7 @@ sub_80B3D7C: @ 80B3D7C
bx r0
.align 2, 0
_080B3DC0: .4byte gUnknown_03000708
-_080B3DC4: .4byte gBG1TilemapBuffer
+_080B3DC4: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80B3D7C
thumb_func_start sub_80B3DC8
@@ -2141,7 +2141,7 @@ _080B3DEE:
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3EB8 @ =gBG1TilemapBuffer
+ ldr r0, _080B3EB8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0
@@ -2188,7 +2188,7 @@ _080B3EA8: .4byte gUnknown_03000708
_080B3EAC: .4byte gMain
_080B3EB0: .4byte gUnknown_020386A0
_080B3EB4: .4byte gTasks
-_080B3EB8: .4byte gBG1TilemapBuffer
+_080B3EB8: .4byte gBGTilemapBuffers + 0x800
_080B3EBC: .4byte gStringVar1
_080B3EC0: .4byte gStringVar2
_080B3EC4: .4byte gStringVar3
@@ -2775,7 +2775,7 @@ sub_80B4378: @ 80B4378
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B43E4 @ =gBG1TilemapBuffer
+ ldr r0, _080B43E4 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0
@@ -2806,7 +2806,7 @@ sub_80B4378: @ 80B4378
pop {r0}
bx r0
.align 2, 0
-_080B43E4: .4byte gBG1TilemapBuffer
+_080B43E4: .4byte gBGTilemapBuffers + 0x800
_080B43E8: .4byte gTasks
_080B43EC: .4byte sub_80B40E8
thumb_func_end sub_80B4378
diff --git a/ld_script.txt b/ld_script.txt
index 7580985b8..6d754ef6f 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -68,7 +68,7 @@ SECTIONS {
src/rom4.o(.text);
asm/fieldmap.o(.text);
asm/metatile_behavior.o(.text);
- asm/field_camera.o(.text);
+ src/field_camera.o(.text);
src/field_door.o(.text);
asm/field_player_avatar.o(.text);
asm/field_map_obj.o(.text);
diff --git a/src/field_camera.c b/src/field_camera.c
new file mode 100644
index 000000000..02db33bf2
--- /dev/null
+++ b/src/field_camera.c
@@ -0,0 +1,516 @@
+#include "global.h"
+#include "fieldmap.h"
+#include "sprite.h"
+#include "text.h"
+
+extern u16 gBGTilemapBuffers[4][0x400];
+
+
+//ToDo: argument types
+extern u8 MapGridGetMetatileLayerTypeAt();
+extern u8 player_get_direction_upper_nybble(void);
+extern void ResetBerryTreeSparkleFlags(void);
+extern void RotatingGatePuzzleCameraUpdate(s16, s16);
+extern int MapGridGetMetatileIdAt(int, int);
+extern int CameraMove(int, int);
+
+extern u8 gUnknown_0202E854;
+
+
+struct UnknownStruct
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ bool8 unk4;
+};
+
+extern struct UnknownStruct gUnknown_03000590;
+extern u16 gUnknown_03000598;
+extern s16 gUnknown_0300059A;
+extern u8 gUnknown_0300059C;
+extern void (*gUnknown_030005A0)(void);
+
+struct CameraSomething
+{
+ void (*callback)(struct CameraSomething *);
+ u32 unk4;
+ s32 unk8;
+ s32 unkC;
+ s32 unk10;
+ s32 unk14;
+};
+
+extern struct CameraSomething gUnknown_03004880;
+extern u16 gUnknown_03004898;
+extern u16 gUnknown_0300489C;
+
+static void RedrawMapSliceNorth(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceSouth(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceEast(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceWest(struct UnknownStruct *a, struct MapData *mapData);
+static s32 MapPosToBgTilemapOffset(struct UnknownStruct *a, s32 x, s32 y);
+void CameraUpdate(void);
+
+static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData);
+static void DrawMetatileAt(struct MapData *mapData, u16, int, int);
+static void DrawMetatile(s32 a, u16 *b, u16 c);
+u8 AddCameraObject(u8);
+void UpdateFieldObjectsForCameraUpdate(s16, s16);
+static void CameraPanningCB_PanAhead(void);
+
+static void move_tilemap_camera_to_upper_left_corner_(struct UnknownStruct *a)
+{
+ a->unk2 = 0;
+ a->unk3 = 0;
+ a->unk0 = 0;
+ a->unk1 = 0;
+ a->unk4 = TRUE;
+}
+
+static void tilemap_move_something(struct UnknownStruct *a, u32 b, u32 c)
+{
+ a->unk2 += b;
+ a->unk2 %= 32;
+ a->unk3 += c;
+ a->unk3 %= 32;
+}
+
+static void coords8_add(struct UnknownStruct *a, u32 b, u32 c)
+{
+ a->unk0 += b;
+ a->unk1 += c;
+}
+
+void move_tilemap_camera_to_upper_left_corner(void)
+{
+ move_tilemap_camera_to_upper_left_corner_(&gUnknown_03000590);
+ CpuFill16(0, gBGTilemapBuffers[2], 0x800);
+ CpuFill16(0, gBGTilemapBuffers[1], 0x800);
+ CpuFill16(0x3014, gBGTilemapBuffers[3], 0x800);
+}
+
+void sub_8057A58(void)
+{
+ *gBGHOffsetRegs[1] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[1] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+ *gBGHOffsetRegs[2] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[2] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+ *gBGHOffsetRegs[3] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[3] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+
+ if(gUnknown_03000590.unk4)
+ {
+ DmaCopy16(3, gBGTilemapBuffers[1], (void *)(VRAM + 0xE800), 0x800);
+ DmaCopy16(3, gBGTilemapBuffers[2], (void *)(VRAM + 0xE000), 0x800);
+ DmaCopy16(3, gBGTilemapBuffers[3], (void *)(VRAM + 0xF000), 0x800);
+ gUnknown_03000590.unk4 = FALSE;
+ }
+}
+
+void sub_8057B14(u16 *a, u16 *b)
+{
+ *a = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *b = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+}
+
+void DrawWholeMapView(void)
+{
+ DrawWholeMapViewInternal(gSaveBlock1.pos.x, gSaveBlock1.pos.y, gMapHeader.mapData);
+ gUnknown_03000590.unk4 = TRUE;
+}
+
+static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData)
+{
+ u8 i;
+ u8 j;
+ u32 r6;
+ u8 temp;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = gUnknown_03000590.unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ r6 = temp * 32;
+ for(j = 0; j < 32; j += 2)
+ {
+ temp = gUnknown_03000590.unk2 + j;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r6 + temp, x + j / 2, y + i / 2);
+ }
+ }
+}
+
+static void RedrawMapSlicesForCameraUpdate(struct UnknownStruct *a, int x, int y)
+{
+ struct MapData *mapData = gMapHeader.mapData;
+
+ if(x > 0)
+ RedrawMapSliceWest(a, mapData);
+ if(x < 0)
+ RedrawMapSliceEast(a, mapData);
+ if(y > 0)
+ RedrawMapSliceNorth(a, mapData);
+ if(y < 0)
+ RedrawMapSliceSouth(a, mapData);
+ a->unk4 = TRUE;
+}
+
+static void RedrawMapSliceNorth(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r7;
+
+ temp = a->unk3 + 28;
+ if(temp >= 32)
+ temp -= 32;
+ r7 = temp * 32;
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk2 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y + 14);
+ }
+}
+
+static void RedrawMapSliceSouth(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r7 = a->unk3 * 32;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk2 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y);
+ }
+}
+
+static void RedrawMapSliceEast(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r6 = a->unk2;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, temp * 32 + r6, gSaveBlock1.pos.x, gSaveBlock1.pos.y + i / 2);
+ }
+}
+
+static void RedrawMapSliceWest(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u8 r5 = a->unk2 + 28;
+
+ if(r5 >= 32)
+ r5 -= 32;
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, temp * 32 + r5, gSaveBlock1.pos.x + 14, gSaveBlock1.pos.y + i / 2);
+ }
+}
+
+void CurrentMapDrawMetatileAt(int a, int b)
+{
+ int offset = MapPosToBgTilemapOffset(&gUnknown_03000590, a, b);
+
+ if(offset >= 0)
+ {
+ DrawMetatileAt(gMapHeader.mapData, offset, a, b);
+ gUnknown_03000590.unk4 = TRUE;
+ }
+}
+
+void DrawDoorMetatileAt(int x, int y, u16 *arr)
+{
+ int offset = MapPosToBgTilemapOffset(&gUnknown_03000590, x, y);
+
+ if(offset >= 0)
+ {
+ DrawMetatile(1, arr, offset);
+ gUnknown_03000590.unk4 = TRUE;
+ }
+}
+
+static void DrawMetatileAt(struct MapData *mapData, u16 b, int c, int d)
+{
+ u16 metatileId = MapGridGetMetatileIdAt(c, d);
+ u16 *metatiles;
+
+ if(metatileId > 1024)
+ metatileId = 0;
+ if(metatileId < 512)
+ metatiles = mapData->primaryTileset->metatiles;
+ else
+ {
+ metatiles = mapData->secondaryTileset->metatiles;
+ metatileId -= 512;
+ }
+ DrawMetatile(MapGridGetMetatileLayerTypeAt(c, d), metatiles + metatileId * 8, b);
+}
+
+static void DrawMetatile(s32 a, u16 *b, u16 c)
+{
+ switch(a)
+ {
+ case 2:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = 0;
+ gBGTilemapBuffers[2][c + 1] = 0;
+ gBGTilemapBuffers[2][c + 0x20] = 0;
+ gBGTilemapBuffers[2][c + 0x21] = 0;
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
+ case 1:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = b[4];
+ gBGTilemapBuffers[2][c + 1] = b[5];
+ gBGTilemapBuffers[2][c + 0x20] = b[6];
+ gBGTilemapBuffers[2][c + 0x21] = b[7];
+
+ gBGTilemapBuffers[1][c] = 0;
+ gBGTilemapBuffers[1][c + 1] = 0;
+ gBGTilemapBuffers[1][c + 0x20] = 0;
+ gBGTilemapBuffers[1][c + 0x21] = 0;
+ break;
+ case 0:
+ gBGTilemapBuffers[3][c] = 0x3014;
+ gBGTilemapBuffers[3][c + 1] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x20] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x21] = 0x3014;
+
+ gBGTilemapBuffers[2][c] = b[0];
+ gBGTilemapBuffers[2][c + 1] = b[1];
+ gBGTilemapBuffers[2][c + 0x20] = b[2];
+ gBGTilemapBuffers[2][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
+ }
+}
+
+static s32 MapPosToBgTilemapOffset(struct UnknownStruct *a, s32 x, s32 y)
+{
+ x -= gSaveBlock1.pos.x;
+ x *= 2;
+ if(x >= 32 || x < 0)
+ return -1;
+ x = x + a->unk2;
+ if(x >= 32)
+ x -= 32;
+
+ y = (y - gSaveBlock1.pos.y) * 2;
+ if(y >= 32 || y < 0)
+ return -1;
+ y = y + a->unk3;
+ if(y >= 32)
+ y -= 32;
+
+ return y * 32 + x;
+}
+
+static void CameraUpdateCallback(struct CameraSomething *a)
+{
+ if(a->unk4 != 0)
+ {
+ a->unk8 = gSprites[a->unk4].data2;
+ a->unkC = gSprites[a->unk4].data3;
+ }
+}
+
+void ResetCameraUpdateInfo(void)
+{
+ gUnknown_03004880.unk8 = 0;
+ gUnknown_03004880.unkC = 0;
+ gUnknown_03004880.unk10 = 0;
+ gUnknown_03004880.unk14 = 0;
+ gUnknown_03004880.unk4 = 0;
+ gUnknown_03004880.callback = NULL;
+}
+
+u32 InitCameraUpdateCallback(u8 a)
+{
+ if(gUnknown_03004880.unk4 != 0)
+ DestroySprite(&gSprites[gUnknown_03004880.unk4]);
+ gUnknown_03004880.unk4 = AddCameraObject(a);
+ gUnknown_03004880.callback = CameraUpdateCallback;
+ return 0;
+}
+
+void CameraUpdate(void)
+{
+ int deltaX;
+ int deltaY;
+ int r0;
+ int r1;
+ int r7;
+ int r8;
+
+ if(gUnknown_03004880.callback != NULL)
+ gUnknown_03004880.callback(&gUnknown_03004880);
+ r7 = gUnknown_03004880.unk8;
+ r8 = gUnknown_03004880.unkC;
+ deltaX = 0;
+ deltaY = 0;
+ r1 = gUnknown_03004880.unk10;
+ r0 = gUnknown_03004880.unk14;
+
+
+ if(r1 == 0 && r7 != 0)
+ {
+ if(r7 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+ if(r0 == 0 && r8 != 0)
+ {
+ if(r8 > 0)
+ deltaY = 1;
+ else
+ deltaY = -1;
+ }
+ if(r1 != 0 && r1 == -r7)
+ {
+ if(r7 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+ if(r0 != 0 && r0 == -r8)
+ {
+ if(r8 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+
+ gUnknown_03004880.unk10 += r7;
+ gUnknown_03004880.unk10 = gUnknown_03004880.unk10 - 16 * (gUnknown_03004880.unk10 / 16);
+ gUnknown_03004880.unk14 += r8;
+ gUnknown_03004880.unk14 = gUnknown_03004880.unk14 - 16 * (gUnknown_03004880.unk14 / 16);
+
+ if(deltaX != 0 || deltaY != 0)
+ {
+ CameraMove(deltaX, deltaY);
+ UpdateFieldObjectsForCameraUpdate(deltaX, deltaY);
+ RotatingGatePuzzleCameraUpdate(deltaX, deltaY);
+ ResetBerryTreeSparkleFlags();
+ tilemap_move_something(&gUnknown_03000590, deltaX * 2, deltaY * 2);
+ RedrawMapSlicesForCameraUpdate(&gUnknown_03000590, deltaX * 2, deltaY * 2);
+ }
+
+ coords8_add(&gUnknown_03000590, r7, r8);
+ gUnknown_0300489C -= r7;
+ gUnknown_03004898 -= r8;
+}
+
+static void camera_move_and_redraw(int a, int b)
+{
+ CameraMove(a, b);
+ UpdateFieldObjectsForCameraUpdate(a, b);
+ DrawWholeMapView();
+ gUnknown_0300489C -= a * 16;
+ gUnknown_03004898 -= b * 16;
+}
+
+void SetCameraPanningCallback(void (*a)(void))
+{
+ gUnknown_030005A0 = a;
+}
+
+void SetCameraPanning(s16 a, s16 b)
+{
+ gUnknown_03000598 = a;
+ gUnknown_0300059A = b + 32;
+}
+
+void InstallCameraPanAheadCallback(void)
+{
+ gUnknown_030005A0 = CameraPanningCB_PanAhead;
+ gUnknown_0300059C = 0;
+ gUnknown_03000598 = 0;
+ gUnknown_0300059A = 32;
+}
+
+void UpdateCameraPanning(void)
+{
+ if (gUnknown_030005A0 != NULL)
+ gUnknown_030005A0();
+ //Update sprite offset of overworld objects
+ gSpriteCoordOffsetX = gUnknown_0300489C - gUnknown_03000598;
+ gSpriteCoordOffsetY = gUnknown_03004898 - gUnknown_0300059A - 8;
+}
+
+static void CameraPanningCB_PanAhead(void)
+{
+ u8 var;
+
+ if (gUnknown_0202E854 == 0)
+ {
+ InstallCameraPanAheadCallback();
+ }
+ else
+ {
+ if (gPlayerAvatar.running1 == 1)
+ {
+ gUnknown_0300059C ^= 1;
+ if (gUnknown_0300059C == 0)
+ return;
+ }
+ else
+ {
+ gUnknown_0300059C = 0;
+ }
+
+ var = player_get_direction_upper_nybble();
+ if (var == 2)
+ {
+ if (gUnknown_0300059A > -8)
+ gUnknown_0300059A -= 2;
+ }
+ else if (var == 1)
+ {
+ if (gUnknown_0300059A < 72)
+ gUnknown_0300059A += 2;
+ }
+ else if (gUnknown_0300059A < 32)
+ {
+ gUnknown_0300059A += 2;
+ }
+ else if (gUnknown_0300059A > 32)
+ {
+ gUnknown_0300059A -= 2;
+ }
+ }
+}
diff --git a/src/text.c b/src/text.c
index 4f2581af6..885fb7547 100644
--- a/src/text.c
+++ b/src/text.c
@@ -177,10 +177,7 @@ static u8 sWaitType;
static u8 sLineLength;
static struct GlyphBuffer sGlyphBuffer;
-EWRAM_DATA u16 gBG0TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG1TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG2TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG3TilemapBuffer[0x400] = {0};
+EWRAM_DATA u16 gBGTilemapBuffers[4][0x400] = {0};
EWRAM_DATA u8 gStringVar1[0x100] = {0};
EWRAM_DATA u8 gStringVar2[0x100] = {0};