summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-01-07 08:54:56 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2019-01-07 08:54:56 -0500
commitbc79312d48781a35597705bf6663ac2a39598873 (patch)
tree386ec4bbf12ad8f11deedab94bc38a1680a91df0
parent08ffdce1b642dfc00080f99578049b8c3ddfd7e9 (diff)
Start decomping fieldmap
-rw-r--r--asm/field_map_obj.s4
-rw-r--r--asm/fieldmap.s185
-rw-r--r--data/data.s20
-rw-r--r--data/fieldmap.s15
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/global.fieldmap.h10
-rw-r--r--ld_script.txt3
-rw-r--r--src/fieldmap.c42
-rw-r--r--sym_common.txt2
-rw-r--r--sym_ewram.txt2
10 files changed, 120 insertions, 165 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 14951c20c..2c57aa70c 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -673,7 +673,7 @@ sub_805E2E8: @ 805E2E8
lsls r0, 24
cmp r0, 0
beq _0805E37C
- ldr r1, _0805E374 @ =gUnknown_3005040
+ ldr r1, _0805E374 @ =VMap
ldr r0, [r1]
adds r3, r0, 0
subs r3, 0x10
@@ -736,7 +736,7 @@ _0805E36A:
movs r0, 0
b _0805E37E
.align 2, 0
-_0805E374: .4byte gUnknown_3005040
+_0805E374: .4byte VMap
_0805E378: .4byte gSaveBlock1Ptr
_0805E37C:
movs r0, 0x1
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
index a8b2d36ee..9f1a17f08 100644
--- a/asm/fieldmap.s
+++ b/asm/fieldmap.s
@@ -5,93 +5,6 @@
.text
- thumb_func_start mapconnection_get_mapheader
-mapconnection_get_mapheader: @ 80589C4
- push {lr}
- ldrb r2, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- pop {r1}
- bx r1
- thumb_func_end mapconnection_get_mapheader
-
- thumb_func_start not_trainer_hill_battle_pyramid
-not_trainer_hill_battle_pyramid: @ 80589D4
- push {lr}
- ldr r0, _080589E4 @ =gMapHeader
- bl sub_8058A00
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589E4: .4byte gMapHeader
- thumb_func_end not_trainer_hill_battle_pyramid
-
- thumb_func_start sub_80589E8
-sub_80589E8: @ 80589E8
- push {lr}
- ldr r0, _080589FC @ =gMapHeader
- bl sub_8058A00
- bl sub_80591C4
- bl mapheader_run_script_with_tag_x1
- pop {r0}
- bx r0
- .align 2, 0
-_080589FC: .4byte gMapHeader
- thumb_func_end sub_80589E8
-
- thumb_func_start sub_8058A00
-sub_8058A00: @ 8058A00
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r5, [r6]
- ldr r0, _08058A58 @ =0x03ff03ff
- str r0, [sp]
- ldr r4, _08058A5C @ =gUnknown_2031DFC
- ldr r2, _08058A60 @ =0x01001400
- mov r0, sp
- adds r1, r4, 0
- bl CpuFastSet
- ldr r2, _08058A64 @ =gUnknown_3005040
- str r4, [r2, 0x8]
- ldr r1, [r5]
- adds r1, 0xF
- str r1, [r2]
- ldr r0, [r5, 0x4]
- adds r0, 0xE
- str r0, [r2, 0x4]
- muls r1, r0
- movs r0, 0xA0
- lsls r0, 6
- cmp r1, r0
- ble _08058A3E
- ldr r0, _08058A68 @ =gUnknown_8352F18 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c"
- ldr r2, _08058A6C @ =gUnknown_8352F4C "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE"
- movs r1, 0x9E
- movs r3, 0x1
- bl AGBAssert
-_08058A3E:
- ldr r0, [r5, 0xC]
- ldrh r1, [r5]
- ldrh r2, [r5, 0x4]
- bl map_copy_with_padding
- adds r0, r6, 0
- bl mapheader_copy_mapdata_of_adjacent_maps
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058A58: .4byte 0x03ff03ff
-_08058A5C: .4byte gUnknown_2031DFC
-_08058A60: .4byte 0x01001400
-_08058A64: .4byte gUnknown_3005040
-_08058A68: .4byte gUnknown_8352F18
-_08058A6C: .4byte gUnknown_8352F4C
- thumb_func_end sub_8058A00
-
thumb_func_start map_copy_with_padding
map_copy_with_padding: @ 8058A70
push {r4-r7,lr}
@@ -104,7 +17,7 @@ map_copy_with_padding: @ 8058A70
mov r8, r1
lsls r2, 16
lsrs r2, 16
- ldr r0, _08058AC4 @ =gUnknown_3005040
+ ldr r0, _08058AC4 @ =VMap
ldr r4, [r0, 0x8]
ldr r1, [r0]
lsls r0, r1, 3
@@ -138,7 +51,7 @@ _08058AB8:
pop {r0}
bx r0
.align 2, 0
-_08058AC4: .4byte gUnknown_3005040
+_08058AC4: .4byte VMap
thumb_func_end map_copy_with_padding
thumb_func_start mapheader_copy_mapdata_of_adjacent_maps
@@ -231,7 +144,7 @@ sub_8058B54: @ 8058B54
lsls r2, 1
ldr r3, [r4, 0xC]
adds r6, r3, r2
- ldr r3, _08058BB0 @ =gUnknown_3005040
+ ldr r3, _08058BB0 @ =VMap
ldr r2, [r3]
muls r1, r2
adds r1, r0
@@ -251,7 +164,7 @@ _08058B86:
mov r3, r8
ands r2, r3
bl CpuSet
- ldr r0, _08058BB0 @ =gUnknown_3005040
+ ldr r0, _08058BB0 @ =VMap
ldr r0, [r0]
lsls r0, 1
adds r5, r0
@@ -267,7 +180,7 @@ _08058BA6:
pop {r0}
bx r0
.align 2, 0
-_08058BB0: .4byte gUnknown_3005040
+_08058BB0: .4byte VMap
_08058BB4: .4byte 0x001fffff
thumb_func_end sub_8058B54
@@ -289,7 +202,7 @@ fillSouthConnection: @ 8058BB8
bge _08058BEC
negs r6, r2
adds r2, r4
- ldr r0, _08058BE8 @ =gUnknown_3005040
+ ldr r0, _08058BE8 @ =VMap
ldr r3, [r0]
cmp r2, r3
bge _08058BE2
@@ -298,11 +211,11 @@ _08058BE2:
movs r2, 0
b _08058BFC
.align 2, 0
-_08058BE8: .4byte gUnknown_3005040
+_08058BE8: .4byte VMap
_08058BEC:
movs r6, 0
adds r0, r2, r4
- ldr r1, _08058C1C @ =gUnknown_3005040
+ ldr r1, _08058C1C @ =VMap
ldr r1, [r1]
subs r3, r1, r2
cmp r0, r1
@@ -325,7 +238,7 @@ _08058C12:
pop {r0}
bx r0
.align 2, 0
-_08058C1C: .4byte gUnknown_3005040
+_08058C1C: .4byte VMap
thumb_func_end fillSouthConnection
thumb_func_start fillNorthConnection
@@ -344,7 +257,7 @@ fillNorthConnection: @ 8058C20
bge _08058C50
negs r6, r2
adds r2, r4
- ldr r0, _08058C4C @ =gUnknown_3005040
+ ldr r0, _08058C4C @ =VMap
ldr r3, [r0]
cmp r2, r3
bge _08058C46
@@ -353,11 +266,11 @@ _08058C46:
movs r2, 0
b _08058C60
.align 2, 0
-_08058C4C: .4byte gUnknown_3005040
+_08058C4C: .4byte VMap
_08058C50:
movs r6, 0
adds r0, r2, r4
- ldr r1, _08058C7C @ =gUnknown_3005040
+ ldr r1, _08058C7C @ =VMap
ldr r1, [r1]
subs r3, r1, r2
cmp r0, r1
@@ -379,7 +292,7 @@ _08058C74:
pop {r0}
bx r0
.align 2, 0
-_08058C7C: .4byte gUnknown_3005040
+_08058C7C: .4byte VMap
thumb_func_end fillNorthConnection
thumb_func_start fillWestConnection
@@ -398,7 +311,7 @@ fillWestConnection: @ 8058C80
bge _08058CB0
negs r6, r2
adds r1, r2, r4
- ldr r0, _08058CAC @ =gUnknown_3005040
+ ldr r0, _08058CAC @ =VMap
ldr r3, [r0, 0x4]
cmp r1, r3
bge _08058CA6
@@ -407,11 +320,11 @@ _08058CA6:
movs r2, 0
b _08058CC0
.align 2, 0
-_08058CAC: .4byte gUnknown_3005040
+_08058CAC: .4byte VMap
_08058CB0:
movs r6, 0
adds r0, r2, r4
- ldr r1, _08058CDC @ =gUnknown_3005040
+ ldr r1, _08058CDC @ =VMap
ldr r1, [r1, 0x4]
subs r3, r1, r2
cmp r0, r1
@@ -433,7 +346,7 @@ _08058CD4:
pop {r0}
bx r0
.align 2, 0
-_08058CDC: .4byte gUnknown_3005040
+_08058CDC: .4byte VMap
thumb_func_end fillWestConnection
thumb_func_start fillEastConnection
@@ -454,7 +367,7 @@ fillEastConnection: @ 8058CE0
bge _08058D14
negs r6, r2
adds r1, r2, r4
- ldr r0, _08058D10 @ =gUnknown_3005040
+ ldr r0, _08058D10 @ =VMap
ldr r3, [r0, 0x4]
cmp r1, r3
bge _08058D0A
@@ -463,11 +376,11 @@ _08058D0A:
movs r2, 0
b _08058D24
.align 2, 0
-_08058D10: .4byte gUnknown_3005040
+_08058D10: .4byte VMap
_08058D14:
movs r6, 0
adds r0, r2, r4
- ldr r1, _08058D40 @ =gUnknown_3005040
+ ldr r1, _08058D40 @ =VMap
ldr r1, [r1, 0x4]
subs r3, r1, r2
cmp r0, r1
@@ -489,7 +402,7 @@ _08058D38:
pop {r0}
bx r0
.align 2, 0
-_08058D40: .4byte gUnknown_3005040
+_08058D40: .4byte VMap
thumb_func_end fillEastConnection
thumb_func_start MapGridGetZCoordAt
@@ -499,7 +412,7 @@ MapGridGetZCoordAt: @ 8058D44
adds r7, r1, 0
cmp r2, 0
blt _08058D74
- ldr r1, _08058D70 @ =gUnknown_3005040
+ ldr r1, _08058D70 @ =VMap
ldr r3, [r1]
cmp r2, r3
bge _08058D74
@@ -517,7 +430,7 @@ MapGridGetZCoordAt: @ 8058D44
ldrh r1, [r0]
b _08058DA8
.align 2, 0
-_08058D70: .4byte gUnknown_3005040
+_08058D70: .4byte VMap
_08058D74:
ldr r0, _08058DB4 @ =gMapHeader
ldr r6, [r0]
@@ -567,7 +480,7 @@ sub_8058DC4: @ 8058DC4
adds r7, r1, 0
cmp r2, 0
blt _08058DF4
- ldr r1, _08058DF0 @ =gUnknown_3005040
+ ldr r1, _08058DF0 @ =VMap
ldr r3, [r1]
cmp r2, r3
bge _08058DF4
@@ -585,7 +498,7 @@ sub_8058DC4: @ 8058DC4
ldrh r1, [r0]
b _08058E28
.align 2, 0
-_08058DF0: .4byte gUnknown_3005040
+_08058DF0: .4byte VMap
_08058DF4:
ldr r0, _08058E38 @ =gMapHeader
ldr r6, [r0]
@@ -641,7 +554,7 @@ sub_8058E48: @ 8058E48
mov r9, r1
cmp r0, 0
blt _08058E80
- ldr r1, _08058E7C @ =gUnknown_3005040
+ ldr r1, _08058E7C @ =VMap
ldr r2, [r1]
cmp r8, r2
bge _08058E80
@@ -660,7 +573,7 @@ sub_8058E48: @ 8058E48
ldrh r7, [r0]
b _08058EBA
.align 2, 0
-_08058E7C: .4byte gUnknown_3005040
+_08058E7C: .4byte VMap
_08058E80:
ldr r0, _08058EC8 @ =gMapHeader
ldr r6, [r0]
@@ -825,7 +738,7 @@ MapGridSetMetatileIdAt: @ 8058FA4
lsrs r5, r2, 16
cmp r3, 0
blt _08058FDC
- ldr r2, _08058FE4 @ =gUnknown_3005040
+ ldr r2, _08058FE4 @ =VMap
ldr r4, [r2]
cmp r3, r4
bge _08058FDC
@@ -852,7 +765,7 @@ _08058FDC:
pop {r0}
bx r0
.align 2, 0
-_08058FE4: .4byte gUnknown_3005040
+_08058FE4: .4byte VMap
_08058FE8: .4byte 0x00000fff
thumb_func_end MapGridSetMetatileIdAt
@@ -864,7 +777,7 @@ MapGridSetMetatileEntryAt: @ 8058FEC
lsrs r5, r2, 16
cmp r3, 0
blt _08059018
- ldr r2, _08059020 @ =gUnknown_3005040
+ ldr r2, _08059020 @ =VMap
ldr r4, [r2]
cmp r3, r4
bge _08059018
@@ -885,7 +798,7 @@ _08059018:
pop {r0}
bx r0
.align 2, 0
-_08059020: .4byte gUnknown_3005040
+_08059020: .4byte VMap
thumb_func_end MapGridSetMetatileEntryAt
thumb_func_start sub_8059024
@@ -896,7 +809,7 @@ sub_8059024: @ 8059024
adds r5, r2, 0
cmp r4, 0
blt _08059076
- ldr r2, _08059060 @ =gUnknown_3005040
+ ldr r2, _08059060 @ =VMap
ldr r1, [r2]
cmp r4, r1
bge _08059076
@@ -921,7 +834,7 @@ sub_8059024: @ 8059024
strh r1, [r0]
b _08059076
.align 2, 0
-_08059060: .4byte gUnknown_3005040
+_08059060: .4byte VMap
_08059064:
muls r1, r3
adds r1, r4, r1
@@ -999,7 +912,7 @@ sub_80590D8: @ 80590D8
ldr r0, [r0]
ldr r1, _08059148 @ =0x00000898
adds r4, r0, r1
- ldr r0, _0805914C @ =gUnknown_3005040
+ ldr r0, _0805914C @ =VMap
ldr r0, [r0]
mov r8, r0
ldr r0, _08059150 @ =gSaveBlock1Ptr
@@ -1013,7 +926,7 @@ sub_80590D8: @ 80590D8
cmp r0, r1
bge _08059138
mov r12, r1
- ldr r2, _08059154 @ =gUnknown_2031DFC
+ ldr r2, _08059154 @ =gBackupMapData
mov r9, r2
lsls r7, r6, 1
_0805910A:
@@ -1052,9 +965,9 @@ _08059138:
.align 2, 0
_08059144: .4byte gSaveBlock2Ptr
_08059148: .4byte 0x00000898
-_0805914C: .4byte gUnknown_3005040
+_0805914C: .4byte VMap
_08059150: .4byte gSaveBlock1Ptr
-_08059154: .4byte gUnknown_2031DFC
+_08059154: .4byte gBackupMapData
thumb_func_end sub_80590D8
thumb_func_start sub_8059158
@@ -1129,7 +1042,7 @@ sub_80591C4: @ 80591C4
bl sub_8059158
cmp r0, 0
bne _08059230
- ldr r0, _08059244 @ =gUnknown_3005040
+ ldr r0, _08059244 @ =VMap
ldr r0, [r0]
mov r8, r0
ldr r0, _08059248 @ =gSaveBlock1Ptr
@@ -1143,7 +1056,7 @@ sub_80591C4: @ 80591C4
cmp r0, r1
bge _0805922C
mov r12, r1
- ldr r2, _0805924C @ =gUnknown_2031DFC
+ ldr r2, _0805924C @ =gBackupMapData
mov r9, r2
lsls r7, r6, 1
_080591FE:
@@ -1184,9 +1097,9 @@ _08059230:
.align 2, 0
_0805923C: .4byte gSaveBlock2Ptr
_08059240: .4byte 0x00000898
-_08059244: .4byte gUnknown_3005040
+_08059244: .4byte VMap
_08059248: .4byte gSaveBlock1Ptr
-_0805924C: .4byte gUnknown_2031DFC
+_0805924C: .4byte gBackupMapData
thumb_func_end sub_80591C4
thumb_func_start sub_8059250
@@ -1205,7 +1118,7 @@ sub_8059250: @ 8059250
ldr r3, _080592A0 @ =0x00000898
adds r3, r0, r3
str r3, [sp, 0x4]
- ldr r0, _080592A4 @ =gUnknown_3005040
+ ldr r0, _080592A4 @ =VMap
ldr r0, [r0]
str r0, [sp]
movs r4, 0
@@ -1231,7 +1144,7 @@ sub_8059250: @ 8059250
.align 2, 0
_0805929C: .4byte gSaveBlock2Ptr
_080592A0: .4byte 0x00000898
-_080592A4: .4byte gUnknown_3005040
+_080592A4: .4byte VMap
_080592A8: .4byte gSaveBlock1Ptr
_080592AC:
cmp r2, 0x3
@@ -1264,7 +1177,7 @@ _080592D6:
movs r1, 0
cmp r1, r12
bge _0805931A
- ldr r0, _08059330 @ =gUnknown_2031DFC
+ ldr r0, _08059330 @ =gBackupMapData
mov r10, r0
_080592E0:
adds r4, r1, 0x1
@@ -1309,7 +1222,7 @@ _0805931A:
pop {r0}
bx r0
.align 2, 0
-_08059330: .4byte gUnknown_2031DFC
+_08059330: .4byte gBackupMapData
thumb_func_end sub_8059250
thumb_func_start sub_8059334
@@ -1321,7 +1234,7 @@ sub_8059334: @ 8059334
mov r8, r1
cmp r7, 0
blt _08059374
- ldr r1, _0805936C @ =gUnknown_3005040
+ ldr r1, _0805936C @ =VMap
ldr r2, [r1]
cmp r7, r2
bge _08059374
@@ -1343,7 +1256,7 @@ sub_8059334: @ 8059334
beq _08059422
b _080593B0
.align 2, 0
-_0805936C: .4byte gUnknown_3005040
+_0805936C: .4byte VMap
_08059370: .4byte 0x000003ff
_08059374:
ldr r0, _080593CC @ =gMapHeader
@@ -1375,7 +1288,7 @@ _08059374:
cmp r0, r1
beq _08059422
_080593B0:
- ldr r1, _080593D4 @ =gUnknown_3005040
+ ldr r1, _080593D4 @ =VMap
ldr r0, [r1]
subs r0, 0x8
cmp r7, r0
@@ -1391,7 +1304,7 @@ _080593B0:
.align 2, 0
_080593CC: .4byte gMapHeader
_080593D0: .4byte 0x000003ff
-_080593D4: .4byte gUnknown_3005040
+_080593D4: .4byte VMap
_080593D8: .4byte gUnknown_2036E24
_080593DC:
cmp r7, 0x6
diff --git a/data/data.s b/data/data.s
index b02f4b451..ea8705f46 100644
--- a/data/data.s
+++ b/data/data.s
@@ -933,23 +933,3 @@ gUnknown_834EB8C:: @ 834EB8C
.incbin "baserom.gba", 0x34EB8C, 0x5FC
.include "data/maps/groups.inc"
-
-gUnknown_8352754:: @ 8352754
- .incbin "baserom.gba", 0x352754, 0x798
-
-gUnknown_8352EEC:: @ 8352EEC
- .incbin "baserom.gba", 0x352EEC, 0x4
-
-gUnknown_8352EF0:: @ 8352EF0
- .incbin "baserom.gba", 0x352EF0, 0x20
-
-gUnknown_8352F10:: @ 8352F10
- .incbin "baserom.gba", 0x352F10, 0x8
-
- .align 2
-gUnknown_8352F18:: @ 8352F18
- .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c"
-
- .align 2
-gUnknown_8352F4C:: @ 8352F4C
- .asciz "VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE"
diff --git a/data/fieldmap.s b/data/fieldmap.s
new file mode 100644
index 000000000..4248e441a
--- /dev/null
+++ b/data/fieldmap.s
@@ -0,0 +1,15 @@
+ .include "asm/macros.inc"
+
+ .section .rodata
+
+gUnknown_8352754:: @ 8352754
+ .incbin "baserom.gba", 0x352754, 0x798
+
+gUnknown_8352EEC:: @ 8352EEC
+ .incbin "baserom.gba", 0x352EEC, 0x4
+
+gUnknown_8352EF0:: @ 8352EF0
+ .incbin "baserom.gba", 0x352EF0, 0x20
+
+gUnknown_8352F10:: @ 8352F10
+ .incbin "baserom.gba", 0x352F10, 0x8
diff --git a/include/fieldmap.h b/include/fieldmap.h
index c5abdb2e1..fe2b5a928 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -3,6 +3,8 @@
#include "global.h"
+#define VIRTUAL_MAP_SIZE 0x2800
+
extern struct MapCoords {
int width;
int height;
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index ed5054b7d..3b3648121 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -67,8 +67,8 @@ struct MapData
struct BackupMapData
{
- s32 width;
- s32 height;
+ s32 Xsize;
+ s32 Ysize;
u16 *map;
};
@@ -149,9 +149,9 @@ struct MapEvents
struct MapConnection
{
/*0x00*/ u8 direction;
- /*0x01*/ u32 offset;
- /*0x05*/ u8 mapGroup;
- /*0x06*/ u8 mapNum;
+ /*0x04*/ u32 offset;
+ /*0x08*/ u8 mapGroup;
+ /*0x09*/ u8 mapNum;
};
struct MapConnections
diff --git a/ld_script.txt b/ld_script.txt
index 5bfe7f28c..1e6f87e23 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -91,6 +91,7 @@ SECTIONS {
asm/play_time.o(.text);
asm/new_game.o(.text);
asm/overworld.o(.text);
+ src/fieldmap.o(.text);
asm/fieldmap.o(.text);
src/metatile_behavior.o(.text);
asm/field_camera.o(.text);
@@ -367,6 +368,8 @@ SECTIONS {
src/bg_regs.o(.rodata);
src/string_util.o(.rodata);
data/data.o(.rodata);
+ data/fieldmap.o(.rodata);
+ src/fieldmap.o(.rodata);
src/metatile_behavior.o(.rodata);
data/metatile_behavior.o(.rodata);
data/data_835B488.o(.rodata);
diff --git a/src/fieldmap.c b/src/fieldmap.c
new file mode 100644
index 000000000..f9b3ad897
--- /dev/null
+++ b/src/fieldmap.c
@@ -0,0 +1,42 @@
+#include "global.h"
+#include "overworld.h"
+#include "script.h"
+#include "fieldmap.h"
+
+void sub_8058A00(struct MapHeader *mapHeader);
+void map_copy_with_padding(u16 *map, u16 width, u16 height);
+void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *mapHeader);
+void sub_80591C4(void);
+
+struct BackupMapData VMap;
+EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE];
+
+const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection)
+{
+ return get_mapheader_by_bank_and_number(connection->mapGroup, connection->mapNum);
+}
+
+void not_trainer_hill_battle_pyramid(void)
+{
+ sub_8058A00(&gMapHeader);
+ mapheader_run_script_with_tag_x1();
+}
+
+void sub_80589E8(void)
+{
+ sub_8058A00(&gMapHeader);
+ sub_80591C4();
+ mapheader_run_script_with_tag_x1();
+}
+
+void sub_8058A00(struct MapHeader * mapHeader)
+{
+ const struct MapData * mapData = mapHeader->mapData;
+ CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData));
+ VMap.map = gBackupMapData;
+ VMap.Xsize = mapData->width + 15;
+ VMap.Ysize = mapData->height + 14;
+ AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158);
+ map_copy_with_padding(mapData->map, mapData->width, mapData->height);
+ mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
+}
diff --git a/sym_common.txt b/sym_common.txt
index 333dae222..7cb460c84 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -160,7 +160,7 @@ gUnknown_300502C: @ 300502C
gUnknown_3005030: @ 3005030
.space 0x10
-gUnknown_3005040: @ 3005040
+VMap: @ 3005040
.space 0x10
gUnknown_3005050: @ 3005050
diff --git a/sym_ewram.txt b/sym_ewram.txt
index fbb152faa..1f63459b9 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -593,7 +593,7 @@ gUnknown_2031DEA: @ 2031DEA
gUnknown_2031DEC: @ 2031DEC
.space 0x10
-gUnknown_2031DFC: @ 2031DFC
+gBackupMapData: @ 2031DFC
.space 0x5000
gMapHeader: @ 2036DFC