A JavaScript incremental game which drives the clock of a Commodore 64 emulation. Or at least, that's the eventual goal. Play the game here.
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