1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-23 03:32:32 +00:00
A latency-hating emulator of 8- and 16-bit platforms: the Acorn Electron, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 and Amiga, MSX 1, Oric 1/Atmos, Sega Master System, Sinclair
Go to file
Thomas Harte 51c1562eee Update README.md
Provided further exposition
2016-04-25 10:19:51 -04:00
Machines Attempted to normalise some style decisions.` 2016-04-24 22:32:24 -04:00
OSBindings/Mac Attempted to normalise some style decisions.` 2016-04-24 22:32:24 -04:00
Outputs Attempted to normalise some style decisions.` 2016-04-24 22:32:24 -04:00
Processors/6502 Attempted to normalise some style decisions.` 2016-04-24 22:32:24 -04:00
SignalProcessing Fixed run extension, temporarily forced colour amplitude. 2016-04-23 14:16:49 -04:00
Storage/Tape Started attempting to clarify instance variable usage. 2016-03-12 23:19:10 -05:00
.gitignore Fixed: timing issue versus supplied test ROM was failure to include the Plus 1 ROM in the mix. 2016-03-12 11:51:20 -05:00
LICENSE Initial commit 2015-07-16 19:46:52 -04:00
README.md Update README.md 2016-04-25 10:19:51 -04:00

CLK

An attempt to unify various bits of emulation; features:

  • a best-in-class emulation of the Acorn Electron; and
  • a mediocre emulation of the Atari 2600.

All code is motivated by a signals processing approach and a distinction between execution units and bus logic.

If simulating a TV, the CRT emulation uses your GPU to decode (and, as required by the emulated platform, possibly to encode) a genuine composite video stream — dot crawl et al are present and correct as a natural consequence, not as a post-processing effect. If a machine generates audio at 2Mhz then the source wave is modelled at 2Mhz and a standard windowing filter produces a 44Khz-or-so stream.

The hard emulation parts are C++11 and assume the OpenGL Core Profile; an Objective-C++/Swift UI binding for the Mac is present, making this completely native for Mac users. The intention is to provide additional OS bindings and ensure operation within ES 3.0 environments.