Vobbo's site can be found here!
Hooka: Would you like to give us a little introduction to yourself?
Vobbo: Hi there - I'm a computer programmer based in the UK - I wrote the hu6280 pc-engine emulator way back in 1998 as the PC-Engine was my favourite console (and still is) !!
Hooka: When did you get your GP2X and your GP32?
Vobbo: I've had my gp2x and gp32 for about 6 weeks now, I bought the gp32 off someone who was selling it at work, started looking around on the web and noticed the gp2x and ordered one the same night!
Hooka: What was your main motivation for getting these systems?
Vobbo: I love writing emulators, and optimizing code for the ARM is also fun - So my main motivation for getting them was to rewrite my hu6280 emulator in ARM assembly!
Hooka: So your first stuff for GP2X was your demos?
Vobbo: Yes. I started off just getting used to GNU and SDL - Once I'd got settled with makefiles and linking in ARM code, I started converting HU6280.
Hooka: What happened to the demo's and source are they not available on your website anymore?
Vobbo: Oh, I must have deleted the links when I updated my website, I'll make sure I add them again!
Hooka: Did you just port some demo's you made for other systems to the GP2X or did you make brand new ones?
Vobbo: I coded the two gp2x demos directly for the GP2X :)
Hooka: So you're a stoner, eh? (awesome, me too :P)
Vobbo: hahaha, shhhhhh
Hooka: Are you firm in the belief that we would be better off with just a 400Mhz core rather than two 200Mhz cores?
Vobbo: Yea :( I've played with the second cpu quite alot, and, its pretty useless... It's possible to find some uses for it... but its very limited.
Hooka: You seem to dislike DRM (can't blame ya) would you like to explain to people why you have this stance?
Vobbo: Well, I'm against piracy for starters... But aggressive DRM is not the answer in my eyes... If I bought a GP2X game, I'd want to have it local on my 4gig card, carrying around multiple SD cards is not an option for me... I believe, if you have payed for something, you have the right to do whatever you want with it - but thats just my opinion. If I buy an antivirus product on the PC, I want to install it on my desktop and my laptop - If DRM stops me from doing that, I won't buy it, its that simple.
Hooka: So you're the original author of hu6280 correct? Whatever happened to www.hu6280.com?
Vobbo: Bandwidth issues forced me to close it down, it was costing me a fortune!
Hooka: What prompted you to port it to the GP2X?
Vobbo: The idea of playing all my old pc-engine games on a handheld was a dream come true! GP2X was the perfect choice!
Hooka: So your aiming at 60fps, full sound emulation with super graphx and cd support at 200Mhz, from the work you've done so far does it seem a close reality?
Vobbo: Yes. When I'm done optimizing it will run all the games @ 60fps with no overclocking. Its already very close, and there is plenty left to optimize - I just started on my second version of the ARM cpu core - After coding the first version, I could use the ARM cpu flags to directly emulate the hu6280 cpu flags, this will shrink the cpu core code down even further, and will improve my icache/dcache thrashing....
Hooka: You really dislike the use of frameskip huh?
Vobbo: Yea, Frameskip is cheating... Just try playing some games on gp2xengine , then switch to HU6280 and see it running like the real thing... !!
Hooka: I read that you got it running at 44fps on the GP32 at 166Mhz, do you think you'll ever release it for GP32 and that it'll be fullspeed with sound?
Vobbo: Yes. Its actually running at more like 53fps now with the latest version... I just need to code a rom selector for it and I`ll release it when I get time...
Hooka: For those of us who are a little less technically inclined what is I-CACHE, how small will the emu have to be to fit there and what benefits will this show in the end? And while I'm at it what's D-CACHE?
Vobbo: I-Cache is the ARM Instruction cache - basically if your code is running from I-Cache it doesn't have to wait around to fetch instructions from main ram giving you a big speed bonus! D-Cache is the ARM Data cache - similar to the I-Cache except for its when you access data from memory... Once I'm finished coding hu6280 95% of the code will be sitting on I-Cache, resulting in quite a speed boost.
Hooka: You mentioned that you have a port of a newer version of MAME compiling for the GP2X already, why did you decide to port it?
Vobbo: I decided to port Mame to see If I could get Flying Shark (my all time favourite arcade game) running @ 60fps on the gp2x - I`m getting close, it currently runs @ ~40fps
Hooka: After you're done with hu6280 you plan to start working on your MAME port again, would you consider working together with Franxis and his team to update to the newer MAME or help optimize either version?
Vobbo: Yes of course. Franxis has done an amazing job with mame so far! It takes alot of work to emulate things on a little ARM @ 200mhz!!
Hooka: Why did you decide to make a Gizmondo port of hu6280 also?
Vobbo: After getting into the GP2X scene, I noticed critical and a few others moved over to Gizmondo... So I bought one on Ebay, liked it, and ported it... :)
Hooka: So you plan to use the ARM registers instead of fetching information from memory all the time, will this lead to a major speed increase?
Vobbo: The current cpu core already uses the ARM registers for storing the hu6280 registers - but it is using a lookup table for setting the N and Z flags on the 6502 flags register - This can be removed - as the ARM already has these flags which can be used directly. I rewrote my ADC and SBC instructions to use the ARM flags and the resulting code was 65% smaller, 100% quicker and didnt use any memory reads... quite a speed saving when you are emulating ~19500 hu6280 instructions per frame.
Hooka: Heh, I've never seen anybody use the word twatted before, thanks I needed to see that :) (I just thought it was funny, no question)
Vobbo: haha, yea, I use the words 'twatted' and 'frigged' quite alot to describe code hacks ;)
Hooka: Do you think that you might add screen scaling (possibly using the gp2x hardware acceleration) for games that are larger than 320 pixels wide or games in general? although 1:1 ratio can be comforting at times...
Vobbo: I've actually played with that a bit already - so Yes, I'll add it as an option.
Hooka: Wow, you intend to implement ALOT of features into hu6280, it looks like it's going to be a pristine emulator when your done! Why did you give us the chance to vote for the next feature?
Vobbo: The emulator belongs to the GP2X scene, donations have funded the development - So I thought it was only fair to let the community decide on the next feature to be added!
Hooka: Will MP3 with iso playback slowdown emulation or is that not an issue with the amount of optimization your going to put into it?
Vobbo: The ISO code doesnt have an impact on the speed of the emulation at all - MP3 is causing me a few headaches at the moment, although wavs are working fine @ 44100khz
Hooka: You once said something about the emulator directly using arm registers, is this because the way these two processors work are so similar that they have similar registers with identical results?
Vobbo: There is a trick you can use to make the ARM flags reflect the 6280 flags perfectly - if you shift up the HU6280 registers by 24 to keep the register in the top byte of an ARM register, your flags are automatically correct for the HU6280 , this saves quite a bit of 'emulation' :)
Hooka: Was it hard to write your own assembler? Why did you?
Vobbo: I wrote my own assembler to make it easier for writing cpu-core's in assembler. Using powerful Macro's you can cut out alot of the work.
Hooka: Have you gotten alot of donations for your work?
Vobbo: 23 so far. :) A big thanks to all who donated so far! Keep the donations flowing in or I'll move to the PSP scene.... (j/k)
Hooka: Any other mystery projects you'd like to tell us about?
Vobbo: Well... I have a few other things I'm working on yea... but, you'll have to wait and see...!
Hooka: Are you a career coder also or just a hobbiest? (as a side note I know that correct english doesn't seem to have the word hobbiest but dammit I'm declaring it a word!)
Vobbo: Both, yea.
Hooka: Any particular reason for the nick vobbo?
Vobbo: It's my characters name in Everquest.
Hooka: Do you own a SuperGraphx?
Hooka: What is your absolute favorite PCE/TG-16/SGX game? and favorite game of all time?
Vobbo: Probably Galaga (Hucard) and Star Parodia (SuperCD Game) - and favourite game of all time? Thats tough, I'd have to give you my top 10... Galaga88 (PC-Engine), Mario64 (N64), Everquest (PC), Zelda (N64), FlyingShark (Arcade), Xevious (Arcade), Mr Do (Arcade), Street Fighter 2 (Snes), Super Mario World (Snes) and Yoshi's Island (Snes)
Hooka: Anything you would like to add, feel I forgot, dead skunks you'd like to stick in little kids tricycle wheels?
Vobbo: Nintendo rocks! Don't buy a PS3 or PSP - get a Wii and a GP2X instead! Oh, and keep those donations coming or my wife will ban me from using the computer!
Well, a big thanks to Vobbo for doing this interview and all his coding projects!