News update:
Sorry we haven't had a release quite yet, we are darned close. I moved March 1st, into a place with no internet for a month and so have been using the library to get on the Internet. I am not allowed to steal wireless at this new apartment but we'll see if I can sneak a way. There was a small bug found in the volume stuff, so things got delayed a bit as I found and corrected it.
Now, the good news: I have a lot more free time this month because our factory is so slow with the economy the way it is. All this week I have spent about 16 hours a day coding new features and I have some exciting stuff 100% finished that I didn't think I'd have done:
TV Tweaking Daemon:
Frustrated that the GP2X's TV output often leaves the image hanging off the bottom and side of the screen? Well, I have fixed this for 90% of GP2X applications. I altered the tv chip's linux driver to allow a separate backdoor daemon to tweak the image while programs run. I added new per-application settings into GMenu2X to allow adjustment of the X and Y TV image offsets, as well as adjustment of the X-axis and Y-axis scaling (12%-200%). You can tell the daemon to tweak continuously every x seconds or you can tell it to just tweak once and then terminate.
The only applications this doesn't work on are some SDL apps that used Paeryn's library together with double buffering. The reason this doesn't work is because Paeryn's library resets the scaling registers with every buffer flip and there's no way to compensate for this. Some of my ports are affected by this (Tileworld2X, Koules2X), and some aren't. I will be releasing an updated version of SDL that fixes this behavior, and also hopefully releasing updated versions of my ports that use this newer SDL. Most SDL applications do work, however. Any that used Rlyeh's minlib are guaranteed to work, things like Picodrive, for instance, greatly benefit..
Application killer / GMenu2X relaunching daemon
Can't decide if I'm more excited about this or the TV daemon
Ever have an application crash and leave you with a frozen screen or no way to exit? I have fixed this! I altered the Open2x kernel to continuously monitor if a specific combination of buttons is pressed (L+R+A+B+X+Y+VOLUP+VOLDOWN). Before GMenu2X launches a program, it makes a list of all the processes currently running. After that point, if you press the reset button combo, the kernel will instantly kill off everything not on that list of processes (using an unblockable KILL signal), then a separate daemon will detect this state and relaunch GMenu2X after a small delay. Unless something hard-freezes the GP2X or screws up hardware in someway, this should always get your GP2X back to a usable state.
This stuff is 99% complete, BTW. Just gotta package it all up, I swear it won't be too much longer
The thing that I haven't started yet that I am excited about and want to mention:
Complete control of the GP2X from a USB gamepad. I am pretty sure I will be able to get this working. The pieces are in place, but a userspace daemon and configurator needs to be written.