diff options
-rw-r--r-- | asm/berry_tag_screen.s | 4 | ||||
-rw-r--r-- | asm/field_camera.s | 1330 | ||||
-rw-r--r-- | asm/item_menu.s | 160 | ||||
-rw-r--r-- | asm/item_use.s | 4 | ||||
-rw-r--r-- | asm/menu_helpers.s | 8 | ||||
-rw-r--r-- | asm/party_menu.s | 28 | ||||
-rw-r--r-- | asm/rom6.s | 20 | ||||
-rw-r--r-- | asm/roulette.s | 36 | ||||
-rw-r--r-- | asm/shop.s | 56 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/field_camera.c | 516 | ||||
-rw-r--r-- | src/text.c | 5 |
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}; |