# HG changeset patch # User Robert McIntyre # Date 1331938235 18000 # Node ID bcb5c41626b44e174c4488cf3bdcfae975f01c28 # Parent e45031af53272610cad851d966182cb8e6fc4bc2 saving progress diff -r e45031af5327 -r bcb5c41626b4 clojure/com/aurellem/assembly.clj --- a/clojure/com/aurellem/assembly.clj Fri Mar 16 17:03:05 2012 -0500 +++ b/clojure/com/aurellem/assembly.clj Fri Mar 16 17:50:35 2012 -0500 @@ -438,20 +438,20 @@ 0xD3 ; ]))) - - - (defn print-listing [state begin end] (dorun (map (fn [opcode line] (println (format "0x%04X: 0x%02X" line opcode))) (subvec (vec (memory state)) begin end) - (range begin end)))) + (range begin end))) + state) - +(defn test-input-number + "Input freestyle buttons and observe the effects at the repl." + [] + (set-state! (input-number)) + (dotimes [_ 90000] (step (view-memory @current-state 0xD352)))) - - diff -r e45031af5327 -r bcb5c41626b4 clojure/com/aurellem/dylans-code --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clojure/com/aurellem/dylans-code Fri Mar 16 17:50:35 2012 -0500 @@ -0,0 +1,54 @@ + +(defn count-frames* [] + (-> (tick (mid-game)) + (IE! 0) ; disable interrupts + (inject-item-assembly + ;; write 00010000 to 0xFF00 to select joypad + [0x18 ;D31D ; jump over + 0x02 ;D31E ; the next 2 bytes + 0x00 ;D31F ; frame-count + 0x00 ;D320 ; v-blank-prev + + + 0xFA ;D321 + 0x41 ;D322 ; load (FF41) into A + 0xFF ;D323 ; this contains mode flags + + 0x47 ;; copy A -> B + + 0xCB + 0x3F ;; shift A right + 0x2F ;; complement A + + 0xA0 ;; A & B -> A. + 0x47 ;; copy A -> B. Now the first bit of B is (VB == 1) + + 0xFA + 0x20 + 0xD3 ;; load v-blank-prev into A + + 0xA0 ;; A & B -> A. + 0x4F ;; copy A to C. Now C contains increment-counter? + + 0xFA + 0x1F + 0xD3 ;; load frame-count into A + + 0x81 ;; add increment-counter? to frame-count + 0xEA ;; store A into frame-count + 0x1F + 0xD3 + + 0x3E ;; load 1 into A + 0x01 + 0xA0 ;; A & B -> A. Now A is (VB==1) + 0xEA ;; store A into v-blank-prev + 0x20 + 0xD3 + + 0xC3 ;D348 ; return to beginning + 0x1D ;D349 + 0xD3 ;D34A + + + ]))) \ No newline at end of file diff -r e45031af5327 -r bcb5c41626b4 clojure/com/aurellem/gb_driver.clj --- a/clojure/com/aurellem/gb_driver.clj Fri Mar 16 17:03:05 2012 -0500 +++ b/clojure/com/aurellem/gb_driver.clj Fri Mar 16 17:50:35 2012 -0500 @@ -128,7 +128,6 @@ (dorun (dotimes [_ n] (Thread/sleep 1) (Gb/step))) - (finally (update-state)))) ([n]