It uses MAME v0.37b5 ROMS. Optimised for the Raspberry Pi with dispmanx graphics, SDL input and ALSA sound. Works in X-Windows or Console. Runs with a frontend gui or traditional MAME command line mode.

I've looked at the Makefile on git and notice that you appear to have cross-compiled. I don't have a cross-compile environment set up (yet!) and wonder if you have tried to compile this on a R-Pi (with edits to the Makefile)? (I would like to get joystick support going and am happy to help if you are not already working on this.)

pudding wrote:
It uses MAME v0.37b5 ROMS. Optimised for the Raspberry Pi with dispmanx graphics, SDL input and ALSA sound. Works in X-Windows or Console. Runs with a frontend gui or traditional MAME command line mode.

Hi,

Does it support Multiple Keyboards? Many people are using uinput and pikeyd to wire the joystick and buttons to the GPIO. The issue with Advmame is it does not like to have the GPIO and a USB keyboard at the same time.

@pudding: great work! How's the speed on 68000-based games? are they 60FPS with this port?

@mongrol:

I believe Dispmanx is better suited for situations where the whole frame has to be transferred to video ram to be displayed at a very fast rate (blitting operations in MAME are done in the "emulated machines" anyway): with MAME you're uploading 60 frames per second, ie, you're uploading 60 complete bitmaps per second.
GLES (on the Pi at least) is better suited for situations where you upload some textures to video memory, you leave them there, and then you process them and build the actual frames... so to say.
In both cases you obtain cpu-free scaling and proper double-buffered graphics, wich is what you expect from any usable graphics hardware

Most 68000 seem to run at 100% (I haven't tested that many as there are a lot!), Neogeo are all 100%, SF2 is mostly 100% and sometimes dips to 55fps other CPS1 are mostly 100%. I'm running overclocked though at 950/350/500. The DRZ80 sound core would help a bit with performance but I can't get it to work.

I see a limit of around 300fps with dispmanx on the less cpu intensive games, so it has a low overhead.

1. The colours look odd in some games (Is this changeable? I cannot seem to find a "Readable" config File, but it could be down to the dispmanx backend “Scaling”)
2. How do you get the executable stable in Console? (Without having to CD into the folder each time!). I tried moving it into /usr/local/bin but it intermittently looses connection with the “Skins” Folder

But, it plays excellently in “X” as well as Console, Out Run, Rolling Thunder, R-Type I, R-Type II, UN Squadron, Spy Hunter and Neo-Geo titles now work more or less flawlessly at a 900MHz Clock (Which they don't, even in AdvMAME 0.94 (Although, I have not, as yet, tried it with the dispmanx backend))

Thanks Welshy! Odd colours? Which games? Would appreciate it logged as an issue with the details at http://code.google.com/p/mame4all-pi/issues/list or else here. Possibly they're 16bit bitmaps, and I'm forcing 8bit only for performance. It won't be the scaling. There's no readable config file...yet. I'm keeping it simple. And there will be more command line options.

To run in the console simply put the full path in or create an alias:
alias mame='/usr/local/bin/indiecity/InstalledApps/mame4all_pi/Full/mame'

pudding
Yeah, it will be the 8bit colours then (I did think that may have been the case after I posted!). The only other thing is the Sound. With Donkey Kong (Amongst others) although the framerate is a constant 60FPS, the sound is not “Laggy” but SLOW (Although it’s in Treacle!) which is odd because if you take the “Frame Limit” off, DK runs at about 350-400%! Any ideas on what’s causing this?

The other nice functionality is that the Williams games don’t seem to suffer the indignity of getting “Stuck” on the “Factory Settings Restored” screen which is an issue with MAME4ALL (On the PSP version anyway, I had to devise a pretty convoluted way of getting over this)

I will do some further testing and log anything else as requested, but it's definitely the BEST performing version of MAME for the RPi thus far, it's running most Titles Fullspeed/Fullscreen under "X" in a 1920 X 1200 Framebuffer Window at 900MHz (My Settings)?! (Even AdvMAME 0.94 doesn't get anywhere NEAR that Performance) Congrats!

I have also put a Mention/Link in the "EMULATION ON THE RPi (UPDATE)" Thread

Is it possible to list all command line options somehow?
I treid using ./mame -h and ./mame --help but I only get a game list related options.
I see in the readme -nogui option so I would like to know all the options available.

Also, I can't for the life of me remap my keyboard.
I would like to use WASD for movement direction and I go to the TAB menu and choose a button, press enter and then press the wanted key but it is not registered. In advmame it works this way.

Keyboard remapping should work but it's very limited as the keyboard is currently treated as a joystick due to the way mame4all was originally written. I'm having to rewrite the mame4all input code to handle both keyboards and joysticks - and it's a big headache. I've got a joystick working but it maps to the keyboard keys which isn't flexible enough.

There's some undocumented command line params but they need more work, things like -ror, -rol work, most will break. Have a look in the config.cpp code if you want more.

I've found the problem with slow sound in dkong and defender and fixed it in the code - thanks Welshy for noticing that.

Just a note on incorrect colours etc, this is usually due to this version of mame (0.37b5) which is nowhere near as accurate as the latest version of mame. Can't say I notice though as I run it on a Sony 14" CRT (composite!!!) and it looks better than on an LCD (well the games were designed for CRTs) - an advantage of running MAME on the Pi.

pudding
Some are more noticeable than others (Neo-Geo games being a case in point). AdvMAME also suffers from this "Affliction" (When using the "Auto" settings for colour depth) which requires a manual change/save in the settings. BTW, what was causing the slow sound issue?

One Last Thing, how did you get MAME4ALL to compile with dispmanx graphics? I am currently building another revision of "pcengine". I have it working fine with the dispmanx backend (Which is a big improvement), BUT, cannot get it to compile including it (It selects the Standard SDL1.2-dev on Configure)

Really excited to try this out, but haven't had any luck. Both the precompiled binary, and one I built myself, both segfault after the standard disclaimers when run via the console or from within the X environment, with or without the GUI.

FortyRock, I'd need some more info about your setup. What gpu memory setting, Overclocking? Are your ROMS verified as being correct. Can you run mame from the command line as follows "./mame -log invaders" and send us the errorlog.

> Are your ROMS verified as being correct.
the binary verifies them as ok

> Can you run mame from the command line as follows "./mame -log invaders" and send us the errorlog.
RPI immediately crashed with black screen this time (ran as user pi). ssh'd in and error.log was created, but 0 bytes so nothing to send I'm afraid

Other info that might help:
- 512MB model (rev 000F)
- Kernel 3.6.11+
- Audio is Creative SB Play! USB
- Video is HDMI to DVI monitor. only other thing that is set in the boot config is "hdmi_drive=1" have tried various hdmi groups, modes, forcing fb size, color depth, ignoring edid etc. but all to no avail.

Same crash black screen when running as root from console. Interestingly, if I run "mame" from an ssh session, the title and menu bitmaps will be called up on the LCD and overlay the console terminal (which I can't get to happen when running locally).

I'm going to try with a fresh install later on another SD card to see if I can replicate this or get it to work (currently using an image from the PiMame project).

UPDATE: tried with fresh installs of 2013-02-09 and 2012-12-16 (only thing I did was change the keyboard, TZ, expanded roots and updated pistore when prompted).

Precompiled binary from the store works in X environment but still crashes to a blank screen when run via the console. Only way to recover is to cycle the power or reboot via ssh.

Nice one FortyRock! SDL is very buggy on the Pi. The latest Raspbian image has problems with SDL video init on the console and composite. Looks like the SDLdispmanx backend may have fixed that. I'm not using SDL for graphics but it has to be initialised to get the SDL keyboard input.

pudding wrote:Nice one FortyRock! SDL is very buggy on the Pi. The latest Raspbian image has problems with SDL video init on the console and composite. Looks like the SDLdispmanx backend may have fixed that. I'm not using SDL for graphics but it has to be initialised to get the SDL keyboard input.

Is there another package that could/should have been installed instead, perhaps?

Findings so far are:
-Fast!!! First time Raiden has been playable;
-Although its working, the image isn't quite as clear on the LCD as I've been able to get with advmame via in-game video adjustments (although I recognize that lcd won't ever get optimal picture);
-Exiting the game seems to take forever (guessing around 15 - 20 seconds). I think this is caused directly by he dispmanx as after exit the console shows messages about clearing dispmanx settings or something like that)

pudding
I tested MAME4ALL on Blank O/S’s and a few different revisions (Also on my own O/S Builds with various packages installed EXCLUDING dispmanx), I assumed the was part of the compile (It looked suspiciously like it was included as CAPCOM CPS titles had the “Elongated” look from its use), that’s why I asked how you managed to compile it in for my PC Engine Emulator Project Build. Kalehrl suggested it could be lGLESv2’s inclusion was having the same “Effect”, either way, it’s certainly VERY FAST (Like I suggested 200-250% over AdvMAME 0.94) and worked fine on any O/S Build I tested it on. I just need to include the same sort of solution for the PC Engine Emulator (It’s MUCH quicker with the SDLdispmanx backend!)

FortyRock
Which "Raiden" are you refering to? I have found anything at the Top end of the Scale (Hardware Wise) MAME4ALL will Emulate* was fine excluding N.A.R.C (60%) and Out Run (90%), but they are playable! Everything else was 100% or better including Smash TV! (Which runs at about 30-40% on AdvMAME 0.94)

FortyRock, there's no package dependency on anything else, the "SDL/dispmanx backend" can be installed to work around the buggy default Raspbian SDL drivers (when using Console) until it's fixed (looks like a kernel fix is required). On older versions of Raspbian it works without any problems. Slow exiting must be an issue with the SDL/dispmanx backend.

Welshy, I don't understand what you're saying, I don't use SDL for graphics, just dispmanx which I coded myself. I only use SDL for input.