Thursday, February 21, 2008

MAME...Ugh...

This is my first real rant on here.

Its against one of my major pet peeves. MAME

Now, before MAME fanbois come in to flame me to death about my views, here them 1st.

Okay lets start this rantfest.

1) Developer Attitudes: This is by far the largest pet peeve I have. Before people quote me from the MAME licence. I would like to highlight a previous exchange with someone affiliated with Mamedev in the past. This particular person labelled emulation enthusiasts "ROM kiddiez", soley for using emulators that are different from MAME's cycle accurate approach. Now, this really pisses me off, as it shows the extreme arrogance and disrespect people have. If they didn't have this attitude, I wouldn't be so pissed! And this, is one of the biggest problems with the scene today. In that, there's the whole "accuracy versus speed" debate. Why don't people respect ALL approaches of emulation, rather than be close-minded kooks and cling to thier ways. Afterall, shouldn't we have unity on this planet?

2) Bloat: For instance, the MAME executable weighs in at around 7-20MB. Thats insane, and its a pain in the arse for dial-up users.

3) There is no individual emulators: This means that dedicated emulation is out of the question. Which plainly sucks ass. Two perfect examples of how good dedicated emulation can be is Nestopia and BSNES. No need to continue there. On top of that, you are bound to MAME's code standards and systems. Which again, sucks ass, as there goes flexibility. And all for the sake of cycle and sub cycle accuracy. Way to go....

4) The idiocy with licensing: MAME has a extremely restrictive license. Which stifles innovation. And instead, focuses development on the dogmatic and narrow minded will documenting hardware. Whereas, emulation could be so much more.

5) User friendliness: Need I say more? It looks quite absurd, not to mention, its handling of required BIOSes is utterly terrible....Can go on about SNES emulation with this thing, when with MESS...

6) Game lists: This locks out support for unknown titles. If it is truly a documentation project of hardware, these would be unneeded and irrelevant. Thus, this locks the emulator into ONLY supporting games that MAMEdev desires to be supported. Which is quite idiotic IMO.

7) Lack of modularity: If things were modular, size would be less of a issue. But due to the insistence of locking into specific release builds, size will always be a issue.

Thats enough for now....

Have fun....

8 comments:

Anonymous said...

Ehh....What?!!
I can't really criticise the MAME project, devs have done a fine job and put a lot of hardwork on it. The point is that emulating multiple systems/boards/cpus(...) by a single program is the cause of MAME being a little complex and heavy in term of size.
And by the way... who said MAME isn't modular? It uses a variety of drivers and modules, though it groups all that in a single DLL library file.

Oh and yes... I am a MAME Fan!

mudlord said...

I find that still inexcusable.

If developers have bothered about modularity in the form of dynamic libraries there will be no size issue! But, Mamedev insists on clumping ALL drivers in a singular executable program.

FYI, MAME does not put everything into one DLL library. All C code is compiled into the application statically.

etabeta said...

some of your points are ok: e.g.

* executable/source size is quite large. anyway it doesn't affect later use, since modern OS only puts in memory the part they're using and not the whole exe... so, after the download, you're done

* the attitude is not always friendly, but notice that most (all?) of flames on mame-related boards are started by MAME-taliban users, seldom by real devs like Aaron Giles, R. Belmont etc.

at the same time, I would like to disagree with you on a few things ;) Namely,

1. where exactly MAME license stifles innovation? in forcing people to release their source whenever they modify/improve something? or in stopping commercial use of the software? I don't see your point...

2.user friendliness? I use it on macosx: once I've configured the .ini and the .cfg with all the options/remappings I like, I only have to type: "./mame gamename" or "./mess system -cart gamename". not that bad.

3.game lists: for arcade it's simply done to only run good dumps. having weekly releases, unknown games discovered will be added quite soon... otoh, mess doesn't use any gamelist and you can load whatever demo/testcart you like...

4. why would modularity be so much of help? download size aside, I see no real help in it.

but I'm interested in the discussion and, as I said, you had some good point in your critics

etabeta said...

p.s. I love the new Qt UI for vba-m!

mudlord said...

"the attitude is not always friendly, but notice that most (all?) of flames on mame-related boards are started by MAME-taliban users, seldom by real devs like Aaron Giles, R. Belmont etc."

True and thats what also I dislike. If people aren't that pushy with thier beliefs, I might show them a little respect.

"where exactly MAME license stifles innovation? in forcing people to release their source whenever they modify/improve something? or in stopping commercial use of the software? I don't see your point..."

They stifle it by outlawing Netplay, and having a disencouraging attitude towards using hardware acceleration. Such as with graphics. Personally, I find the use of software GFX insane.

"user friendliness? I use it on macosx: once I've configured the .ini and the .cfg with all the options/remappings I like, I only have to type: "./mame gamename" or "./mess system -cart gamename". not that bad."

Wait until you start emulating the SNES with MAME/MESS. Then you'll see how unweildly it can be.

"game lists: for arcade it's simply done to only run good dumps. having weekly releases, unknown games discovered will be added quite soon... otoh, mess doesn't use any gamelist and you can load whatever demo/testcart you like..."

Hmmmz...

"why would modularity be so much of help? download size aside, I see no real help in it. "

Mainly more flexibility for the end user. They could choose exactly what they want to emulate and thats that. Instead of downloading the convolted mess it is atm...

etabeta said...

thanks for the additional comments :)

on the netplay, I saw what happened on SDLMAME board... but at the same time I recall that xmame supported basic netplay, and no dev complained too much: being under linux, it simply never attracted the crowd of kiddies whining about how to fight with their friends on the net.

Finally:

"Wait until you start emulating the SNES with MAME/MESS. Then you'll see how unweildly it can be."

IMHO the main problems are the glitches in the graphical emulation. about the default keys put in illogical positions: once remapped the keys through TAB > Input (this system) to suit my ps2 pad + USB adapter, it works much better

on the positive side, I can use the same mapping to play with master system, nes, megadrive, pce and gameboy at once with no need of additional adjustments :P

MasterPhW said...

I have to agree on nearly everything you stated mudlord.
I would really like to see a good 3D arcade emulator, which is hardware accelerated and has a good UI.
But the license of MAME doesn't fit in this stuff. It doesn't fit in nearly all innovations, like we already discussed on ET.
I wonder if there will be anytime in near future a great new attempt in creating a modular and optimized arcade emulator.
mmhh ;)

etabeta said...

feel free to start such an alternative emu: it would be nice to have a new arcade emulator not coded by ElSemi (Nebula, CrystalEmu, M2) or by MAMEdevs (Mjolnir, Zinc)

MAME license maybe doesn't fit your needs, but as a reference MAME is definitely a great resource and it's there publicly available to be checked all the times you want

anyway, I don't feel the need to complain too much about optimization: lately MAME has started to exploit multicore CPU & 64-bit to speed up 3d emulation (now gauntlet legends is almost playable on my macbook 2Ghz dual core, last summer it crawled at 3/4FPS...). while waiting for a fully modular emu, I'm definitely happy with these progresses... games which are really far from full speed have anyway HUGE problems in other aspects of emulation (Naomi, Hyper NeoGeo 64, Model 3 etc.), so wouldn't be playable anyway right now...