In a few days, Retrocade will be released to the public. Thishas been one of the most awaited emulators for a long long time. Thereare many reasons for this. Among them the fact that many great favoritesare in it, some new previously unemulated games, faster speeds and a killerGUI make up this great Emulator. Hype has been built up over months, andit will be time to live up to expectations for Retrocade. With a huge betatesting team doing Quality testing as you read this, Retrocade should proveto be one of the best emulators in existence. Read on as we talk to NeilBradley, one of the main heads behind Retrocade, as he expresses his feelingsabout some controversies regarding this emulator as well as what you canexpect to get this Monday. NOTE: This InterView was done about twoweeks ago, so time related answers are outdated.
|Neil Bradley Talks Retrocade! - September 12,1998 by JoseQ
1. How in your personal opinion is Retrocade turning out to be? Everythingyou expected?
In most regards more than, in some regards less than. If I had known thatRetrocade, in its current form, would take me over a year to complete(with help from others of course), then I probably wouldn't have done it.I expected to go beta in November of last year. What I envisionedRetrocade becoming and what it is now is almost totally different. Itsaddens me that it has taken so long to get to where it is today, and thatit isn't released yet, but at the same time I'm proud of what it is. Whenpeople start out with projects this large, the focus, featureset, andoperability shift over time. On several occasions, I had considered justdropping it altogether, but I'm glad I stuck with it. We have rewrittensections of the code sometimes 2-3 times.Performance-wise, it's a better performer than I thought it could ever be.I really do like the feature set and ease of adding platform extensionsinto the core. I think the architecture is 95% of what it should be.
2. Do you think you can run out of ideas to add to Retrocade? How much(percentage wise) of Retrocade is done compared to everything you want toput into it?
There are far too many ideas floating around for us to run out of thingsto add to Retrocade. ;-) One large regret I have is that I haven't hadtime to do any theory testing, such as dynamic translation, or other minoremulation-asseted programming efforts. I'd love to create a library of ASMgraphics drawing routines - specifically targeted at emulation - for allto use. I'd also like to create a 68K EMU in ASM, freeware, just like myother ones. They'll eventually get done. It's just a matter of when.Retrocade is eating up all my time.Percentage-wise of what I expected Retrocade to be and what it is? 140%.There are several features in it, like the tweaked VGA modes and statesave, which I didn't envision would be there at all. Same with translucentvectors, antialiased lines, and backdrops. That wasn't originally on myradarscope at all.
3. Are you satisfied with the speed achievements made in MAME? Do you stillsee room for speed improvements?
I think the speed improvements are a good start. Satisfied? Nope. But thenagain, I'm very hard to please when it comes to speed. I've been known tospend hours getting an extra 5fps out of a game, trying theories, etc.. Istill think that games like Marble Madness should be playable, full speed,with sound, on a Pentium 133 (and I mean 44.1khz sound). In my opinion, itisn't optimized until the machine is just flatly out of power. But that'sRetrocade's goal, not MAME's. I actually get aggrivated when I pour abunch of work into Retrocade and get little to no payoff in performance.There are a few games I'm holding back because they aren't fast enough,and I haven't had a chance to get to yet.There's no question that MAME can be improved further. However, from whatI've been told by a handful of MAME developers, the graphics engine is thebottleneck, not the CPU cores. A rewrite of the CPU cores in assemblywould help MAME, but not to the degree that everyone thinks it would.
4. Were all those speed improvements achieved via honest optimizations oris there some tweaking, tricking and assuming involved in there?
I think there are only 3 cheats:
The list above might look like "not true emulation", but the end resultwinds up being the same, and they certainly make things much faster, whichis Retrocade's primary purpose. Keep performance up!But everything else is 100% emulation - no cheats or funky tricks.
- One, the sound engine in Spy Hunter is not a 68K emulation - it's atranslation of what the board would do. This is the only way we could getspeed out of it. The output of everything is still identical, and it stillpulls data from the ROMs.
- Two, the drums in Gyruss are not 8039 based - they are samples. We didn'tlike the way the 8039 sounded, so we created samples in the spirit of theoriginals. I don't think that the original authors would've used an 8039to generate crappy drum sounds if they had other options.
- Three, in Burgertime, we don't do runtime decryption of the ROM images -we decrypt them after loadtime.
5. There are rumors surrounding Retrocade about a "borrowing" or even"stealing" code or design from other emulators, for example MAME?
No. Not true at all. Mike Cuddy & I had freeware emluators before MAMEexisted, and our architectures were pretty much hammered out before MAMEcame along. It's also all our code. The architectures of the twoemulators aren't compatible with eachother. I learned that lesson when Igave Aaron Giles my Blasteroids PE to work on. But looking at MAME'ssource, we've solved some of the same problems in different ways.
6. How bout the rumor that Retrocade is an end-user product, simply causein the end, if possible, it might be for sale?
Retrocade is an end user product. That's what it's designed to be. As faras the "We're actively seeking to sell Retrocade", it's a load of crap. Idon't know how the rumor got started. Retrocade is not currently for sale.I'd rather not ever have to negotiate a contract with these game companies(already did it several times unsuccessfully).However, I have said before that I'm keeping my options open to gocommercial, which is part of the reason I am not releasing source code inits entirety. This means that if a game company sees Retrocade, likes it,and wants to pay us lots of $$$$ to develop or license it, I am *NOT*going to say no, and I am doing things like writing my own code forvarious operations (sprite code, CPU emulators, I/O handling, soundengine, etc...) to minimize contract hassle in the off chance thatRetrocade might be approached.That being said, it doesn't mean that I *WANT* Retrocade to go commercial.Honestly, I hope it doesn't. Negotiating with big game companies is reallyfrustrating, because they have a tendency to not tell you everything andalso promise the world but deliver nothing. The negotiation process istiring and aggrivating. That ruins the fun of it all. Regardless of themoney, if the fun isn't there, it's not worth doing.But if a game company wants to offer me (or us) a job in the gamingindustry in exchange for Retrocade's rights, I'm all theirs. The onlyhidden agenda I have is that it adds a great line in my resume, maybe getsme some contract work or a job at a game company, and makes people happy.I already have a job that earns me a decent living, so it certainly isn'tmoney I'm after. I didn't start doing emulation because I thought it wouldearn me money. I started emulation because I thought it was fun to relivethe games I grew up with. I strongly identify at least 6-8 years of mychildhood with video games, and as an adult, I get to be a kid again -both from the aspect of playing the games and learning just how ingenousthe old arcade game authors are, and making a few other people happy inthe process.I've always been up front with this information, and there's nothing moreaggrivating than lamers on the message boards posting false informationthat you know are blatant lies. I don't have a hidden agenda, and neverdid. And after releasing a freeware emulator and many freeware processoremulators that are used in a couple of dozen emulators, to be accused oftrying to "cash in" is about the biggest insult an emulator author canget.
7. Is there any secret behing Retrocade that helped you achieve thisgreat quality product, with incredible efficiency?
Oh please. ;-) Praise on an emulator that hasn't been released yet. ;-)There is no secret. All of the techniques I've used to increase speed areas old as the games we're playing. But one thing that I did the entiretime was rewrite, rewrite, rewrite, optimize, and rewrite. This is, ofcourse, the main reason it has taken so long to write.Most coders fall into the trap of thinking that there's never time enoughto rewrite it, or "I don't want to rewrite it". The fact of the matteris, a rewrite, in a lot of cases, is what's in order. I've seen projectsprofesionally that could have used a rewrite, and would have taken muchless time to develop and would've been a much better piece of code to basetheir work on. Always throw your first piece of code away when you prove atheory.The other famous pitfall is "I'll optimize it later". The problem is thatthe best optimization tricks are algorithmic changes, which are tough toalter in big ways after they're created. What you wind up with are smalloptimizations that help performance a bit, but you never get the big winsthat an algorithmic or architectural change will yield. Ask yourself this:If you are going to build a 1 ton pickup truck, would you mould and shapea VW bug's frame until it became a truck?And the final famous pitfall: "I'm going do to an emulator and I'm goingto write it in C++". That's exactly like saying, "I'm going to dig a hole,and I'm going to use a spoon to do it!". One should never fall in lovewith a language, construct, or operational theory about anything, andshould *ALWAYS* evaluate the tool for the application, rather than shapingthe application to fit the tool.
8. What items are on the to-do list that have kept Retrocade from fallingout of the Beta status?
Mostly buttoning up "required" features and ensuring that they workproperly. Adding things in to make transitions between games smoother.Going back and fixing "little" bugs, and maybe a feature or two here andthere (like save state). Oh yeah - and documentation. Getting the web sitefixed up. And most importantly, making sure that I haven't induced morebugs. ;-|
9. After the first release? What's next?
Bug fixes! ;-) Seriously. I'm going to be tracking what people whine aboutmost and fix most of that stuff first before going on. People will behappy to know, though, that when new versions come out, emulation overallwill never get slower. If anything, it'll get faster. The main CPUexecution core loop hasn't changed in about 2 months.After that, I really want the Atari system 1 games in there. That'll be mymain focus after release, along with getting the Windows and Macintoshversions whipped into shape.
10. Will you be shooting at newer, more advanced technology, more colorfulkind of games, or is classic status the key to the games that will beeventually added to Retrocade?
We want the "cool" games. And the "cool" games, by definition, are acombination of the games that we like the best and the games that endusers like the best.
11. Finally, when is the world turning Green, Retrocade green? (Can you puta rock hard release date?)
I can't. Best estimates at this point are 2-3 weeks. But don't hold me tothat. Surprisingly, we have personal lives, too, which tend to get in theway sometimes of more important matters. ;-) I also don't want to releasetoo soon with irritating bugs and risk the wrath of angry users. If Irelease too late, it's vaporware. I can't win, man! ;-)
One Article Up: The Dead of Slapstic
One Article Down: PSEmu Pro's Tratax InterViewed!