diff org/total-control.org @ 614:b531d490859c

submitting to TAS...
author Robert McIntyre <rlm@mit.edu>
date Thu, 22 Nov 2012 13:12:21 -0600
parents e1dcad3ce967
children a79e5a852347 90575d3a64d1
line wrap: on
line diff
     1.1 --- a/org/total-control.org	Thu Nov 22 11:36:07 2012 -0600
     1.2 +++ b/org/total-control.org	Thu Nov 22 13:12:21 2012 -0600
     1.3 @@ -168,8 +168,8 @@
     1.4  bootstrap program in one go using only items turned out to be too
     1.5  hard, so I split the process up into three parts. The program that I
     1.6  actually construct using items is very limited. It reads only from the
     1.7 -A, B, start, and select buttons, and writes 4 bits each frame to a
     1.8 -fixed point in memory. After it writes 200 or so bytes, it jumps
     1.9 +A, B, start, and select buttons, and writes 4 bits each frame starting
    1.10 +at a fixed point in memory. After it writes 200 or so bytes, it jumps
    1.11  directly to what it just wrote. In my run, I use this program to write
    1.12  another bootstrapping program that can write any number of bytes to
    1.13  any location in memory, and then jump to any location in memory. This
    1.14 @@ -462,17 +462,17 @@
    1.15  in with impunity. At the end, I toss the 0xFF away to reveal the
    1.16  completed bootstrap program.
    1.17  
    1.18 -The final payload program is actually multiple programs. I created a
    1.19 -reduced form of MIDI and implemented it in gameboy machine
    1.20 -language. Then I translated a midi file from
    1.21 -http://www.everyponysings.com/ into this reduced MIDI language. The
    1.22 -payload program contains both the music data and the MIDI interpreter
    1.23 -to play that data. The picture works in a similar way. There is code
    1.24 -to translate a png file into a form that can be displayed on a
    1.25 -gameboy, and other code to actually display that image. Both the image
    1.26 -and the display code are also written by the final bootstrapping
    1.27 -program.  Even though my final payload is rather simple, you can write
    1.28 -any program at all as the payload. The source for the sound and image
    1.29 -displaying code is at http://hg.bortreb.com/vba-clojure.
    1.30 +The final payload program is multiple programs. I created a reduced
    1.31 +form of MIDI and implemented it in gameboy machine language. Then I
    1.32 +translated a midi file from http://www.everyponysings.com/ into this
    1.33 +reduced MIDI language. The payload program contains both the music
    1.34 +data and the MIDI interpreter to play that data. The picture works in
    1.35 +a similar way. There is code to translate a png file into a form that
    1.36 +can be displayed on a gameboy, and other code to actually display that
    1.37 +image. Both the image and the display code are also written by the
    1.38 +final bootstrapping program.  Even though my final payload is rather
    1.39 +simple, you can write any program at all as the payload. The source
    1.40 +for the sound and image displaying code is at
    1.41 +http://hg.bortreb.com/vba-clojure.
    1.42  
    1.43