Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cadaver/oldschoolengine2-emscripten
Limited feature C64 emulator, runs recent Covert Bitops games. C++ / Emscripten port.
https://github.com/cadaver/oldschoolengine2-emscripten
c64 cplusplus emscripten emulator
Last synced: about 2 months ago
JSON representation
Limited feature C64 emulator, runs recent Covert Bitops games. C++ / Emscripten port.
- Host: GitHub
- URL: https://github.com/cadaver/oldschoolengine2-emscripten
- Owner: cadaver
- Created: 2018-07-18T15:05:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-03T13:34:35.000Z (11 months ago)
- Last Synced: 2024-02-03T14:34:49.668Z (11 months ago)
- Topics: c64, cplusplus, emscripten, emulator
- Language: C++
- Size: 436 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OldschoolEngine 2 Emscripten port
Minimal line-based Commodore 64 emulator that emulates just enough to run the recent Covert Bitops C64 games (Hessian, Steel Ranger...)
This is a C++ / Emscripten port that runs on web pages.The original "oldschoolengine" ran on GameBoy Advance to run Metal Warrior 4, and it used a custom API for graphics, sound and file access. In contrast,
this project emulates a limited subset of an actual C64, so that the game can run unmodified.Features:
- CPU emulation based on EMU6502 code by Yve Verstrepen
- Parts of SID emulation (noise, filter) based on jsSID by Mihaly Horvath
- Emscripten build system & OpenGL initialization based on tiny_chess by Jukka Jylänki
- Line-based VIC-II rendering
- Raster interrupt + partial CIA1 Timer A emulation
- Joystick port 2 control with arrows + ctrl as fire button
- Keyboard input
- D64 & D81 image support, loading / saving via minimal (and incorrect) Kernal routine traps
- Save file persistenceTODO:
- Full key mappings
Licensed under the MIT license, see the code for details. Use at own risk.
## Building
To build, the Emscripten compiler (emcc) and CMake are needed. Invoke CMake by specifying the generator and path to Emscripten's CMake toolchain.
`cmake . -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=MyPathToEmscripten.cmake`