Posts: 1667
Joined: Mon Oct 29, 2012 2:07 pm

ADVMESS - A “Beginners Guide” to Compiling and Using

Sat Nov 17, 2012 4:56 pm

MESS (Multi Emulator Super System) is a “sister” project to MAME allowing the emulation of many Console and Computer’s. Some systems can be emulated WITHOUT a BIOS (NES for example), but in MOST cases it WILL be required (Its ACTUALLY the Operating System!).Running MESS is MORE complicated than MAME (Or a “Stand Alone” emulator) but, personally, I think this IS outweighed by its ADVANTAGES (Multiple Systems, compatibility with AdvMAME/MENU, performance etc). Personally, I am currently Emulating - Apple IIc, Atari 800, BBC Model “B”, C64, Colecovision, MSX, MSX2, NES and the Vectrex (In addition to “experimenting” with many others!)

I have compiled AdvMESS with this method using image 2012-09-18-wheezy-raspbian, my RPi is 256MEG and over clocked to 900MHz

Source Code - Advmess
Dependencies - sdl1.2-dev
Additional Files Required - Game ROM/IMAGE files and MESS BIOS files

1. Compile STRAIGHT from Terminal (DON’T go into X)
2. Make sure you have the RAM split set up attributing the ENTIRE RAM to the ARM (Use the config (sudo raspi-config))
3. Compile as ROOT (Set up a root password for this if you haven’t already! (sudo passwd root)
4. Install libsdl1.2-dev dependencies (apt-get install libsdl1.2-dev)
5. Install the GCC 4.7 Compiler (apt-get install gcc-4.7)
6. Change over to the 4.7 Compiler -
export CC=gcc-4.7
export GCC=g++-4.7
Now just CD into the directory where you uncompressed the source code
make install (Optional, but useful in this case as running straight from Terminal (Not in X) gives a significant performance increase!)
7. Once it has completed compiling (It will take a while, but thankfully NOT AS LONG AS MAME!) exit ROOT
8. Now start the executable so it sets up all the correct folders Type -
advmess (Hopefully it will give you a message telling you its set these up!)
9. Start X
10. There should now be a hidden folder .advance (Right Click on your mouse and “Tick” Show Hidden if you cannot see it!)
11. In the advmess.rc add the line -
device_video_clock 5 - 50 / 15.62 / 50 ; 5 - 50 / 15.73 / 60
(This will force the correct output to HDMI)
13. Save it
14. Put the appropriate BIOS file (e.g c64.zip) in the “rom” folder
15. In the “image” folder, make a folder of the System your want to emulate, they MUST be named the SAME as the BIOS file!
e.g. For Commodore 64 - Folder name is c64, (place the appropriate ROMS or IMAGE FILES in here)

In emulation “Images” are files “other” than ROMS, i.e. Disc “Images”, Tape “Images” etc. I have found one proviso in AdvMESS, stick to DISC Images (e.g. .d64) the cassette emulation is not that great, my assumption is with the REAL hardware the “cassette” option was seldom used in the USA, Disc Drives were the norm. A short key to the extension’s you are looking for (Unzipped) -

Apple II -.dsk
Atari 8 Bit Computer’s - .atr
BBC Micro - .ssd
C64 - .d64
Cartridges for ANY system - .rom, .bin, .nes (For Nintendo NES), etc

This is where it gets more complicated than MAME (Especially when emulating Computers!)

To run a Console System Type -
e.g. advmess nes -cart supermariobros.nes (NB: MESS/MAME DO NOT like “spaces” in the file name syntax, the Command Line Interpreter thinks you are adding “OPTIONS” so change them if necessary!)

To run a Computer System Type -
e.g. advmess c64 -floppy crazycomets.d64 (In this case a C64 Disc image)
Once again, NO SPACES! (See Above)

However, in THIS CASE, it doesn’t end there! Emulation wise you have now put a floppy in the Disc Drive and turned on your C64! As C64 Disks DON’T self BOOT, now you have to load the program!
Type -
LOAD “*”,8,1 (The syntax “*” just means it will load ANYHTING that’s in the Disc Drive)
The program will load from the “virtual” Disc Drive, once it has finished loading (You will see READY and a flashing “prompt” CURSOR) Type -

EACH SYSTEM will have different Operating Systems (That’s just HOW IT WAS BACK THEN!) so will require various methods to run games (The Apple II c and Atari 8Bit line Floppy’s for instance WILL Self BOOT). I cannot advise on how to start EACH SYSTEM as MESS emulates HUNDREDS! (Do an online “search” for the original Documentation for the specific system), but I’m guessing if you are from the UK (And of a certain “vintage”) the BBC Micro will probably be paramount in your thinking! (I DID state in a previous thread its THE BEST PERFOMING BBC EMU I have found!). So here’s how to use it -
Set up the BIOS and “image” folder as described above, then Load the disc, Type -
e.g. advmess bbcb -floppy elite.ssd
Now, generally, the BBC had specific Disc’s for EACH version, OR a DISC MENU to attribute the version (i.e. BBC Model B, BBC Master etc)
So Type -
CHAIN”LOAD” (OR use the shortned CH.”LOAD”)

As AdvMAME with the cursor Keys, Fire/Jump Buttons are generally - Left Ctrl, Space and Left Alt (Another good reason to use AdvMESS!)

This CERTAINLY makes AdvMESS less “ungainly” to navigate and I WOULD DEFINITELY suggest its use! One “NEAT” advantage is that you CAN name the “Images” WITH SPACES!

Please let me know if my instructions work ok. I wrote them "on the fly" in reply to a posted request from my unfinished "Emulators on the RPi" draft notes and as such haven't checked them "step by step" compiling it myself! However, having compiled it several occasions it shouldn't be a problem, but, I may have missed a step!
"The list of things I have heard now contains everything!"

Posts: 34
Joined: Wed Sep 26, 2012 8:04 pm

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Sat Nov 17, 2012 5:27 pm

Wow. I will definitely have to give it a try.

That's a nice tutorial, by the way ;)
My site

Posts: 11
Joined: Sun Jun 24, 2012 3:28 am

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Tue Dec 11, 2012 4:10 am


Thank you for your post. I was the one that asked for it, and have finally been able to get it going. I have only had a couple of opportunities to mess around with it, but I am excited. I did not encounter any problems with the steps you gave. All went well. I was surprised at how long the "make" step took to complete. I have installed it twice and both times I went to bed before it was done.

I still have some to learn about using ADVMESS, but so far the documentation on their site seems to have the answers I have been looking for.

I did have one question. I ran it from the command line (without starting X) everything was fine, and there was a noticeable performance gain. But when I closed it, it seemed to take a while for the command prompt to come up. Then I shutdown the pi with sudo shutdown -h now, but it returned a command prompt. I never was able shut it down properly and eventually had to pull the power. Any thoughts? Unfortunately, I haven't had it back on since then, but I wanted to write and say thanks.

Posts: 1667
Joined: Mon Oct 29, 2012 2:07 pm

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Tue Dec 11, 2012 11:47 am

Thank you for your kind words, I’m glad you enjoyed the “Guide” and were successful in getting it compiled and working! (Hopefully you learnt something in the process to!). It’s always agreeable to get some feedback from my posts!

Please feel free to check out my other "Guides" -

AdvMAME (Multiple Arcade Machine Emulator) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=22403
AdvMESS (Multi Emulator Super System) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=23113
AdvMENU (Emulator Front End) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=23431
Atari++ (Atari 8Bit Computer Line) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=24729
FBZX (Sinclair ZX Spectrum) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=24910
GnGeo (Neo-Geo AES/MVS) - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=22302
SNES9X-SDL - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=24318

As you have installed AdvMESS, if you are interested in the history of computer games check out -
A SMALL PIECE OF GAMING HISTORY! - http://www.raspberrypi.org/phpBB3/viewt ... 78&t=23257

As suggested, I would advise using AdvMENU with AdvMESS, it saves a lot of typing and remembering which file image/rom you have in the correct format (Obviously the file extensions for EACH SYSTEM are DIFFERENT!)

As for the shutdown process, I NEVER use it! I just remove the power supply when running in Console!
"The list of things I have heard now contains everything!"

Posts: 11
Joined: Sun Jun 24, 2012 3:28 am

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Wed Dec 12, 2012 5:13 am

I have been looking a little at the advMENU and hope to eventually get there. With the holidays, my free time is a bit limited. I also would like to try advMAME. I assume advMESS, advMAME and advMENU would all get along well on the same system, is that true? AdvMENU is a front end for both, is there anything you have to look out for having them all installed?

Also to clarify, you simply pull the power to turn it off? Is this while advMESS is still running or do you exit out of the emulation and then once back at the console pull the power? Sorry to be so nit-picky, but as you can tell I am quite new to Linux and I think I have corrupted a couple of images by pulling the power at the wrong time (or so I think).

Posts: 1667
Joined: Mon Oct 29, 2012 2:07 pm

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Wed Dec 12, 2012 11:14 am

Correct, AdvMENU is a "Sister" program for AdvMAME/MESS. The install is relatively simple/quick and the files are all compatible (All configuration files are saved in the .advance folder and AdvMAME/MESS require NO MANUAL SET UP at ALL! (It’s all automatic!)), other Emulators can also be added (There are instructions on how to do this in my “Guide”). With regards to shutting down my RPi, I exit any program being used (Or “X” if I’m using it) and return to Console, then just remove the power supply (Sometimes I DO Type exit from Console to return to the Login Prompt). AS YET I have experienced NO PROBLEMS (Data corruption or otherwise) using this method of shutdown!
"The list of things I have heard now contains everything!"

Posts: 1
Joined: Sun Feb 17, 2013 6:04 pm

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Sun Feb 17, 2013 6:06 pm


I want to use AdvanceMESS with ES so I added the NES part of the AdvanceMESS with this

DESCNAME=Nintendo Entertainment System
COMMAND=sudo advmess nes -cart %BASENAME%.nes

I can see the roms from ES but when I try to launch one of them I get this error:

"Error enabling the event keyboard driver. Function open(/dev/tty) failed.
Unable to start video emulation"

But if I try to launch it from the command-prompt, then the game starts without error.

Then what can I do?

Posts: 1
Joined: Fri May 17, 2013 6:02 pm

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Fri May 17, 2013 6:12 pm

Thanks for this great guide. It is especially great for long lapsed *nix users like myself who have forgotten some of these steps.

I followed the guide step-by-step but my compile (make) fails and it fails pretty quickly. The first error I get is

Code: Select all

blit.h:1:6:error:expected ▀"▀, ▀,▀, ▀;▀, ▀asm▀ or ▀__attribute__▀ before ▀)▀ token
The rest of the error messages are with blit.h and slide.h. I am not sure what is up with the ANSI block characters are doing in the error message though that may be normal (is it?).

Anyone have any idea what could cause the make to fail?

The system is a bone stock Raspian OS with the only change being a change to a different Locale.

Posts: 142
Joined: Tue Dec 18, 2012 10:34 am

Re: ADVMESS - A “Beginners Guide” to Compiling and Using

Sat May 18, 2013 7:26 am

Hi there
... with the only change being a change to a different Locale.
I am not the expert in these things but the locale change could have affected your character encodings. Try without the change in locale and report back.

If it still doesn't work, I'll investigate further.


Return to “Gaming”