Flavor's website is here
Hooka: When did you get your gp32?
Flavor: I knew that this would be question number 1, so I went to Lik-Sang.com to look it up. They say it was shipped on February 28th, 2002. I had been doing some small jobs for Lik-Sang at the time. Some months before that, I had contacted them about the possibility of sponsoring my NGPC Multi-ROM Menu. They helped me out with that, and later I helped them on another small project. Most of the payment for my work came in the form of a new GP32. Shortly after that, I dropped my affiliation with Lik-Sang, so I no longer recommend them.
Hooka: What was the major selling point for you?
Flavor: Well, the Internet connectivity sounded pretty cool. :) I think that I liked the fact that it used SmartMedia cards (easily writeable), that it could be used as an MP3 player, and that it was the coolest handheld on the block. For some reason I seem to have a thing for handhelds. I got into homebrew development with my GameBoy and then I went on to NGPC, GBA, and GP32. The GP32 has been the most fulfilling for me, mostly because it's so open and you don't have to worry about specific hardware (aka tiles).
Hooka: What dev environment do you use?
Flavor: DevKitAdv I feel like I'm living in the past, but I've never bothered to upgrade to anything newer. When I started porting Wolf3D, I tried ADS, but it wasn't good for that project, so I never went back.
Hooka: Why did you decide to port Wolfenstein 3d/ Spear of Destiny?
Flavor: Well, if you don't mind me taking a little walk through memory lane... Wolfenstein/SOD wasn't my first attempt at coding for the GP32. I had been hanging around the #GP32Dev IRC channel a lot at the time with people like DarkFader, _MP_, Ph0x, JeffF, Costis (moved on to larger GameCube things), and of course the granddaddy FireFly. From what I recall, Ph0x had made what was thought to be the first homebrew GP32 production. Well, the problem was that it didn't actually work on the real GP32. At that time, there wasn't a working crt0.S available. I figured out that the main problem was with the stack, so I took Ph0x's work and made it all one big main function. I was able to create these early GP32 demos. FireFly had some working ROM’s before this, but he was very secretive about it, and he didn't really seem to release any source code or compiler information. He would give hints in IRC a lot, though, so I was always listening when I could be. They've been on my WWW site since I made them, but I don't think I gave the URL to many people so they never got spread around. I'll post these here just for historical reference.
Flavor: So, back to the topic at hand. After I had figured out that it was possible to code for the GP32 (and after some helpful souls released the devkit) I was looking for something cool to code for the GP32. I like ports, because, well, simply put, they're easy to get something great without writing all the code. I like low-level programming, and I'm not too into user interfaces. Porting a project like this is all about porting the low level (hardware specific) parts without creating new user interfaces and graphics.
Flavor: I downloaded the Wolf3D source code from iD, but it was laced with x86 ASM. It was really getting to be a headache porting this to the ADS. I decided that this wasn't going to well, so I went looking for another version to port. I figured that someone would have ripped out the ASM for straight C code to make it more portable. Sure enough, I found a version for Linux that compiled under GCC. I grabbed DevKitAdv and it didn't take long before it would compile. Then, it was mostly about converting the input and output to GP32 routines (and malloc/free problems).
Hooka: Which do you like better Wolf3d or SOD?
Flavor: Well, back in the day, I played quite a bit of both, but I must say that I played more Wolf3D than SoD. I suppose that's just because it came out first and it was easier to get. I guess I'd say that I'd prefer Wolf3D just because it's got more nostalgia value to me.
Flavor: As far as porting goes, they're the same source code, so you just change some parameters of the build and that changes whether it's compatible with the Wolf3D or SoD datafiles. It's the same thing for Shareware/Full versions.
Hooka: Do you enjoy killing the (Video Game) Nazi's too?
Flavor: Of course, but what's even more enjoyable is the sounds they make when you kill them. :)
Hooka: Haha! Mein leben!
Hooka: What's the difference between the normal vgafiles and the linux ones that make the normal Wolfenstein vgafiles not work on the gp32?
Flavor: You've got me. The main difference is that one works and the other doesn't. I didn't even know that there was a problem until people started complaining that it wouldn't work for them. I had seen this VGAFILES deal on sites around, but finally someone figured out that was the way to fix their problem. I guess it's a common problem, too. It just depends on where you get your original datafiles from, I suppose.
Hooka: How hard would it be to add music to Wolf3d for gp32? I think someone mentioned you disabled sound, so it would have to be enabled and then adlib emulation would have to be added, correct?
Flavor: Actually, this is a really good question. I did some work with the adlib emulation, but sound just isn't my thing. The digitized sound effects in Wolf3D are pretty much just WAV files stuck in the datafiles. So, that was easy to do. The problem, then, was that some basic sounds weren't available in that format, so I had a co-worker help me and we figured out how to emulate the PC speaker. Though, I must say that I kind of like the PC speaker sounds in the GP32 version. It adds to the nostalgia factor.
Flavor: Now, on to the music. This is, in fact, adlib music. I tried porting the emulator that came with the GCC Wolf3D that I used as the basis for my port. I think it originally came from MAME, and I'd bet that there's a newer version somewhere. I never got that to work, and it never seemed like anyone particularly cared.
Flavor: I did, however, make a little-known-about version of GP32 Wolf3D that used converted sound files. It would use a PC to convert the Wolf datafiles to WAV files. Then, GP32 Wolf could load these and play them as the background music. I think it seemed to add instability to the game, though, and the music files were rather large after you converted them, so Wolf would take up MUCH more room on the SMC. I never though it was worth releasing it this way, but perhaps users would disagree!?!?
Hooka: Do you know who originally drew that picture of the army girl killing a Nazi?
Flavor: No, I don't, but at the time, I think that someone on GPZIGI (which I only looked at if someone posted an interesting link to #GP32Dev) would periodically post these comic strips. I guess that the Wolfenstein video was big enough news at the time for him/her to include a strip about it. I think that was just before I actually released the playable version.
Hooka: I remember playing it with just a solid aquamarine color for the roof, did you change it to have the roof texture?
Flavor: Yeah, this is a bit silly, but I recall that the roof and floor was originally a solid color. There were some graphical glitches with this when I first ported it to the GP32. As a quick hack (so I could get past the problem and come back to fix it later) I just used these brick textures that were already in the game. I guess I never went back to fix it later.
Hooka: On www.gp32world.co.uk there is a copy of the wolf3d source and it says "GP32 Wolf 3D port. Not released version exactly, but compiles and runs", what is the difference between it and the released version?
Flavor: Well, actually, I don't know. :) I always wanted to release the source code for my GP32 port of Wolf3D. I also planned to fix the floor, roof, music, etc. I didn't want to release the code until I was done with the game, but months and months went by and I hadn't touched the code for so long that when someone asked me about it I decided that I probably ought to just release the code because it was getting less and less likely that I would make a new release of GP32 Wolf anytime. The "not released version exactly" is because I had done some work on it since the last release, but I couldn't remember what I had done. I know that I worked on the music. I tried to go back and find the source code at the point of the release, but that wasn't happening, either. So, I just ZIPped up my working directory and released it in the GP32Dev Yahoo group files section. I'm sorry that I never did anything better with it, but after Doom came out, I think that Wolf3D lost a lot of luster for most users.
Hooka: How hard would it be for someone to use the Adlib emulation out of Chui's SDL to put sound into wolf3d? Or Robster's Adlib engine from Doom?
Flavor: I doubt that it would be all that difficult. I just don't know a lot about sound. I think that someone that did could add it in fairly easily. If someone really wanted to work on it, I would offer my support, but I don't know how much of a help I'd be. I haven't looked at the code for a LONG time, now.
Hooka: What clockspeed is wolf3d running at?
Flavor: If I recall correctly, it's just running at the default clock speed. That's 67.8MHz, right? I would imagine that if you wanted to use the adlib emulation, you might need to crank it up a bit.
Hooka: I was trying to use minigp to compile it with SDL to add Chui's Adlib emulation and it apparently doesn't have support for c++ or something, is there a way to fix this or what should it be compiled with? (I'm really not a programmer, just hope to be someday!)
Flavor: I don't think that it should require C++. The only thing that might not be ANSI C is my comments. I tend to use the // instead of /* */ if the compiler will let me. Other than that, I think it should be all C.
Hooka: I find it interesting that dynamate has never made it onto any mainstream computers (mentioned on the original author of Dynamate's page), what do you think of this? (I think it's great a totally non-mainstream game with all those different ports)
Flavor: Yeah, it's a cool game. That's for sure. Even in the GP32 community, I think that it's still fairly unknown. In a way, I think that Jonas (the original author) would rather have it this way. I got the impression that he's not so into Windows and the more mainstream platforms, so it probably suits him to see his game on the more "underdog" consoles. If you want to know my favorite port, I'd say that it's for the Neo Geo MVS (check http://www.neobitz.com/ under Games & Demos), though I can't say that I've actually played it yet. Some day they may actually release a devkit for the MVS!
Hooka: Was it a surprise to see Thor, who did the neogeo pocket port of Dynamate start programming for the gp32?
Flavor: Nope. It was no surprise at all, since I had been trying to talk him into getting a GP32 for a while. :) I don't think I was the reason he got into it, but I had conversed with him about it before. Spiv, Thor, and I (among other people) had all been active in the NGPC scene previous to getting involved in the GP32 scene.
Hooka: Do you still have plans to release a Windows-based level editor for Dynamate?
Flavor: Sadly, no. Though, it wouldn't be difficult to do. Call me weird, but I like getting into new projects and then when I accomplish the immediate goal, or if I put the project down for long enough, I move on to another project. I'm like this with many things. At some point, I would still like to think I'd add on to or fix things in past projects, but I know myself well enough to know that it just won't happen.
Hooka: How was getting 3rd in the GBAX 2003 for dynamate and what did you get as a prize?
Flavor: It was awesome. I could hardly believe it. Sometime around when the competition was announced, I had started collecting a bunch of open-source puzzle games. I can't recall if I did it because of the competition or if I had decided to look for a project before that, but it's probable that it was the competition that prompted me. Anyway, I was collecting puzzle games, thinking that I could port something because previous to this point, there hadn't been really any good non-Tetris puzzle games on the GP32. Most of the way through the competition, I actually thought that I wouldn't enter the competition, but then I came across DynaMate. I started looking into the source code for the BeOS version (I think it was) and I decided to contact Jonas to see if he'd supply me with some code from another version (I think I asked for DreamCast) and to see if he'd be okay with me porting his game.
Flavor: Well, I guess he had been working on a more portable, cleaner, version of his DynaMate engine, because he sent me that instead. If I recall correctly, I think that GBAX2003 was open for months, but I finally got started with about 2 weeks left to go. I put in a lot of work in that time, and I'd like to think that the result was something nice for the community. I didn't expect to place in the top of the competition.
Flavor: I was really surprised. There was my game topping the list of GP32 entries, and there was some good competition, too. After thinking about it and talking to Craig, I can see why DynaMate (from the judge’s standpoint) would have done well. It was a fairly addictive complete game at the time when there wasn't much else like it for the GP32. I don't really think that my work was better than the other entries, and I think that Jonas did all the real work behind the game. I just think that I ported the right game at the right time. :)
Flavor: [Side note: If Giana's Return hadn't been disqualified, I doubt that I would have won any prizes.]
Flavor: Oh, and about the prize... I got $100, some little GBA stickers, and a broken 128M GBA flash cart. Heh Heh! Well the flash cart wasn't supposed to be broken, but it turned out that the GBA flash cart wouldn't accept save-games. Something was wrong with it so that if a game tried to save, it wouldn't work properly, so I had to use games that didn't require saving (or that would ignore the problem). I finally took the cart apart and noticed that 2 legs of one of the chips had a solder blob across them. I guess it was a manufacturing defect. I cut the blob and the cart has worked great ever since. Thanks Craig!
Hooka: Why is the file selector and JpegView separate? Does the file selector automatically launch JpegView if you chose a jpeg file?
Flavor: It's not really separate. It's all one program, but internally, I guess it's somewhat like what you describe. I wanted to write a JPG viewer so that I could view the pictures that my Olympus camera saved to SmartMedia. Well, a JPG viewer is great all by itself until you actually want to pick what picture you want to view. I looked around for source code for a directory tree or file selector, but I never found anything suitable, so I had to write my own. I figured that other people might also be looking for something similar for other projects, so I tried to write it in such a way that anyone could use it for any project. If you have a project that needs the user to search directories for a certain file (or set of files) and then operate on that file, then you might want to check out my File Selector source code.
Flavor: Unfortunately, I've never heard of anyone using my file selector for anything, so I don't know if it's been useful outside of JpegView or not.
Hooka: GP32 Card Casino is like turning the gp32 into a Video Lottery Terminal (VLT) where you can't lose or win money, what made you decide to do a VLT style card game for gp32?
Flavor: Actually, this wasn't originally a GP32 game. If you take a trip back in time, to before I even owned a GBA (I think even before it was released in the US), you may find a creation called "GBA_Cards_v0-02.zip" (http://www.personal.triticom.com/~erm/GBA/). As a side note, I always loved one review of my game that (when translated with Babelfish) went something like, "You've seen this familiar game before, but never with such woodgrain." I had taken a picture of my office door to use as a table. :)
Flavor: So, when I made the GBA game, I had spent most of my time creating a card engine where I could shuffle, draw off the top of the deck, show cards face up/down, etc. The actual gameplay of the GBA version was fairly weak, and it didn't allow for many of the things that you can do in a real blackjack game. I envisioned a game where you could go from casino card game to casino card game, but I never completed the project.
Flavor: Fast-forward a few years. I was looking for a new GP32 project after I had finished JpegView. I sat down one day and dug up my card engine with the thought of porting it to the GP32. It went fairly smooth, and when I got done with BlackJack, I decided I'd add Video Poker. Personally, if I go to a casino, I like to play the Video Poker machines more than anything else, anyway.
Flavor: To sum it up, it was an idea I had a long time ago. I wanted a collection of casino style games. It wasn't until I had them together in the same game that I decided to try to make the cash part of the game like a casino. I figured that if you went to a real casino, you couldn't just walk in with $1000 and if you win on the first hand, declare that your top score was $1100. It doesn't work that way. If you walk in, you're letting it ride until you leave. If you leave with more than you came with, then you won. Then, next time you want to play, you can start over with whatever you walk in with. So, that's the idea behind the "Cash In"/"High Rollers" part of the game. It's all a gamble. If you cash in, maybe you would have kept winning, or maybe you would have lost it all. You have to decide when it's time to walk away with your winnings or when it's time to keep putting it on the line.
Hooka: Where did you get the idea for poker solitaire? I've never seen that card game before!
Flavor: I had just finished Video Poker, and I was looking for another casino game to add. I couldn't come up with anything else, and I wanted to come up with a card game that would fit the theme. Well, I started digging around on the WWW, and I found a guy that had a solitaire variation of poker for the Palm OS. I never even played it. I just read the rules and thought it sounded cool, so I coded it up. I think it turned out rather well. Just the other day, my dad asked if he could get it on his Windows PC. :)
Flavor: After I created it, I did some more searching on the WWW, and I found other variations on the same theme included with other card game packs. I guess it's no surprise, because there are TONS of solitaire variants out there.
Hooka: Do you plan on adding any new card games to it eventually?
Flavor: I really don't know. I got ShubE to help me out with the game, because when GBAX announced their competition, I figured that I should enter my card game. I knew that he was good with graphics from when he helped me a bit with DynaMate, so I asked if he wanted to help out with my project. He ended up doing almost all of the graphics and layouts for the games. At the time, we considered making the game for both GP32 and Zodiac, because ShubE is more into the Zodiac scene than the GP32 scene. In fact, I had to lend him my 2nd GP32 so he could work on the game. Perhaps, if we had made a GP32+Zodiac entry, we would have placed higher in the competition. Well, after he had finished most of the graphics, other things came up for him and he didn't have as much time to devote to GP32 Card Casino. So, we dropped the idea of a Zodiac port.
Flavor: I guess that the short answer to a long reply is that if I were to pick up the project again, it would probably be to port it to the Zodiac. Does anyone have a Zodiac they want to donate? I didn't think so.
Flavor: In theory, though, it would not be really difficult to add new card games to it. The card engine is all there and separate from the specific games. For that matter, even the main menu was made to easily add new games. Mostly, it would just take writing the rules of a new game.
Hooka: Did you ever get your GP-link's?
Flavor: I sure did. I ended up picking up a 2nd GP32 from a guy that broke his by flashing the firmware. At that time, there was no way to fix a broken GP32, so I decided that I'd buy it and try to fix it. If I couldn't, then I'd have spare parts for my GP32 in case anything bad ever happened to it.
Flavor: Well, I worked with DarkFader a bit, got myself some EXT plugs, and we ended up finally being able to re-flash the firmware. It was awesome. I now had 2 GP32s. What do you do with 2 GP32s? Of course you play link games, right? Well, I got some RF links from Play-Asia.com. I like to plug Play-Asia.com, because the owner has always been good to me. They used to compete with GBAX.com, but now they are pretty much different markets, so I recommend Play-Asia.com to anyone that's looking for videogames and import stuff. If you're looking for GP32 or GBA flash linker stuff, then I'd have to point you at GBAX.com.
Flavor: So, back to the RF Links. I got 'em, and I tried out some link games. I remember trying Asteroids and fNES. Asteroids was neat, but it wasn't extensive. I think it is/was more fun as a single-player game, actually. fNES was pretty cool, but unfortunately, it would get out of sync after a little while. I think it was dropping packets and fNES didn't do any error checking for that. I tried to inform Rlyeh about this, but he didn't seem interested. I think it's hard to care about the RF Links when nobody really has them.
Flavor: The only really cool app for the RF Links seems to be GPEngine, and as far as I know, there was never official support for the RF Links.
Hooka: So you encouraged Mr. Spiv to get a gp32, who encouraged you?
Flavor: I don't recall anyone encouraging me. I don't think that many people even had them at the time, so there wasn't really anyone around to tell me how cool it was. If anyone, I would guess that JeffF did, because he had a GP32 section open on www.devrs.com so I could tell it was the next cool handheld. Though, I guess you could say the same for the Cybiko and look where that is.
Hooka: Did you ever try and get AbuseSDL ported?
Flavor: No. It was a dream. I remember talking to Ph0x about it, but I don't think he had a working GP32 at the time. Actually, I've never really played Abuse other than when I looked at porting it to the GP32. I still think it would be a great game for the GP32, though. I bet it wouldn't be all that hard to port.
Hooka: Do you really think a port of DOSBox (If anyone ever did it) could ever run X-Com at a good speed?
Flavor: That's a tough call. X-Com ran on some pretty low-powered PCs, so it could happen. The problem that I see in working on a project like this is that it's a never-ending project. If you wanted to port Abuse it would be fairly straightforward, because it's been stagnant for so long that you can just make a GP32 port and be done. With DOSBox, when the authors release a new version, then you'd have to modify your GP32 version to support the new updates. The only 2 ways around this are to add GP32 support to the official DOSBox source code (which would be a pain) or make a GP32 specific version that was more of a fork from the official code at a given point in time. That way, you could rip out and modify it at will without having to worry about maintaining compatibility with other build environments.
Flavor: I think that both Abuse and DOSBox would be great projects. Though, I must say that Abuse seems a lot easier and rewarding on the surface. DOSBox would probably require more effort and in the end, because you wouldn't know if it would actually perform well enough until you actually tested it on the GP32.
Hooka: What other projects have you done/ possibly helped with?
Flavor: Well, Spiv and I worked on a secret project quite a while back. :) From my NGPC days, I had been in contact with Cal2 (the author of Koyote). Well, one of my dreams has been to see NGPC ROM’s played on the GP32, so we started working on porting Koyote to the GP32. We got it working (without sound), but it was so unplayably slow. We never did any real optimizations on it, though. Well, at the same time, ThunderZ was working on his NGPC emulator, and I'm sure you've seen it. Playable vs. Unplayable? We dropped the project. I think if GP32Koyote were to be optimized to the point of playability, it would offer some very nice support for NGPC ROM’s. The original Win32 version of Koyote was rather nice, but our version didn't do it justice.
Flavor: The only other project that I can think of was when I worked on the GP32 encryption. It was one of the first projects I ever did on the GP32. I think it was even before I did Wolf3D. At the time, there wasn't any real good way to test your own code on an actual GP32, so I made my own GXE/GXC encrypter, but now that FXEs are so popular, it's not very useful.
Hooka: What do you think of the Chatboard? Did you ever find a CHA-01 for yourself?
Flavor: I got 2 CHA-01's in an odd deal. I almost bid on an auction for a bunch of 'em, but I didn't end up doing it. Then, I contacted the winner and made what he referred to as something like the most odd deal he has ever been a part of. I got 'em and soldered them up. Spiv's test program worked great, and since then, they've been sitting on my shelf. :( I hope to do something interesting with them some day, but I don't know what or when.
Hooka: What are your thoughts on the 32/64 MB RAM mod's by Rob Brown?
Flavor: Well, I don't have any real strong feelings about it either way. It's excellent that he's figured it out, and I personally have done projects similar to this (not any really GP32 related) just to see if they will work out in the end. The only problem is that I don't see it as a generally useful mod because anyone wanting to write GP32 software still needs to support the official design. That means that very few people will ever write software for the RAM modded GP32s. It's somewhat similar to the Chatboard idea, except that the Chatboard is more of an add-on peripheral and the RAM mod is potentially destructive to the GP32. If a user wants the extra functionality of a keyboard, then they probably won't hesitate to get a Chatboard. If a user wants more RAM in his handheld, he'll probably get a Zodiac or some other palm PC.
Hooka: What do you see for the future of the gp32 scene?
Flavor: I've been pessimistic about it for so long, and it's still going at least as strong as it ever was. For a long time, I thought that GamePark was really stupid about how they ran their company. It seemed like they didn't care about sales at all. Now, they've struck this deal with Virgin and things have taken an interesting turn. I guess that I never thought the scene would last this long, so I guess that my impressions about the future might not be that useful. :)
Flavor: I would really like to see more commercial games for the GP32. I really think that good commercial games would add a lot to the life of the GP32. Sure, the homebrew scene is great, but it doesn't really reach out to new users like a lineup of commercial games would. It's odd, but people have a sense of getting value when they pay for something. I think that most people that download homebrew games (no matter what the title) don't feel the sense of ownership that they get when purchasing a game.
Flavor: Take KOF91 for example. It's a great game, but as a homebrew title, I don't think it gets that much respect. If that were an official GamePark title, however, I bet that it would be the game to own when getting a new GP32.
Flavor: I guess that what I'm saying is that I wish GamePark would take more initiative to create commercial games that people actually want. I've tried most of the official games, and I haven't found any that I have played for any ammount of time. I guess that Pinball Dreams is the only one that I've tried that I really think is worth the money. I really like what FaMe Soft has done, but I think it's too little to have much impact on the GP32 scene as a whole. If other developers could rise up and start offering commercial games (especially in SMC format), I think that it could help GamePark and the entire GP32 community.
Flavor: Unfortunately, it may be too late for that now that other new handheld consoles are emerging. GamePark's time may be over, but they had their chance and I think they blew it. This Europe launch could be their big second chance and a bit of a way to start over, but so far, they've just re-hashed the same old junky games that they've had.
Flavor: As far as the homebrew scene goes, I don't know the future, but I wouldn't mind listing some things I'd like to see.
Flavor: 1) Full, working, NGPC emu with sound. I wanted this from day one, and unfortunately, I have yet to be satisfied. It seems to be so close, but I haven't seen it happen.
Flavor: 2) NES emulator with good link support. Actually, this goes for all emulators, but I totally understand why authors would overlook the RF Link feature. It's just not widely used.
Flavor: 3) Linux with a nice interface and Chatboard support. I really don't know why I feel the need to have this on my GP32, but I just can't help but feel that it would be exceptionally cool. The best part is that this seems like it will be a reality in the near future!
Hooka: Ok, I know your Flavor, but if you had to be just one flavor what would it be? (I'm asking what taste ("flavor") like vanilla or something is most representative of you, lol)
Thank Flavor for doing this interview and all of your projects!
*Interview finished 20/06/04*