After embarrassingly many false starts, I found the correct invariant:
macros are always determined by the local machine.
So to record, log everything that has passed thru macro processing.
To replay, hijack the macro processor to read the log.
Unsurprisingly, all the heavy lifting is in util.c
(very much pre-alpha) patch attached.
To record a movie: '&'
To stop recording a movie: ^x (exit)
A "movie" consists of a directory with 2 files:
* A (readonly, nonscoring) save file.
* Pref files for anything that can effect key interpretation, except macros.
(options, keymap, squelch, auto-inscribe)
If you are aware of any others, let me know.
To play a movie: navigate open the file called "save" in the appropriate .bmv (band movie) directory. (Hey, I said it's pre-alpha!)
User input consists of interrupting a long pause in the original game.
macros are always determined by the local machine.
So to record, log everything that has passed thru macro processing.
To replay, hijack the macro processor to read the log.
Unsurprisingly, all the heavy lifting is in util.c
(very much pre-alpha) patch attached.
To record a movie: '&'
To stop recording a movie: ^x (exit)
A "movie" consists of a directory with 2 files:
* A (readonly, nonscoring) save file.
* Pref files for anything that can effect key interpretation, except macros.
(options, keymap, squelch, auto-inscribe)
If you are aware of any others, let me know.
To play a movie: navigate open the file called "save" in the appropriate .bmv (band movie) directory. (Hey, I said it's pre-alpha!)
User input consists of interrupting a long pause in the original game.
Comment