c64php icon indicating copy to clipboard operation
c64php copied to clipboard

C64 emulator written in PHP

C64 Emulator written in PHP

For the love of everything that is holy, why, oh god, why!!!!???!!

Screenshot 1 Screenshot 2

TODO:

  • Complete the debugger
  • Load C64 disks and tapes (we can do PRG though)
  • Enable SID
  • Fix up VIC sprites

Bugs & Things

  • Many.. but we have a functional testsuite that passes (hurrah!)

Running the emulator

Since PHP isn't really capable of displaying graphics (PHP-GTK, maybe), we are using a shared memory block which is read from a python (2.7) program (monitor.py).

This means that the following must take place:

  • Make sure you have pygame installed: pip install pygame
  • Start the monitor: python monitor.py
  • Start the emulator in another console: php c64.php

Files

  • c64.php <file.prg> Actual c64 emulator (with shm monitor output)

  • c64-debug.php <file.prg> Actual c64 emulator with debug information visible

  • c64-ws.php Websocket edition. Use with web/index.html to display monitor

  • c64-debugger.php Full debugger. Still much in progress.

  • c64-test.php Functional test system for all opcodes. Seems to be passing.