Go to file
Bryan Bishop ec098d1a03 various helper functions for the vba interface
New vba.py features include:
* get_memory_at
* get_memory_range
* set_memory_at

Also, the "crystal" class has a number of specialty helpers:
* crystal.walk_through_walls
* crystal.get_player_name
* crystal.get_map_name
* crystal.get_xy
* crystal.nstep (which sets memory each step by calling certain
* functions, like walk_through_walls)
* crystal.is_in_battle
* crystal.get_gender
2013-02-26 21:49:54 -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 various helper functions for the vba interface 2013-02-26 21:49:54 -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