rlm@615
|
1 This is vba-clojure, by Robert McIntyre (rlm@mit.edu).
|
rlm@615
|
2
|
rlm@615
|
3 It is three things:
|
rlm@615
|
4
|
rlm@615
|
5 - vba-rerecording (http://code.google.com/p/vba-rerecording/),
|
rlm@615
|
6 modified compile on GNU/Linux, as well as JNI bindings.
|
rlm@615
|
7
|
rlm@615
|
8 - A functional clojure interface to the emulator supported by JNI
|
rlm@615
|
9 bindings.
|
rlm@615
|
10
|
rlm@615
|
11 - The "Pokemon Yellow Total Control Hack" code
|
rlm@615
|
12 (http://aurellem.org/vba-clojure/html/total-control.html), which
|
rlm@615
|
13 uses the clojure bindings.
|
rlm@615
|
14
|
rlm@615
|
15
|
rlm@615
|
16 * License
|
rlm@615
|
17
|
rlm@615
|
18 vba-rerecording is licensed under the GPL version 2, and I also
|
rlm@615
|
19 release all the code I have written relating to this project under the
|
rlm@615
|
20 GPL version 2.
|
rlm@615
|
21
|
rlm@615
|
22 NOTE that the images under the /font directory and the mid files in
|
rlm@615
|
23 the /music directory were taken from http://www.zophar.net/ and
|
rlm@615
|
24 http://www.everyponysings.com/ respectively and are the only things in
|
rlm@615
|
25 this repository that are not under the GPL.
|
rlm@615
|
26
|
rlm@615
|
27
|
rlm@615
|
28 * How to Compile
|
rlm@615
|
29
|
rlm@615
|
30 ** Long version
|
rlm@615
|
31
|
rlm@615
|
32 Compilation follows 5 steps:
|
rlm@615
|
33
|
rlm@615
|
34 1. Get java libraries
|
rlm@615
|
35 2. Generate java JNI header and bindings
|
rlm@615
|
36 3. generate autotools scripts
|
rlm@615
|
37 4. configure
|
rlm@615
|
38 5. make
|
rlm@615
|
39
|
rlm@615
|
40 First, run the dl-libs.sh script to download the tritonus jars (or
|
rlm@615
|
41 otherwise obtain them), which are used in processing sound from the
|
rlm@615
|
42 gameboy. You must have wget installed for the dl-libs.sh to work.
|
rlm@615
|
43
|
rlm@615
|
44 Second, you must generate the java JNI header and bindigs. cd to the
|
rlm@615
|
45 "java" directory and run `ant` to do this.
|
rlm@615
|
46
|
rlm@615
|
47 Third, generate the autotools scripts which the project requires by
|
rlm@615
|
48 running `autoreconf -i`. I use autoreconf version 2.69.
|
rlm@615
|
49
|
rlm@615
|
50 Fourth, run the "configure" script that was just produced to check for
|
rlm@615
|
51 dependencies and proper environment variables. Be sure to have the
|
rlm@615
|
52 environment variables JAVA_INCLUDE_PATH and JAVA_INCLUDE_PATH2
|
rlm@615
|
53 properly defined. "jni.h" should be in the directory referenced by
|
rlm@615
|
54 JAVA_INCLUDE_PATH, and "jni_md.h" should be in the directory
|
rlm@615
|
55 referenced by JAVA_INCLUDE_PATH2. On my system,
|
rlm@615
|
56 JAVA_INCLUDE_PATH=/usr/include and
|
rlm@615
|
57 JAVA_INCLUDE_PATH2=/usr/include/linux.
|
rlm@615
|
58
|
rlm@615
|
59 finally, run `make` to build the library. You may optionally install
|
rlm@615
|
60 the library using `make install`.
|
rlm@615
|
61
|
rlm@615
|
62 ** Short Version
|
rlm@615
|
63
|
rlm@615
|
64 ./dl-libs.sh
|
rlm@615
|
65 cd java
|
rlm@615
|
66 ant
|
rlm@615
|
67 cd ..
|
rlm@615
|
68 autoreconf -i
|
rlm@615
|
69 ./configure
|
rlm@615
|
70 make
|
rlm@615
|
71 make install
|
rlm@615
|
72
|
rlm@616
|
73 To fine tune the installation, pass different flags to the configure
|
rlm@616
|
74 script, in particular the --prefix flag. run `./configure --help` to
|
rlm@616
|
75 see available options and defaults.
|
rlm@615
|
76
|
rlm@616
|
77 * Using the clojure code.
|
rlm@615
|
78
|
rlm@616
|
79 If you're interested in hacking on the clojure code, then once you've
|
rlm@616
|
80 completed the compilation instructions above, you will need to launch
|
rlm@616
|
81 clojure (however you do it) and include the following things on your
|
rlm@616
|
82 classpath (all directories are relative to project root).
|
rlm@615
|
83
|
rlm@616
|
84 /clojure --- the clojure source files
|
rlm@616
|
85 /java/dist/* --- JNI bindings
|
rlm@616
|
86 /java/lib/* --- tritonus libs
|
rlm@616
|
87
|
rlm@616
|
88 You will also need to put the compiled library file produced from the
|
rlm@616
|
89 "How to Compile" section in a place where it can be loaded as a
|
rlm@616
|
90 dynamic library. You can do this by running `make install` where you
|
rlm@616
|
91 had previously configured the package to install in a system
|
rlm@616
|
92 directory, or you can use the LD_LIBRARY_PATH to point your system to
|
rlm@616
|
93 the directory containing the library file.
|
rlm@616
|
94
|
rlm@616
|
95
|
rlm@616
|
96 * Bugs
|
rlm@616
|
97
|
rlm@616
|
98 Please let me know if you find any bugs, or have any comments, at
|
rlm@616
|
99 rlm@mit.edu.
|
rlm@616
|
100
|
rlm@616
|
101
|
rlm@616
|
102
|