

The Day MAME Saved My Ass - jeff18
http://www.ppl-pilot.com/mame.aspx

======
joezydeco
MAME saved my ass too.

I was working on a coin-op game for a mid-level manufacturer in Chicago. Let's
just say they were the last dinosaur in the tar pit and they didn't have a
stellar hardware engineering team. They tended to copy other people's designs
and not really understand the architectures, so things like in-circuit
emulators and IDEs were scarce or non-existant. You debugged via trial-and-
error and, if you were lucky, printf().

So I was working on this title and started working from home a couple of days
a week to take care of a family member. That made things hard, and even harder
since you tend to have the physical machine next to you while coding. It was
frustrating to code for a day, get to work, then find half of it wasn't
working.

Then I discovered that the MAME kids had already supported the platform. With
a small amount of work I could develop on the emulated platform. I could work
remotely _and_ I had access to things the in-house guys didn't even have:
hardware breakpoints, live RAM viewing, scripted testing for example.

Without MAME I would have seriously been suffering on this project.

------
julian37
"Fortunately, [...] a SpyHunter fan [...] had extracted the sound effects
himself and put up WAV files on his web page."

"I wanted to give the guy a game credit [...]. The publisher refused....their
legal team were already writing up a cease-and-desist letter ordering him to
remove the assets from his fan page."

Guy saves the day and instead of a cookie he gets a CnD letter. Do things
really have to work this way?

"But you have to defend your trademarks or they become worthless!" Right,
because the publisher would have been so much better off if those WAVs
wouldn't have been out on the Internet in the first place.

~~~
mcantor
I came here to post about exactly that. My jaw dropped while reading... not
because it was flagrantly unethical, or abusing the law, or anything like
that, but because it reminded me so acutely of the stereotypical movie villain
who enlists the help of some hapless bystander and then impassively murmurs,
"Thanks," while shooting them.

I already know this is going to get downvoted because Hacker News (wisely)
disapproves of feckless criticism of big corporation business practices, and
every time I post something like this, no one realizes that I'm just sharing
an observation as opposed to making a hard judgment, but I was so surprised by
the similarity between reality and fiction here, and so pleased to see that
someone else had made the same connection, that I'm posting it anyway.

~~~
delackner
I was going to give you an upvote actually, but I viscerally hate the phrase
"I know I'm going to get downvoted..." Just write what you have to say and who
cares about the fools that react negatively.

~~~
mcantor
I expressly condone your decision. I dislike it when anyone says that, or when
people say "UGH WHY AM I GETTING DOWNVOTED." But, I have noticed that
sometimes I will be spontaneously aware of someone's voting patterns, and I
catch myself thinking, "This guy gets downvoted for the _same stuff_ every
time he says it. Why does he keep posting it?" So I thought I'd put the little
explanation down there, in case anyone does something similar. IMHO, "I know
I'm going to get downvoted..." is a little less stupid when it comes with an
explanation--a pre-emptive, quiet rebuttal to all of the silent downvotes.

 _EDIT_ : Also, I never presume that people who downvote me are fools.
Sometimes I find myself downvoting due to some essential gut reaction that I
either can't verbalize or don't bother verbalizing. In fact, I think I have
done that when people fecklessly criticize corporate business practices.
Perhaps it was my initial awareness of "I might downvote the comment I'm
writing, if I came across it in the wild," which inspired me to include the
explanation.

Every disagreement is an opportunity for learning. By including the
explanation, it invites someone to reply and say, "Actually, I downvoted you
because _x_ ," and then I will learn something new about the nature of HN
commenters.

------
Sukotto
Tip for next time: Make deliverables relative to the time you get the initial
assets you were promised.

BigCo promises you the original source code + game assets.

Instead of promising Alpha/Beta/Release from the signing of the contract,
promise X/Y/Z business days from delivery of those _critical_ assets.

(Make sure you have a timeout clause in there too, "Assets will be delivered
by BigCo within 60 days of the signing of this contract or we will not develop
that title and BigCo will pay a penalty of $X")

[edit to add] Be careful to define what "assets" mean to you. Assume what you
write will be read by a lowest-bidder consultant, with active _disincentives_
against showing initiative, and who can barely read. (Not stupid though)

~~~
vdm
This works for me in mechanical construction projects.

Specifying durations from deliverables rather than absolute dates has
transformed the way I run projects. So instead of saying "we'll be on site 2
Feb 11", thus setting ourselves a deadline without holding others accountable
for their deadlines, we say "we'll be on site 3 weeks after all design review
issues are closed, and this list of actions is complete".

It's not a silver bullet. It has worked wonders for controlling risk
associated with penalty clauses in contracts, and cuts out the need for a lot
of communication (i.e. bitching and CYA tactics). I'm convinced that it justs
makes everybody more accountable, somehow.

Now if only I could find a WBS/Gantt chart tool that supports durations and
not dates... MS Project doesn't.

~~~
mozinator
Taskjuggler supports durations <http://www.taskjuggler.org/>

------
iuguy
This is an incredible example of the 'zombie code' problem. You lose the
source to something and are somehow expected to maintain it anyway.

Years ago at a previous employer, we had an old xenix system that ran a
library book lending system. The company that maintained it had gone bust long
ago and noone knew how to migrate the data, in fact noone really knew xenix
either. I ended up (as the Linux and y2k guy) working with one of the smartest
guys I've ever met to hunt the data down. In the process I learnt xenix and
Geoff learnt xenix x86 assembly. Geoff patched the library system to start
dumping out csvs. Then he patched an import function, then an extra field to
indicate the year starting with 19 or 20 (to solve the y2k problem all we had
to do was shutdown for Christmas, bring the box up in January, set the date to
1900 and we'd be fine. It didn't quite turn out that way but that was another
story) and after a significant post y2k problem Geoff took over maintaining a
defunct piece of software on a defunct platform, for 3 years. The library
didn't migrate because they didn't need to, as long as they had Geoff. After I
left, Geoff took over xenix admin (to be fair, not a lot to do) and a few
years later fell very ill. While the library thought they'd saved money,
ultimately they trapped themselves in an expert system that could only prolong
the inevitable disaster on the horizon.

------
joeyh
I especially like the bit where someone else had embedded Mame with a pirated
ROM as a "port" to a major console. Especially amusing if you read Mame's
license, which includes:

> MAME is free. The source code is free. If you paid for it, you've been
> ripped off. If you sell it, you are a thief.

> You are not allowed to distribute X-Mame ( source or binary) and ROM's image
> in the same package or physical medium.

> If you distribute the executable, you should also distribute the source
> code.

> The source code cannot be used in a commercial product without a written
> authorization of the authors.

~~~
pnp
It would depend on the console. I worked on "Midway Arcade Treasures" (PS2,
XBOX and GameCube) and none of the emulators in that package was based on
MAME, including Spy Hunter.

~~~
joezydeco
I'm just amazed they could find the source for some of the older Midway games.
I think Bally kept really good archives, but I think Williams not so much.

------
Clarity1992
I love the bit where he gets the best guy in the office to play through the
game with cheats and grabs the image data from the sessions in order to
reconstruct the maps.

Perhaps because I've always been an, er, "dedicated" gamer, there's something
about a solution involving _playing the game_ which is really satisfying.

~~~
stefs
while this special occasion may be a different thing, doing anything on the
job that's fun otherwise may poison it forever.

think of playing wow ... for gold farming. or being a game tester? nightmare
of a job.

another example: texas holdem. it may be fun playing with friends in your
spare time, but i'm pretty sure it's a brain wreckingly monotonous chore if
you have to do it for hours, 4 games open simultaneously at any time. not much
fun in that.

assembly line working at foxcon suddenly sounds like a really diversified job.

~~~
redthrowaway
>another example: texas holdem. it may be fun playing with friends in your
spare time, but i'm pretty sure it's a brain wreckingly monotonous chore if
you have to do it for hours, 4 games open simultaneously at any time. not much
fun in that.

No, but writing the bot to do it for you _would_ be fun.

~~~
JonnieCache
Apparently writing poker bots is miserable.

Poker AI that can beat the average human you will find online is pretty
trivial to write. Running profitable poker bots involves spending 90% of your
time touching up your scraping algorithms to cope with the ever changing DOM
of the casino sites, which shifts dynamically to prevent exactly this kind of
thing.

With the level of programming skills required you can earn _way_ more money
with a legitimate job.

Source: <http://www.bbc.co.uk/programmes/b008kj9m>

That programme in the link can be had for download if you look. Don't worry
I've already paid for it, its on me.

------
mgkimsal
"but the publisher insisted that we had signed a contract, and that with-or-
without assets we were expected to deliver the alpha version on time....which
at this point was a week later."

Crazy, yet all too common. We didn't hold up our end of an agreement, but
_YOU_ have to. Does this happen in all industries, or just software?

"We didn't provide the plants or mulch or dirt for the garden (which we were
supposed to do last week), but you still have to provide a flower bed
tomorrow."

I'm assuming there was _something_ in the contract that the original party was
required to provide assets for the port. Perhaps it wasn't.

"No... no need to contractually obligate us to deliver - just believe us,
we'll get you the files!"

~~~
wh-uws
I feel like thats the problem. Well 2 problems actually

a) People really need to watch out for the contracts they sign.

b) if you try and negotiate it seems alot of these people know they can just
find some other poor sucker who will do it on their terms.

------
mdaniel
Sigh: I say we have a new rule that unless the linkee is a major webserving
force, that we systemically use Corel Cache.

OB cached link: <http://www.ppl-pilot.com.nyud.net/mame.aspx>

~~~
trafficlight
I think PG should add a cache link next to the comment and flag links.

~~~
mdaniel
Or that also sounds like a great Chrome extension idea.

------
praptak
Stories like this make me thing that we should have some legal basis for
telling the suits to fuck off. Professions like aircraft pilots and medicine
doctors do this.

~~~
Goladus
I think there is, the problem is the severe imbalance of funding power between
a publisher and a developer. Also some care has to go into writing the
contract. It's possible the language in the contract didn't require the
publisher to provide the code.

In this case, the developer should have been able to sue the publisher and
renegotiate the contract. But I suspect that wasn't economically feasible.

~~~
praptak
I agree about the importance of the contract but that is not what I had in
mind.

No contract can force a surgeon to operate using a self-forget cutlery set. In
some countries everybody has the right to refuse dangerous work. My fantasy
was about the right to refuse work that goes outrageously against state of the
art.

------
malkia
I had similar experience with Metal Gear Solid port for the PC.

We did not have the source to the midi/mod library playing the music (they
were composed of short samples).

Instead we found .wav files of all music tracks on one of the fan-page sites.
We even found the samples to a lot of our sounds. We simply grabbed and used
them instead

------
gilgad13
So moral of the story: Making unreasonable demands and threatening to
completely cut off funding for related projects works as a way to force a
contractor to deliver despite "setbacks" on your end?

Looks like the suits won this one.

------
JeffL
So why is someone who sounds as awesome as the guy who wrote this article
having to deal this sort of nonsense?

~~~
marvin
Probably because he likes games too much. The supply of game programmers is
simply too large for there to be decent salaries and working conditions for
everyone.

~~~
JeffL
Seems to me like the Internet is a wide open place for people to make games on
their own. That's what I'm doing. It seems to me like "working for the man" as
a game programmer is making less and less sense with all the options available
these days.

------
andyv
Although it was more like "The Week MAME Save My Ass"...

