Orkie's Interview

Hooka: When did you get your GP2X?


Orkie: April 9th 2006, my birthday.


Hooka: What was your main motivation for getting one?


Orkie: I came across a news item about the XGP somewhere and looked into it more. It turned out that the XGP hadn't been released and the GP32 was no longer being made, so the GP2X was interesting. Back then I used to be more into emulators, so it looked interesting (now I just play everything on the actual machine and my GP2X is used for development).


Hooka: Was there any main motivation for getting an X11 server running on GP2X or was it just to prove it was possible?


Orkie: I was reading a thread on GP32x (before I'd ever actually posted) and saw somebody had asked if it would be possible to have an X server on the GP2X. The general consensus in that thread was that while it would be possible, X is huge and anything you tried to run on it would be extremely slow. I used to run Familiar Linux with GPE on my iPAQ 3600 (back when they were made by Compaq who always seemed quite willing to help out with the Linux port) and I knew that it had an X server which ran perfectly on a 200MHz ARM with 32MB RAM. I downloaded the X IPK, extracted it and managed to get it to run on the GP2X and saw it only used about 5MB of RAM and very little processor time.


Orkie: There are loads of things that are designed to work with X that can be ported over for the GP2X and would work very well, and I wanted to see if more useful applications would appear if I released it with mouse support. So far, only GPE and GP2Xpdf use it, which I think is a shame because people still hold onto the misconception that X is too big for the GP2X, and it clearly isn't since GP2Xpdf is the fastest PDF reader by a long way. I also thought it'd be interesting to try and use the GP2X as a complete Linux PC using the USB host combined with a mouse and keyboard (GP2X11 has supported these for nearly a year now).


Hooka: Was it quite complex to get the GP2X controls acting like mouse input for X11? Are you planning on improving it? (it's alright, just kinda iffy on anything non-diagonal)


Orkie: The hard part was that I had to understand the entire Kdrive mouse subsystem before I could write my own driver (obviously not counting the gpm hack which was very messy). Once I knew what I was doing, it wasn't too hard to write my own driver based on another (the touchscreen one) to put movement values into the appropriate structures within X. I'm aware of the joystick being a problem, but that is due to it being my first experience of working with the GP2X and I didn't really understand how the joystick worked (when I get around to a 1.0 release, it should be much better). There is also the potential touchscreen that was posted on gp32spain and GP32x which I'm interested in getting hold of and adding to X if possible.


Hooka: Is there any particular reason that gpm seemed to be such a resource hog?


Orkie: It basically hogged all the the CPU time. It has a main loop (like games do) in the code which keeps it polling for mouse changes repeatedly but inside this loop there is no opportunity for the kernel to switch away from the dæmon and do some work for the X server and applications. This meant that it was trying to allocate an equal amount of time for all 3 but gpm doesn't really need that much processor, so it had to go and I wrote a proper driver directly into the server.


Hooka: How much of a real difference did getting rid of gpm make?


Orkie: I'm not too sure really since we used it for so little time (and there were no X applications back then). It certainly freed up a fair amount of memory (2MB+) due to the fact it was statically linked (as everything on the GP2X currently is) and I reckon X applications run faster without it than with, but like I said before, there were none to test with back then and I don't intend to go back and start testing it now.


Hooka: What kind of GPE Speed Tweaks used to be here (http://x11.gp2x.de/wiki/index.php?GPE%20Speed%20Tweaks) or are they irrelevant now?


Orkie: You can still see them at nemonoid's site (http://darxr.net/gp2x-gpe/) and they are still useful (GPE runs significantly better off an ext2-formatted SD card than in it's loopback image). The GP2X11 wiki got taken down after EvilDragon's server got broken into or something, and he had to wipe it and copy everything back on. The wiki didn't survive this because I'd set a wrong value in the config file, and it would've been too much effort to recover the information (when very little was stored in it anyway). You've reminded me about it, so I'll delete the old files.


Hooka: Are you still working on GP2X11 or have you taken a small hiatus from it?


Orkie: I've mostly been working on Open2x and a GBAX 2007 entry recently, but I did set up the X tree so I could compile it again a few weeks ago, and I will be fixing bits of it, like the mouse driver, and also trying to get full resolution TV-out support to work (pcklee123 has done some experimenting and has found that if I were to migrate to Xsdl rather than Kdrive, this would 'just work') for a 1.0 release sometime after Open2x is out.


Hooka: So, it seems you have a couple qualms with the GPL, would you like to clearly state your case here so that the next time some in-Duh-vidual (credit to Scott Adams for the creation of that word) gets all bent out of shape you can just point them here? (personally, I'd like to have more knowledge on the subject so I can understand it better)


Orkie: My problem with the GPL is the single restriction on linking. It says that if you link to GPL-ed code, regardless of whether it's dynamically or statically, your program must also be released under the GPL. This seems like an awful waste to me and something that has been added to try and force everybody to use the GPL over other licenses which the FSF describe as 'not free enough'.


Orkie: An example of this is libmad. It's an awesome fixed point MP3 decoder which in the case of the GP2X can make the difference between terrible quality when dedicating the entire processor to it and MP3s playing flawlessly with a game running in the background. This would be great to integrate into SDL_mixer for example, so everybody can use it. The problem lies in that libmad is released under the GPL. This means that if I were to release an application under the BSD license, it wouldn't be able to make use of libmad.


Orkie: This seems to be a waste of effort to me, and while I can see why you'd want the code for the library itself to remain open there is no need to force everybody to use the GPL. It is a campaign on the part of the FSF to shove the GPL down everybody's throats. It is my opinion that while the GPL is fine for applications (which aren't linked to), all libraries should use the LGPL or something that allows even more freedom (since the GPL clearly isn't 'free' since it imposes many restrictions upon the code's use) like the MIT license. People quite frequently tell me "if you don't like it, nobody is forcing you to use it", but in the case of libmad, there is no other alternative that I have found, and most people don't have the knowledge needed to reimplement the entire thing themselves (which would be a huge duplication of effort).


Orkie: The whole thing with binary kernel modules being disallowed with the GPL also irritates me. The way I see it is, you either get the drivers released as closed source modules, or you get none at all - I'd much rather have a potentially buggy closed module which lets my hardware function to some extent than no module which means my hardware is a waste of space.


Orkie: You can't and shouldn't force people to release their code under a specific license and if you believe source code should be free, release it for free, not under the GPL.


Hooka: Are you still working on the package manager for GP2X?


Orkie: Not currently, my time is spent on other things as I said above, but I would like to find time to get it going again. Though I did get a good response from many people, an equal number of people seemed to take a disliking to the idea and decided that if work were continued, they wouldn't be able to arrange their SD cards as they liked, which is nonesense, but it did put me off a bit at the time.


Hooka: Will there eventually be a repository for when the package manager is complete?


Orkie: If/when it is complete, it'd be great to have one but I've not really planned that far ahead. I was talking to somebody else a while back who was working on a similar thing and planned to get it online, but I've not heard anything since. There is a small collection of packages at the GP2X Standards website (http://gp2x.projectinfinity.org.uk/news.php), which people can add to. It's very simple to make new packages.


Hooka: How/When did you or DJWillis get ahold of each other, leading to your participation in Open2X?


Orkie: Many months ago, I was using buildroot to make my own custom firmware based around uClibc and BusyBox and torpor was helping me to get things booting on my GP2X. He recommended I talk to DJWillis about it and start working on an Open2x firmware instead of my own, so I did and now I'm working on Open2x :).


Hooka: Are you doing any other work on Open2X, or are you just the X11 guy?


I'm not just doing X, it's is just in there because I happen to have ported it and since GP2Xpdf uses it (and I want to include that) it needs to be. Maybe people will be less reluctant to port using X when it's built into the firmware?


Orkie: I do a lot of other work on Open2x as well, the entire base filesystem image has been assembled by me partly using buildroot and partly manually. I have done some work on buildroot (which I intend to continue once there is a firmware release) which will eventually make compiling a custom firmware on Linux as easy as going down a list and selecting what you want included. I have also made compat which lets you return to the original 2.1.1 firmware if something doesn't work in Open2x (which should be a very rare occurrence). I've also been patching GP2XMB to remove some of the things that aren't appropriate (like user NAND access) and adding other Open2x-specific options (like USB networking). Then I've been recompiling some libraries like SDL_mixer to add useful things (tremor for SDL_mixer's ogg playback).


Orkie: I won't go over everything I've done/got planned here, there is a thread on GP32x about it: http://www.gp32x.com/board/index.php?showtopic=36010


Orkie: It will be released after my exams, very likely sometime this summer (still having kernel/module problems when I build them) and should offer the same features the GPH firmware has to start with.


Hooka: "And in my personal experience, I've found religious people to be the least tolerant of any group towards other people's views..." -Orkie: I have to admit I really like what you said here because I have personally experienced the same thing in my life. (Sorry, it isn't a question, but you could treat it like one if you want to)


Orkie: Well, I have since found exceptions to that, but I do think that for the most part it's true. If they believe something, in their mind the view is true by definition.


Hooka: I noticed some mention about your own OS, would you feel up for divulging a little more information on this topic, or is it still just a whim?


Orkie: It's just a little project I have which I work on from time to time for the PC. I always wondered what went on inside an OS, so one day I just decided to try and write one. It's not very useful since I only work on it for about a day every year, but it does have a simple C library for text I/O. I need to work out how to read data from disk at some point, then I can finally get it launching programs.


Hooka: So GamePark's Bankruptcy is a scam, could you elaborate on this a bit? (You're probably right here too)


Orkie: It's just a theory, but it seems a bit fishy to me that the company should split yet both halves are owned in part by the same person. It sounds to me like GamePark started to run up debts and started a new company (GPH) so they could continue after they were eventually forced to close down. It is odd also that after the success of the GP32 had been decided by the open SDK (which they seemed to be aware of) that they should then close the next system, unless they intended to fail and just needed to announce a product to give the impression of attempting to pay people back. Then of course they changed their mind and decided to release an SDK, but it was too late.


Hooka: So, DaveC huh? (in anywhere else other than the GP32/GP2X scene, that wouldn't be a question)


Orkie: Heh, he does moan far too much when things aren't exactly as he likes them and needs to start offering some unconditional praise from time to time instead of always having a 'but'. Stopping complaining about developers wasting their time on something that can never be full speed would be nice too ;).


Orkie: There is a bad attitude in the GP2X community towards anything other than emulators and even then, the emulator authors often get attacked for releasing something which isn't perfect. This is more common now than when I first got my GP2X. People have been told the GP2X is good for emulators and so are under the impression that they have a right to them. Not a week goes by without developers being told what they should do or that their current project is a waste of time.


Orkie: There is also some complaints from time to time about a lack of commercial games, which could be attributed to the fact that many in the GP2X scene are very strongly against paying for anything. I spoke to one such pro-piracy, 'free software' obsessive the other day who seemed to think it was his right to pirate stuff because they were infringing upon his freedom apparently by not releasing the thing under the GPL. The sad thing is, he really believed what he was saying... Then there are the people who come onto IRC and demand help, threatening to sell their GP2X if they don't get it (I know EvilDragon had a problem with one such person a little while ago). They genuinely believe we'll be upset if they buy a PSP :D.


Orkie: I think people should check what they're saying and how they've phrased it before posting suggestions and many people come across as being extremely rude and demanding and quickly fall out of favour with developers. I know several people have left the community purely due to the attitude of these people and that (combined with the annoying ROM collectors) have caused others not to move on from the GP32. People need to spend some time and realise how much work goes on behind the scenes to get them releases all the time. It is only done because it's fun so if it no longer becomes fun to write stuff for an ungrateful community, they leave.


Hooka: Would you like to elaborate on your ideas of using the kernel to mount zips for use in emulators? That sounds kind of interesting...


Orkie: I got sick of people complaining about the lack of zip support in emulators and ROMs taking up too much space. While I still don't agree there is a need for complete sets of games for every single system possible, I thought it'd be something worth pursuing, particularly since it's not just useful for ROMs, but any program which has lots of tiny files that take up more space than they need, due to the block sizes in FAT filesystems. By packing the entire thing into a single file, you can save a lot of space and transfer time. I've done something similar with the entire 2.1.1 firmware for Open2x which will let you switch over to the original firmware (using the Open2x kernel) by selecting an option from the menu.


Orkie: You may have seen that vimacs recently released a version of Egoboo which was packed inside a cramfs image for the compression and the way it can be mounted as loopback to allow the files to be accessed in the normal way (i.e. no special code is required). It's not a coincidence that this is the exact same method I use for Open2x, since I suggested he should try cramfs. The disadvantage of cramfs is that it's read-only, so you have to use some clever mount --bind tricks to store config files outside the image.


Orkie: I'm still undecided how to go about doing this in the Open2x firmware (and it certainly won't be in the first release). It is possible to mount zips using the FUSE filesystem driver (lets you write user-mode filesystem drivers that link into the kernel via FUSE)  and a user program to handle zips, however this will require a fair amount of patching for the kernel and some new programs to be written to handle the mounting. I am wondering whether to use cramfs instead as it offers compression which is just as good, and it should be possible to whip up a program for Windows/*NIX which packs files into an image. Cramfs will also offer faster access times than using zips.


Hooka: Noticed you picked up a GP32 off the GP32X forums marketplace, how do you feel about the older (almost sibling I guess) of the GP2X?


Orkie: I like it a lot, it's well worth picking one up if you get the opportunity at a reasonable price. It's much less angular than the GP2X and more comfortable to hold. The battery life is also much better than the GP2X, even massively overclocked and it has a proper volume dial instead of the stupid buttons. I much prefer the joystick too since it has clearly defined directions. Everything about the hardware just seems to be slightly higher quality than the GP2X's (the only downside being that it takes SMCs).


Hooka: The Tits! The Tits! One of the more comfortable features of the GP32, those lovely two bumps under the trigger buttons.


Orkie: There is also a lot more homebrew games for the GP32, which I like. Since it runs it's own software for the base system instead of Linux, it is harder to port things which encourages people to write their own things from scratch. I don't like the almost exclusive emphasis on emulation on the GP2X. Threads regarding emulators can extend to hundreds of replies, where homebrew releases are lucky to gather more than 10 comments. The scene has probably got bigger and more and more rude people are arriving and are only interested in emulators (in #gp2x on EFnet we deal with several of these a week expecting to be given ROMs and have regular emulator updates). My favourite homebrew games for the GP32 from those that I've tried are probably Battleships 32 (which is quite funny) and Cave Copter (which is just a good game).


Hooka: Are you glad that they decided to allow for GP32 submissions to the GBAX2007 compo?


Orkie: Yes, though I'm not sure if there will be any entries. It would be nice to get some new stuff for the GP32 as it's still a great platform for homebrew releases.


Hooka: So your birthday is April 9th? Happy belated birthday! (Wow, that sounds stupid after the answer above :D )


Orkie: Thanks.


Hooka: What kind of games did you submit to the Crap Games Competition that weren't allowed? Do you still intend to release them?


Orkie: One of them was a sequel to the Stairway to Heaven, Highway to Hell but it was disallowed because that engine has never worked on nickspoon's GP2X and he couldn't be bothered to fix it ;). The second was a command line guess the number game to be played via serial or telnet. I've no idea why that was disqualified.


Hooka: Are Exam's all finished for you now?


Orkie: Nope, I'm currently doing AS levels (first year of non-compulsory education for those outside England) and still have several coming up in about a week and a half (French, statistics, chemistry and physics).


Hooka: What inspired you to make Burokku?


Orkie: It was originally intended to be an entry for the official contest last year, but when they released the rules and there was the confusion over ownership of entries, forced contacts with GPH-decided royalties, I decided to not enter it and release it myself.


Orkie: The idea came from Tetris Attack on the Super Nintendo but there was no point creating an identical clone as (and this is always the case on the GP2X) that would be a direct competition against an emulated game, one which I would probably lose so the way in which you break blocks is different (you need to get 4 of the same colour touching in any pattern). I know this competition with emulators is a concern for nickspoon and his Kuru Kuru Kururin-like game.


Hooka: Does Burokku actually mean blocks in Japanese? (I think I read this on the archives...)


Orkie: Yes, I'm rubbish at coming up with names, so I just translated a word that describes what the game is about and found one that didn't sound too bad :).


Hooka: Who is White Star Productions?


Orkie: It is the name of Sonistar's 'company' (I believe he is going to be renaming it and officially registering it as one at some point). His work mostly consists of videos and flash animations (his first got on the front page of Newgrounds) and he did testing for me. http://www.whitestarproductions.co.uk/ is his website.


Hooka: When are you estimating a release date for?


Orkie: Not sure yet, the game has been rewritten from scratch since the demo and pretty much all the bugs are gone. Don has made some good music for it and Khato has finished off the world map for me, so it's just a case of adding the final few features and getting it out there (need to add a little more to the stage mode and a simple top score system). It isn't going to be an 'epic' game with 101 different games, as I'm concentrating on getting the core game instead of adding lots of stuff nobody will ever use, but it is in my opinion significantly better value than most mobile phone games which retail for about the same price (it's going to be about £3).


Hooka: Is there anything I might have forgotten about?


Orkie: We need more people in #gp2x on EFnet - the place is always dead!


Hooka: How did you come up with the nick Orkie? and who is that boxing penguin? Looks like Tux ate too many Wheaties...


Orkie: Can't really remember how I got it, I've always used it. It's the one name I've actually managed to make up :). The penguin is indeed Tux, Larry Ewing has a collection of pictures that he drew on his site and that is one of them. http://www.isc.tamu.edu/~lewing/linux/


Hooka: Heh, same guy who made the penguins I used for toholl's interview (specifically a banner I think...) Thanks for doing the interview, and keep up the awesome work, I can't wait to see an Open2X release!



Made with Namu6