Editing Clock Signal
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 2: | Line 2: | ||
|title = Clock Signal | |title = Clock Signal | ||
|logo = CLK_(emulator)_Icon.png | |logo = CLK_(emulator)_Icon.png | ||
− | |||
|developer = [[User:Tommy|Thomas Harte]] | |developer = [[User:Tommy|Thomas Harte]] | ||
− | |version = {{ | + | |version = {{clkver}} |
|active = Yes | |active = Yes | ||
− | |platform = | + | |platform = Linux, macOS, BSD |
|accuracy = Subcycle | |accuracy = Subcycle | ||
− | |target = [[BBC Micro emulators|Acorn Electron]], [[Amstrad CPC emulators|Amstrad CPC | + | |target = [[BBC Micro emulators|Acorn Electron]], [[Amstrad CPC emulators|Amstrad CPC]], [[Apple II emulators|Apple II]], [[Atari 2600 emulators|Atari 2600]], [[Atari ST emulators|Atari ST]] (experimental), [[ColecoVision emulators|ColecoVision]], Commodore VIC-20, [[Macintosh line|early Macintosh]], [[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 | |prog-lang = C++; Mac bindings in Objective-C and Swift | ||
|download = [https://github.com/TomHarte/CLK/releases Official releases] (macOS); [http://snapcraft.io/clock-signal Snapcraft listing] (Linux) | |download = [https://github.com/TomHarte/CLK/releases Official releases] (macOS); [http://snapcraft.io/clock-signal Snapcraft listing] (Linux) | ||
|source = [https://github.com/TomHarte/CLK GitHub] | |source = [https://github.com/TomHarte/CLK GitHub] | ||
− | |||
|license = MIT License | |license = MIT License | ||
}} | }} | ||
− | '''Clock Signal''', also known as '''CLK''', is an MIT-licensed | + | '''Clock Signal''', also known as '''CLK''', is an MIT-licensed open-source emulator of a collection of 8-bit computers and consoles for Linux, macOS and BSD. |
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. | 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. | ||
Line 37: | Line 35: | ||
|} | |} | ||
− | ==Display | + | ==Display Emulation== |
[[File:CLK ZX80.gif|right|alt=The emulated display of a ZX80, showing accurate emulation of synchronization issues.]] | [[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: | Clock Signal's emulated machines produce a 1d video signal, just as real machines do. Its emulated display, therefore, has to: | ||
Line 54: | Line 52: | ||
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. | 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. | ||
− | ==Sound | + | ==Sound Emulation== |
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. | 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. | ||
Line 61: | Line 59: | ||
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. | 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. | ||
− | ==Host | + | ==Host Environments== |
===macOS=== | ===macOS=== | ||
− | 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. It uses Metal for graphics output | + | 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. It uses Metal for graphics output. |
===Qt=== | ===Qt=== | ||
Line 71: | Line 69: | ||
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++17, 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. | 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++17, 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Amstrad CPC emulators]] | [[Category:Amstrad CPC emulators]] | ||
− | |||
[[Category:Atari 2600 emulators]] | [[Category:Atari 2600 emulators]] | ||
[[Category:Atari ST emulators]] | [[Category:Atari ST emulators]] | ||
[[Category:ColecoVision emulators]] | [[Category:ColecoVision emulators]] | ||
+ | [[Category:Emulators]] | ||
+ | [[Category:Linux emulation software]] | ||
[[Category:Macintosh emulators]] | [[Category:Macintosh emulators]] | ||
+ | [[Category:macOS emulation software]] | ||
[[Category:Master System emulators]] | [[Category:Master System emulators]] | ||
+ | [[Category:Multi-emulators]] | ||
[[Category:MSX emulators]] | [[Category:MSX emulators]] | ||
[[Category:SG-1000 emulators]] | [[Category:SG-1000 emulators]] | ||
− | |||
− | |||
− | |||
− | |||
− |