Main > Main Forum

the state of mame

Pages: << < (89/112) > >>

bitbytebit:


--- Quote from: Haze on January 16, 2011, 08:26:17 pm ---
--- Quote from: Erik on January 16, 2011, 08:00:06 pm ---
I haven't read most of the posts here and I don't have much to add to the debate, but I agree with points on each side.  The only thing I would add to it is that for the past few years it seems whenever I look at a new MAME release for what games have been added it's generally some game where you remove squares to expose a naked little girl  (I take it these are the mahjong games I see referenced).  Seems tacky to me and a strange direction for MAME to go.  Documentation?  :dunno

--- End quote ---

Seemed like a strange direction for the industry to go, but, it sold.

As I said, it's not up to MAME to discriminate against certain genres of game because they're a steaming pile of poo.

There are examples of more interesting things happening in MAME tho.

Let's just say that R.Belmont, who maintains SDLMame and developers on Linux was telling people explicitly NOT to use Ubuntu for MAME, because it caused more problems than it solved.  Maybe it's since improved, but things like this have always been a problem with Linux distros whenever I've tried them; I found the same when trying to use virtualization stuff and Linux, even if there are supposedly many 'current' versions of 'Linux' the virtualization integration components only work with certain ones.  For what should be a 'single' platform it's far too fragmented for it's own good, Windows on the other hand, isn't (unless you count the server versions, but they're really just the same anyway)  This makes Windows a better target platform and is a far more important fact than any of the PR bull Microsoft spew out, and probably one of the reasons many (commercial) developers really don't bother with linux.






--- End quote ---

A cool side effect of Mame developers using a great compiler like GCC (and one without all the meaningless warnings it can spit out for different versions/library combinations), is that it'll most likely always work with Linux no matter if the OSD for SDL is there or not (at least the core, the OSD could always be added on as a separate thing by some Linux person Like me if this R.Belmont guy vanished from the Earth, which I really hope doesn't happen because it's great he's doing that work right now). 

I agree, I don't like Ubuntu and most Linux distributions are either too hard for casual users to setup (like Gentoo) yet really do work correctly once setup (yet you have to know how to basically do the setup by hand of partition/format/configure).  Really I find the best thing to do in Linux is use it for dedicated purposes, don't use the main Windows style interface (GTK/QT/Gnome), and then you have nothing most users want but can really run a mean version of something like Mame off of FVWM or just X and an xterm.  You might even have a frontend if you want to torture yourself with the pain of setting up Wahcade, which unfortunately has some nice bugs in the way and other obstacles unless you know a few advanced things to fix them.  It can be great, but I admit I definitely have to do plenty of hacking at my systems I setup for myself and know exactly what I'm doing to navigate it in an optimal way.  Using Ubuntu for a development system definitely is not something I've found possible, the thing can't even cross compile 32 bit binaries on a 64 bit system for some odd reason.  The reason it's bad for Mame, at least currently, is because Ubuntu is trying to utilize all the newest DRM/KMS Graphics stuff with OpenGL before they were ready even for somewhat decent usage (in December 2010 they got somewhat usable at least in the ATI/Intel/Nvidia side), and then there's still more of a small tight rope of what works well right now and they seem not to have been able to compile a build of every component required for Mame that utilizes it right on any video card.  I actually am surprised Ubuntu decided to dive into KMS already for working with video cards, when not even Gentoo has done that and is looking more stable which really I think it should be opposite of that.

So yes, Linux can be a mess but distributions are kind of like applications themselves, since it's just a strewn together set of GNU utilities and libraries, with the single Linux kernel placed into it.  It's nice to have competition between them, yet that's also what has caused the issues with a straightforward platform anyone can setup on most any system to run an application like Mame on most common hardware setups.  Then again sometimes people get lucky and get a setup that does something for what they are needing, and usually then it runs way more stable and efficiently then the Windows setup (or even does something that can't be done in Windows).  Unfortunately that usually either requires you to use a specialized build for your goal, that someone spent a lot of time working on building, or you to take it upon yourself and know how to hack things like the kernel and other libraries/apps (which is sad that is required, fortunately sometimes other people do it though for others in Linux and there's usually no OS/blackbox limitations depending on what you know how to do).

Xiaou2:


--- Quote ---I suppose X2 is going to say the original controller was revolutionary and it just doesn't play correctly without the hit pads tho, and that Capcom be damned for forcing everybody just use buttons on all their later fighting games so that weak people could play them.

Even Capcom realized the novelty controller was a gimmick ;-)
--- End quote ---

 The goal of PRESERVATION, is to Accurately represent the thing you are PRESERVING. Gimmick or Not.

 Weather you do not appreciate their direction / choices is Meaningless to the Truth of REAL Preservation.

 Being that you cant understand this shows you shouldnt be part of any Preservation efforts.

 
 Its Obvious that in This instance, the game may in fact play Better without the specialty controller.  More than likely it was a decision made from thinking people wouldnt be able to adapt to use 6 buttons.. where most games used only 2 or 3.
Still, its not up to YOU, how it should operate.  Its documenting how it Did operate, even if it was later changed. (which is an extreme rarity)

 In most cases, a specialty controller is Necessary to control the game to its fullest potentials.  720 is one such controller... where as no other controller can match its performance. That can easily be proven... and theres already plenty of evidence from various comments on sites from people who are very good at the game.

 Arkanoid?  Plays Horribly with anything but a spinner / paddle.  The only way to make it even close to playable... is to tweak the controls so that it takes less steps to move the player (cheating).. and in doing so, reduces the resolution of control... and thus the difficulty becomes 10x easier.  In the Arcades... where people playing for too long was a huge loss of profits..  that would never have been acceptable.  Also, games made too easy, and people would bore of them and not play them ever again.

 Sinistar is also a great example.  Its enhanced spring system provides superior control that no current thumb stick can provide.  Even a full sized analog stick is inferior for the job. 

 For someone supposedly so intelligent, I find it quite hilarious that you dont know why that is, as well as how you think you can 2nd guess the knowledge and skills of a mechanical engineer + MONTHS of testing & abuses.  Quite simply put, you are well out of your depth, and have a chip on your shoulders that is easily knocked off.

 Hard Drivin is pretty much ALL about the controls.  The force feedback motor is the size of a dryer motor, coupled with a 6 turn wheel... is unmatched by any console controller.  The game being all about how well you feel the road.   No xbox controller will match it.  And anyone

 Marble Madness?  Theres no better way to control the game than with a trackball... which provided superior vector and speed input... as well as the proper FEEL of rolling a ball.  Not to mention, the added difficulty and physical control & stamina needed to beat the game.

 SuperSprint?  Id love to see you try to beat someone with a real 360 degree wheel, with your xbox controller or even a mouse.

 Programmers like you dont understand the First thing about real games and real Genius.  Programmers of the past were able to program systems that had almost zero power and memory.. to their fullest potentials, and create games that today still are more fun and popular than your current garbage.

 Past Arcade devs quickly realized that a game made too easy, would represent a huge loss... cause gamers quickly defeated games on location.  Which is why they would spend months tweaking difficulty of levels.

 Unique controllers were an extension of this.  They allowed games like Sinistar to be more difficult / challenging... yet not sacrifice control, which would tick off the majority of players.   It also created interest in playing games - such as Marble Madness's Trackball... or Tempest's Spinner.  Imagine... an Original game! Gasp!


Haze:


--- Quote from: Xiaou2 on January 16, 2011, 11:35:11 pm --- Programmers like you dont understand the First thing about real games and real Genius.  Programmers of the past were able to program systems that had almost zero power and memory.. to their fullest potentials, and create games that today still are more fun and popular than your current garbage.

--- End quote ---

So I joke that you'll say something about the ghastly SF controller, and you come out with even more garbage, and personal insults...

I suppose you're going to go on about how great Hard Drivin' was, and what an accurate simulation it was and .. oh ... you already did ..  You know it's just a gross approximation of a simulation + marketing hype right?  Maybe it was used for other 'technologies' back then but it's a far cry from the most basic of physics simulations you find today.  Get over it.

Seriously, WHY are you still here?

If the developers can't use it and test it on a normal PC then it's not preserved to the developers.  Do I need to write this on a big hammer and hit you on the head with it every time you pop your head up out the ground again?

If the programmers of old you claim are so great, are so great.. where is their emulator which does everything far better than MAME?  If they're so passionate about their creations, why aren't they doing something about it?  Seems to be this generation actually making an effort.  If we left it to your 'heroes' everything would have rotted away already.





ark_ader:

.

Haze:


--- Quote from: ark_ader on January 17, 2011, 06:16:00 am ---The heroes of old you refer to helped mame to be what it is today.

The current team seem to be maintainers and tinkerers than the hardcore coders of late.

I am not including the usual suspects of the team.

I feel nothing but embarassment for your comment towards those coders you tend to ignore.


--- End quote ---

If you're talking about the arcade devs then the topic was preservation, I'm not saying they didn't contribute towards making the games.  I said they're not contributing towards preserving them.  They're not.

If you honestly think that MAME isn't 'hardcore' then you're wrong.  Having talked to people, in person, who also programmed during that era they are impressed by the sheer scale and complexity of modern systems.

Even if you talk to the old people who worked on MAME they're impressed by the scale of things, and attention to detail.  It's done things they never imagined possible, it's done things even I never imagined possible.  Each generation has to pay more and more attention to details, get things right, understand things in even more detail to remove hacks.  There is some absolutely amazing stuff in MAME, that's been figured out!  Every now and again we'll manage to remove some little kludge or hack that the old devs put in and get a 'wow, so that's how it worked' comment, the understanding of arcade hardware has come a long way since then, hence many drivers seeing near complete rewrites.  Each generation is doing things the previous one deemed 'impossible'.

The hardcore coders of old were mostly the demoscene coders on the likes of the Amiga, not the arcade coders; if anything the arcade coders had it easy because much more money was being pumped into arcades and technology, it was always ahead of the consoles and computers at the time which meant they COULD be a lot more lax with the coding.  There are VERY few arcade games that come close to pushing what the hardware they run on can do, most are actually incredibly lazy uses of the technology because cost wasn't much of an issue.  Likewise most of the technology wasn't even around for long enough for them to start pushing it, or coding to it's strengths.

The people writing Speccy code, Amiga code, SNES, Megadrive code, PSX code etc, had far heavier constraints put on them, they couldn't just ask for better hardware, they had to work with what they had.  That's why you find games pushing the boundaries of the hardware, exploiting every little trick in the book, and using some REALLY hardcore techniques.  You disassemble some of those games, or look at how they made use of the hardware from a technical point of view, and have to admire it.  I can't say I've honestly seen the same in any single arcade title.  This is also reflected in my earlier statement that the MESS side of things provides a better component stress test than MAME. Arcade -> Console ports might have been for the most part garbage, but there were generations between the systems at the time.

Unfortunately this type of 'hardcore' programmer isn't much good for MAME coding*, these guys pushed hardware, hacked things up to give an illusion under very specific conditions etc. etc. which aren't actually useful skills for creating an emulator.  You don't want 'hardcore' code of that kind in an emulator, you want reliable, readable code!  MAME is a different kind of 'hardcore' in that it demands correct code, and correct understanding of everything.  We did allow this kind of code in areas of MAME a long time ago, and it set the project back years, look up 'AchoCode'.  It's a prime example of why the fast type of 'hardcore' code should be kept as far away from MAME as humanly possible, no error checking on anything, prone to crashing, hardcoded for specific cases, unmaintainable and the cause of many bug reports where his code simply fell apart when new use cases showed up.  (*ones who will write test code on real hardware are useful for figuring things out tho when the actual game code we have doesn't supply enough evidence)

Old projects were smaller, original ideas could sell, the industry was more open, and there was little risk in trying things, the scope of the approximations you needed, was more defined, expectations were entirely different.  These things more than made up for the constraints imposed by the hardware.  I've programmed for the 8-bits, I've programmed for modern systems.  Again the same comparisons can be made with MAME, the old versions of MAME you didn't have to care so much about accuracy, it's been said before, 95% of the effort is making the last 5% of the software work for any emulation platform / fixing the emulation bugs for any given platform.   You could write cores and video emulations that 'mostly worked'  You could write quick dirty multi-pass sprite code that caused additional glitches in the games, and nobody noticed.  The old versions in almost all cases do not represent good QUALITY emulation, because understanding has moved on since then.  They were good for the time, even impressive, because there was nothing better, and that was the limit of the understanding at the time.

Let's take a real example I've used before.
http://mamedev.org/source/src/mame/video/twincobr.c.html
This is a 'classic' MAME video implementation of old.

The function starting at line 379

  379  static void wardner_sprite_priority_hack(running_machine *machine)

nice little hack that.  Why is it there? because at the time nobody understood that sprite->sprite priority should not be affected by sprite->tile priority.  Implementing it PROPERLY, without this hack makes the driver 2x slower because you have to have a priority buffer for every pixel of the screen, rather than the quick and dirty approach being used.  It's also significantly harder to code properly, than simply hacking it as has been done here.  The final code is much more elegant however, and will work for ALL cases on this hardware, not just the specific one hacked here.

There are still many drivers which take such an approach, they don't always have hacks to hide the glitches, some glitches people have never reported / noticed, however, it's now up to the current team to actually PROPERLY understand these things and replace them with correct code.  Obviously these hacks aren't desirable, but that was the limit of the understanding back then, from a developer perspective it was 'huh, this doesn't make sense, WTF is going on??'   Cleaning these things up is hard work, it has no 'rewards' apart from much cleaned code, people only moan that things got slower.  Are they worth cleaning up?  Of course.

You're quick to insult Derrek here.  Do you think holding a microphone up to an arcade cab and playing a few sounds in test mode then playing back the wavs is more of a hardcore task than trying to figure out how the PCB generated them from the circuits, and writing the code to accurately reproduce that?  It's a perfect example of how expectations have changed, evolved, and how actually getting things from a crude approximation to perfect is so much more work than the initial coding.  He's doing things the original development team could only DREAM of being able to do, part of that is because the technology is available to do it now (it simply wasn't feasible on a P2/P3) and part of it is because he simply has skills the original team didn't have to actually figure these things out and code them.

If you want to twist my words into some kind of insult that's your problem.  Time change, you are stuck in the past, and you seem to fail to recognize the amount of hard work being done today, simply because the real hard work of doing things properly has less 'rewards'.  At the same time people here are also very quick to bash the devs of old, saying they lacked foresight.  Maybe you should make up your mind, or just realise that it's a project which is always evolving and building on what came before it.

As for my statement that the names don't matter much?  I don't think they do, people working on MAME should be working on it because they think it's an important cause, the good feeling comes from knowing you've achieved something worthwhile.  I do a ton of work for every release behind the scenes, and don't ask to be credited for most of it.  If I have something I think other people will find interesting, or I find curious, I post it on my site for discussion, not for fame.



Pages: << < (89/112) > >>

Go to full version