rlm@541: (ns com.aurellem.run.basic_choreo rlm@541: (:use (com.aurellem.gb saves gb-driver util constants rlm@541: items vbm characters money rlm@541: rlm-assembly)) rlm@541: (:use (com.aurellem.run util music title save-corruption rlm@541: bootstrap-0 bootstrap-1 image rlm@541: ram-display)) rlm@541: (:require clojure.string) rlm@541: (:import [com.aurellem.gb.gb_driver SaveState]) rlm@541: (:import java.io.File)) rlm@541: rlm@541: rlm@541: rlm@541: ;; take over game rlm@541: ;; [X] silence noise rlm@541: ;; [ ] run picture program to display pinkie pie mark rlm@541: ;; [ ] play pony song rlm@541: rlm@541: rlm@541: (defn-memo silence-noise rlm@541: ([] (silence-noise (relocate-main-bootstrap))) rlm@541: ([script] rlm@541: (->> script rlm@541: (write-RAM 0xFF1A [0 0 0])))) rlm@541: rlm@541: (def music-program-start 0xC000) rlm@541: (def image-program-start 0xCE00) rlm@541: rlm@541: (defn-memo write-pony-music-data rlm@541: ([] (write-pony-music-data (silence-noise))) rlm@541: ([script] rlm@541: (let [bytes (midi-bytes rlm@541: pony-csv rlm@541: 0xC400 rlm@541: 0xC800 rlm@541: 0xCC00 rlm@541: 0xC000)] rlm@541: (->> script rlm@541: (write-RAM (:address (:voice-1 bytes)) rlm@541: (:data (:voice-1 bytes))) rlm@541: (write-RAM (:address (:voice-2 bytes)) rlm@541: (:data (:voice-2 bytes))) rlm@541: (write-RAM (:address (:noise bytes)) rlm@541: (:data (:noise bytes))) rlm@541: (write-RAM (:address (:kernel bytes)) rlm@541: (:data (:kernel bytes))))))) rlm@541: rlm@541: (defn-memo write-image-display-program rlm@541: ([] (write-image-display-program (write-pony-music-data))) rlm@541: ([script] rlm@541: (let [return-to-bootstrap rlm@541: (flatten rlm@541: [0xC3 rlm@541: (disect-bytes-2 relocated-bootstrap-start)])] rlm@541: (->> script rlm@541: (write-RAM rlm@541: image-program-start rlm@541: (concat rlm@541: (display-image-kernel rlm@541: image-program-start rlm@541: pinkie-pie-mark) rlm@541: return-to-bootstrap)))))) rlm@541: rlm@541: (defn-memo activate-media rlm@541: ([] (activate-media (write-image-display-program))) rlm@541: ([script] rlm@541: (->> script rlm@541: (transfer-control image-program-start) rlm@541: (do-nothing 100) rlm@541: (transfer-control music-program-start)))) rlm@541: rlm@541: