summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rw-r--r--common_syms/battle/battle_anim.txt3
-rw-r--r--common_syms/debug/mori_debug_menu.txt1
-rw-r--r--common_syms/debug/sound_check_menu.txt2
-rw-r--r--common_syms/engine/link.txt46
-rw-r--r--common_syms/engine/load_save.txt1
-rw-r--r--common_syms/engine/main.txt9
-rw-r--r--common_syms/engine/random.txt1
-rw-r--r--common_syms/engine/record_mixing.txt1
-rw-r--r--common_syms/engine/rtc.txt1
-rw-r--r--common_syms/engine/save.txt9
-rw-r--r--common_syms/engine/sound.txt1
-rw-r--r--common_syms/engine/sprite.txt12
-rw-r--r--common_syms/engine/string_util.txt1
-rw-r--r--common_syms/engine/task.txt1
-rw-r--r--common_syms/field/field_camera.txt3
-rw-r--r--common_syms/field/field_control_avatar.txt1
-rw-r--r--common_syms/field/field_map_obj.txt1
-rw-r--r--common_syms/field/fieldmap.txt1
-rw-r--r--common_syms/field/overworld.txt4
-rw-r--r--common_syms/field/start_menu.txt1
-rw-r--r--common_syms/field/tv.txt1
-rw-r--r--common_syms/libs/agb_flash.txt10
-rw-r--r--common_syms/libs/m4a_2.txt12
-rw-r--r--common_syms/pokemon/pokeblock_feed.txt12
-rw-r--r--common_syms/pokemon/pokedex.txt2
-rw-r--r--common_syms/pokemon/pokemon_1.txt4
-rw-r--r--common_syms/pokemon/pokemon_menu.txt2
-rw-r--r--common_syms/rom3.txt1
-rw-r--r--common_syms/scanline_effect.txt2
-rw-r--r--common_syms/scene/berry_blender.txt4
-rw-r--r--common_syms/scene/contest_painting.txt5
-rw-r--r--common_syms/scene/cute_sketch.txt0
-rw-r--r--common_syms/scene/egg_hatch.txt1
-rw-r--r--common_syms/scene/evolution_scene.txt1
-rw-r--r--common_syms/scene/intro.txt2
-rw-r--r--ld_script.sed14
-rw-r--r--ld_script.txt6
-rw-r--r--src/field/tv.c2
-rw-r--r--sym_bss.txt84
-rw-r--r--sym_common.txt555
-rw-r--r--sym_ewram.txt726
42 files changed, 729 insertions, 833 deletions
diff --git a/Makefile b/Makefile
index 13c91f71d..eda7fb2c2 100644
--- a/Makefile
+++ b/Makefile
@@ -109,16 +109,12 @@ tidy:
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
%.elf: $(LD_SCRIPT) $(ALL_OBJECTS)
- cd $(BUILD_DIR) && $(LD) -T ld_script.ld -Map ../../$(MAP) -o ../../$@ ../../$(LIBGCC) ../../$(LIBC)
-
-$(LD_SCRIPT): $(BUILD_DIR)/sym_bss.ld $(BUILD_DIR)/sym_common.ld $(BUILD_DIR)/sym_ewram.ld ld_script.txt
- cd $(BUILD_DIR) && sed -f ../../ld_script.sed ../../ld_script.txt | sed "s#tools/#../../tools/#g" >ld_script.ld
-$(BUILD_DIR)/sym_bss.ld: sym_bss.txt
- cd $(BUILD_DIR) && ../../$(RAMSCRGEN) .bss ../../sym_bss.txt $(GAME_LANGUAGE) >sym_bss.ld
-$(BUILD_DIR)/sym_common.ld: sym_common.txt $(C_OBJECTS) $(wildcard common_syms/*.txt)
- cd $(BUILD_DIR) && ../../$(RAMSCRGEN) COMMON ../../sym_common.txt $(GAME_LANGUAGE) -c src,../../common_syms >sym_common.ld
-$(BUILD_DIR)/sym_ewram.ld: sym_ewram.txt
- cd $(BUILD_DIR) && ../../$(RAMSCRGEN) ewram_data ../../sym_ewram.txt $(GAME_LANGUAGE) >sym_ewram.ld
+ cd $(BUILD_DIR) && $(LD) -T ld_script.ld -Map ../../$(MAP) ../../$(LIBGCC) ../../$(LIBC) -o ../../$@
+
+$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_common.ld $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_bss.ld
+ cd $(BUILD_DIR) && sed -e "s#tools/#../../tools/#g" ../../ld_script.txt >ld_script.ld
+$(BUILD_DIR)/sym_%.ld: sym_%.txt
+ $(CPP) -P $(CPPFLAGS) $< | sed -e "s#tools/#../../tools/#g" > $@
$(C_OBJECTS): $(BUILD_DIR)/%.o: %.c $$(C_DEP)
$(CPP) $(CPPFLAGS) $< -o $(BUILD_DIR)/$*.i
diff --git a/common_syms/battle/battle_anim.txt b/common_syms/battle/battle_anim.txt
deleted file mode 100644
index a93ac9b5d..000000000
--- a/common_syms/battle/battle_anim.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gSoundAnimFramesToWait
-gBattleAnimArgs
-gAnimSpriteIndexArray
diff --git a/common_syms/debug/mori_debug_menu.txt b/common_syms/debug/mori_debug_menu.txt
deleted file mode 100644
index 77ab5531c..000000000
--- a/common_syms/debug/mori_debug_menu.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03004DA0
diff --git a/common_syms/debug/sound_check_menu.txt b/common_syms/debug/sound_check_menu.txt
deleted file mode 100644
index e9e3032e6..000000000
--- a/common_syms/debug/sound_check_menu.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gUnknown_03005D30
-gSoundTestCryNum
diff --git a/common_syms/engine/link.txt b/common_syms/engine/link.txt
deleted file mode 100644
index faafda4d0..000000000
--- a/common_syms/engine/link.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-word_3002910
-gLinkDebugValue1
-localLinkPlayerBlock
-gLinkErrorOccurred
-4
-gLinkDebugValue2
-4
-#begin GERMAN
-deUnkValue1
-deUnkValue2
-#end
-gLinkPlayerPending
-gLinkPlayers
-gBlockReceived
-4
-gLinkHeldKeys
-gLinkTimeOutCounter
-4
-localLinkPlayer
-gRecvCmds
-gLinkStatus
-gLinkDummyBool
-byte_3002A68
-gBlockSendBuffer
-u8_array_3002B70
-gLinkType
-u8_array_3002B78
-gBlockRecvBuffer
-gSuppressLinkErrorMessage
-gSavedLinkPlayerCount
-gSendCmd
-gSavedMultiplayerId
-gReceivedRemoteLinkPlayers
-gLinkTestBGInfo
-gLinkCallback
-gSavedLinkPlayers
-gShouldAdvanceLinkState
-gLinkTestBlockChecksums
-4
-gBlockRequestType
-4
-4
-gLastSendQueueCount
-gLink
-gLastRecvQueueCount
-gLinkSavedIme
diff --git a/common_syms/engine/load_save.txt b/common_syms/engine/load_save.txt
deleted file mode 100644
index 3b969deca..000000000
--- a/common_syms/engine/load_save.txt
+++ /dev/null
@@ -1 +0,0 @@
-gFlashMemoryPresent
diff --git a/common_syms/engine/main.txt b/common_syms/engine/main.txt
deleted file mode 100644
index a620083d1..000000000
--- a/common_syms/engine/main.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-gKeyRepeatStartDelay
-gLinkTransferringData
-gMain
-gKeyRepeatContinueDelay
-gSoftResetDisabled
-gIntrTable
-gLinkVSyncDisabled
-IntrMain_Buffer
-gPcmDmaCounter
diff --git a/common_syms/engine/random.txt b/common_syms/engine/random.txt
deleted file mode 100644
index 794439ea5..000000000
--- a/common_syms/engine/random.txt
+++ /dev/null
@@ -1 +0,0 @@
-gRngValue
diff --git a/common_syms/engine/record_mixing.txt b/common_syms/engine/record_mixing.txt
deleted file mode 100644
index a6f4f8df3..000000000
--- a/common_syms/engine/record_mixing.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03005D2C
diff --git a/common_syms/engine/rtc.txt b/common_syms/engine/rtc.txt
deleted file mode 100644
index fa00a34d5..000000000
--- a/common_syms/engine/rtc.txt
+++ /dev/null
@@ -1 +0,0 @@
-gLocalTime
diff --git a/common_syms/engine/save.txt b/common_syms/engine/save.txt
deleted file mode 100644
index 4824255bf..000000000
--- a/common_syms/engine/save.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-gFirstSaveSector
-gPrevSaveCounter
-gLastKnownGoodSector
-gDamagedSaveSectors
-gSaveCounter
-gFastSaveSection
-gUnknown_03005EB4
-gSaveFileStatus
-gGameContinueCallback
diff --git a/common_syms/engine/sound.txt b/common_syms/engine/sound.txt
deleted file mode 100644
index 0f6f2fc75..000000000
--- a/common_syms/engine/sound.txt
+++ /dev/null
@@ -1 +0,0 @@
-gDisableMusic
diff --git a/common_syms/engine/sprite.txt b/common_syms/engine/sprite.txt
deleted file mode 100644
index fe38dc61f..000000000
--- a/common_syms/engine/sprite.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gSpriteOrder
-gSpriteTileAllocBitmap
-gSpriteCoordOffsetX
-gOamLimit
-gReservedSpriteTileCount
-gSpriteCopyRequestCount
-gSpriteCopyRequests
-gSpriteCoordOffsetY
-gOamMatrices
-gShouldProcessSpriteCopyRequests
-gOamMatrixAllocBitmap
-gReservedSpritePaletteCount
diff --git a/common_syms/engine/string_util.txt b/common_syms/engine/string_util.txt
deleted file mode 100644
index 1ee62aaad..000000000
--- a/common_syms/engine/string_util.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknownStringVar
diff --git a/common_syms/engine/task.txt b/common_syms/engine/task.txt
deleted file mode 100644
index 6601bd11b..000000000
--- a/common_syms/engine/task.txt
+++ /dev/null
@@ -1 +0,0 @@
-gTasks
diff --git a/common_syms/field/field_camera.txt b/common_syms/field/field_camera.txt
deleted file mode 100644
index 7aad967f8..000000000
--- a/common_syms/field/field_camera.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gUnknown_03004880
-gUnknown_03004898
-gUnknown_0300489C
diff --git a/common_syms/field/field_control_avatar.txt b/common_syms/field/field_control_avatar.txt
deleted file mode 100644
index 040a9e6c1..000000000
--- a/common_syms/field/field_control_avatar.txt
+++ /dev/null
@@ -1 +0,0 @@
-gSelectedMapObject
diff --git a/common_syms/field/field_map_obj.txt b/common_syms/field/field_map_obj.txt
deleted file mode 100644
index 32d8b1915..000000000
--- a/common_syms/field/field_map_obj.txt
+++ /dev/null
@@ -1 +0,0 @@
-gMapObjects
diff --git a/common_syms/field/fieldmap.txt b/common_syms/field/fieldmap.txt
deleted file mode 100644
index 7819b3b40..000000000
--- a/common_syms/field/fieldmap.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03004870
diff --git a/common_syms/field/overworld.txt b/common_syms/field/overworld.txt
deleted file mode 100644
index ecdb190b2..000000000
--- a/common_syms/field/overworld.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-word_3004858
-gFieldCallback
-gUnknown_03004860
-gFieldLinkPlayerCount
diff --git a/common_syms/field/start_menu.txt b/common_syms/field/start_menu.txt
deleted file mode 100644
index 05beaf57c..000000000
--- a/common_syms/field/start_menu.txt
+++ /dev/null
@@ -1 +0,0 @@
-gMenuCallback
diff --git a/common_syms/field/tv.txt b/common_syms/field/tv.txt
deleted file mode 100644
index 829139f8f..000000000
--- a/common_syms/field/tv.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03005D38
diff --git a/common_syms/libs/agb_flash.txt b/common_syms/libs/agb_flash.txt
deleted file mode 100644
index cb421ec80..000000000
--- a/common_syms/libs/agb_flash.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-gFlashTimeoutFlag
-PollFlashStatus
-WaitForFlashWrite
-ProgramFlashSector
-gFlash
-ProgramFlashByte
-gFlashNumRemainingBytes
-EraseFlashChip
-EraseFlashSector
-gFlashMaxTime
diff --git a/common_syms/libs/m4a_2.txt b/common_syms/libs/m4a_2.txt
deleted file mode 100644
index a80d8a79d..000000000
--- a/common_syms/libs/m4a_2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gSoundInfo
-gPokemonCrySongs
-gPokemonCryMusicPlayers
-gMPlayJumpTable
-gCgbChans
-gPokemonCryTracks
-gPokemonCrySong
-gMPlay_BGM
-gMPlay_SE1
-gMPlay_SE2
-gMPlayMemAccArea
-gMPlay_SE3
diff --git a/common_syms/pokemon/pokeblock_feed.txt b/common_syms/pokemon/pokeblock_feed.txt
deleted file mode 100644
index 827e6526e..000000000
--- a/common_syms/pokemon/pokeblock_feed.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gPokeblockFeedPokeSprite
-gPokeblockFeedMonSpecies
-gPokeblockMonNotFlipped
-gPokeblockFeedMonSpriteID
-gPokeblockFeedMonNature
-gUnknown_03005F34
-gPokeblockFeedUnused0
-gUnknown_03005F3C
-gUnknown_03005F40
-gPokeblockFeedPokeSpriteCopy
-gUnknown_03005F94
-gUnknown_03005FA0
diff --git a/common_syms/pokemon/pokedex.txt b/common_syms/pokemon/pokedex.txt
deleted file mode 100644
index 18b14f3ed..000000000
--- a/common_syms/pokemon/pokedex.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gUnknown_03005CE8
-gUnknown_03005CEC
diff --git a/common_syms/pokemon/pokemon_1.txt b/common_syms/pokemon/pokemon_1.txt
deleted file mode 100644
index c588d53a7..000000000
--- a/common_syms/pokemon/pokemon_1.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-gPlayerPartyCount
-gPlayerParty
-gEnemyPartyCount
-gEnemyParty
diff --git a/common_syms/pokemon/pokemon_menu.txt b/common_syms/pokemon/pokemon_menu.txt
deleted file mode 100644
index 98a1bf53b..000000000
--- a/common_syms/pokemon/pokemon_menu.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gLastFieldPokeMenuOpened
-gUnknown_03005CE4
diff --git a/common_syms/rom3.txt b/common_syms/rom3.txt
deleted file mode 100644
index 06a965ff6..000000000
--- a/common_syms/rom3.txt
+++ /dev/null
@@ -1 +0,0 @@
-gBattleBuffersTransferData
diff --git a/common_syms/scanline_effect.txt b/common_syms/scanline_effect.txt
deleted file mode 100644
index 280e7f891..000000000
--- a/common_syms/scanline_effect.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gScanlineEffect
-gScanlineEffectRegBuffers
diff --git a/common_syms/scene/berry_blender.txt b/common_syms/scene/berry_blender.txt
deleted file mode 100644
index 524a31411..000000000
--- a/common_syms/scene/berry_blender.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-gUnknown_03004830
-gInGameOpponentsNo
-gUnknown_03004840
-gBerryBlenderData
diff --git a/common_syms/scene/contest_painting.txt b/common_syms/scene/contest_painting.txt
deleted file mode 100644
index 2e8490348..000000000
--- a/common_syms/scene/contest_painting.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-gUnknown_03005E10
-gUnknown_03005E20
-gUnknown_03005E40
-gUnknown_03005E8C
-gUnknown_03005E90
diff --git a/common_syms/scene/cute_sketch.txt b/common_syms/scene/cute_sketch.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/common_syms/scene/cute_sketch.txt
+++ /dev/null
diff --git a/common_syms/scene/egg_hatch.txt b/common_syms/scene/egg_hatch.txt
deleted file mode 100644
index 891ccc104..000000000
--- a/common_syms/scene/egg_hatch.txt
+++ /dev/null
@@ -1 +0,0 @@
-gEggHatchData
diff --git a/common_syms/scene/evolution_scene.txt b/common_syms/scene/evolution_scene.txt
deleted file mode 100644
index 137cd3e05..000000000
--- a/common_syms/scene/evolution_scene.txt
+++ /dev/null
@@ -1 +0,0 @@
-gCB2_AfterEvolution
diff --git a/common_syms/scene/intro.txt b/common_syms/scene/intro.txt
deleted file mode 100644
index d069b1014..000000000
--- a/common_syms/scene/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gIntroFrameCounter
-gMultibootProgramStruct
diff --git a/ld_script.sed b/ld_script.sed
deleted file mode 100644
index b91542b6f..000000000
--- a/ld_script.sed
+++ /dev/null
@@ -1,14 +0,0 @@
-/<EWRAM>/ {
- r sym_ewram.ld
- d
-}
-
-/<BSS>/ {
- r sym_bss.ld
- d
-}
-
-/<COMMON>/ {
- r sym_common.ld
- d
-}
diff --git a/ld_script.txt b/ld_script.txt
index 82ba46b9c..5dcdf948d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -9,7 +9,7 @@ SECTIONS {
ewram (NOLOAD) :
ALIGN(4)
{
-<EWRAM>
+ INCLUDE "sym_ewram.ld"
. = 0x40000;
}
@@ -20,13 +20,13 @@ SECTIONS {
ALIGN(4)
{
/* .bss starts at 0x3000000 */
-<BSS>
+ INCLUDE "sym_bss.ld"
/* .bss.code starts at 0x3000F60 */
src/libs/m4a_2.o(.bss.code);
/* COMMON starts at 0x3001760 */
-<COMMON>
+ INCLUDE "sym_common.ld"
tools/agbcc/lib/libc.a:sbrkr.o(COMMON);
end = .;
. = 0x8000;
diff --git a/src/field/tv.c b/src/field/tv.c
index efda4b925..8bd36bb9c 100644
--- a/src/field/tv.c
+++ b/src/field/tv.c
@@ -47,8 +47,6 @@ struct UnkTvStruct
s8 var0;
};
-extern u8 gUnknown_0300430A[11];
-
struct OutbreakPokemon
{
/*0x00*/ u16 species;
diff --git a/sym_bss.txt b/sym_bss.txt
index 6e95a609f..5e22693fd 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -1,42 +1,42 @@
- .include "src/engine/main.o"
- .include "src/engine/sprite.o"
- .include "src/engine/text.o"
- .include "src/engine/string_util.o"
- .include "src/engine/link.o"
- .include "src/engine/rtc.o"
- .include "src/field/daycare.o"
- .include "src/engine/trade.o"
- .include "src/scene/berry_blender.o"
- .include "src/engine/play_time.o"
- .include "src/field/overworld.o"
- .include "src/field/field_camera.o"
- .include "src/field/field_map_obj.o"
- .include "src/field/field_message_box.o"
- .include "src/engine/text_window.o"
- .include "src/engine/script.o"
- .include "src/field/start_menu.o"
- .include "src/engine/menu.o"
- .include "src/engine/tileset_anim.o"
- .include "src/engine/sound.o"
- .include "src/field/field_weather.o"
- .include "src/field/field_effect.o"
- .include "src/field/item_menu.o"
- .include "src/field/shop.o"
- .include "src/engine/record_mixing.o"
- .include "src/field/tv.o"
- .include "src/battle/battle_anim_80CA710.o"
- .include "src/easy_chat_2.o"
- .include "src/pokenav_before.o"
- .include "src/field/mauville_man.o"
- .include "src/field/menu_helpers.o"
- .include "src/scene/contest_painting.o"
- .include "src/field/pokeblock.o"
- .include "src/field/field_specials.o"
- .include "src/pokemon/learn_move.o"
- .include "src/field/player_pc.o"
- .include "src/libs/m4a_1.o"
- .include "src/libs/agb_flash.o"
- .include "src/libs/siirtc.o"
- .include "tools/agbcc/lib/libgcc.a:dp-bit.o"
- .include "tools/agbcc/lib/libgcc.a:fp-bit.o"
- .include "tools/agbcc/lib/libc.a:syscalls.o"
+. = ALIGN(4); src/engine/main.o(.bss);
+. = ALIGN(4); src/engine/sprite.o(.bss);
+. = ALIGN(4); src/engine/text.o(.bss);
+. = ALIGN(4); src/engine/string_util.o(.bss);
+. = ALIGN(4); src/engine/link.o(.bss);
+. = ALIGN(4); src/engine/rtc.o(.bss);
+. = ALIGN(4); src/field/daycare.o(.bss);
+. = ALIGN(4); src/engine/trade.o(.bss);
+. = ALIGN(4); src/scene/berry_blender.o(.bss);
+. = ALIGN(4); src/engine/play_time.o(.bss);
+. = ALIGN(4); src/field/overworld.o(.bss);
+. = ALIGN(4); src/field/field_camera.o(.bss);
+. = ALIGN(4); src/field/field_map_obj.o(.bss);
+. = ALIGN(4); src/field/field_message_box.o(.bss);
+. = ALIGN(4); src/engine/text_window.o(.bss);
+. = ALIGN(4); src/engine/script.o(.bss);
+. = ALIGN(4); src/field/start_menu.o(.bss);
+. = ALIGN(4); src/engine/menu.o(.bss);
+. = ALIGN(4); src/engine/tileset_anim.o(.bss);
+. = ALIGN(4); src/engine/sound.o(.bss);
+. = ALIGN(4); src/field/field_weather.o(.bss);
+. = ALIGN(4); src/field/field_effect.o(.bss);
+. = ALIGN(4); src/field/item_menu.o(.bss);
+. = ALIGN(4); src/field/shop.o(.bss);
+. = ALIGN(4); src/engine/record_mixing.o(.bss);
+. = ALIGN(4); src/field/tv.o(.bss);
+. = ALIGN(4); src/battle/battle_anim_80CA710.o(.bss);
+. = ALIGN(4); src/easy_chat_2.o(.bss);
+. = ALIGN(4); src/pokenav_before.o(.bss);
+. = ALIGN(4); src/field/mauville_man.o(.bss);
+. = ALIGN(4); src/field/menu_helpers.o(.bss);
+. = ALIGN(4); src/scene/contest_painting.o(.bss);
+. = ALIGN(4); src/field/pokeblock.o(.bss);
+. = ALIGN(4); src/field/field_specials.o(.bss);
+. = ALIGN(4); src/pokemon/learn_move.o(.bss);
+. = ALIGN(4); src/field/player_pc.o(.bss);
+. = ALIGN(4); src/libs/m4a_1.o(.bss);
+. = ALIGN(4); src/libs/agb_flash.o(.bss);
+. = ALIGN(4); src/libs/siirtc.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libgcc.a:dp-bit.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libgcc.a:fp-bit.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libc.a:syscalls.o(.bss);
diff --git a/sym_common.txt b/sym_common.txt
index a37aa05ff..64e87c046 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -1,240 +1,315 @@
- .include "engine/main.o"
- .include "engine/sprite.o"
- .include "engine/string_util.o"
- .include "engine/link.o"
- .include "engine/rtc.o"
- .include "rom3.o"
-
-@ battle
-
- .align 2
-gBattle_BG3_X: @ 30041B0
- .space 0x4
-
-gBattle_BG1_Y: @ 30041B4
- .space 0x4
-
-gBattle_BG3_Y: @ 30041B8
- .space 0x8
-
-gBattleTextBuff1: @ 30041C0
- .space 0x10
-
-gUnknown_030041D0: @ 30041D0
- .space 0x30
-
-gBattle_WIN1H: @ 3004200
- .space 0x10
-
-gUnknown_03004210: @ 3004210
- .space 0x30
-
-gBattle_WIN0V: @ 3004240
- .space 0x4
-
-gBattle_WIN1V: @ 3004244
- .space 0xC
-
-gUnknown_03004250: @ 3004250
- .space 0x30
-
-gBattle_BG2_Y: @ 3004280
- .space 0x4
-
-gUnknown_03004284: @ 3004284
- .space 0x4
-
-gBattle_BG2_X: @ 3004288
- .space 0x4
-
-gBattleTerrain: @ 300428C
- .space 0x4
-
-gBattleTextBuff2: @ 3004290
- .space 0x10
-
-gBattle_BG0_Y: @ 30042A0
- .space 0x4
-
-gBattle_BG0_X: @ 30042A4
- .space 0xC
-
-gBattleTextBuff3: @ 30042B0
- .space 0x10
-
-gBattle_BG1_X: @ 30042C0
- .space 0x4
-
-gBattle_WIN0H: @ 30042C4
- .space 0xC
-
-gPreBattleCallback1: @ 30042D0
- .space 0x4
-
-gBattleMainFunc: @ 30042D4
- .space 0xC
-
-gBattleResults: @ 30042E0
- .space 0x1C
-
-gUnknown_030042FC: @ 30042FC
- .space 0xE
-
-gUnknown_0300430A: @ 300430A
- .space 0xC
-
-gUnknown_03004316: @ 3004316
- .space 0xE
-
-gLeveledUpInBattle: @ 3004324
- .space 0xC
-
-gBattleBankFunc: @ 3004330
- .space 0x10
-
-gHealthboxIDs: @ 3004340
- .space 0x4
-
-gUnknown_03004344: @ 3004344
- .space 0x4
-
-gUnknown_03004348: @ 3004348
- .space 0x4
-
-gUnknown_0300434C: @ 300434C
- .space 0x4
-
- .include "pokemon/pokemon_1.o"
- .include "engine/random.o"
- .include "scene/egg_hatch.o"
- .include "engine/load_save.o"
-
-@ trade
-
-gUnknown_03004824: @ 3004824
- .space 0x4
-
-gUnknown_03004828: @ 3004828
- .space 0x8
-
- .include "scene/berry_blender.o"
- .include "field/overworld.o"
- .include "field/fieldmap.o"
- .include "field/field_camera.o"
- .include "field/field_map_obj.o"
- .include "field/field_control_avatar.o"
-
-@ party_menu?
-
- .align 2
-gPokemonItemUseCallback: @ 3004AE4
- .space 0x4
-
- .include "field/start_menu.o"
- .include "engine/sound.o"
- .include "battle/battle_anim.o"
- .include "engine/task.o"
- .include "debug/mori_debug_menu.o"
-
-@ unknown_task
- .include "scanline_effect.o"
- .include "pokemon/pokemon_menu.o"
- .include "pokemon/pokedex.o"
-
-@ pokemon_summary_screen
-
- .align 4
-gUnknown_03005CF0: @ 3005CF0
- .space 0x10
-
-@ item_menu
-
- .align 4
-gFieldItemUseCallback: @ 3005D00
- .space 0x10
-
-gBagPocketScrollStates: @ 3005D10
- .space 0x14
-
-gCurrentBagPocketItemSlots: @ 3005D24
- .space 0x4
-
-@ contest
-
- .align 2
-gUnknown_03005D28: @ 3005D28
- .space 0x4
-
- .include "engine/record_mixing.o"
- .include "debug/sound_check_menu.o"
- .include "field/tv.o"
-
- .space 0x64 @ unused variable?
-
-@ mauville_old_man
-
- .align 4
-gUnknown_03005DA0: @ 3005DA0
- .space 0x48
-
-@ cute_sketch
-
-gUnknown_03005DE8: @ 3005DE8
- .space 0x4
-
-gUnknown_03005DEC: @ 3005DEC
- .space 0x4
-
-gUnknown_03005DF0: @ 3005DF0
- .space 0x4
-
-gUnknown_03005DF4: @ 3005DF4
- .space 0x4
-
-gUnknown_03005DF8: @ 3005DF8
- .space 0x4
-
-gUnknown_03005DFC: @ 3005DFC
- .space 0x4
-
-gUnknown_03005E00: @ 3005E00
- .space 0x4
-
-gUnknown_03005E04: @ 3005E04
- .space 0x4
-
-gUnknown_03005E08: @ 3005E08
- .space 0x4
-
-gUnknown_03005E0C: @ 3005E0C
- .space 0x4
-
- .include "scene/contest_painting.o"
- .include "scene/evolution_scene.o"
-
-@ pokedex_cry_screen
-
-gUnknown_03005E98: @ 3005E98
- .space 0x4
-
- .include "engine/save.o"
-
- .space 0x10 @ unused variable?
-
- .include "scene/intro.o"
-
-@ battle_anim_813F0F4
-
- .align 2
-gUnknown_03005F0C: @ 3005F0C
- .space 0x4
-
-gUnknown_03005F10: @ 3005F10
- .space 0x4
-
-gUnknown_03005F14: @ 3005F14
- .space 0xC
-
- .include "pokemon/pokeblock_feed.o"
- .include "libs/m4a_2.o"
- .include "libs/agb_flash.o"
+#define SYMBOL(name, size) \
+ . = ALIGN (((size) > 16) ? 16 : (size)); \
+ . = ALIGN(4); \
+ name = .; \
+ . += size;
+
+
+// main.c
+SYMBOL(gKeyRepeatStartDelay, 4)
+SYMBOL(gLinkTransferringData, 4)
+SYMBOL(gMain, 1088)
+SYMBOL(gKeyRepeatContinueDelay, 4)
+SYMBOL(gSoftResetDisabled, 4)
+SYMBOL(gIntrTable, 56)
+SYMBOL(gLinkVSyncDisabled, 4)
+SYMBOL(IntrMain_Buffer, 2048)
+SYMBOL(gPcmDmaCounter, 4)
+
+// sprite.c
+SYMBOL(gSpriteOrder, 64)
+SYMBOL(gSpriteTileAllocBitmap, 128)
+SYMBOL(gSpriteCoordOffsetX, 4)
+SYMBOL(gOamLimit, 4)
+SYMBOL(gReservedSpriteTileCount, 4)
+SYMBOL(gSpriteCopyRequestCount, 4)
+SYMBOL(gSpriteCopyRequests, 768)
+SYMBOL(gSpriteCoordOffsetY, 4)
+SYMBOL(gOamMatrices, 256)
+SYMBOL(gShouldProcessSpriteCopyRequests, 4)
+SYMBOL(gOamMatrixAllocBitmap, 4)
+SYMBOL(gReservedSpritePaletteCount, 4)
+
+// string_util.c
+SYMBOL(gUnknownStringVar, 16)
+
+// link.c
+SYMBOL(word_3002910, 8)
+SYMBOL(gLinkDebugValue1, 4)
+SYMBOL(localLinkPlayerBlock, 60)
+SYMBOL(gLinkErrorOccurred, 4)
+. += 0x4;
+SYMBOL(gLinkDebugValue2, 4)
+. += 0x4;
+#ifdef GERMAN
+SYMBOL(deUnkValue1, 4)
+SYMBOL(deUnkValue2, 4)
+#endif
+SYMBOL(gLinkPlayerPending, 4)
+SYMBOL(gLinkPlayers, 112)
+SYMBOL(gBlockReceived, 4)
+. += 0x4;
+SYMBOL(gLinkHeldKeys, 4)
+SYMBOL(gLinkTimeOutCounter, 4)
+. += 0x4;
+SYMBOL(localLinkPlayer, 28)
+SYMBOL(gRecvCmds, 64)
+SYMBOL(gLinkStatus, 4)
+SYMBOL(gLinkDummyBool, 4)
+SYMBOL(byte_3002A68, 4)
+SYMBOL(gBlockSendBuffer, 256)
+SYMBOL(u8_array_3002B70, 4)
+SYMBOL(gLinkType, 4)
+SYMBOL(u8_array_3002B78, 4)
+SYMBOL(gBlockRecvBuffer, 1024)
+SYMBOL(gSuppressLinkErrorMessage, 4)
+SYMBOL(gSavedLinkPlayerCount, 4)
+SYMBOL(gSendCmd, 16)
+SYMBOL(gSavedMultiplayerId, 4)
+SYMBOL(gReceivedRemoteLinkPlayers, 4)
+SYMBOL(gLinkTestBGInfo, 16)
+SYMBOL(gLinkCallback, 4)
+SYMBOL(gSavedLinkPlayers, 112)
+SYMBOL(gShouldAdvanceLinkState, 4)
+SYMBOL(gLinkTestBlockChecksums, 8)
+. += 0x4;
+SYMBOL(gBlockRequestType, 4)
+. += 0x8;
+SYMBOL(gLastSendQueueCount, 4)
+SYMBOL(gLink, 4032)
+SYMBOL(gLastRecvQueueCount, 4)
+SYMBOL(gLinkSavedIme, 4)
+
+// rtc.c
+SYMBOL(gLocalTime, 8)
+
+// battle
+SYMBOL(gBattleBuffersTransferData, 368)
+SYMBOL(gBattle_BG3_X, 4)
+SYMBOL(gBattle_BG1_Y, 4)
+SYMBOL(gBattle_BG3_Y, 4)
+SYMBOL(gBattleTextBuff1, 16)
+SYMBOL(gUnknown_030041D0, 48)
+SYMBOL(gBattle_WIN1H, 4)
+SYMBOL(gUnknown_03004210, 48)
+SYMBOL(gBattle_WIN0V, 4)
+SYMBOL(gBattle_WIN1V, 4)
+SYMBOL(gUnknown_03004250, 48)
+SYMBOL(gBattle_BG2_Y, 4)
+SYMBOL(gUnknown_03004284, 4)
+SYMBOL(gBattle_BG2_X, 4)
+SYMBOL(gBattleTerrain, 4)
+SYMBOL(gBattleTextBuff2, 16)
+SYMBOL(gBattle_BG0_Y, 4)
+SYMBOL(gBattle_BG0_X, 4)
+SYMBOL(gBattleTextBuff3, 16)
+SYMBOL(gBattle_BG1_X, 4)
+SYMBOL(gBattle_WIN0H, 4)
+. += 0x8;
+SYMBOL(gPreBattleCallback1, 4)
+gBattleMainFunc = .;
+. += 0xC;
+gBattleResults = .;
+. += 0x1C;
+// Why is this not aligned?
+gUnknown_030042FC = .;
+. += 0x1A;
+gUnknown_03004316 = .;
+. += 0xE;
+gLeveledUpInBattle = .;
+. += 0xC;
+SYMBOL(gBattleBankFunc, 16)
+SYMBOL(gHealthboxIDs, 4)
+SYMBOL(gUnknown_03004344, 4)
+SYMBOL(gUnknown_03004348, 4)
+SYMBOL(gUnknown_0300434C, 4)
+
+// pokemon_1.c
+SYMBOL(gPlayerPartyCount, 4)
+SYMBOL(gPlayerParty, 600)
+SYMBOL(gEnemyPartyCount, 4)
+SYMBOL(gEnemyParty, 600)
+
+// random.c
+SYMBOL(gRngValue, 4)
+
+// egg_hatch.c
+SYMBOL(gEggHatchData, 4)
+
+// load_save.c
+SYMBOL(gFlashMemoryPresent, 4)
+
+// ???
+SYMBOL(gUnknown_03004824, 4)
+SYMBOL(gUnknown_03004828, 4)
+. += 0x4;
+
+// berry_blender.c
+SYMBOL(gUnknown_03004830, 4)
+SYMBOL(gInGameOpponentsNo, 4)
+SYMBOL(gUnknown_03004840, 20)
+SYMBOL(gBerryBlenderData, 4)
+
+// overworld.c
+SYMBOL(word_3004858, 4)
+SYMBOL(gFieldCallback, 4)
+SYMBOL(gUnknown_03004860, 4)
+SYMBOL(gFieldLinkPlayerCount, 4)
+
+// fieldmap.c
+. = ALIGN(16);
+gUnknown_03004870 = .;
+. += 0xC;
+
+// field_camera.c
+SYMBOL(gUnknown_03004880, 24)
+SYMBOL(gUnknown_03004898, 4)
+SYMBOL(gUnknown_0300489C, 4)
+
+// field_map_obj.c
+SYMBOL(gMapObjects, 576)
+
+// field_control_avatar.c
+SYMBOL(gSelectedMapObject, 4)
+
+// ???
+SYMBOL(gPokemonItemUseCallback, 4)
+
+// start_menu.c
+SYMBOL(gMenuCallback, 4)
+
+// sound.c
+SYMBOL(gDisableMusic, 4)
+
+// battle_anim.c
+SYMBOL(gSoundAnimFramesToWait, 4)
+SYMBOL(gBattleAnimArgs, 16)
+SYMBOL(gAnimSpriteIndexArray, 16)
+
+// task.c
+SYMBOL(gTasks, 640)
+
+// mori_debug_menu.c
+SYMBOL(gUnknown_03004DA0, 32)
+
+// scanline_effect.c
+SYMBOL(gScanlineEffect, 32)
+SYMBOL(gScanlineEffectRegBuffers, 3840)
+
+// pokemon_menu.c
+SYMBOL(gLastFieldPokeMenuOpened, 4)
+SYMBOL(gUnknown_03005CE4, 4)
+
+// pokedex.c
+SYMBOL(gUnknown_03005CE8, 4)
+SYMBOL(gUnknown_03005CEC, 4)
+
+// ???
+SYMBOL(gUnknown_03005CF0, 4)
+// huh?
+. = ALIGN(16);
+gFieldItemUseCallback = .;
+. += 0x10;
+gBagPocketScrollStates = .;
+. += 0x14;
+SYMBOL(gCurrentBagPocketItemSlots, 4)
+SYMBOL(gUnknown_03005D28, 4)
+
+// record_mixing.c
+SYMBOL(gUnknown_03005D2C, 4)
+
+// sound_check_menu.c
+SYMBOL(gUnknown_03005D30, 4)
+SYMBOL(gSoundTestCryNum, 4)
+
+// tv.c
+SYMBOL(gUnknown_03005D38, 4)
+. += 0x64; // huge gap?
+
+// ???
+SYMBOL(gUnknown_03005DA0, 0x48)
+SYMBOL(gUnknown_03005DE8, 4)
+SYMBOL(gUnknown_03005DEC, 4)
+SYMBOL(gUnknown_03005DF0, 4)
+SYMBOL(gUnknown_03005DF4, 4)
+SYMBOL(gUnknown_03005DF8, 4)
+SYMBOL(gUnknown_03005DFC, 4)
+SYMBOL(gUnknown_03005E00, 4)
+SYMBOL(gUnknown_03005E04, 4)
+SYMBOL(gUnknown_03005E08, 4)
+SYMBOL(gUnknown_03005E0C, 4)
+
+// contest_painting.c
+SYMBOL(gUnknown_03005E10, 4)
+SYMBOL(gUnknown_03005E20, 32)
+SYMBOL(gUnknown_03005E40, 76)
+SYMBOL(gUnknown_03005E8C, 4)
+SYMBOL(gUnknown_03005E90, 4)
+
+// evolution_scene.c
+SYMBOL(gCB2_AfterEvolution, 4)
+
+// ???
+SYMBOL(gUnknown_03005E98, 4)
+
+// save.c
+SYMBOL(gFirstSaveSector, 4)
+SYMBOL(gPrevSaveCounter, 4)
+SYMBOL(gLastKnownGoodSector, 4)
+SYMBOL(gDamagedSaveSectors, 4)
+SYMBOL(gSaveCounter, 4)
+SYMBOL(gFastSaveSection, 4)
+SYMBOL(gUnknown_03005EB4, 4)
+SYMBOL(gSaveFileStatus, 4)
+SYMBOL(gGameContinueCallback, 4)
+. += 0x10;
+
+// intro.c
+SYMBOL(gIntroFrameCounter, 4)
+SYMBOL(gMultibootProgramStruct, 44)
+
+// ???
+SYMBOL(gUnknown_03005F0C, 4)
+SYMBOL(gUnknown_03005F10, 4)
+gUnknown_03005F14 = .;
+. += 0xC;
+
+// pokeblock_feed.c
+SYMBOL(gPokeblockFeedPokeSprite, 4)
+SYMBOL(gPokeblockFeedMonSpecies, 4)
+SYMBOL(gPokeblockMonNotFlipped, 4)
+SYMBOL(gPokeblockFeedMonSpriteID, 4)
+SYMBOL(gPokeblockFeedMonNature, 4)
+SYMBOL(gUnknown_03005F34, 4)
+SYMBOL(gPokeblockFeedUnused0, 4)
+SYMBOL(gUnknown_03005F3C, 4)
+SYMBOL(gUnknown_03005F40, 4)
+SYMBOL(gPokeblockFeedPokeSpriteCopy, 68)
+SYMBOL(gUnknown_03005F94, 4)
+SYMBOL(gUnknown_03005FA0, 48)
+
+// m4a_2.c
+SYMBOL(gSoundInfo, 4016)
+SYMBOL(gPokemonCrySongs, 104)
+SYMBOL(gPokemonCryMusicPlayers, 128)
+SYMBOL(gMPlayJumpTable, 144)
+SYMBOL(gCgbChans, 256)
+SYMBOL(gPokemonCryTracks, 320)
+SYMBOL(gPokemonCrySong, 52)
+SYMBOL(gMPlay_BGM, 64)
+SYMBOL(gMPlay_SE1, 64)
+SYMBOL(gMPlay_SE2, 64)
+SYMBOL(gMPlayMemAccArea, 16)
+SYMBOL(gMPlay_SE3, 64)
+
+// 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)
diff --git a/sym_ewram.txt b/sym_ewram.txt
index d2fd0aabe..f6b4852a8 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1,471 +1,471 @@
- .include "src/engine/main.o"
- .include "src/engine/sprite.o"
- .include "src/engine/text.o"
- .include "src/engine/string_util.o"
+. = ALIGN(4); src/engine/main.o(ewram_data);
+. = ALIGN(4); src/engine/sprite.o(ewram_data);
+. = ALIGN(4); src/engine/text.o(ewram_data);
+. = ALIGN(4); src/engine/string_util.o(ewram_data);
- .space 0x2E8
+. += 0x2E8;
- .include "src/engine/link.o"
- .include "src/rom3.o"
+. = ALIGN(4); src/engine/link.o(ewram_data);
+. = ALIGN(4); src/rom3.o(ewram_data);
-@ battle
+/* battle */
- .align 2
-gUnknown_020238C8: @ 20238C8
- .space 0x4
+ . = ALIGN(4);
+gUnknown_020238C8 = .; /* 20238C8 */
+ . += 0x4;
-gDisplayedStringBattle: @ 20238CC
- .space 0x12C
+gDisplayedStringBattle = .; /* 20238CC */
+ . += 0x12C;
-gBattleTypeFlags: @ 20239F8
- .space 0x4
+gBattleTypeFlags = .; /* 20239F8 */
+ . += 0x4;
-gUnknown_020239FC: @ 20239FC
- .space 0x4
+gUnknown_020239FC = .; /* 20239FC */
+ . += 0x4;
-gUnknown_02023A00: @ 2023A00
- .space 0x4
+gUnknown_02023A00 = .; /* 2023A00 */
+ . += 0x4;
-gUnknown_02023A04: @ 2023A04
- .space 0x10
+gUnknown_02023A04 = .; /* 2023A04 */
+ . += 0x10;
-gUnknown_02023A14: @ 2023A14
- .space 0x4C
+gUnknown_02023A14 = .; /* 2023A14 */
+ . += 0x4C;
-gBattleBufferA: @ 2023A60
- .space 0x2
+gBattleBufferA = .; /* 2023A60 */
+ . += 0x2;
-gUnknown_02023A62: @ 2023A62
- .space 0x1
+gUnknown_02023A62 = .; /* 2023A62 */
+ . += 0x1;
-gUnknown_02023A63: @ 2023A63
- .space 0x1
+gUnknown_02023A63 = .; /* 2023A63 */
+ . += 0x1;
-gUnknown_02023A64: @ 2023A64
- .space 0x7FC
+gUnknown_02023A64 = .; /* 2023A64 */
+ . += 0x7FC;
-gBattleBufferB: @ 2024260
- .space 0x4
+gBattleBufferB = .; /* 2024260 */
+ . += 0x4;
-gUnknown_02024264: @ 2024264
- .space 0x7FC
+gUnknown_02024264 = .; /* 2024264 */
+ . += 0x7FC;
-gActiveBank: @ 2024A60
- .space 0x4
+gActiveBank = .; /* 2024A60 */
+ . += 0x4;
-gBattleExecBuffer: @ 2024A64
- .space 0x4
+gBattleExecBuffer = .; /* 2024A64 */
+ . += 0x4;
-gNoOfAllBanks: @ 2024A68
- .space 0x2
+gNoOfAllBanks = .; /* 2024A68 */
+ . += 0x2;
-gBattlePartyID: @ 2024A6A
- .space 0x8
+gBattlePartyID = .; /* 2024A6A */
+ . += 0x8;
-gBanksBySide: @ 2024A72
- .space 0x4
+gBanksBySide = .; /* 2024A72 */
+ . += 0x4;
-gActionsByTurnOrder: @ 2024A76
- .space 0x4
+gActionsByTurnOrder = .; /* 2024A76 */
+ . += 0x4;
-gBanksByTurnOrder: @ 2024A7A
- .space 0x4
+gBanksByTurnOrder = .; /* 2024A7A */
+ . += 0x4;
-gCurrentTurnActionNumber: @ 2024A7E
- .space 0x1
+gCurrentTurnActionNumber = .; /* 2024A7E */
+ . += 0x1;
-gCurrentActionFuncId: @ 2024A7F
- .space 0x1
+gCurrentActionFuncId = .; /* 2024A7F */
+ . += 0x1;
-gBattleMons: @ 2024A80
- .space 0xC
+gBattleMons = .; /* 2024A80 */
+ . += 0xC;
-gUnknown_02024A8C: @ 2024A8C
- .space 0xC
+gUnknown_02024A8C = .; /* 2024A8C */
+ . += 0xC;
-gUnknown_02024A98: @ 2024A98
- .space 0xC
+gUnknown_02024A98 = .; /* 2024A98 */
+ . += 0xC;
-gUnknown_02024AA4: @ 2024AA4
- .space 0x4
+gUnknown_02024AA4 = .; /* 2024AA4 */
+ . += 0x4;
-gUnknown_02024AA8: @ 2024AA8
- .space 0x24
+gUnknown_02024AA8 = .; /* 2024AA8 */
+ . += 0x24;
-gUnknown_02024ACC: @ 2024ACC
- .space 0x4
+gUnknown_02024ACC = .; /* 2024ACC */
+ . += 0x4;
-gUnknown_02024AD0: @ 2024AD0
- .space 0x110
+gUnknown_02024AD0 = .; /* 2024AD0 */
+ . += 0x110;
-gObjectBankIDs: @ 2024BE0
- .space 0x4
+gObjectBankIDs = .; /* 2024BE0 */
+ . += 0x4;
-gCurrMovePos: @ 2024BE4
- .space 0x1
+gCurrMovePos = .; /* 2024BE4 */
+ . += 0x1;
-gUnknown_02024BE5: @ 2024BE5
- .space 0x1
+gUnknown_02024BE5 = .; /* 2024BE5 */
+ . += 0x1;
-gCurrentMove: @ 2024BE6
- .space 0x2
+gCurrentMove = .; /* 2024BE6 */
+ . += 0x2;
-gChosenMove: @ 2024BE8
- .space 0x2
+gChosenMove = .; /* 2024BE8 */
+ . += 0x2;
-gRandomMove: @ 2024BEA
- .space 0x2
+gRandomMove = .; /* 2024BEA */
+ . += 0x2;
-gBattleMoveDamage: @ 2024BEC
- .space 0x4
+gBattleMoveDamage = .; /* 2024BEC */
+ . += 0x4;
-gHpDealt: @ 2024BF0
- .space 0x4
+gHpDealt = .; /* 2024BF0 */
+ . += 0x4;
-gTakenDmg: @ 2024BF4
- .space 0x10
+gTakenDmg = .; /* 2024BF4 */
+ . += 0x10;
-gLastUsedItem: @ 2024C04
- .space 0x2
+gLastUsedItem = .; /* 2024C04 */
+ . += 0x2;
-gLastUsedAbility: @ 2024C06
- .space 0x1
+gLastUsedAbility = .; /* 2024C06 */
+ . += 0x1;
-gBankAttacker: @ 2024C07
- .space 0x1
+gBankAttacker = .; /* 2024C07 */
+ . += 0x1;
-gBankTarget: @ 2024C08
- .space 0x1
+gBankTarget = .; /* 2024C08 */
+ . += 0x1;
-gBank1: @ 2024C09
- .space 0x1
+gBank1 = .; /* 2024C09 */
+ . += 0x1;
-gEffectBank: @ 2024C0A
- .space 0x1
+gEffectBank = .; /* 2024C0A */
+ . += 0x1;
-gStringBank: @ 2024C0B
- .space 0x1
+gStringBank = .; /* 2024C0B */
+ . += 0x1;
-gAbsentBankFlags: @ 2024C0C
- .space 0x1
+gAbsentBankFlags = .; /* 2024C0C */
+ . += 0x1;
-gCritMultiplier: @ 2024C0D
- .space 0x1
+gCritMultiplier = .; /* 2024C0D */
+ . += 0x1;
-gMultiHitCounter: @ 2024C0E
- .space 0x2
+gMultiHitCounter = .; /* 2024C0E */
+ . += 0x2;
-gBattlescriptCurrInstr: @ 2024C10
- .space 0x8
+gBattlescriptCurrInstr = .; /* 2024C10 */
+ . += 0x8;
-gActionForBanks: @ 2024C18
- .space 0x4
+gActionForBanks = .; /* 2024C18 */
+ . += 0x4;
-gUnknown_02024C1C: @ 2024C1C
- .space 0x10
+gUnknown_02024C1C = .; /* 2024C1C */
+ . += 0x10;
-gUnknown_02024C2C: @ 2024C2C
- .space 0x8
+gUnknown_02024C2C = .; /* 2024C2C */
+ . += 0x8;
-gLastUsedMove: @ 2024C34
- .space 0x8
+gLastUsedMove = .; /* 2024C34 */
+ . += 0x8;
-gLastLandedMoves: @ 2024C3C
- .space 0x8
+gLastLandedMoves = .; /* 2024C3C */
+ . += 0x8;
-gLastHitByType: @ 2024C44
- .space 0x8
+gLastHitByType = .; /* 2024C44 */
+ . += 0x8;
-gUnknown_02024C4C: @ 2024C4C
- .space 0x8
+gUnknown_02024C4C = .; /* 2024C4C */
+ . += 0x8;
-gLockedMoves: @ 2024C54
- .space 0x8
+gLockedMoves = .; /* 2024C54 */
+ . += 0x8;
-gUnknown_02024C5C: @ 2024C5C
- .space 0x4
+gUnknown_02024C5C = .; /* 2024C5C */
+ . += 0x4;
-gChosenMovesByBanks: @ 2024C60
- .space 0x8
+gChosenMovesByBanks = .; /* 2024C60 */
+ . += 0x8;
-gBattleMoveFlags: @ 2024C68
- .space 0x4
+gBattleMoveFlags = .; /* 2024C68 */
+ . += 0x4;
-gHitMarker: @ 2024C6C
- .space 0x4
+gHitMarker = .; /* 2024C6C */
+ . += 0x4;
-gUnknown_02024C70: @ 2024C70
- .space 0x4
+gUnknown_02024C70 = .; /* 2024C70 */
+ . += 0x4;
-gTakenDmgBanks: @ 2024C74
- .space 0x4
+gTakenDmgBanks = .; /* 2024C74 */
+ . += 0x4;
-gUnknown_02024C78: @ 2024C78
- .space 0x2
+gUnknown_02024C78 = .; /* 2024C78 */
+ . += 0x2;
-gSideAffecting: @ 2024C7A
- .space 0x6
+gSideAffecting = .; /* 2024C7A */
+ . += 0x6;
-gSideTimers: @ 2024C80
- .space 0x18
+gSideTimers = .; /* 2024C80 */
+ . += 0x18;
-gStatuses3: @ 2024C98
- .space 0x10
+gStatuses3 = .; /* 2024C98 */
+ . += 0x10;
-gDisableStructs: @ 2024CA8
- .space 0x70
+gDisableStructs = .; /* 2024CA8 */
+ . += 0x70;
-gPauseCounterBattle: @ 2024D18
- .space 0x2
+gPauseCounterBattle = .; /* 2024D18 */
+ . += 0x2;
-gPaydayMoney: @ 2024D1A
- .space 0x2
+gPaydayMoney = .; /* 2024D1A */
+ . += 0x2;
-gRandomTurnNumber: @ 2024D1C
- .space 0x2
+gRandomTurnNumber = .; /* 2024D1C */
+ . += 0x2;
-gBattleCommunication: @ 2024D1E
- .space 0x1
+gBattleCommunication = .; /* 2024D1E */
+ . += 0x1;
-gUnknown_02024D1F: @ 2024D1F
- .space 0x7
+gUnknown_02024D1F = .; /* 2024D1F */
+ . += 0x7;
-gBattleOutcome: @ 2024D26
- .space 0x2
+gBattleOutcome = .; /* 2024D26 */
+ . += 0x2;
-gProtectStructs: @ 2024D28
- .space 0x40
+gProtectStructs = .; /* 2024D28 */
+ . += 0x40;
-gSpecialStatuses: @ 2024D68
- .space 0x50
+gSpecialStatuses = .; /* 2024D68 */
+ . += 0x50;
-gBattleWeather: @ 2024DB8
- .space 0x4
+gBattleWeather = .; /* 2024DB8 */
+ . += 0x4;
-gWishFutureKnock: @ 2024DBC
- .space 0x20
+gWishFutureKnock = .; /* 2024DBC */
+ . += 0x20;
-gUnknown_02024DDC: @ 2024DDC
- .space 0xC
+gUnknown_02024DDC = .; /* 2024DDC */
+ . += 0xC;
-gUnknown_02024DE8: @ 2024DE8
- .space 0x2
+gUnknown_02024DE8 = .; /* 2024DE8 */
+ . += 0x2;
-gSentPokesToOpponent: @ 2024DEA
- .space 0x2
+gSentPokesToOpponent = .; /* 2024DEA */
+ . += 0x2;
-gDynamicBasePower: @ 2024DEC
- .space 0x2
+gDynamicBasePower = .; /* 2024DEC */
+ . += 0x2;
-gExpShareExp: @ 2024DEE
- .space 0x2
+gExpShareExp = .; /* 2024DEE */
+ . += 0x2;
-gEnigmaBerries: @ 2024DF0
- .space 0x8
+gEnigmaBerries = .; /* 2024DF0 */
+ . += 0x8;
-gUnknown_02024DF8: @ 2024DF8
- .space 0x68
+gUnknown_02024DF8 = .; /* 2024DF8 */
+ . += 0x68;
-gActionSelectionCursor: @ 2024E60
- .space 0x4
+gActionSelectionCursor = .; /* 2024E60 */
+ . += 0x4;
-gMoveSelectionCursor: @ 2024E64
- .space 0x4
+gMoveSelectionCursor = .; /* 2024E64 */
+ . += 0x4;
-gUnknown_02024E68: @ 2024E68
- .space 0x4
+gUnknown_02024E68 = .; /* 2024E68 */
+ . += 0x4;
-gBankInMenu: @ 2024E6C
- .space 0x1
+gBankInMenu = .; /* 2024E6C */
+ . += 0x1;
-gDoingBattleAnim: @ 2024E6D
- .space 0x3
+gDoingBattleAnim = .; /* 2024E6D */
+ . += 0x3;
-gTransformedPersonalities: @ 2024E70
- .space 0x10
+gTransformedPersonalities = .; /* 2024E70 */
+ . += 0x10;
-gBattleMovePower: @ 2024E80
- .space 0x2
+gBattleMovePower = .; /* 2024E80 */
+ . += 0x2;
-gMoveToLearn: @ 2024E82
- .space 0x2
+gMoveToLearn = .; /* 2024E82 */
+ . += 0x2;
-gBattleMonForms: @ 2024E84
- .space 0x4
+gBattleMonForms = .; /* 2024E84 */
+ . += 0x4;
- .include "src/pokemon/pokemon_1.o"
- .include "src/pokemon/pokemon_2.o"
- .include "src/engine/load_save.o"
- .include "src/engine/trade.o"
- .include "src/scene/berry_blender.o"
- .include "src/scene/new_game.o"
- .include "src/field/overworld.o"
- .include "src/field/fieldmap.o"
- .include "src/field/field_camera.o"
- .include "src/field/field_player_avatar.o"
- .include "src/field/field_message_box.o"
- .include "src/engine/script.o"
- .include "src/field/scrcmd.o"
- .include "src/field/field_control_avatar.o"
- .include "src/field/event_data.o"
- .include "src/field/party_menu.o"
- .include "src/field/start_menu.o"
- .include "src/engine/menu.o"
- .include "src/engine/tileset_anim.o"
- .include "src/engine/palette.o"
- .include "src/engine/sound.o"
- .include "src/battle/battle_anim.o"
- .include "src/rom_8077ABC.o"
- .include "src/scene/title_screen.o"
- .include "src/field/field_weather.o"
- .include "src/battle/battle_setup.o"
- .include "src/field/wild_encounter.o"
- .include "src/field/field_effect.o"
- .include "src/scanline_effect.o"
- .include "src/pokemon/pokemon_menu.o"
- .include "src/pokemon/pokedex.o"
- .include "src/engine/trainer_card.o"
- .include "src/pokemon/pokemon_storage_system.o"
+. = ALIGN(4); src/pokemon/pokemon_1.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_2.o(ewram_data);
+. = ALIGN(4); src/engine/load_save.o(ewram_data);
+. = ALIGN(4); src/engine/trade.o(ewram_data);
+. = ALIGN(4); src/scene/berry_blender.o(ewram_data);
+. = ALIGN(4); src/scene/new_game.o(ewram_data);
+. = ALIGN(4); src/field/overworld.o(ewram_data);
+. = ALIGN(4); src/field/fieldmap.o(ewram_data);
+. = ALIGN(4); src/field/field_camera.o(ewram_data);
+. = ALIGN(4); src/field/field_player_avatar.o(ewram_data);
+. = ALIGN(4); src/field/field_message_box.o(ewram_data);
+. = ALIGN(4); src/engine/script.o(ewram_data);
+. = ALIGN(4); src/field/scrcmd.o(ewram_data);
+. = ALIGN(4); src/field/field_control_avatar.o(ewram_data);
+. = ALIGN(4); src/field/event_data.o(ewram_data);
+. = ALIGN(4); src/field/party_menu.o(ewram_data);
+. = ALIGN(4); src/field/start_menu.o(ewram_data);
+. = ALIGN(4); src/engine/menu.o(ewram_data);
+. = ALIGN(4); src/engine/tileset_anim.o(ewram_data);
+. = ALIGN(4); src/engine/palette.o(ewram_data);
+. = ALIGN(4); src/engine/sound.o(ewram_data);
+. = ALIGN(4); src/battle/battle_anim.o(ewram_data);
+. = ALIGN(4); src/rom_8077ABC.o(ewram_data);
+. = ALIGN(4); src/scene/title_screen.o(ewram_data);
+. = ALIGN(4); src/field/field_weather.o(ewram_data);
+. = ALIGN(4); src/battle/battle_setup.o(ewram_data);
+. = ALIGN(4); src/field/wild_encounter.o(ewram_data);
+. = ALIGN(4); src/field/field_effect.o(ewram_data);
+. = ALIGN(4); src/scanline_effect.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_menu.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokedex.o(ewram_data);
+. = ALIGN(4); src/engine/trainer_card.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system.o(ewram_data);
-@ still pokemon_storage_system
+/* still pokemon_storage_system */
- .align 2
-gUnknown_02038470: @ 2038470
- .space 0x3
+ . = ALIGN(4);
+gUnknown_02038470 = .; /* 2038470 */
+ . += 0x3;
-gUnknown_02038473: @ 2038473
- .space 0x1
+gUnknown_02038473 = .; /* 2038473 */
+ . += 0x1;
-gUnknown_02038474: @ 2038474
- .space 0x4
+gUnknown_02038474 = .; /* 2038474 */
+ . += 0x4;
-gUnknown_02038478: @ 2038478
- .space 0x4
-
-gUnknown_0203847C: @ 203847C
- .space 0x1
-
-gUnknown_0203847D: @ 203847D
- .space 0x1
-
-gUnknown_0203847E: @ 203847E
- .space 0x1
-
-gUnknown_0203847F: @ 203847F
- .space 0x1
-
-gUnknown_02038480: @ 2038480
- .space 0x64
-
-gUnknown_020384E4: @ 20384E4
- .space 0x1
-
-gUnknown_020384E5: @ 20384E5
- .space 0x1
-
-gUnknown_020384E6: @ 20384E6
- .space 0x1
-
-gUnknown_020384E7: @ 20384E7
- .space 0x1
-
-gUnknown_020384E8: @ 20384E8
- .space 0x1
-
-gUnknown_020384E9: @ 20384E9
- .space 0x1
-
-gUnknown_020384EA: @ 20384EA
- .space 0x2
-
-gUnknown_020384EC: @ 20384EC
- .space 0x4
-
- .include "src/pokemon/pokemon_summary_screen.o"
- .include "src/field/script_movement.o"
- .include "src/field/map_name_popup.o"
- .include "src/field/item_menu.o"
- .include "src/contest.o"
- .include "src/field/shop.o"
- .include "src/field/fldeff_escalator.o"
- .include "src/field/money.o"
- .include "src/engine/record_mixing.o"
- .include "src/debug/sound_check_menu.o"
- .include "src/field/secret_base.o"
- .include "src/field/tv.o"
- .include "src/field/pc_screen_effect.o"
- .include "src/field/rotating_gate.o"
- .include "src/field/safari_zone.o"
- .include "src/easy_chat_2.o"
-
-@ pokenav
-
- .align 2
-gUnknown_020388B0: @ 20388B0
- .space 0x4
-
-gUnknown_020388B4: @ 20388B4
- .space 0x4
-
- .include "src/pokemon/mon_markings.o"
- .include "src/field/mauville_man.o"
- .include "src/field/menu_helpers.o"
- .include "src/field/region_map.o"
- .include "src/field/decoration.o"
- .include "src/battle/battle_ai.o"
- .include "src/rom6.o"
- .include "src/field/pokeblock.o"
- .include "src/field/field_specials.o"
-
-@ pokedex_area_screen
-
- .align 2
-gUnknown_02039260: @ 2039260
- .space 0x2
+gUnknown_02038478 = .; /* 2038478 */
+ . += 0x4;
+
+gUnknown_0203847C = .; /* 203847C */
+ . += 0x1;
+
+gUnknown_0203847D = .; /* 203847D */
+ . += 0x1;
+
+gUnknown_0203847E = .; /* 203847E */
+ . += 0x1;
+
+gUnknown_0203847F = .; /* 203847F */
+ . += 0x1;
+
+gUnknown_02038480 = .; /* 2038480 */
+ . += 0x64;
+
+gUnknown_020384E4 = .; /* 20384E4 */
+ . += 0x1;
+
+gUnknown_020384E5 = .; /* 20384E5 */
+ . += 0x1;
+
+gUnknown_020384E6 = .; /* 20384E6 */
+ . += 0x1;
+
+gUnknown_020384E7 = .; /* 20384E7 */
+ . += 0x1;
+
+gUnknown_020384E8 = .; /* 20384E8 */
+ . += 0x1;
+
+gUnknown_020384E9 = .; /* 20384E9 */
+ . += 0x1;
+
+gUnknown_020384EA = .; /* 20384EA */
+ . += 0x2;
+
+gUnknown_020384EC = .; /* 20384EC */
+ . += 0x4;
+
+. = ALIGN(4); src/pokemon/pokemon_summary_screen.o(ewram_data);
+. = ALIGN(4); src/field/script_movement.o(ewram_data);
+. = ALIGN(4); src/field/map_name_popup.o(ewram_data);
+. = ALIGN(4); src/field/item_menu.o(ewram_data);
+. = ALIGN(4); src/contest.o(ewram_data);
+. = ALIGN(4); src/field/shop.o(ewram_data);
+. = ALIGN(4); src/field/fldeff_escalator.o(ewram_data);
+. = ALIGN(4); src/field/money.o(ewram_data);
+. = ALIGN(4); src/engine/record_mixing.o(ewram_data);
+. = ALIGN(4); src/debug/sound_check_menu.o(ewram_data);
+. = ALIGN(4); src/field/secret_base.o(ewram_data);
+. = ALIGN(4); src/field/tv.o(ewram_data);
+. = ALIGN(4); src/field/pc_screen_effect.o(ewram_data);
+. = ALIGN(4); src/field/rotating_gate.o(ewram_data);
+. = ALIGN(4); src/field/safari_zone.o(ewram_data);
+. = ALIGN(4); src/easy_chat_2.o(ewram_data);
+
+/* pokenav */
+
+ . = ALIGN(4);
+gUnknown_020388B0 = .; /* 20388B0 */
+ . += 0x4;
+
+gUnknown_020388B4 = .; /* 20388B4 */
+ . += 0x4;
+
+. = ALIGN(4); src/pokemon/mon_markings.o(ewram_data);
+. = ALIGN(4); src/field/mauville_man.o(ewram_data);
+. = ALIGN(4); src/field/menu_helpers.o(ewram_data);
+. = ALIGN(4); src/field/region_map.o(ewram_data);
+. = ALIGN(4); src/field/decoration.o(ewram_data);
+. = ALIGN(4); src/battle/battle_ai.o(ewram_data);
+. = ALIGN(4); src/rom6.o(ewram_data);
+. = ALIGN(4); src/field/pokeblock.o(ewram_data);
+. = ALIGN(4); src/field/field_specials.o(ewram_data);
+
+/* pokedex_area_screen */
+
+ . = ALIGN(4);
+gUnknown_02039260 = .; /* 2039260 */
+ . += 0x2;
-gUnknown_02039262: @ 2039262
- .space 0x2
+gUnknown_02039262 = .; /* 2039262 */
+ . += 0x2;
-gUnknown_02039264: @ 2039264
- .space 0x2
+gUnknown_02039264 = .; /* 2039264 */
+ . += 0x2;
-gUnknown_02039266: @ 2039266
- .space 0x2
+gUnknown_02039266 = .; /* 2039266 */
+ . += 0x2;
-gUnknown_02039268: @ 2039268
- .space 0x2
+gUnknown_02039268 = .; /* 2039268 */
+ . += 0x2;
-gUnknown_0203926A: @ 203926A
- .space 0x2
-
- .include "src/battle/battle_message.o"
- .include "src/field/choose_party.o"
- .include "src/scene/cable_car.o"
- .include "src/engine/save.o"
- .include "src/engine/mystery_event_script.o"
- .include "src/field/roamer.o"
- .include "src/field/use_pokeblock.o"
- .include "src/field/player_pc.o"
- .include "src/scene/intro.o"
- .include "src/scene/hall_of_fame.o"
- .include "src/scene/credits.o"
- .include "src/field/lottery_corner.o"
- .include "src/field/berry_tag_screen.o"
- .include "src/engine/mystery_event_menu.o"
- .include "src/engine/save_failed_screen.o"
- .include "src/pokemon/pokeblock_feed.o"
- .include "src/scene/intro_credits_graphics.o"
-
-@ ???
-
- .align 4
-gTileBuffer: @ 2039360
- .space 0x100
-
-gUnknown_02039460: @ 2039460
- .space 0x300
-
-gUnknown_02039760: @ 2039760
- .space 0xC00
-
- .include "src/engine/menu_cursor.o"
+gUnknown_0203926A = .; /* 203926A */
+ . += 0x2;
+
+. = ALIGN(4); src/battle/battle_message.o(ewram_data);
+. = ALIGN(4); src/field/choose_party.o(ewram_data);
+. = ALIGN(4); src/scene/cable_car.o(ewram_data);
+. = ALIGN(4); src/engine/save.o(ewram_data);
+. = ALIGN(4); src/engine/mystery_event_script.o(ewram_data);
+. = ALIGN(4); src/field/roamer.o(ewram_data);
+. = ALIGN(4); src/field/use_pokeblock.o(ewram_data);
+. = ALIGN(4); src/field/player_pc.o(ewram_data);
+. = ALIGN(4); src/scene/intro.o(ewram_data);
+. = ALIGN(4); src/scene/hall_of_fame.o(ewram_data);
+. = ALIGN(4); src/scene/credits.o(ewram_data);
+. = ALIGN(4); src/field/lottery_corner.o(ewram_data);
+. = ALIGN(4); src/field/berry_tag_screen.o(ewram_data);
+. = ALIGN(4); src/engine/mystery_event_menu.o(ewram_data);
+. = ALIGN(4); src/engine/save_failed_screen.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokeblock_feed.o(ewram_data);
+. = ALIGN(4); src/scene/intro_credits_graphics.o(ewram_data);
+
+/* ??? */
+
+ . = ALIGN(16);
+gTileBuffer = .; /* 2039360 */
+ . += 0x100;
+
+gUnknown_02039460 = .; /* 2039460 */
+ . += 0x300;
+
+gUnknown_02039760 = .; /* 2039760 */
+ . += 0xC00;
+
+. = ALIGN(4); src/engine/menu_cursor.o(ewram_data);