ref: 5098ed740d35d4f2a2d5414f309bf25e754e189c
parent: e545f0c1eaa6f922228dffd9ed12197c5a037469
parent: e44d0a22285abe6aaed77f2446f797498a025b34
author: Bryan Bishop <[email protected]>
date: Mon Aug 26 07:48:34 EDT 2013
Merge remote-tracking branch 'github/master' into master
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,6 +1,6 @@
# Getting Started
-Compiling **pokecrystal.gbc** requires a certain **Pokemon Crystal** rom:
+Assembling **pokecrystal.gbc** requires a certain **Pokemon Crystal** rom:
```
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
@@ -10,12 +10,17 @@
Save it as **baserom.gbc** in the repository.
-Feel free to ask us on **[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)** if something goes wrong!
+Feel free to ask us on
+**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**
+if something goes wrong.
+
+
# Windows
-If you are on Windows and can't install Linux, **Cygwin** is a great alternative.
+If you're on Windows and can't install Linux, **Cygwin** is a great alternative.
+
## Installing Cygwin
Cygwin provides a virtual Linux environment on Windows systems. Just get **setup.exe**.
@@ -25,15 +30,21 @@
During the install:
* Keep the defaults.
-
* Most mirrors are molasses. Use **http://mirrors.kernel.org**.
+* From the package selection, pick:
+ * **wget**
+ * **make**
+ * **git**
+ * **python**
+ * **python-setuptools**
+ * **unzip**
-* From the package selection, select **wget**.
-
## Using Cygwin
-Launch the **Cygwin terminal**. Maybe you know your way around the Linux terminal, **bash**. If not, a crash course:
+Launch the **Cygwin terminal**.
+Maybe you know your way around the Linux terminal ( **bash** ).
+If not, a crash course:
```bash
# list files in current directory
ls
@@ -48,54 +59,47 @@
## Getting up and running
-We need a couple more things to be able to compile.
+We need three things to assemble the source into a rom.
+1. **rgbds**
+2. a **pokecrystal** repository
+3. a **base rom**
-If you're feeling lazy, just paste these commands into your terminal.
+-
-
-**apt-cyg** lets you install new packages without running Cygwin setup.
-
+We use **rgbds** to spit out a Game Boy rom from source.
```bash
-wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
-chmod +x apt-cyg
-mv apt-cyg /usr/local/bin/
+cd /usr/local/bin
+wget http://iimarck.us/etc/rgbds-20130811.zip
+unzip -j rgbds-20130811.zip
+rm rgbds-20130811.zip
```
-Now we can use apt-cyg to install everything else.
-
+The **pokecrystal** repository contains the source files used to create the rom.
```bash
-apt-cyg install make git python python-setuptools unzip
-easy_install pip
-```
-
-**rgbds** will let you compile Game Boy roms.
-
-```bash
-wget http://diyhpl.us/~bryan/irc/pokered/rgbds/rgbds-0.0.1.zip
-unzip rgbds-0.0.1.zip
-mv rgbds-0.0.1/* /usr/local/bin
-rm -r rgbds-0.0.1*
-```
-
-Set up the **pokecrystal** repository:
-
-```bash
cd ~
git clone https://github.com/kanzure/pokecrystal
cd pokecrystal
# install python requirements
+easy_install pip
pip install -r requirements.txt
```
-## Don't forget baserom.gbc!!
+Not everything is included in the source yet.
+Missing patches are copied from a **base rom** (not included).
-Make sure you downloaded a base rom. Name it **baserom.gbc**.
+```
+Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
+md5: 9f2922b235a5eeb78d65594e82ef5dde
+```
-Now you should be able to build **pokecrystal.gbc** for the first time.
+Name it **baserom.gbc**.
-This compiles a new rom from the source code, with any patches filled in from the base rom.
+-
+
+Now you should be able to build **pokecrystal.gbc** for the first time.
+This assembles a new rom from the source code.
```bash
make
```
@@ -102,65 +106,66 @@
This ought to take **between 3 and 15 seconds**, depending on your computer.
-If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful!
+If the last line is `cmp baserom.gbc pokecrystal.gbc`, the build was successful!
-Your first compile processes every source file at once. After that, **only modified source files have to be reprocessed**, so compiling again should be a few seconds faster.
+Your first build processes every source file at once.
+After that, **only modified source files have to be processed again**,
+so compiling again should be a few seconds faster.
-Other **make targets** that may come in handy:
-`make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc, in case something goes wrong.
-`make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**.
-
-`make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work.
-
-
# Linux
```bash
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
+# install rgbds
git clone git://github.com/bentley/rgbds.git
-
-# compile rgbds
cd rgbds
make
sudo make install
-# check if rgbasm is installed now
-which rgbasm
+cd ..
# download pokecrystal
git clone git://github.com/kanzure/pokecrystal.git
cd pokecrystal
-
-# install python requirements
pip install -r requirements.txt
-
-# use hexdump to diff binary files
-git config diff.hex.textconv hexdump
```
-To compile the rom from asm source:
+Put your base rom in the pokecrystal repository. Name it **baserom.gbc**.
+
+To compile the rom from source:
```bash
make
```
-That will take between 3 and 15 seconds, depending on your computer. If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice!
+That will take between 3 and 15 seconds, depending on your computer.
+If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice!
+
# Now what?
-**main.asm** is a good starting point. The structure of the source is laid out here.
+**[pokecrystal.asm](https://github.com/kanzure/pokecrystal/blob/master/pokecrystal.asm)** is a good starting point.
+The structure of the source is laid out here.
-* **Can't find something?** Anyone can add to the source. There's lots to be uncovered.
-* **Do your own thing!** The asm source is hack-friendly, and the supplementary scripts in extras/ can be used for other projects.
+* Other **make targets** that may come in handy:
-* We'll be happy to answer any **questions** on **[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**.
+ * `make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc.
+ * `make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**.
+ * `make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work.
+
+
+* **Can't find something?**
+Anyone can add to the source. There's lots to be uncovered.
+
+* **Do your own thing!**
+The asm source is hack-friendly, and the supplementary scripts in extras/ can be used for other projects.
+
+We'll be happy to answer any **questions** on
+**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**.
+
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@
@rm -f $@
pokecrystal.gbc: pokecrystal.o
- rgblink -o $@ $<
+ rgblink -n pokecrystal.sym -m pokecrystal.map -o $@ $<
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
pngs: