summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-06-03 11:04:06 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-06-03 11:04:06 -0400
commit634df276352ea64c6eff423bb706cfae8a39a67b (patch)
tree190253502a1f5055a5e9ea5c1f3d33a5c274d3e7
parent898c863bd46ebc4fdca5329f1ebe64212b079630 (diff)
parent20ac549a91c5e9249b1b04c16e65df2aefac1aae (diff)
Merge branch 'master' into build_more_roms
-rw-r--r--Makefile34
-rw-r--r--data/trainers/parties.asm115
-rw-r--r--engine/menu/main_menu.asm69
-rwxr-xr-xtools/sort_symfile.sh10
4 files changed, 191 insertions, 37 deletions
diff --git a/Makefile b/Makefile
index e32a609..9d8e52c 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,8 @@ RGBFIX := rgbfix
RGBASMFLAGS := -h -E -i $(BUILD)/
tools/gfx :=
tools/make_shim :=
-sort_sym := $(PYTHON3) tools/sort_sym.py
+sort_sym := tools/sort_symfile.sh
+#sort_sym := $(PYTHON3) tools/sort_sym.py
ROM := poke$(BUILD_NAME)-spaceworld.gb
ROMS := $(foreach r, gold gold_debug silver silver_debug, poke$(r)-spaceworld.gb)
@@ -40,11 +41,20 @@ GFX := $(patsubst %.png, $(BUILD)/%.2bpp, \
.SECONDEXPANSION:
.PHONY: all
-all: $(ROM) $(CORRECTEDROM)
+all: $(ROM) $(CORRECTEDROM) compare
+
+.PHONY: compare
+compare: $(ROMS)
+ $(MD5) roms.md5
+
.PHONY: tools
tools tools/pkmncompress tools/gfx:
$(MAKE) -C tools/
+.PHONY: coverage
+coverage: tools/disasm_coverage.py $(ROM)
+ $(PYTHON3) $< -m $(ROM:.gb=.map) -b 0x40
+
# Remove files generated by the build process.
.PHONY: clean
clean:
@@ -57,10 +67,14 @@ mostlyclean:
rm -rf $(ROMS) $(OBJS) $(ROMS:.gb=.sym) $(ROMS:.gb=.map) $(CORRECTEDROMS)
find . \( -iname '*.d' \) -exec rm {} +
-$(ROM): $(OBJS)
+$(ROM): $(OBJS) | $(BASEROM)
$(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)" $@
- -$(sort_sym) $(@:.gb=.sym)
+ $(sort_sym) $(@:.gb=.sym)
+
+$(BASEROM):
+ @echo "Please obtain a copy of Gold_debug.sgb and put it in this directory as $@"
+ @exit 1
$(BUILD)/shim.asm: tools/make_shim $(SHIM) tools/make_shim | $$(dir $$@)
tools/make_shim -w $(filter-out $<, $^) > $@
@@ -68,10 +82,6 @@ $(CORRECTEDROM): %-correctheader.gb: %.gb
cp $< $@
$(RGBFIX) -f hg -m 0x10 $@
-.PHONY: coverage
-coverage: $(ROM)
- $(PYTHON3) tools/disasm_coverage.py -m $(ROM:.gb=.map) -b 0x40
-
$(BUILD)/gfx.o: | $(GFX)
$(BUILD)/%.o: $(BUILD)/%.asm | $$(dir $$@)
$(RGBASM) $(RGBASMFLAGS) -M $(@:.o=.d) $(OUTPUT_OPTION) $<
@@ -114,12 +124,12 @@ $(BUILD)/%.tilemap: %.png | $$(dir $$@)
-include $(call rwildcard, $(BUILD)/, *.d)
#gold: ; @$(MAKE) GAME_VERSION=GOLD
-gold_debug: ; @$(MAKE) GAME_VERSION=GOLD DEBUG=1
+#gold_debug: ; @$(MAKE) GAME_VERSION=GOLD DEBUG=1
#silver: ; @$(MAKE) GAME_VERSION=SILVER
#silver_debug: ; @$(MAKE) GAME_VERSION=SILVER DEBUG=1
-compare: ;
+#compare: ;
# @$(MAKE) GAME_VERSION=GOLD COMPARE=1
- @$(MAKE) GAME_VERSION=GOLD DEBUG=1 COMPARE=1
+# @$(MAKE) GAME_VERSION=GOLD DEBUG=1 COMPARE=1
# @$(MAKE) GAME_VERSION=SILVER COMPARE=1
# @$(MAKE) GAME_VERSION=SILVER DEBUG=1 COMPARE=1
- @$(MD5) roms.md5
+# @$(MD5) roms.md5
diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm
index f91aba7..4514b38 100644
--- a/data/trainers/parties.asm
+++ b/data/trainers/parties.asm
@@ -17,8 +17,21 @@ INCLUDE "data/trainers/party_pointers.inc"
if def(GOLD)
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
@@ -98,31 +111,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::
@@ -249,7 +345,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
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm
index 536123f..8a37093 100644
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -4,22 +4,61 @@ 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
+.MenuData: ; 01:5420
db $80
- db 0 ; number of options
-
- dw $5461
+ 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 "じかんセット@"
+
+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
+
+MainMenuItems:
+
+NewGameMenu:
+ db 2
+ db NEW_GAME
+ db OPTION
+ db -1
+
+ContinueMenu:
+ db 3
+ db CONTINUE
+ db NEW_GAME
+ db OPTION
+ db -1
+
+PlayPokemonMenu:
+ db 2
+ db PLAY_POKEMON
+ db OPTION
+ db -1
+
+PlayPokemonSetTimeMenu:
+ db 3
+ db PLAY_POKEMON
+ db OPTION
+ db SET_TIME
+ db -1
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"