From 898c863bd46ebc4fdca5329f1ebe64212b079630 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 3 Jun 2018 10:54:49 -0400 Subject: Suspend support for Silver and non-debug ROMs --- Makefile | 34 +++++----- config.mk | 35 +++++----- roms.md5 | 10 +-- shim.sym | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ shim_gold.sym | 183 -------------------------------------------------- shim_gold_debug.sym | 183 -------------------------------------------------- shim_silver.sym | 183 -------------------------------------------------- shim_silver_debug.sym | 183 -------------------------------------------------- sort_sym.py | 68 ------------------- tools/sort_sym.py | 68 +++++++++++++++++++ 10 files changed, 290 insertions(+), 840 deletions(-) create mode 100644 shim.sym delete mode 100644 shim_gold.sym delete mode 100644 shim_gold_debug.sym delete mode 100644 shim_silver.sym delete mode 100644 shim_silver_debug.sym delete mode 100644 sort_sym.py create mode 100644 tools/sort_sym.py diff --git a/Makefile b/Makefile index 688748f..e32a609 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ include config.mk BUILDBASE := build -BUILD := $(BUILDBASE)/$(BUILD_NAME) +BUILD := $(BUILDBASE) MD5 := md5sum -c PYTHON := python @@ -15,13 +15,15 @@ RGBFIX := rgbfix RGBASMFLAGS := -h -E -i $(BUILD)/ tools/gfx := tools/make_shim := +sort_sym := $(PYTHON3) tools/sort_sym.py -ROM := poke$(BUILD_NAME)_spaceworld.gb -ROMS := pokegold_spaceworld.gb pokesilver_spaceworld.gb pokegold_debug_spaceworld.gb pokesilver_debug_spaceworld.gb -BASEROM := baserom_$(BUILD_NAME).gb +ROM := poke$(BUILD_NAME)-spaceworld.gb +ROMS := $(foreach r, gold gold_debug silver silver_debug, poke$(r)-spaceworld.gb) +# Pokemon Gold Debug +BASEROM := baserom.gb DIRS := home engine data audio OBJS := $(addprefix $(BUILD)/, gfx.o sram.o wram.o hram.o shim.o) -SHIM := shim_$(BUILD_NAME).sym +SHIM := shim.sym CORRECTEDROM := $(ROM:%.gb=%-correctheader.gb) CORRECTEDROMS := $(ROMS:%.gb=%-correctheader.gb) @@ -38,7 +40,7 @@ GFX := $(patsubst %.png, $(BUILD)/%.2bpp, \ .SECONDEXPANSION: .PHONY: all -all: $(ROM) $(CORRECTEDROM) coverage +all: $(ROM) $(CORRECTEDROM) .PHONY: tools tools tools/pkmncompress tools/gfx: $(MAKE) -C tools/ @@ -46,7 +48,7 @@ tools tools/pkmncompress tools/gfx: # Remove files generated by the build process. .PHONY: clean clean: - rm -rf $(ROMS) $(BUILDBASE) $(ROMS:.gb=.sym) $(ROMS:.gb=.map) $(CORRECTEDROMS) + rm -rf $(ROMS) $(CORRECTEDROMS) $(BUILDBASE) $(ROMS:.gb=.sym) $(ROMS:.gb=.map) $(CORRECTEDROMS) make -C tools clean # Remove files except for graphics. @@ -58,10 +60,10 @@ mostlyclean: $(ROM): $(OBJS) $(RGBLINK) -d -n $(@:.gb=.sym) -m $(@:.gb=.map) -O $(BASEROM) -o $@ $^ $(RGBFIX) -f lh -k 01 -l 0x33 -m 0x03 -p 0 -r 3 -t "POKEMON2$(GAME_VERSION)" $@ - -$(PYTHON3) sort_sym.py $(@:.gb=.sym) + -$(sort_sym) $(@:.gb=.sym) -$(BUILD)/shim.asm: $(SHIM) | $$(dir $$@) - tools/make_shim -w $< > $@ +$(BUILD)/shim.asm: tools/make_shim $(SHIM) tools/make_shim | $$(dir $$@) + tools/make_shim -w $(filter-out $<, $^) > $@ $(CORRECTEDROM): %-correctheader.gb: %.gb cp $< $@ $(RGBFIX) -f hg -m 0x10 $@ @@ -111,13 +113,13 @@ $(BUILD)/%.tilemap: %.png | $$(dir $$@) -include $(call rwildcard, $(BUILD)/, *.d) -gold: ; @$(MAKE) GAME_VERSION=GOLD +#gold: ; @$(MAKE) GAME_VERSION=GOLD gold_debug: ; @$(MAKE) GAME_VERSION=GOLD DEBUG=1 -silver: ; @$(MAKE) GAME_VERSION=SILVER -silver_debug: ; @$(MAKE) GAME_VERSION=SILVER DEBUG=1 +#silver: ; @$(MAKE) GAME_VERSION=SILVER +#silver_debug: ; @$(MAKE) GAME_VERSION=SILVER DEBUG=1 compare: ; - @$(MAKE) GAME_VERSION=GOLD COMPARE=1 +# @$(MAKE) GAME_VERSION=GOLD COMPARE=1 @$(MAKE) GAME_VERSION=GOLD DEBUG=1 COMPARE=1 - @$(MAKE) GAME_VERSION=SILVER COMPARE=1 - @$(MAKE) GAME_VERSION=SILVER DEBUG=1 COMPARE=1 +# @$(MAKE) GAME_VERSION=SILVER COMPARE=1 +# @$(MAKE) GAME_VERSION=SILVER DEBUG=1 COMPARE=1 @$(MD5) roms.md5 diff --git a/config.mk b/config.mk index 07859a9..7f52d90 100644 --- a/config.mk +++ b/config.mk @@ -2,21 +2,24 @@ # Default variables GAME_VERSION ?= GOLD -DEBUG ?= 0 -COMPARE ?= 0 +DEBUG ?= 1 +COMPARE ?= 1 -# Version -ifeq ($(GAME_VERSION), GOLD) - BUILD_NAME := gold -else -ifeq ($(GAME_VERSION), SILVER) - BUILD_NAME := silver -else - $(error unknown version $(GAME_VERSION)) -endif -endif +# For now, only support building Gold Debug. +# Uncomment these to support other ROMs. -# Debug -ifeq ($(DEBUG), 1) - BUILD_NAME := $(BUILD_NAME)_debug -endif +## Version +#ifeq ($(GAME_VERSION), GOLD) + BUILD_NAME := gold +#else +#ifeq ($(GAME_VERSION), SILVER) +# BUILD_NAME := silver +#else +# $(error unknown version $(GAME_VERSION)) +#endif +#endif +# +## Debug +#ifeq ($(DEBUG), 1) +# BUILD_NAME := $(BUILD_NAME)_debug +#endif diff --git a/roms.md5 b/roms.md5 index d000cab..36316f4 100644 --- a/roms.md5 +++ b/roms.md5 @@ -1,8 +1,2 @@ -3c407114de28d17b7113a2c0cee9a37c *pokegold_spaceworld.gb -2eadbed83b775c097ff79e5128d1184f *pokegold_debug_spaceworld.gb -c52a677c35f15320d5b495e14809f00d *pokesilver_spaceworld.gb -fa65d3759bb17c489de171a598ba4913 *pokesilver_debug_spaceworld.gb -fd3819f2c0a9bc864c9c7eab107d4c7f *pokegold_spaceworld-correctheader.gb -8e509301f6db1f89fee85aead8ebf8d4 *pokegold_debug_spaceworld-correctheader.gb -b791e03946353e8afc0a06975318146f *pokesilver_spaceworld-correctheader.gb -ee3dcac13383404bd4178b4ca34e7e73 *pokesilver_debug_spaceworld-correctheader.gb +2eadbed83b775c097ff79e5128d1184f *pokegold-spaceworld.gb +8e509301f6db1f89fee85aead8ebf8d4 *pokegold-spaceworld-correctheader.gb diff --git a/shim.sym b/shim.sym new file mode 100644 index 0000000..a9891f6 --- /dev/null +++ b/shim.sym @@ -0,0 +1,183 @@ +00:032B UpdateTimeOfDayPalettes +00:0436 RTC +00:051C Reset +00:0D0A LoadFont +00:0D1A LoadFontExtra +00:0E2A ClearTileMap +00:0E3D DrawTextBox +00:0E93 PlaceString +00:0E94 PlaceNextChar +00:0E9D CheckDict +00:1D49 LoadMenuHeader +00:1E58 OpenMenu +00:1F9E ClearWindowData +00:1FCC ClearWindowData.bytefill +00:20FF RunMapScript +00:232C LoadMapWarp +00:23E5 OverworldFadeIn +00:2C05 StartMenuCheck +00:3270 Random +00:3621 WaitBGMap +00:362B SetPalettes +00:3634 ClearPalettes +00:363C GetMemSGBLayout +00:363E GetSGBLayout +00:3648 SetHPPal +00:3655 SetHPPal.done +00:36C8 NamesPointers +00:36E0 GetName +00:39BA PlayCry +00:3D86 WaitSFX +00:3D87 WaitSFX.wait +00:3DA5 MaxVolume +00:3DAB LowVolume +00:3DB1 VolumeOff +00:3DB6 UpdateSoundNTimes +00:3DBE FadeToMapMusic +00:3DDC FadeToMapMusic.dontfade +00:3DE1 PlayMapMusic +00:3E00 PlayMapMusic.dontplay +00:3E05 SpecialMapMusic +00:3E14 SpecialMapMusic.state2 +00:3E19 SpecialMapMusic.normal +00:3E1B GetMapMusic +00:3E2E GetMapMusic.unk_3E2E +00:3E32 Unk_3E32 +01:4031 Function_4031 +01:53CC MainMenu +01:5D27 Function_5d27 +01:6114 TitleScreenInputAndTimeout +01:6445 Function_6445 +01:66B1 Function_66b1 +01:6713 Function_6713 +02:4786 Function_8786 +02:4856 DecompTownMapTilemap +02:48DA DecompTownMapTilemap.tilemap +02:4C7C DrawMap +02:4DC2 TownMapGfx +02:4F32 PokegearRadioGfx +02:528B Function_928b +02:5695 CheckSGB +02:5695 Function_9695 +03:4791 DebugWarp +03:479F DebugWarp.Destinations +03:4AA1 AddItemToInventory_ +03:4D33 Function_cd33 +03:4D6F Function_cd6f +03:4DE3 Function_cde3 +03:4DE3 Function_cde3_2 +03:4DE3 Function_cde3_3 +03:4DF9 Function_cdf9 +03:4E10 Function_ce10 +03:4E10 Function_ce10_2 +03:4E3C Function_ce3c +03:4E7C Function_ce7c +03:5886 Function_d886 +03:5A28 Function_da28 +03:5A4F Function_da4f +03:5AC8 Function_dac8 +03:5C16 Function_dc16 +03:5CFC Function_dcfc +03:5D5C Function_dd5c +03:5E79 Function_de79 +03:5F7D Function_df7d +03:5F91 Function_df91 +04:528F Function_1128f +04:52C1 Function_112c1 +04:5677 DoPlayerMovement +04:5DBE DisplayStartMenu +04:640B Function_1240b +04:6C58 CheckRegisteredItem +05:43E0 Function_143e0 +05:457A Function_1457a +05:45B8 Function_145b8 +05:45DE Function_145de +05:46DC Function_146dc +0A:4C98 Function_28c98 +0A:4D6E Function_28d6e +0A:4DA4 Function_28da4 +0B:5663 Function_2d663 +0E:4B78 LoadTrainerClassName +0E:4BA0 LoadTrainerClassName.got_name +0E:4BA9 LoadTrainerClass +0F:508C Function_3d08c +0F:55CE Function_3d5ce +0F:567C Function_3d67c +0F:61A4 Function_3e1a4 +0F:6874 Function_3e874 +0F:691E Function_3e91e +0F:6963 Function_3e963 +0F:6F19 Function_3ef19 +0F:7019 Function_3f019 +0F:704A Function_3f04a +0F:7068 Function_3f068 +10:4000 Function_40000 +10:40A6 ShowPokedexMenu +10:4AC7 Function_40ac7 +10:4B5C Function_40b5c +10:5FA1 Function_41fa1 +10:61F8 Function_421f8 +10:6252 Function_42252 +14:4000 Function_50000 +14:4073 Function_50073 +14:40A0 Function_500a0 +14:40C6 Function_500c6 +14:4244 Function_50244 +14:4248 Function_50248 +14:42B5 Function_502b5 +14:469E Function_5069e +14:46D4 Function_506d4 +14:4771 Function_50771 +14:4774 Function_50774 +14:481F Function_5081f +14:48C4 Function_508c4 +14:4B92 Function_50b92 +14:4BCD Function_50bcd +14:4BFE Function_50bfe +14:4ED9 Function_50ed9 +23:4000 AnimateTilesetImpl +23:4349 OverworldFadeOut +23:44BE Function_8c4be +23:4940 Function_8c940 +23:49C6 Function_8c9c6 +23:60CC MenuMonIconGfx +24:4000 SetClockDialog +24:4239 SlotMachineGame +32:4000 Function_c8000 +32:76FF Function_cb6ff +32:7710 Function_cb710 +32:7733 Function_cb733 +33:4000 Function_cc000 +33:4000 Function_cc000_2 +33:4001 Function_cc001 +3A:4D9D _PlayCryHeader +3A:4E22 _PlaySFX +3A:4F11 LoadChannel +3A:4F6C LoadMusicByte +3A:52C7 Music +3F:40E9 InGameDebugMenu +3F:5B66 Function_fdb66 +3F:64CE MonsterTest +3F:654E PicTest +3F:6750 PicTestMenu +3F:6755 PicTestMenu.loop +00:C5E8 wMapScriptNumber +00:CA22 wTrainerClass +00:CBF2 wWindowData +00:CBF2 wWindowStackPointer +00:CC02 wMenuDataHeader +00:CC12 wMenuData2 +00:CC22 wMenuData3 +00:CDBE wTargetMapUnk +00:CDBF wTargetMapGroup +00:CDC0 wTargetMapId +00:CE67 wPlayerName +01:D165 wTMCounts +01:D19E wItems +01:D258 wRivalName +01:D264 wPlayerBikeSurfState +01:D656 wMapGroup +01:D657 wMapId +01:D66A wMapScriptPtr +01:D7D2 wPartyMonOT +01:DA3B wUnk_DA3B diff --git a/shim_gold.sym b/shim_gold.sym deleted file mode 100644 index 7fa5eee..0000000 --- a/shim_gold.sym +++ /dev/null @@ -1,183 +0,0 @@ -00:032B UpdateTimeOfDayPalettes -00:0436 RTC -00:051C Reset -00:0D0A LoadFont -00:0D1A LoadFontExtra -00:0E2A ClearTileMap -00:0E3D DrawTextBox -00:0E93 PlaceString -00:0E94 PlaceNextChar -00:0E9D CheckDict -00:1D49 LoadMenuHeader -00:1E58 OpenMenu -00:1F9E ClearWindowData -00:1FCC ClearWindowData.bytefill -00:20E1 RunMapScript -00:230E LoadMapWarp -00:23C7 OverworldFadeIn -00:2BC9 StartMenuCheck -00:3234 Random -00:35E5 WaitBGMap -00:35EF SetPalettes -00:35F8 ClearPalettes -00:3600 GetMemSGBLayout -00:3602 GetSGBLayout -00:360C SetHPPal -00:3619 SetHPPal.done -00:368C NamesPointers -00:36A4 GetName -00:397E PlayCry -00:3D4A WaitSFX -00:3D4B WaitSFX.wait -00:3D69 MaxVolume -00:3D6F LowVolume -00:3D75 VolumeOff -00:3D7A UpdateSoundNTimes -00:3D82 FadeToMapMusic -00:3DA0 FadeToMapMusic.dontfade -00:3DA5 PlayMapMusic -00:3DC4 PlayMapMusic.dontplay -00:3DC9 SpecialMapMusic -00:3DD8 SpecialMapMusic.state2 -00:3DDD SpecialMapMusic.normal -00:3DDF GetMapMusic -00:3DF2 GetMapMusic.unk_3E2E -00:3DFE Unk_3E32 -01:4031 Function_4031 -01:53CC MainMenu -01:5D27 Function_5d27 -01:6114 TitleScreenInputAndTimeout -01:6442 Function_6445 -01:66AE Function_66b1 -01:6710 Function_6713 -02:4786 Function_8786 -02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4C7C DrawMap -02:4DC2 TownMapGfx -02:4F32 PokegearRadioGfx -02:528B Function_928b -02:5695 CheckSGB -02:5695 Function_9695 -03:4791 DebugWarp -03:479F DebugWarp.Destinations -03:4A89 AddItemToInventory_ -03:4D1B Function_cd33 -03:4D57 Function_cd6f -03:4DCB Function_cde3 -03:4DCB Function_cde3_2 -03:4DCB Function_cde3_3 -03:4DE1 Function_cdf9 -03:4DF8 Function_ce10 -03:4DF8 Function_ce10_2 -03:4E24 Function_ce3c -03:4E64 Function_ce7c -03:586E Function_d886 -03:5A10 Function_da28 -03:5A37 Function_da4f -03:5AB0 Function_dac8 -03:5BFE Function_dc16 -03:5CE4 Function_dcfc -03:5D44 Function_dd5c -03:5E61 Function_de79 -03:5F65 Function_df7d -03:5F79 Function_df91 -04:528F Function_1128f -04:52C1 Function_112c1 -04:5677 DoPlayerMovement -04:5DBE DisplayStartMenu -04:640B Function_1240b -04:6C58 CheckRegisteredItem -05:43E0 Function_143e0 -05:457A Function_1457a -05:45B8 Function_145b8 -05:45DE Function_145de -05:46DC Function_146dc -0A:4C98 Function_28c98 -0A:4D6E Function_28d6e -0A:4DA4 Function_28da4 -0B:5663 Function_2d663 -0E:4B78 LoadTrainerClassName -0E:4BA0 LoadTrainerClassName.got_name -0E:4BA9 LoadTrainerClass -0F:508C Function_3d08c -0F:55CE Function_3d5ce -0F:567C Function_3d67c -0F:61A4 Function_3e1a4 -0F:6874 Function_3e874 -0F:691E Function_3e91e -0F:6963 Function_3e963 -0F:6F19 Function_3ef19 -0F:7019 Function_3f019 -0F:704A Function_3f04a -0F:7068 Function_3f068 -10:4000 Function_40000 -10:40A6 ShowPokedexMenu -10:4AC7 Function_40ac7 -10:4B5C Function_40b5c -10:5FA1 Function_41fa1 -10:61F8 Function_421f8 -10:6252 Function_42252 -14:4000 Function_50000 -14:4073 Function_50073 -14:40A0 Function_500a0 -14:40C6 Function_500c6 -14:4244 Function_50244 -14:4248 Function_50248 -14:42B5 Function_502b5 -14:469E Function_5069e -14:46D4 Function_506d4 -14:4771 Function_50771 -14:4774 Function_50774 -14:481F Function_5081f -14:48C4 Function_508c4 -14:4B92 Function_50b92 -14:4BCD Function_50bcd -14:4BFE Function_50bfe -14:4ED9 Function_50ed9 -23:4000 AnimateTilesetImpl -23:4349 OverworldFadeOut -23:44BE Function_8c4be -23:4940 Function_8c940 -23:49C6 Function_8c9c6 -23:60CC MenuMonIconGfx -24:4000 SetClockDialog -24:4239 SlotMachineGame -32:4000 Function_c8000 -32:76FF Function_cb6ff -32:7710 Function_cb710 -32:7733 Function_cb733 -33:4000 Function_cc000 -33:4000 Function_cc000_2 -33:4001 Function_cc001 -3A:4D9D _PlayCryHeader -3A:4E22 _PlaySFX -3A:4F11 LoadChannel -3A:4F6C LoadMusicByte -3A:52C7 Music -3F:40E9 InGameDebugMenu -3F:5B66 Function_fdb66 -3F:64CE MonsterTest -3F:654E PicTest -3F:6750 PicTestMenu -3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber -00:CA22 wTrainerClass -00:CBF2 wWindowData -00:CBF2 wWindowStackPointer -00:CC02 wMenuDataHeader -00:CC12 wMenuData2 -00:CC22 wMenuData3 -00:CDBE wTargetMapUnk -00:CDBF wTargetMapGroup -00:CDC0 wTargetMapId -00:CE67 wPlayerName -01:D165 wTMCounts -01:D19E wItems -01:D258 wRivalName -01:D264 wPlayerBikeSurfState -01:D656 wMapGroup -01:D657 wMapId -01:D66A wMapScriptPtr -01:D7D2 wPartyMonOT -01:DA3B wUnk_DA3B diff --git a/shim_gold_debug.sym b/shim_gold_debug.sym deleted file mode 100644 index a9891f6..0000000 --- a/shim_gold_debug.sym +++ /dev/null @@ -1,183 +0,0 @@ -00:032B UpdateTimeOfDayPalettes -00:0436 RTC -00:051C Reset -00:0D0A LoadFont -00:0D1A LoadFontExtra -00:0E2A ClearTileMap -00:0E3D DrawTextBox -00:0E93 PlaceString -00:0E94 PlaceNextChar -00:0E9D CheckDict -00:1D49 LoadMenuHeader -00:1E58 OpenMenu -00:1F9E ClearWindowData -00:1FCC ClearWindowData.bytefill -00:20FF RunMapScript -00:232C LoadMapWarp -00:23E5 OverworldFadeIn -00:2C05 StartMenuCheck -00:3270 Random -00:3621 WaitBGMap -00:362B SetPalettes -00:3634 ClearPalettes -00:363C GetMemSGBLayout -00:363E GetSGBLayout -00:3648 SetHPPal -00:3655 SetHPPal.done -00:36C8 NamesPointers -00:36E0 GetName -00:39BA PlayCry -00:3D86 WaitSFX -00:3D87 WaitSFX.wait -00:3DA5 MaxVolume -00:3DAB LowVolume -00:3DB1 VolumeOff -00:3DB6 UpdateSoundNTimes -00:3DBE FadeToMapMusic -00:3DDC FadeToMapMusic.dontfade -00:3DE1 PlayMapMusic -00:3E00 PlayMapMusic.dontplay -00:3E05 SpecialMapMusic -00:3E14 SpecialMapMusic.state2 -00:3E19 SpecialMapMusic.normal -00:3E1B GetMapMusic -00:3E2E GetMapMusic.unk_3E2E -00:3E32 Unk_3E32 -01:4031 Function_4031 -01:53CC MainMenu -01:5D27 Function_5d27 -01:6114 TitleScreenInputAndTimeout -01:6445 Function_6445 -01:66B1 Function_66b1 -01:6713 Function_6713 -02:4786 Function_8786 -02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4C7C DrawMap -02:4DC2 TownMapGfx -02:4F32 PokegearRadioGfx -02:528B Function_928b -02:5695 CheckSGB -02:5695 Function_9695 -03:4791 DebugWarp -03:479F DebugWarp.Destinations -03:4AA1 AddItemToInventory_ -03:4D33 Function_cd33 -03:4D6F Function_cd6f -03:4DE3 Function_cde3 -03:4DE3 Function_cde3_2 -03:4DE3 Function_cde3_3 -03:4DF9 Function_cdf9 -03:4E10 Function_ce10 -03:4E10 Function_ce10_2 -03:4E3C Function_ce3c -03:4E7C Function_ce7c -03:5886 Function_d886 -03:5A28 Function_da28 -03:5A4F Function_da4f -03:5AC8 Function_dac8 -03:5C16 Function_dc16 -03:5CFC Function_dcfc -03:5D5C Function_dd5c -03:5E79 Function_de79 -03:5F7D Function_df7d -03:5F91 Function_df91 -04:528F Function_1128f -04:52C1 Function_112c1 -04:5677 DoPlayerMovement -04:5DBE DisplayStartMenu -04:640B Function_1240b -04:6C58 CheckRegisteredItem -05:43E0 Function_143e0 -05:457A Function_1457a -05:45B8 Function_145b8 -05:45DE Function_145de -05:46DC Function_146dc -0A:4C98 Function_28c98 -0A:4D6E Function_28d6e -0A:4DA4 Function_28da4 -0B:5663 Function_2d663 -0E:4B78 LoadTrainerClassName -0E:4BA0 LoadTrainerClassName.got_name -0E:4BA9 LoadTrainerClass -0F:508C Function_3d08c -0F:55CE Function_3d5ce -0F:567C Function_3d67c -0F:61A4 Function_3e1a4 -0F:6874 Function_3e874 -0F:691E Function_3e91e -0F:6963 Function_3e963 -0F:6F19 Function_3ef19 -0F:7019 Function_3f019 -0F:704A Function_3f04a -0F:7068 Function_3f068 -10:4000 Function_40000 -10:40A6 ShowPokedexMenu -10:4AC7 Function_40ac7 -10:4B5C Function_40b5c -10:5FA1 Function_41fa1 -10:61F8 Function_421f8 -10:6252 Function_42252 -14:4000 Function_50000 -14:4073 Function_50073 -14:40A0 Function_500a0 -14:40C6 Function_500c6 -14:4244 Function_50244 -14:4248 Function_50248 -14:42B5 Function_502b5 -14:469E Function_5069e -14:46D4 Function_506d4 -14:4771 Function_50771 -14:4774 Function_50774 -14:481F Function_5081f -14:48C4 Function_508c4 -14:4B92 Function_50b92 -14:4BCD Function_50bcd -14:4BFE Function_50bfe -14:4ED9 Function_50ed9 -23:4000 AnimateTilesetImpl -23:4349 OverworldFadeOut -23:44BE Function_8c4be -23:4940 Function_8c940 -23:49C6 Function_8c9c6 -23:60CC MenuMonIconGfx -24:4000 SetClockDialog -24:4239 SlotMachineGame -32:4000 Function_c8000 -32:76FF Function_cb6ff -32:7710 Function_cb710 -32:7733 Function_cb733 -33:4000 Function_cc000 -33:4000 Function_cc000_2 -33:4001 Function_cc001 -3A:4D9D _PlayCryHeader -3A:4E22 _PlaySFX -3A:4F11 LoadChannel -3A:4F6C LoadMusicByte -3A:52C7 Music -3F:40E9 InGameDebugMenu -3F:5B66 Function_fdb66 -3F:64CE MonsterTest -3F:654E PicTest -3F:6750 PicTestMenu -3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber -00:CA22 wTrainerClass -00:CBF2 wWindowData -00:CBF2 wWindowStackPointer -00:CC02 wMenuDataHeader -00:CC12 wMenuData2 -00:CC22 wMenuData3 -00:CDBE wTargetMapUnk -00:CDBF wTargetMapGroup -00:CDC0 wTargetMapId -00:CE67 wPlayerName -01:D165 wTMCounts -01:D19E wItems -01:D258 wRivalName -01:D264 wPlayerBikeSurfState -01:D656 wMapGroup -01:D657 wMapId -01:D66A wMapScriptPtr -01:D7D2 wPartyMonOT -01:DA3B wUnk_DA3B diff --git a/shim_silver.sym b/shim_silver.sym deleted file mode 100644 index 7fa5eee..0000000 --- a/shim_silver.sym +++ /dev/null @@ -1,183 +0,0 @@ -00:032B UpdateTimeOfDayPalettes -00:0436 RTC -00:051C Reset -00:0D0A LoadFont -00:0D1A LoadFontExtra -00:0E2A ClearTileMap -00:0E3D DrawTextBox -00:0E93 PlaceString -00:0E94 PlaceNextChar -00:0E9D CheckDict -00:1D49 LoadMenuHeader -00:1E58 OpenMenu -00:1F9E ClearWindowData -00:1FCC ClearWindowData.bytefill -00:20E1 RunMapScript -00:230E LoadMapWarp -00:23C7 OverworldFadeIn -00:2BC9 StartMenuCheck -00:3234 Random -00:35E5 WaitBGMap -00:35EF SetPalettes -00:35F8 ClearPalettes -00:3600 GetMemSGBLayout -00:3602 GetSGBLayout -00:360C SetHPPal -00:3619 SetHPPal.done -00:368C NamesPointers -00:36A4 GetName -00:397E PlayCry -00:3D4A WaitSFX -00:3D4B WaitSFX.wait -00:3D69 MaxVolume -00:3D6F LowVolume -00:3D75 VolumeOff -00:3D7A UpdateSoundNTimes -00:3D82 FadeToMapMusic -00:3DA0 FadeToMapMusic.dontfade -00:3DA5 PlayMapMusic -00:3DC4 PlayMapMusic.dontplay -00:3DC9 SpecialMapMusic -00:3DD8 SpecialMapMusic.state2 -00:3DDD SpecialMapMusic.normal -00:3DDF GetMapMusic -00:3DF2 GetMapMusic.unk_3E2E -00:3DFE Unk_3E32 -01:4031 Function_4031 -01:53CC MainMenu -01:5D27 Function_5d27 -01:6114 TitleScreenInputAndTimeout -01:6442 Function_6445 -01:66AE Function_66b1 -01:6710 Function_6713 -02:4786 Function_8786 -02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4C7C DrawMap -02:4DC2 TownMapGfx -02:4F32 PokegearRadioGfx -02:528B Function_928b -02:5695 CheckSGB -02:5695 Function_9695 -03:4791 DebugWarp -03:479F DebugWarp.Destinations -03:4A89 AddItemToInventory_ -03:4D1B Function_cd33 -03:4D57 Function_cd6f -03:4DCB Function_cde3 -03:4DCB Function_cde3_2 -03:4DCB Function_cde3_3 -03:4DE1 Function_cdf9 -03:4DF8 Function_ce10 -03:4DF8 Function_ce10_2 -03:4E24 Function_ce3c -03:4E64 Function_ce7c -03:586E Function_d886 -03:5A10 Function_da28 -03:5A37 Function_da4f -03:5AB0 Function_dac8 -03:5BFE Function_dc16 -03:5CE4 Function_dcfc -03:5D44 Function_dd5c -03:5E61 Function_de79 -03:5F65 Function_df7d -03:5F79 Function_df91 -04:528F Function_1128f -04:52C1 Function_112c1 -04:5677 DoPlayerMovement -04:5DBE DisplayStartMenu -04:640B Function_1240b -04:6C58 CheckRegisteredItem -05:43E0 Function_143e0 -05:457A Function_1457a -05:45B8 Function_145b8 -05:45DE Function_145de -05:46DC Function_146dc -0A:4C98 Function_28c98 -0A:4D6E Function_28d6e -0A:4DA4 Function_28da4 -0B:5663 Function_2d663 -0E:4B78 LoadTrainerClassName -0E:4BA0 LoadTrainerClassName.got_name -0E:4BA9 LoadTrainerClass -0F:508C Function_3d08c -0F:55CE Function_3d5ce -0F:567C Function_3d67c -0F:61A4 Function_3e1a4 -0F:6874 Function_3e874 -0F:691E Function_3e91e -0F:6963 Function_3e963 -0F:6F19 Function_3ef19 -0F:7019 Function_3f019 -0F:704A Function_3f04a -0F:7068 Function_3f068 -10:4000 Function_40000 -10:40A6 ShowPokedexMenu -10:4AC7 Function_40ac7 -10:4B5C Function_40b5c -10:5FA1 Function_41fa1 -10:61F8 Function_421f8 -10:6252 Function_42252 -14:4000 Function_50000 -14:4073 Function_50073 -14:40A0 Function_500a0 -14:40C6 Function_500c6 -14:4244 Function_50244 -14:4248 Function_50248 -14:42B5 Function_502b5 -14:469E Function_5069e -14:46D4 Function_506d4 -14:4771 Function_50771 -14:4774 Function_50774 -14:481F Function_5081f -14:48C4 Function_508c4 -14:4B92 Function_50b92 -14:4BCD Function_50bcd -14:4BFE Function_50bfe -14:4ED9 Function_50ed9 -23:4000 AnimateTilesetImpl -23:4349 OverworldFadeOut -23:44BE Function_8c4be -23:4940 Function_8c940 -23:49C6 Function_8c9c6 -23:60CC MenuMonIconGfx -24:4000 SetClockDialog -24:4239 SlotMachineGame -32:4000 Function_c8000 -32:76FF Function_cb6ff -32:7710 Function_cb710 -32:7733 Function_cb733 -33:4000 Function_cc000 -33:4000 Function_cc000_2 -33:4001 Function_cc001 -3A:4D9D _PlayCryHeader -3A:4E22 _PlaySFX -3A:4F11 LoadChannel -3A:4F6C LoadMusicByte -3A:52C7 Music -3F:40E9 InGameDebugMenu -3F:5B66 Function_fdb66 -3F:64CE MonsterTest -3F:654E PicTest -3F:6750 PicTestMenu -3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber -00:CA22 wTrainerClass -00:CBF2 wWindowData -00:CBF2 wWindowStackPointer -00:CC02 wMenuDataHeader -00:CC12 wMenuData2 -00:CC22 wMenuData3 -00:CDBE wTargetMapUnk -00:CDBF wTargetMapGroup -00:CDC0 wTargetMapId -00:CE67 wPlayerName -01:D165 wTMCounts -01:D19E wItems -01:D258 wRivalName -01:D264 wPlayerBikeSurfState -01:D656 wMapGroup -01:D657 wMapId -01:D66A wMapScriptPtr -01:D7D2 wPartyMonOT -01:DA3B wUnk_DA3B diff --git a/shim_silver_debug.sym b/shim_silver_debug.sym deleted file mode 100644 index a9891f6..0000000 --- a/shim_silver_debug.sym +++ /dev/null @@ -1,183 +0,0 @@ -00:032B UpdateTimeOfDayPalettes -00:0436 RTC -00:051C Reset -00:0D0A LoadFont -00:0D1A LoadFontExtra -00:0E2A ClearTileMap -00:0E3D DrawTextBox -00:0E93 PlaceString -00:0E94 PlaceNextChar -00:0E9D CheckDict -00:1D49 LoadMenuHeader -00:1E58 OpenMenu -00:1F9E ClearWindowData -00:1FCC ClearWindowData.bytefill -00:20FF RunMapScript -00:232C LoadMapWarp -00:23E5 OverworldFadeIn -00:2C05 StartMenuCheck -00:3270 Random -00:3621 WaitBGMap -00:362B SetPalettes -00:3634 ClearPalettes -00:363C GetMemSGBLayout -00:363E GetSGBLayout -00:3648 SetHPPal -00:3655 SetHPPal.done -00:36C8 NamesPointers -00:36E0 GetName -00:39BA PlayCry -00:3D86 WaitSFX -00:3D87 WaitSFX.wait -00:3DA5 MaxVolume -00:3DAB LowVolume -00:3DB1 VolumeOff -00:3DB6 UpdateSoundNTimes -00:3DBE FadeToMapMusic -00:3DDC FadeToMapMusic.dontfade -00:3DE1 PlayMapMusic -00:3E00 PlayMapMusic.dontplay -00:3E05 SpecialMapMusic -00:3E14 SpecialMapMusic.state2 -00:3E19 SpecialMapMusic.normal -00:3E1B GetMapMusic -00:3E2E GetMapMusic.unk_3E2E -00:3E32 Unk_3E32 -01:4031 Function_4031 -01:53CC MainMenu -01:5D27 Function_5d27 -01:6114 TitleScreenInputAndTimeout -01:6445 Function_6445 -01:66B1 Function_66b1 -01:6713 Function_6713 -02:4786 Function_8786 -02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4C7C DrawMap -02:4DC2 TownMapGfx -02:4F32 PokegearRadioGfx -02:528B Function_928b -02:5695 CheckSGB -02:5695 Function_9695 -03:4791 DebugWarp -03:479F DebugWarp.Destinations -03:4AA1 AddItemToInventory_ -03:4D33 Function_cd33 -03:4D6F Function_cd6f -03:4DE3 Function_cde3 -03:4DE3 Function_cde3_2 -03:4DE3 Function_cde3_3 -03:4DF9 Function_cdf9 -03:4E10 Function_ce10 -03:4E10 Function_ce10_2 -03:4E3C Function_ce3c -03:4E7C Function_ce7c -03:5886 Function_d886 -03:5A28 Function_da28 -03:5A4F Function_da4f -03:5AC8 Function_dac8 -03:5C16 Function_dc16 -03:5CFC Function_dcfc -03:5D5C Function_dd5c -03:5E79 Function_de79 -03:5F7D Function_df7d -03:5F91 Function_df91 -04:528F Function_1128f -04:52C1 Function_112c1 -04:5677 DoPlayerMovement -04:5DBE DisplayStartMenu -04:640B Function_1240b -04:6C58 CheckRegisteredItem -05:43E0 Function_143e0 -05:457A Function_1457a -05:45B8 Function_145b8 -05:45DE Function_145de -05:46DC Function_146dc -0A:4C98 Function_28c98 -0A:4D6E Function_28d6e -0A:4DA4 Function_28da4 -0B:5663 Function_2d663 -0E:4B78 LoadTrainerClassName -0E:4BA0 LoadTrainerClassName.got_name -0E:4BA9 LoadTrainerClass -0F:508C Function_3d08c -0F:55CE Function_3d5ce -0F:567C Function_3d67c -0F:61A4 Function_3e1a4 -0F:6874 Function_3e874 -0F:691E Function_3e91e -0F:6963 Function_3e963 -0F:6F19 Function_3ef19 -0F:7019 Function_3f019 -0F:704A Function_3f04a -0F:7068 Function_3f068 -10:4000 Function_40000 -10:40A6 ShowPokedexMenu -10:4AC7 Function_40ac7 -10:4B5C Function_40b5c -10:5FA1 Function_41fa1 -10:61F8 Function_421f8 -10:6252 Function_42252 -14:4000 Function_50000 -14:4073 Function_50073 -14:40A0 Function_500a0 -14:40C6 Function_500c6 -14:4244 Function_50244 -14:4248 Function_50248 -14:42B5 Function_502b5 -14:469E Function_5069e -14:46D4 Function_506d4 -14:4771 Function_50771 -14:4774 Function_50774 -14:481F Function_5081f -14:48C4 Function_508c4 -14:4B92 Function_50b92 -14:4BCD Function_50bcd -14:4BFE Function_50bfe -14:4ED9 Function_50ed9 -23:4000 AnimateTilesetImpl -23:4349 OverworldFadeOut -23:44BE Function_8c4be -23:4940 Function_8c940 -23:49C6 Function_8c9c6 -23:60CC MenuMonIconGfx -24:4000 SetClockDialog -24:4239 SlotMachineGame -32:4000 Function_c8000 -32:76FF Function_cb6ff -32:7710 Function_cb710 -32:7733 Function_cb733 -33:4000 Function_cc000 -33:4000 Function_cc000_2 -33:4001 Function_cc001 -3A:4D9D _PlayCryHeader -3A:4E22 _PlaySFX -3A:4F11 LoadChannel -3A:4F6C LoadMusicByte -3A:52C7 Music -3F:40E9 InGameDebugMenu -3F:5B66 Function_fdb66 -3F:64CE MonsterTest -3F:654E PicTest -3F:6750 PicTestMenu -3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber -00:CA22 wTrainerClass -00:CBF2 wWindowData -00:CBF2 wWindowStackPointer -00:CC02 wMenuDataHeader -00:CC12 wMenuData2 -00:CC22 wMenuData3 -00:CDBE wTargetMapUnk -00:CDBF wTargetMapGroup -00:CDC0 wTargetMapId -00:CE67 wPlayerName -01:D165 wTMCounts -01:D19E wItems -01:D258 wRivalName -01:D264 wPlayerBikeSurfState -01:D656 wMapGroup -01:D657 wMapId -01:D66A wMapScriptPtr -01:D7D2 wPartyMonOT -01:DA3B wUnk_DA3B diff --git a/sort_sym.py b/sort_sym.py deleted file mode 100644 index f4674e8..0000000 --- a/sort_sym.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/python3.6 - -import argparse -from functools import total_ordering - - -@total_ordering -class GBSection: - ROM0 = 0 - ROMX = 1 - VRAM = 2 - SRAM = 3 - WRAM0 = 4 - WRAMX = 5 - - __thresholds__ = (0x4000, 0x8000, 0xa000, 0xc000, 0xd000, 0xe000) - - def __init__(self, addr): - self.ident = sum(x <= addr for x in self.__thresholds__) - - @property - def start(self): - if self.ident == self.ROM0: - return 0 - return self.__thresholds__[self.ident - 1] - - @property - def end(self): - return self.__thresholds__[self.ident] - - def __eq__(self, other): - return self.ident == other.ident - - def __lt__(self, other): - return self.ident < other.ident - - -def read_sym(filename): - with open(filename) as fp: - for line in fp: - try: - line, *rest = line.split(';') - pointer, name = line.split() - bank, addr = (int(part, 16) for part in pointer.split(':')) - yield bank, addr, name - except ValueError: - continue - - -def sort_key(args): - bank, addr, name = args - return GBSection(addr), bank, addr, name - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('symfile') - args = parser.parse_args() - - symbols = list(read_sym(args.symfile)) - symbols.sort(key=sort_key) - with open(args.symfile, 'w') as fp: - for bank, addr, name in symbols: - print(f'{bank:02X}:{addr:04X}', name, file=fp) - - -if __name__ == '__main__': - main() diff --git a/tools/sort_sym.py b/tools/sort_sym.py new file mode 100644 index 0000000..f4674e8 --- /dev/null +++ b/tools/sort_sym.py @@ -0,0 +1,68 @@ +#!/usr/bin/python3.6 + +import argparse +from functools import total_ordering + + +@total_ordering +class GBSection: + ROM0 = 0 + ROMX = 1 + VRAM = 2 + SRAM = 3 + WRAM0 = 4 + WRAMX = 5 + + __thresholds__ = (0x4000, 0x8000, 0xa000, 0xc000, 0xd000, 0xe000) + + def __init__(self, addr): + self.ident = sum(x <= addr for x in self.__thresholds__) + + @property + def start(self): + if self.ident == self.ROM0: + return 0 + return self.__thresholds__[self.ident - 1] + + @property + def end(self): + return self.__thresholds__[self.ident] + + def __eq__(self, other): + return self.ident == other.ident + + def __lt__(self, other): + return self.ident < other.ident + + +def read_sym(filename): + with open(filename) as fp: + for line in fp: + try: + line, *rest = line.split(';') + pointer, name = line.split() + bank, addr = (int(part, 16) for part in pointer.split(':')) + yield bank, addr, name + except ValueError: + continue + + +def sort_key(args): + bank, addr, name = args + return GBSection(addr), bank, addr, name + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('symfile') + args = parser.parse_args() + + symbols = list(read_sym(args.symfile)) + symbols.sort(key=sort_key) + with open(args.symfile, 'w') as fp: + for bank, addr, name in symbols: + print(f'{bank:02X}:{addr:04X}', name, file=fp) + + +if __name__ == '__main__': + main() -- cgit v1.2.3