# HG changeset patch # User Robert McIntyre # Date 1331175895 21600 # Node ID 60c76896493709768eb3b750c19c387369664b19 # Parent 02bca9640f3f41cb32f507453c434878181dab6b going to make restarts work diff -r 02bca9640f3f -r 60c768964937 clojure/com/aurellem/gb_driver.clj --- a/clojure/com/aurellem/gb_driver.clj Wed Mar 07 20:47:25 2012 -0600 +++ b/clojure/com/aurellem/gb_driver.clj Wed Mar 07 21:04:55 2012 -0600 @@ -1,11 +1,16 @@ (ns com.aurellem.gb-driver (:import com.aurellem.gb.Gb) + (:import java.io.File) (:import (java.nio IntBuffer ByteOrder))) + +(def yellow-rom-image + (File. "/home/r/proj/pokemon-escape/roms/yellow.gbc")) + (defn vba-init [] (Gb/loadVBA) (future - (Gb/startEmulator "/home/r/proj/pokemon-escape/roms/yellow.gbc"))) + (Gb/startEmulator (.getCanonicalPath yellow-rom-image)))) (defn cpu-data [size arr-fn] (let [store (int-array size)] @@ -29,3 +34,26 @@ (cpu-data Gb/NUM_REGISTERS #(Gb/getRegisters %))) +(def key-mask + {:a 0x0001 + :b 0x0002 + + :l 0x0020 + :r 0x0010 + :u 0x0040 + :d 0x0080 + + :select 0x0004 + :start 0x0008 + :restart 0x0800}) + +(defn keycode [& keys] + (reduce bit-or (map key-mask keys))) + +(defn step + ([] (Gb/step)) + ([& keys] (Gb/step (apply keycode keys)))) + + + +