Tuesday, February 1, 2011

MAME: The Emperor's New Clothes

The things they do not want you to see...

Driver-Man's super-binary:
Derrick's nonsensical bloat:

TESTING: 720 Degrees (Atari Games, 1986)

Derrick's code, summary: flickering sprites bug, analog jittery rotation bug, non-authentic angle conversion algorithm, unnecessary new menu and other bloat, tracking gets off just by using the new menu, without option to re-calibrate the game must be re-started
Driver-man's code, summary: fixed analog jittery motion and flickering sprites bug, new angle conversion algorithm true to authentic operation, simultaneous support of input devices - easy testing, same old familiar interface - no new menus, tracking can be calibrated at any time 

      (Someone requested Derrick's source code,
                                 not surprisingly message disappeared in a matter of minutes.)


There are, of course, those who do not want us to speak. I suspect even now orders are being shouted into telephones and men with guns will soon be on their way. Why?

Because while the truncheon may be used in lieu of conversation, words will always retain their power. Words offer the means to meaning and for those who will listen, the enunciation of truth.

And where once you had the freedom to object, to think and speak as you saw fit, you now have censors and systems of surveillance, coercing your conformity and soliciting your submission. Cruelty and injustice, intolerance and oppression.

How did this happen? Who's to blame? Well certainly there are those who are more responsible than others, and they will be held accountable. But again, truth be told, if you're looking for the guilty, you need only look into a mirror.

- Are you like a crazy person?
I'm quite sure they will say so.

In View, a humble Vaudevillian Veteran
cast Vicariously as both Victim and Villain
by the Vicissitudes of fate.

This Visage, no mere Veneer of Vanity
is a Vestige of the Vox populi
now Vacant, Vanished.

However, this Valorous Visitation
of a bygone Vexation stands Vivified
and has Vowed to Vanquish these Venal
and Virulent Vermin Vanguarding Vice
and Vouchsafing the Violently Vicious
and Voracious Violation of Volition.

The only Verdict is 

a Vendetta

held as a Votive not in Vain
for the Value and Veracity of such 
shall one day 
Vindicate the Vigilant and the Virtuous.

Verily, this Vichyssoise of Verbiage Veers most Verbose.

- Can you prove any of this?
 Why do you think I'm still alive?

- Oh please, have mercy!
Oh, not tonight Bishop... not tonight!

Those two input handling bits, analog (absolute) and dial (relative), can be put together, and this little piece of code below is the actual algorithm compiled in the binary given for download. It does everything, and more, Derrick's 2MB extra bloat does, only without bugs, faster and more authentic.


There are many changes to MAME code which instead of to improve MAME and fix old bugs, they introduce new bugs, bloat and unnecessary hacks. However, we are not allowed to talk about it on MAME World, BYOAC or KLOV forum, they expect you will pretend those bugs and bloat do not exist.

Perhaps Aaron is being paid by Microsoft to introduce bloat and slowdowns in MAME, for whatever reason Microsoft is doing the same with their own software. And as funny as that sounds, or not, the CONTROL of where the project is going, or what submission are accepted, is not openly discussed, it is not subject to public scrutiny nor there is any voting and majority consideration when decisions are made.


Now, everyone knows about David R. Foley affair and supposedly stolen MAME trademark, which lifted up quite some dust and made a lot of people and general public angry, yet in the same time the ownership of far more important MAME assets are not even mentioned or discussed anywhere. -- How did MAME get from Italy to Canada and England? How did  control over MAME get from Nicola to some Mr Mark Colgan and some proxy firm called 'contactprivacy'? How is MAME a "public project" if all the decisions are made behind closed doors and everything is controlled by some unknown selected individuals?

Who owns MAME? 

- "And thus I clothe my naked villainy 
With old odd ends, stol'n forth of holy writ; 
And seem a saint, when most I play the devil."


  1. No reason to spam people through their PM though.

  2. And how else do you imagine would you find about it? The security of information is paramount, in these volatile times.

  3. So, you came up with a revision that was better than somebody else's? and smaller? and they didn't like it?

    Why would they not respect good coding? Did it work? Was it falsifiable?

  4. Please post you code.

  5. First I heard of this, can I see the source with driver-man's changes? Looking at binaries is worthless.

  6. Looking at the binaries is the only way to test it, and thus confirm my opening statements are true. Anyway, the source code is up there, as you see, it's the same one I have been posting for the last three weeks. What now?

  7. Wow, what bloat. I can see how that little bit of code must have added 2M to the file size. Thanks for bringing this to the world's attention. Down with MAME and this Derrick guy.

    BTW, I love the pufferfish.

  8. The size of the binaries? There they are, the first thing in this article are two download links. You can download and *see*. One is 46.3MB, the other is 47.9MB.

    Derrick's binary was given by Derrick himself. I provide the download link here only because he changed his mind in the meantime and removed all the links to his diffs and binaries.

    --- Anyhow, the possible answer to your objection is that those are not the only differences. His diffs are actually over 1000 lines of new code, while mine is even smaller than what was there before. If you look at his binary you will notice there is a new menu, and so his code, unlike mine, also makes changes to:

    inptport.c ; inptport.h ; uimenu.c

    However, since his "new" version is bundled together with many other changes in '141u1', no one really knows what else he might have done there.

  9. >> Okay here's my input...

    Don't be silly, my human friend. You might as well try to "explain" why my TV does not work, even though we are all watching it right now.


    Of course it works, I wrote the damn thing so I sure tested it, and have been playing it since. It works great with any input device, unlike Derrick's binary.

    He did not even write that angle conversion algorithm and he distances himself from it, it's an old code from Analog+ days. HE DOES NOT EVEN KNOW HOW IT WORKS - it can not point to north without *forcing* calibration input, it's awful and messy hack.

    If you were a programmer in the first place, you would know all that, and if you were wise you would have taken 10 minutes to actually test it, rather than go and make fun of yourself by basing your assumptions on blind fate and inability to think for yourself. The emperor is naked!

    Derrick could not grasp for three weeks how arcade spinner, 720 spinner and arcade trackballs are all actually one and the same device to MAME - "PC MOUSE". Look at his last reply above, he just calls me a "troll" in the title of his response and obviously admits inferior design of that ugly hack by denying any responsibility for it. Funny, eh?

    If you want authentic operation just plug in authentic controller. I do not want to *simulate* second input where it does not exist, like with spinner or joystick hack - there is nothing 'authentic' about it - and it works just the same without, but I could include that *hack* in one single line, like this:

    - " if [ angle == >north< ] then in0:= 0xff; else in0:= 0x00; "

  10. >> Number of us have tried your binary and it does not keep up with the tracking correctly.

    Don't forget to delete /cfg files before you try either binary or the input mappings might get corrupted.

    In Derrick's binary tracking can get off just by using the new menu, and it almost certainly gets off when using both relative and absolute inputs in the same game session, which is only natural, but in Derrick's version there is no option to re-calibrate and so you would need to exit the game and re-start.

    In Driver-man's binary tracking needs to be calibrated first, just like with authentic 720 spinner. To do this at any time simply point the stick/handle to 12 o'clock and press UP or DOWN key, or move MOUSE_Y (or whatever you mapped to DIAL_V) until the character matches the same orientation. If using authentic 720 spinner, it will do this automatically, by itself, as the handle moves over 12 o'clock. To calibrate tracking at the beginning of the game, without using calibration input at all, just point the stick towards 3 o'clock and then start the game while holding it there, which is also authentic operation and exactly how original 720 controller could be calibrated on an actual arcade cabinet if the calibration input was not connected.

    --- With this resolved, the number of you must also know the rest of what I said is true as well. Now you can go back to the forum you came from and say so to your lazy friends, that would rather blabber about it for decades than take a five minutes to actually test it.