Bally Astrocade, VTech Creativision, and Emerson Arcadia-2001 in lr-mess

 

All three of these seem to run at perfect or near perfect speed in lr-mess on a Pi 3. Here’s the step by step, most of which will likely work for any other system you want to emulate in lr-mess.

  • Install lr-mess. There’s a binary install under the experimental menu that is quite fast, or a source compile that takes ages. Don’t bother trying lr-mess2016; it will not work if you follow these instructions.

  • Create the relevant ROM directories if they aren’t there already. Under ~/RetroPie/roms you need

/astrocde
/arcadia
/crvision
  • Place the needed BIOSes in the /roms folders. You need
astrocde.zip
astrocdl.zip
astrocdw.zip
crvision.zip

(There is no BIOS for the Arcadia).

These go in the roms folders for each machine, e.g. alongside the games.

  • Get the hash files. These are found at https://github.com/mamedev/mame/tree/master/hash. They go in ~/RetroPie/BIOS/mame/hash which you may need to create.

  • Put the roms in the relevant roms folder. They must be zipped. Be sure you have a set that is named according to the MESS conventions. For example, you need 3dbowl.zip and not 3dbowl.bin or 3dBowling.bin or 3d Bowling (USA).zip. The set that worked for me is the “MESS 0.151 Software List ROMs.”

  • Make sure you have the systems in es_systems.cfg.

  1. Back up your old cfg.
sudo cp /opt/retropie/configs/all/emulationstation/es_systems.cfg /opt/retropie/configs/all/emulationstation/es_systems.cfg.backup
  1. Type sudo nano /opt/retropie/configs/all/emulationstation/es_systems.cfg.

Search for “arcadia,” “astrocde” and “crvision.”

If one is missing, insert the relevant block. It will look like this:

  <system>
    <name>astrocde</name>
    <fullname>Astrocade</fullname>
    <path>/home/pi/RetroPie/roms/astrocde</path>
    <extension>.bin .rom .zip .BIN .ROM .ZIP</extension>
    <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ astrocde %ROM%</command>
    <platform>astrocade</platform>
    <theme>astrocade</theme>
  </system>

Be sure to use the same names (“arcadia” “astrocade” “crvision”) here as in your theme.

  • Check that you have the emulator config files.
cd /opt/retropie/configs

See if you have a /arcadia a /astrocde, and a /crvision.

By default, the install should have set up at least /opt/retropie/configs/arcadia for you. If you don’t have the others, you can make them.

cd /opt/retropie/configs
sudo cp arcadia astrocde
sudo cp arcadia crvision

Now you need to make sure these config files are set up for Astrocade and Creativision and not Arcadia.

sudo nano astrocde/emulators.cfg

Edit the file so it looks like this:

lr-mess = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so --config /opt/retropie/configs/astrocde/retroarch.cfg %ROM%"
default = "lr-mess"

CTRL-X to exit, and hit Yes to save… then

sudo nano astrocde/retroarch.cfg

That one needs to look like

# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line

input_remapping_directory = "/opt/retropie/configs/astrocde/"

#include "/opt/retropie/configs/all/retroarch.cfg"

Repeat for the Creativision.

sudo nano crvision/emulators.cfg

Edit so it says

lr-mess = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so --config /opt/retropie/configs/crvision/retroarch.cfg %ROM%"
default = "lr-mess"

then

sudo nano crvision/retroarch.cfg

and edit so it reads

# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line

input_remapping_directory = "/opt/retropie/configs/crvision/"

#include "/opt/retropie/configs/all/retroarch.cfg"
  • Restart EmulationStation.

  • Launch a game. At this point, it should work. If it doesn’t, the culprit is almost certainly your roms. Make sure you have the right set. Check again that you have the hash files. Check that you have everything named right. Check that you have the BIOSes.

  • Map controls. You can’t use the Select-X shortcut to edit controls in lr-mess.

In Astrocade and Arcadia while playing a game, hit the TAB key on your keyboard. This will bring up the usual MAME style UI. Navigate down to the second choice using cursor keys, "Input (this machine)." Hit Enter. Then map each control by hitting enter and then the new button you wish to assign.

For Astrocade, you will want to scroll down past the block marked [root] and down to the block marked [root:ctrl1:joy]. I mapped up, down, left, right, and button 1. I also mapped Paddle Analog Dec and Paddle Analog Inc to a pair of buttons, because the mouse does not work in lr-mess. The Astrocade had a rotating joystick, and the paddle is used frequently. Then select “Return to Previous Menu” and then “Return to Machine.”

The Astrocade will boot to a menu of games when you start a game. Four of the items will be from the BIOS: Gun Fight, Checkmate, Calculator, and Scribbling. (If you launch the astrocde.zip BIOS file directly, this is all you will get). To pick the right game, hit fire, then use the paddle to get to the number you want, then hit fire again. This is a common interface convention in Bally Astrocade games.

For Arcadia-2001 you will want to modify the first block. Map your joystick; because so many buttons were used on the Arcadia keypad, I just mapped as many as I had.

For Creativision you need to first enter keyboard mode. Press the Scroll Lock key on your keyboard. If you don’t press Scroll Lock, TAB will not work to enter the MESS menu.

You should get a popup saying you are now in that other mode. Now press TAB. You will get the MESS menu. As before, go to “Input (this machine).”

The Creativision used little overlays in the controllers. Their controller had a joystick, two buttons, and half of a computer keyboard (you could stick them together and make a full keyboard!). All the Creativision games with the exception of two used the same layout for their controls, despite the multiplicity of keys.

Map RESET to your start or select button.

Player one:
Map buttons 1 and 2 to your two fire buttons.
Map B or 6 to a third button. This will typically be called “start” in the game. In Astro Pinball it is the serve button.

Player two:
Map buttons 1 and 2 to your two fire buttons.
Map N or 7 to a third button. This will typically be called “start” in the game. In Astro Pinball it is the serve button.

The two games that are an exception are Music Maker and Tank Attack. Music Maker basically requires an entire keyboard.

If you plan to play Tank Attack you should map these additional keys:

Player 1:
Q or A will be “Lay Mine”
T or G will be “Switch Tank”

Player 2:
; or P will be “Lay Mine”
Y or H will be “Switch Tank”

You can browse the overlays on Creativision emulator sites to see what they looked like and what keys they covered.

To start a game, you will usually hit RESET (e.g., Start or Select) and then whatever you mapped to B or 6. A game like Air/Sea Attack has you hit RESET, then select difficulty with either of the fire buttons, then hit START (which would be B or 6).

After mapping the Creativision, choose “Return to Previous Menu” and “Return to machine.” Then once again press Scroll Lock to return to normal input mode. Now you can play.

The config files for these mappings will not be in the usual places. Instead, they will be in

~/RetroPie/roms/arcadia/mame/arcadia.cfg
~/RetroPie/roms/astrocde/mame/astrocde.cfg
~/RetroPie/roms/crvision/mame/crvision.cfg
  • Scraping these systems. It doesn’t work very well. Let me know if you figure it out.

  • You may want to set the BIOSes to hidden so that you don’t try launching them as games. You can do this from the EmulationStation menu; just hit Select while on the BIOS file in the game list, and mark it as hidden.

Pixel art for themes

For those who, like me, use one of the various pixel themes. I’m no Rookervik but I did my best.

Astrocade logo Astrocade console
Arcadia logo Arcadia console
Creativision logo Creativision console

You can find them on my github at https://github.com/raphkoster/metapixel-additional