DCEmu Interviews is the site that asks the questions everyone wants answering, Part of the DCEmu Homebrew & Gaming Network.

DCEmu Interviews Go back to Main Page

August 28th, 2006

Introduction

Exophase is a newcomer to the PSP scene and what an entrance, to release a Full Speed GameBoy Advance emulator on your first day is an accomplishment like no other and the response from all corners of the PSP Scene has been breathtaking. So what better way to get to know more is for the webmaster of DCEmu to come out of retirement to interview Exophase.

Heres the latest DCEmu Interview:

Wraggster: Can you tell us where were you born, where you live,etc.?

Exophase: Born in Cleveland OH, USA. Right now I'm in Bloomington Indiana.

Wraggster: What qualifications do you have?

Exophase:Bachelors in computer science, going for a Masters at the moment.. no real work experience, although I've done a lot for the retro game creation system "MegaZeux."

Wraggster: What made you get into computers/consoles?

Exophase:I didn't actually own a computer until I was around 12. It's difficult to explain why, but long before that point I had a strong desire to know how computers work and how I could work with them.

As soon as I got my first (a Pentium 75MHz machine) I wanted to figure out how to program, by

naively opening up random executables in notepad and staring at awe at the mess of characters

that I thought someone must have hand inputed to make this thing. Anyway, I guess you could say

I was always interested in computers in some way.

As far as consoles go, that's pretty typical for all of us, although I didn't own an NES when everyone else did. First I had was the original Gameboy back in 1991 - someone let my mom play Tetris and after that she just had to have one. Eventually I got an NES and the other consoles (at budget prices) followed, like TG16 (good times..) and SNES at the very end of its lifetime.

Wraggster: What projects/coding have you done previous to your GBA Emulator for the PSP?

Exophase:Aside from projects for school (some of them kinda big and scary, like operating systems) I've mainly just worked on MegaZeux, as mentioned previously. gpSP is my first real emulator.

Wraggster: What inspired you to code a GBA Emulator to the PSP and what difficulties did you have getting it to run properly ?

Exophase:I wanted to do a GBA emulator because I figured it could be done, but that it'd take more than just a straight port of VBA. I've been interested in dynarec for a long time and from what I knew about ARM (GBA's CPU) I figured it'd be a great candidate for dynarec due to the large amount of decoding overhead necessary in interpreting it (at least in ARM mode, not so much in

Thumb mode). MIPS (PSP's CPU) was also an attractive target for a RISC recompiler. I had a lot of

other crazy ideas for GBA emulation involving the video code that mostly thinned out, I'm not sure

how much any of them would have worked out. Anyway, GBA seemed like one of the more in demand platforms to be emulated on PSP, and it'd make PSP that more comparable to DS which has native GBA playing capabilities.

Of course, there have been many difficulties, not much about this project was straightforward for

me. I spent hours comparing my debugger to the debugger of one of three other emulators (depending on the game), trying to find where mine goes wrong. Of course, I would have had a much harder time without such mature emulators to compare against. This was all on the PC, long before an initial PSP build was even made. I was always pretty intimidated about moving to PSP because I knew it'd be that much more difficult to debug. I only got a dynarec running on it by doing it in a very systematic fashion, starting with a rather weak but more platform independant approach that wasn't too difficult to port to MIPS, then eventually tuning the MIPS code into what it is now. It's

pretty similar to the approach StrmnNrmn took with Daedalus.

Wraggster: Can the Dynarec be used in any other Emulators ?

Exophase:It might be possible to use it for other platforms that use ARM7TDMI, although the memory interface would have to be revised, as well as the translation mapping functions. Moving to ARM9 would be a bit more work and anything with an MMU would be a headache as well. For other CPUs I don't think this would do much for anyone, even as a reference.

This is all assuming that MIPS is a target. Other platforms can be targeted (as x86 and MIPS are

now), but because of how the dynarec is designed it works best when the target platform has

significantly more registers than the one you're trying to emulate.

Wraggster: Can Full Speed and Full Compatability be accessed with your emulator in the future ?

Exophase:Hm, I don't think any emulator really achieves full compatability. I know the compatability can probably be improved... right now I'm not handling self modifying code as robustly as I should be, changing that might help things, I don't really know yet. I'm also not handling some things like code executed from VRAM. I know for sure that there are a number of dynarec bugs; the interpreter

has much better compatability (and is of course much slower). I'd say the interpreter has around

85-90% compatability, so hopefully one day the dynarec will approach that.

As for speed.. there are still things I can do to improve it. There are some techniques that I

believe will decrease the size of emited code which can improve speed massively if it's enough

(anything to improve icache performance). For games that use the BIOS heavily or games that use

a ton of interrupts (like FFawn of Souls in battle or Sword of Mana) HLE BIOS may offer

significant improvements. Beyond these things there are some things I can try to load balance

between the two CPUs on the PSP and utilize the ME's faster eDRAM. I don't think that the added concurrency (running different pieces of code at the same time) will offer much but having double the cache and better memory may.

Wraggster: The release of this emulator has been compared to the shock of Ultrahle and Bleem, emulators that werent thought possible until they were released, are you proud that your the first to get a decentplayable GBA Emulator out there ?

Exophase:Heh, well, I'm just glad that at least some people can play some games well. I know it was nice being able to play Castlevania: Circle of the Moon for a while when I had nothing else to do.

Wraggster: Making the emulator open source is great for everyone, do you envisage ports to other consoles or is the code too specific for the PSP ?

Exophase:The dynarec is very PSP specific, and in the current version the video, input, and file I/O code has PSP specific versions, but it'll still use SDL/stdio for non-PSP builds. If anyone wants to

port it to other platforms I can give them my x86 dynarec backend, which is much easier to port

to other platforms but will be much less efficient than the MIPS one. Writing a dynarec for a

different platform is still a lot of work, and my dynarec model isn't really best for all platforms (it was somewhat written with MIPS in mind).

Wraggster: Whats the good and bad points about developing for the PSP?

Exophase:Most developers use psplink, which would probably be a huge good point, but I don't use it so I don't know. All in all I don't think developing for the PSP is that much different than

developing for anything else. The PSP hardware does have some pros and cons... when working with

gpSP I think these have been relevant:

pros:

Fast hardware bilinear filtering, this is good for pretty much every emulator

Very fast VRAM that you can read from and write to

cons:

Very little cache for the CPU (no L2 cache)

LCD blurs dark colors

Scratchpad RAM doesn't make for a good addition to cache, it's too slow...

No MMU

Wraggster: In your opinion whats possible on the PSP in terms of Emulators, Media Players etc, bearing in mind you have just released a Full Speed GBA Emulator ?

Exophase:PS1 emulation, but we all knew that one because of Sony's upcoming emulator. When I first heard PSP's specs PS1 and N64 emulation immediately came to mind, although I think I underestimated N64 emulation a little, the CPUs aren't quite as similar as I hoped (PSP has a 32bit little endian CPU with only single precision FPU), but perhaps these differences aren't too big of a deal. I think StrmnNrmn will continue to impress us there, and someone besides Sony is bound to do a great PS1 emulator (not me ).

As for media players... the ones out now are pretty good, right? I don't exactly, but I think they're doing a good job for what they have. Eventually someone should reverse engineer the PSP's video/audio acceleration chips and we'll have media players on the same level as the firmware ones, if they're not already at that level.

Wraggster: What got you interested in development for the PSP?

Exophase:I was interested long before PSP was released, even though I've never done console/handheld dev before. I was hoping Sony would release something like this for a long time and PSP pretty much matched my expectations exactly, at least on paper. The fact that it was exploited pretty quickly and it's so easy to get stuff on it (without any mods or extra hardware) made it too appealing to pass up.

Wraggster: Do you have any projects, that you would like to start for the PSP?

Exophase:Nope. This one's gonna keep me busy for a long time >_>

Wraggster: What would you like to see ported to the PSP and what is realistically the limit to what can be done?

Exophase:I don't really have anything in mind. Honestly I'd like to see more original works for PSP than

ports. But, for people porting, they need to bear in mind that PSP is not a 333MHz Pentium 2, so

they shouldn't necessarily expect that level of performance from a straight port. The CPU is only

single issue and it has far less cache, but far faster main RAM and other useful resources that can be taken advantage of.

Wraggster: How could the PSP Scene be improved aside from the obvious that Sony want to stop it at all costs ?

Exophase:The scene looks pretty good by all accounts, there's a lot of active news and development. It's definitely one of the more active console dev scenes.

Wraggster: Whats your favourite games from each console you have owned ?

Exophase:This sounds like a really hard question.. okay, I'll try:

Atari 2600: Seaquest

Gameboy: Link's Awakening

TG16: Bonk's Revenge

NES: Kirby's Adventure

SNES: Chrono Trigger or FF6

GBA: Castlevania: Circle of the Moon

Gamegear: Shining Force: Sword of Hajya

Lynx: Blue Lightning (okay, that was like the only game I owned)

PS1: (this is really hard) Xenogears or Suikoden 2.. maybe SaGa Frontier 2

PS2: Suikoden 5

Wraggster: Finally which of the Next Gen Consoles interest you the most and why ?

Exophase:I don't know if I'm going to buying any of them any time soon, what with my current trend of buying maybe one game a year, but from a dev standpoint PS3 looks the most interesting. It

might be the most open to dev for (ironically) and it has some really complex hardware that should be challenging to work through. XBox 360 will be somewhat open to dev for too, but at a yearly fee (which sounds a bit much to me) and with more straightforward but less interesting hardware. Wii is of course the more affordable and unique one, but probably won't be as interesting to dev for if/when anyone figures out how. Also, everyone's going crazy over the emulation of older games on Wii but we've all been doing that on other

platforms for ages, right?

Thanks for the excellent interview for the PSP Scene

wraggster

Please do not steal this interview for your site, please link only