Difference between pages "Clock Signal" and "User:Rdx"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
 
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
{{Infobox emulator
+
=WIP=
|title        = Clock Signal
 
|logo          = CLK_(emulator)_Icon.png
 
|developer    = [[User:Tommy|Thomas Harte]]
 
|version      = {{Clkver}}
 
|active        = Yes
 
|platform      = macOS<br/>Linux
 
|accuracy      = Subcycle
 
|target        = [[BBC Micro emulators|Acorn Electron]], [[Amstrad CPC emulators|Amstrad CPC]], Apple II, [[Atari 2600 emulators|Atari 2600]], [[ColecoVision emulators|ColecoVision]], Commodore Vic-20, [[MSX emulators|MSX 1]], Oric 1/Atmos/Pravetz, [[SG-1000 emulators|Sega SG-1000]] [[Master System emulators|Master System]], [[Sinclair ZX81 emulators|Sinclair ZX80/ZX81]]
 
|prog-lang    = C++; Mac bindings in Objective-C and Swift
 
|download      = [https://github.com/TomHarte/CLK/releases Official releases] (macOS)
 
|source        = [https://github.com/TomHarte/CLK GitHub]
 
}}
 
  
'''Clock Signal''', also known as '''CLK''', is an MIT-licensed open source emulator of a collection of 8-bit computers and consoles for macOS and Linux.
+
==Emulators on Various platforms==
  
It is unique in its approach to screen emulation and as a result offers worst-case video latency equal to the refresh rate of the screen on which it is being displayed — 1/60th of a second on a 60Hz monitor, 1/120th of a second on a 120Hz monitor, etc — regardless of the refresh rate of the machine being emulated.
+
[[Emulators on Android OS]]
  
It is also noteworthy for the degree to which it deploys automatic analysis in an attempt automatically to launch class software: in addition to ahead-of-time static analysis, it can simply run and monitor multiple different machines or machine configurations in parallel to determine what the proper hardware configuration for a particular title should be, often offering a seamless continuous display to the user.
+
[[Emulators on iOS]]
  
It generally emulates components internally at single-cycle or half-cycle precision but seeks to decouple execution wherever possible. E.g. even if video and processor share memory which would naively imply running each component for a single cycle in a round robin fashion, the emulator actually applies something analogous to a write-through cache: the processor writing to the shared region will cause video processing to run just-in-time as though it had been interleaving reads until then.
+
[[Emulators on Windows]]
  
Regardless of this, Clock Signal does not currently offer a perfect emulation of every supported machine. It is an active, developing emulator.
+
[[Emulators on macOS]]
  
==Display Emulation==
+
[[Emulators on Linux]]
[[File:CLK ZX80.gif|right|alt=The emulated display of a ZX80, showing accurate emulation of synchronization issues.]]
 
Clock Signal's emulated machines produce a 1d video signal, just as real machines do. Its emulated display, therefore, has to:
 
* maintain a raster positioning;
 
* run sync-triggered phase-locked loops to place horizontal and vertical retraces; and
 
* decode composite color if that's what the machine is supplying.
 
  
It uses this information to paint a virtual phosphor display — in practice just an accumulation of recently-painted material with each new painting undergoing exponential decay. Output to the host screen is simply a capture of that surface as and when the host screen requests a new frame.
+
[[Emulators on PS1]]
  
An unambiguously desirable result is that machines with variable programmatic sync, such as the Atari 2600, ZX80/81 and Amstrad CPC, should produce the proper display results, even down to rolling, bouncing and other sync issues as and when the programmer diverges, even if only transiently, from PAL or NTSC timing specifications.
+
[[Emulators on PS2]]
  
A further positive effect is that composite video produces the proper per-platform results simply because the timing is correct: e.g. the Atari 2600 and ColecoVision produce an in-phase signal when outputting NTSC so they show obvious fixed vertical banding between strong color transitions, but the Oric, Electron and PAL Atari are not in-phase so produce undulating diagonals at color transitions.
+
[[Emulators on PS3]]
  
The emulator goes as far as to use the Oric's original color ROM for Oric composite video generation — it replays the actual PCM-sampled output values generated by the real machine to produce realistic color.
+
[[Emulators on PS4]]
  
Composite color is optional for all machines on which it was originally optional. Machines such as the Oric, Electron, and MSX originally shipped with the option of RGB output, so the emulator offers the same.
+
[[Emulators on PS5]]
  
==Sound Emulation==
+
[[Emulators on Vita]]
Sound emulation is generally performed by internal generation of original megahertz-rate audio, which is resampled to the output frequency of the host computer. Therefore just as the video can scale up to modern low-latency high-refresh-rate displays, the audio can scale up to digital output rates such as 96Khz and 192Khz.
 
  
Filling sound packets is an independent trigger of emulation — the emulated machines will run to make sure they're up to date when the display needs a new frame, and they'll also run to produce the next packet of audio when the previous has been consumed.
+
[[Emulators on PSP]]
  
That generally allows the emulator to maintain audio latency guarantees completely decoupled from the frame rate. It aims for between 5 and 10ms of audio latency.
+
[[Emulators on Xbox]]
  
==Host Environments==
+
[[Emulators on Xbox 360]]
For macOS, Clock Signal is a fully-native document model application, which means that the user can simultaneously launch as many different machines as they want, sizing and positioning each independently across multiple displays, arranging their machines into a tabbed interface or performing any other standard Mac windowing actions.
 
  
Clock Signal also has an SDL-based kiosk mode, which is compatible with Linux and any other target offering SDL 2.x, at least OpenGL 3.2 and C++11, and which attempts to follow ordinary UNIX conventions as to file naming and locations. It is intended to be launched however the user would normally launch something from the command-line; the target use case is to set up a file association in the user's preferred desktop environment and launch emulated applications by double-clicking on them exactly like the user would launch native applications.
+
[[Emulators on Xbox One]]
  
In neither case does Clock Signal offer much in terms of appreciable interface. It currently assumes it can always determine the proper machine and machine configuration automatically based on the software the user wants to run and provides those only after the user has nominated their software.
+
[[Emulators on Xbox SXS]]
  
[[Category:Atari 2600 emulators]]
+
[[Emulators on Switch]]
[[Category:ColecoVision emulators]]
+
 
[[Category:Emulators]]
+
[[Emulators on Wii U]]
[[Category:Linux emulation software]]
+
 
[[Category:macOS emulation software]]
+
[[Emulators on Wii]]
[[Category:Multi-emulators]]
+
 
[[Category:MSX emulators]]
+
[[Emulators on GameCube]]
[[Category:SG-1000 emulators]]
+
 
[[Category:Master System emulators]]
+
[[Emulators on 3DS]]
 +
 
 +
[[Emulators on DS]]
 +
 
 +
[[Emulators on N64]]
 +
 
 +
[[Emulators on GBA]]
 +
 
 +
[[Emulators on GB/GBC]]
 +
 
 +
[[Emulators on SNES]]
 +
 
 +
[[Emulators on Dreamcast]]
 +
 
 +
[[Emulators on Saturn]]
 +
 
 +
[[Emulators on 32X]]
 +
 
 +
[[Emulators on MegaDrive]]
 +
 
 +
[[Emulators on Pandora]]
 +
 
 +
[[Emulators on DragonBox Pyra]]
 +
 
 +
[[Emulators on GP2X]]
 +
 
 +
[[Emulators on Caanoo]]
 +
 
 +
[[Emulators on Wiz]]
 +
 
 +
[[Emulators on GP32]]
 +
 
 +
[[Emulators on Dingoo]]
 +
 
 +
[[Emulators on GCW Zero]]
 +
 
 +
[[Emulators on Gizmondo]]
 +
 
 +
[[Emulators on Zodiac]]
 +
 
 +
[[Emulators on PalmOS]]
 +
 
 +
[[Emulators on Symbian]]
 +
 
 +
[[Emulators on Blackberry]]
 +
 
 +
[[Emulators on J2ME]]
 +
 
 +
[[Emulators on Maemo]]
 +
 
 +
[[Emulators on MeeGo]]
 +
 
 +
[[Emulators on HP Calculators]]
 +
 
 +
[[Emulators on Sharp Calculators]]
 +
 
 +
[[Emulators on TI Calculators]]
 +
 
 +
[[Emulators on Casio Calculators]]
 +
 
 +
[[Emulators on Atari ST series]]
 +
 
 +
[[Emulators on Amiga series]]
 +
 
 +
[[Emulators on MSX series]]
 +
 
 +
[[Emulators on Win9x]]
 +
 
 +
[[Emulators on WinCE]]
 +
 
 +
[[Emulators on DOS]]
 +
 
 +
[[Emulators on Windows Phone]]
 +
 
 +
[[Emulators on Windows Mobile]]
 +
 
 +
[[Emulators on Pocket PC]]
 +
 
 +
[[Emulators on Archos PMA400]]
 +
 
 +
[[Emulators on WatchOS]]
 +
 
 +
[[Emulators on BadaOS]]
 +
 
 +
[[Emulators on BeOS]]
 +
 
 +
[[Emulators on MorphOS]]
 +
 
 +
[[Emulators on iPod]]
 +
 
 +
[[Emulators on FM Towns series]]
 +
 
 +
[[Emulators on Didj]]
 +
 
 +
[[Emulators on LeapsterGS]]
 +
 
 +
[[Emulators on Leapfrog Explorer]]
 +
 
 +
[[Emulators on C64]]
 +
 
 +
[[Emulators on PC8801]]
 +
 
 +
[[Emulators on PC9801]]
 +
 
 +
[[Emulators on PC6601]]
 +
 
 +
[[Emulators on X68000]]
 +
 
 +
[[Emulators on ColecoVision]]
 +
 
 +
[[Emulators on SAM Coupe]]
 +
 
 +
[[Emulators on WonderSwan]]
 +
 
 +
[[Emulators on Nuon]]
 +
 
 +
[[Emulators on PocketChip]]
 +
 
 +
[[Emulators on Fantasy Computer]]
 +
 
 +
[[Emulators on Arduino]]
 +
 
 +
[[Emulators on FPGA]]
 +
 
 +
[[Emulators on UEFI]]
 +
 
 +
[[Emulators on P/ECE]]
 +
 
 +
[[Emulators on Yahoo! Mobile]]
 +
 
 +
[[Emulators on Zaurus]]
 +
 
 +
[[Emulators on Raspberry Pi]]
 +
 
 +
[[Emulators on Moto series]]
 +
 
 +
[[Emulators on Other Systems]]
 +
 
 +
[[Emulators on ODROID-GO]]
 +
 
 +
[[Emulators on RetroFW]]
 +
 
 +
[[Emulators on BittBoy]] + Pocket-Go
 +
 
 +
[[Emulators on ESP series]]
 +
 
 +
[[Emulators on STM32]]
 +
 
 +
[[Emulators on IRIX]]
 +
 
 +
==PSP==
 +
 
 +
[[HuE]]
 +
 
 +
[[nullDC PSP Compatibility List]]
 +
 
 +
[[DaedalusX64 PSP Compatibility List]]
 +
 
 +
[[DeSmuME PSP]]
 +
 
 +
[[nullDC PSP]]
 +
 
 +
[[DaedalusX64]]
 +
 
 +
[[e(mulator) PSP|e[mulator] PSP]]
 +
 
 +
[[NesterJ]]
 +
 
 +
[[Megazeux]]
 +
 
 +
[[SNES9x TYL]]
 +
 
 +
[[eSwan PSP]]
 +
 
 +
[[PicoDrive PSP]]
 +
 
 +
[[DGen PSP]]
 +
 
 +
[[RIN]]
 +
 
 +
==Android==
 +
 
 +
[[Citra MMJ (Unofficial)]]
 +
 
 +
[[Dolphin MMJR (Unofficial)]]
 +
 
 +
[[MelonDS (Unofficial)]]
 +
 
 +
[[Yaba Sanshiro]]
 +
 
 +
[[NooDS]]
 +
 
 +
[[Firebird]]
 +
 
 +
[[Skyline]]
 +
 
 +
[[Egg NS]]
 +
 
 +
[[FPse]]
 +
 
 +
==Calc==
 +
 
 +
[[CEmu]]
 +
 
 +
==J2ME Emulator==
 +
 
 +
[[Kahvibreak]]
 +
 
 +
[[KEmulator]]
 +
 
 +
[[FreeJ2ME]]
 +
 
 +
[[J2ME Loader]]
 +
 
 +
[[JL-Mod]]
 +
 
 +
[[PSPKVM]]
 +
 
 +
[[SquirrelJME]]
 +
 
 +
[[Cellphone emulators]]
 +
 
 +
==Others==
 +
 
 +
[[Adrenaline]]
 +
 
 +
[[New Main page WIP]] (coming soon)
 +
 
 +
[[Leapster Explorer]]
 +
 
 +
[[Leapster Leappad]]
 +
 
 +
[[Video game compilations]]
 +
 
 +
[[Chip8 emulators]]

Revision as of 08:45, 12 October 2021

WIP

Emulators on Various platforms

Emulators on Android OS

Emulators on iOS

Emulators on Windows

Emulators on macOS

Emulators on Linux

Emulators on PS1

Emulators on PS2

Emulators on PS3

Emulators on PS4

Emulators on PS5

Emulators on Vita

Emulators on PSP

Emulators on Xbox

Emulators on Xbox 360

Emulators on Xbox One

Emulators on Xbox SXS

Emulators on Switch

Emulators on Wii U

Emulators on Wii

Emulators on GameCube

Emulators on 3DS

Emulators on DS

Emulators on N64

Emulators on GBA

Emulators on GB/GBC

Emulators on SNES

Emulators on Dreamcast

Emulators on Saturn

Emulators on 32X

Emulators on MegaDrive

Emulators on Pandora

Emulators on DragonBox Pyra

Emulators on GP2X

Emulators on Caanoo

Emulators on Wiz

Emulators on GP32

Emulators on Dingoo

Emulators on GCW Zero

Emulators on Gizmondo

Emulators on Zodiac

Emulators on PalmOS

Emulators on Symbian

Emulators on Blackberry

Emulators on J2ME

Emulators on Maemo

Emulators on MeeGo

Emulators on HP Calculators

Emulators on Sharp Calculators

Emulators on TI Calculators

Emulators on Casio Calculators

Emulators on Atari ST series

Emulators on Amiga series

Emulators on MSX series

Emulators on Win9x

Emulators on WinCE

Emulators on DOS

Emulators on Windows Phone

Emulators on Windows Mobile

Emulators on Pocket PC

Emulators on Archos PMA400

Emulators on WatchOS

Emulators on BadaOS

Emulators on BeOS

Emulators on MorphOS

Emulators on iPod

Emulators on FM Towns series

Emulators on Didj

Emulators on LeapsterGS

Emulators on Leapfrog Explorer

Emulators on C64

Emulators on PC8801

Emulators on PC9801

Emulators on PC6601

Emulators on X68000

Emulators on ColecoVision

Emulators on SAM Coupe

Emulators on WonderSwan

Emulators on Nuon

Emulators on PocketChip

Emulators on Fantasy Computer

Emulators on Arduino

Emulators on FPGA

Emulators on UEFI

Emulators on P/ECE

Emulators on Yahoo! Mobile

Emulators on Zaurus

Emulators on Raspberry Pi

Emulators on Moto series

Emulators on Other Systems

Emulators on ODROID-GO

Emulators on RetroFW

Emulators on BittBoy + Pocket-Go

Emulators on ESP series

Emulators on STM32

Emulators on IRIX

PSP

HuE

nullDC PSP Compatibility List

DaedalusX64 PSP Compatibility List

DeSmuME PSP

nullDC PSP

DaedalusX64

e[mulator] PSP

NesterJ

Megazeux

SNES9x TYL

eSwan PSP

PicoDrive PSP

DGen PSP

RIN

Android

Citra MMJ (Unofficial)

Dolphin MMJR (Unofficial)

MelonDS (Unofficial)

Yaba Sanshiro

NooDS

Firebird

Skyline

Egg NS

FPse

Calc

CEmu

J2ME Emulator

Kahvibreak

KEmulator

FreeJ2ME

J2ME Loader

JL-Mod

PSPKVM

SquirrelJME

Cellphone emulators

Others

Adrenaline

New Main page WIP (coming soon)

Leapster Explorer

Leapster Leappad

Video game compilations

Chip8 emulators