# HG changeset patch # User Robert McIntyre # Date 1331517321 18000 # Node ID 612393a0d3a003144f79d0108c4e3e09afc3ffe4 # Parent 4c60ebca1a9dc18666a0e356bf7d606408ba46cb fixed memory retrieval function to use the simulated gameboy's mapped memory diff -r 4c60ebca1a9d -r 612393a0d3a0 clojure/com/aurellem/gb_driver.clj --- a/clojure/com/aurellem/gb_driver.clj Sun Mar 11 20:16:09 2012 -0500 +++ b/clojure/com/aurellem/gb_driver.clj Sun Mar 11 20:55:21 2012 -0500 @@ -132,10 +132,13 @@ (defn cpu-data [size arr-fn] (let [store (int-array size)] - (fn [state] (set-state! state) (arr-fn store) store))) + (fn get-data + ([] (get-data @current-state)) + ([state] + (set-state! state) (arr-fn store) store)))) (def memory - (cpu-date Gb/GB_MEMORY #(Gb/getMemory %))) + (cpu-data Gb/GB_MEMORY #(Gb/getMemory %))) (def ram (cpu-data Gb/RAM_SIZE #(Gb/getRAM %))) diff -r 4c60ebca1a9d -r 612393a0d3a0 src/gb/GB.cpp --- a/src/gb/GB.cpp Sun Mar 11 20:16:09 2012 -0500 +++ b/src/gb/GB.cpp Sun Mar 11 20:55:21 2012 -0500 @@ -3888,8 +3888,11 @@ void storeMemory(int32* store){ int i; - for (i = 0; i < 0xFFFF; i++){ - store[i] = (int32) gbMemory[i]; + int j; + for (i = 0; i < 0x10; i++){ + for (j = 0; j < 0x1000; j++){ + store[i*0x1000 + j] = (int32) gbMemoryMap[i][j]; + } } }