By Bob Seidel
After a bit of a hiatus, welcome back to another Retroblast interview. Today we have with us MAME developer Derrick Renaud.
Derrick, tell us a little about your self.
Hello, I'm Derrick Renaud, 40, from the Great White North (Canada).
Where do you work and what do you do?
I am an Electronic Technician. But I mostly watch cartoons all day while pretending to fix TVs.
Can you tell us some of your early Arcade/Gaming Memories?
As a kid I used to go to the local K-Mart and play Amazing Maze. The lady there would even bring me out a chair when she saw me coming. Then they replaced the game with Lunar Lander, which did not last long before Asteroids and Space Invaders took it's place. As the games got faster, I no longer needed the chair. How can you sit down with all that action? A friend of mine started working at a pool hall, so that became my new home. The owner would let us stay till the sun came up if we wanted. So I helped clean up after closing and could play all night free. I was hooked on Time Pilot at the time. But then I was getting into mid-teens, and Dragon's Lair had ruined the arcade industry IMO, and I started playing pool more often, so I did not play many arcade games any more. Also my addiction to Lucas Arts games began with Monkey Island, so the computer took over my gaming fix.
Top 3 favorite video games of all time?
That is tough, there are so many, but here goes.
Do you own any consoles, Arcade Machines, or PCB's?
I have tossed or gave away a lot of stuff. But I think there is still a NES buried away and a Frogger cocktail without a monitor. In my teens, people would give me Arcade PCBs, and I dread mentioning this, but I scavenged them for parts, just like my Colecovision, Odyssey, TI-99/4A, etc. Oops! Who knew?
"Ya see Ru-dy!"
"Ya see Ru-dy!"
What emulation projects have you been involved in and what are your current active projects?
Just MAME. Most of my other programming has to do with microcontrollers. MAME is as far as I have gone with Windows programming. And I mostly stick to the discrete system because that is my area of interest and has the time-line of games that interest me.
Can you tell us how you got involved in them?
A co-worker told me about MAME at a Christmas party. I tried it and liked it. I started browsing through the source code, but the DOS compiler used at the time crashed too much to interest me further. Once the GCC tools were used, I started to play around. Found the code well laid out and easy to follow if you put a bit of time and effort into it. Then started fixing some DIPs and such.
What was your first driver or submission for MAME?
I think I was looking at how Asteroids sounds were done, and came across the Discrete System. It looked quite easy to play with. But Asteroids was no place to start. I started looking at the other games and came across Fire Truck. That seemed the place to start. I breadboarded and measured the circuits, then coded up my first sounds. Keith Wilkins was a great help explaining things and coding up some modules I needed. He also turned me on to Frank Palazzolo who also helped me to understand the inner discrete code workings so I could create my own modules. I submitted Fire Truck and realized a lot of the Atari games used similar circuits. So I then started pumping out discrete code.
How many hours a week do you spend working on MAME or other projects?
Summer Time = 0 hours. Winter time it varies. 20-30hrs one week, then only a couple hours the next week. It's a balancing act between wanting to code/breadboard and wanting to go play pool or whatever.
Do you speak/meet with other MAMEdevs?
We all talk by e-mail when needed. But I have only met Frank in person.
What piece of MAME code are you most proud of And what does it do?
The Fire Truck sounds I guess. That was the first, and then I re-wrote it to create the sounds automatically from the component values instead of using generic waveforms. Bringing it from a simulation to emulation. When I re-coded it, and it worked the first time, and sounded vastly superior to the generic emulation, I was happy. Now the bell sound actually sounded like a bell. Polaris was another milestone due to the complexity of the circuits. And now Phoenix with the accuracy of it measured against my storage scope.
What does your significant other think of MAME and other projects?
Past girlfriends have liked the MAME cabinet I made, but they think the schematics might as well be a squashed bug on paper. They don't have a real interest. One recent girl who followed me home from the bar actually walked out on me when I told her I built the cabinet. I was BS-ing her all day, and she figured I was definitely lying this time, got very mad and left. Oh-well. Is that fit to print?
What do you use for test equipment?
I have recently purchased a DS1M12 Stingray USB oscilloscope. This allows me to easily compare the circuit waveforms against MAME output. I also recently bought 10 each of 300+ resistors, capacitors, ICs, etc and some new breadboard kits. This allows me to breadboard and test various circuits and learn how they work. I used to use a 100MHz analog oscilloscope, but it is much easier to scope the waveform onto the computer and analyze as needed.
DS1M12 Stingray USB oscilloscope
When testing MAME do you use a keyboard and mouse or do you use Arcade controls?
I designed and built my own cabinet.
Can you describe your arcade controls for us?
It has a trackball, 4-way, 8-way and rotary joysticks. I have made a spinner from a VCR capstan motor that uses the motor windings to select different levels of magnetic dampening, so it can be adjusted from a free spin forever type, to free spin a couple of turns, to no free spin. I just have to get motivated to get a new metal panel made to put it on.
Do you use a front end, if so what is currently your front end of choice?
I use MAME32 for the cabinet when people come over. But all my testing is done with the standard command prompt MAME. I do like some of the features of other front-ends, but it is just too easy for me to compile MAME32 and have it always up to date.
I use Meedio as my TV's Media Center that plays all my music, TV shows, PC and console games. So I guess that is my other front end.
How does MAME currently compare to what you thought MAME would be when you first started?
It keeps getting better and more accurate.
Do you feel like your work is appreciated?
I seem to have a fan club, so I'd say yes. Thankfully I mostly work on sounds that have not been or are improperly emulated. So it is hard to anger people by giving them something that was not there. Unlike some poor MAMEdevs who are forced to make decisions that anger the game players by changing things that the gamers believe is their right to not have changed. I am a gamer myself, but I also understand the purpose of MAME.
Aging capacitors are often a first step in diagnosing video problems, but are not mentioned as much for sounds. Do you see this becoming a bigger issue in trying to simulate sounds off of recordings or in general?
While fixing TVs only 10 years old, I find TVs where every cap is bad. So it does not look good for 25 year old arcade boards. That is why I breadboard with new parts when possible. I really only use samples for verification anymore. And I can tell by ear if the values are wrong compared to the schematics. That is how I know the Phoenix samples are nothing like the schematic sounds. But it turns out the schematic values are wrong. Wrong schematics will also be a continuing problem, if we cannot find the old boards to verify against the schematics we have.
What steps and information would you suggest for someone to give you when trying to help you simulate sounds?
I always welcome positive comments or constructive negative comments. But comments like "it does not sound right" are of no use to me. Be prepared to offer real information such as the component values from real PCBs. Because you can either replace the parts on your PCB with the schematic parts to make it sound like my MAME sound emulation. Or tell me the values from the real board. It would also be helpful to have an ohm-meter. Sometimes in schematics the connections are drawn wrong. If they had a photo of the board, I could show where to connect the meter, to see if a connection really exists, or if it connects the way I think it does. Space Chaser is one board that can be verified in this manner.
The first "Blue Screen Of Death" in Space Chaser and a gameplay screen
What would you suggest for some young developers, who are interested in MAME, emulation, or Sound Emulation as a starting point?
First, I would recommend to read the src\sound\discrete.h file in the MAME source. It explains the basics of all modules. It also gives a link to some free on-line electronics text books. Then see my web page for the start of some documentation. The Phoenix tutorial is a must read.
Then examine the current discrete code in src\sndhrdw\whatever_game.c. Compare the code to the schematics and see if it makes sense to you.
Borderline has a couple of relatively easy circuits. The "JEEP ON" and "WALK TRG" sounds. I am currently coding the 555 oscillator circuits used for the other effects. After that I will have to add the easy ones myself, so get cracking if you plan on beating me to it.
Serious work would require an outlay of cash for testing parts, breadboards, variable power supply (a computer power supply will work for some applications) and an oscilloscope. The scope I now use is the DS1M12 Stingray. I found it to be the cheapest price for the features needed, but don't expect to use it for anything but sub 100kHz testing.
SPICE programs can be of some use, but they are very inaccurate voltage wise. The circuits need to be verified on an oscilloscope.
What would you like to see?
Peace on Earth, and.... More people making schematics from their PCBs that we don't have schematics for. Or verifying the components against the schematics we do have.
What irritates you?
Demanding people on the forums, who don't have any interest in learning squat about the MAME source code.
Dumbest question you ever actually answered?
Besides this one? I can't remember any that have to do with MAME. But when I used to post info about my X10 mods, I got some nice ones. Such as the poor Portuguese student who wanted me to write his essay for him, but could not compensate me. Or the person who wanted me to modify his video transmitter for no $$. Can't remember if I replied that I was not a free design house or not.
I just want to remind MAME users that MAME coding is a hobby. It's kind of like politics, if you don't agree with what's happening, then quit demanding/complaining and put 100 hours into learning what's what and help out instead.
I do it because I like electronics and video games of the era I work on. I find it fascinating that I can create accurate waveforms of electronic circuits that run in real time. Plus I always wanted my own arcade game when I "growed up" and could afford one. I also always wanted a set of testing supplies that I am starting to accumulate. So the two hobbies work out great together.
Thank you, and keep MAME-ing.
I'd like to thank Derrick again for participating in this RetroBlast! interview. Not only for completing this interview, but also for making sure to fit me into his schedule.