From 0ce725cb1c0d00c516302275a4b34989a93c6718 Mon Sep 17 00:00:00 2001 From: TeganGibby <32184356+TeganGibby@users.noreply.github.com> Date: Sat, 2 Jun 2018 20:46:45 -0700 Subject: additional documentation Compared to retail Gold disassembly --- engine/menu/main_menu.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 536123f..fdc7a9c 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -8,11 +8,11 @@ MainMenuHeader: dw .data db 1 ; default option -.data +.data ; 01:5420 db $80 db 0 ; number of options - dw $5461 + dw $5461 ; MainMenuItems in retail db $8a, $1f dw MainMenuStrings -- cgit v1.2.3 From fd33b64f69bff72d0d5c0e5cc064048db79c1451 Mon Sep 17 00:00:00 2001 From: TeganGibby <32184356+TeganGibby@users.noreply.github.com> Date: Sat, 2 Jun 2018 21:04:31 -0700 Subject: added detail on main menu functions --- engine/menu/main_menu.asm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index fdc7a9c..45e441e 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -23,3 +23,32 @@ MainMenuStrings: ; 01:5428 db "#を あそぶ@" db "じかんセット@" ; 01:5457 + +CONTINUE EQU 0 +NEW_GAME EQU 1 +OPTION EQU 2 +PLAY_POKEMON EQU 3 +SET_TIME EQU 4 + +MainMenuItems: + db 2 + db NEW_GAME + db OPTION + db -1 + + db 3 + db CONTINUE + db NEW_GAME + db OPTION + db -1 + + db 2 + db PLAY_POKEMON + db OPTION + db -1 + + db 3 + db PLAY_POKEMON + db OPTION + db SET_TIME + db -1 -- cgit v1.2.3 From c9274c2e55ccc20b528e75ebcb8bd5a06cceebc3 Mon Sep 17 00:00:00 2001 From: TeganGibby <32184356+TeganGibby@users.noreply.github.com> Date: Sat, 2 Jun 2018 21:34:06 -0700 Subject: comments to explain duplicates --- engine/menu/main_menu.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 45e441e..ca6b292 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -42,12 +42,12 @@ MainMenuItems: db OPTION db -1 - db 2 + db 2 ; takes priority over the former db PLAY_POKEMON db OPTION db -1 - db 3 + db 3 ; takes priority over the former db PLAY_POKEMON db OPTION db SET_TIME -- cgit v1.2.3 From d80330b122707d513759f2c00b9ee36e2e07bf1a Mon Sep 17 00:00:00 2001 From: IIMarckus Date: Sat, 2 Jun 2018 16:53:49 -0600 Subject: Add more trainer leftovers from Blue. Nothing interesting here. --- data/trainers/parties.asm | 115 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 105 insertions(+), 10 deletions(-) diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 94fd4a5..c264733 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -16,8 +16,21 @@ INCLUDE "data/trainers/party_pointers.inc" ; TODO: decode all data HayatoGroup:: +; Leftover Youngster data from Red/Blue + db 11, MON_KORATTA, MON_ARBO, 0 + db 14, MON_ONISUZUME, 0 + db 10, MON_KORATTA, MON_KORATTA, MON_ZUBAT, 0 + db 14, MON_KORATTA, MON_ARBO, MON_ZUBAT, 0 + db 15, MON_KORATTA, MON_ONISUZUME, 0 + db 17, MON_YADON, 0 + db 14, MON_ARBO, MON_SAND, 0 + db 21, MON_NIDORAN_M, 0 + db 21, MON_ARBO, 0 + db 19, MON_SAND, MON_ZUBAT, 0 + db 17, MON_KORATTA, MON_KORATTA, MON_RATTA, 0 + db 18, MON_NIDORAN_M, MON_NIDORINO, 0 + db 17, MON_ONISUZUME, MON_KORATTA, MON_KORATTA, MON_ONISUZUME, 0 -SECTION "Trainer Parties 1 TEMPORARY", ROMX[$51BF],BANK[$E] AkaneGroup:: BugCatcherBoyGroup:: ; BUG_CATCHER_BOY_JUNICHI @@ -97,31 +110,114 @@ OkeraGroup:: db 19, MON_KORATTA, MON_DIGDA, MON_ARBO, MON_SAND, 0 db 29, MON_NIDORAN_M, MON_NIDORINO, 0 -SECTION "Trainer Parties 4 TEMPORARY", ROMX[$52B4],BANK[$E] MikanGroup:: +; Leftover Jr.Trainer♀ data from Red/Blue + db 19, MON_TOSAKINTO, 0 + db 16, MON_KORATTA, MON_PIKACHU, 0 + db 16, MON_POPPO, MON_POPPO, MON_POPPO, 0 + db 22, MON_FUSHIGIDANE, 0 + db 18, MON_NAZONOKUSA, MON_MADATSUBOMI, MON_NAZONOKUSA, MON_MADATSUBOMI, 0 + db 23, MON_NYARTH, 0 + db 20, MON_PIKACHU, MON_PIPPI, 0 + db 21, MON_POPPO, MON_PIGEON, 0 + db 21, MON_PURIN, MON_POPPO, MON_NYARTH, 0 + db 22, MON_NAZONOKUSA, MON_FUSHIGIDANE, 0 + db 24, MON_FUSHIGIDANE, MON_FUSHIGISOU, 0 + db 24, MON_POPPO, MON_NYARTH, MON_KORATTA, MON_PIKACHU, MON_NYARTH, 0 + db 30, MON_NYOROMO, MON_NYOROMO, 0 + db 27, MON_POPPO, MON_NYARTH, MON_POPPO, MON_PIGEON, 0 + db 28, MON_TOSAKINTO, MON_NYOROMO, MON_TATTU, 0 + db 31, MON_TOSAKINTO, MON_AZUMAO, 0 + db 22, MON_MADATSUBOMI, MON_PIPPI, 0 + db 20, MON_NYARTH, MON_NAZONOKUSA, MON_POPPO, 0 + db 19, MON_POPPO, MON_KORATTA, MON_KORATTA, MON_MADATSUBOMI, 0 + db 28, MON_KUSAIHANA, MON_NAZONOKUSA, MON_NAZONOKUSA, 0 + db 29, MON_PIKACHU, MON_RAICHU, 0 + db 33, MON_PIPPI, 0 + db 29, MON_MADATSUBOMI, MON_NAZONOKUSA, MON_MONJARA, 0 + db 30, MON_MENOKURAGE, MON_TATTU, MON_PAWOU, 0 -SECTION "Trainer Parties 5 TEMPORARY", ROMX[$5320],BANK[$E] BlueGroup:: +; Leftover Pokémaniac data from Red/Blue + db 30, MON_SIHORN, MON_BERORINGA, 0 + db 20, MON_KARAKARA, MON_YADON, 0 + db 20, MON_YADON, MON_YADON, MON_YADON, 0 + db 22, MON_HITOKAGE, MON_KARAKARA, 0 + db 25, MON_YADON, 0 + db 40, MON_LIZARDO, MON_LAPLACE, MON_BERORINGA, 0 + db 23, MON_KARAKARA, MON_YADON, 0 -SECTION "Trainer Parties 6 TEMPORARY", ROMX[$533D],BANK[$E] GamaGroup:: +; Leftover Super Nerd data from Red/Blue + db 11, MON_COIL, MON_BIRIRIDAMA, 0 + db 12, MON_BETBETER, MON_BIRIRIDAMA, MON_DOGARS, 0 + db 20, MON_BIRIRIDAMA, MON_DOGARS, MON_BIRIRIDAMA, MON_COIL, 0 + db 22, MON_BETBETER, MON_BETBETON, MON_BETBETER, 0 + db 26, MON_DOGARS, 0 + db 22, MON_DOGARS, MON_COIL, MON_MATADOGAS, 0 + db 20, MON_COIL, MON_COIL, MON_DOGARS, MON_COIL, 0 + db 24, MON_COIL, MON_BIRIRIDAMA, 0 + db 36, MON_ROKON, MON_ROKON, MON_KYUKON, 0 + db 34, MON_PONYTA, MON_HITOKAGE, MON_ROKON, MON_GARDIE, 0 + db 41, MON_GALLOP, 0 + db 37, MON_GARDIE, MON_ROKON, 0 -SECTION "Trainer Parties 7 TEMPORARY", ROMX[$5375],BANK[$E] RivalGroup:: db 5, DEX_KURUSU, 0 db 5, DEX_HAPPA, 0 db 5, DEX_HONOGUMA, 0 +; Leftover Hiker data from Red/Blue + db 10, MON_ISITSUBUTE, MON_ISITSUBUTE, MON_IWARK, 0 + db 15, MON_WANRIKY, MON_ISITSUBUTE, 0 + db 13, MON_ISITSUBUTE, MON_ISITSUBUTE, MON_WANRIKY, MON_ISITSUBUTE, 0 + db 17, MON_IWARK, 0 + db 21, MON_ISITSUBUTE, MON_IWARK, 0 + db 20, MON_ISITSUBUTE, MON_WANRIKY, MON_ISITSUBUTE, 0 + db 21, MON_ISITSUBUTE, MON_IWARK, 0 + db 19, MON_IWARK, MON_GOLONE, 0 + db 21, MON_ISITSUBUTE, MON_ISITSUBUTE, MON_GOLONE, 0 + db 25, MON_ISITSUBUTE, 0 + db 20, MON_WANRIKY, MON_IWARK, 0 + db 19, MON_ISITSUBUTE, MON_WANRIKY, MON_ISITSUBUTE, MON_ISITSUBUTE, 0 + db 20, MON_IWARK, MON_IWARK, MON_ISITSUBUTE, 0 + db 21, MON_ISITSUBUTE, MON_GOLONE, 0 -SECTION "Trainer Parties 8 TEMPORARY", ROMX[$53BC],BANK[$E] OkidoGroup:: +; Leftover Biker data from Red/Blue + db 28, MON_DOGARS, MON_DOGARS, MON_DOGARS, 0 + db 29, MON_DOGARS, MON_BETBETER, 0 + db 25, MON_DOGARS, MON_DOGARS, MON_MATADOGAS, MON_DOGARS, MON_BETBETER, 0 + db 28, MON_DOGARS, MON_BETBETER, MON_MATADOGAS, 0 + db 29, MON_BETBETER, MON_DOGARS, 0 + db 33, MON_MATADOGAS, 0 + db 26, MON_BETBETER, MON_BETBETER, MON_BETBETER, MON_BETBETER, 0 + db 28, MON_MATADOGAS, MON_DOGARS, MON_MATADOGAS, 0 + db 33, MON_BETBETON, 0 + db 29, MON_BIRIRIDAMA, MON_BIRIRIDAMA, 0 + db 29, MON_MATADOGAS, MON_BETBETON, 0 + db 25, MON_DOGARS, MON_MATADOGAS, MON_DOGARS, MON_DOGARS, MON_MATADOGAS, 0 + db 26, MON_DOGARS, MON_DOGARS, MON_BETBETER, MON_DOGARS, 0 + db 28, MON_BETBETER, MON_BETBETER, MON_DOGARS, 0 + db 29, MON_DOGARS, MON_BETBETON, 0 -SECTION "Trainer Parties 9 TEMPORARY", ROMX[$5404],BANK[$E] SakakiGroup:: +; Leftover Burglar data from Red/Blue + db 29, MON_GARDIE, MON_ROKON, 0 + db 33, MON_GARDIE, 0 + db 28, MON_ROKON, MON_HITOKAGE, MON_PONYTA, 0 + db 36, MON_GARDIE, MON_ROKON, MON_KYUKON, 0 + db 41, MON_PONYTA, 0 + db 37, MON_ROKON, MON_GARDIE, 0 + db 34, MON_HITOKAGE, MON_LIZARDO, 0 + db 38, MON_KYUKON, 0 + db 34, MON_GARDIE, MON_PONYTA, 0 -SECTION "Trainer Parties 10 TEMPORARY", ROMX[$5427],BANK[$E] ProtagonistGroup:: +; Leftover Engineer data from Red/Blue + db 21, MON_BIRIRIDAMA, MON_COIL, 0 + db 21, MON_COIL, 0 + db 18, MON_COIL, MON_COIL, MON_RARECOIL, 0 -SECTION "Trainer Parties 11 TEMPORARY", ROMX[$5433],BANK[$E] SibaGroup:: KasumiGroup:: FisherGroup:: @@ -248,7 +344,6 @@ BikerGroup:: db 38, MON_GHOST, 0 db 33, MON_GHOS, MON_GHOS, MON_GHOST, 0 -SECTION "Trainer Parties 31 TEMPORARY", ROMX[$5956],BANK[$E] RockClimberGroup:: ; Leftover Agatha data from Red/Blue db -1, 56, MON_GANGAR, 56, MON_GOLBAT, 55, MON_GHOST, 58, MON_ARBOK, 60, MON_GANGAR, 0 -- cgit v1.2.3 From ec704bfa38280c885a7fdf12795efa7c4b1b81c3 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Sun, 3 Jun 2018 14:40:54 +0200 Subject: Fix main menu items position --- engine/menu/main_menu.asm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index ca6b292..b1f01f8 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -24,6 +24,9 @@ MainMenuStrings: ; 01:5428 db "じかんセット@" ; 01:5457 + +SECTION "Main Menu Items", ROMX[$5461], BANK[$01] + CONTINUE EQU 0 NEW_GAME EQU 1 OPTION EQU 2 -- cgit v1.2.3 From f482d7fe1b68dc624f8f1944399ce1f3096a855f Mon Sep 17 00:00:00 2001 From: pfero Date: Sun, 3 Jun 2018 16:08:32 +0200 Subject: Tell the user to get baserom.gb if it doesn't exist. --- Makefile | 17 +++++++++++------ tools/sort_symfile.sh | 10 ++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100755 tools/sort_symfile.sh diff --git a/Makefile b/Makefile index c79484e..93bc43f 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ GFX := $(patsubst %.png, $(BUILD)/%.2bpp, \ .SECONDEXPANSION: .PHONY: all -all: $(ROMS) $(CORRECTEDROMS) compare coverage +all: $(ROMS) $(CORRECTEDROMS) compare .PHONY: compare compare: $(ROMS) @@ -40,6 +40,10 @@ compare: $(ROMS) tools tools/pkmncompress tools/gfx: $(MAKE) -C tools/ +.PHONY: coverage +coverage: tools/disasm_coverage.py $(ROMS) + $(PYTHON) $< -m $(ROMS:.gb=.map) -b 0x40 + # Remove files generated by the build process. .PHONY: clean clean: @@ -52,9 +56,14 @@ mostlyclean: rm -rf $(ROMS) $(OBJS) $(ROMS:.gb=.sym) $(ROMS:.gb=.map) $(CORRECTEDROMS) find . \( -iname '*.d' \) -exec rm {} + -$(ROMS): $(OBJS) +$(ROMS): $(OBJS) | baserom.gb $(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 "POKEMON2GOLD" $@ + tools/sort_symfile.sh $(@:.gb=.sym) + +baserom.gb: + @echo "Please obtain a copy of Gold_debug.sgb and put it in this directory as $@" + @exit 1 $(CORRECTEDROMS): %-correctheader.gb: %.gb cp $< $@ @@ -63,10 +72,6 @@ $(CORRECTEDROMS): %-correctheader.gb: %.gb $(BUILD)/shim.asm: tools/make_shim.py shim.sym | $$(dir $$@) $(PYTHON) tools/make_shim.py -w -- $(filter-out $<, $^) > $@ -.PHONY: coverage -coverage: $(ROMS) - $(PYTHON) tools/disasm_coverage.py -m $(ROMS:.gb=.map) -b 0x40 - $(BUILD)/gfx.o: | $(GFX) $(BUILD)/%.o: $(BUILD)/%.asm | $$(dir $$@) $(RGBASM) $(RGBASMFLAGS) -M $(@:.o=.d) $(OUTPUT_OPTION) $< diff --git a/tools/sort_symfile.sh b/tools/sort_symfile.sh new file mode 100755 index 0000000..d53150f --- /dev/null +++ b/tools/sort_symfile.sh @@ -0,0 +1,10 @@ +#!/bin/sh +sed $1 \ + -e "s/^..:[0-3]/0_ROM0@&/g" \ + -e "s/^..:[4-7]/1_ROMX@&/g" \ + -e "s/^..:[8-9]/2_VRAM@&/g" \ + -e "s/^..:[A-B]/3_SRAM@&/g" \ + -e "s/^00:[C-D]/4_WRAM0@&/g" \ + -e "s/^..:[D-D]/5_WRAMX@&/g" \ +| sort -o $1 +sed -i $1 -e "s/^\w*@//g" -- cgit v1.2.3 From 20ac549a91c5e9249b1b04c16e65df2aefac1aae Mon Sep 17 00:00:00 2001 From: Rangi Date: Sun, 3 Jun 2018 10:55:41 -0400 Subject: Copy pokecrystal's conventions for this data, including: - Tabs for indentation, spaces for alignment - Consistent comments and formatting for menu header data (incomplete here, until the related code is disassembled) - The second two menus do not "take priority"; they're all just a count + that many items + ending -1 --- engine/menu/main_menu.asm | 59 ++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index b1f01f8..8a37093 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -4,53 +4,60 @@ SECTION "Main Menu Definition", ROMX[$5418], BANK[$01] MainMenuHeader: db $40 - db $00, $00, $07, $0d - dw .data + menu_coords 0, 0, 13, 7 + dw .MenuData db 1 ; default option -.data ; 01:5420 +.MenuData: ; 01:5420 db $80 - db 0 ; number of options - - dw $5461 ; MainMenuItems in retail + db 0 ; items + dw MainMenuItems db $8a, $1f - dw MainMenuStrings - -MainMenuStrings: ; 01:5428 - db "つづきから はじめる@" - db "さいしょから はじめる@" - db "せっていを かえる@" - db "#を あそぶ@" - db "じかんセット@" -; 01:5457 + dw .Strings +.Strings: ; 01:5428 + db "つづきから はじめる@" + db "さいしょから はじめる@" + db "せっていを かえる@" + db "#を あそぶ@" + db "じかんセット@" -SECTION "Main Menu Items", ROMX[$5461], BANK[$01] +MainMenuJumptable: ; 01:5457 + dw $547c + dw $555c + dw $5cf3 + dw $555c + dw $5473 -CONTINUE EQU 0 -NEW_GAME EQU 1 -OPTION EQU 2 -PLAY_POKEMON EQU 3 -SET_TIME EQU 4 +CONTINUE EQU 0 +NEW_GAME EQU 1 +OPTION EQU 2 +PLAY_POKEMON EQU 3 +SET_TIME EQU 4 MainMenuItems: + +NewGameMenu: db 2 db NEW_GAME db OPTION db -1 - + +ContinueMenu: db 3 db CONTINUE db NEW_GAME db OPTION db -1 - - db 2 ; takes priority over the former + +PlayPokemonMenu: + db 2 db PLAY_POKEMON db OPTION db -1 - - db 3 ; takes priority over the former + +PlayPokemonSetTimeMenu: + db 3 db PLAY_POKEMON db OPTION db SET_TIME -- cgit v1.2.3