Take Me Down to Emulation City…
At least Guns’n’Roses may have sung in 2020 …
Computing, Architecture and processing power has increased significantly from the early days of the 8bit home microcomputer boom from the late 70’s. I remember a discussion with my school teacher about running code (well games) designed for other computers on a BBC-B, here I was talking about running Z80 on a 6502 architecture, or maybe VIC-20 (6502) on a BBC. He was a very clever guy, I remember him laughing and saying that’s just not possible and his rationale sounded reasonable.
I wanted to prove hime wrong so I wrote a Z80 interpreter in 6502 assembly as a proof of concept, I was in my mid teens, a bit rebellious. Sure it wasn’t as fast as native 6502 code or a real Z80, after the clock speeds were 1Mhz and 4Mhz accordingly. Nor was there much memory left to run Z80 code, it was a fun project though and gave an a-lot of insight into processors where so little information was freely available in the early 80’s, at least to kids.
Fast forward to the 90s as Personal Computing processor speeds increased from 1Mhz, Mhz, Mhz, and upwards which meant more scope to implement older architectures in newer devices. In 1993 I purchased my first 486DX4-100 with a whopping 8mb of RAM (That’s right Megabytes not Gigabytes) with a 540mb hard drive (today we have thumb drives over 32 times that as a minimum capacity for a fiver). Hard to imagine less than 0.5gb of storage today. I installed Borland Turbo C and tools to disassemble and assemble code. 80×86 was a more complex assembly language to get to grips with than 6502, 6800 and Z80/8085.
These days I rarely have anything less than 32gb of memory in my machines.
From the early 90s emulators were becoming on-line at pace with offerings like MAME (Multi Arcade Machine Emulation)
and in the late 90’s Emulators like Bleem!
Bleem! was ahead of its time that offered rather good PS1 Emulation, so good, that within two days of its announcement, Sony started and ultimately lost litigation to prevent this emulator reaching the market. Unfortunately the cost of litigation put the company out of business, which may have been the catalyst that spurred even greater openSource emulation projects for the oncoming decades.
Over the years emulation has grown with help of a global community of gifted coders working together to scrutinise and disassemble their favourite machines, write libraries emulating various chip functionality right down to the correct timing sequences to help preserve our Digital heritage and of course a huge back catalogue of software.
I would suggest opensource Emulation projects proof of how a community can work together and move projects forward as a common goal, seeking perfection and improvements throughout. Being open source, it’s also a great way of learning old and new coding techniques.
These days, most earlier systems can be emulated on a Raspberry Pi Zero with 1Gb of memory, which I’ve covered off in my Retropie articles. https://muckypaws.com/category/retropie/
Anyhoo… let’s get to the point of this post…
Emulators are very prevalent on Windows machines, but what’s available for macOS? Well you’d be surprised, there are many implementations which cover macOS and Linux for that matter, and just for my own benefit i’m listing the ones I’ve been using below, which have been tested to work on macOS Catalina, there are however a few that haven’t been made available for macOS or the macOS version hasn’t been maintained and is no longer compatible. For these I use a tool called Crossover https://www.codeweavers.com/crossover which is essentially WINE https://www.winehq.org with a support wrapper that makes creating bottles a doddle (and is the only officially supported channel).
Failing that, occasionally I have to sully myself with Windows for which the only tool good enough (except a real machine) is Parallels (https://www.parallels.com/) and a windows installation that allows me to sandbox various windows instances and versions, some of which I use for security research purposes. The final backstop of course is to use a Web Based Emulator which again are very solid and reliable.
I may create separate articles with a quick start guide for each of these systems, since some have obscure commands.
Please note, this is not an exhaustive list, just the ones I’m currently using, though if you have a favourite not mentioned here, then drop a line in the comments below!
Here’s the list I’ve included to help you jump to the emulator of interest.
- Acorn BBC Model B
- Amstrad CPC
- Atari 2600
- Atari 400/600/800 XL
- Commodore VIC20/C16/PLUS4/C64/C128
- Commodore Amiga
- Ohio Scientific Challenger 1P
- Sam Coupé
- Tandy Colour Computer 3
- Tandy T100/T102
- Thomson TO7
- Thomson TO8
- Videoton TVC
- ZX Spectrum
Acorn – BBC Model B
One of the earlier machines I learned to cut my teeth on coding assembler due to the inbuilt basic allowing inline assembly language instructions.
BeebEM – No Longer Compatible
BeebEM for Mac was a popular and useful resource, however the Author hasn’t updated the software for many years and won’t work on the latest macOS releases.
b2 – Tom Seddon
Discovered this one this week when looking to see if my old 5.25″ BBC Disks still contain my old programs. It works very well on macOS though available for multiple platforms
All Platforms: https://github.com/tom-seddon/b2
A web based BBC Model B Emulator with inbuilt Elite.
Possibly my most favourite of retro machines, and seemingly not as popular as Commodore or Spectrum users of the day.
This is my go to Amstrad CPC Emulator and written by a cool guy “Markus Hohmann” and works on multiple platforms
All Platforms: https://sourceforge.net/projects/javacpc/
Though others prefer Arnold and Caprice which are both popular
Windows/Linux Caprice: https://github.com/ColinPitrat/caprice32
Although the latest version of Arnold (2017) tends to crash on later macOS versions.
Only one or two “Rich Kids” had this console when I was at school, River Raid, Tank, Space Invaders and Pacman were very popular and a much improvement on the TV Pong consoles that I owned.
Very popular Emulator for the 2600 and available for multiple OS’
All Platforms: https://stella-emu.github.io
Love this multi-emulator that covers many retro systems including the Atari 2600, easy to configure and simple to use, what’s not to like?
Want to know more? Click here
Atari 400/600/800 XL, 130XE, 5200
Quite an under rated system that should have been more popular than it was back in the day.
All Platforms: https://atari800.github.io/
Source Code: https://github.com/atari800/atari800/releases
Windows Only, but compatible with Crossover.
VICE – The Commodore Emulator
VICE Is by far the most popular emulator for Commodore computers, though it’s not 100% perfect its used for many demos, games and programs of old, being updated reasonably regularly.
All Platforms: https://vice-emu.sourceforge.io
Hoxs64 – Commodore 64 Emulator
This emulator I discovered recently and is meant to have exact timings for software that is dependant and doesn’t lock up like VICE. However it’s Windows only, but does run well under Crossover on Mac.
Quite a lovely emulator and open source too!
Source Code: https://github.com/dirkwhoffmann/virtualc64
Most popular seems to be FS-UAE which includes full source code, and an “Arcade Mode” giving you full screen game play out the gate.
All Platforms: https://fs-uae.net/download#macosx
I know this is predominantly a macOS Article, but I had to tip the nod to the latest Win-UAE for Amiga Emulation, although Windows only, does work in CrossOver.
Web Based: https://www.6809.org.uk/xroar/online/
Only able to find a Windows only version which is compatible with CrossOver however it hasn’t been updated since 2009.
Windows only emulator that works well with CrossOver
All Platforms: https://fms.komkon.org/fMSX/#Downloads
All Platforms: https://openmsx.org
Browser Based: https://webmsx.org
Ohio Scientific Challenger 1P
A lot of history behind this machine which was available around 1978, the only emulator I was able to find is online.
Web Browser: https://www.pcjs.org/machines/osi/c1p/
One of the most capable emulators for consoles on macOS, and it’s open source: https://github.com/OpenEmu/OpenEmu
At the time of writing it covers off the following :-
- Atari 2600
- Atari 5200
- Atari 7800
- Atari Lynx
- Famicom Disk System
- Game Boy
- Game Boy Advance
- Game Gear
- NeoGeo Pocket
- Nintendo NES
- Nintendo 64
- Nintendo DS
- Sega Master System
- Sega MegaDrive
- Sega 32X
- Sega CD
- Sega Genesis
- Sega Saturn
- Sony PSP
- Sony Playstation
- Super Nintendo (SNES)
- Virtual Boy
- Wonder Swan
- Experimental MAME (Needs additional cores – dev version currently).
Richard Bannisters Oric emulator works well for my needs, though you may want to check out Oricutron for Windows (Works well under CrossOver).
The only working version I’ve found is Windows based and CrossOver compatible.
SHARP MZ-80A, MZ-80K/C, MZ-1200
I could only find a windows emulator for this machine, however it is CrossOver compatible.
Tandy Colour Computer 3
Windows only emulator that’s compatible with CrossOver
I had one of these in the late 80’s, awesome machine as it had a built in serial interface and dial-up model, portable, built in basic and loads of features.
Thomson Multi Emulator
Multiple Thomson Emulators, Windows Only, Cross Over Compatible.
TRS80 – MC10
The latest version I have is 0.73G however currently unable to find this version URL, 0.73C can be located below. If you know where the official page is, please let me know.
Browser Based: http://mc-10.com
This machine was made in Hungary and not one I’ve come across until very recently.
Unfortunately I was unable to locate a macOS or Linux friendly version of this emulator. There’s a 2004 Windows XP version that will only run on 32Bit Windows.
A Windows GUI is available from here: http://tvc.homeserver.hu/bin/emu/ which also happened to be built in February 2021.
To date, I’ve been unable to get this working under CrossOver and requires real windows hardware or Parallels VM which is what I’m using.
ZEsarUX Is probably my goto ZX81 Emulator, but there are others worth a mention.
There’s many an emulator for the humble Spectrum, one of my favourites is Fuse, along with RetroVirtualMachine 2 and others
All Platforms: http://fuse-emulator.sourceforge.net