All Projects → TomHarte → Clk

TomHarte / Clk

Licence: mit
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, Commodore Vic-20, MSX 1, Oric 1/Atmos, Sega Master System and Sinclair ZX80/81.

Projects that are alternatives of or similar to Clk

Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (-48.74%)
Mutual labels:  6502, emulator
Pcjs.v1
PCjs Machines 1.0 (archived)
Stars: ✭ 468 (-1.68%)
Mutual labels:  6502, emulator
js-nes-emulator
NES emulator in javascript.
Stars: ✭ 12 (-97.48%)
Mutual labels:  emulator, 6502
Mednes
A cycle-accurate, cross-platform NES emulator written in C++
Stars: ✭ 189 (-60.29%)
Mutual labels:  6502, emulator
retro-computing
🤓🕹💾 This hobby project contains software implementations of old microprocessors and complete computer systems. I'm very interested in retrocomputing and this is how I learn about the inner workings of these old, classic and amazing computers and game consoles.
Stars: ✭ 15 (-96.85%)
Mutual labels:  emulator, 6502
Punes
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Stars: ✭ 217 (-54.41%)
Mutual labels:  6502, emulator
6502-emulator
An Understandable 6502 Emulator
Stars: ✭ 26 (-94.54%)
Mutual labels:  emulator, 6502
Beebjit
A very fast BBC Micro emulator.
Stars: ✭ 81 (-82.98%)
Mutual labels:  6502, emulator
go6502
6502 CPU emulator, assembler and disassembler written in Go
Stars: ✭ 31 (-93.49%)
Mutual labels:  emulator, 6502
champ
A 65C02 profiler
Stars: ✭ 17 (-96.43%)
Mutual labels:  emulator, 6502
Pcjs
The original IBM PC and other machine emulations in JavaScript
Stars: ✭ 171 (-64.08%)
Mutual labels:  6502, emulator
Jsbeeb
Javascript BBC micro emulator
Stars: ✭ 261 (-45.17%)
Mutual labels:  6502, emulator
Nes
A Javascript NES Emulator
Stars: ✭ 168 (-64.71%)
Mutual labels:  6502, emulator
X6502
Yet another 6502 emulator that one day dreams of being an Atari 2600.
Stars: ✭ 220 (-53.78%)
Mutual labels:  6502, emulator
Py65
Emulate 6502-based microcomputer systems in Python
Stars: ✭ 162 (-65.97%)
Mutual labels:  6502, emulator
Thistle
6502 based architecture for OpenComputers
Stars: ✭ 26 (-94.54%)
Mutual labels:  emulator, 6502
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+1024.79%)
Mutual labels:  6502, emulator
Embeddednes
A portable NES simulator for embedded processors
Stars: ✭ 26 (-94.54%)
Mutual labels:  6502, emulator
Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-95.17%)
Mutual labels:  emulator, 6502
mos6502
MOS 6502 emulator written in Rust
Stars: ✭ 25 (-94.75%)
Mutual labels:  emulator, 6502

Clock Signal Application Icon

Clock Signal

Clock Signal ('CLK') is an emulator for tourists that seeks to be invisible. Users directly launch classic software with no emulator or per-emulated-machine learning curve.

macOS and source releases are hosted on GitHub. For desktop Linux it is also available as a Snap. On the Mac it is a native Cocoa and Metal application; under Linux, BSD and other UNIXes and UNIX-alikes it uses OpenGL and can be built either with Qt or with SDL.

This emulator seeks to offer:

  • single-click load of any piece of source media for any supported platform;
  • with a heavy signal processing tilt for accurate reproduction of original outputs;
  • while minimising latency.

It currently contains emulations of the:

  • Acorn Electron;
  • Amstrad CPC;
  • Apple II/II+ and IIe;
  • Atari 2600;
  • Atari ST;
  • ColecoVision;
  • Commodore Vic-20 (and Commodore 1540/1);
  • Macintosh 512ke and Plus;
  • MSX 1;
  • Oric 1/Atmos;
  • Sega Master System; and
  • Sinclair ZX80/81.

Single-click Loading

Through static and runtime analysis CLK seeks automatically to select and configure the appropriate machine to run any provided disk, tape or ROM; to issue any commands necessary to run the software contained on the disk, tape or ROM; and to provide accelerated loading where feasible.

The full process of loading a title — even if you've never used the emulated machine before — is therefore:

  1. locate it in your OS;
  2. double click it.

Signal Processing

Consider an ordinary, unmodified Commodore Vic-20. Its only video output is composite. Therefore the emulated machine's only video output is composite. In order to display the video output, your GPU must decode composite video. Therefore composite video artefacts are present and correct not because of a post hoc filter but because the real signal is really being processed.

Similar effort is put into audio generation. If the real machine normally generates audio at 192Khz then the emulator generates a 192Khz source signal and filters it down to whatever the host machine can output.

Samples

1:1 Pixel Copying Composite Decoded
The Electron start screen, with a classic 1:1 pixel emulation The Electron start screen, decoded from an interlaced composite feed
Repton 3 in game, with a classic 1:1 pixel emulation Repton 3 in game, decoded from an interlaced composite feed
Stormlord with a classic 1:1 pixel emulation Stormlord decoded from a composite feed
Road Fighter with a classic 1:1 pixel emulation Road Fighter decoded from a composite feed
A segment of the ColecoVision Donkey Kong title screen with a classic 1:1 pixel emulation A segment of the ColecoVision Donkey Kong title screen decoded from a composite feed
Sonic the Hedgehog with a classic 1:1 pixel emulation Sonic the Hedgehog screen PAL decoded from a composite feed
1:1 Pixel Copying Correct Aspect Ratio, Filtered
Amstrad text, with a classic 1:1 pixel emulation Amstrad text, with correct aspect ratio and subject to a lowpass filter
The Amstrad CPC version of Stormlord, with a classic 1:1 pixel emulation The Amstrad CPC version of Stormlord, with correct aspect ratio and subject to a lowpass filter

Low Latency

The display produced is an emulated CRT, with phosphor decay. Therefore if you have a 140Hz 4k monitor it can produce 140 distinct frames per second at 4k resolution. Latency is dictated by the host hardware, not the emulated machine or emulator.

Audio latency is disjoint from frame rate and is generlaly restrained to 5–10ms.

Accurate Emulation

Accuracy affects usability; the more accurate an emulator, the more likely that a user can run every piece of software they're interested in without further intervention.

This emulator attempts cycle-accurate emulation of all supported machines. In some cases it succeeds.

Additional Screenshots

Apple IIe Prince of Persia Apple Macintosh MusicWorks
Atari ST Stung Car Racer Amstrad CPC Chase HQ
Acorn Electron Chuckie Egg ColecoVision Galaxian
ZX81 3D Monster Maze ZX80 Kong
SG1000 Chack'n'Pop Atari 2600 Solaris
Vic-20 Gridrunner VIC-20 BASIC

macOS Version Qt Version

Sponsorship

I've been asked several times whether it is possible to sponsor this project; I think that's a poor fit for this emulator's highly-malleable scope, and it makes me uncomfortable because as the author I primarily see only its defects.

An Amazon US wishlist is now attached in the hope of avoiding the question in future. A lot of it is old books now available only secondhand — I like to read about potential future additions well in advance of starting on them. Per the optimism of some book sellers, please don't purchase anything that is currnetly listed only at an absurd price; they were sorted by secondhand price when added to the list, with cheapest being $5.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].