Latest Mame For Pandora


zohnnyg

Member
Joined
Dec 23, 2007
Messages
146
i was wondering if the latest version of mame can be ported to pandora regularly? im not sure about some of the chd games being playable but maybe since dramcast and n64 are getting a start. i still like the idea of using the stylus and touch screen for light gun games. i havent seen much mame on pandora news. i saw the gp2x mame is being ported to pandora. i wish we could always have the latest mame release too. its currently 134u4.




(if this thread is in wrong category please move or erase it)
 
The later versions of MAME require some pretty beefy hardware to run. Too beefy for Pandora. This old post from Slaanesh tells the story:

slaanesh said:
MAME is designed to work with modern PCs which have CPU speeds measured in Ghz, not Mhz.
The typical PC today runs at 2Ghz which is ample speed to run most games that the latest version of MAME supports.

Handheld's have no where near this capability. Look at the current (and some not-so current) handhelds that have versions of MAME:

GP32 = 133Mhz
GP2X = 240Mhz
PSP = 333Mhz
Zodiac = 200Mhz
NDS = 66Mhz
Nokia Ngage = 100Mhz


There's a big difference, so you need to make compromises. The best solution is to step back in time and use a not-so-recent version of MAME as they tended to run somewhat faster however with reduced compatibility.

One of the big speed bumps in MAME history occured at 0.53 - when video went to 16-bit only. Before that MAME would use either an 8-bit or 16-bit.
This is one good reason why handhelds tend to have versions of MAME before 0.53.
ie. MAME4ALL uses 0.37b5 and previous to that used 0.34.

With more powerful handhelds coming out Real Soon Now, like the Wiz and Pandora it's possible that we can start using some later versions of MAME.

As a starting pointing, using the existing MAME4ALL will give us a good indicator of what is possible. Remember, many games do not currently run fullspeed on the GP2X even when aggressively overclocked to 300Mhz.

Whilst I'd like to see the latest version of MAME running on a Pandora I don't think it's going to be very useful. The older versions have pretty much all the interesting older classics anyway - later versions seem to add many esoteric games that i've never heard of - let alone seen.

The best thing to happen in the latest versions of MAME is discrete sound - this means full sound for those older games that previously relied on those horrible samples! I've already back-ported this into MAME4ALL to a degree, and whilst it does work - it needs loads of CPU grunt to run at fullspeed.
 
Last edited by a moderator:
And lately things have become even worse from the speed point of view, due to simulation of discrete hardware used for sound. This heavily uses double precision floating-point.

MAME is done with accuracy in mind, speed isn't a priority.

OTOH making it faster is regarded as good by MAMEdev, provided it doesn't sacrifice accuracy or make the code unreadable :)
Any volunteer for writing an ARM back-end for the dynamic code generator in MAME?
 
I thought MAME is Open Source? So a dev could grab the code and optimize the entire MAME to run as fast as possible, sacrificing accuracy for speed, instead of making just an 1:1 port of the PC MAME. Of course I don't know how fast MAME could run if the coder uses all dirty tricks he can do but I think MAME could be ALOT faster if the Devs only want it. :)
 
fusion_power said:
I thought MAME is Open Source? So a dev could grab the code and optimize the entire MAME to run as fast as possible, sacrificing accuracy for speed, instead of making just an 1:1 port of the PC MAME. Of course I don't know how fast MAME could run if the coder uses all dirty tricks he can do but I think MAME could be ALOT faster if the Devs only want it. :)
Do you understand that will stick you to a given version of MAME? Because your changes will be very intrusive and upgrading your hack-MAME will be difficult when a new version is out ;)

If you really want speed, stick to what Franxis did and accept your version of MAME is old.
 
Last edited by a moderator:
There was a lot of chat about mame versions a year ago.

see this thread (slaanesh knew his stuff):

http://www.gp32x.de/board/index.php?showtopic=44848


Basically, Pandora is capable of running a later version than the mame4all (gp2x) is based around.

Also, here is a post I made about pacman performance drops over the versions:

silver said:
slaanesh was talking sense earlier on while referring to the Aaron Giles pacman performance test.

Mame does not steadily drop in performance with each version - it's actually has long periods of stable performance with major drops at certain versions.

So what we are really looking for is a 'sweet-spot' in terms of performance vs features/supported games for the Pandora. I'd suggest that the aim should be to use the newest version that runs most games well on the standard pandora cpu clock. Then older versions can be used for a particular games which it struggles with (and a frontend could make this choice seamlessly).

A brief summary of Aarons blog:

10% drop with 0.53 (dropped support for 8-bit palette modes)

6% drop with 0.61 (removed dirty bitmap support)

8% drop with 0.63 (newer GCC compiler?)

30% drop with 0.107 (Windows code now always chooses 32-bit video mode)

15% increase in 0.110 (not sure why)

However, it's worth pointing out a few things:

1) The above is solely based on pacman. Aaron points out that a 32-bit colour game like Rastan (pacman is 8-bit colour) would NOT have dropped performance in 0.53, 0.61 or 0.106.

2) The results are for the windows binary using directdraw. Not sure what the current quick and dirty port of mame is using, or if similar performances hits for 32-bit modes exist in SDLMame.

3) Seeing as it appears it's not a 'huge' job porting mame (& and mixing in ASM cpu cores) the only way to really test this is on a pandora, when all the software rotation etc..etc.. is removed. Then we can test current mame vs 106 vs 63 etc...

It's probably a case of compile and see. Mame 106 looks like a good starting point to see how mame does at pandora default clocks. Using Cyclone (68000) and Z80 ARM ASM cores will give a huge bump to a lot of games - and not effect others at all. It 106 is too much, drop to 0.62 etc...

There is absolutely no point keeping up with the latest and greastest mame versions - no benefit, just slow downs and hassle. We just need to find the sweet spot.
 
Last edited by a moderator:
I will very interested in porting a later version of MAME to the Pandora. MAME v0.106 is actually a pretty good base as is the older Xbox version which was MAME v0.84.

As silver said, from a pure "I just want to play the games" point of view - not gaining a lot from later versions. Well, until Raiden II is finally converted (probably my all time favourite arcade shooter).

Also the need for Cyclone and DrZ80 will probably be diminished with the Pandora. Games that used 68000 CPUs probably hit their peak with what the Wiz can already reasonably emulate. If the Pandora is 3x - 4x faster (for example) than a Wiz is there any need to emulate a game that many times faster if it already runs at 100% on the lesser hardware? I'd say probably not. But we'll see soon enough.
 
slaanesh said:
Also the need for Cyclone and DrZ80 will probably be diminished with the Pandora. Games that used 68000 CPUs probably hit their peak with what the Wiz can already reasonably emulate. If the Pandora is 3x - 4x faster (for example) than a Wiz is there any need to emulate a game that many times faster if it already runs at 100% on the lesser hardware? I'd say probably not. But we'll see soon enough.

good point, although will interesting too see how it does on multiple 68k/z80 games, although there are not that many...

Are you planning to port yourself?
 
Last edited by a moderator:
Has Franxis changed his mind about porting mame to Pandora yet? He wasn't interested but might be if he gets one of the first 105 units. The Pandora community definately needs Franxis, he has been one the best devs for the GP2X.
 
slaanesh said:
I will very interested in porting a later version of MAME to the Pandora. MAME v0.106 is actually a pretty good base as is the older Xbox version which was MAME v0.84.

As silver said, from a pure "I just want to play the games" point of view - not gaining a lot from later versions. Well, until Raiden II is finally converted (probably my all time favourite arcade shooter).

Also the need for Cyclone and DrZ80 will probably be diminished with the Pandora. Games that used 68000 CPUs probably hit their peak with what the Wiz can already reasonably emulate. If the Pandora is 3x - 4x faster (for example) than a Wiz is there any need to emulate a game that many times faster if it already runs at 100% on the lesser hardware? I'd say probably not. But we'll see soon enough.

I would very much like to see some front end wrapped around maybe three versions of MAME on the Pandora, this would select the version required to run game X at the best speed. So if it is a game from the GP2X version - ie the fastest port, it would use that. If the game is only supported in .84 then it should use that, and finally if the game is only supported in the dead slow latest build it uses that one. This gives maximum speed and battery life - and stops new users firing up the 'latest' MAME and thinking the Pandora is painfully slow on the old classics.

Cyclone and drz80 should always be used for battery life reasons, unless there is a compatibility issue on the game in question.

I think using this set up could provide the best and fastest version of MAME on any handheld.
 
Last edited by a moderator:
I'm curious would it really affect battery life that much, unless your talking about overclocking and even then how much so?
For reasons of compatibility and performance nice enough idea though
 
craigix said:
I would very much like to see some front end wrapped around maybe three versions of MAME on the Pandora, this would select the version required to run game X at the best speed. So if it is a game from the GP2X version - ie the fastest port, it would use that. If the game is only supported in .84 then it should use that, and finally if the game is only supported in the dead slow latest build it uses that one. This gives maximum speed and battery life - and stops new users firing up the 'latest' MAME and thinking the Pandora is painfully slow on the old classics.

Cyclone and drz80 should always be used for battery life reasons, unless there is a compatibility issue on the game in question.

I think using this set up could provide the best and fastest version of MAME on any handheld.
That will require some tweaks due to two things:

- command-line changes
- ROM changes

OTOH I think it's certainly worth the pain :)
 
Last edited by a moderator:
Na-Noo said:
I'm curious would it really affect battery life that much, unless your talking about overclocking and even then how much so?
Everything that is more efficient will improve battery life (provided of course you do the proper thing for idling).
 
Last edited by a moderator:
Laurent said:
Everything that is more efficient will improve battery life (provided of course you do the proper thing for idling).
Sure, but it's a balance between effort to gain. If it takes a lot of effort for 5min more etc.
ARM is pretty efficient, so I don't see it improving life by a massive amount, but obviously could be very wrong as you know a hell of a lot compared to me :D

Edit And I'm speaking specifically about Craig's suggestion, not say turning of cortex to run mp3 on dsp etc
 
Last edited by a moderator:
However, as long as all common Roms are compatible with the MAME we use for Pandora, I'm fine. I don't want to do all these time-eating rom-conversion orgies known from the GP2X Mame. Actualy, I don't understand at all, why the (PC)-Mame always needs other ROM versions. I always thought a ROM is a ROM, a 1:1 read out of the real Arcade-software content. I've nevcer seen different or incompatible ROM Versions in SNES Emulation or MegaDrive or other Console-Games. Only MAME needs nearly with every new version new rom-sets.
The worst thing is, they change especialy the "cool" Rom-files like CPS(2) or NeoGeo... if they only would change all these "Mahjong"-crap nobody would care but who knows. Maybe somebody here can explain why MAME can't simply stay with ONE Version of a Rom-Set for all the time (just the 1:1 read out) and ONLY changes the Emulator like the most other Emulators that never loose ROM-compatibility?
 
fusion_power said:
However, as long as all common Roms are compatible with the MAME we use for Pandora, I'm fine. I don't want to do all these time-eating rom-conversion orgies known from the GP2X Mame. Actualy, I don't understand at all, why the (PC)-Mame always needs other ROM versions. I always thought a ROM is a ROM, a 1:1 read out of the real Arcade-software content. I've nevcer seen different or incompatible ROM Versions in SNES Emulation or MegaDrive or other Console-Games. Only MAME needs nearly with every new version new rom-sets.
The worst thing is, they change especialy the "cool" Rom-files like CPS(2) or NeoGeo... if they only would change all these "Mahjong"-crap nobody would care but who knows. Maybe somebody here can explain why MAME can't simply stay with ONE Version of a Rom-Set for all the time (just the 1:1 read out) and ONLY changes the Emulator like the most other Emulators that never loose ROM-compatibility?
MAME strives for perfect accuracy, and to do so, they also need a perfect copy of the rom. This is was no problem with older arcades, but as they got more complex, dumping the roms also got harder. Sure, the big bulk of the players (like you and me) doesn't care whether a pixel or two is misplaced, but it matters to the philosophy of the project, and if the problem of such misplacement is due to a bad dump, then they'll have to redump everything with a new, or different method until they get it right.

This is specially true to copy protected roms (like the CPS or NeoGeo), where dumping them is incredibly hard as well as probably expansive (many of these copy protections contains code or data critical to the game in battery powered ram, meaning if you are careless and unplug the battery, good bye cabinet).

Also, keep in mind this people are emulating tons of different machines, with different architectures and, well, everything different, whereas snes, nes, n64, you name it is just one machine, and in the example before, you can't add anything radically new or different to cartridge.
Keep in mind tough that chances are those old roms also had to get redumped in the past as the technique progressed, that is why the GoodRom nomenclature exists.
 
Last edited by a moderator:
Rom changes are a good reason to settle on a sweet-spot mame. Then it should only be a handful of games which need an older version compiled for speed reasons.

Seeing as ARM Asm cores for 68000 and z80 exist and are regarded as highly accurate (cyclone 100% compared to Mames C core I believe) there is little reason not to use them.

We need suite of games of varying hardware, and a bunch of performance tests at pandora stock CPU.
 
Back
Top