mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-04-26 08:13:44 -05:00
Make the repository build all four ROMs
This commit is contained in:
parent
513028a98e
commit
956d010d59
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -24,3 +24,4 @@ tools/scan_includes
|
|||
tools/pkmncompress
|
||||
tools/gfx
|
||||
build/
|
||||
.idea/
|
||||
|
|
|
|||
49
Makefile
49
Makefile
|
|
@ -1,20 +1,27 @@
|
|||
BUILD := build
|
||||
include config.mk
|
||||
|
||||
BUILDBASE := build
|
||||
BUILD := $(BUILDBASE)/$(BUILD_NAME)
|
||||
|
||||
MD5 := md5sum -c
|
||||
PYTHON := python
|
||||
PYTHON3 := python3.6
|
||||
|
||||
RGBASM := rgbasm
|
||||
RGBASM := rgbasm -D$(GAME_VERSION)=1 -DDEBUG=$(DEBUG)
|
||||
RGBGFX := rgbgfx
|
||||
RGBLINK := rgblink
|
||||
RGBFIX := rgbfix
|
||||
|
||||
RGBASMFLAGS := -h -E -i $(BUILD)/
|
||||
tools/gfx :=
|
||||
tools/make_shim :=
|
||||
|
||||
ROMS := pokegold-spaceworld.gb
|
||||
BASEROM := baserom.gb
|
||||
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
|
||||
DIRS := home engine data audio
|
||||
OBJS := $(addprefix $(BUILD)/, gfx.o sram.o wram.o hram.o shim.o)
|
||||
SHIM := shim_$(BUILD_NAME).sym
|
||||
|
||||
rwildcard = $(foreach d, $(wildcard $1*), $(filter $(subst *, %, $2), $d) $(call rwildcard, $d/, $2))
|
||||
OBJS += $(patsubst %.asm, $(BUILD)/%.o, $(call rwildcard, $(DIRS), *.asm))
|
||||
|
|
@ -28,11 +35,7 @@ GFX := $(patsubst %.png, $(BUILD)/%.2bpp, \
|
|||
.SECONDEXPANSION:
|
||||
|
||||
.PHONY: all
|
||||
all: $(ROMS) compare
|
||||
|
||||
.PHONY: compare
|
||||
compare: $(ROMS)
|
||||
$(MD5) roms.md5
|
||||
all: $(ROM)
|
||||
|
||||
.PHONY: tools
|
||||
tools tools/pkmncompress tools/gfx:
|
||||
|
|
@ -41,7 +44,7 @@ tools tools/pkmncompress tools/gfx:
|
|||
# Remove files generated by the build process.
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(ROMS) $(BUILD) $(ROMS:.gb=.sym) $(ROMS:.gb=.map)
|
||||
rm -rf $(ROMS) $(BUILDBASE) $(ROMS:.gb=.sym) $(ROMS:.gb=.map)
|
||||
make -C tools clean
|
||||
|
||||
# Remove files except for graphics.
|
||||
|
|
@ -49,12 +52,13 @@ clean:
|
|||
mostlyclean:
|
||||
rm -rf $(ROMS) $(OBJS) $(ROMS:.gb=.sym) $(ROMS:.gb=.map)
|
||||
|
||||
$(ROMS): $(OBJS)
|
||||
$(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 "POKEMON2GOLD" $@
|
||||
$(RGBFIX) -f lh -k 01 -l 0x33 -m 0x03 -p 0 -r 3 -t "POKEMON2$(GAME_VERSION)" $@
|
||||
-$(PYTHON3) sort_sym.py $(@:.gb=.sym)
|
||||
|
||||
$(BUILD)/shim.asm: tools/make_shim.py shim.sym | $$(dir $$@)
|
||||
$(PYTHON) tools/make_shim.py -w -- $(filter-out $<, $^) > $@
|
||||
$(BUILD)/shim.asm: $(SHIM) | $$(dir $$@)
|
||||
tools/make_shim -w $< > $@
|
||||
|
||||
$(BUILD)/gfx.o: | $(GFX)
|
||||
$(BUILD)/%.o: $(BUILD)/%.asm | $$(dir $$@)
|
||||
|
|
@ -63,8 +67,10 @@ $(BUILD)/%.o: %.asm | $$(dir $$@)
|
|||
$(RGBASM) $(RGBASMFLAGS) -M $(@:.o=.d) $(OUTPUT_OPTION) $<
|
||||
|
||||
$(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/sgb/sgb_border.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/title/title.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/sgb/sgb_border_gold.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/sgb/sgb_border_silver.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/title/title_gold.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/title/title_silver.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/minigames/slots.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/minigames/poker.2bpp: tools/gfx += --trim-whitespace
|
||||
|
|
@ -93,3 +99,14 @@ $(BUILD)/%.tilemap: %.png | $$(dir $$@)
|
|||
mkdir -p $@
|
||||
|
||||
-include $(call rwildcard, $(BUILD)/, *.d)
|
||||
|
||||
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
|
||||
compare: ;
|
||||
@$(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
|
||||
@$(MD5) roms.md5
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
WIP disassembly of the Spaceworld 1997 Gold proto
|
||||
|
||||
baserom.gb is Gold_debug.sgb
|
||||
It attempts to build the following ROMs:
|
||||
|
||||
md5sum `2eadbed83b775c097ff79e5128d1184f`
|
||||
pokegold_spaceworld.gb (MD5: 3c407114de28d17b7113a2c0cee9a37c)
|
||||
pokegold_debug_spaceworld.gb (MD5: 2eadbed83b775c097ff79e5128d1184f)
|
||||
pokesilver_spaceworld.gb (MD5: c52a677c35f15320d5b495e14809f00d)
|
||||
pokesilver_debug_spaceworld.gb (MD5: fa65d3759bb17c489de171a598ba4913)
|
||||
|
||||
At this current stage, only pokegold_debug_spaceworld.gb builds a functioning ROM.
|
||||
|
|
|
|||
8
compare.sh
Normal file
8
compare.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ -z ${1+x} ]
|
||||
then BUILD_NAME=gold_debug
|
||||
else BUILD_NAME=$1
|
||||
fi
|
||||
|
||||
diff <(hexdump -C baserom_${BUILD_NAME}.gb) <(hexdump -C poke${BUILD_NAME}_spaceworld.gb) | less
|
||||
22
config.mk
Normal file
22
config.mk
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
### Build Configuration ###
|
||||
|
||||
# Default variables
|
||||
GAME_VERSION ?= GOLD
|
||||
DEBUG ?= 0
|
||||
COMPARE ?= 0
|
||||
|
||||
# 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
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "ItemNames", ROMX[$6FEC], BANK[$01]
|
||||
else
|
||||
SECTION "ItemNames", ROMX[$6FE9], BANK[$01]
|
||||
endc
|
||||
|
||||
ItemNames::
|
||||
db "マスターボール@" ; MASTER_BALL
|
||||
|
|
|
|||
|
|
@ -37,255 +37,255 @@ ENDM
|
|||
|
||||
BaseData::
|
||||
MonBaseStats::
|
||||
INCLUDE "data/pokemon/base_stats/fushigidane.inc"
|
||||
BaseStats_Fushigidane:: INCLUDE "data/pokemon/base_stats/fushigidane.inc"
|
||||
MonBaseStatsEnd::
|
||||
INCLUDE "data/pokemon/base_stats/fushigisou.inc"
|
||||
INCLUDE "data/pokemon/base_stats/fushigibana.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hitokage.inc"
|
||||
INCLUDE "data/pokemon/base_stats/lizardo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/lizardon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/zenigame.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kameil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kamex.inc"
|
||||
INCLUDE "data/pokemon/base_stats/caterpie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/transel.inc"
|
||||
INCLUDE "data/pokemon/base_stats/butterfree.inc"
|
||||
INCLUDE "data/pokemon/base_stats/beedle.inc"
|
||||
INCLUDE "data/pokemon/base_stats/cocoon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/spear.inc"
|
||||
INCLUDE "data/pokemon/base_stats/poppo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pigeon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pigeot.inc"
|
||||
INCLUDE "data/pokemon/base_stats/koratta.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ratta.inc"
|
||||
INCLUDE "data/pokemon/base_stats/onisuzume.inc"
|
||||
INCLUDE "data/pokemon/base_stats/onidrill.inc"
|
||||
INCLUDE "data/pokemon/base_stats/arbo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/arbok.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pikachu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/raichu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sand.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sandpan.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidoran_f.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidorina.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidoqueen.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidoran_m.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidorino.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nidoking.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pippi.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pixy.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rokon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kyukon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/purin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pukurin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/zubat.inc"
|
||||
INCLUDE "data/pokemon/base_stats/golbat.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nazonokusa.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kusaihana.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ruffresia.inc"
|
||||
INCLUDE "data/pokemon/base_stats/paras.inc"
|
||||
INCLUDE "data/pokemon/base_stats/parasect.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kongpang.inc"
|
||||
INCLUDE "data/pokemon/base_stats/morphon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/digda.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dugtrio.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyarth.inc"
|
||||
INCLUDE "data/pokemon/base_stats/persian.inc"
|
||||
INCLUDE "data/pokemon/base_stats/koduck.inc"
|
||||
INCLUDE "data/pokemon/base_stats/golduck.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mankey.inc"
|
||||
INCLUDE "data/pokemon/base_stats/okorizaru.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gardie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/windie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyoromo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyorozo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyorobon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/casey.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yungerer.inc"
|
||||
INCLUDE "data/pokemon/base_stats/foodin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/wanriky.inc"
|
||||
INCLUDE "data/pokemon/base_stats/goriky.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kairiky.inc"
|
||||
INCLUDE "data/pokemon/base_stats/madatsubomi.inc"
|
||||
INCLUDE "data/pokemon/base_stats/utsudon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/utsubot.inc"
|
||||
INCLUDE "data/pokemon/base_stats/menokurage.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dokukurage.inc"
|
||||
INCLUDE "data/pokemon/base_stats/isitsubute.inc"
|
||||
INCLUDE "data/pokemon/base_stats/golone.inc"
|
||||
INCLUDE "data/pokemon/base_stats/golonya.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ponyta.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gallop.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yadon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yadoran.inc"
|
||||
INCLUDE "data/pokemon/base_stats/coil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rarecoil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kamonegi.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dodo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dodorio.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pawou.inc"
|
||||
INCLUDE "data/pokemon/base_stats/jugon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/betbeter.inc"
|
||||
INCLUDE "data/pokemon/base_stats/betbeton.inc"
|
||||
INCLUDE "data/pokemon/base_stats/shellder.inc"
|
||||
INCLUDE "data/pokemon/base_stats/parshen.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ghos.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ghost.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gangar.inc"
|
||||
INCLUDE "data/pokemon/base_stats/iwark.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sleepe.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sleeper.inc"
|
||||
INCLUDE "data/pokemon/base_stats/crab.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kingler.inc"
|
||||
INCLUDE "data/pokemon/base_stats/biriridama.inc"
|
||||
INCLUDE "data/pokemon/base_stats/marumine.inc"
|
||||
INCLUDE "data/pokemon/base_stats/tamatama.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nassy.inc"
|
||||
INCLUDE "data/pokemon/base_stats/karakara.inc"
|
||||
INCLUDE "data/pokemon/base_stats/garagara.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sawamular.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ebiwalar.inc"
|
||||
INCLUDE "data/pokemon/base_stats/beroringa.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dogars.inc"
|
||||
INCLUDE "data/pokemon/base_stats/matadogas.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sihorn.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sidon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/lucky.inc"
|
||||
INCLUDE "data/pokemon/base_stats/monjara.inc"
|
||||
INCLUDE "data/pokemon/base_stats/garura.inc"
|
||||
INCLUDE "data/pokemon/base_stats/tattu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/seadra.inc"
|
||||
INCLUDE "data/pokemon/base_stats/tosakinto.inc"
|
||||
INCLUDE "data/pokemon/base_stats/azumao.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hitodeman.inc"
|
||||
INCLUDE "data/pokemon/base_stats/starmie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/barrierd.inc"
|
||||
INCLUDE "data/pokemon/base_stats/strike.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rougela.inc"
|
||||
INCLUDE "data/pokemon/base_stats/eleboo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/boober.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kailios.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kentauros.inc"
|
||||
INCLUDE "data/pokemon/base_stats/koiking.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gyarados.inc"
|
||||
INCLUDE "data/pokemon/base_stats/laplace.inc"
|
||||
INCLUDE "data/pokemon/base_stats/metamon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/eievui.inc"
|
||||
INCLUDE "data/pokemon/base_stats/showers.inc"
|
||||
INCLUDE "data/pokemon/base_stats/thunders.inc"
|
||||
INCLUDE "data/pokemon/base_stats/booster.inc"
|
||||
INCLUDE "data/pokemon/base_stats/porygon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/omnite.inc"
|
||||
INCLUDE "data/pokemon/base_stats/omstar.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kabuto.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kabutops.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ptera.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kabigon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/freezer.inc"
|
||||
INCLUDE "data/pokemon/base_stats/thunder.inc"
|
||||
INCLUDE "data/pokemon/base_stats/fire.inc"
|
||||
INCLUDE "data/pokemon/base_stats/miniryu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hakuryu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kairyu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mewtwo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mew.inc"
|
||||
INCLUDE "data/pokemon/base_stats/happa.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hanamogura.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hanaryu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/honoguma.inc"
|
||||
INCLUDE "data/pokemon/base_stats/volbear.inc"
|
||||
INCLUDE "data/pokemon/base_stats/dynabear.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kurusu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/aqua.inc"
|
||||
INCLUDE "data/pokemon/base_stats/aquaria.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hoho.inc"
|
||||
INCLUDE "data/pokemon/base_stats/bobo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pachimee.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mokoko.inc"
|
||||
INCLUDE "data/pokemon/base_stats/denryu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mikon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/monja.inc"
|
||||
INCLUDE "data/pokemon/base_stats/jaranra.inc"
|
||||
INCLUDE "data/pokemon/base_stats/haneei.inc"
|
||||
INCLUDE "data/pokemon/base_stats/puku.inc"
|
||||
INCLUDE "data/pokemon/base_stats/shibirefugu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pichu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/py.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pupurin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mizuuo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/naty.inc"
|
||||
INCLUDE "data/pokemon/base_stats/natio.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gyopin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/maril.inc"
|
||||
INCLUDE "data/pokemon/base_stats/manbo1.inc"
|
||||
INCLUDE "data/pokemon/base_stats/ikari.inc"
|
||||
INCLUDE "data/pokemon/base_stats/grotess.inc"
|
||||
INCLUDE "data/pokemon/base_stats/eksing.inc"
|
||||
INCLUDE "data/pokemon/base_stats/para.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kokumo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/twohead.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yoroidori.inc"
|
||||
INCLUDE "data/pokemon/base_stats/animon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/hinazu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sunny.inc"
|
||||
INCLUDE "data/pokemon/base_stats/paon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/donphan.inc"
|
||||
INCLUDE "data/pokemon/base_stats/twinz.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kirinriki.inc"
|
||||
INCLUDE "data/pokemon/base_stats/painter.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kounya.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rinrin.inc"
|
||||
INCLUDE "data/pokemon/base_stats/berurun.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyorotono.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yadoking.inc"
|
||||
INCLUDE "data/pokemon/base_stats/annon.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rediba.inc"
|
||||
INCLUDE "data/pokemon/base_stats/mitsuboshi.inc"
|
||||
INCLUDE "data/pokemon/base_stats/puchicorn.inc"
|
||||
INCLUDE "data/pokemon/base_stats/eifie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/blacky.inc"
|
||||
INCLUDE "data/pokemon/base_stats/turban.inc"
|
||||
INCLUDE "data/pokemon/base_stats/betbaby.inc"
|
||||
INCLUDE "data/pokemon/base_stats/teppouo.inc"
|
||||
INCLUDE "data/pokemon/base_stats/okutank.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gongu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kapoerer.inc"
|
||||
INCLUDE "data/pokemon/base_stats/pudie.inc"
|
||||
INCLUDE "data/pokemon/base_stats/haneko.inc"
|
||||
INCLUDE "data/pokemon/base_stats/poponeko.inc"
|
||||
INCLUDE "data/pokemon/base_stats/wataneko.inc"
|
||||
INCLUDE "data/pokemon/base_stats/baririna.inc"
|
||||
INCLUDE "data/pokemon/base_stats/lip.inc"
|
||||
INCLUDE "data/pokemon/base_stats/elebaby.inc"
|
||||
INCLUDE "data/pokemon/base_stats/booby.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kireihana.inc"
|
||||
INCLUDE "data/pokemon/base_stats/tsubomitto.inc"
|
||||
INCLUDE "data/pokemon/base_stats/miltank.inc"
|
||||
INCLUDE "data/pokemon/base_stats/bombseeker.inc"
|
||||
INCLUDE "data/pokemon/base_stats/gift.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kotora.inc"
|
||||
INCLUDE "data/pokemon/base_stats/raitora.inc"
|
||||
INCLUDE "data/pokemon/base_stats/madame.inc"
|
||||
INCLUDE "data/pokemon/base_stats/norowara.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kyonpan.inc"
|
||||
INCLUDE "data/pokemon/base_stats/yamikarasu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/happi.inc"
|
||||
INCLUDE "data/pokemon/base_stats/scissors.inc"
|
||||
INCLUDE "data/pokemon/base_stats/purakkusu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/devil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/helgaa.inc"
|
||||
INCLUDE "data/pokemon/base_stats/wolfman.inc"
|
||||
INCLUDE "data/pokemon/base_stats/warwolf.inc"
|
||||
INCLUDE "data/pokemon/base_stats/porygon2.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nameil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/haganeil.inc"
|
||||
INCLUDE "data/pokemon/base_stats/kingdra.inc"
|
||||
INCLUDE "data/pokemon/base_stats/rai.inc"
|
||||
INCLUDE "data/pokemon/base_stats/en.inc"
|
||||
INCLUDE "data/pokemon/base_stats/sui.inc"
|
||||
INCLUDE "data/pokemon/base_stats/nyula.inc"
|
||||
INCLUDE "data/pokemon/base_stats/houou.inc"
|
||||
INCLUDE "data/pokemon/base_stats/togepy.inc"
|
||||
INCLUDE "data/pokemon/base_stats/bulu.inc"
|
||||
INCLUDE "data/pokemon/base_stats/tail.inc"
|
||||
INCLUDE "data/pokemon/base_stats/leafy.inc"
|
||||
BaseStats_Fushigisou:: INCLUDE "data/pokemon/base_stats/fushigisou.inc"
|
||||
BaseStats_Fushigibana:: INCLUDE "data/pokemon/base_stats/fushigibana.inc"
|
||||
BaseStats_Hitokage:: INCLUDE "data/pokemon/base_stats/hitokage.inc"
|
||||
BaseStats_Lizardo:: INCLUDE "data/pokemon/base_stats/lizardo.inc"
|
||||
BaseStats_Lizardon:: INCLUDE "data/pokemon/base_stats/lizardon.inc"
|
||||
BaseStats_Zenigame:: INCLUDE "data/pokemon/base_stats/zenigame.inc"
|
||||
BaseStats_Kameil:: INCLUDE "data/pokemon/base_stats/kameil.inc"
|
||||
BaseStats_Kamex:: INCLUDE "data/pokemon/base_stats/kamex.inc"
|
||||
BaseStats_Caterpie:: INCLUDE "data/pokemon/base_stats/caterpie.inc"
|
||||
BaseStats_Transel:: INCLUDE "data/pokemon/base_stats/transel.inc"
|
||||
BaseStats_Butterfree:: INCLUDE "data/pokemon/base_stats/butterfree.inc"
|
||||
BaseStats_Beedle:: INCLUDE "data/pokemon/base_stats/beedle.inc"
|
||||
BaseStats_Cocoon:: INCLUDE "data/pokemon/base_stats/cocoon.inc"
|
||||
BaseStats_Spear:: INCLUDE "data/pokemon/base_stats/spear.inc"
|
||||
BaseStats_Poppo:: INCLUDE "data/pokemon/base_stats/poppo.inc"
|
||||
BaseStats_Pigeon:: INCLUDE "data/pokemon/base_stats/pigeon.inc"
|
||||
BaseStats_Pigeot:: INCLUDE "data/pokemon/base_stats/pigeot.inc"
|
||||
BaseStats_Koratta:: INCLUDE "data/pokemon/base_stats/koratta.inc"
|
||||
BaseStats_Ratta:: INCLUDE "data/pokemon/base_stats/ratta.inc"
|
||||
BaseStats_Onisuzume:: INCLUDE "data/pokemon/base_stats/onisuzume.inc"
|
||||
BaseStats_Onidrill:: INCLUDE "data/pokemon/base_stats/onidrill.inc"
|
||||
BaseStats_Arbo:: INCLUDE "data/pokemon/base_stats/arbo.inc"
|
||||
BaseStats_Arbok:: INCLUDE "data/pokemon/base_stats/arbok.inc"
|
||||
BaseStats_Pikachu:: INCLUDE "data/pokemon/base_stats/pikachu.inc"
|
||||
BaseStats_Raichu:: INCLUDE "data/pokemon/base_stats/raichu.inc"
|
||||
BaseStats_Sand:: INCLUDE "data/pokemon/base_stats/sand.inc"
|
||||
BaseStats_Sandpan:: INCLUDE "data/pokemon/base_stats/sandpan.inc"
|
||||
BaseStats_Nidoran_f:: INCLUDE "data/pokemon/base_stats/nidoran_f.inc"
|
||||
BaseStats_Nidorina:: INCLUDE "data/pokemon/base_stats/nidorina.inc"
|
||||
BaseStats_Nidoqueen:: INCLUDE "data/pokemon/base_stats/nidoqueen.inc"
|
||||
BaseStats_Nidoran_m:: INCLUDE "data/pokemon/base_stats/nidoran_m.inc"
|
||||
BaseStats_Nidorino:: INCLUDE "data/pokemon/base_stats/nidorino.inc"
|
||||
BaseStats_Nidoking:: INCLUDE "data/pokemon/base_stats/nidoking.inc"
|
||||
BaseStats_Pippi:: INCLUDE "data/pokemon/base_stats/pippi.inc"
|
||||
BaseStats_Pixy:: INCLUDE "data/pokemon/base_stats/pixy.inc"
|
||||
BaseStats_Rokon:: INCLUDE "data/pokemon/base_stats/rokon.inc"
|
||||
BaseStats_Kyukon:: INCLUDE "data/pokemon/base_stats/kyukon.inc"
|
||||
BaseStats_Purin:: INCLUDE "data/pokemon/base_stats/purin.inc"
|
||||
BaseStats_Pukurin:: INCLUDE "data/pokemon/base_stats/pukurin.inc"
|
||||
BaseStats_Zubat:: INCLUDE "data/pokemon/base_stats/zubat.inc"
|
||||
BaseStats_Golbat:: INCLUDE "data/pokemon/base_stats/golbat.inc"
|
||||
BaseStats_Nazonokusa:: INCLUDE "data/pokemon/base_stats/nazonokusa.inc"
|
||||
BaseStats_Kusaihana:: INCLUDE "data/pokemon/base_stats/kusaihana.inc"
|
||||
BaseStats_Ruffresia:: INCLUDE "data/pokemon/base_stats/ruffresia.inc"
|
||||
BaseStats_Paras:: INCLUDE "data/pokemon/base_stats/paras.inc"
|
||||
BaseStats_Parasect:: INCLUDE "data/pokemon/base_stats/parasect.inc"
|
||||
BaseStats_Kongpang:: INCLUDE "data/pokemon/base_stats/kongpang.inc"
|
||||
BaseStats_Morphon:: INCLUDE "data/pokemon/base_stats/morphon.inc"
|
||||
BaseStats_Digda:: INCLUDE "data/pokemon/base_stats/digda.inc"
|
||||
BaseStats_Dugtrio:: INCLUDE "data/pokemon/base_stats/dugtrio.inc"
|
||||
BaseStats_Nyarth:: INCLUDE "data/pokemon/base_stats/nyarth.inc"
|
||||
BaseStats_Persian:: INCLUDE "data/pokemon/base_stats/persian.inc"
|
||||
BaseStats_Koduck:: INCLUDE "data/pokemon/base_stats/koduck.inc"
|
||||
BaseStats_Golduck:: INCLUDE "data/pokemon/base_stats/golduck.inc"
|
||||
BaseStats_Mankey:: INCLUDE "data/pokemon/base_stats/mankey.inc"
|
||||
BaseStats_Okorizaru:: INCLUDE "data/pokemon/base_stats/okorizaru.inc"
|
||||
BaseStats_Gardie:: INCLUDE "data/pokemon/base_stats/gardie.inc"
|
||||
BaseStats_Windie:: INCLUDE "data/pokemon/base_stats/windie.inc"
|
||||
BaseStats_Nyoromo:: INCLUDE "data/pokemon/base_stats/nyoromo.inc"
|
||||
BaseStats_Nyorozo:: INCLUDE "data/pokemon/base_stats/nyorozo.inc"
|
||||
BaseStats_Nyorobon:: INCLUDE "data/pokemon/base_stats/nyorobon.inc"
|
||||
BaseStats_Casey:: INCLUDE "data/pokemon/base_stats/casey.inc"
|
||||
BaseStats_Yungerer:: INCLUDE "data/pokemon/base_stats/yungerer.inc"
|
||||
BaseStats_Foodin:: INCLUDE "data/pokemon/base_stats/foodin.inc"
|
||||
BaseStats_Wanriky:: INCLUDE "data/pokemon/base_stats/wanriky.inc"
|
||||
BaseStats_Goriky:: INCLUDE "data/pokemon/base_stats/goriky.inc"
|
||||
BaseStats_Kairiky:: INCLUDE "data/pokemon/base_stats/kairiky.inc"
|
||||
BaseStats_Madatsubomi:: INCLUDE "data/pokemon/base_stats/madatsubomi.inc"
|
||||
BaseStats_Utsudon:: INCLUDE "data/pokemon/base_stats/utsudon.inc"
|
||||
BaseStats_Utsubot:: INCLUDE "data/pokemon/base_stats/utsubot.inc"
|
||||
BaseStats_Menokurage:: INCLUDE "data/pokemon/base_stats/menokurage.inc"
|
||||
BaseStats_Dokukurage:: INCLUDE "data/pokemon/base_stats/dokukurage.inc"
|
||||
BaseStats_Isitsubute:: INCLUDE "data/pokemon/base_stats/isitsubute.inc"
|
||||
BaseStats_Golone:: INCLUDE "data/pokemon/base_stats/golone.inc"
|
||||
BaseStats_Golonya:: INCLUDE "data/pokemon/base_stats/golonya.inc"
|
||||
BaseStats_Ponyta:: INCLUDE "data/pokemon/base_stats/ponyta.inc"
|
||||
BaseStats_Gallop:: INCLUDE "data/pokemon/base_stats/gallop.inc"
|
||||
BaseStats_Yadon:: INCLUDE "data/pokemon/base_stats/yadon.inc"
|
||||
BaseStats_Yadoran:: INCLUDE "data/pokemon/base_stats/yadoran.inc"
|
||||
BaseStats_Coil:: INCLUDE "data/pokemon/base_stats/coil.inc"
|
||||
BaseStats_Rarecoil:: INCLUDE "data/pokemon/base_stats/rarecoil.inc"
|
||||
BaseStats_Kamonegi:: INCLUDE "data/pokemon/base_stats/kamonegi.inc"
|
||||
BaseStats_Dodo:: INCLUDE "data/pokemon/base_stats/dodo.inc"
|
||||
BaseStats_Dodorio:: INCLUDE "data/pokemon/base_stats/dodorio.inc"
|
||||
BaseStats_Pawou:: INCLUDE "data/pokemon/base_stats/pawou.inc"
|
||||
BaseStats_Jugon:: INCLUDE "data/pokemon/base_stats/jugon.inc"
|
||||
BaseStats_Betbeter:: INCLUDE "data/pokemon/base_stats/betbeter.inc"
|
||||
BaseStats_Betbeton:: INCLUDE "data/pokemon/base_stats/betbeton.inc"
|
||||
BaseStats_Shellder:: INCLUDE "data/pokemon/base_stats/shellder.inc"
|
||||
BaseStats_Parshen:: INCLUDE "data/pokemon/base_stats/parshen.inc"
|
||||
BaseStats_Ghos:: INCLUDE "data/pokemon/base_stats/ghos.inc"
|
||||
BaseStats_Ghost:: INCLUDE "data/pokemon/base_stats/ghost.inc"
|
||||
BaseStats_Gangar:: INCLUDE "data/pokemon/base_stats/gangar.inc"
|
||||
BaseStats_Iwark:: INCLUDE "data/pokemon/base_stats/iwark.inc"
|
||||
BaseStats_Sleepe:: INCLUDE "data/pokemon/base_stats/sleepe.inc"
|
||||
BaseStats_Sleeper:: INCLUDE "data/pokemon/base_stats/sleeper.inc"
|
||||
BaseStats_Crab:: INCLUDE "data/pokemon/base_stats/crab.inc"
|
||||
BaseStats_Kingler:: INCLUDE "data/pokemon/base_stats/kingler.inc"
|
||||
BaseStats_Biriridama:: INCLUDE "data/pokemon/base_stats/biriridama.inc"
|
||||
BaseStats_Marumine:: INCLUDE "data/pokemon/base_stats/marumine.inc"
|
||||
BaseStats_Tamatama:: INCLUDE "data/pokemon/base_stats/tamatama.inc"
|
||||
BaseStats_Nassy:: INCLUDE "data/pokemon/base_stats/nassy.inc"
|
||||
BaseStats_Karakara:: INCLUDE "data/pokemon/base_stats/karakara.inc"
|
||||
BaseStats_Garagara:: INCLUDE "data/pokemon/base_stats/garagara.inc"
|
||||
BaseStats_Sawamular:: INCLUDE "data/pokemon/base_stats/sawamular.inc"
|
||||
BaseStats_Ebiwalar:: INCLUDE "data/pokemon/base_stats/ebiwalar.inc"
|
||||
BaseStats_Beroringa:: INCLUDE "data/pokemon/base_stats/beroringa.inc"
|
||||
BaseStats_Dogars:: INCLUDE "data/pokemon/base_stats/dogars.inc"
|
||||
BaseStats_Matadogas:: INCLUDE "data/pokemon/base_stats/matadogas.inc"
|
||||
BaseStats_Sihorn:: INCLUDE "data/pokemon/base_stats/sihorn.inc"
|
||||
BaseStats_Sidon:: INCLUDE "data/pokemon/base_stats/sidon.inc"
|
||||
BaseStats_Lucky:: INCLUDE "data/pokemon/base_stats/lucky.inc"
|
||||
BaseStats_Monjara:: INCLUDE "data/pokemon/base_stats/monjara.inc"
|
||||
BaseStats_Garura:: INCLUDE "data/pokemon/base_stats/garura.inc"
|
||||
BaseStats_Tattu:: INCLUDE "data/pokemon/base_stats/tattu.inc"
|
||||
BaseStats_Seadra:: INCLUDE "data/pokemon/base_stats/seadra.inc"
|
||||
BaseStats_Tosakinto:: INCLUDE "data/pokemon/base_stats/tosakinto.inc"
|
||||
BaseStats_Azumao:: INCLUDE "data/pokemon/base_stats/azumao.inc"
|
||||
BaseStats_Hitodeman:: INCLUDE "data/pokemon/base_stats/hitodeman.inc"
|
||||
BaseStats_Starmie:: INCLUDE "data/pokemon/base_stats/starmie.inc"
|
||||
BaseStats_Barrierd:: INCLUDE "data/pokemon/base_stats/barrierd.inc"
|
||||
BaseStats_Strike:: INCLUDE "data/pokemon/base_stats/strike.inc"
|
||||
BaseStats_Rougela:: INCLUDE "data/pokemon/base_stats/rougela.inc"
|
||||
BaseStats_Eleboo:: INCLUDE "data/pokemon/base_stats/eleboo.inc"
|
||||
BaseStats_Boober:: INCLUDE "data/pokemon/base_stats/boober.inc"
|
||||
BaseStats_Kailios:: INCLUDE "data/pokemon/base_stats/kailios.inc"
|
||||
BaseStats_Kentauros:: INCLUDE "data/pokemon/base_stats/kentauros.inc"
|
||||
BaseStats_Koiking:: INCLUDE "data/pokemon/base_stats/koiking.inc"
|
||||
BaseStats_Gyarados:: INCLUDE "data/pokemon/base_stats/gyarados.inc"
|
||||
BaseStats_Laplace:: INCLUDE "data/pokemon/base_stats/laplace.inc"
|
||||
BaseStats_Metamon:: INCLUDE "data/pokemon/base_stats/metamon.inc"
|
||||
BaseStats_Eievui:: INCLUDE "data/pokemon/base_stats/eievui.inc"
|
||||
BaseStats_Showers:: INCLUDE "data/pokemon/base_stats/showers.inc"
|
||||
BaseStats_Thunders:: INCLUDE "data/pokemon/base_stats/thunders.inc"
|
||||
BaseStats_Booster:: INCLUDE "data/pokemon/base_stats/booster.inc"
|
||||
BaseStats_Porygon:: INCLUDE "data/pokemon/base_stats/porygon.inc"
|
||||
BaseStats_Omnite:: INCLUDE "data/pokemon/base_stats/omnite.inc"
|
||||
BaseStats_Omstar:: INCLUDE "data/pokemon/base_stats/omstar.inc"
|
||||
BaseStats_Kabuto:: INCLUDE "data/pokemon/base_stats/kabuto.inc"
|
||||
BaseStats_Kabutops:: INCLUDE "data/pokemon/base_stats/kabutops.inc"
|
||||
BaseStats_Ptera:: INCLUDE "data/pokemon/base_stats/ptera.inc"
|
||||
BaseStats_Kabigon:: INCLUDE "data/pokemon/base_stats/kabigon.inc"
|
||||
BaseStats_Freezer:: INCLUDE "data/pokemon/base_stats/freezer.inc"
|
||||
BaseStats_Thunder:: INCLUDE "data/pokemon/base_stats/thunder.inc"
|
||||
BaseStats_Fire:: INCLUDE "data/pokemon/base_stats/fire.inc"
|
||||
BaseStats_Miniryu:: INCLUDE "data/pokemon/base_stats/miniryu.inc"
|
||||
BaseStats_Hakuryu:: INCLUDE "data/pokemon/base_stats/hakuryu.inc"
|
||||
BaseStats_Kairyu:: INCLUDE "data/pokemon/base_stats/kairyu.inc"
|
||||
BaseStats_Mewtwo:: INCLUDE "data/pokemon/base_stats/mewtwo.inc"
|
||||
BaseStats_Mew:: INCLUDE "data/pokemon/base_stats/mew.inc"
|
||||
BaseStats_Happa:: INCLUDE "data/pokemon/base_stats/happa.inc"
|
||||
BaseStats_Hanamogura:: INCLUDE "data/pokemon/base_stats/hanamogura.inc"
|
||||
BaseStats_Hanaryu:: INCLUDE "data/pokemon/base_stats/hanaryu.inc"
|
||||
BaseStats_Honoguma:: INCLUDE "data/pokemon/base_stats/honoguma.inc"
|
||||
BaseStats_Volbear:: INCLUDE "data/pokemon/base_stats/volbear.inc"
|
||||
BaseStats_Dynabear:: INCLUDE "data/pokemon/base_stats/dynabear.inc"
|
||||
BaseStats_Kurusu:: INCLUDE "data/pokemon/base_stats/kurusu.inc"
|
||||
BaseStats_Aqua:: INCLUDE "data/pokemon/base_stats/aqua.inc"
|
||||
BaseStats_Aquaria:: INCLUDE "data/pokemon/base_stats/aquaria.inc"
|
||||
BaseStats_Hoho:: INCLUDE "data/pokemon/base_stats/hoho.inc"
|
||||
BaseStats_Bobo:: INCLUDE "data/pokemon/base_stats/bobo.inc"
|
||||
BaseStats_Pachimee:: INCLUDE "data/pokemon/base_stats/pachimee.inc"
|
||||
BaseStats_Mokoko:: INCLUDE "data/pokemon/base_stats/mokoko.inc"
|
||||
BaseStats_Denryu:: INCLUDE "data/pokemon/base_stats/denryu.inc"
|
||||
BaseStats_Mikon:: INCLUDE "data/pokemon/base_stats/mikon.inc"
|
||||
BaseStats_Monja:: INCLUDE "data/pokemon/base_stats/monja.inc"
|
||||
BaseStats_Jaranra:: INCLUDE "data/pokemon/base_stats/jaranra.inc"
|
||||
BaseStats_Haneei:: INCLUDE "data/pokemon/base_stats/haneei.inc"
|
||||
BaseStats_Puku:: INCLUDE "data/pokemon/base_stats/puku.inc"
|
||||
BaseStats_Shibirefugu:: INCLUDE "data/pokemon/base_stats/shibirefugu.inc"
|
||||
BaseStats_Pichu:: INCLUDE "data/pokemon/base_stats/pichu.inc"
|
||||
BaseStats_Py:: INCLUDE "data/pokemon/base_stats/py.inc"
|
||||
BaseStats_Pupurin:: INCLUDE "data/pokemon/base_stats/pupurin.inc"
|
||||
BaseStats_Mizuuo:: INCLUDE "data/pokemon/base_stats/mizuuo.inc"
|
||||
BaseStats_Naty:: INCLUDE "data/pokemon/base_stats/naty.inc"
|
||||
BaseStats_Natio:: INCLUDE "data/pokemon/base_stats/natio.inc"
|
||||
BaseStats_Gyopin:: INCLUDE "data/pokemon/base_stats/gyopin.inc"
|
||||
BaseStats_Maril:: INCLUDE "data/pokemon/base_stats/maril.inc"
|
||||
BaseStats_Manbo1:: INCLUDE "data/pokemon/base_stats/manbo1.inc"
|
||||
BaseStats_Ikari:: INCLUDE "data/pokemon/base_stats/ikari.inc"
|
||||
BaseStats_Grotess:: INCLUDE "data/pokemon/base_stats/grotess.inc"
|
||||
BaseStats_Eksing:: INCLUDE "data/pokemon/base_stats/eksing.inc"
|
||||
BaseStats_Para:: INCLUDE "data/pokemon/base_stats/para.inc"
|
||||
BaseStats_Kokumo:: INCLUDE "data/pokemon/base_stats/kokumo.inc"
|
||||
BaseStats_Twohead:: INCLUDE "data/pokemon/base_stats/twohead.inc"
|
||||
BaseStats_Yoroidori:: INCLUDE "data/pokemon/base_stats/yoroidori.inc"
|
||||
BaseStats_Animon:: INCLUDE "data/pokemon/base_stats/animon.inc"
|
||||
BaseStats_Hinazu:: INCLUDE "data/pokemon/base_stats/hinazu.inc"
|
||||
BaseStats_Sunny:: INCLUDE "data/pokemon/base_stats/sunny.inc"
|
||||
BaseStats_Paon:: INCLUDE "data/pokemon/base_stats/paon.inc"
|
||||
BaseStats_Donphan:: INCLUDE "data/pokemon/base_stats/donphan.inc"
|
||||
BaseStats_Twinz:: INCLUDE "data/pokemon/base_stats/twinz.inc"
|
||||
BaseStats_Kirinriki:: INCLUDE "data/pokemon/base_stats/kirinriki.inc"
|
||||
BaseStats_Painter:: INCLUDE "data/pokemon/base_stats/painter.inc"
|
||||
BaseStats_Kounya:: INCLUDE "data/pokemon/base_stats/kounya.inc"
|
||||
BaseStats_Rinrin:: INCLUDE "data/pokemon/base_stats/rinrin.inc"
|
||||
BaseStats_Berurun:: INCLUDE "data/pokemon/base_stats/berurun.inc"
|
||||
BaseStats_Nyorotono:: INCLUDE "data/pokemon/base_stats/nyorotono.inc"
|
||||
BaseStats_Yadoking:: INCLUDE "data/pokemon/base_stats/yadoking.inc"
|
||||
BaseStats_Annon:: INCLUDE "data/pokemon/base_stats/annon.inc"
|
||||
BaseStats_Rediba:: INCLUDE "data/pokemon/base_stats/rediba.inc"
|
||||
BaseStats_Mitsuboshi:: INCLUDE "data/pokemon/base_stats/mitsuboshi.inc"
|
||||
BaseStats_Puchicorn:: INCLUDE "data/pokemon/base_stats/puchicorn.inc"
|
||||
BaseStats_Eifie:: INCLUDE "data/pokemon/base_stats/eifie.inc"
|
||||
BaseStats_Blacky:: INCLUDE "data/pokemon/base_stats/blacky.inc"
|
||||
BaseStats_Turban:: INCLUDE "data/pokemon/base_stats/turban.inc"
|
||||
BaseStats_Betbaby:: INCLUDE "data/pokemon/base_stats/betbaby.inc"
|
||||
BaseStats_Teppouo:: INCLUDE "data/pokemon/base_stats/teppouo.inc"
|
||||
BaseStats_Okutank:: INCLUDE "data/pokemon/base_stats/okutank.inc"
|
||||
BaseStats_Gongu:: INCLUDE "data/pokemon/base_stats/gongu.inc"
|
||||
BaseStats_Kapoerer:: INCLUDE "data/pokemon/base_stats/kapoerer.inc"
|
||||
BaseStats_Pudie:: INCLUDE "data/pokemon/base_stats/pudie.inc"
|
||||
BaseStats_Haneko:: INCLUDE "data/pokemon/base_stats/haneko.inc"
|
||||
BaseStats_Poponeko:: INCLUDE "data/pokemon/base_stats/poponeko.inc"
|
||||
BaseStats_Wataneko:: INCLUDE "data/pokemon/base_stats/wataneko.inc"
|
||||
BaseStats_Baririna:: INCLUDE "data/pokemon/base_stats/baririna.inc"
|
||||
BaseStats_Lip:: INCLUDE "data/pokemon/base_stats/lip.inc"
|
||||
BaseStats_Elebaby:: INCLUDE "data/pokemon/base_stats/elebaby.inc"
|
||||
BaseStats_Booby:: INCLUDE "data/pokemon/base_stats/booby.inc"
|
||||
BaseStats_Kireihana:: INCLUDE "data/pokemon/base_stats/kireihana.inc"
|
||||
BaseStats_Tsubomitto:: INCLUDE "data/pokemon/base_stats/tsubomitto.inc"
|
||||
BaseStats_Miltank:: INCLUDE "data/pokemon/base_stats/miltank.inc"
|
||||
BaseStats_Bombseeker:: INCLUDE "data/pokemon/base_stats/bombseeker.inc"
|
||||
BaseStats_Gift:: INCLUDE "data/pokemon/base_stats/gift.inc"
|
||||
BaseStats_Kotora:: INCLUDE "data/pokemon/base_stats/kotora.inc"
|
||||
BaseStats_Raitora:: INCLUDE "data/pokemon/base_stats/raitora.inc"
|
||||
BaseStats_Madame:: INCLUDE "data/pokemon/base_stats/madame.inc"
|
||||
BaseStats_Norowara:: INCLUDE "data/pokemon/base_stats/norowara.inc"
|
||||
BaseStats_Kyonpan:: INCLUDE "data/pokemon/base_stats/kyonpan.inc"
|
||||
BaseStats_Yamikarasu:: INCLUDE "data/pokemon/base_stats/yamikarasu.inc"
|
||||
BaseStats_Happi:: INCLUDE "data/pokemon/base_stats/happi.inc"
|
||||
BaseStats_Scissors:: INCLUDE "data/pokemon/base_stats/scissors.inc"
|
||||
BaseStats_Purakkusu:: INCLUDE "data/pokemon/base_stats/purakkusu.inc"
|
||||
BaseStats_Devil:: INCLUDE "data/pokemon/base_stats/devil.inc"
|
||||
BaseStats_Helgaa:: INCLUDE "data/pokemon/base_stats/helgaa.inc"
|
||||
BaseStats_Wolfman:: INCLUDE "data/pokemon/base_stats/wolfman.inc"
|
||||
BaseStats_Warwolf:: INCLUDE "data/pokemon/base_stats/warwolf.inc"
|
||||
BaseStats_Porygon2:: INCLUDE "data/pokemon/base_stats/porygon2.inc"
|
||||
BaseStats_Nameil:: INCLUDE "data/pokemon/base_stats/nameil.inc"
|
||||
BaseStats_Haganeil:: INCLUDE "data/pokemon/base_stats/haganeil.inc"
|
||||
BaseStats_Kingdra:: INCLUDE "data/pokemon/base_stats/kingdra.inc"
|
||||
BaseStats_Rai:: INCLUDE "data/pokemon/base_stats/rai.inc"
|
||||
BaseStats_En:: INCLUDE "data/pokemon/base_stats/en.inc"
|
||||
BaseStats_Sui:: INCLUDE "data/pokemon/base_stats/sui.inc"
|
||||
BaseStats_Nyula:: INCLUDE "data/pokemon/base_stats/nyula.inc"
|
||||
BaseStats_Houou:: INCLUDE "data/pokemon/base_stats/houou.inc"
|
||||
BaseStats_Togepy:: INCLUDE "data/pokemon/base_stats/togepy.inc"
|
||||
BaseStats_Bulu:: INCLUDE "data/pokemon/base_stats/bulu.inc"
|
||||
BaseStats_Tail:: INCLUDE "data/pokemon/base_stats/tail.inc"
|
||||
BaseStats_Leafy:: INCLUDE "data/pokemon/base_stats/leafy.inc"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,11 @@
|
|||
db TYPE_DARK, TYPE_NORMAL ; type
|
||||
db 255 ; catch rate
|
||||
db 100 ; base exp
|
||||
if DEBUG || def(SILVER)
|
||||
db ITEM_BERRY, ITEM_TAG ; items
|
||||
else
|
||||
db ITEM_APPLE, ITEM_TAG ; item
|
||||
endc
|
||||
db GENDER_50_50 ; gender ratio
|
||||
db 100, 4, 70 ; unknown
|
||||
dn 7, 7 ; sprite dimensions
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
add_predef: MACRO
|
||||
\1Predef::
|
||||
dab \1
|
||||
dba \1
|
||||
ENDM
|
||||
|
||||
PredefPointers:: ; 1:62d3
|
||||
|
|
@ -11,90 +11,91 @@ PredefPointers:: ; 1:62d3
|
|||
; Please be a peach and nuke the hell out of these:
|
||||
; WE NEED LABELS!
|
||||
; Thank youu~
|
||||
dbw 1, $6445 ; 0
|
||||
dbw 1, $5D27
|
||||
dbw 1, $6713
|
||||
dbw 1, $66B1
|
||||
dbw 1, $4031
|
||||
dbw 3, $4E10
|
||||
dbw 3, $4D6F
|
||||
dbw 3, $4DE3
|
||||
dbw 3, $4DE3 ; 8
|
||||
dbw 3, $4DE3
|
||||
dbw 3, $4DF9
|
||||
dbw 3, $4E10
|
||||
dbw 3, $4D33
|
||||
dbw 3, $366C
|
||||
dbw 3, $4E3C
|
||||
dbw 3, $5A28
|
||||
dbw 3, $5886 ; 10
|
||||
dbw 3, $5A4F
|
||||
dbw 3, $5AC8
|
||||
dbw 3, $5CFC
|
||||
dbw 3, $5C16
|
||||
dbw 3, $5D5C
|
||||
dbw 3, $5E79
|
||||
dbw 3, $4E7C
|
||||
dbw 3, $5F7D ; 18
|
||||
dbw 3, $5F91
|
||||
dbw 4, $528F
|
||||
dbw 4, $52C1
|
||||
dbw 10, $4C98
|
||||
dbw 11, $5663
|
||||
dbw 15, $55CE
|
||||
dbw 15, $7019
|
||||
dbw 15, $7068 ; 20
|
||||
dbw 15, $704A
|
||||
dbw 15, $508C
|
||||
dbw 15, $567C
|
||||
dbw 15, $61A4
|
||||
dbw 15, $6F19
|
||||
dbw 15, $6874
|
||||
dbw 15, $691E
|
||||
dbw 15, $6963 ; 28
|
||||
dbw 16, $61F8
|
||||
dbw 16, $6252
|
||||
dbw 16, $5FA1
|
||||
dbw 10, $4DA4
|
||||
dbw 10, $4D6E
|
||||
dbw 16, $4AC7
|
||||
dbw 16, $4000
|
||||
dbw 16, $4B5C ; 30
|
||||
dbw 20, $4000
|
||||
dbw 20, $4BFE
|
||||
dbw 20, $4BCD
|
||||
dbw 20, $4B92
|
||||
dbw 20, $48C4
|
||||
dbw 20, $4771
|
||||
dbw 20, $4774
|
||||
dbw 20, $481F ; 38
|
||||
dbw 20, $46D4
|
||||
dbw 20, $469E
|
||||
dbw 20, $42B5
|
||||
dbw 20, $4244
|
||||
dbw 20, $4248
|
||||
dbw 20, $40C6
|
||||
dbw 20, $40A0
|
||||
dbw 20, $4073 ; 40
|
||||
dbw 20, $4ED9
|
||||
dbw 50, $76FF
|
||||
dbw 50, $7710
|
||||
dbw 50, $7733
|
||||
dbw 5, $45B8
|
||||
dbw 5, $46DC
|
||||
dbw 5, $45DE
|
||||
dbw 50, $4000 ; 48
|
||||
dbw 5, $457A
|
||||
dbw 5, $43E0
|
||||
dbw 2, $5695
|
||||
dbw 2, $528B
|
||||
dbw 2, $4786
|
||||
dbw 35, $44BE
|
||||
dbw 35, $49C6
|
||||
dbw 35, $4940 ; 50
|
||||
dbw 51, $4001
|
||||
dbw 51, $4000
|
||||
dbw 51, $4000
|
||||
dbw 63, $5B66
|
||||
dbw 4, $640B
|
||||
add_predef Function_6445
|
||||
add_predef Function_5d27
|
||||
add_predef Function_6713
|
||||
add_predef Function_66b1
|
||||
add_predef Function_4031
|
||||
add_predef Function_ce10
|
||||
add_predef Function_cd6f
|
||||
add_predef Function_cde3
|
||||
add_predef Function_cde3_2
|
||||
add_predef Function_cde3_3
|
||||
add_predef Function_cdf9
|
||||
add_predef Function_ce10_2
|
||||
add_predef Function_cd33
|
||||
Function_366cPredef::
|
||||
dbw 3, Function_366c
|
||||
add_predef Function_ce3c
|
||||
add_predef Function_da28
|
||||
add_predef Function_d886
|
||||
add_predef Function_da4f
|
||||
add_predef Function_dac8
|
||||
add_predef Function_dcfc
|
||||
add_predef Function_dc16
|
||||
add_predef Function_dd5c
|
||||
add_predef Function_de79
|
||||
add_predef Function_ce7c
|
||||
add_predef Function_df7d
|
||||
add_predef Function_df91
|
||||
add_predef Function_1128f
|
||||
add_predef Function_112c1
|
||||
add_predef Function_28c98
|
||||
add_predef Function_2d663
|
||||
add_predef Function_3d5ce
|
||||
add_predef Function_3f019
|
||||
add_predef Function_3f068
|
||||
add_predef Function_3f04a
|
||||
add_predef Function_3d08c
|
||||
add_predef Function_3d67c
|
||||
add_predef Function_3e1a4
|
||||
add_predef Function_3ef19
|
||||
add_predef Function_3e874
|
||||
add_predef Function_3e91e
|
||||
add_predef Function_3e963
|
||||
add_predef Function_421f8
|
||||
add_predef Function_42252
|
||||
add_predef Function_41fa1
|
||||
add_predef Function_28da4
|
||||
add_predef Function_28d6e
|
||||
add_predef Function_40ac7
|
||||
add_predef Function_40000
|
||||
add_predef Function_40b5c
|
||||
add_predef Function_50000
|
||||
add_predef Function_50bfe
|
||||
add_predef Function_50bcd
|
||||
add_predef Function_50b92
|
||||
add_predef Function_508c4
|
||||
add_predef Function_50771
|
||||
add_predef Function_50774
|
||||
add_predef Function_5081f
|
||||
add_predef Function_506d4
|
||||
add_predef Function_5069e
|
||||
add_predef Function_502b5
|
||||
add_predef Function_50244
|
||||
add_predef Function_50248
|
||||
add_predef Function_500c6
|
||||
add_predef Function_500a0
|
||||
add_predef Function_50073
|
||||
add_predef Function_50ed9
|
||||
add_predef Function_cb6ff
|
||||
add_predef Function_cb710
|
||||
add_predef Function_cb733
|
||||
add_predef Function_145b8
|
||||
add_predef Function_146dc
|
||||
add_predef Function_145de
|
||||
add_predef Function_c8000
|
||||
add_predef Function_1457a
|
||||
add_predef Function_143e0
|
||||
add_predef Function_9695
|
||||
add_predef Function_928b
|
||||
add_predef Function_8786
|
||||
add_predef Function_8c4be
|
||||
add_predef Function_8c9c6
|
||||
add_predef Function_8c940
|
||||
add_predef Function_cc001
|
||||
add_predef Function_cc000
|
||||
add_predef Function_cc000_2
|
||||
add_predef Function_fdb66
|
||||
add_predef Function_1240b
|
||||
dbw $ff, InexplicablyEmptyFunction
|
||||
|
|
|
|||
|
|
@ -38,7 +38,11 @@ SuperPalettes::
|
|||
RGB 28,28,28, 30,26,15, 26,20,00, 04,04,04 ; YELLOWBAR
|
||||
RGB 28,28,28, 30,26,15, 26,10,06, 04,04,04 ; REDBAR
|
||||
RGB 28,28,28, 20,26,31, 17,23,10, 04,04,04 ; TOWN_MAP
|
||||
if def(GOLD)
|
||||
RGB 28,28,28, 24,20,10, 21,00,04, 04,04,04 ; LOGO_1
|
||||
else
|
||||
RGB 28,28,28, 18,18,18, 21,00,04, 04,04,04 ; LOGO_1
|
||||
endc
|
||||
RGB 28,28,28, 31,20,10, 21,00,04, 04,04,04 ; LOGO_2
|
||||
RGB 28,28,28, 30,26,16, 16,12,09, 04,04,04 ; GAME_FREAK
|
||||
RGB 28,28,28, 15,28,26, 12,22,26, 03,16,14 ; INTRO_WATER
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Tileset Headers", ROMX[$488D], BANK[$03]
|
||||
else
|
||||
SECTION "Tileset Headers", ROMX[$4875], BANK[$03]
|
||||
endc
|
||||
|
||||
Tileset_00: ; 0xc88d
|
||||
db $06 ; bank
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ INCLUDE "constants.asm"
|
|||
; Trainer data structure:
|
||||
; - db "NAME@", TRAINERTYPE_* constant
|
||||
; - 1 to 6 Pokémon:
|
||||
; * for TRAINERTYPE_NORMAL: db level, species
|
||||
; * for TRAINERTYPE_ITEM: db level, species, item
|
||||
; * for TRAINERTYPE_MOVES: db level, species, 4 moves
|
||||
; * for TRAINERTYPE_ITEM_MOVES: db level, species, item, 4 moves
|
||||
; * for TRAINERTYPE_NORMAL: db level, species
|
||||
; * for TRAINERTYPE_ITEM: db level, species, item
|
||||
; * for TRAINERTYPE_MOVES: db level, species, 4 moves
|
||||
; * for TRAINERTYPE_ITEM_MOVES: db level, species, item, 4 moves
|
||||
; - db -1 ; end
|
||||
|
||||
SECTION "Trainer Parties", ROMX[$5110], BANK[$E]
|
||||
|
|
@ -15,6 +15,7 @@ INCLUDE "data/trainers/party_pointers.inc"
|
|||
|
||||
; TODO: decode all data
|
||||
|
||||
if def(GOLD)
|
||||
SECTION "Trainer Parties 1 TEMPORARY", ROMX[$51BF],BANK[$E]
|
||||
AkaneGroup::
|
||||
BugCatcherBoyGroup::
|
||||
|
|
@ -205,3 +206,195 @@ SportsmanGroup::
|
|||
db "しげき@", TRAINERTYPE_ITEM
|
||||
db 8, DEX_DONPHAN, ITEM_NONE
|
||||
db -1 ; end
|
||||
|
||||
else
|
||||
|
||||
|
||||
SECTION "Trainer Parties 1 TEMPORARY", ROMX[$51BF],BANK[$E]
|
||||
AkaneGroup::
|
||||
BugCatcherBoyGroup::
|
||||
; BUG_CATCHER_BOY_KENJI
|
||||
db "けんじ@", TRAINERTYPE_ITEM_MOVES
|
||||
db 9, DEX_REDIBA, ITEM_NONE, MOVE_SCRATCH, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE
|
||||
db -1 ; end
|
||||
|
||||
; BUG_CATCHER_BOY_KEN
|
||||
db "けん@", TRAINERTYPE_ITEM_MOVES
|
||||
db 7, DEX_KONGPANG, ITEM_NONE, MOVE_STUN_SPORE, MOVE_LEECH_LIFE, MOVE_NONE, MOVE_NONE
|
||||
db -1 ; end
|
||||
|
||||
SECTION "Trainer Parties 2 TEMPORARY", ROMX[$52B4],BANK[$E]
|
||||
MikanGroup::
|
||||
|
||||
SECTION "Trainer Parties 3 TEMPORARY", ROMX[$53BC],BANK[$E]
|
||||
OkidoGroup::
|
||||
|
||||
SECTION "Trainer Parties 4 TEMPORARY", ROMX[$54BA],BANK[$E]
|
||||
WataruGroup::
|
||||
|
||||
SECTION "Trainer Parties 5 TEMPORARY", ROMX[$54E0],BANK[$E]
|
||||
GerugeMemberMGroup::
|
||||
|
||||
SECTION "Trainer Parties 6 TEMPORARY", ROMX[$54FE],BANK[$E]
|
||||
Trio1Group::
|
||||
BeautyGroup::
|
||||
|
||||
SECTION "Trainer Parties 7 TEMPORARY", ROMX[$55EB],BANK[$E]
|
||||
FledglingGroup::
|
||||
|
||||
SECTION "Trainer Parties 8 TEMPORARY", ROMX[$56CE],BANK[$E]
|
||||
PokeManiacGroup::
|
||||
|
||||
SECTION "Trainer Parties 9 TEMPORARY", ROMX[$57BC],BANK[$E]
|
||||
GentlemanGroup::
|
||||
|
||||
SECTION "Trainer Parties 10 TEMPORARY", ROMX[$57E0],BANK[$E]
|
||||
TeacherMGroup::
|
||||
|
||||
SECTION "Trainer Parties 11 TEMPORARY", ROMX[$57EC],BANK[$E]
|
||||
TeacherFGroup::
|
||||
|
||||
SECTION "Trainer Parties 12 TEMPORARY", ROMX[$57F2],BANK[$E]
|
||||
ManchildGroup::
|
||||
|
||||
SECTION "Trainer Parties 13 TEMPORARY", ROMX[$58C3],BANK[$E]
|
||||
RockerGroup::
|
||||
|
||||
SECTION "Trainer Parties 14 TEMPORARY", ROMX[$58F2],BANK[$E]
|
||||
HikerGroup::
|
||||
|
||||
SECTION "Trainer Parties 15 TEMPORARY", ROMX[$5995],BANK[$E]
|
||||
KimonoGirlGroup::
|
||||
; KIMONO_GIRL_KOUME
|
||||
db "こうめ@", TRAINERTYPE_ITEM_MOVES
|
||||
db 9, DEX_DONPHAN, ITEM_NONE, MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_NONE, MOVE_NONE
|
||||
db -1 ; end
|
||||
|
||||
; KIMONO_GIRL_TAMAO
|
||||
db "たまお@", TRAINERTYPE_ITEM_MOVES
|
||||
db 10, DEX_PURIN, ITEM_NONE, MOVE_CHARM, MOVE_POUND, MOVE_ENCORE, MOVE_NONE
|
||||
db -1 ; end
|
||||
|
||||
SECTION "Trainer Parties 16 TEMPORARY", ROMX[$518A],BANK[$E]
|
||||
HayatoGroup::
|
||||
|
||||
SECTION "Trainer Parties 17 TEMPORARY", ROMX[$5216],BANK[$E]
|
||||
TsukishiGroup::
|
||||
LassGroup::
|
||||
|
||||
SECTION "Trainer Parties 18 TEMPORARY", ROMX[$526F],BANK[$E]
|
||||
EnokiGroup::
|
||||
|
||||
SECTION "Trainer Parties 19 TEMPORARY", ROMX[$528F],BANK[$E]
|
||||
OkeraGroup::
|
||||
|
||||
SECTION "Trainer Parties 20 TEMPORARY", ROMX[$533D],BANK[$E]
|
||||
GamaGroup::
|
||||
|
||||
SECTION "Trainer Parties 21 TEMPORARY", ROMX[$5542],BANK[$E]
|
||||
Trio2Group::
|
||||
|
||||
SECTION "Trainer Parties 22 TEMPORARY", ROMX[$5554],BANK[$E]
|
||||
Trio3Group::
|
||||
|
||||
SECTION "Trainer Parties 23 TEMPORARY", ROMX[$5673],BANK[$E]
|
||||
ProfessionalMGroup::
|
||||
ProfessionalFGroup::
|
||||
|
||||
SECTION "Trainer Parties 24 TEMPORARY", ROMX[$5812],BANK[$E]
|
||||
SwimmerMGroup::
|
||||
|
||||
SECTION "Trainer Parties 25 TEMPORARY", ROMX[$5821],BANK[$E]
|
||||
SuperNerdGroup::
|
||||
|
||||
SECTION "Trainer Parties 26 TEMPORARY", ROMX[$5833],BANK[$E]
|
||||
EngineerGroup::
|
||||
|
||||
SECTION "Trainer Parties 27 TEMPORARY", ROMX[$5965],BANK[$E]
|
||||
JugglerGroup::
|
||||
|
||||
SECTION "Trainer Parties 28 TEMPORARY", ROMX[$5971],BANK[$E]
|
||||
TwinsGroup::
|
||||
|
||||
SECTION "Trainer Parties 29 TEMPORARY", ROMX[$5976],BANK[$E]
|
||||
SchoolboyGroup::
|
||||
; SCHOOLBOY_TETSUYA
|
||||
db "てつや@", TRAINERTYPE_ITEM
|
||||
db 8, DEX_YADOKING, ITEM_NONE
|
||||
db -1 ; end
|
||||
|
||||
SECTION "Trainer Parties 30 TEMPORARY", ROMX[$597F],BANK[$E]
|
||||
FirebreatherGroup::
|
||||
; FIREBREATHER_AKITO
|
||||
db "あきと@", TRAINERTYPE_ITEM
|
||||
db 8, DEX_BOOBY, ITEM_NONE
|
||||
db -1 ; end
|
||||
|
||||
SECTION "Trainer Parties 31 TEMPORARY", ROMX[$5320],BANK[$E]
|
||||
BlueGroup::
|
||||
|
||||
SECTION "Trainer Parties 32 TEMPORARY", ROMX[$5375],BANK[$E]
|
||||
RivalGroup::
|
||||
|
||||
SECTION "Trainer Parties 33 TEMPORARY", ROMX[$5404],BANK[$E]
|
||||
SakakiGroup::
|
||||
|
||||
SECTION "Trainer Parties 34 TEMPORARY", ROMX[$5427],BANK[$E]
|
||||
ProtagonistGroup::
|
||||
|
||||
SECTION "Trainer Parties 35 TEMPORARY", ROMX[$5433],BANK[$E]
|
||||
SibaGroup::
|
||||
KasumiGroup::
|
||||
FisherGroup::
|
||||
|
||||
SECTION "Trainer Parties 36 TEMPORARY", ROMX[$5476],BANK[$E]
|
||||
KannaGroup::
|
||||
|
||||
SECTION "Trainer Parties 37 TEMPORARY", ROMX[$555D],BANK[$E]
|
||||
RocketFGroup::
|
||||
|
||||
SECTION "Trainer Parties 38 TEMPORARY", ROMX[$557E],BANK[$E]
|
||||
YoungsterGroup::
|
||||
|
||||
SECTION "Trainer Parties 39 TEMPORARY", ROMX[$564F],BANK[$E]
|
||||
ProdigyGroup::
|
||||
|
||||
SECTION "Trainer Parties 40 TEMPORARY", ROMX[$578C],BANK[$E]
|
||||
RocketMGroup::
|
||||
|
||||
SECTION "Trainer Parties 41 TEMPORARY", ROMX[$5808],BANK[$E]
|
||||
SwimmerFGroup::
|
||||
|
||||
SECTION "Trainer Parties 42 TEMPORARY", ROMX[$5817],BANK[$E]
|
||||
SailorGroup::
|
||||
|
||||
SECTION "Trainer Parties 43 TEMPORARY", ROMX[$58FE],BANK[$E]
|
||||
BikerGroup::
|
||||
|
||||
SECTION "Trainer Parties 44 TEMPORARY", ROMX[$594D],BANK[$E]
|
||||
RockClimberGroup::
|
||||
|
||||
SECTION "Trainer Parties 45 TEMPORARY", ROMX[$5959],BANK[$E]
|
||||
BurglarGroup::
|
||||
|
||||
SECTION "Trainer Parties 46 TEMPORARY", ROMX[$5969],BANK[$E]
|
||||
BlackbeltGroup::
|
||||
|
||||
SECTION "Trainer Parties 47 TEMPORARY", ROMX[$596D],BANK[$E]
|
||||
PsychicGroup::
|
||||
KungFuMasterGroup::
|
||||
FortuneTellerGroup::
|
||||
HooliganGroup::
|
||||
SageGroup::
|
||||
MediumGroup::
|
||||
SoldierGroup::
|
||||
GerugeMemberFGroup::
|
||||
|
||||
SECTION "Trainer Parties 48 TEMPORARY", ROMX[$5988],BANK[$E]
|
||||
SportsmanGroup::
|
||||
; SPORTSMAN_SHIGEKI
|
||||
db "てつじ@", TRAINERTYPE_ITEM_MOVES
|
||||
db 9, DEX_DONPHAN, ITEM_NONE, MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_NONE, MOVE_NONE
|
||||
db -1 ; end
|
||||
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Predef pointers", ROMX[$62B0], BANK[$01]
|
||||
else
|
||||
SECTION "Predef pointers", ROMX[$62AD], BANK[$01]
|
||||
endc
|
||||
|
||||
GetPredefPointer:: ; 1:62b0
|
||||
ld a, h
|
||||
|
|
|
|||
|
|
@ -6,7 +6,11 @@ IntroSequence:: ; 5d8c
|
|||
; TODO
|
||||
|
||||
|
||||
if DEBUG
|
||||
SECTION "Title screen TEMPORARY", ROMX[$62A5],BANK[1] ; TODO: merge this with the main section above
|
||||
else
|
||||
SECTION "Title screen TEMPORARY", ROMX[$62A2],BANK[1] ; TODO: merge this with the main section above
|
||||
endc
|
||||
|
||||
GameInit:: ; 62a5
|
||||
call ClearWindowData
|
||||
|
|
|
|||
15
gfx.asm
15
gfx.asm
|
|
@ -35,11 +35,19 @@ INCBIN "gfx/sgb/sgb_border_alt.2bpp"
|
|||
|
||||
SECTION "SGB Border GFX", ROMX[$6B1C], BANK[$02]
|
||||
SGBBorderGFX::
|
||||
INCBIN "gfx/sgb/sgb_border.2bpp"
|
||||
if def(GOLD)
|
||||
INCBIN "gfx/sgb/sgb_border_gold.2bpp"
|
||||
else
|
||||
INCBIN "gfx/sgb/sgb_border_silver.2bpp"
|
||||
endc
|
||||
|
||||
SECTION "Title Screen GFX", ROMX[$47CF], BANK[$04]
|
||||
TitleScreenGFX::
|
||||
INCBIN "gfx/title/title.2bpp"
|
||||
if def(GOLD)
|
||||
INCBIN "gfx/title/title_gold.2bpp"
|
||||
else
|
||||
INCBIN "gfx/title/title_silver.2bpp"
|
||||
endc
|
||||
|
||||
SECTION "Mail Icon GFX", ROMX[$5BB1], BANK[$04]
|
||||
MailIconGFX::
|
||||
|
|
@ -51,9 +59,12 @@ INCBIN "gfx/trainer_card/trainer_card.2bpp"
|
|||
TrainerCardLeadersGFX::
|
||||
INCBIN "gfx/trainer_card/leaders.2bpp"
|
||||
|
||||
if DEBUG
|
||||
; Not sure how to parse this from the non-debug ROM, so I'll leave this be for now
|
||||
SECTION "Unused Leader", ROMX[$7BA3], BANK[$04]
|
||||
UnusedLeaderNameGFX::
|
||||
INCBIN "gfx/trainer_card/unused_leader_name.2bpp"
|
||||
endc
|
||||
|
||||
SECTION "Bank 6 Tilesets 00", ROMX[$4000], BANK[$06]
|
||||
Tileset_00_GFX:
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 589 B After Width: | Height: | Size: 589 B |
BIN
gfx/sgb/sgb_border_silver.png
Normal file
BIN
gfx/sgb/sgb_border_silver.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 679 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
gfx/title/title_silver.png
Normal file
BIN
gfx/title/title_silver.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Audio interface", ROM0[$3CBF]
|
||||
else
|
||||
SECTION "Audio interface", ROM0[$3C83]
|
||||
endc
|
||||
|
||||
DisableAudio:: ; 3cbf
|
||||
push hl
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Bankswitch", ROM0[$32C2]
|
||||
else
|
||||
SECTION "Bankswitch", ROM0[$3286]
|
||||
endc
|
||||
|
||||
; Moved to a rst vector in final US releases (not sure about JP)
|
||||
; All rst vectors are unused at this point in development
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Sprite clearing", ROM0[$32DC]
|
||||
else
|
||||
SECTION "Sprite clearing", ROM0[$32A0]
|
||||
endc
|
||||
|
||||
ClearSprites:: ; 32dc
|
||||
ld hl, wVirtualOAM
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Copy functions", ROM0[$32F7]
|
||||
else
|
||||
SECTION "Copy functions", ROM0[$32BB]
|
||||
endc
|
||||
|
||||
; Copy bc bytes from a:hl to de.
|
||||
FarCopyBytes:: ; 32f7
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Tilemap copy/restore funcs", ROM0[$3355]
|
||||
else
|
||||
SECTION "Tilemap copy/restore funcs", ROM0[$3319]
|
||||
endc
|
||||
|
||||
BackUpTilesToBuffer:: ; 3355
|
||||
hlcoord 0, 0
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Farcall", ROM0[$2FA8]
|
||||
else
|
||||
SECTION "FarCall", ROM0[$2F6C]
|
||||
endc
|
||||
|
||||
FarCall_hl:: ; 2fa8
|
||||
push af
|
||||
|
|
|
|||
|
|
@ -7,7 +7,19 @@ SECTION "Entry point", ROM0[$100]
|
|||
SECTION "Global check value", ROM0[$14E]
|
||||
; The ROM has an incorrect global check, so set it here
|
||||
; It is not corrected by RGBFIX
|
||||
if def(GOLD)
|
||||
if DEBUG
|
||||
db $21, $C6
|
||||
else
|
||||
db $7e, $49
|
||||
endc
|
||||
else
|
||||
if DEBUG
|
||||
db $c9, $2f
|
||||
else
|
||||
db $b1, $7a
|
||||
endc
|
||||
endc
|
||||
|
||||
|
||||
SECTION "Init", ROM0[$52F]
|
||||
|
|
|
|||
41
home/math.asm
Normal file
41
home/math.asm
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
include "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Home Math", ROM0[$341F]
|
||||
else
|
||||
SECTION "Home Math", ROM0[$33E3]
|
||||
endc
|
||||
|
||||
_341F:: ; 341f
|
||||
; Returns hl + a * 6
|
||||
and a
|
||||
ret z
|
||||
ld bc, 6
|
||||
.loop:
|
||||
add hl, bc
|
||||
dec a
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
AddAMulBC:: ; 3429
|
||||
; Returns hl + a * bc
|
||||
and a
|
||||
ret z
|
||||
.loop:
|
||||
add hl, bc
|
||||
dec a
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
memcmp:: ; 3430
|
||||
; Compare c bytes at hl and de
|
||||
; Returns z if all equal, nz otherwise.
|
||||
.loop:
|
||||
ld a, [de]
|
||||
cp [hl]
|
||||
ret nz
|
||||
inc de
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "3A4B", ROM0[$3a4b]
|
||||
if DEBUG
|
||||
SECTION "3A4B", ROM0[$3A4B]
|
||||
else
|
||||
SECTION "3A4B", ROM0[$3A0F]
|
||||
endc
|
||||
; copies the base stat data of a pokemon to wMonHeader
|
||||
; INPUT:
|
||||
; [wcb5b] = pokemon ID in dex order
|
||||
|
|
@ -43,7 +47,11 @@ GetMonHeader:: ; 3a4b (0:3a4b)
|
|||
pop bc
|
||||
ret
|
||||
|
||||
SECTION "3AED", ROM0[$3aed]
|
||||
if DEBUG
|
||||
SECTION "3AED", ROM0[$3AED]
|
||||
else
|
||||
SECTION "3AED", ROM0[$3AB1]
|
||||
endc
|
||||
|
||||
; Uncompresses the front or back sprite of the specified mon
|
||||
; assumes the corresponding mon header is already loaded
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Predef", ROM0[$2FDE]
|
||||
else
|
||||
SECTION "Predef", ROM0[$2FA2]
|
||||
endc
|
||||
|
||||
Predef:: ; 2fde
|
||||
ld [wPredefID], a
|
||||
|
|
|
|||
20
home/rst.asm
20
home/rst.asm
|
|
@ -1,25 +1,29 @@
|
|||
; rst vectors
|
||||
|
||||
SECTION "rst00", ROM0[$000]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst08", ROM0[$008]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst10", ROM0[$010]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst18", ROM0[$018]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst20", ROM0[$020]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst28", ROM0[$028]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst30", ROM0[$030]
|
||||
rst $38
|
||||
rst $38
|
||||
|
||||
SECTION "rst38", ROM0[$038]
|
||||
jp $F080 ; Jumps in the middle of unmapped memory. Probably used to trigger a breakpoint of sorts.
|
||||
if DEBUG && def(SILVER)
|
||||
rst $38
|
||||
else
|
||||
jp $F080 ; Jumps in the middle of unmapped memory. Probably used to trigger a breakpoint of sorts.
|
||||
endc
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "SRAM functions", ROM0[$32A7]
|
||||
else
|
||||
SECTION "SRAM functions", ROM0[$326B]
|
||||
endc
|
||||
|
||||
OpenSRAM:: ; 32a7
|
||||
push af
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
if DEBUG
|
||||
SECTION "Empty function", ROM0[$2F97]
|
||||
else
|
||||
SECTION "Empty function", ROM0[$2F5B]
|
||||
endc
|
||||
|
||||
InexplicablyEmptyFunction:: ; 2f97
|
||||
REPT 16
|
||||
|
|
@ -34,3 +38,86 @@ _2007:: ; 2007
|
|||
ld [wce5f], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
SECTION "Unknown functions 2", ROM0[$2075]
|
||||
|
||||
_2075:: ; 2075
|
||||
; Prepares a buffer for the clock display, which in the Debug ROM is displayed on the bottom of the screen.
|
||||
; This function is called every frame, and loads special tiles into the $66-$7a space.
|
||||
ld hl, wcbd2
|
||||
ld bc, $14
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
|
||||
if DEBUG
|
||||
ld hl, $d153
|
||||
bit 0, [hl]
|
||||
jr z, ._209e
|
||||
ld hl, $d65b
|
||||
ld de, wcbd2 + 4
|
||||
ld c, $01
|
||||
call _20CD
|
||||
ld hl, $d65a
|
||||
ld de, wcbd2 + 8
|
||||
ld c, $01
|
||||
call _20CD
|
||||
ret
|
||||
._209e:
|
||||
endc
|
||||
|
||||
ld hl, hHours
|
||||
ld de, wcbd2
|
||||
call _20DC
|
||||
ld hl, hMinutes
|
||||
ld de, wcbd2 + 3
|
||||
call _20DC
|
||||
ldh a, [hDays]
|
||||
and 7
|
||||
add $71 ; Sunday
|
||||
ld [wcbd2 + 6], a
|
||||
ld a, $78 ; power
|
||||
ld [wcbd2 + 9], a
|
||||
inc a ; mobile
|
||||
ld [wcbd2 + 11], a
|
||||
ldh a, [hSeconds]
|
||||
and 1
|
||||
ret z
|
||||
ld a, $70 ; :
|
||||
ld [wcbd2 + 2], a
|
||||
ret
|
||||
|
||||
_20CD:: ; 20cd
|
||||
; PrintAsHex
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
swap a
|
||||
call _20F1
|
||||
ld a, b
|
||||
call _20F1
|
||||
dec c
|
||||
jr nz, _20CD
|
||||
ret
|
||||
|
||||
_20DC:: ; 20dc
|
||||
; PrintAsDec
|
||||
ld a, [hli]
|
||||
ld b, 0
|
||||
._20df:
|
||||
inc b
|
||||
sub 10
|
||||
jr nc, ._20df
|
||||
dec b
|
||||
add 10
|
||||
push af
|
||||
ld a, b
|
||||
call _20F1
|
||||
pop af
|
||||
call _20F1
|
||||
ret
|
||||
|
||||
_20F1:: ; 20f1
|
||||
and %1111
|
||||
add $66 ; digit 0
|
||||
ld [de], a
|
||||
inc de
|
||||
ret
|
||||
|
|
|
|||
8
hram.asm
8
hram.asm
|
|
@ -4,7 +4,13 @@ hOAMDMA:: ; ff80
|
|||
ds 10
|
||||
|
||||
|
||||
ds 14 ; TODO
|
||||
ds 3 ; TODO
|
||||
|
||||
hHours:: db ; ff8d
|
||||
hMinutes:: db ; ff8e
|
||||
hSeconds:: db ; ff8f
|
||||
hDays:: db ; ff90
|
||||
ds 7 ; TODO
|
||||
|
||||
|
||||
hROMBank:: ; ff98
|
||||
|
|
|
|||
5
roms.md5
5
roms.md5
|
|
@ -1 +1,4 @@
|
|||
2eadbed83b775c097ff79e5128d1184f *pokegold-spaceworld.gb
|
||||
3c407114de28d17b7113a2c0cee9a37c *pokegold_spaceworld.gb
|
||||
2eadbed83b775c097ff79e5128d1184f *pokegold_debug_spaceworld.gb
|
||||
c52a677c35f15320d5b495e14809f00d *pokesilver_spaceworld.gb
|
||||
fa65d3759bb17c489de171a598ba4913 *pokesilver_debug_spaceworld.gb
|
||||
|
|
|
|||
111
shim.sym
111
shim.sym
|
|
@ -1,111 +0,0 @@
|
|||
; ROM0
|
||||
00:0884 UpdateJoypad
|
||||
00:0d1a LoadFontExtra
|
||||
00:0d0a LoadFont
|
||||
00:0E2A ClearTileMap
|
||||
00:0e3d DrawTextBox
|
||||
00:0E93 PlaceString
|
||||
00:0E94 PlaceNextChar
|
||||
00:0E9D CheckDict
|
||||
00:10A6 PlaceHLTextAtBC
|
||||
00:10B7 DoTextUntilTerminator
|
||||
00:10C1 DoTextUntilTerminator.continue
|
||||
00:10E2 Text_TX
|
||||
00:120C TextCommands
|
||||
00:1d49 LoadMenuHeader
|
||||
00:1e58 OpenMenu
|
||||
00:1F9E ClearWindowData
|
||||
00:1FCC ClearWindowData.bytefill
|
||||
|
||||
00:20ff RunMapScript
|
||||
00:232c LoadMapWarp
|
||||
00:23e5 OverworldFadeIn
|
||||
|
||||
00:3270 Random
|
||||
00:3429 AddAMulBC
|
||||
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: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 ; What the f*** is this???
|
||||
|
||||
01:53cc MainMenu
|
||||
|
||||
02:4856 DecompTownMapTilemap
|
||||
02:48da DecompTownMapTilemap.tilemap ; compressed
|
||||
02:4f32 PokegearRadioGfx
|
||||
02:4c7c DrawMap
|
||||
02:4dc2 TownMapGfx
|
||||
02:5695 CheckSGB ; ?
|
||||
|
||||
03:4791 DebugWarp
|
||||
03:479f DebugWarp.Destinations
|
||||
|
||||
04:5677 DoPlayerMovement
|
||||
|
||||
0e:4b78 LoadTrainerClassName
|
||||
0e:4ba0 LoadTrainerClassName.got_name
|
||||
0e:4ba9 LoadTrainerClass
|
||||
|
||||
10:40A6 ShowPokedexMenu
|
||||
|
||||
23:4349 OverworldFadeOut
|
||||
23:60cc MenuMonIconGfx
|
||||
|
||||
30:4000 OverworldSpriteGfx
|
||||
|
||||
3A:4D9D _PlayCryHeader
|
||||
3A:4E22 _PlaySFX
|
||||
3A:4F11 LoadChannel
|
||||
3A:4F6C LoadMusicByte
|
||||
3A:52C7 Music
|
||||
|
||||
3f:64ce MonsterTest
|
||||
3f:654e PicTest
|
||||
3f:6750 PicTestMenu
|
||||
3f:6755 PicTestMenu.loop
|
||||
|
||||
;00:BFFF sWindowStackTop
|
||||
|
||||
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:CE62 wTextBoxFlags
|
||||
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 ; In final, $DE7D in NamesPointers (6th entry)
|
||||
179
shim_gold.sym
Normal file
179
shim_gold.sym
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
00:0884 UpdateJoypad
|
||||
00:0D0A LoadFont
|
||||
00:0D1A LoadFontExtra
|
||||
00:0E2A ClearTileMap
|
||||
00:0E3D DrawTextBox
|
||||
00:0E93 PlaceString
|
||||
00:0E94 PlaceNextChar
|
||||
00:0E9D CheckDict
|
||||
00:10A6 PlaceHLTextAtBC
|
||||
00:10B7 DoTextUntilTerminator
|
||||
00:10C1 DoTextUntilTerminator.continue
|
||||
00:10E2 Text_TX
|
||||
00:120C TextCommands
|
||||
00:1D49 LoadMenuHeader
|
||||
00:1E58 OpenMenu
|
||||
00:1F9E ClearWindowData
|
||||
00:1FCC ClearWindowData.bytefill
|
||||
00:20E1 RunMapScript
|
||||
00:230E LoadMapWarp
|
||||
00:23C7 OverworldFadeIn
|
||||
00:3234 Random
|
||||
00:3621 WaitBGMap
|
||||
00:362B SetPalettes
|
||||
00:3634 ClearPalettes
|
||||
00:363C GetMemSGBLayout
|
||||
00:363E GetSGBLayout
|
||||
00:360C SetHPPal
|
||||
00:3619 SetHPPal.done
|
||||
00:3630 Function_366c
|
||||
00:36C8 NamesPointers
|
||||
00:36E0 GetName
|
||||
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: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: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:640B Function_1240b
|
||||
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:4349 OverworldFadeOut
|
||||
23:44BE Function_8c4be
|
||||
23:4940 Function_8c940
|
||||
23:49C6 Function_8c9c6
|
||||
23:60CC MenuMonIconGfx
|
||||
30:4000 OverworldSpriteGfx
|
||||
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: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:CE62 wTextBoxFlags
|
||||
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
|
||||
179
shim_gold_debug.sym
Normal file
179
shim_gold_debug.sym
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
00:0884 UpdateJoypad
|
||||
00:0D0A LoadFont
|
||||
00:0D1A LoadFontExtra
|
||||
00:0E2A ClearTileMap
|
||||
00:0E3D DrawTextBox
|
||||
00:0E93 PlaceString
|
||||
00:0E94 PlaceNextChar
|
||||
00:0E9D CheckDict
|
||||
00:10A6 PlaceHLTextAtBC
|
||||
00:10B7 DoTextUntilTerminator
|
||||
00:10C1 DoTextUntilTerminator.continue
|
||||
00:10E2 Text_TX
|
||||
00:120C TextCommands
|
||||
00:1D49 LoadMenuHeader
|
||||
00:1E58 OpenMenu
|
||||
00:1F9E ClearWindowData
|
||||
00:1FCC ClearWindowData.bytefill
|
||||
00:20FF RunMapScript
|
||||
00:232C LoadMapWarp
|
||||
00:23E5 OverworldFadeIn
|
||||
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:366C Function_366c
|
||||
00:36C8 NamesPointers
|
||||
00:36E0 GetName
|
||||
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: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: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:640B Function_1240b
|
||||
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:4349 OverworldFadeOut
|
||||
23:44BE Function_8c4be
|
||||
23:4940 Function_8c940
|
||||
23:49C6 Function_8c9c6
|
||||
23:60CC MenuMonIconGfx
|
||||
30:4000 OverworldSpriteGfx
|
||||
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: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:CE62 wTextBoxFlags
|
||||
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
|
||||
179
shim_silver.sym
Normal file
179
shim_silver.sym
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
00:0884 UpdateJoypad
|
||||
00:0D0A LoadFont
|
||||
00:0D1A LoadFontExtra
|
||||
00:0E2A ClearTileMap
|
||||
00:0E3D DrawTextBox
|
||||
00:0E93 PlaceString
|
||||
00:0E94 PlaceNextChar
|
||||
00:0E9D CheckDict
|
||||
00:10A6 PlaceHLTextAtBC
|
||||
00:10B7 DoTextUntilTerminator
|
||||
00:10C1 DoTextUntilTerminator.continue
|
||||
00:10E2 Text_TX
|
||||
00:120C TextCommands
|
||||
00:1D49 LoadMenuHeader
|
||||
00:1E58 OpenMenu
|
||||
00:1F9E ClearWindowData
|
||||
00:1FCC ClearWindowData.bytefill
|
||||
00:20E1 RunMapScript
|
||||
00:230E LoadMapWarp
|
||||
00:23C7 OverworldFadeIn
|
||||
00:3234 Random
|
||||
00:3621 WaitBGMap
|
||||
00:362B SetPalettes
|
||||
00:3634 ClearPalettes
|
||||
00:363C GetMemSGBLayout
|
||||
00:363E GetSGBLayout
|
||||
00:360C SetHPPal
|
||||
00:3619 SetHPPal.done
|
||||
00:3630 Function_366c
|
||||
00:36C8 NamesPointers
|
||||
00:36E0 GetName
|
||||
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: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: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:640B Function_1240b
|
||||
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:4349 OverworldFadeOut
|
||||
23:44BE Function_8c4be
|
||||
23:4940 Function_8c940
|
||||
23:49C6 Function_8c9c6
|
||||
23:60CC MenuMonIconGfx
|
||||
30:4000 OverworldSpriteGfx
|
||||
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: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:CE62 wTextBoxFlags
|
||||
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
|
||||
179
shim_silver_debug.sym
Normal file
179
shim_silver_debug.sym
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
00:0884 UpdateJoypad
|
||||
00:0D0A LoadFont
|
||||
00:0D1A LoadFontExtra
|
||||
00:0E2A ClearTileMap
|
||||
00:0E3D DrawTextBox
|
||||
00:0E93 PlaceString
|
||||
00:0E94 PlaceNextChar
|
||||
00:0E9D CheckDict
|
||||
00:10A6 PlaceHLTextAtBC
|
||||
00:10B7 DoTextUntilTerminator
|
||||
00:10C1 DoTextUntilTerminator.continue
|
||||
00:10E2 Text_TX
|
||||
00:120C TextCommands
|
||||
00:1D49 LoadMenuHeader
|
||||
00:1E58 OpenMenu
|
||||
00:1F9E ClearWindowData
|
||||
00:1FCC ClearWindowData.bytefill
|
||||
00:20FF RunMapScript
|
||||
00:232C LoadMapWarp
|
||||
00:23E5 OverworldFadeIn
|
||||
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:366C Function_366c
|
||||
00:36C8 NamesPointers
|
||||
00:36E0 GetName
|
||||
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: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: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:640B Function_1240b
|
||||
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:4349 OverworldFadeOut
|
||||
23:44BE Function_8c4be
|
||||
23:4940 Function_8c940
|
||||
23:49C6 Function_8c9c6
|
||||
23:60CC MenuMonIconGfx
|
||||
30:4000 OverworldSpriteGfx
|
||||
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: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:CE62 wTextBoxFlags
|
||||
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
|
||||
|
|
@ -4,7 +4,8 @@ CFLAGS := -O3 -std=c99 -Wall -Wextra
|
|||
|
||||
tools := \
|
||||
pkmncompress \
|
||||
gfx
|
||||
gfx \
|
||||
make_shim
|
||||
|
||||
all: $(tools)
|
||||
|
||||
|
|
|
|||
163
tools/make_shim.c
Normal file
163
tools/make_shim.c
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
#include <stdio.h>
|
||||
#include <getopt.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
struct Section {
|
||||
unsigned short end;
|
||||
bool invalid;
|
||||
char * name;
|
||||
bool banked;
|
||||
};
|
||||
|
||||
typedef struct Section section_t;
|
||||
|
||||
// These functions are like strspn and strcspn, but from the right of the string rather than the left.
|
||||
size_t strrspn(const char *s1, const char *s2) {
|
||||
const char * _s1 = s1;
|
||||
const char * _s2;
|
||||
|
||||
while (*_s1++);
|
||||
_s1--;
|
||||
while (_s1 > s1) {
|
||||
for (_s2 = s2; *_s2; _s2++) {
|
||||
if (_s1[-1] == *_s2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (*_s2 == 0)
|
||||
break;
|
||||
_s1--;
|
||||
}
|
||||
|
||||
return _s1 - s1;
|
||||
}
|
||||
|
||||
size_t strrcspn(const char *s1, const char *s2) {
|
||||
const char * _s1 = s1;
|
||||
const char * _s2;
|
||||
|
||||
while (*_s1++);
|
||||
_s1--;
|
||||
while (_s1 > s1) {
|
||||
for (_s2 = s2; *_s2; _s2++) {
|
||||
if (_s1[-1] == *_s2)
|
||||
break;
|
||||
}
|
||||
if (*_s2)
|
||||
break;
|
||||
_s1--;
|
||||
}
|
||||
|
||||
return _s1 - s1;
|
||||
}
|
||||
|
||||
#define RIP(errmsg) { \
|
||||
errno = EIO; \
|
||||
perror(errmsg); \
|
||||
if (file) fclose(file); \
|
||||
if (line) free(line); \
|
||||
return 1; \
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
int ch;
|
||||
size_t lsize = 0;
|
||||
char * line = NULL;
|
||||
|
||||
section_t section_list[] = {
|
||||
{0x4000, false, "ROM0", false},
|
||||
{0x8000, false, "ROMX", true},
|
||||
{0xA000, false, "VRAM", true},
|
||||
{0xC000, false, "SRAM", true},
|
||||
{0xD000, false, "WRAM0", false},
|
||||
{0xE000, false, "WRAMX", true},
|
||||
{0xFE00, true, "Echo RAM", false},
|
||||
{0xFEA0, false, "OAM", false},
|
||||
{0xFF80, true, "FEXX / IO", false},
|
||||
{0xFFFF, false, "HRAM", false},
|
||||
{}
|
||||
};
|
||||
|
||||
while ((ch = getopt(argc, argv, "wdt")) != -1) {
|
||||
switch (ch) {
|
||||
case 'w':
|
||||
case 'd':
|
||||
section_list[4].end = 0xE000;
|
||||
break;
|
||||
case 't':
|
||||
section_list[0].end = 0x8000;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (int arg_idx = optind; arg_idx < argc; arg_idx++) {
|
||||
FILE * file = fopen(argv[arg_idx], "r");
|
||||
if (file == NULL)
|
||||
RIP("file io");
|
||||
while (getline(&line, &lsize, file) > 0) {
|
||||
unsigned short bank = 0;
|
||||
unsigned short pointer = 0;
|
||||
char * symbol = NULL;
|
||||
char * end;
|
||||
char * addr_p;
|
||||
|
||||
// line = line.split(";")[0].strip()
|
||||
line += strspn(line, " \t\n");
|
||||
end = strchr(line, ';');
|
||||
if (end) *end = 0;
|
||||
line[strrspn(line, " \t\n")] = 0;
|
||||
if (!*line)
|
||||
continue;
|
||||
|
||||
// Get the bank, address, and symbol
|
||||
end = line + strcspn(line, " \t\n");
|
||||
symbol = end + strspn(end, " \t\n");
|
||||
if (!*symbol)
|
||||
RIP("parse");
|
||||
*end = 0;
|
||||
addr_p = strchr(line, ':');
|
||||
if (!addr_p)
|
||||
RIP("parse");
|
||||
*addr_p++ = 0;
|
||||
pointer = strtoul(addr_p, &end, 16);
|
||||
if (pointer == 0 && end == addr_p)
|
||||
RIP("parse");
|
||||
bank = strtoul(line, &end, 16);
|
||||
if (bank == 0 && end == line)
|
||||
RIP("parse");
|
||||
|
||||
// Main loop
|
||||
const char * section = NULL;
|
||||
section_t * section_type;
|
||||
|
||||
for (section_type = section_list; section_type->end; section_type++) {
|
||||
if (pointer < section_type->end) {
|
||||
if (section_type->invalid) {
|
||||
fprintf(stderr, "Warning: cannot shim '%s' in section type '%s'\n", symbol, section_type->name);
|
||||
} else {
|
||||
section = section_type->name;
|
||||
if (!section_type->banked)
|
||||
bank = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (section == NULL)
|
||||
// Found section, but cannot shim it
|
||||
continue;
|
||||
|
||||
printf("SECTION \"Shim for %s\", %s[$%04X]", symbol, section, pointer);
|
||||
if (bank)
|
||||
printf(", BANK[$%04X]", bank);
|
||||
printf("\n%s::\n\n", symbol);
|
||||
fflush(stdout);
|
||||
}
|
||||
fclose(file);
|
||||
}
|
||||
free(line);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,60 +1,40 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
from sys import argv, stderr, exit
|
||||
import argparse
|
||||
from sys import stderr
|
||||
from collections import OrderedDict, namedtuple
|
||||
|
||||
Section = namedtuple('Section', ('end', 'invalud', 'banked'))
|
||||
section_list = OrderedDict(
|
||||
ROM0=Section(0x4000, False, False),
|
||||
ROMX=Section(0x8000, False, True),
|
||||
VRAM=Section(0xA000, False, True),
|
||||
SRAM=Section(0xC000, False, True),
|
||||
WRAM0=Section(0xD000, False, False),
|
||||
WRAMX=Section(0xE000, False, True),
|
||||
EchoRAM=Section(0xFE00, True, False),
|
||||
OAM=Section(0xFEA0, False, False),
|
||||
IO=Section(0xFF80, True, False),
|
||||
HRAM=Section(0xFFFF, False, False)
|
||||
)
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('files', nargs='+', type=argparse.FileType())
|
||||
parser.add_argument('-w', action='store_true')
|
||||
parser.add_argument('-d', action='store_true')
|
||||
parser.add_argument('-t', action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
section_list = [
|
||||
{'end': 0x4000, 'invalid': False, 'name': "ROM0", 'banked': False},
|
||||
{'end': 0x8000, 'invalid': False, 'name': "ROMX", 'banked': True},
|
||||
{'end': 0xA000, 'invalid': False, 'name': "VRAM", 'banked': True},
|
||||
{'end': 0xC000, 'invalid': False, 'name': "SRAM", 'banked': True},
|
||||
{'end': 0xD000, 'invalid': False, 'name': "WRAM0", 'banked': False},
|
||||
{'end': 0xE000, 'invalid': False, 'name': "WRAMX", 'banked': True},
|
||||
{'end': 0xFE00, 'invalid': True , 'name': "Echo RAM"},
|
||||
{'end': 0xFEA0, 'invalid': False, 'name': "OAM", 'banked': False},
|
||||
{'end': 0xFF80, 'invalid': True , 'name': "FEXX / IO"},
|
||||
{'end': 0xFFFF, 'invalid': False, 'name': "HRAM", 'banked': False}
|
||||
]
|
||||
if args.w or args.d:
|
||||
section_list['WRAM0'].end = 0xE000
|
||||
|
||||
if args.t:
|
||||
section_list['ROM0'].end = 0x8000
|
||||
|
||||
|
||||
argv_id = 1
|
||||
file_list = []
|
||||
options = []
|
||||
while argv_id < len(argv):
|
||||
arg = argv[argv_id]
|
||||
|
||||
if arg[0] != '-':
|
||||
file_list.append(arg)
|
||||
argv_id += 1
|
||||
continue
|
||||
|
||||
# An empty '--' stops parsing arguments
|
||||
if arg == '--':
|
||||
argv_id += 1
|
||||
break
|
||||
|
||||
if arg[1] == '-':
|
||||
options.append(option[2:])
|
||||
elif arg[1] != '-':
|
||||
for option in arg[1:]:
|
||||
options.append(option)
|
||||
|
||||
argv_id += 1
|
||||
|
||||
# Add remaining files to the list
|
||||
for arg in argv[argv_id:]:
|
||||
file_list.append(arg)
|
||||
|
||||
|
||||
if 'w' in options or 'd' in options:
|
||||
section_list[4]['end'] = 0xE000
|
||||
|
||||
if 't' in options:
|
||||
section_list[0]['end'] = 0x8000
|
||||
|
||||
|
||||
for file_name in file_list:
|
||||
for file_name in args.files:
|
||||
for line in open(file_name, "rt"):
|
||||
|
||||
# Strip out the comment
|
||||
|
|
@ -68,19 +48,19 @@ for file_name in file_list:
|
|||
bank, pointer = address.split(":")
|
||||
bank = int(bank, 16)
|
||||
pointer = int(pointer, 16)
|
||||
except:
|
||||
except ValueError:
|
||||
print("Error: Cannot parse line: %s" % line, file=stderr)
|
||||
exit(1)
|
||||
raise from None
|
||||
|
||||
section = None
|
||||
for section_type in section_list:
|
||||
if pointer < section_type['end']:
|
||||
if section_type['invalid']:
|
||||
for name, section_type in section_list.items():
|
||||
if pointer < section_type.end:
|
||||
if section_type.invalid:
|
||||
print("Warning: cannot shim '%s' in section type '%s'" % (symbol, section_type['name']), file=stderr)
|
||||
section = False
|
||||
else:
|
||||
section = section_type['name']
|
||||
if not section_type['banked']:
|
||||
section = name
|
||||
if not section_type.banked:
|
||||
bank = None
|
||||
break
|
||||
else:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user