Related Stuff > Emulators

Running Retroarch MESS systems within Attract Mode (Windows PC)

(1/2) > >>

Windows PC - Attract Mode - Retroarch - MESS systems

Hey group, ever wanted to tinker around with MESS based systems on a Windows PC build with Retroarch?

I've slowly been working through this process and adding MESS based systems using Retroarch.  So far, I've been able to figure out quite a few systems using this method.

It's easier on a Raspberry Pi / RetroPie build to do it - but i wanted to also get it working on my Windows PC build.

I've worked out a method to get any MESS based system working and it's easy to add new ones (it might take a little bit to figure out the exact MESS command line arguments though).

Using this method, you do not need to adhere to the old MESS convention of using the Hash files.  Setting up Retroarch/MAME core to not use software lists makes this possible.

The latest MAME Retroarch core includes MESS built into it so there is no separate MESS core.

Sorry for the long post and I hope it makes sense. 
If anyone would like to see a video demo of this method, let me know and I'll make one and post it.

I'll work through the method here and demonstrate it using the Bally Astrocade system.


High level overview of this method:

Attract Mode will launch a special Windows *.bat file and pass it the '[romfilename]' value.

This special *.bat file is located in the Retroarch directory.

The *.bat file is used as a command line launcher script so we can pass MESS based command line arguments to it.

This allows the ability to setup cassette, floppy assignments, memory expansions, etc.

The *.bat file creates a secondary MESS *.cmd file with the MESS command line parameters and then launches it.

This launches Retroarch with the MAME (MESS) core with the new command line parameters and our rom file.



Windows PC Attract Mode
Retroarch with the latest MAME core installed (it has MESS built into it)
MAME/MESS BIOS files (obtained from latest MAME and latest MAME Software List versions)

The BIOS files go into the Retroarch\system folder

Bally Astrocade Example:

Attract Mode config:

My Attract Mode is installed here:


Here’s my Attract Mode emulator config file:

filename:  Bally Astrocade.cfg

file contents:

# Generated by Attract-Mode v2.4.1-1
executable           cmd
args           /c cd "D:\Emulators\RetroArch_MESS\" & mess_astrocde.bat "[romfilename]"
rompath              D:\Roms\astrocde\
romext               .zip;.ZIP;.bin;.BIN
system               Bally Astrocade
artwork    boxart          D:\Roms\astrocde\boxart
artwork    cartart          D:\Roms\astrocde\cartart
artwork    flyer             D:\Roms\astrocde\flyer
artwork    marquee      D:\Roms\astrocde\marquee
artwork    snap            D:\Roms\astrocde\snap
artwork    wheel           D:\Roms\astrocde\wheel

Attract Mode will launch a special *.bat file (mess_astrocde.bat in this example) and pass it the “[romflename]” value.

Each MESS system will have its own special *.bat file to use (see below).

Setup a display for it and generate the romlist if needed.

Bally Astrocade Example:

Retroarch config:

Download and extract Retroarch

I renamed the extracted folder (to keep it separate from my standard Retroarch emulator folder). This keeps my MESS based systems together and separate from my other configuration (for MAME, NES, SNES, etc).

I have this version of Retroarch installed here:


Place the BIOS file here:


Once you have Retroarch installed with the latest MAME core and BIOS file, you’ll need to make some adjustments in the core options file.

This sets up MAME so it does not force it to use the software list Hash files.  This lets us use any rom folder name and file naming convention we want to.

filename:  retroarch-core-options.cfg

Add these lines:

mame_softlists_enable = "disabled"
mame_softlists_auto_media = "disabled"
mame_boot_from_cli = "disabled"
mame_mouse_enable = "enabled"

Special *.bat files:

Each MESS based system will have it’s own Windows *.bat launcher script. 

Attract Mode launches the *.bat file passing the rom filename.  This special *.bat file creates a MESS *.cmd file with MESS command line arguments and then launches Retroarch using the *.cmd file.

Here’s our example:

filename:  mess_astrocde.bat

file contents:

echo off
set arg1=%1
@echo retroarch.exe -L cores\mame_libretro.dll mess.cmd > D:\Emulators\RetroArch_MESS\run_mess.bat
@echo astrocde -rp ".\system" -cart %arg1% > D:\Emulators\RetroArch_MESS\mess.cmd

Line explanations:

echo off
This lines turns off any DOS terminal messages

set arg1=%1
This line is the passed “[romfilename]” value

@echo retroarch.exe -L cores\mame_libretro.dll mess.cmd > D:\Emulators\RetroArch_MESS\run_mess.bat
This line creates the temporary *.bat file that will be executed to launch the rom/game

@echo astrocde -rp ".\system" -cart %arg1% > D:\Emulators\RetroArch_MESS\mess.cmd
This line adds the MESS command line arguments to the MESS *.cmd file that sets up how to run the rom/game.
For Astrocade games, they are cartridge based (-cart parameter)

This line runs the newly created temporary *.bat file
This launches Retroarch with the MAME core and tells Retroarch to use the MESS *.cmd file.

Bally Astrocade Example:

Rom/Game launches

If all went well, Retroarch should launch with the MAME core using the MESS *.cmd file for command line arguments.

Retroarch will start with full keyboard emulation enabled.

This means the ESCAPE key will not work to exit the game and TAB will not work to bring up the MESS GUI config window.

Press the Scroll Lock key to switch to Partial keyboard emulation. Once switched, ESCAPE and TAB will work as expected.

Access the MESS GUI to configure specific controller/gamepad buttons as needed, swap disks sometimes, etc.

Some games use the number pad for game controls, some use ESCAPE as a fire button, some use SHIFT or various other keyboard keys. That’s why the default is full keyboard emulation.

These older MESS based systems require a little more work to get them running within Retroarch with the MAME (MESS) core.

One thing I’ve learned, though, is I’ve had to Google many times for some older computer systems to figure out how to actually load a cassette or run it once it’s loaded.

Here’s a good webpage for a few of the more popular computers.


[0] Message Index

[#] Next page

Go to full version