waves/public/assets/g/commodoreclicker/README.md
2025-04-09 17:11:14 -05:00

50 lines
2.7 KiB
Markdown

Commodore Clicker
=================
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.](http://c64clicker.com/)
Usage
-----
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.
Credits
-------
Libraries included:
* [BigInteger, by Matthew Crumley and John Tobey](http://silentmatt.com/biginteger/)
* [jQuery.PowerTip, by Steven Benner](http://stevenbenner.github.com/jquery-powertip/)
* [Require.js, by the Dojo Foundation](http://github.com/jrburke/requirejs)
* [jQuery-Ajax-Blob-ArrayBuffer, by Christopher Keefer](https://gist.github.com/SaneMethod/7548768)
* [JSZip, by Stuart Knightley](https://github.com/Stuk/jszip)
* And, of course, jQuery.
Test ROMs included:
* [Klaus Dormann's 6502 functional tests](https://github.com/redline6561/cl-6502/blob/b0087903/tests/6502_functional_test.a65)
Resources that have been infinitely useful:
* [The C64 memory map](http://sta.c64.org/cbm64mem.html)
* [The VIC-II For Beginners series, by actraiser, 2013](http://dustlayer.com/vic-ii/2013/4/22/when-visibility-matters)
* ["The MOS 6567/6569 video controller and its application in the Commodore 64", by Christian Bauer, 1996](http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt)
* ["Documentation for the NMOS 65xx instruction set", by John West and Marko Makela, 1994](http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/64doc)
* [6502 opcode matrix, by Graham/Oxyron, 2012](http://www.oxyron.de/html/opcodes02.html)
* [Opcode pseudocode from VICE, compiled at Nesdev](http://nesdev.com/6502.txt)
* ["Internals of BRK/IRQ/NMI/RESET on a MOS 6502", by Michael Steil, 2010](http://www.pagetable.com/?p=410)
* [CIA register map, on the C64 Wiki](http://www.c64-wiki.com/index.php/CIA)
* [Kernal/BASIC disassembly, by Marko Makela, 1994](http://www.ffd2.com/fridge/docs/c64-diss.html)
* ["How the VIC/64 Serial Bus Works", by Jim Butterfield, 1983](ftp://ftp.zimmers.net/pub/cbm/programming/serial-bus.pdf)