rlm@615: This is vba-clojure, by Robert McIntyre (rlm@mit.edu). rlm@615: rlm@615: It is three things: rlm@615: rlm@615: - vba-rerecording (http://code.google.com/p/vba-rerecording/), rlm@615: modified compile on GNU/Linux, as well as JNI bindings. rlm@615: rlm@615: - A functional clojure interface to the emulator supported by JNI rlm@615: bindings. rlm@615: rlm@615: - The "Pokemon Yellow Total Control Hack" code rlm@615: (http://aurellem.org/vba-clojure/html/total-control.html), which rlm@615: uses the clojure bindings. rlm@615: rlm@615: rlm@615: * License rlm@615: rlm@615: vba-rerecording is licensed under the GPL version 2, and I also rlm@615: release all the code I have written relating to this project under the rlm@615: GPL version 2. rlm@615: rlm@615: NOTE that the images under the /font directory and the mid files in rlm@615: the /music directory were taken from http://www.zophar.net/ and rlm@615: http://www.everyponysings.com/ respectively and are the only things in rlm@615: this repository that are not under the GPL. rlm@615: rlm@615: rlm@615: * How to Compile rlm@615: rlm@615: ** Long version rlm@615: rlm@615: Compilation follows 5 steps: rlm@615: rlm@615: 1. Get java libraries rlm@615: 2. Generate java JNI header and bindings rlm@615: 3. generate autotools scripts rlm@615: 4. configure rlm@615: 5. make rlm@615: rlm@615: First, run the dl-libs.sh script to download the tritonus jars (or rlm@615: otherwise obtain them), which are used in processing sound from the rlm@615: gameboy. You must have wget installed for the dl-libs.sh to work. rlm@615: rlm@615: Second, you must generate the java JNI header and bindigs. cd to the rlm@615: "java" directory and run `ant` to do this. rlm@615: rlm@615: Third, generate the autotools scripts which the project requires by rlm@615: running `autoreconf -i`. I use autoreconf version 2.69. rlm@615: rlm@615: Fourth, run the "configure" script that was just produced to check for rlm@615: dependencies and proper environment variables. Be sure to have the rlm@615: environment variables JAVA_INCLUDE_PATH and JAVA_INCLUDE_PATH2 rlm@615: properly defined. "jni.h" should be in the directory referenced by rlm@615: JAVA_INCLUDE_PATH, and "jni_md.h" should be in the directory rlm@615: referenced by JAVA_INCLUDE_PATH2. On my system, rlm@615: JAVA_INCLUDE_PATH=/usr/include and rlm@615: JAVA_INCLUDE_PATH2=/usr/include/linux. rlm@615: rlm@615: finally, run `make` to build the library. You may optionally install rlm@615: the library using `make install`. rlm@615: rlm@615: ** Short Version rlm@615: rlm@615: ./dl-libs.sh rlm@615: cd java rlm@615: ant rlm@615: cd .. rlm@615: autoreconf -i rlm@615: ./configure rlm@615: make rlm@615: make install rlm@615: rlm@616: To fine tune the installation, pass different flags to the configure rlm@616: script, in particular the --prefix flag. run `./configure --help` to rlm@616: see available options and defaults. rlm@615: rlm@616: * Using the clojure code. rlm@615: rlm@616: If you're interested in hacking on the clojure code, then once you've rlm@616: completed the compilation instructions above, you will need to launch rlm@616: clojure (however you do it) and include the following things on your rlm@616: classpath (all directories are relative to project root). rlm@615: rlm@616: /clojure --- the clojure source files rlm@616: /java/dist/* --- JNI bindings rlm@616: /java/lib/* --- tritonus libs rlm@616: rlm@616: You will also need to put the compiled library file produced from the rlm@616: "How to Compile" section in a place where it can be loaded as a rlm@616: dynamic library. You can do this by running `make install` where you rlm@616: had previously configured the package to install in a system rlm@616: directory, or you can use the LD_LIBRARY_PATH to point your system to rlm@616: the directory containing the library file. rlm@616: rlm@616: rlm@616: * Bugs rlm@616: rlm@616: Please let me know if you find any bugs, or have any comments, at rlm@616: rlm@mit.edu. rlm@616: rlm@616: rlm@616: