summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--common_syms/agb_flash.txt10
-rw-r--r--common_syms/apprentice.txt3
-rwxr-xr-xcommon_syms/battle_anim_8170478.txt3
-rw-r--r--common_syms/battle_factory_screen.txt1
-rw-r--r--common_syms/battle_main.txt9
-rw-r--r--common_syms/battle_tower.txt1
-rw-r--r--common_syms/berry_blender.txt1
-rw-r--r--common_syms/bg.txt1
-rw-r--r--common_syms/contest.txt1
-rw-r--r--common_syms/field_camera.txt3
-rw-r--r--common_syms/field_control_avatar.txt1
-rw-r--r--common_syms/field_specials.txt1
-rw-r--r--common_syms/fieldmap.txt1
-rw-r--r--common_syms/intro.txt2
-rw-r--r--common_syms/link.txt37
-rw-r--r--common_syms/link_rfu.txt2
-rw-r--r--common_syms/list_menu.txt2
-rw-r--r--common_syms/load_save.txt4
-rw-r--r--common_syms/m4a_2.txt12
-rw-r--r--common_syms/main.txt9
-rw-r--r--common_syms/mauville_old_man.txt1
-rw-r--r--common_syms/overworld.txt8
-rw-r--r--common_syms/pokedex.txt2
-rw-r--r--common_syms/random.txt2
-rw-r--r--common_syms/rtc.txt1
-rw-r--r--common_syms/save.txt13
-rw-r--r--common_syms/sound.txt1
-rw-r--r--common_syms/sprite.txt2
-rw-r--r--common_syms/start_menu.txt1
-rw-r--r--common_syms/task.txt1
-rw-r--r--common_syms/text.txt4
-rw-r--r--common_syms/trainer_see.txt5
-rw-r--r--common_syms/tv.txt4
-rw-r--r--common_syms/window.txt5
-rw-r--r--sym_bss.txt237
-rw-r--r--sym_common.txt354
-rw-r--r--sym_ewram.txt546
38 files changed, 664 insertions, 637 deletions
diff --git a/Makefile b/Makefile
index b046c90d7..32cc9df73 100644
--- a/Makefile
+++ b/Makefile
@@ -172,8 +172,14 @@ $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
-$(OBJ_DIR)/sym_%.ld: sym_%.txt
- $(CPP) -P $(CPPFLAGS) $< | sed -e "s#tools/#../../tools/#g" > $@
+$(OBJ_DIR)/sym_bss.ld: sym_bss.txt
+ $(RAMSCRGEN) .bss $< ENGLISH > $@
+
+$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
+ $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@
+
+$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
+ $(RAMSCRGEN) ewram_data $< ENGLISH > $@
$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../ld_script.txt > ld_script.ld
diff --git a/common_syms/agb_flash.txt b/common_syms/agb_flash.txt
new file mode 100644
index 000000000..cb421ec80
--- /dev/null
+++ b/common_syms/agb_flash.txt
@@ -0,0 +1,10 @@
+gFlashTimeoutFlag
+PollFlashStatus
+WaitForFlashWrite
+ProgramFlashSector
+gFlash
+ProgramFlashByte
+gFlashNumRemainingBytes
+EraseFlashChip
+EraseFlashSector
+gFlashMaxTime
diff --git a/common_syms/apprentice.txt b/common_syms/apprentice.txt
new file mode 100644
index 000000000..e35133ecc
--- /dev/null
+++ b/common_syms/apprentice.txt
@@ -0,0 +1,3 @@
+gUnknown_030062EC
+gUnknown_030062F0
+gUnknown_030062F4
diff --git a/common_syms/battle_anim_8170478.txt b/common_syms/battle_anim_8170478.txt
new file mode 100755
index 000000000..2fc194df7
--- /dev/null
+++ b/common_syms/battle_anim_8170478.txt
@@ -0,0 +1,3 @@
+gUnknown_030062DC
+gUnknown_030062E0
+gUnknown_030062E4
diff --git a/common_syms/battle_factory_screen.txt b/common_syms/battle_factory_screen.txt
new file mode 100644
index 000000000..9f6868139
--- /dev/null
+++ b/common_syms/battle_factory_screen.txt
@@ -0,0 +1 @@
+gUnknown_030062E8
diff --git a/common_syms/battle_main.txt b/common_syms/battle_main.txt
new file mode 100644
index 000000000..35a925946
--- /dev/null
+++ b/common_syms/battle_main.txt
@@ -0,0 +1,9 @@
+gPreBattleCallback1
+gBattleMainFunc
+gBattleResults
+gLeveledUpInBattle
+gBattlerControllerFuncs
+gHealthboxSpriteIds
+gMultiUsePlayerCursor
+gNumberOfMovesToChoose
+gUnknown_03005D7C
diff --git a/common_syms/battle_tower.txt b/common_syms/battle_tower.txt
new file mode 100644
index 000000000..dd198e229
--- /dev/null
+++ b/common_syms/battle_tower.txt
@@ -0,0 +1 @@
+gUnknown_03006298
diff --git a/common_syms/berry_blender.txt b/common_syms/berry_blender.txt
new file mode 100644
index 000000000..1b15a33d6
--- /dev/null
+++ b/common_syms/berry_blender.txt
@@ -0,0 +1 @@
+gInGameOpponentsNo
diff --git a/common_syms/bg.txt b/common_syms/bg.txt
new file mode 100644
index 000000000..2495d1646
--- /dev/null
+++ b/common_syms/bg.txt
@@ -0,0 +1 @@
+gUnneededFireRedVariable
diff --git a/common_syms/contest.txt b/common_syms/contest.txt
new file mode 100644
index 000000000..6a519fb46
--- /dev/null
+++ b/common_syms/contest.txt
@@ -0,0 +1 @@
+gContestRngValue
diff --git a/common_syms/field_camera.txt b/common_syms/field_camera.txt
new file mode 100644
index 000000000..02301ce23
--- /dev/null
+++ b/common_syms/field_camera.txt
@@ -0,0 +1,3 @@
+gFieldCamera
+gTotalCameraPixelOffsetY
+gTotalCameraPixelOffsetX
diff --git a/common_syms/field_control_avatar.txt b/common_syms/field_control_avatar.txt
new file mode 100644
index 000000000..0f336a407
--- /dev/null
+++ b/common_syms/field_control_avatar.txt
@@ -0,0 +1 @@
+gSelectedEventObject
diff --git a/common_syms/field_specials.txt b/common_syms/field_specials.txt
new file mode 100644
index 000000000..25d874a65
--- /dev/null
+++ b/common_syms/field_specials.txt
@@ -0,0 +1 @@
+gUnknown_030061D0
diff --git a/common_syms/fieldmap.txt b/common_syms/fieldmap.txt
new file mode 100644
index 000000000..0ead75846
--- /dev/null
+++ b/common_syms/fieldmap.txt
@@ -0,0 +1 @@
+gBackupMapLayout
diff --git a/common_syms/intro.txt b/common_syms/intro.txt
new file mode 100644
index 000000000..d069b1014
--- /dev/null
+++ b/common_syms/intro.txt
@@ -0,0 +1,2 @@
+gIntroFrameCounter
+gMultibootProgramStruct
diff --git a/common_syms/link.txt b/common_syms/link.txt
new file mode 100644
index 000000000..a6d096116
--- /dev/null
+++ b/common_syms/link.txt
@@ -0,0 +1,37 @@
+gLinkPartnersHeldKeys
+gLinkDebugSeed
+gLocalLinkPlayerBlock
+gLinkErrorOccurred
+gLinkDebugFlags
+gFiller_03003074
+gRemoteLinkPlayersNotReceived
+gBlockReceivedStatus
+gFiller_03003080
+gLinkHeldKeys
+gRecvCmds
+gLinkStatus
+gUnknown_030030E4
+gUnknown_030030E8
+gUnknown_030030EC
+gUnknown_030030F0
+gUnknown_030030F4
+gSuppressLinkErrorMessage
+gWirelessCommType
+gSavedLinkPlayerCount
+gSendCmd
+gSavedMultiplayerId
+gReceivedRemoteLinkPlayers
+gLinkTestBGInfo
+gLinkCallback
+gShouldAdvanceLinkState
+gLinkTestBlockChecksums
+gBlockRequestType
+gFiller_03003154
+gFiller_03003158
+gFiller_0300315c
+gLastSendQueueCount
+gLink
+gLastRecvQueueCount
+gLinkSavedIme
+gFiller_03004138
+gFiller_0300413C
diff --git a/common_syms/link_rfu.txt b/common_syms/link_rfu.txt
new file mode 100644
index 000000000..67dd00ca7
--- /dev/null
+++ b/common_syms/link_rfu.txt
@@ -0,0 +1,2 @@
+gUnknown_03004140
+gUnknown_03005000
diff --git a/common_syms/list_menu.txt b/common_syms/list_menu.txt
new file mode 100644
index 000000000..ed5343618
--- /dev/null
+++ b/common_syms/list_menu.txt
@@ -0,0 +1,2 @@
+gListMenuOverride
+gMultiuseListMenuTemplate
diff --git a/common_syms/load_save.txt b/common_syms/load_save.txt
new file mode 100644
index 000000000..2d3d9b802
--- /dev/null
+++ b/common_syms/load_save.txt
@@ -0,0 +1,4 @@
+gFlashMemoryPresent
+gSaveBlock1Ptr
+gSaveBlock2Ptr
+gPokemonStoragePtr
diff --git a/common_syms/m4a_2.txt b/common_syms/m4a_2.txt
new file mode 100644
index 000000000..0d6b13a79
--- /dev/null
+++ b/common_syms/m4a_2.txt
@@ -0,0 +1,12 @@
+gSoundInfo
+gPokemonCrySongs
+gPokemonCryMusicPlayers
+gMPlayInfo_BGM
+gMPlayJumpTable
+gCgbChans
+gMPlayInfo_SE1
+gMPlayInfo_SE2
+gPokemonCryTracks
+gPokemonCrySong
+gMPlayMemAccArea
+gMPlayInfo_SE3
diff --git a/common_syms/main.txt b/common_syms/main.txt
new file mode 100644
index 000000000..a620083d1
--- /dev/null
+++ b/common_syms/main.txt
@@ -0,0 +1,9 @@
+gKeyRepeatStartDelay
+gLinkTransferringData
+gMain
+gKeyRepeatContinueDelay
+gSoftResetDisabled
+gIntrTable
+gLinkVSyncDisabled
+IntrMain_Buffer
+gPcmDmaCounter
diff --git a/common_syms/mauville_old_man.txt b/common_syms/mauville_old_man.txt
new file mode 100644
index 000000000..9d77b8692
--- /dev/null
+++ b/common_syms/mauville_old_man.txt
@@ -0,0 +1 @@
+gBardSong
diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt
new file mode 100644
index 000000000..b92da84ec
--- /dev/null
+++ b/common_syms/overworld.txt
@@ -0,0 +1,8 @@
+gBGTilemapBuffers1
+gBGTilemapBuffers2
+gBGTilemapBuffers3
+gUnknown_03005DA8
+gFieldCallback
+gFieldCallback2
+gUnknown_03005DB4
+gFieldLinkPlayerCount
diff --git a/common_syms/pokedex.txt b/common_syms/pokedex.txt
new file mode 100644
index 000000000..c982c9d3a
--- /dev/null
+++ b/common_syms/pokedex.txt
@@ -0,0 +1,2 @@
+gUnknown_030060B0
+gUnknown_030060B4
diff --git a/common_syms/random.txt b/common_syms/random.txt
new file mode 100644
index 000000000..8037c6958
--- /dev/null
+++ b/common_syms/random.txt
@@ -0,0 +1,2 @@
+gRngValue
+gRng2Value
diff --git a/common_syms/rtc.txt b/common_syms/rtc.txt
new file mode 100644
index 000000000..fa00a34d5
--- /dev/null
+++ b/common_syms/rtc.txt
@@ -0,0 +1 @@
+gLocalTime
diff --git a/common_syms/save.txt b/common_syms/save.txt
new file mode 100644
index 000000000..d7668c332
--- /dev/null
+++ b/common_syms/save.txt
@@ -0,0 +1,13 @@
+gLastWrittenSector
+gLastSaveCounter
+gLastKnownGoodSector
+gDamagedSaveSectors
+gSaveCounter
+gFastSaveSection
+gUnknown_03006208
+gSaveUnusedVar
+gSaveFileStatus
+gGameContinueCallback
+gRamSaveSectionLocations
+gSaveUnusedVar2
+gUnknown_03006294
diff --git a/common_syms/sound.txt b/common_syms/sound.txt
new file mode 100644
index 000000000..0f6f2fc75
--- /dev/null
+++ b/common_syms/sound.txt
@@ -0,0 +1 @@
+gDisableMusic
diff --git a/common_syms/sprite.txt b/common_syms/sprite.txt
new file mode 100644
index 000000000..627c01c0d
--- /dev/null
+++ b/common_syms/sprite.txt
@@ -0,0 +1,2 @@
+gOamMatrixAllocBitmap
+gReservedSpritePaletteCount
diff --git a/common_syms/start_menu.txt b/common_syms/start_menu.txt
new file mode 100644
index 000000000..05beaf57c
--- /dev/null
+++ b/common_syms/start_menu.txt
@@ -0,0 +1 @@
+gMenuCallback
diff --git a/common_syms/task.txt b/common_syms/task.txt
new file mode 100644
index 000000000..6601bd11b
--- /dev/null
+++ b/common_syms/task.txt
@@ -0,0 +1 @@
+gTasks
diff --git a/common_syms/text.txt b/common_syms/text.txt
new file mode 100644
index 000000000..4406c8bf9
--- /dev/null
+++ b/common_syms/text.txt
@@ -0,0 +1,4 @@
+gFonts
+gUnknown_03002F84
+gUnknown_03002F90
+gTextFlags
diff --git a/common_syms/trainer_see.txt b/common_syms/trainer_see.txt
new file mode 100644
index 000000000..2d0514325
--- /dev/null
+++ b/common_syms/trainer_see.txt
@@ -0,0 +1,5 @@
+gUnknown_03006080
+gUnknown_03006084
+gApproachingTrainers
+gNoOfApproachingTrainers
+gUnknown_030060AC
diff --git a/common_syms/tv.txt b/common_syms/tv.txt
new file mode 100644
index 000000000..0370f65e1
--- /dev/null
+++ b/common_syms/tv.txt
@@ -0,0 +1,4 @@
+sCurTVShowSlot
+sTV_SecretBaseVisitMovesTemp
+sTV_DecorationsBuffer
+sTV_SecretBaseVisitMonsTemp
diff --git a/common_syms/window.txt b/common_syms/window.txt
new file mode 100644
index 000000000..e1b52a24f
--- /dev/null
+++ b/common_syms/window.txt
@@ -0,0 +1,5 @@
+filler_03002F58
+filler_03002F5C
+gUnknown_03002F60
+filler_03002F64
+gUnknown_03002F70
diff --git a/sym_bss.txt b/sym_bss.txt
index e2b3ff674..ae4e5dadf 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -1,118 +1,119 @@
-. = ALIGN(4); src/main.o(.bss);
-. = ALIGN(4); src/alloc.o(.bss);
-. = ALIGN(4); src/dma3_manager.o(.bss);
-. = ALIGN(4); src/gpu_regs.o(.bss);
-. = ALIGN(4); src/bg.o(.bss);
-. = ALIGN(4); src/text.o(.bss);
-. = ALIGN(4); src/sprite.o(.bss);
-. = ALIGN(4); src/link.o(.bss);
-. = ALIGN(4); src/link_rfu.o(.bss);
-. = ALIGN(4); src/rom_8011DC0.o(.bss);
-. = ALIGN(4); src/rtc.o(.bss);
-. = ALIGN(4); src/main_menu.o(.bss);
-. = ALIGN(4); src/rom_8034C54.o(.bss);
-. = ALIGN(4); src/egg_hatch.o(.bss);
-. = ALIGN(4); src/berry_blender.o(.bss);
-. = ALIGN(4); src/play_time.o(.bss);
-. = ALIGN(4); src/overworld.o(.bss);
-. = ALIGN(4); src/field_camera.o(.bss);
-. = ALIGN(4); src/script.o(.bss);
-. = ALIGN(4); src/scrcmd.o(.bss);
-. = ALIGN(4); src/tileset_anims.o(.bss);
-. = ALIGN(4); src/palette.o(.bss);
-. = ALIGN(4); src/sound.o(.bss);
-. = ALIGN(4); src/field_weather.o(.bss);
-. = ALIGN(4); src/field_effect.o(.bss);
-. = ALIGN(4); src/pokemon_storage_system.o(.bss);
-. = ALIGN(4); src/fldeff_cut.o(.bss);
-. = ALIGN(4); src/script_menu.o(.bss);
-. = ALIGN(4); src/record_mixing.o(.bss);
-. = ALIGN(4); src/tv.o(.bss);
-. = ALIGN(4); src/mauville_old_man.o(.bss);
-. = ALIGN(4); src/menu_helpers.o(.bss);
-. = ALIGN(4); src/region_map.o(.bss);
-. = ALIGN(4); src/slot_machine.o(.bss);
-. = ALIGN(4); src/contest_painting.o(.bss);
-. = ALIGN(4); src/starter_choose.o(.bss);
-. = ALIGN(4); src/pokedex_area_screen.o(.bss);
-. = ALIGN(4); src/battle_transition.o(.bss);
-. = ALIGN(4); src/pokemon_animation.o(.bss);
-. = ALIGN(4); src/recorded_battle.o(.bss);
-. = ALIGN(4); src/battle_factory_screen.o(.bss);
-. = ALIGN(4); src/battle_factory.o(.bss);
-. = ALIGN(4); src/battle_pike.o(.bss);
-. = ALIGN(4); src/battle_tent.o(.bss);
-. = ALIGN(4); src/multiboot.o(.bss);
-. = ALIGN(4); src/mirage_tower.o(.bss);
-. = ALIGN(4); src/berry_fix_program.o(.bss);
-gUnknown_030012BC = .;
- . += 0x4;
-
-gUnknown_030012C0 = .;
- . += 0x4;
-
-gUnknown_030012C4 = .;
- . += 0x4;
-
-gUnknown_030012C8 = .;
- . += 0x18;
-
-gUnknown_030012E0 = .;
- . += 0x2;
-
-gUnknown_030012E2 = .;
- . += 0x2;
-
-gUnknown_030012E4 = .;
- . += 0x2;
-
-gUnknown_030012E6 = .;
- . += 0x2;
-
-gUnknown_030012E8 = .;
- . += 0x4;
-
-gUnknown_030012EC = .;
- . += 0x2;
-
-gUnknown_030012EE = .;
- . += 0x2;
-
-gUnknown_030012F0 = .;
- . += 0x2;
-
-gUnknown_030012F2 = .;
- . += 0x2;
-
-gUnknown_030012F4 = .;
- . += 0x4;
-
-gUnknown_030012F8 = .;
- . += 0x2;
-
-gUnknown_030012FA = .;
- . += 0x2;
-
-gUnknown_030012FC = .;
- . += 0x4;
-
-gUnknown_03001300 = .;
- . += 0x40;
-
-gMPlayTrack_BGM = .;
- . += 0x320;
-
-gMPlayTrack_SE1 = .;
- . += 0xF0;
-
-gMPlayTrack_SE2 = .;
- . += 0x2D0;
-
-gMPlayTrack_SE3 = .;
- . += 0x50;
-
-. = ALIGN(4); src/agb_flash.o(.bss);
-. = ALIGN(4); src/siirtc.o(.bss);
-. = ALIGN(4); *libgcc.a:dp-bit.o(.bss);
-. = ALIGN(4); *libgcc.a:fp-bit.o(.bss);
-. = ALIGN(4); *libc.a:syscalls.o(.bss);
+ .include "src/main.o"
+ .include "src/alloc.o"
+ .include "src/dma3_manager.o"
+ .include "src/gpu_regs.o"
+ .include "src/bg.o"
+ .include "src/text.o"
+ .include "src/sprite.o"
+ .include "src/link.o"
+ .include "src/link_rfu.o"
+ .include "src/rom_8011DC0.o"
+ .include "src/rtc.o"
+ .include "src/main_menu.o"
+ .include "src/rom_8034C54.o"
+ .include "src/egg_hatch.o"
+ .include "src/berry_blender.o"
+ .include "src/play_time.o"
+ .include "src/overworld.o"
+ .include "src/field_camera.o"
+ .include "src/script.o"
+ .include "src/scrcmd.o"
+ .include "src/tileset_anims.o"
+ .include "src/palette.o"
+ .include "src/sound.o"
+ .include "src/field_weather.o"
+ .include "src/field_effect.o"
+ .include "src/pokemon_storage_system.o"
+ .include "src/fldeff_cut.o"
+ .include "src/script_menu.o"
+ .include "src/record_mixing.o"
+ .include "src/tv.o"
+ .include "src/mauville_old_man.o"
+ .include "src/menu_helpers.o"
+ .include "src/region_map.o"
+ .include "src/slot_machine.o"
+ .include "src/contest_painting.o"
+ .include "src/starter_choose.o"
+ .include "src/pokedex_area_screen.o"
+ .include "src/battle_transition.o"
+ .include "src/pokemon_animation.o"
+ .include "src/recorded_battle.o"
+ .include "src/battle_factory_screen.o"
+ .include "src/battle_factory.o"
+ .include "src/battle_pike.o"
+ .include "src/battle_tent.o"
+ .include "src/multiboot.o"
+ .include "src/mirage_tower.o"
+ .include "src/berry_fix_program.o"
+
+gUnknown_030012BC: @ 30012BC
+ .space 0x4
+
+gUnknown_030012C0: @ 30012C0
+ .space 0x4
+
+gUnknown_030012C4: @ 30012C4
+ .space 0x4
+
+gUnknown_030012C8: @ 30012C8
+ .space 0x18
+
+gUnknown_030012E0: @ 30012E0
+ .space 0x2
+
+gUnknown_030012E2: @ 30012E2
+ .space 0x2
+
+gUnknown_030012E4: @ 30012E4
+ .space 0x2
+
+gUnknown_030012E6: @ 30012E6
+ .space 0x2
+
+gUnknown_030012E8: @ 30012E8
+ .space 0x4
+
+gUnknown_030012EC: @ 30012EC
+ .space 0x2
+
+gUnknown_030012EE: @ 30012EE
+ .space 0x2
+
+gUnknown_030012F0: @ 30012F0
+ .space 0x2
+
+gUnknown_030012F2: @ 30012F2
+ .space 0x2
+
+gUnknown_030012F4: @ 30012F4
+ .space 0x4
+
+gUnknown_030012F8: @ 30012F8
+ .space 0x2
+
+gUnknown_030012FA: @ 30012FA
+ .space 0x2
+
+gUnknown_030012FC: @ 30012FC
+ .space 0x4
+
+gUnknown_03001300: @ 3001300
+ .space 0x40
+
+gMPlayTrack_BGM: @ 3001340
+ .space 0x320
+
+gMPlayTrack_SE1: @ 3001660
+ .space 0xF0
+
+gMPlayTrack_SE2: @ 3001750
+ .space 0x2D0
+
+gMPlayTrack_SE3: @ 3001A20
+ .space 0x50
+
+ .include "src/agb_flash.o"
+ .include "src/siirtc.o"
+ .include "*libgcc.a:dp-bit.o"
+ .include "*libgcc.a:fp-bit.o"
+ .include "*libc.a:syscalls.o"
diff --git a/sym_common.txt b/sym_common.txt
index b13989de3..3a7d698fd 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -1,260 +1,116 @@
-#define SYMBOL(name, size) \
- . = ALIGN (((size) > 16) ? 16 : (size)); \
- . = ALIGN(4); \
- name = .; \
- . += size;
-
-
-
-. += 0x8;
-// main.c
-SYMBOL(gKeyRepeatStartDelay, 4)
-SYMBOL(gLinkTransferringData, 4)
-SYMBOL(gMain, 1084)
-SYMBOL(gKeyRepeatContinueDelay, 4)
-SYMBOL(gSoftResetDisabled, 4)
-SYMBOL(gIntrTable, 56)
-SYMBOL(gLinkVSyncDisabled, 4)
-SYMBOL(IntrMain_Buffer, 2048)
-SYMBOL(gPcmDmaCounter, 4)
-
-// bg.c
-SYMBOL(gUnneededFireRedVariable, 4)
-
-// window.c
-SYMBOL(filler_03002F58, 4)
-SYMBOL(filler_03002F5C, 4)
-SYMBOL(gUnknown_03002F60, 4)
-SYMBOL(filler_03002F64, 4)
-SYMBOL(gUnknown_03002F70, 16)
-
-// text.c
-SYMBOL(gFonts, 4)
-SYMBOL(gUnknown_03002F84, 4)
-SYMBOL(gUnknown_03002F90, 132)
-SYMBOL(gTextFlags, 4)
-
-// sprite.c
-SYMBOL(gOamMatrixAllocBitmap, 4)
-SYMBOL(gReservedSpritePaletteCount, 4)
-
-// link.c
-. = ALIGN(16);
-gLinkPartnersHeldKeys = .;
- . += 0xC;
-SYMBOL(gLinkDebugSeed, 4)
-SYMBOL(gLocalLinkPlayerBlock, 60)
-SYMBOL(gLinkErrorOccurred, 4)
-SYMBOL(gLinkDebugFlags, 4)
-SYMBOL(gFiller_03003074, 4)
-SYMBOL(gRemoteLinkPlayersNotReceived, 4)
-SYMBOL(gBlockReceivedStatus, 4)
-SYMBOL(gFiller_03003080, 4)
-SYMBOL(gLinkHeldKeys, 4)
-SYMBOL(gRecvCmds, 80)
-SYMBOL(gLinkStatus, 4)
-SYMBOL(gUnknown_030030E4, 4)
-SYMBOL(gUnknown_030030E8, 4)
-SYMBOL(gUnknown_030030EC, 4)
-SYMBOL(gUnknown_030030F0, 4)
-SYMBOL(gUnknown_030030F4, 4)
-SYMBOL(gSuppressLinkErrorMessage, 4)
-SYMBOL(gWirelessCommType, 4)
-SYMBOL(gSavedLinkPlayerCount, 4)
-SYMBOL(gSendCmd, 16)
-SYMBOL(gSavedMultiplayerId, 4)
-SYMBOL(gReceivedRemoteLinkPlayers, 4)
-SYMBOL(gLinkTestBGInfo, 16)
-SYMBOL(gLinkCallback, 4)
-SYMBOL(gShouldAdvanceLinkState, 4)
-SYMBOL(gLinkTestBlockChecksums, 8)
-SYMBOL(gBlockRequestType, 4)
-SYMBOL(gFiller_03003154, 4)
-SYMBOL(gFiller_03003158, 4)
-SYMBOL(gFiller_0300315c, 4)
-SYMBOL(gLastSendQueueCount, 4)
-SYMBOL(gLink, 4032)
-SYMBOL(gLastRecvQueueCount, 4)
-SYMBOL(gLinkSavedIme, 4)
-SYMBOL(gFiller_03004138, 4)
-SYMBOL(gFiller_0300413C, 4)
-
-// link_rfu.c
-SYMBOL(gUnknown_03004140, 3776)
-SYMBOL(gUnknown_03005000, 3316)
-
-// rtc.c
-SYMBOL(gLocalTime, 8)
-
-// battle_main.c
-SYMBOL(gPreBattleCallback1, 4)
-SYMBOL(gBattleMainFunc, 4)
-SYMBOL(gBattleResults, 68)
-SYMBOL(gLeveledUpInBattle, 4)
-SYMBOL(gBattlerControllerFuncs, 16);
-SYMBOL(gHealthboxSpriteIds, 4)
-SYMBOL(gMultiUsePlayerCursor, 4)
-SYMBOL(gNumberOfMovesToChoose, 4)
-SYMBOL(gUnknown_03005D7C, 4)
-
-// random.c
-SYMBOL(gRngValue, 4)
-SYMBOL(gRng2Value, 4)
-
-// load_save.c
-SYMBOL(gFlashMemoryPresent, 4)
-SYMBOL(gSaveBlock1Ptr, 4)
-SYMBOL(gSaveBlock2Ptr, 4)
-SYMBOL(gPokemonStoragePtr, 4)
-
-// berry_blender.c
-SYMBOL(gInGameOpponentsNo, 4)
-
-// overworld.c
-SYMBOL(gBGTilemapBuffers1, 4)
-SYMBOL(gBGTilemapBuffers2, 4)
-SYMBOL(gBGTilemapBuffers3, 4)
-SYMBOL(gUnknown_03005DA8, 4)
-SYMBOL(gFieldCallback, 4)
-SYMBOL(gFieldCallback2, 4)
-SYMBOL(gUnknown_03005DB4, 4)
-SYMBOL(gFieldLinkPlayerCount, 4)
-
-// fieldmap.c
-SYMBOL(gBackupMapLayout, 12)
-
-// field_camera.c
-SYMBOL(gFieldCamera, 24)
-SYMBOL(gTotalCameraPixelOffsetY, 4)
-SYMBOL(gTotalCameraPixelOffsetX, 4)
-
-// field_control_avatar.c
-SYMBOL(gSelectedEventObject, 4)
-
-// start_menu.c
-SYMBOL(gMenuCallback, 4)
-
-// sound.c
-SYMBOL(gDisableMusic, 4)
-
-// task.c
-SYMBOL(gTasks, 640)
-
-// trainer_see.c
-SYMBOL(gUnknown_03006080, 4)
-SYMBOL(gUnknown_03006084, 4)
-SYMBOL(gApproachingTrainers, 24)
-SYMBOL(gNoOfApproachingTrainers, 4)
-SYMBOL(gUnknown_030060AC, 4)
-
-// pokedex.c
-SYMBOL(gUnknown_030060B0, 4)
-SYMBOL(gUnknown_030060B4, 4)
-
-// contest.c
-SYMBOL(gContestRngValue, 4)
-
-// tv.c
-SYMBOL(sCurTVShowSlot, 4)
-SYMBOL(sTV_SecretBaseVisitMovesTemp, 16)
-SYMBOL(sTV_DecorationsBuffer, 16)
-SYMBOL(sTV_SecretBaseVisitMonsTemp, 80)
-
-// mauville_old_man.c
-SYMBOL(gBardSong, 52)
-
-SYMBOL(gUnknown_03006164, 4)
-SYMBOL(gUnknown_03006168, 4)
-SYMBOL(gUnknown_0300616C, 4)
-SYMBOL(gUnknown_03006170, 4)
-SYMBOL(gUnknown_03006174, 4)
-SYMBOL(gUnknown_03006178, 4)
-SYMBOL(gUnknown_0300617C, 4)
-SYMBOL(gUnknown_03006180, 4)
-SYMBOL(gUnknown_03006184, 4)
-SYMBOL(gUnknown_03006188, 8)
-SYMBOL(gUnknown_03006190, 16)
-SYMBOL(gUnknown_030061A0, 32)
-SYMBOL(gUnknown_030061C0, 4)
-gContestPaintingMonPalette = .;
- . += 0xC;
+ .space 0x8
+ .include "main.o"
+ .include "bg.o"
+ .include "window.o"
+ .include "text.o"
+ .include "sprite.o"
+ .include "link.o"
+ .include "link_rfu.o"
+ .include "rtc.o"
+ .include "battle_main.o"
+ .include "random.o"
+ .include "load_save.o"
+ .include "berry_blender.o"
+ .include "overworld.o"
+ .include "fieldmap.o"
+ .include "field_camera.o"
+ .include "field_control_avatar.o"
+ .include "start_menu.o"
+ .include "sound.o"
+ .include "task.o"
+ .include "trainer_see.o"
+ .include "pokedex.o"
+ .include "contest.o"
+ .include "tv.o"
+ .include "mauville_old_man.o"
+
+gUnknown_03006164: @ 3006164
+ .space 0x4
+
+gUnknown_03006168: @ 3006168
+ .space 0x4
+
+gUnknown_0300616C: @ 300616C
+ .space 0x4
+
+gUnknown_03006170: @ 3006170
+ .space 0x4
+
+gUnknown_03006174: @ 3006174
+ .space 0x4
+
+gUnknown_03006178: @ 3006178
+ .space 0x4
+
+gUnknown_0300617C: @ 300617C
+ .space 0x4
+
+gUnknown_03006180: @ 3006180
+ .space 0x4
+
+gUnknown_03006184: @ 3006184
+ .space 0x4
+
+gUnknown_03006188: @ 3006188
+ .space 0x8
+
+gUnknown_03006190: @ 3006190
+ .space 0x10
+
+gUnknown_030061A0: @ 30061A0
+ .space 0x20
+
+gUnknown_030061C0: @ 30061C0
+ .space 0x4
+
+gContestPaintingMonPalette: @ 30061C4
+ .space 0xC
+
+ .include "field_specials.o"
+
+gCB2_AfterEvolution: @ 30061E8
+ .space 0x4
+
+gDexCryScreenState: @ 30061EC
+ .space 0x4
+
+ .include "save.o"
+ .include "battle_tower.o"
+ .include "intro.o"
+ .include "battle_anim_8170478.o"
+ .include "battle_factory_screen.o"
+ .include "apprentice.o"
+
+ .space 0x8
-// field_specials.c
-SYMBOL(gUnknown_030061D0, 24)
-SYMBOL(gCB2_AfterEvolution, 4)
-SYMBOL(gDexCryScreenState, 4)
+ .include "list_menu.o"
-// save.c
-SYMBOL(gLastWrittenSector, 4)
-SYMBOL(gLastSaveCounter, 4)
-SYMBOL(gLastKnownGoodSector, 4)
-SYMBOL(gDamagedSaveSectors, 4)
-SYMBOL(gSaveCounter, 4)
-SYMBOL(gFastSaveSection, 4)
-SYMBOL(gUnknown_03006208, 4)
-SYMBOL(gSaveUnusedVar, 4)
-SYMBOL(gSaveFileStatus, 4)
-SYMBOL(gGameContinueCallback, 4)
-SYMBOL(gRamSaveSectionLocations, 112)
-SYMBOL(gSaveUnusedVar2, 4)
-SYMBOL(gUnknown_03006294, 4)
+gUnknown_03006328: @ 3006328
+ .space 0x48
-// battle_tower.c
-SYMBOL(gUnknown_03006298,8)
+gUnknown_03006370: @ 3006370
+ .space 0x10
-// intro.c
-SYMBOL(gIntroFrameCounter, 4)
-SYMBOL(gMultibootProgramStruct, 44)
+ .include "m4a_2.o"
+ .include "agb_flash.o"
-// battle_anim_81470478
-SYMBOL(gUnknown_030062DC, 4)
-SYMBOL(gUnknown_030062E0, 4)
-SYMBOL(gUnknown_030062E4, 4)
+gRfuState: @ 3007868
+ .space 0x8
-// battle_factory_screen.c
-SYMBOL(gUnknown_030062E8, 4)
+gUnknown_03007870: @ 3007870
+ .space 0x10
-// apprentice.c
-SYMBOL(gUnknown_030062EC, 4)
-SYMBOL(gUnknown_030062F0, 4)
-SYMBOL(gUnknown_030062F4, 12)
+gUnknown_03007880: @ 3007880
+ .space 0x10
-SYMBOL(gListMenuOverride, 4)
-SYMBOL(gMultiuseListMenuTemplate, 24)
-gUnknown_03006328 = .;
- . += 0x48;
-SYMBOL(gUnknown_03006370, 16)
+gUnknown_03007890: @ 3007890
+ .space 0x4
-// m4a_2
-SYMBOL(gSoundInfo, 4016)
-SYMBOL(gPokemonCrySongs, 104)
-SYMBOL(gPokemonCryMusicPlayers, 128)
-SYMBOL(gMPlayInfo_BGM, 64)
-SYMBOL(gMPlayJumpTable, 144)
-SYMBOL(gCgbChans, 256)
-SYMBOL(gMPlayInfo_SE1, 64)
-SYMBOL(gMPlayInfo_SE2, 64)
-SYMBOL(gPokemonCryTracks, 320)
-SYMBOL(gPokemonCrySong, 52)
-SYMBOL(gMPlayMemAccArea, 16)
-SYMBOL(gMPlayInfo_SE3, 64)
+gUnknown_03007894: @ 3007894
+ .space 0x4
-// agb_flash.c
-SYMBOL(gFlashTimeoutFlag, 4);
-SYMBOL(PollFlashStatus, 4)
-SYMBOL(WaitForFlashWrite, 4)
-SYMBOL(ProgramFlashSector, 4)
-SYMBOL(gFlash, 4)
-SYMBOL(ProgramFlashByte, 4)
-SYMBOL(gFlashNumRemainingBytes, 4)
-SYMBOL(EraseFlashChip, 4)
-SYMBOL(EraseFlashSector, 4)
-SYMBOL(gFlashMaxTime, 4)
+gUnknown_03007898: @ 3007898
+ .space 0x8
-SYMBOL(gRfuState, 8)
-SYMBOL(gUnknown_03007870, 16)
-SYMBOL(gUnknown_03007880, 16)
-SYMBOL(gUnknown_03007890, 4)
-SYMBOL(gUnknown_03007894, 4)
-SYMBOL(gUnknown_03007898, 8)
-SYMBOL(gUnknown_030078A0, 16)
+gUnknown_030078A0: @ 30078A0
+ .space 0xC
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 0a1fe13e6..75a44bb97 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1,282 +1,292 @@
-. = ALIGN(4); src/decompress.o(ewram_data);
-. = ALIGN(4); src/main.o(ewram_data);
-. = ALIGN(4); src/window.o(ewram_data);
-. = ALIGN(4); src/text.o(ewram_data);
-. = ALIGN(4); src/sprite.o(ewram_data);
-. = ALIGN(4); src/string_util.o(ewram_data);
-. = ALIGN(4); src/link.o(ewram_data);
-. = ALIGN(4); src/link_rfu.o(ewram_data);
-gUnknown_02022C20 = .;
- . += 0xC;
+ .include "src/decompress.o"
+ .include "src/main.o"
+ .include "src/window.o"
+ .include "src/text.o"
+ .include "src/sprite.o"
+ .include "src/string_util.o"
+ .include "src/link.o"
+ .include "src/link_rfu.o"
-gUnknown_02022C2C = .;
- . += 0x1;
+gUnknown_02022C20: @ 2022C20
+ .space 0xC
-gUnknown_02022C2D = .;
- . += 0x3;
+gUnknown_02022C2C: @ 2022C2C
+ .space 0x1
-gUnknown_02022C30 = .;
- . += 0x8;
+gUnknown_02022C2D: @ 2022C2D
+ .space 0x3
-gUnknown_02022C38 = .;
- . += 0x4;
+gUnknown_02022C30: @ 2022C30
+ .space 0x8
-gUnknown_02022C3C = .;
- . += 0x2;
+gUnknown_02022C38: @ 2022C38
+ .space 0x4
-gUnknown_02022C3E = .;
- . += 0x2;
+gUnknown_02022C3C: @ 2022C3C
+ .space 0x2
-gUnknown_02022C40 = .;
- . += 0x18;
+gUnknown_02022C3E: @ 2022C3E
+ .space 0x2
-gUnknown_02022C58 = .;
- . += 0x8;
+gUnknown_02022C40: @ 2022C40
+ .space 0x18
-gUnknown_02022C60 = .;
- . += 0x4;
-
-gUnknown_02022C64 = .;
- . += 0x4;
-
-gUnknown_02022C68 = .;
- . += 0x4;
-
-gUnknown_02022C6C = .;
- . += 0x4;
-
-gUnknown_02022C70 = .;
- . += 0x4;
-
-gUnknown_02022C74 = .;
- . += 0x4;
-
-gUnknown_02022C78 = .;
- . += 0x4;
-
-gUnknown_02022C7C = .;
- . += 0x4;
+gUnknown_02022C58: @ 2022C58
+ .space 0x8
-gUnknown_02022C80 = .;
- . += 0x4;
+gUnknown_02022C60: @ 2022C60
+ .space 0x4
-gUnknown_02022C84 = .;
- . += 0x4;
+gUnknown_02022C64: @ 2022C64
+ .space 0x4
+
+gUnknown_02022C68: @ 2022C68
+ .space 0x4
+
+gUnknown_02022C6C: @ 2022C6C
+ .space 0x4
+
+gUnknown_02022C70: @ 2022C70
+ .space 0x4
-gUnknown_02022C88 = .;
- . += 0x4;
+gUnknown_02022C74: @ 2022C74
+ .space 0x4
-gUnknown_02022C8C = .;
- . += 0x4;
+gUnknown_02022C78: @ 2022C78
+ .space 0x4
-gUnknown_02022C90 = .;
- . += 0x4;
-
-gUnknown_02022C94 = .;
- . += 0x4;
-
-gUnknown_02022C98 = .;
- . += 0x4;
-
-gUnknown_02022C9C = .;
- . += 0x14;
-
-gUnknown_02022CB0 = .;
- . += 0x8;
-
-gUnknown_02022CB8 = .;
- . += 0x2C;
-
-gUnknown_02022CE4 = .;
- . += 0x10;
-
-gUnknown_02022CF4 = .;
- . += 0x4;
-
-gUnknown_02022CF8 = .;
- . += 0x4;
-
-gUnknown_02022CFC = .;
- . += 0x4;
-
-gUnknown_02022D00 = .;
- . += 0x4;
-
-. = ALIGN(4); src/main_menu.o(ewram_data);
-. = ALIGN(4); src/battle_controllers.o(ewram_data);
-. = ALIGN(4); src/rom_8034C54.o(ewram_data);
-. = ALIGN(4); src/battle_main.o(ewram_data);
-. = ALIGN(4); src/pokemon.o(ewram_data);
-. = ALIGN(4); src/random.o(ewram_data);
-. = ALIGN(4); src/daycare.o(ewram_data);
-. = ALIGN(4); src/load_save.o(ewram_data);
-. = ALIGN(4); src/trade.o(ewram_data);
-. = ALIGN(4); src/berry_blender.o(ewram_data);
-. = ALIGN(4); src/new_game.o(ewram_data);
-. = ALIGN(4); src/overworld.o(ewram_data);
-. = ALIGN(4); src/fieldmap.o(ewram_data);
-. = ALIGN(4); src/field_camera.o(ewram_data);
-. = ALIGN(4); src/field_player_avatar.o(ewram_data);
-. = ALIGN(4); src/event_object_movement.o(ewram_data);
-. = ALIGN(4); src/field_message_box.o(ewram_data);
-. = ALIGN(4); src/scrcmd.o(ewram_data);
-. = ALIGN(4); src/field_control_avatar.o(ewram_data);
-. = ALIGN(4); src/event_data.o(ewram_data);
-. = ALIGN(4); src/start_menu.o(ewram_data);
-. = ALIGN(4); src/tileset_anims.o(ewram_data);
-. = ALIGN(4); src/palette.o(ewram_data);
-. = ALIGN(4); src/sound.o(ewram_data);
-. = ALIGN(4); src/battle_anim.o(ewram_data);
-. = ALIGN(4); src/battle_anim_80A5C6C.o(ewram_data);
- . += 0xC;
-
-. = ALIGN(4); src/field_weather.o(ewram_data);
-. = ALIGN(4); src/field_weather_effect.o(ewram_data);
-. = ALIGN(4); src/battle_setup.o(ewram_data);
-. = ALIGN(4); src/trainer_see.o(ewram_data);
-. = ALIGN(4); src/wild_encounter.o(ewram_data);
-. = ALIGN(4); src/field_effect.o(ewram_data);
-. = ALIGN(4); src/scanline_effect.o(ewram_data);
-. = ALIGN(4); src/option_menu.o(ewram_data);
-. = ALIGN(4); src/pokedex.o(ewram_data);
-gTrainerCards = .;
- . += 0x14;
-
-gUnknown_02039B6C = .;
- . += 0x2;
-
-gUnknown_02039B6E = .;
- . += 0x1A;
-
-gUnknown_02039B88 = .;
- . += 0x160;
-
-. = ALIGN(4); src/trainer_card.o(ewram_data);
-
-gUnknown_02039CEC = .;
- . += 0x4;
-
-gUnknown_02039CF0 = .;
- . += 0x4;
-
-gUnknown_02039CF4 = .;
- . += 0x4;
-
-gUnknown_02039CF8 = .;
- . += 0x8;
-
-. = ALIGN(4); src/pokemon_storage_system.o(ewram_data);
-. = ALIGN(4); src/script_movement.o(ewram_data);
-. = ALIGN(4); src/fldeff_cut.o(ewram_data);
-. = ALIGN(4); src/map_name_popup.o(ewram_data);
-. = ALIGN(4); src/item.o(ewram_data);
-. = ALIGN(4); src/contest.o(ewram_data);
-. = ALIGN(4); gUnknown_02039F5C = .;
- . += 0x1;
-
-gUnknown_02039F5D = .;
- . += 0x3;
-
-. = ALIGN(4); src/shop.o(ewram_data);
-. = ALIGN(4); src/fldeff_escalator.o(ewram_data);
-. = ALIGN(4); src/script_menu.o(ewram_data);
-. = ALIGN(4); src/naming_screen.o(ewram_data);
-. = ALIGN(4); src/money.o(ewram_data);
-. = ALIGN(4); src/record_mixing.o(ewram_data);
-. = ALIGN(4); src/secret_base.o(ewram_data);
-. = ALIGN(4); src/tv.o(ewram_data);
-gUnknown_0203A034 = .;
- . += 0x4;
-
-. = ALIGN(4); src/rotating_gate.o(ewram_data);
-. = ALIGN(4); src/safari_zone.o(ewram_data);
-gUnknown_0203A0F4 = .;
- . += 0x4;
-
-. = ALIGN(4); src/battle_anim_effects_1.o(ewram_data);
-gUnknown_0203A100 = .;
- . += 0x10;
-
-. = ALIGN(4); src/battle_anim_utility_funcs.o(ewram_data);
-. = ALIGN(4); src/battle_intro.o(ewram_data);
-. = ALIGN(4); src/easy_chat.o(ewram_data);
-. = ALIGN(4); src/mon_markings.o(ewram_data);
-. = ALIGN(4); src/mauville_old_man.o(ewram_data);
-. = ALIGN(4); src/mail.o(ewram_data);
-. = ALIGN(4); src/menu_helpers.o(ewram_data);
-. = ALIGN(4); src/region_map.o(ewram_data);
-. = ALIGN(4); src/decoration.o(ewram_data);
-. = ALIGN(4); src/slot_machine.o(ewram_data);
-. = ALIGN(4); src/battle_ai_script_commands.o(ewram_data);
-. = ALIGN(4); gPlayerFacingPosition = .;
- . += 0x8;
-
-. = ALIGN(4); src/pokeblock.o(ewram_data);
-. = ALIGN(4); src/field_specials.o(ewram_data);
-. = ALIGN(4); src/battle_records.o(ewram_data);
-. = ALIGN(4); src/pokedex_area_screen.o(ewram_data);
-. = ALIGN(4); src/evolution_scene.o(ewram_data);
-. = ALIGN(4); src/roulette.o(ewram_data);
-. = ALIGN(4); src/pokedex_cry_screen.o(ewram_data);
-. = ALIGN(4); src/coins.o(ewram_data);
-. = ALIGN(4); src/battle_transition.o(ewram_data);
-. = ALIGN(4); src/battle_message.o(ewram_data);
-. = ALIGN(4); src/cable_car.o(ewram_data);
-. = ALIGN(4); src/rom_81520A8.o(ewram_data);
-. = ALIGN(4); src/save.o(ewram_data);
-. = ALIGN(4); src/mystery_event_script.o(ewram_data);
-. = ALIGN(4); src/learn_move.o(ewram_data);
-. = ALIGN(4); src/decoration_inventory.o(ewram_data);
-. = ALIGN(4); src/roamer.o(ewram_data);
-. = ALIGN(4); src/battle_tower.o(ewram_data);
-. = ALIGN(4); src/use_pokeblock.o(ewram_data);
-. = ALIGN(4); src/player_pc.o(ewram_data);
-. = ALIGN(4); src/intro.o(ewram_data);
-. = ALIGN(4); src/field_region_map.o(ewram_data);
-. = ALIGN(4); src/hall_of_fame.o(ewram_data);
-. = ALIGN(4); src/credits.o(ewram_data);
-. = ALIGN(4); src/lottery_corner.o(ewram_data);
-. = ALIGN(4); src/diploma.o(ewram_data);
-. = ALIGN(4); src/berry_tag_screen.o(ewram_data);
-. = ALIGN(4); src/mystery_event_menu.o(ewram_data);
-. = ALIGN(4); src/save_failed_screen.o(ewram_data);
-. = ALIGN(4); src/braille_puzzles.o(ewram_data);
-. = ALIGN(4); src/pokeblock_feed.o(ewram_data);
-. = ALIGN(4); src/intro_credits_graphics.o(ewram_data);
-. = ALIGN(4); src/recorded_battle.o(ewram_data);
-. = ALIGN(4); src/trainer_pokemon_sprites.o(ewram_data);
-. = ALIGN(4); src/lilycove_lady.o(ewram_data);
-. = ALIGN(4); src/battle_dome.o(ewram_data);
-. = ALIGN(4); src/match_call.o(ewram_data);
-. = ALIGN(4); src/menu.o(ewram_data);
-. = ALIGN(4); src/battle_factory_screen.o(ewram_data);
-. = ALIGN(4); src/mossdeep_gym.o(ewram_data);
-. = ALIGN(4); src/item_menu.o(ewram_data);
-. = ALIGN(4); src/list_menu.o(ewram_data);
-. = ALIGN(4); src/dynamic_placeholder_text_util.o(ewram_data);
-. = ALIGN(4); src/item_icon.o(ewram_data);
-. = ALIGN(4); src/party_menu.o(ewram_data);
-. = ALIGN(4); src/mirage_tower.o(ewram_data);
-. = ALIGN(4); src/pokemon_summary_screen.o(ewram_data);
-. = ALIGN(4); src/unk_pokedex_area_screen_helper.o(ewram_data);
-. = ALIGN(4); src/battle_pyramid_bag.o(ewram_data);
-gUnknown_0203CF3C = .;
- . += 0x4;
-
-gUnknown_0203CF40 = .;
- . += 0x4;
-
-gUnknown_0203CF44 = .;
- . += 0x4;
-
-gUnknown_0203CF48 = .;
- . += 0x4;
-
-gUnknown_0203CF4C = .;
- . += 0x4;
-
-gUnknown_0203CF50 = .;
- . += 0x4;
-
-. = ALIGN(4); src/trainer_hill.o(ewram_data);
-. = ALIGN(4); src/rayquaza_scene.o(ewram_data);
+gUnknown_02022C7C: @ 2022C7C
+ .space 0x4
+
+gUnknown_02022C80: @ 2022C80
+ .space 0x4
+
+gUnknown_02022C84: @ 2022C84
+ .space 0x4
+
+gUnknown_02022C88: @ 2022C88
+ .space 0x4
+
+gUnknown_02022C8C: @ 2022C8C
+ .space 0x4
+
+gUnknown_02022C90: @ 2022C90
+ .space 0x4
+
+gUnknown_02022C94: @ 2022C94
+ .space 0x4
+
+gUnknown_02022C98: @ 2022C98
+ .space 0x4
+
+gUnknown_02022C9C: @ 2022C9C
+ .space 0x14
+
+gUnknown_02022CB0: @ 2022CB0
+ .space 0x8
+
+gUnknown_02022CB8: @ 2022CB8
+ .space 0x2C
+
+gUnknown_02022CE4: @ 2022CE4
+ .space 0x10
+
+gUnknown_02022CF4: @ 2022CF4
+ .space 0x4
+
+gUnknown_02022CF8: @ 2022CF8
+ .space 0x4
+
+gUnknown_02022CFC: @ 2022CFC
+ .space 0x4
+
+gUnknown_02022D00: @ 2022D00
+ .space 0x4
+
+ .include "src/main_menu.o"
+ .include "src/battle_controllers.o"
+ .include "src/rom_8034C54.o"
+ .include "src/battle_main.o"
+ .include "src/pokemon.o"
+ .include "src/random.o"
+ .include "src/daycare.o"
+ .include "src/load_save.o"
+ .include "src/trade.o"
+ .include "src/berry_blender.o"
+ .include "src/new_game.o"
+ .include "src/overworld.o"
+ .include "src/fieldmap.o"
+ .include "src/field_camera.o"
+ .include "src/field_player_avatar.o"
+ .include "src/event_object_movement.o"
+ .include "src/field_message_box.o"
+ .include "src/scrcmd.o"
+ .include "src/field_control_avatar.o"
+ .include "src/event_data.o"
+ .include "src/start_menu.o"
+ .include "src/tileset_anims.o"
+ .include "src/palette.o"
+ .include "src/sound.o"
+ .include "src/battle_anim.o"
+ .include "src/battle_anim_80A5C6C.o"
+
+ .space 0xC
+ .include "src/field_weather.o"
+ .include "src/field_weather_effect.o"
+ .include "src/battle_setup.o"
+ .include "src/trainer_see.o"
+ .include "src/wild_encounter.o"
+ .include "src/field_effect.o"
+ .include "src/scanline_effect.o"
+ .include "src/option_menu.o"
+ .include "src/pokedex.o"
+
+gTrainerCards: @ 2039B58
+ .space 0x14
+
+gUnknown_02039B6C: @ 2039B6C
+ .space 0x2
+
+gUnknown_02039B6E: @ 2039B6E
+ .space 0x1A
+
+gUnknown_02039B88: @ 2039B88
+ .space 0x160
+
+ .include "src/trainer_card.o"
+
+gUnknown_02039CEC: @ 2039CEC
+ .space 0x4
+
+gUnknown_02039CF0: @ 2039CF0
+ .space 0x4
+
+gUnknown_02039CF4: @ 2039CF4
+ .space 0x4
+
+gUnknown_02039CF8: @ 2039CF8
+ .space 0x8
+
+ .include "src/pokemon_storage_system.o"
+ .include "src/script_movement.o"
+ .include "src/fldeff_cut.o"
+ .include "src/map_name_popup.o"
+ .include "src/item.o"
+ .include "src/contest.o"
+
+ .align 2
+gUnknown_02039F5C: @ 2039F5C
+ .space 0x1
+
+gUnknown_02039F5D: @ 2039F5D
+ .space 0x3
+
+ .include "src/shop.o"
+ .include "src/fldeff_escalator.o"
+ .include "src/script_menu.o"
+ .include "src/naming_screen.o"
+ .include "src/money.o"
+ .include "src/record_mixing.o"
+ .include "src/secret_base.o"
+ .include "src/tv.o"
+
+gUnknown_0203A034: @ 203A034
+ .space 0x4
+
+ .include "src/rotating_gate.o"
+ .include "src/safari_zone.o"
+
+gUnknown_0203A0F4: @ 203A0F4
+ .space 0x4
+
+ .include "src/battle_anim_effects_1.o"
+
+gUnknown_0203A100: @ 203A100
+ .space 0x10
+
+ .include "src/battle_anim_utility_funcs.o"
+ .include "src/battle_intro.o"
+ .include "src/easy_chat.o"
+ .include "src/mon_markings.o"
+ .include "src/mauville_old_man.o"
+ .include "src/mail.o"
+ .include "src/menu_helpers.o"
+ .include "src/region_map.o"
+ .include "src/decoration.o"
+ .include "src/slot_machine.o"
+ .include "src/battle_ai_script_commands.o"
+
+.align 2
+gPlayerFacingPosition: @ 203AB40
+ .space 0x8
+
+ .include "src/pokeblock.o"
+ .include "src/field_specials.o"
+ .include "src/battle_records.o"
+ .include "src/pokedex_area_screen.o"
+ .include "src/evolution_scene.o"
+ .include "src/roulette.o"
+ .include "src/pokedex_cry_screen.o"
+ .include "src/coins.o"
+ .include "src/battle_transition.o"
+ .include "src/battle_message.o"
+ .include "src/cable_car.o"
+ .include "src/rom_81520A8.o"
+ .include "src/save.o"
+ .include "src/mystery_event_script.o"
+ .include "src/learn_move.o"
+ .include "src/decoration_inventory.o"
+ .include "src/roamer.o"
+ .include "src/battle_tower.o"
+ .include "src/use_pokeblock.o"
+ .include "src/player_pc.o"
+ .include "src/intro.o"
+ .include "src/field_region_map.o"
+ .include "src/hall_of_fame.o"
+ .include "src/credits.o"
+ .include "src/lottery_corner.o"
+ .include "src/diploma.o"
+ .include "src/berry_tag_screen.o"
+ .include "src/mystery_event_menu.o"
+ .include "src/save_failed_screen.o"
+ .include "src/braille_puzzles.o"
+ .include "src/pokeblock_feed.o"
+ .include "src/intro_credits_graphics.o"
+ .include "src/recorded_battle.o"
+ .include "src/trainer_pokemon_sprites.o"
+ .include "src/lilycove_lady.o"
+ .include "src/battle_dome.o"
+ .include "src/match_call.o"
+ .include "src/menu.o"
+ .include "src/battle_factory_screen.o"
+ .include "src/mossdeep_gym.o"
+ .include "src/item_menu.o"
+ .include "src/list_menu.o"
+ .include "src/dynamic_placeholder_text_util.o"
+ .include "src/item_icon.o"
+ .include "src/party_menu.o"
+ .include "src/mirage_tower.o"
+ .include "src/pokemon_summary_screen.o"
+ .include "src/unk_pokedex_area_screen_helper.o"
+ .include "src/battle_pyramid_bag.o"
+
+gUnknown_0203CF3C: @ 203CF3C
+ .space 0x4
+
+gUnknown_0203CF40: @ 203CF40
+ .space 0x4
+
+gUnknown_0203CF44: @ 203CF44
+ .space 0x4
+
+gUnknown_0203CF48: @ 203CF48
+ .space 0x4
+
+gUnknown_0203CF4C: @ 203CF4C
+ .space 0x4
+
+gUnknown_0203CF50: @ 203CF50
+ .space 0x4
+
+ .include "src/trainer_hill.o"
+ .include "src/rayquaza_scene.o"