13

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
8
  • 10
    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
    Commented Aug 23, 2017 at 4:29
  • 2
    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
    Commented Aug 23, 2017 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 Commented Oct 1, 2017 at 22:52
  • 1
    Michael Mahon has written a cool Burroughs 220 simulator for the Apple II. Commented Oct 3, 2017 at 1:05
  • 2
    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 Commented Jul 21, 2021 at 19:33

14 Answers 14

12

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

7

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.

6

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

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
    Commented Aug 22, 2017 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. Commented Aug 22, 2017 at 15:59
  • Game compatibility may not be great and the graphics may be a little sluggish, but still looks like a cool project. Commented Aug 22, 2017 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
    Commented Aug 22, 2017 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
    Commented Aug 22, 2017 at 20:49
5

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. Commented Aug 11, 2021 at 21:14
4

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.
  • In 1985, FS! Software published Art Roberts's ApSoft-64. This package extends CBM BASIC 2.0 with extra commands from Integer BASIC and Applesoft BASIC, allowing the Commodore 64 to run BASIC programs for the Apple II.

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.

1
  • I had a (pirated) copy of the Spectrum Simulator on my C64 back in the day. I can recall thinking it looked surprisingly authentic and worked in a surprisingly authentic manner. But since my native Finland did not have a particularly big installed base of Spectrums, and I never knew anyone who would have owned one, and had no access to the Spectrum BASIC manual, and the simulator did not come with any programs (and entering them from magazines was tedious, given the Spectrum’s curious BASIC commands input method), it never saw any actual use, on my C64. Still, it felt impressive at the time.
    – Jukka Aho
    Commented Jan 22, 2022 at 17:52
3

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.

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
  • 1
    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). Commented Jul 21, 2021 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
    Commented Jul 22, 2021 at 14:57
3

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.

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. Commented Sep 5, 2017 at 3:43
  • maybe so, but I made the edit based on the Flea86 developer's comments about the SoC.
    – scruss
    Commented Sep 6, 2017 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.
    Commented Oct 1, 2017 at 22:09
  • (See my comment and the answer above).
    – dirkt
    Commented Oct 2, 2017 at 3:59
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
    Commented Sep 4, 2017 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
    Commented Sep 4, 2017 at 2:32
  • OK. Both of you are commenting item 1. What about Item 2 ?
    – Jan80TRS
    Commented Dec 23, 2017 at 23:51
1

Emulate a ZX Spectrum on a Memotech MTX 512 (4MHz Z80, 64KB RAM, TMS9929A VDP, …). Patches the ZX BASIC ROM to access different hardware, so BASIC programs run fine, but code that directly accesses hardware doesn’t.

http://www.nyangau.org/z/z.htm

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .