MAMEDev Interview: Reip
Interview by Bob Seidel
Welcome back to another interview here on Retroblast. Today we have with us MAME developer Pierpaolo Prazzoli (Reip).
1. Tell us a little about yourself?
Pierpaolo, I'm 21 years old and I live in north Italy.
2. Where do you work/go to school and what do you do?
I study Computer Science Engineer at the university where I've just finished 2nd year, but that doesn't help much to understand emulation ;-)
3. Can you tell us some of your early Arcade/Gaming Memories?
The genres in arcade games I like to play more are: platform, beat'em up, adventure and fighting games. I remember I used to play Street Fighter 2, the Mortal Kombat series, Tumble Pop, Vendetta, Sunset Riders, The Simpsons, X-Men, World Rally, some Neo Geo game and probably some more I forgot, but I wasn't a good player ;-)
I also have a NES and my favourite game is Super Mario Bros. 3. I used to play it a lot, I discovered lots of secrets and it's probably one of the few games I was really good.
4. Top 3 favorite video games of all time?
There are 3 games I really enjoyed to play and finish them and that sometimes I still have a play:
But I also like some adventure games I could have added, like the Monkey Island series.
5. Do you own any consoles or Arcade Cabinets?
I own a NES with some games: Super Mario Bros, Duck Hunt, Super Mario Bros. 3, Top Gun 2, Double Dragon 3, and a few others.... but I don't have any arcade cabinet.
6. What emulation projects are you currently involved in?
The only project I'm involved is MAME, where I try to do my best trying to help, fixing some random bugs posted at MAMETesters or trying to add some new dumped games even if I'm not the best dev eloper in the project (I think everything I did could have been done by someone else, because nothing that I emulated was too difficult).
Actually some years ago I started to do a simulator for a table top game I still have (like the ones done by _MADrigal_): it's Caveman by Tomy, but I never finished it because when I was working on it I discovered MAME and found more enjoyable emulating rather than simulate something, but maybe one day I'll get back to it.
7. Can you tell us how you got involved in them and what drew you to them?
I knew emulation from some friends then I discovered MAME and found its source code was also available. I was intrigued how such program worked but I didn't know anything about computer programming. So when I was starting learning programming I decided to download the source code to see how it was possible to emulate an arcade game in a PC, but when I opened some source code files I didn't understand a single line.
So I started to study the basic stuff of a driver and started changing some inputs and adding some random clone I downloaded. After some time I found somewhere some unemulated ROMs, so I searched if their names were in the source code, just to try to add them and hoping everything would have worked like adding the simplest clones. When I looked for “gumshoe”, I found that in vsnes.c driver there was a comment saying: “Dump needed: Gumshoe” (or something similar). I was happy because I found a game to add. I tried adding it, but with only a romswap it didn't work, so I contacted Haze if he could have give me some help to understand MAME code and how to add it.
All this lead me to keep in contact with Haze, to understand every day some new par t of MAME code, to understand how most of arcade games work and what you've to do to emulate them, even if Gumshoe became playable almost 2 years later ;-)
8. What was your first driver or submission in MAME?
My 1st sub-mission was a relative big update to the VSNes driver. While I was trying to add Gumshoe, I found there were more games and clones that could have been added to the same driver and since I'm a NES fan I enjoyed a lot doing it. I remember I spent something about 3 months (probably a lot compared to the relative simple things I did) to do the 1st update, just because these new games have a chip acting in a different way compared to the games already in the driver, they want some bits swapped around and they have some little protection.
9. What is your favorite driver in MAME or favorite MAME memory?
My favorite MAME memories are the ones when something that was meant to be difficult gets emulated. For example when some nasty encryption is defeated, like the recent Sega decryptions or the DE102 ones, but I also like when some obscure game, no one has ever seen it, is found and emulated.
To mention it I like what the guys at MAME Italia did to find obscure Italian, Spanish, Korean games and helpful bootleg that helped to decrypt the original game and some others that had a similar encryption. So I like helping them identifying pcbs, checking dumps and emulating what they find.
About the favorite driver I would say one of mine but they're all crap games :-)
There're lots of good and not simple drivers in MAME that I can't just mention a few of them.
10. How many hours a week do you spend working on MAME or other projects?
It depends from the periods. Sometimes I only have time to check the emails and no time to program, sometimes I've a lot of time to have a look at something or sometimes I've time but there's nothing I can do ;-)
11. Do you speak/meet with other MAMEdevs?
I usually speak online with some devs, usually with Haze and Dox who helped me a lot to understand how MAME and game work and they still help me, but I never met anyone.
12. What piece of MAME code or work are you most proud of? And what does it do?
It's the Hyperstone E1-16 / E1-32 cpu core that emulate this cpu used in some Korean games. I'm proud of it not because the games it allowed to emulate are great, in fact they aren't so good, nor because no one else could have emulated it, even if the cpu is a bit weird probably any other dev could have emulated it, but because doing it I learnt a lot about cpus in general. I didn't know anything about the internal work of a cpu when I started emulating it and almost everyone would have bet someone else would have rewrote it from scratch to make it working.
I worked hard understanding what the cpu does inside itself , how MAME handles them and with a big help from Dox who fixed some bugs and did some good additions, we got the games emulated after 2 years of work! I was really happy when I saw the 1 st game booting! Now I hope to find more games using this cpu which it's not so bad for simple games without powerful effects :-)
13. Are there any things in particular that you like to work on? Anything you find you are particularly good at?
Sometimes I like to try to emulate trivia games because you've to find how the questions are read by the game, sometimes it's really easy and sometimes they are read in funky ways. I also like to emulate crap and obscure games which use a con version pcb for an existing hardware like the conversion games running on pacman or galaxian hardware.
Then there're simple but enjoyable games with lots of simple things or simple effects all mixed together, such the driver I did for Mighty Warriors (where there are simple graphics stuff and effects, but I never did them together) or Multi Game 5 driver.
14. What does your significant other think of MAME and other projects?
She knows it and sometimes she asks something but she isn't much interested about it.
15. What do you use for test equipment or use when developing MAME?
I use my ghetto pc (using R. Belmont words ;-) ), the really good debugger built in MAME and a simple HEX viewer just to view what there's inside ROMs.
16. When testing MAME do you use a keyboard and mouse or do you use Arcade controls?
I use keyboard and mouse, I don't have any arcade controls.
17. Do you use a front end, if so what is currently your front end of choice?
I don't use a front end because it's simpler to develop just typing the game name you're working on and select the commands already used in the console buffer.
I used a front end when I didn't develop yet for MAME, but it was my own one (of course it was never finished and it was never released)
18. How does MAME currently compare to what you thought MAME would be when you first started?
When I first started knowing MAME I was shocked by the amount of games emulated and by the updates that constantly were released with tons of bug fixes, new games supported and improves added, but looking at it now, I see the emulation becoming perfect for more and more games, something that years ago seemed impossible now is emulated (encryption or protection defeated), also with the time more prototype or rare games are found and preserved. I see MAME becoming even more a documentation project with more people trying to contribute to it in any way they can (providing new games dumped, sending bug fixes, sending pcbs, ...)
19. Do you feel like your work is appreciated?
I think some users like what I do, but there're also some who don't care anything and I've no problem with them, no one has to like everything.
20. HAZE paid you a pretty good compliment in his interview. That's got to feel pretty good? How did you start working with him?
I thank Haze for the good compliment he gave me. I started asking him some (dumb) questions when I wanted to add Gumshoe and then when I started what became my 1st VSNes driver update. He taught me the basic stuffs of MAME infrastructure I needed to know in order to make the progresses and then he also let me do a couple of driver he could have done in little time, such as Tricky Doc, Ozon I and R2Tank (however he still gave precious help to finish them) just to let me understand more things about MAME and arcade games.
21. What would you suggest for some young developers, who are interested in MAME / emulation, as a starting point?
I would suggest to try to understand the basic stuffs of a driver (or about emulation) before starting to do any changes. Then you can look at some simple driver to see how things work together and maybe changing something to see what happen (there's no better method to learn than doing mistakes on your own). Then you can look for something you'd like to improve or search for any relative simple bug and if you're really interested you'll have to work hard analyzing what the game writes / reads trying to understand what the game should do with those datas. However you won't immediately find the right solution, but you don't have to give up. Also simple games or simple systems are already emulated and almost everything you can find that's not emulated is well protected or really hard, but if you're enthusiast and if you're interested, you could find how to emulate them or you could find some information that can be useful for someone else to finish the emulation.
22. What would you like to see?
I'd like to see the remaining encrypted games emulated, such as the Data East ones using the DE156, the Italian game Wink and finally Gaelco games which have encrypted video ram and use a nasty protection MCU (I'd like to see World Rally working).
Well there's always space for a couple of Korean and Italian games :-)
23. What irritates you?
People who make profit from MAME, selling ROMs and illegal cabs with MAME inside them.
24. Dumbest question you ever actually answered?
I honestly don't remember, I've probably removed it immediately after it was asked ;-)
25. Closing comments?
What to say... Where I live arcade games are hard to find, because they were replaced with all these video pokers I hate so much. So I hope to see the arcade industry coming back to its good days taking a revenge over the crap video pokers.
However I would like to thank Nicola to have created MAME and all the good guys working to the project.
I'd like to say thanks to Pierpaolo for participating in this interview. Even through his finals and his many bug fix submissions, he still managed to find time for this interview.