Main > Main Forum

the state of mame

<< < (84/112) > >>

Grasshopper:

--- Quote from: Haze on January 14, 2011, 11:10:28 pm ---Do you seriously expect us to keep around 3 imperfect versions of the core just to keep you happy?  It's stupid, MAME will emulate things, improve in accuracy, and as a result, yes, things get slower.

--- End quote ---

I don't "expect" you to do anything. As has already been pointed out ad nauseum throughout this thread, it is entirely your prerogative to amend the code in any way you see fit and I respect that.

However, to answer your question in another way, I do think it's highly desirable to keep old code in the official build if it provides proven benefits such as better performance. Personally I think it's bad programming practice to rely on Moore's law to get you out of trouble. I'm perfectly OK with the old code only being available as a compile time option. I could even live with just a diff file being available as long as there was a commitment to keep it compatible with future versions of MAME. But please, I implore you, don't rip the code out altogether. This is precisely why increasing numbers of people are choosing to stick with very old versions of MAME. For some people out there that "imperfect" code might be the difference between MAME being usable and unusable.

As I said earlier, the people who are driven away from the current build of MAME are the potential new developers, bug reporters etc. of tomorrow.

Haze:

--- Quote from: Grasshopper on January 15, 2011, 09:16:36 am ---
--- Quote from: Haze on January 14, 2011, 11:10:28 pm ---Do you seriously expect us to keep around 3 imperfect versions of the core just to keep you happy?  It's stupid, MAME will emulate things, improve in accuracy, and as a result, yes, things get slower.

--- End quote ---

I don't "expect" you to do anything. As has already been pointed out ad nauseum throughout this thread, it is entirely your prerogative to amend the code in any way you see fit and I respect that.

However, to answer your question in another way, I do think it's highly desirable to keep old code in the official build if it provides proven benefits such as better performance. Personally I think it's bad programming practice to rely on Moore's law to get you out of trouble. I'm perfectly OK with the old code only being available as a compile time option. I could even live with just a diff file being available as long as there was a commitment to keep it compatible with future versions of MAME. But please, I implore you, don't rip the code out altogether. This is precisely why increasing numbers of people are choosing to stick with very old versions of MAME. For some people out there that "imperfect" code might be the difference between MAME being usable and unusable.

As I said earlier, the people who are driven away from the current build of MAME are the potential new developers, bug reporters etc. of tomorrow.

--- End quote ---

It's entirely impractical however.  If you multiply keeping x versions of each core, each driver, each video implementation across the codebase then you'd end up with something 5x bigger than it is now, and 100x less maintainable.

Doing as you suggest will not encourage development, nor will it make MAME better.

Byuu tried EXACTLY this approach with BSnes, keeping various versions of his renderers around in order to appease people looking for performance.  In the end, he (as a developer) decided it simply wasn't worth it.  It was a nightmare to maintain.  The simple question of 'where to apply fixes' suddenly has no answer.

If somebody forks an old version they will (quickly) find themselves taking the same paths as the official dev team, and find their version ends up just as slow as the official one as they actually reinvent the wheel, and discover, and therefore have to support new features in order to progress.

Either that, or they end up with an unmaintainable mess.

Don't kid yourself, old versions weren't 'better', they were just full of hacks, full of inaccurate emulations, and full of code which in the end couldn't be maintained, and was dropped.  The codebase as it stands now is far more appealing to developers than it ever has been, this is not the issue.  Keeping legacy code around, in any project, is not desirable.  MAME is no exception.  One of the reasons Windows is such an absolute mess is the legacy support.

Some (very) old versions had the compile time option of an x86 assembler, or C core for the 68k emulation.  This generated false reports, and gave users a worse experience (some broken games with the ASM core even if it was faster) leaving them thinking that MAME was broken, when really it was because they were using the wrong core (speed over accuracy), but didn't have the technical knowledge to know/understand this.  Again, multiply this for every component in MAME and you have a mess.  In the end, the x86 core was dropped, it wasn't portable, it wasn't accurate, it had bugs, and people were compiling it in because it was 'faster' without telling people using the binaries that it was also liable to break stuff.

Again, I should stress, MAME has outlasted every other emulator pretty much for these exact reasons, progress is always progress and always welcome, there is no desire to hang on to legacy junk, developers aren't having to spend time, and apply fixes to and test 5 different versions of the same thing, or have to deal with bug reports in similar conditions.

This isn't politics, it's common sense.

If somebody _wants_ to try what you're suggesting they're more than welcome, however, I absolutely guarantee you that they will fail, and most developers or potential developers will see that before they even start, which is why it's never been done with any great success.  The ones who HAVE tried have quickly ended up seeing the vast amount of progress made in new versions, and the simple impossibility of porting some newer code over to old systems where a great deal of the functionality that is required, or makes MAME easy to program for simply doesn't exist, and can't be backported.  The guys doing 'uberMAME' have tried this, and end up spending half their time trying to fix things which have already been fixed, and pestering the devs with questions which simply have no answers because they're using such an old version.

The viewpoint from a 'user' might be different, which is understandable, however, it doesn't change the basic facts.

There has actually been quite a bit of a 'buzz' about MAME recently, although, if the areas concerned don't interest you, again it's understandable that it would pass you by.

MAME _is_ providing the best possible user experience while striving to be a maintainable, forward-moving project.

For all the moaning about hiscore removal and such you have to remember that due to the bugs things like this was causing (and false bug reports as a result) it wasn't actually a 'good thing', which is why it was dropped.  For all the moaning about controls, again you have to remember that the mainstream version of MAME is providing default configurations aimed at the majority of the userbase.  For the moaning about speed, hardware is cheap, MAME is providing the best emulation we can give, making most efficient use of developer time.  MAME is also not going to provide emulation options which _break_ the emulation on purpose, again to ensure that everybody gets the same experience, and bugs can be dealt with accordingly.

Next version (or maybe the one after) will have full sound support in Batsugun.  That's a monumental achievement for a 'landmark' shooter.  The game has been emulated for 10 years without sound, in MAME and several different emulators (Raine, FBA, + some other forgotten ones)  It's only because of the dedication of people working on MAME to emulate every last little feature of CPU variations that this is going to be possible.  People have been asking for this from the day it was first emulated, combine that with my graphic improvements on it from last year and it will finally be _perfect_, in other words, compared to every other emulation of the game anywhere else, ever, MAME will be giving the best experience BECAUSE of the development philosophy.

Don't take this as anything personal, just statements like 'MAME has lost it's way, and will be eclipsed by older versions' really have little grounds in reality.  There ARE areas where the project does seem to have lost it's way, but none of them are the ones you actually mention, and while you personally may not have noticed all the progress over the years I assure you, it still exists ;-)  In terms of sheer number of hours work put into the project it has to be one of the biggest and most significant projects to be found online and dismissing that entirely is rather insulting to the people who have been dedicating their time to it and can tell you exactly where MAME has improved.

Cenobyte:
As both a programmer and Mame user myself I can understand the split the Mame community is finding itself in. I can understand both points of view and IMHO there is no right or wrong here. Users "want" Mame to support more and more games and writing different drivers and hacks for each and every game is absolutely impossible, so more mainstream software is necessary, requiring more processing power to run. People who don't write software themselves tend to oversee this issue, I guess. On the other hand (and being a programmer I realise this), programmers also tend to want better (more organised, more "beautiful") code, sometimes resulting in slower -but more useable- code. Let's be honest: hacks look ugly, but they're always faster  ;)

I hope the Mame development community will stay around for a while, since I love seeing and playing these old games. Maybe it's an idea to split development into era's? I can imagine there's much difference between code running '90's and code running '80's games? The code running the older software might be able to run on less impressive hardware. Just my 2 cents.

Anyway: I think the Mame dev's are doing a great job!!  :applaud:

Haze:

--- Quote from: Cenobyte on January 15, 2011, 10:59:58 am ---I hope the Mame development community will stay around for a while, since I love seeing and playing these old games. Maybe it's an idea to split development into era's? I can imagine there's much difference between code running '90's and code running '80's games? The code running the older software might be able to run on less impressive hardware. Just my 2 cents.

--- End quote ---

Again, it's been suggested before, but in reality it's just giving twice as much to maintain.

In terms of hardware there is a huge overlap, you can't simply split 80s from 90s, there is simply no clear point to even divide even if the idea was feasible in other ways (which it isn't)

There are gambling games from 2010 using a z80 as the main CPU.  That's the same main CPU Pacman used back in 1980, the new hardware has more colours, and can scroll, but has no sprites.

Even earlier, different companies went in different directions.  Early 90s Sega started pushing out their 32-bit system32, with all sorts of fancy features while Capcom and SNK continued with what was basically late 80s hardware (CPS and NeoGeo) right up until the mid 2000s.

Most of the concepts are common between systems tho, some just have more / less functionality, even 3d systems like Sega Model 1/2 were built off existing technology (System 24 tilemaps)  You simply *can't* split it in any logical way which isn't just going to make things harder.

Even today with home systems things aren't much clearer, just look at the Wii, it's a GameCube upgraded and repackaged, it's not even in the same generation as the 360 and PS3 from a technical point of view.

Everything really has developed the way it has for a reason...


ark_ader:
.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version