Beta Mame4All Beta


cosam

Active Member
Joined
Sep 1, 2008
Messages
703
Location
Netherlands
Website
www.cosam.org
Not quite there yet, but I'm a fan of releasing early and often, so here's the result of a couple of evening's hacking at everyone's favourite arcade machine emulator:

Updated PND: http://apps.open-pandora.org/cgi-bin/viewapp.pl?/Emulator/mame4all-beta4.inf

Run once to create the necessary directories in appdata, them copy your zipped ROMs to the "roms" subdirectory.

Controls are described in the PND documentation.

Known issues:
  • Auto frame skip does not work and results in an artificially low frame rate.
  • Sound is way off.
  • Scaling is fixed at 4:3, not sure what happens with rotation.
  • Sync options other than V-sync may have unexpected results.
  • 8-bpp rendering is messed up (use 16-bit). Update: 8pp is now disabled by default.
  • Some residual GP2X-ed-ness that needs removing/replacing.
  • XFCE desktop still visible in the background.
  • Hard-coded ROM path needs to be configurable.
  • No doubt some other stuff I forgot about, but that's why it's beta ;-)

Released under the MAME license.
Source code: http://sources.cosam.org/svn/mame4all/
 
Alerino said:
dumb question: romsets matter to mame4all?
Unfortunately the correct set is required for any MAME, this being no exception. It's based on MAME build 0.37b5 but I hear there's also a specific MAME4ALL set.
 
Last edited by a moderator:
This is based on the gp2x port, so the same games that worked on the gp2x version should work here, I just copied the roms from my gp2x card.
 
SteveM said:
Hitnrun said:
Was this one using the minilib too?
Yep. Slightly different to the version used in PocketSNES, but I was able to reuse quite a bit of code.

Really nice, I think that when we have a fully working minilib port, there will be no need for Ginge on the Pandora except for closed-source software.
 
Last edited by a moderator:
I tested some games, and everything runs fullspeed, including Mortal Kombat and Street Fighter II. It doesn't even look like there is frameskip, everything seems smooth.

Of course with this squeaky sound it is not possible to play it yet, but the sound is on the "right path", I can detect the voice sounds from MK, and the throwing sounds of Gouls'n'Goblinbs.
 
Great to see a start on this.

I do hope that some of the scaling options from SDLMame eventually make it in too. I would like to be able to properly scale vertical-screen games without having to hold the pandora sideways.
 
Just took a quick look; when theres piles of buffers like that, always makes it hard to 'just see' and need to think it through :)

Right off though .. I see the sound-rate being defined as 22khz, but the frontend is passing 44khz; switching it to 44khz in sound.cpp seems to help a little bit. <- nah, that makes no sense; just luck probably; I'm sick as a dog, don't listen to me.

Need to check some of the basics .. is it passing the right sound format, and enough of it, and at the right bit depth, etc? Hmm..

jeff

Stereo looks off, but the 44khz blit (memcpy) .. is it receiving stereo or mono audio? perhaps you need to copy every other 16bit to mono-ify it (and halve the stream length when buffering it.)

Or perhaps its just goofy timings to the /dev/dsp; should just wrap that sucker in SDL-audio and see if it works :)
 
Decent start.

Some suggestions for future versions:

Rotate mode works but needs keyboard config so that you can re-define any key to a fire button in this mode. On the Wiz it mapped to the MENU button automatically on rotate, and on GP2X it mapped to VOLUME buttons. Actually in every mode it should be possible so that games with more than 4 buttons can be played. The d-pad autorotates as it should in rotate mode so that is good.

Needs a straight non fractional integer scale mode(2x would be normal mode, and rotate mode, rotate scale would be fractional). Yes I know it is early but just for future reference, as I knew what these modes did on Wiz. Rotate mode just fraction scales up to the edges now, that is how that is working. Anything that says TATE mode was a mode on the Wiz to fix screen tearing, could be eliminated but not the same as ROTATE which rotates screen for 3:4 games, need that.

Vector games (ex:Asteroids) now render to a target resolution of 320 x 240 giving a tiny screen. Could be rendered to a target resolution of 640 x 480.

Have an option to turn off that goddamn headache inducing blurry filter (you knew this was comming :p ). Great as an option, just not the only option. Just curious but why the hell is everyone using this now?

Analog nubs could be used for analog type games (Missile command, Centipede, Tempest, etc). This is probably difficult though?

Can nix the multi-key combo for returning to menu now and could use a single key (start, select, Pandora etc). You probably planned that but just in case.

When running through Minimenu it is fine no problem, only game graphics show which is good there.

This scratchy sound happened when running MAME4all (Wiz) in Ginge too, but did work fine when set to 15 KHz (doesn't here though). Don't know if that helps.

Nice to see a native Pandora version.
 
SteveM,

Thanks man, as soon as I get done editing some video. I'm all over this.

Do you have a donation page? All of your work on MAME, I need to buy your a beer, and/or a joint since your dutch.

Peace & Pandora,

Link
 
Great work Steve. How handy that thanks to Ginge, I've got a fully loaded GP2X card in my Pandora at work. MAME ROMs and all. :) Just played some NBA Jam, woo!

Alerino said:
how do we quit the emu?
GP2X styles, Start+L+R quits back to MAME menu, same combo again quits MAME.
 
Last edited by a moderator:
skeezix said:
Or perhaps its just goofy timings to the /dev/dsp; should just wrap that sucker in SDL-audio and see if it works :)
You know, I have half a mind to back-port the audio stuff from SDLMAME into this...

I also have my doubts about the input system as used right now, which takes events straight from the kernel. A side-effect of having XFCE visible in the background is that you can see what your keystrokes are doing to the desktop! Cursor keys, home, end, etc are innocent enough, but if someone maps the wrong key to something, who knows what consequences this might have. Does the libpnd input handling stuff take care of any of this or do I need to get my events elsewhere (like from X, maybe)?

DaveC said:
Rotate mode works but needs keyboard config so that you can re-define any key to a fire button in this mode. On the Wiz it mapped to the MENU button automatically on rotate, and on GP2X it mapped to VOLUME buttons. Actually in every mode it should be possible so that games with more than 4 buttons can be played. The d-pad autorotates as it should in rotate mode so that is good.
This should already work, albeit suboptimally due to GP2X vol +/- being mapped to 1 and 2 at the moment. I'm open to suggestions as to which keys would work well as default action buttons (I'm guessing something in the bottom left, which becomes bottom right when rotated).

Needs a straight non fractional integer scale mode(2x would be normal mode, and rotate mode, rotate scale would be fractional). Yes I know it is early but just for future reference, as I knew what these modes did on Wiz. Rotate mode just fraction scales up to the edges now, that is how that is working. Anything that says TATE mode was a mode on the Wiz to fix screen tearing, could be eliminated but not the same as ROTATE which rotates screen for 3:4 games, need that.

Vector games (ex:Asteroids) now render to a target resolution of 320 x 240 giving a tiny screen. Could be rendered to a target resolution of 640 x 480.
This is all on the cards already. What it does now is write to a frame buffer at the game's native resolution. All that's really required is to set what size this gets scaled to, taking rotation into account. I know where the resolution for vector games can be changed so that's easily done too.

Have an option to turn off that goddamn headache inducing blurry filter (you knew this was comming :p ). Great as an option, just not the only option. Just curious but why the hell is everyone using this now?
Everyone is using it because that's all there is at the moment, if you're doing hardware scaling.

Analog nubs could be used for analog type games (Missile command, Centipede, Tempest, etc). This is probably difficult though?

Can nix the multi-key combo for returning to menu now and could use a single key (start, select, Pandora etc). You probably planned that but just in case.
Analogue is probably quite easy. If the nub is in joystick mode it may even work already as the code used for USB joysticks might detect it. The key combos are just what came with the GP2X version so there's indeed work to be done there now we have all these lovely buttons to play with.

And how about the touchscreen for Missile Command, or would that be cheating? ;-)

Mjlink said:
Do you have a donation page? All of your work on MAME, I need to buy your a beer, and/or a joint since your dutch.
I don't have one as yet and I wouldn't feel right accepting donations for the few hacks it took to get this running. If I start putting some serious work into it I might set something up, but it's more about getting the software out there for me at the moment.

Oh, and I'm not Dutch, I just live here ;-)
 
Last edited by a moderator:
Thanks SteveM!

I'm glad to see a dedicated Pandora version. I just started running the GP2X edition last week thru Ginge, but when you exit the game, it bumps you back out to Ginge(instead of the rom select), so I think I will switch over to this one ASAP.

Chris
 
Good god Steve!

You dont stop (and we dont want you to!)!!

Donation link please, beers are on us ;)
 
DaveC said:
Have an option to turn off that goddamn headache inducing blurry filter (you knew this was comming :p ). Great as an option, just not the only option. Just curious but why the hell is everyone using this now?
It's fast. It's free. It significantly reduces effort needed to port GP2X/Wiz software, since you can just use 320x240 framebuffer, which means no need for changes in logic.
 
Last edited by a moderator:
notaz said:
DaveC said:
Have an option to turn off that goddamn headache inducing blurry filter (you knew this was comming :p ). Great as an option, just not the only option. Just curious but why the hell is everyone using this now?
It's fast. It's free. It significantly reduces effort needed to port GP2X/Wiz software, since you can just use 320x240 framebuffer, which means no need for changes in logic.
So it is just a case of using it because it is easy to do. Isn't there a way that it could be done without the blurr though? It is making every emulator look fuzzy. It is ironic that all emulators are now looking sharper on the GP2X than the Pandora, it is like a step backwards in quality. I also notice in some situations it is adding colors in graphics that shouldn't be there. It is adding a "ringing" on edges of certain color transitions. Sometimes it doesn't look too bad, other times it is hideous. Also parts of text and single pixel detail actually are disappearing and are filtered out in some cases.

Couldn't there be a way that apps could just use a simple double mode without that filter for non fractional stuff and only do the fuzz filter when doing a fractional stretch mode (the filter does help for frational stuff)? Is that blurr filter in hardware or is it a software function in the kernal somewhere or something?
 
Last edited by a moderator:
Great job! This seems to be running most of the roms that I have. I haven't been able to play more than a couple of them with mame 106, so this is a lot of fun. Thanks for the effort!
 
Many thanks for your work with this SteveM, this is the one that I've really been waiting for on the Pandora.

Computer & Console emulation is excellent and good, but it's Mame & the other arcade type emulators that really float my boat.

Good luck with the project.
 
Back
Top