Hooka: Would you like to introduce yourself?
Notaz: Hi, I'm a 23 year old coder, living and working in Vilnius, Lithuania.
Hooka: Heh, was just looking around and actually noticed you linked to my interview with Dave on the Cyclone page :) I gotta say I'm flattered :P
Notaz: Yeah, your Dave's interview gives some background info about Cyclone, so I thought those interested in this project should read it.
Hooka: Is there still much work left in Cyclone?
Notaz: Well, that depends on how you define the goals of this project. As a 68000 emulator it is pretty much complete, it can handle every instruction at correct timing (I ran all the instructions against latest MAME's Musashi). But of course not every combination of operands was tested, so there might be bugs lurking around. There are also things like undocumented flag behavior and div timing, they are not super accurate, but should be good enough. However, if you want to expand it to also emulate 68010 or perhaps 68020 and higher, there is still much work to do.
Hooka: Are you still maintaining the UIQ ports also?
Notaz: No. The last thing I have done was a basic port of Picodrive 0.964 to UIQ3, which runs quite well, and I don't think it need to be updated. Symbian OS is quite a nasty platform to code for.
Hooka: What prompted your purchase of a GP2X?
Notaz: Well, I didn't have to buy it. Craig saw my progress on my projects and sent me one.
Hooka: Do you enjoy playing around with all the various "toys" in our handheld? (meaning stuff like adding dual core support to your emu's, mmu hack, all the asm you seem to be so good at ;) )
Notaz: Yes of course. Although it is sometimes really challenging, there were some strange problems when I was working on 940 code, it would just hang randomly after around 5 minutes. Luckily Squidge mentioned the undocumented (in our public doc) 940 interrupt controller, so I utilized it for my sync code and everything started to work fine. I don't think I am that good at asm, I am not surprised when good C code compiled by gcc outdoes my asm. Although in some cases it is not that hard to beat it.
Hooka: How did you become so talented with arm asm to begin with?
Notaz: Talented? Me? Well I's a bit dirty, I just wanted to know how PC programs are cracked for some reason, so I started reading some tutorials, x86 CPU programming docs and playing around with some apps with simple serial number protections. Later I bought Sony CMD-J6 phone, and luckily for me somebody leaked it's firmware and flashing tools. After that, some person called r00t managed to reverse engineer the firmware and run homebrew on it. The firmware was running on some ARM chip (was it ARM7?), and I coded some simple programs and modded some existing homebrew ones, everything in asm. I have not released anything though (no emulators, it only had 4 gray shade 96x92 screen anyway :) ).
Hooka: You've mentioned that certain systems (like SNES) wouldn't benefit enough to justify the work needed to make them dual-core, why is that?
Notaz: I didn't mean that exactly, but most (all?) emus we port here were designed to work in a single thread, making them multithreaded (if possible at all) would certainly take a huge efforts, and I see big risks here. Splitting work to multi cores is a fundamental problem even in PC world, not many games/programs use multicore systems efficiently. Not to mention shared bus and small cache problems in GP2X ARM940 case.
Hooka: Was it encouraging to see fDave show up on the GP32X forums, and give you a big Kudos?
Notaz: Yeah, it was really nice.
Hooka: Are you still working on SquidgeSNES or has PocketSNES' appearance dissolved that?
Notaz: No, I haven't done any work on SquidgeSNES since my last release just because I have chosen to work on other projects, so PocketSNES had no effect on that.
Hooka: Why did you decide to try and get SegaCD support into Picodrive?
Notaz: Because the conditions were fine: PicoDrive could achieve full 50/60 fps underclocked while emulating Genesis/MD, there was no Sega CD emulator around for a handheld, and because it was just an add-on (fully working genny + some new stuff), so all PicoDrive code could be reused. Also, there is complete system documentation available on the net (leaked by some game programmer, many thanks to him), and of course Gens source code to use as a reference (although it is mostly x86 asm, it was still very useful). Basically there was no reason not to do it.
Hooka: Did it turn out better than you expected?
Notaz: Yeah, I expected it to be a bit slower. The only disappointing thing is CPU-eating SD card access, which causes problems for FMV games.
Hooka: Was it a good learning experience / fun thing to hack around?
Notaz: Dunno, most work involved rewriting Gens' code, although I did some parts from scratch using the docs.
Hooka: So GMV's are basically just genesis motion videos? What is the reason for having these in Picodrive?
Notaz: They are just button press recordings, so when you play them, the game is emulated normally, only buttons are pressed for you. I just liked the TAS concept, where people are trying to finish the game as fast as they can (or achieve some other goal, like use minimum number of bullets), they are searching for glitches, reverse engineering the game to find something that allows to cut a number of frames. Gpfce also has FCM movie feature. Although only some movies work, because these movies were recorded on different emulators (different timing), I would still suggest to try at least a few of "recommended ones" from tasvideos.org. My current favourites are Genesis Sonic 3 and Knuckles and NES Gradius (both can be played using my emus).
Hooka: Good job on getting Noiz2sa up to par, it's quite nice playing it on the GP2X now :)
Notaz: I just liked the game, that's what gave me motivation to optimize it. It's code was also suitable for using the hardware blitter, something I haven't tried before.
Hooka: Do you have any tips/hints for people using the 940 / MMU Hack / any other GP2X trickery?
Notaz: Maybe a few. If you want to program ARM940 or do some random low level programming for GP2X, be sure to read whole Dzz's demo development thread. If you use the upper memory, always use mmu hack, unless you only write to it or want to communicate with 940.
Hooka: So how long did it take you to come up with the software scaling algorythm you use? It's quite nice I must say :) (Very nice math for it imo)
Notaz: Well it's very trivial, anyone can come up with something like that, it didn't take much time.
Hooka: Thank you so much for fixing up gpfce :), was it complex modifying ljgp's core to work with gpfce?
Notaz: Yeah it required quite a bit of adjustment, because too many parts of FCE Ultra depend on the CPU emulation code.
Hooka: What new features may be instore for gpfce?
Notaz: None ATM, it looks kind of finished to me now.
Hooka: Isn't it amazing how you may put alot of effort into the GP2X scene, but you also receive alot back? (Take for instance the handiness of oldplay for you :))
Notaz: The GP2X community is very supportive, thanks to all supporters! Micket's twist was a nice one too, you just can't have enough time to code everything you need yourself.
Hooka: I can't begin to explain how much me, and probably other dev's appreciate the information you've provided on how to use the mmuhack module and the fixed module itself. How did you come to all these realizations?
Notaz: Well everything was already done even before I started coding for GP2X, mostly by Squidge (the whole concept) and I think NK (the module), it was just lying around undocumented, so some people were starting to use it incorrectly. The 'bad' module was meant to be customized and recompiled, but too many people just took it and used, so it didn't work. Seeing this situation and having figured out all that mmuhack stuff myself, I thought I'd document it, and that's it. I think I can already see the results of this, many GBAX2007 entries come with mmuhack.o, which is nice :)
Hooka: Are you going to try and help fix up Cyclone for full MAME compatibility?
Notaz: Yeah I have already found the problem, there were some issues with the wrapper code in between the MAME core and Cyclone, not with Cyclone itself. There should be no need for 'compatible' MAME executable now.
Hooka: Where did the nick Notaz come from?
Notaz: It's just a mixup of letters of my real name, nothing too original.
Hooka: What are your best videogame memories? (We've already heard your almost getting your ass kicked over multicarts story, so give us something new ;)... that and I don't think that would be a best memory :P)
Notaz: Most of those were from "NES times", when I was a kid (maybe 10-11 years old), when video gaming was a completely new thing to me. Everybody used famiclones here, and the funny thing was that most of them had RF modulators built in, powerful enough for you to watch your neighbor's game, and neighbor could watch yours :) Famiclones used very cheap gamepad cables, which were breaking fast, forcing me to get some soldering skills. Later this became a way to earn money, for a small fee I could fix your broken famiclone pad :) It was popular to use famiclones and MegaDrive systems as arcades in some places where I lived, so you could go and have a game of Mortal Kombat (or some other game) against your friend for a fee. Learned many fatalities this way. They used cheapest TVs they could get to hook up the systems, like this one:
But still, it used to be fun.
Hooka: What are you looking forward to coming from, or happening to the GP2X scene?
Notaz: Open2x getting finished, new version of gpSP (or anything else Exophase comes up with), psx4all reaching it's peak, more quality homebrew (like ruckage's or even better).
Hooka: What new projects can we expect to see coming from your neck of the woods in the near future?
Notaz: I don't even know myself, there are a couple of things in my head, but they tend to change too fast.
Hooka: What's Lithuania actually like? I'm sorry if this sounds improper, it just struck me as weird thinking about somewhere that an NES is rare in... Cheers to FamiClones!
Notaz: Well when NES was released in the world, we were still part of soviet union, and NES was never released there, even after soviet union's dissolution. So those clones were probably the only video gaming systems available until MegaDrive appeared here. It's hard to tell how it is "actually like" here, as I never really lived anywhere else.
Hooka: Has anybody uploaded a version of Puck's USB Joy Lib with the fix? or is it just in gpfce?
Notaz: Dunno, it is very small change, so everyone interested can patch it themselves (see A r k's thread) or just take it from gpfce source.
Hooka: Do you have a GP32? Or are you just a GP2X owner?
Notaz: No, only GP2X.
Thank you Notaz for doing the interview, I'm sure we'll all appreciate your hard work!