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
  • 5
    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
  • @dirkt IMHO CHIP8 is skirting the definition and p-Code and Z-machine are beyond what I'd call an "emulator" - an emulator should emulate also the hardware of the guest machine. Both p-Code and Z-machine where exactly that, virtual machines without any hw, while CHIP8 hw is subject to interpretation. – Radovan Garabík Aug 23 '17 at 14:06
  • 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
  • 1
    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 – mcleod_ideafix Oct 1 '17 at 22:52
  • 1
    Michael Mahon has written a cool Burroughs 220 simulator for the Apple II. – Nick Westgate Oct 3 '17 at 1:05

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.


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 ...


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...


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.

  • 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. – Retro Gamer 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. – Retro Gamer Aug 22 '17 at 16:01
  • 2
    @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…) – duskwuff -inactive- Aug 22 '17 at 20:45
  • 3
    @RetroGamer Correct -- the eZ80 is an 8-bit microcontroller. It's just a much "beefier" processor than earlier models of that calculator used. – duskwuff -inactive- Aug 22 '17 at 20:49

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.


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.

  • @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. – rackandboneman 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

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.
  • 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

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.

  • 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

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.