summaryrefslogtreecommitdiff
path: root/INSTALL.md
blob: f41cbf42e8ef4390face00b1a001568555bc5e5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# Linux

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

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

# 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

make clean; make
```

# Windows

Follow these instructions to install `pokecrystal` on Microsoft Windows. Once
installed, you can run `make` to compile `main.asm` into a ROM.

## Installing cygwin

Cygwin provides a virtual linux environment on Windows systems. Just get
`setup.exe`: http://cygwin.com/install.html

During the install:

  1. Keep the defaults.

  2. It shouldn't matter which mirror you choose, but http://mirrors.kernel.org
  seems to work.

  3. Select the packages listed below.

You'll be presented with a package selection screen. Select the following
packages (hint: there's a search box).

  1. `python` (installed by default)

  2. `gcc` and `gcc-core` (under devel)

  3. `byacc` (under devel)

  4. `make` (under devel)

  5. `wget` (under web)

  6. `git` (under devel)

  7. `mercurial` (optional, if you wish to work with pokered as well)

Let cygwin finish the install.  Might take a sec while all packages are
downloading.

## Installing other requirements

Launch cygwin (bash). Maybe you know your way around the linux terminal. If not, a
crash course:

```bash
# list files in current directory
ls

# show current directory
pwd

# change directory
cd /away/we/go
```

The next step is building `rgbds`, the GB assembler. Type:

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

# compile rgbds
cd rgbds
YACC=byacc make

# make rgbds accessible for all time
export PATH=$PATH:`pwd`
echo "export PATH=$PATH:`pwd`" >> ~/.bashrc

# check if rgbasm is installed now
which rgbasm
```

If that fails (it shouldn't), you can download binaries like so:

```bash
# download rgbds binaries
wget http://diyhpl.us/~bryan/irc/pokered/rgbds/rgbds.zip --output-document=rgbds.zip

# unzip
unzip rgbds.zip

# make rgbds accessible for all time
export PATH=$PATH:`pwd`/rgbds
echo "export PATH=$PATH:`pwd`/rgbds" >> ~/.bashrc

# clean up that zip file
rm rgbds.zip
```

The next step is to install `unittest2`, unless you installed python2.7
earlier:

```bash
cd ~
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install unittest2
```

Now you should be able to build `pokecrystal` for the first time:

```bash
cd ~
git clone https://github.com/kanzure/pokecrystal.git
cd pokecrystal
```

The final requirement is downloading a certain Pokemon Crystal ROM:

```
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
md5: 9f2922b235a5eeb78d65594e82ef5dde
```

Save it as `C:\cygwin\home\(your username)\pokecrystal\baserom.gbc`. You can
check the md5 of a file by typing `md5sum baserom.gbc`.

To compile the ROM from ASM source, type:

```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!

Now you may try messing around with `main.asm`, or just do whatever you wanted
to.

To build again, you should use the following command:

```bash
make clean; make
```

Feel free to ask us on nucleus.kafuka.org #skeetendo if something goes wrong
(remember to tell where)! Don't know how to use IRC? Try
[mibbit](http://mibbit.com/) or something.

# Contributing changes

## Setting up a public git repo

For those uninitiated with git-based collaboration, and who do not want to setup a server to host git repositories, use GitHub. Register on GitHub and follow [this tutorial to setup ssh keys](https://help.github.com/articles/generating-ssh-keys). Then go to [the pokecrystal repo](https://github.com/kanzure/pokecrystal) and click the giant "fork" button. This will bring you to a page with some instructions regarding `git remote` (follow these steps in your pokecrystal folder).