Hooka: Would you like to introduce yourself?
Senor Quack: Sure, my real name is Dan Silsby. I am 28 as of 2008. I grew up near Washington, DC but recently moved with my fiancee to southern Utah (great hiking out here). I think open-source software and the collaboration possible through the Internet will be some of the greatest things to happen in my lifetime. I don't keep up-to-date with PC hardware, I think the upgrade cycle is a ridiculous racket. I have done PC/printer/monitor repair for 8 years, and was a data recovery technician for two of those years (taking apart hard drives, recovering filesystems by hand and such). I was a Linux sysadmin for a few years. Surprisingly, I am an MS Access fan, it is the one MS product I enjoy using. I got sick of working with computers as a job, but remain more interested than ever privately. I like to read: my favorite books are Catch-22, Dune, 1984, House of Leaves, and The Stand.
Hooka: So Koules was your first port to GP2X, what inspired you to port it?
Senor Quack: Koules was one of those games you downloaded when you first got Slackware up & running in 1996. You didn't have the huge choice of open source games there is now.. You'd get Koules, xDoom, the Abuse demo, xBill, xGalaga, lincity, and of course, nethack. I found Koules was my favorite of all and have been playing it off and on ever since. I got my GP2X in October 2006, and wanted to share this great game with the community. I really wanted to have it on the GP2X for myself, too: to this day, I play it several times a month. I picked up the K&R book my uncle had given me when I was 10 and relearned the C I'd forgotten, learned SDL (thanks to LazyFoo's tutorial and the forums/wiki), and did the SDL conversion in a month or so when not slaving away nights at a local grocery store. I was so excited when stuff finally appeared on the GP2X screen! My SDL port has now apparently even made its way onto a mobile phone. Interesting fact: I coded Koules2X using a 266mhz laptop with 192MB RAM, using Code::Blocks. Nowadays I do everything on an Athlon64 using, ironically, vim and screen.
Hooka: Did you have any prior coding/porting experience before this that helped?
Senor Quack: I'd written a few Turbo Pascal programs in my early teens, and a couple tiny C/C++ programs over the years. I didn't really consider myself a programmer, though, when I got my GP2X. But I'd read about programming off and on ever since I was 9. I understood pointers, though I didn't recall ever using one. I'd been using GNU/Linux steadily since 1996, back when you constantly had to muck around with tarballs, makefiles, autotools, library dependencies, and compilation errors all the time, even if you didn't program. So, it was easy for me to learn the ins and outs of GP2X programming.
Hooka: You did a masterful job of enhancing TileWorld while porting it to GP2X, how did you wind up getting chaozz to make new music for it?
Senor Quack: Thanks! I came back from the Appalachian Trail in 2007 aching to get working on a new project. I wanted a warm-up project and figured TileWorld would be an easy one. Oh, how wrong i was. I printed out hundreds of pages of source code, leafing back and forth through it constantly, trying to figure out how it worked. I spent all day, every day for a whole month programming and doing the "art" for it, procrastinating getting a job. I had to find a way to insert a GUI suitable for handhelds in place of the keyboard-driven menus. The 16-segment LED font is my own I created just for Tileworld2X. So much of TileWorld is drab and overly-complex, and so I wanted to greatly simplify it and make it a fun game you might indeed have played on the Lynx (the handheld Chip's Challenge originally appeared on). Chaozz very kindly provided his past library of music to the GP2X community, and I simply stumbled upon it. I also found some free-to-use chiptunes that I loved, made by the talented German musician, Am-Fm. I hope to add a greater selection of chiptunes in the next release. Perhaps even a level editor (how many times has that been said?)
Hooka: You seem to be a big fan of hiking, would you like to talk about that a bit? How does the GP2X treat ya on the hikes?
Senor Quack: I got the hiking bug in 2001 or so. Soon, I read a book about thru-hiking the Appalachian Trail. For those living outside the states, it is a trail that is 2,175 miles long and goes from Georgia to Maine, going up and down hundreds of small but often steep mountains along the way. One or two-thousand people attempt to hike the whole thing each year, usually starting in the spring, taking around half a year to finish. Only about one in four make it. I met my lovely fiancee, Joan, on the very first day and we were inseparable after that, sharing everything from a tent to a cooking pot. We started March and ended in October and now we are saving all our money to do the Pacific Crest Trail in 2010, which winds its way from Mexico to Canada: over 2,700 miles! I tried taking the GP2X with me once I got to the halfway point and was stronger, but after a few weeks I had to mail it home: When sweating up hills, you endlessly think about what you can be mailing home to save weight and the GP2X and all its heavy AA batteries was quick to go :(
Hooka: So, your a fan of the tentacle pr0n, eh?
Senor Quack: Sadly, I admit I'd have gotten a lot more done with my life if I hadn't developed quite such a keen interest in the modern Japanese hentai tentacle porn oeuvre.
Hooka: "Is this something to do with vibrators or am I just a simpleton?" -Senor Quack. Well, I'm kinda bad for this, it's not really a question, I just really wanted to work this in somewhere cause it made me laugh ;)
Senor Quack: The Pandora forums are great if you need a quick laugh :)
Hooka: Do you still use your F100 for development just for simplicity sake?
Senor Quack: Absolutely. There's two big advantages: telnet over USBnet is more reliable than serial console in my experience, and running your test apps through a SMB share is far, far less annoying than inserting your SD over and over again into the F200. I have to hand it to Transcend: they make a really solid SD card, trust me!
Hooka: Do you still intend to port CrossWords from PalmOS or Drunken Arcade Master?
Senor Quack: Ah, CrossWords, my nemesis. This is the port I've always wanted to do, I used to play it a ton on my Palm V. To those that haven't played it, it is a open-source 1-to-4 player implementation of Scrabble and the AI is very challenging. It would be perfect for the GP2X. It just keeps intimidating me, having to implement my own GUI for it and figure out how it all works. I will port this, though, you have my guarantee. As for Drunken Arcade Master, I did get it running in a GP32 emulator and could barely make out what was going on. It was truly frustrating and so I cannot say that it is likely to get done! It did seem funny and unique, though.
Hooka: Was it nice to see that A_SN beat you to the punch on porting cave copter?
Senor Quack: Wow, you know, I privately felt a bit humbled that he did it so darned fast. It was over almost as quickly as it began, very impressive! Right around the time he announced it, I was just figuring out that the GP32 had a framebuffer that was mapped sideways (at least, that is what I'd read at that point).. I'd never owned one and was completely unfamiliar with programming for it. The only thing he seemingly got wrong was leaving the player with no way to exit the game besides turning off the GP2X! Interestingly, a new feature of Open2X might allow a way around this ;)
Hooka: You said "The only thing more terrifying than flying a copter through a cave is porting a program by donskeeto", is this just a joke, or is his coding style that wonky?
Senor Quack: No, just a joke :) Donskeeto is multi-talented and generally awesome.
Hooka: So you decided to report Ur-quan Masters from scratch?
Senor Quack: To be honest, porting Ur-Quan Masters was pretty easy compared to my other ports. The main game had been updated since being ported to the GP2X (twice) and I was trying to play these older ports and having a lot of crashes and saw things I wanted to try to fix. The game already supported the GP2X's resolution and also supported joystick input, so it really was just a matter of fixing a few settings defaults and trying to boost the speed. The new codebase seemed to use less memory and so I think that helped fix the crashing. I also learned some ARM assembly to help speed up screen drawing. USB joystick support customization in UQM was a bit broken, so I had to write my own customization utility, enabling full customization of controls for both the GP2X and USB joysticks, which took a week or so to fully perfect. I also tweaked things a bit to allow smooth scaling during melee fights, a feature I find helps gameplay a lot.
Hooka: Would you recommend using tremolo to other programmers using OGG playback in their code?
Senor Quack: Tremolo is a very cool OGG decoder library written almost entirely in ARM assembly by Robin Watts. The problem with tremolo is that it triggers the sound crash bug on F200s running GPH firmware. It is truly a mystery why just changing the OGG decoding library from Tremor to Tremolo can cause this, but I am proud to say that Open2X fixes this bug so it will be safe to use within a month or so. I haven't done benchmarking between it and tremor, though, so I cannot recommend it one way or another.
Hooka: So, you're a fan of Rocket from the Crypt?
Senor Quack: It's one of those rare times you spend $2 in the bargain bin at a CD store and come away with one of your top-50 albums! Great stuff!
Hooka: Was it hard programming usb joystick support blindly? (well, with others feedback, but you didn't have a cradle at the time if I'm not mistaken)
Senor Quack: It was frustrating to me and very frustrating to the beta testers! It gives you a healthy respect for the engineers that landed someone on the moon and brought them back on only the first try! Eventually I gave up and bought a cradle and joysticks and got it working in a day or two.
Hooka: So, what's your opinion on the fascism that is GP2X Standards? (No offense meant here people I'm just a fan of do what the fuck you want -ism, especially if you're doing something for free...)
Senor Quack: I don't really have that strong an opinion against the GP2X Standards, and PokeParadox is a great guy. I just took issue with some of the GPH decisions that made their way into the overall standards, like exiting a program when a button is pushed (instead of through a menu). My own first port is guilty of this, so I suppose I should update it one of these days.
Hooka: So what all did you do to the OpenTTD port?
Senor Quack: ZodTTD did the vast majority of the work, which involved finding a way to make a game that normally uses a minimum 640x480 screen be playable on a device with a 320x240 screen. By the time I'd gotten my F200, Zod was working on other things, so I received his OK to add touchscreen support. I also added new button combos that allow you to quickly zoom the map in and out, which I find really improves the playability on such a small screen. Also added a few other minor hotkeys I found I needed when playing the game personally, like landscaping and autorail windows. I also brought the source base up to the then-latest version. I am planning on keeping this port up-to-date with more features, so keep watching.
Hooka: How did you realize that Kojote had a kid so much more before all of us? I'm gonna guess with you're a pdroms frequenter... (I try to be, but sometimes forget... sorry K0j0t3!)
Senor Quack: PDRoms is a great place to catch up on what is going on all over the various handheld scenes. One day, I visited and saw a cute baby, which is also a sort of homebrew project so I posted it on gp32x.com!
Hooka: Are you afraid that Orkie's onto your plans? (See here!)
Senor Quack: Man, if Luna Lovegod ever posts much again I'm gonna get banned.
Hooka: Aren't you just swept away with the whole Web 2.0 phenomenon? (*smirk* lol)
Senor Quack: I've never made a serious web page, but I can say with certainty that if I spent one month learning, I could make one more easily navigable and generally more useful than 98% of the crap out there. If you limit it to just corporate websites or anything involving Web2.0 crap, you can change that figure to 99.9999998% The remaining .0000002% are Google's.
Hooka: Am I kinda getting off topic?
Senor Quack: It's OK, this interview is made out of 100% recycled electrons!
Hooka: Still contemplating fixing up Wargus?
Senor Quack: Yes, I think about it about once a week. I am interested in getting music working, along with proper fog-of-war, and see if there's any quick ways of optimizing it further. Adventus did a great job with that port.
Hooka: What all have you done to help along Open2X?
Senor Quack: Recently, I've made the Open2X kernel F200-compatible. In the process, we have eliminated the annoying crash that happens with certain sound configurations on F200s. While I was in the sound code, I added a new feature we call "volume scaling": You are able to scale the overall sound volume of the GP2X up or down, and no program can override this. The Gmenu2X that comes with Open2X has a new feature that interfaces with this: you can toggle between three volume modes: Speaker Mode, Headphone Mode, and Mute, indicated by an icon in the bottom right. Speaker mode and Headphone mode each have an adjustable scaling value: 100% and around 70% by default, respectively. These are configurable through a settings menu. This makes using headphones much much more comfortable! Mute mode is just that, and fully mutes your GP2X until you change the mode again, even between resets, so users will no longer have to resort to using a cut-off headphone jack to mute their GP2Xs.
Senor Quack: I've also spent a lot of time with SDL recently.. adding USB keyboard support, overhauling the touchscreen code so it uses a lot less CPU and is also a tiny bit smoother, tapping is now a lot more accurate. I migrated it all to SDL 1.2.13, the very latest, as 1.2.9 would not allow us to dynamically link, destroying one of the major advantages we are trying to achieve with Open2X. I've also coded a few small miscellaneous Open2x things, including incorporating Alex's nice boot logo with progress bar and made a few small bugfixes here and there.
Hooka: How did you stumble upon GPH's F200 firmware release?
Senor Quack: I was just poking around their website trying to find the source release I always heard they had. I'd never actually been to their website before, so I simply thought I'd downloaded what everyone else already had. Turns out I stumbled across something very useful, I guess :)
Hooka: Who isn't down with VAGINA nowadays? It seems even a large percentage of women are!
Senor Quack: Definitely a fan of the va-jay-jay.
Hooka: So, you're not only an active dev, but also an active GP2X player! How do you find the time?
Senor Quack: Just this morning I woke up and decided to play Sleuth Slots and SqDef, then went back to bed. I regularly lose sleep to those two games. You could say I am a bit obsessed :)
Hooka: Don't we all wish we could be insulted by Exophase? :P
Senor Quack: It will be a moment I cherish. I once asked him if it was valid for a program to dereference a pointer to its stack and, looking back, realized it was probably my closest chance, it being an incredibly stupid question.. but, alas, he helped me understand instead :)
Hooka: How much of a clusterfuck was Abuses code?
Senor Quack: Well around 10% of the files distributed with the source code are not even compiled into the executable, just old DOS cruft and old code laying around. The remaining code gets patched with around a dozen assorted compilations of hundreds of patches. Then, you dig into the meat of it all and when you come out the other side, well it's like that scene in Ace Ventura II with the rhino birth.
Hooka: Are you glad with how your port turned out?
Senor Quack: One of the happiest moments of my life :) I still consider myself a newbie programmer, so it's a bit of a milestone I will always remember it.
Hooka: Did you write this? (Linky)
Senor Quack: No! Didn't read it either, haha!
Hooka: So... had any weird experiences with cruisers lately? (Go here to find out more!)
Senor Quack: Oh man I was so horrified when I found out about cruising. Such a naive 20-year-old at the time ;) One time when I was 17 and even more naive, I was wandering around with friends and really, really needed to take a leak. So, I headed into this bar with thumping dance music and big rainbow flags hanging up outside. I had absolutely no idea what rainbow flags meant, but I started to suspect maybe this was not a bar I belong in when I saw it was wall-to-wall men inside. Nothing happened in the bathroom, though, I swear.
Hooka: So, ya wanna learn russian?
Senor Quack: Unfortunately, I was busy smoking joints instead of doing my homework in my three years of Russian in high school. Ah well. Still wanna visit, though, I am fascinated by Russia.
Hooka: Are you a fan of Weird Al, or just the Amish?
Senor Quack: I consider Amish Paradise to be one of the funniest song parodies and videos ever made, he is one of my heroes. I also am very interested in the Amish, and in fact I am making my way through yet another book about them. It's called Plain Secrets and I recommend it, great reading so far. They are greatly misunderstood, and find myself surprisingly in line with their thinking. I think computers are hilariously overused and unnecessarily upgraded, both software and hardware. It's a real farce. My feelings are so strong in this regard, that I've given up almost all hope of finding a techie job I will feel comfortable with. I am planning to simply become an electrician. My girlfriend and I have considered becoming Mennonite, but I might not be able to find work in a community of theirs as an electrician! We are planning to buy land soon and build a cabin, complete with composting toilet, very few amenities, and a big garden.
Hooka: Any plans to revisit some of your old ports and add/fix anything? (I remember you mentioning wanting to make koulees use usb joysticks, but don't remember it happening...)
Senor Quack: I do, I think about it a lot, actually. It's funny, because what stops me is I don't want to make a release just for a few tiny fixes, I somehow feel releases should be a "big deal" so I keep putting them off. Now my new reason for putting it off is because I want to save all the tiny fixes for my eventual shared-library version of all my ports that will work on both the Wiz and the GP2X (and eventually the Pandora). I am waiting for Open2X to gel just a bit more before I do that.
Hooka: Any new ports incoming?
Senor Quack: Yes, as mentioned before, I will do a port of Crosswords, no doubt in my mind. I am planning to also update Crimson Fields with touchscreen support. Also in the works is bringing TTD2X up to date, moving it from 0.5.2 to 0.6.2 so we can have all the cool new features like one-way roads, tramways, drive-thru roadstops, etc.
Senor Quack: My ultimate project, the one I dream of doing but probably never can because it's just too hard, involves my favorite game of all-time, X-COM UFO Defense. When the infinitely-talented M-HT disassembled and recompiled Albion for the GP2X, it shocked me. I knew that theoretically, it was possible, but practically I thought it was not. Well, he showed that was not the case. I set about then and there learning X86 and ARM assembly because I thought that there was maybe a 1% chance I could do something similar. I don't think it will be possible at my current rate of learning, but I have another idea: Coding UFO from the ground up, using the original graphics (an extractor the end-user runs will pull them from the original game and re-package them). It would support higher resolutions so more of a map would be visible on devices like Pandora. It is something I'd probably have to do with other coders, if it was to ever get done. However, not too long ago a Russian coder did something very similar for the PocketPC and so that also shows this is at least possible, even by one person. Alas, his source code was never released last I checked. I know projects like UFO 2000 exist, but I am much more interested in a single-player experience and having multi-player be a more of a second thought.
Hooka: Yeah X-Com is freaking awesome! Anything you want to add?
Senor Quack: I'd like to give thanks to Richard Stallman and Linus Torvalds for setting the ball rolling and countless thousands of others for giving us the amazing free software and OSes we have today. They have been unbelievably generous to us all.
Senor Quack: And thanks for doing these interviews, Hooka, always enjoyed reading them myself.
Hooka: And thank you for doing this interview with me, and on that note, so long and thanks for all the shoes... err, ports ;) (It's a pop culture reference! Look up NOFX stupid!)