Apple IIe emulation on Fedora Linux 29 using MAME

Introduction

It is now February 1st, 2019. 13 months ago I decided that I would start the new year 2018 by doing something I had never done before: by trying out Amstrad CPC 8-bit microcomputer emulation on Linux. Back then I used MAME, and today I will show you how to get Apple IIe emulation up and running on Fedora Linux 29. Like with Amstrad CPC emulation, we will use MAME as our emulator.

Why did I choose MAME? Because a few months ago, I tried to find special-purpose Apple II emulators for Linux, and that search was a pretty annoying experience. Maybe I did not have enough patience, or maybe I used wrong key words in my search, but whatever the reason, now I think that using MAME is a good way to do this.

For sure I remember that getting system ROMs was a painful failure and unfortunately with MAME, the situation was not that much different - finding the working Apple II character and system ROM files can be extremely frustrating indeed.

This is a step-by-step tutorial on how you can run Apple IIe emulation to play retrogames on Fedora Linux 29. With little creativity, the advice here is applicable on any Linux such as Ubuntu or Debian GNU/Linux.

Installing MAME

Let's start by installing MAME emulator first. Open a terminal window and type:

sudo dnf -y install mame

After that, you can query the RPM database with command:

rpm -qi mame | less

You should see something like the following:

Name : mame
Version : 0.205
Release : 1.fc29
Architecture: x86_64
Install Date: Thu 17 Jan 2019 07:12:22 PM EET
Group : Unspecified
Size : 284753545
License : GPLv2+ and LGPLv2+ and ASL 2.0
Signature : RSA/SHA256, Sat 29 Dec 2018 08:02:10 PM EET, Key ID a20aa56b429476b4
Source RPM : mame-0.205-1.fc29.src.rpm
Build Date : Sat 29 Dec 2018 01:21:58 PM EET
Build Host : buildvm-11.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://mamedev.org/
Bug URL : https://bugz.fedoraproject.org/mame
Summary : Multiple Arcade Machine Emulator
Description :
MAME stands for Multiple Arcade Machine Emulator. When used in conjunction
with an arcade game's data files (ROMs), MAME will more or less faithfully
reproduce that game on a PC.

The ROM images that MAME utilizes are "dumped" from arcade games' original
circuit-board ROM chips. MAME becomes the "hardware" for the games, taking
the place of their original CPUs and support chips. Therefore, these games
are NOT simulations, but the actual, original games that appeared in arcades.

MAME's purpose is to preserve these decades of video-game history. As gaming
technology continues to rush forward, MAME prevents these important "vintage"
games from being lost and forgotten. This is achieved by documenting the
hardware and how it functions, thanks to the talent of programmers from the
MAME team and from other contributors. Being able to play the games is just
a nice side-effect, which doesn't happen all the time. MAME strives for
emulating the games faithfully.

Press Q to quit less pager program and return to the bash shell prompt.

Fedora Linux 29 has autosave enabled by default in the global configuration file /etc/mame/mame.ini. I do not like that default, so I remove it with:

sudo sed -i '/^autosave/d' /etc/mame/mame.ini

Installing Apple IIe ROM files

Almost everybody who works with computers knows that Steve "Woz" Wozniak was an important pioneer in the home computer industry. With business-oriented Steve Jobs, he founded Apple company and the rest is history. Many early, big and influential computer companies such as Atari and Commodore are gone now, but Apple still persists.

I am a little bit afraid of being persecuted by Apple, but thinking realistically, the Apple IIe ROM files, even though copyrighted, have ceased to create profits for Apple. The first Apple II computer was released way back in 1977 and the last came out in 1993. So we are talking about obsolete software that really, in my opinion, should have its copyright expired.

To make life easier for Apple II and retrocomputing fans out there, you can download apple2e.zip here. Without the files in that ZIP archive, MAME cannot run Apple IIe emulation, so it is necessary to install them.

If you are interested, you can ask MAME to tell you which ROM files it expects to find for apple2e emulation:

mame apple2e -listroms

Now install the ROM files for MAME:

sudo mkdir /usr/share/mame/roms/apple2e
sudo cp -iv apple2e.zip /usr/share/mame/roms/apple2e
cd /usr/share/mame/roms/apple2e
sudo unzip apple2e.zip

After that you can ask MAME to verify that the ROMs are okay:

mame apple2e -verifyroms
romset apple2e is good
1 romsets found, 1 were OK.

Playing 8-bit retrogames on emulated Atari IIe

I am a legal owner of three Apple II games, meaning that I have bought authentic, physical copies from eBay. The games are available for download here:

  1. Boulder Dash (1984)
  2. Miner 2049er (1982)
  3. Picnic Paranoia (1982)

Before starting MAME, I have my Logitech Rumblepad 2 USB controller plugged in.

Boulder Dash

To run Boulder Dash you do:

cd ~
mkdir -p retro/apple2/games
cp -iv boulderdash_1.zip retro/apple2/games
cd retro/apple2/games
unzip boulderdash_1.zip
mame apple2e -window -flop1 boulderdash_1.dsk

Then press key A on the keyboard to select "Apple joystick":

boulder dash apple iie 01

After that I press the FIRST BUTTON of my Logitech Rumblepad 2 USB controller, and that starts the game:

boulder dash apple iie 02

Picnic Paranoia

To run Picnia Paranoia do:

cp -iv killer_klams_picnic_paranoia_zytrowar.zip ~/retro/apple2/games
cd ~/retro/apple2/games
unzip killer_klams_picnic_paranoia_zytrowar.zip
mame apple2e -window -flop1 Kil*dsk

This floppy disk image contains three games, and we are interested in the game C i.e. Picnic Paranoia:

picnic paranoia apple iie 01

Press R on the keyboard followed by C and you will see this:

picnic paranoia apple iie 02

The game cracking group has inserted its message before the game. Press ENTER to advance to the game:

picnic paranoia apple iie 03

You will see PRESS RETURN TO START. "RETURN" means ENTER:

picnic paranoia apple iie 04

This is Picnic Paranoia:

picnic paranoia apple iie 05

Miner 2049er

To run Miner 2049er do:

cp -iv Miner-2049er_Apple-II_EN.zip ~/retro/apple2/games
cd ~/retro/apple2/games
unzip Miner-2049er_Apple-II_EN.zip
mame apple2e -window -flop1 'Miner 2049er (1982)(Micro Fun).DSK.zip'

Then press ENTER:

miner 2049er apple iie 01

I press A for "Apple joystick":

miner 2049er apple iie 02

Keep your joystick/controller pad centered (i.e. in neutral position) and press the controller's FIRST BUTTON:

miner 2049er apple iie 03

Hold controller in the left position, and press the FIRST BUTTON. Repeat for right, up and down.

miner 2049er apple iie 04

Press number 1 on keyboard:

miner 2049er apple iie 05

This is Miner 2049er:

miner 2049er apple iie 06

For some reason, Miner 2049er game seems to last forever. In other words, the "lives" do not decrease at all. I do not know why.

Conclusion

You now know how to install MAME and Apple IIe related ROM files. You also know how to start three classic retrogames on Apple IIe emulation using MAME.

I find it pretty sad that Steve Jobs never really gave credit to the hackers who created Apple II. It was a good 8-bit machine, and it made lots of money for Apple. I am sure many Apple II owners remember it with great joy, and possibly want to relive their old memories using emulation. This tutorial is meant as help to those people, and also to those who are just getting to know Apple II.

I certainly hope that Apple will not persecute me for making the Apple II system ROMs available. The site kolttonen.fi is a strictly non-profit site with no ads or commercial interests.

Have fun!

Kalevi Kolttonen <kalevi@kolttonen.fi>
Helsinki, Finland
February 1st, 2019