Go to file
Bryan Bishop 0e2ab04353 update automatic main.asm insertion
This updates the automatic parsing of main.asm to catch cases of INCBINs
pulling in files that end in .asm, .lz, .1bpp, and .2bpp. This is
necessary because otherwise the parser tries to figure out the start and
end addresses expressed on the INCBIN line, details not present on these
types of lines in the asm.

Asm and Asm.insert_all are now back in working condition.
2013-02-27 21:38:53 -06:00
audio PlayCryHeader and related wram 2013-02-23 16:57:25 -05:00
battle Split magikarp length calcs out 2013-02-18 20:14:25 -05:00
extras update automatic main.asm insertion 2013-02-27 21:38:53 -06:00
gfx Include some more gfx 2013-02-25 14:16:59 -05:00
items Split item names and descriptions from main.asm 2013-02-17 02:42:29 -05:00
maps Split map scripts, text, events from main.asm 2013-02-17 01:59:06 -05:00
stats Create individual pokedex entry files 2013-02-05 19:29:20 -05:00
text Split common text out of main.asm 2013-02-17 02:19:49 -05:00
trainers Saner file distribution 2013-02-05 03:56:27 -05:00
.gitignore add swap~ files to .gitignore 2013-02-07 20:11:09 -06:00
bittable2.asm Saner file distribution 2013-02-05 03:56:27 -05:00
compare.sh make compare.sh overwrite the previous hexdump 2012-05-16 13:49:50 -05:00
constants.asm Split out joypad 2013-02-22 20:02:03 -05:00
credits.asm Split credits out 2013-02-26 00:51:05 -05:00
gbhw.asm Add constants for hardware registers 2013-02-22 20:02:10 -05:00
INSTALL.md use pypng as a dependency 2013-02-07 20:39:25 -06:00
joypad.asm Label hw registers 2013-02-22 20:02:10 -05:00
landmarks.asm Split landmarks out 2013-02-17 02:56:50 -05:00
main.asm Split credits out 2013-02-26 00:51:05 -05:00
Makefile Split common text out of main.asm 2013-02-17 02:19:49 -05:00
pokecrystal.asm Add constants for hardware registers 2013-02-22 20:02:10 -05:00
preprocessor.py clean up the preprocessor macro list 2013-01-27 17:45:23 -06:00
README.md use pypng as a dependency 2013-02-07 20:39:25 -06:00
requirements.txt requirements filename didn't match install instructions 2013-02-24 18:53:36 -05:00
vblank.asm Label hw registers 2013-02-22 20:02:10 -05:00
wram.asm Credits script and parser 2013-02-26 00:47:46 -05:00

Pokémon Crystal

This is a hand-crafted disassembly of Pokémon Crystal.

The source code in this project successfully converts back into a ROM image. All source code is meticulously commented.

Base ROM

The following ROM is required for compiling:

Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc

md5: 9f2922b235a5eeb78d65594e82ef5dde

Eventually this will not be necessary.

Installing

Simple.

sudo apt-get install make gcc bison git python python-setuptools 

# unittest2 is required if using python2.6
sudo easy_install unittest2
sudo easy_install pip

# download rgbds source code
git clone git://github.com/bentley/rgbds.git

# compile rgbds
cd rgbds
make
sudo make install

# check if rgbasm is installed now
which rgbasm

# download pokecrystal
git clone https://github.com/kanzure/pokecrystal.git
cd pokecrystal

pip install -r requirements.txt

make clean && make

Also, there are Windows installation instructions.

Assembling

  • To assemble, first install RGBDS and put it in your path. The version of RGBDS needed is rgbds-linux.

  • Next, copy the Pokémon ROM to this directory as "baserom.gbc".

  • Then run "make" in your shell.

  • This will output a file named "pokecrystal.gbc".

See also

Contributing