# HG changeset patch # User Robert McIntyre # Date 1346343592 18000 # Node ID b69a3dba80454da2997deaa60ffc05fcb22eafc5 # Parent 23572082c4a51e30d17c7cde3ef2e4b7874e56a2 condensed gameboy program into a contigous sequence of bytes. diff -r 23572082c4a5 -r b69a3dba8045 .hgignore --- a/.hgignore Thu Aug 30 09:32:57 2012 -0500 +++ b/.hgignore Thu Aug 30 11:19:52 2012 -0500 @@ -17,4 +17,5 @@ java/.ant-targets-build.xml html/* java/lib/* -render/* \ No newline at end of file +render/* +zophar/* \ No newline at end of file diff -r 23572082c4a5 -r b69a3dba8045 clojure/com/aurellem/run/adv_choreo.clj --- a/clojure/com/aurellem/run/adv_choreo.clj Thu Aug 30 09:32:57 2012 -0500 +++ b/clojure/com/aurellem/run/adv_choreo.clj Thu Aug 30 11:19:52 2012 -0500 @@ -28,3 +28,68 @@ ;; the game. +;; Symbol size and type. + +;; use fonts from zophar's domain: +;; http://www.zophar.net/utilities/fonts/8x8-font-archive.html + +;; Green font on black background for matrix look. + + + +;; [ ] get single long ram write. + + + + +(defn program-data [base-address] + (let [image-program + (display-image-kernel + base-address + pinkie-pie-mark) + + music-base-address (+ (count image-program) base-address) + + initial-music-data + (midi-bytes pony-csv 0 0 0 0) + + data-lengths + (map (comp count :data) + [(:kernel initial-music-data) + (:voice-1 initial-music-data) + (:voice-2 initial-music-data)]);; noise not needed + addresses + (map (partial + music-base-address) (reductions + 0 data-lengths)) + + final-music-data + (apply (partial midi-bytes pony-csv) addresses) + + music-program + (concat + (:data (:kernel final-music-data)) + (:data (:voice-1 final-music-data)) + (:data (:voice-2 final-music-data)) + (:data (:noise final-music-data)))] + + (concat + image-program ;; image program falls through to music program + music-program))) + + + +(def main-program-base-address 0xC000) + +(defn write-all-program-data + ([] (write-all-program-data (silence-noise))) + ([script] + (let [base-address main-program-base-address] + (->> script + (write-RAM base-address (program-data base-address)))))) + +(defn activate-program + ([] (activate-program (write-all-program-data))) + ([script] + (->> script + (transfer-control main-program-base-address) + (do-nothing 1800)))) + \ No newline at end of file diff -r 23572082c4a5 -r b69a3dba8045 clojure/com/aurellem/run/basic_choreo.clj --- a/clojure/com/aurellem/run/basic_choreo.clj Thu Aug 30 09:32:57 2012 -0500 +++ b/clojure/com/aurellem/run/basic_choreo.clj Thu Aug 30 11:19:52 2012 -0500 @@ -32,10 +32,10 @@ ([script] (let [bytes (midi-bytes pony-csv + music-program-start 0xC400 0xC800 - 0xCC00 - music-program-start)] + 0xCC00)] (->> script (write-RAM (:address (:voice-1 bytes)) (:data (:voice-1 bytes))) diff -r 23572082c4a5 -r b69a3dba8045 clojure/com/aurellem/run/music.clj --- a/clojure/com/aurellem/run/music.clj Thu Aug 30 09:32:57 2012 -0500 +++ b/clojure/com/aurellem/run/music.clj Thu Aug 30 11:19:52 2012 -0500 @@ -586,8 +586,8 @@ (map #(get % :duty 0) duty-info))})) (defn midi-bytes - ([^File midi-file voice-1-target voice-2-target - noise-target program-target] + ([^File midi-file program-target + voice-1-target voice-2-target noise-target] (let [mini-midi (midi->mini-midi midi-file) long-silence (flatten (note-codes 20 0 3000)) long-noise-silence @@ -614,7 +614,7 @@ :kernel {:address program-target :data kernel}})) ([^File midi-file] - (midi-bytes midi-file 0xC400 0xC800 0xCC00 0xC000))) + (midi-bytes midi-file 0xC000 0xC400 0xC800 0xCC00))) (defn play-midi [^File midi-file] (let [bytes (midi-bytes midi-file)] diff -r 23572082c4a5 -r b69a3dba8045 font/0.png Binary file font/0.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/1.png Binary file font/1.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/2.png Binary file font/2.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/3.png Binary file font/3.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/4.png Binary file font/4.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/5.png Binary file font/5.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/6.png Binary file font/6.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/7.png Binary file font/7.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/8.png Binary file font/8.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/9.png Binary file font/9.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/A.png Binary file font/A.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/B.png Binary file font/B.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/C.png Binary file font/C.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/D.png Binary file font/D.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/E.png Binary file font/E.png has changed diff -r 23572082c4a5 -r b69a3dba8045 font/F.png Binary file font/F.png has changed