12

Were there emulators running on 8-bit computers (preferably "mainstream" personal ones), available to general public (as opposed to in-house developers only)? I am mostly after emulators running fully in software (e.g. CPU emulation), not hardware add-on cards, and mostly after emulators running on well-know machines. It is also better if the emulators were written/used in the 8-bit era, but recent emulators are fine too, if they run on retro machines - thus an emulator running on Atmel AVR would not quite fit.

Obviously, running on 8-bit machines poses quite a significant set of challenges. First, emulated RAM must fit into the host RAM, and the emulated speed will be an order of magnitude below the host.

I know of CHIP-8 and its implementation on several 8-bit computers, but that's more of a virtual machine than an emulator.

I also know of these emulators (as you can see, I am a bit biased):

  • ZX-81 emulator by Johan Koelman, running on ZX Spectrum from 1997, which is exactly what fits the question (though it came a bit late). Author says it managed to reach about 33% speed, mostly by translating ROM routines.
  • SAM2_ZX81 (by the same author), emulating ZX81 on Sam Coupé (the CPU runs natively)
  • Unusable ZX Spectrum emulator emulating Spectrum on 8-bit Atari, from 2007 - i.e. recent, author claims ~10% speed
  • and there is of course this emulation of Windows 3.1 running on ZX Spectrum
7
  • 8
    What exactly counts as "emulator"? Does it have to be another existing computer system? E.g., the Apple II had (1) Sweet 16, a 16-bit CPU "emulator" used in ROM-Basic, (2) The UCSD p-Code "emulator" (or "virtual machine") used to run UCSD Pascal, (3) an Infocom Z-Machine "emulator" (or "virtual machine") used for Infocom text adventures like Zork etc. None of these were CPUs existing in hardware. Does that count?
    – dirkt
    Aug 23 '17 at 4:29
  • 1
    Ah, but both p-Code and Z-machine have commands to do disk I/O, and character I/O ... that doesn't count as HW? :-) It's not so different from the way mainframes and minis do I/O with real hardware... My point is: You may have to narrow down the question to "emulating an existing machine, with existing hardware". That's pretty rare, while "virtual machines" were pretty frequently used.
    – dirkt
    Aug 23 '17 at 15:14
  • 2
    Well, the last example is not actually emulation. It's just a demoscene production, resembling the look and feel of Windows, but it doesn't allow any user interaction. All mouse actions are pre-programmed. BTW: I was the one that shooted that video :D Oct 1 '17 at 22:52
  • 1
    Michael Mahon has written a cool Burroughs 220 simulator for the Apple II. Oct 3 '17 at 1:05
  • 1
    Not an answer, as it’s modern, but The Incredible KIMplement is a KIM-1 emulator for the Commodore 64 floodgap.com/retrobits/kim-1/emu.html Jul 21 at 19:33

13 Answers 13

8

Simon Owen has written a number of them for the Sam Coupé, including of the Pacman arcade machine (from which it can run the original object code natively, being a z80-based micro) and of the Apple I and Vic-20 (in both cases emulating everything up to and including the 6502).

Although the Sam is nominally a 6Mhz machine, it has heavily constrained RAM access — when pixels are active it is permitted only one access to RAM every eight cycles, and even when in the border that only increases to one in four. So in practice it isn't substantially faster than, say, an Amstrad CPC. As a result both of the 6502 machine emulators are much slower than native speed: the author estimates 1/7th the original speed for the Vic-20 emulator. With a modern-era 20Mhz accelerator board, which also eliminates RAM-access wait states, he states that you get close to the original speed.

He has also back-ported the Vic-20 emulator to the Spectrum.

9

One strange variant is an emulator running on a 8-bit CPU to emulate a ARMv6 CPU with the aim to run Linux (Details). As one can imagine the boot process takes its time ...

5

The CHIP-8 programming language allowed developers to create games that could be ran on 8-bit computers within a virtual machine, which simulates the complete hardware in software, a.k.a an emulator. Although these were 8-bit games running on 8-bit computers, you could port the same game to another 8-bit machine if it had a CHIP-8 virtual machine.

Also, 8-bit calculators (such as the TI-84 which is still used today) have the capability to run Game Boy games, NES, and other early systems including DOS on the 8-bit calculator itself which has a Zilog Z80 processor via emulation.

6
  • Can you provide a link for the TI-84 emulators? That sounds interesting; I'm surprised those calculators are anywhere near powerful enough for that.
    – NobodyNada
    Aug 22 '17 at 15:51
  • 1
    Here is a video of someone playing Zelda Links Awakening on a TI-84+. There is a link in the video description that leads to a forum about the emulator. Aug 22 '17 at 15:59
  • Game compatibility may not be great and the graphics may be a little sluggish, but still looks like a cool project. Aug 22 '17 at 16:01
  • 3
    @RetroGamer That emulator is for the TI-84+ CE, which has significantly different hardware than you might be familiar with. (Color screen, 48 MHz eZ80 CPU, 256 KB RAM…)
    – user461
    Aug 22 '17 at 20:45
  • 4
    @RetroGamer Correct -- the eZ80 is an 8-bit microcontroller. It's just a much "beefier" processor than earlier models of that calculator used.
    – user461
    Aug 22 '17 at 20:49
5

Galaksija is a Yugoslavian DIY 8-bit home computer somewhat similar to ZX80/81 in concept (that it's somewhat cheap and its video output is mostly software-generated). There's a Galaksija emulator running on a ZX Spectrum, although it requires either a Spectrum that can map RAM pages into lower 16k (i.e. +3), or use of some kind of expansion that can do that (i.e. DivMMC or DivIDE, probably others).

There's PETARI, a Commodore PET emulator for Atari XL/XE machines. That thread also mentions an Apple ][, ZX Spectrum 16k and Chip8 emulators...

5

My ZX81-emulator for the ZX Spectrum got an updated version in 2020 which is much quicker, has partly chromacharacters and can play games that use special technics on the screen. Available on sinclairzxworld.com

The ZX Spectrum also has a Videopac/Odessey2 emulator coded in 2000. At this moment I am also recoding that emulator.

4

In 1978 Dann McCreary created an 8080 Simulator for the 6502 which ran on the Kim-1.

Roßmöller used his code in their CP/M Emulator for the C64.

1
  • I would suggest adding more details, as this is a fascinating answer and one of the few commercial products I can think of that satisfy the original question. Aug 11 at 21:14
3

There's a number of (pure software) ZX Spectrum Emulators on the Sinclair QL if you count that as an 8-bit machine (quite obvious, as many QL owners were upgrading from a Spectrum), and there is a combined hard-/software emulator of the same ZX Spectrum for the Enterprise 64/128 computer.

2
  • If you count the QL as an 8 bit machine then any PC hosted emulator with only 8086 code counts too, since it should run on a PC or PC-XT (8088 CPU). Strangely Wikipedia lists the 68008 as a notable 8 bit CPU (even though it has 32 bit registers and no 8 bit instructions) but not the 8088 (which has 8 bit instructions and only 8/16 bit registers). Jul 21 at 4:22
  • The Enterprise is a good example; if I've read the documentation correctly then it adds a port $FE, the port the Spectrum offers for audio out, and tape and keyboard in, which it then traps accesses to, recording any input, and issues an NMI for the software portion to do whatever needs to be done? It wasn't clear to me whether it also traps on writes to the Spectrum's colour attribute area, but it was suggested that it might.
    – Tommy
    Jul 22 at 14:57
3

The Commodore 64 hosted a number of pure software emulators back in the day:

  • Commodore itself published a Commodore PET Emulator, written by Bob Fairbairn and bearing a copyright date of 1982. The program reconfigures the C64 to act like a 40-column PET 2001, including the memory configuration and sound. According to the manual, "machine language programs that do not call system routines will work with no modifications" provided they are (re)located in the second cassette buffer.
  • Whitby Computers distributed the Spectrum Simulator, written by David Tindale in 1985. The emulator was capable of running ZX Spectrum BASIC programs, but not machine language code.
  • The September 1985 issue of COMPUTE!'s Gazette features a type-in VIC Emulator by Fausto Ibarra. The screen and sound capabilities are emulated for BASIC programs, and machine language routines will also work "if they don't use locations 0 and 1, which are used by the 6510 chip" and if they restrict themselves to using the Kernal jump table common to all Commodore 8-bit machines.

The C64 Wiki lists a few further emulators for the C64, though as far as I know these are all modern-day retrocomputing hobbyist projects, not programs that were commercially released back in the 8-bit era.

2

To put the possibility in perspective, look at the much more modern (now defunct due to non-availability of the SoC) Flea86 project, which sufficiently emulated a PC/XT to drive an ISA graphics card and run Windows 3 on a very fast 8 bit CPU.

2
  • @scruss Practically no chip that was ever sold commercially is totally unavailable - in the worst case you pull one from a secondhand product containing it (IIRC that SOC was used in digital picture frames, so a typical commercial product to end up in fleamarkets...), or wait until some turn up on the ... reclaimed parts market. This, of course, is not practical for series production, but certainly makes building a few possible if someone intends to do so. So I used "difficult to get" intentionally. Sep 5 '17 at 3:43
  • maybe so, but I made the edit based on the Flea86 developer's comments about the SoC.
    – scruss
    Sep 6 '17 at 1:31
2

UCSD p-Code is a self-hosted emulator for a hypothetical stack machine designed to be targeted by Pascal-like languages. Apple Pascal was a p-code environment. I know Terak had a p-code environment for their Z-80 system, and I recall there was a version for CP/M-80. There were probably others.

2
  • Terak had a Z-80 system as well?
    – Leo B.
    Oct 1 '17 at 22:09
  • (See my comment and the answer above).
    – dirkt
    Oct 2 '17 at 3:59
1

BASICODE was a Europe-wide collaboration to develop a common set of BASIC subroutines for many different home computers and a common audio format for distributing programmes using those subroutines. Like CHIP-8, it implemented a lowest common denominator feature set to be supported on all machines.

Since BASICODE ran in the computer's native BASIC, it wasn't strictly an emulator, but did provide a way of running the same code on many different platforms.

1

It may be a stretch, but I can remember 2 cases wich might be seen as emulators, on Tandy's TRS-80.

  1. Level I emulation on NewDOS-80. As far as I remember, you needed a disk system TRS-80 Model I with Level II BASIC ROM and NewDOS-80 v.II OS, and you could make your machine act as if it were a cassette-based TRS-80 with a Level I BASIC ROM. Level I was very different from Level II, so it certainly wasn't tapping into the Level II ROMs. And, you had to reset the computer to get out of it.
  2. Model III emulation on a TRS-80 model 4P. You could boot the Model 4 in Model III-mode. Wich wasn't difficult, because it had the Model III ROM build-in. But the Model 4P just had a 4K boot-ROM and nothing else. By the clever use of a ROM-file and key-combination, the machine would look for the ModelA/III-file - a ROM-image of the Model III BASIC - load it, and emulate a cassette-based Model III. If there was a Model III DOS in the drive, it would boot that, and you'd have an emulated Model III on a 4P.
3
  • 1
    Emulating a TRS-80 on a TRS-80 isn't much of a stretch, but more of an OS patch.
    – scruss
    Sep 4 '17 at 1:06
  • 1
    Level I and Level II hardware were the same. The only difference was the ROM BASIC. The "Level I" program on NewDOS/80 was simply the Level I ROM BASIC as an executable loadable from disk. Nothing was being emulated.
    – librik
    Sep 4 '17 at 2:32
  • OK. Both of you are commenting item 1. What about Item 2 ?
    – Jan80TRS
    Dec 23 '17 at 23:51
1

ZX65SIM aka 6502SIM is a 6502 simulator for a Z80 CP/M system, written in 1982. It's designed for debugging / stepping 6502 code rather than to emulate a particular system, and simulates only the processor with no I/O.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.