Skip to content

Basic Approach to getting a new system emulation working

cowarlydragon edited this page May 8, 2024 · 2 revisions

Part of the dark art of emulation is that a lot of the platforms aren't the most user-friendly to people who have had decent UI / desktops to work with. Obscure command lines, clunky windowing systems, all can be hard to deal with.

Here's the general process:

  1. Is there a retroarch core? That will be the quickest.

  2. Is there a working mame driver? A bit more involved, but if MAME says "good", it'll be pretty good

  3. Otherwise download some standalone ones. In order of ease of getting them:

  • flatpak
  • package in the OS's default package manager (no ppo/extra sources)
  • straight binary download
  • package that requires PPAs/new download repos
  • emulating via WINE
  • building from source
  1. download a common/popular game or software as a test

  2. try to get it running from the UI of the emulator

  3. try to get it running via a command line call

Usually you'll have some file that represents old software you'd like to run. It will usually be a floppy disk image, rom dump, CD/DVD iso image, hard drive image, or even a cassette tape mp3/wav file. Hopefully you know what system it is for.

The first step: what emulators are there that emulate this system? And ... how well do they do it? Emulators are a lot like compilers: they are almost never feature complete. There's always some obscure peripheral, kooky piece programming, undocumented opcode, firmware differences, etc. So the "compatibility" or "accuracy" of the emulator, which is a judgement of how much of the software and hardware ecosystem an emulator ... emulates ... is an important metric. There are many many excellent emulators out there, thankfully almost all platforms have multiple emulators that are "good".

Different emulators will often have different capabilities. Particularly, different emulators will have abilities to read different file formats, because often software is in sometimes a half-dozen image formats and the like, and those images will often be of multiple generations of file formats and data structures. Emulators will have varying abilities to do keyboard input, joystick output, display emulation.

Getting emulators installed can be a bit of a bear. Sometimes you need to compile them, sometimes they are a bit long in the tooth for the OS you are running. SOMETIMES you even need to run an emulator inside another emulator.

Emulators often require bios, which are dumps of the system boards and chips. They often require system software to boot up. The bios files will almost never come with the emulator software because of noxious copyright laws. We need the emulator authors free to write and debug the emulator software itself, so this gives legal protections to the emulator authors.

How do you know the emulator is running? Do some internet searches to determine what a good "vanilla" piece of software that an emulator for that platform should be able to easily handle, often a very popular game or application. Use that to test the boot up of the emulator and if you can get that working, then whatever else should be pretty similar to that process.