A JavaScript incremental game which drives the clock of a Commodore 64 emulation. Or at least, that's the eventual goal.
The emulated C64 boots into the incremental game, but this can be interrupted in the usual manner of hitting Run/Stop + Restore. After interruption, the game can be restarted using the statement: SYS 49152
A joystick is plugged into port 2 of the C64, and its directions are mapped to the arrow keys. The joystick is used in-game to allow movement of the sprite. Alt is the Fire key, but this is not used in-game at this time.
The keyboard corresponds to that of a British C64, and is mapped in similar fashion to VICE's mapping. The following keys are non-obvious mappings:
- F1, F2, F3, F4 are mapped to the C64's F1, F3, F5, F7. Shift-F1 is the C64's F2, and so on.
- Escape is Run/Stop; F8 is Restore.
- Tab is the C64's Control; the host's Control maps to the Commodore key.
Key map entries not mentioned here are documented in the CIA emulation.
Libraries included:
- BigInteger, by Matthew Crumley and John Tobey
- jQuery.PowerTip, by Steven Benner
- Require.js, by the Dojo Foundation
- jQuery-Ajax-Blob-ArrayBuffer, by Christopher Keefer
- JSZip, by Stuart Knightley
- And, of course, jQuery.
Test ROMs included:
Resources that have been infinitely useful:
- The C64 memory map
- The VIC-II For Beginners series, by actraiser, 2013
- "The MOS 6567/6569 video controller and its application in the Commodore 64", by Christian Bauer, 1996
- "Documentation for the NMOS 65xx instruction set", by John West and Marko Makela, 1994
- 6502 opcode matrix, by Graham/Oxyron, 2012
- Opcode pseudocode from VICE, compiled at Nesdev
- "Internals of BRK/IRQ/NMI/RESET on a MOS 6502", by Michael Steil, 2010
- CIA register map, on the C64 Wiki
- Kernal/BASIC disassembly, by Marko Makela, 1994
- "How the VIC/64 Serial Bus Works", by Jim Butterfield, 1983