IMHO there is one huge issue with Mame which should be high on the "TODO" list.
Its currently not possible to exactly emulate a game in native resolution unless DirectDraw is used. Direct3D does not work when this is attempted. This is a big drawback because DirectDraw is going out of support and is very buggy under Windows 7.
Its a major part of the principles behind Mame that the games should be emulated as exactly as possible and using a native resolution (or a close fit with equalized borders) is a major part of this.
When using Direct3D there is no option to turn off stretching, which distorts the image and loses the advantage of native resolution, ie 1:1 pixel mapping. Rather than adding small equal borders to fill out to the nearest available resolution available on the hardware, the picture is always stretched to fit the screen.
I think one of those problems is that as well as DirectDraw going modern OS's are doing what they can to get rid of the concept of 'resolution' (or at least the ability to change it to something non-standard) completely.
You've only got to look at current technology which due to it's nature is 'locked' to a single resolution (the native display res) and frequency. If you want things bigger / smaller these days it's done by scaling the graphics, not changing the resolution.
Supporting such things is fighting against the tide, and you might quickly find Linux to be a better option if you want more control over them (although I don't know, it might already be worse there, I can't say I've paid much attention)
Does SDLMame do a better job on Windows?
Yes currently Linux is going the opposite direction with respect to Windows in opening up the ability to control the video hardware directly in the kernel layer. There are employees of the major video card companies (ATI has one hired just for that purpose) actually writing the code to interact with the video cards, so we are now able to get SDLMame to do a near perfect job at resolution display and refresh rate compared to Windows. It's very new and within the last month really ready for the ATI cards, in the stable kernel probably in March this year for page flip vblank timestamp support there.
I see the concept of resolution being being somewhat left behind even in the Linux developments but am myself able to support kernel patches to open it up fuller than it's been in Linux or Windows in the past (there's a few little issues they put in there to work around with 15khz console display and group of 'default' resolutions to step around). I've talked with the ATI developer and he's open to listen but still admits they are as everyone else focused on high end displays and HDTV's, but there is still the ability to program modelines without restriction in the Linux DRM layer and ATI drivers (and others either mostly done or in the works).
Well for that argument, there you go then. You can't expect all the developers to switch over from Windows, but by virtue of keeping the SDL version in the main branch (for cross-platform reasons) Linux is likely to prove to be a good platform if you're interested in that type of things. Windows is becoming less and less of one. (Windows 7 even has nearly unavoidable, undetectable frameskip in everything, even if you're syncing each frame!)
What people seem to be complaining about are mainly the layer(s) between the emulation (which we strive to make as accurate as possible) and the user.
The emulation layer emulates the PCB,
The input layer maps inputs in a way deemed suitable by the developers to the emulation layer (the emulation can cope with anything really)
The OSD layer managers user interaction (display of the output, and actual reading of the input) This is the platform specific layer which talks to devices on your PC
The emulation layer is designed to be as accurate as possible
The input layer is designed to provide a suitable mapping for the common input devices likely to be supplied by the OSD layer
The OSD layer is designed to work with the most common platform used for development (in this case, whatever the latest version of Windows is)
You can't expect the core development team to maintain multiple versions of each layer. Two OSD targets (win32 / SDL) are enough, and that's only possible because there ARE developers dedicated to maintaining the SDL part. If those developers were to drop out of the project (R.Belmont etc.) then chances are the SDL part would be dropped too, because Aaron etc. has no real interest in maintaining it himself.
That's why it makes sense for an offshoot project to handle what people want here, they're not going to have to fiddle with the actual emulation layer at all, it's been done for them, and it sounds like from what's just been said that Linux/SDL takes care of the other 'exact output' concerns people expressed, which again, is already done for them.
It seems people here are too hung-up on making changes expressively against the wishes of MameDev, then bragging to the world about it (removing the Nag screens etc.) yet when MameDev actually suggest they do something more 'useful' you suddenly have no developers at all, and expect MameDev to just do all the work instead. I'm afraid that makes some parts (not all!) of the community here come across as parasitic.
THAT, if anything isn't going to make people want to develop for the project, seeing the way people just abuse it and the developers if they don't get exactly their own way.
I wouldn't say developers were slacking off, they just have clearly defined priorities, and work on what they feel is important to the project, and within the bounds of the project. I do the emulation code, the emulation layer. The foundation of everything else. If we hadn't emulated the hardware/games in the first place this topic of conversation wouldn't exist at all and you'd be having to find a way to hook up a 720 controller to Tony Hawks instead or a commercial re-release/emulation/port where you wouldn't even have the source to modify if you needed to.