Completing the code
Writing firmware - the hard way
What do you do if you’re not satisfied with the rules of a machine that you own?
One option is to rewrite them, and it’s something that’s being done by an increasing number of teams around the world – the boys at Dutch Pinball with their reworking of Bride of Pinbot, for example. (Good lads they are too : Pavlov Pinball was lucky enough to meet up and have a beer or two with them at Pinball Expo in Chicago last year – but that’s another story…)
To find out what these rewrite projects involve, Pavlov Pinball caught up with the one-man pinball coding machine that is James Cardona. He’s a full time electrical engineer, and he’s also the man responsible for Demolition Time, a new firmware ROM for Demolition Man. Cardona recently announced (on Pinside) a new project to rewrite the code for No Good Gofers.
“I chose Demolition Man first because it is a table with really good flow that has imbalanced, one-dimensional rules,” he explains. “It turned out really well and there is quite a following for the new code so I decided to do another.”
Why No Good Gofers? “NGG I already own and it always feels unfinished to me,” he says. “I mean it has six balls but the multiball mode only uses three.”
Cardona uses FreeWPC, the software framework for rewriting Bally Williams code, as the starting point for his projects. In fact he has extended FreeWPC with some extra capabilities it lacked. He rejected alternatives that need extra hardware – such as Pinball Controllers’ P-ROC system – because he wanted to be able to produce code that could be swapped into a machine on a standard ROM chip.
“A lot of people who have machines don’t have the money for extra hardware like a P-ROC, and that would limit my market,” says Cardona. “Of course that makes it much more difficult at my end because of the limitations of the hardware on older machines.”
What kind of limitations? The most basic is that machines like Demolition Man can only use fairly low capacity ROM chips – 1Mb chips are what Cardona uses. “If you think about it, 1Mb is a miniscule amount, and half of that is taken up with graphics,” he says.
Making new firmware involves rewriting all the code from scratch to sidestep running in to legal issues, so Cardona avoids using even a single line of WMS code. That also means recreating the DMD animations from scratch – a job that is actually done for Cardona by a professional artist based in Austria.
I have been learning a lot and have a newfound respect for the great pinball designers
The position with audio is different, it turns out. That’s because the sounds are stored on a separate chip, so they can be used by new code without violating any intellectual property laws.
As a Computer Science graduate Cardona says that the actual coding isn’t that hard, but dealing with pinball machines certainly is. “You really have to watch the interactions of various components and take care to handle every different situation that a game might see,” he says. “For example, a certain switch may be hit in every different mode or combination of modes and you really have to take that into account.”
Another challenge is dealing with the inevitable hardware failures that every machine experiences. “A switch doesn’t have two states but three: open, closed and broken,” he explains. “Taking care of atypical scenarios such as ball searches, tilt and malfunctions took as much as half of the time that I spent writing the new code for Demolition Time.”
But perhaps the hardest part is extending the rules with new modes and features that are actually fun, challenging and exciting, he says. “What can be frustrating is spending days (or weeks) developing a certain feature, then finally playing it and seeing that it is kind of boring. Needless to say, I have been learning a lot and have a newfound respect for the great pinball designers.”
No Good Gofers differs from Demolition Man in that it feels that the code is unfinished, Cardona says. That feeling was reinforced when he delved into the machine’s sound chip and discovered a dozen or so sound clips including rain and lightning that are unused in the game’s existing code.
“I think that there was probably going to be some other modes based on these sounds that never made it in to the game, so what I am going to try and do is invent some new modes that use them,” says Cardona. “I did try and get in contact with Pat Lawlor, who designed the game, to find out what the sounds were for but I haven’t heard anything back,” he adds.
Demolition Time took over two thousand hours to complete, but Cardona is hopeful that once he gets started in earnest with the new No Good Gofers code this summer he should be able to complete it in about a thousand hours this time round.
Once that’s done the software should be available to download and burn onto a ROM in the same way that Demolition Time is. As NGG is one of the favourites of the collection here at Pavlov Towers, we can’t wait to get our hands on it.
There is another possibility though. Cardona has been approached by Planetary Pinball Supply (the company that controls the licenses to Williams games) to produce No Good Gofers code for an official firmware update – possibly using extra hardware as well. But right now Cardona thinks that going down that route is unlikely.
And after No Good Gofers? Cardona mentions the possibility of giving the code of Terminator 2 a good seeing to.
Or there’s always the possibility of making something completely new. “I am a mentor on a high school robotics team and I really love the creative aspect of building robots. I have some really great ideas from building robots that I would love to incorporate into a home-brew pinball machine…,” he concludes.
Main photo by toolmantim
Just wanted to say that I am very excited about you working on NGG. I love this Pin and agree that I think Pat Lawlor was somewhat rushed into getting this title to production. So having you complete the code would be something that all NGG owners would be grateful to see happen.
Again, thanks and good luck on your efforts with NGG.
I’ m getting ready to buy a NGG and was curious about progress
This would great indeed. NGG is a great game but it seems to be written for 9 holes instead of 18. Completing the code would be awesome!
Any word on this mod
Would greatly appreciate it