Saturday, September 13, 2008

Firmware: Developer Release 4 (F100)

Finally, it is out!

To be honest, I can't actually remember what I have added over the past 8 months. There has been so many new odds and ends and I did a lot of the foundation work for DR4 right after DR3 was released. See the last newsletter for an outline of the more interesting new features since DR3.

Oh, and our code is now in sync with the official SVN for GMenu2x again, so any binaries you build from there should run as an Open2x binary on Open2x (with the extra settings menu) or a GPH binary on the GPH firmware.

An F200 release will be coming later today. It is pretty much at the same stage as the F100 version, except I need to fix the calibration tool before I can release it.

Monday, July 28, 2008

Open2x newsletter #3

F200 supportSenquack recently discovered that GamePark Holdings had made a sneaky source release of 4.1. This included for the first time, the menu code along with the normal kernel source which has some interesting bits of code such as serial number reading and enabling TV-out correctly (I'm hoping to roll these functions into a dynamic library to be included in the firmware itself). Senquack then managed to merge the F200 code from this new 4.1 kernel into our own kernel tree and it seems to work perfectly now on all GP2Xs! After further testing this will be added to SVN. So it looks like the initial public release of the firmware will include both F100 and F200 support.

New library and kernel interfaceAs many people will be aware, we have a /etc/open2x file which tells you which version of the filesystem you are currently running. I am hoping to be able to take this a little further soon and work has started on a /proc or /dev driver which will let you read out various static pieces of information about the system itself. Although I cannot guarantee anything yet, senquack may be able to hook up a programming interface to let one globally mute the speakers and set the maximum volume (as the GPH firmware can through the menu).UPDATE: This is now working

DR4I don't normally do this because it is a pain working to deadlines, but I have decided to set one for DR4 because it is virtually finished anyway and has been dragging on for ages now. The date we are going to try and work towards is August 10th. After this date, the core components of the firmware (i.e. the libraries and the kernel) will be frozen until a public release can be made (then of course I'll start looking at new features again). So if anybody has any patches lying around or wants any applications bundled please send them in well in advance of this date!

Tasks that need to be completed for DR4:

New GP2X hardware library

Kernel info driver

Userland side of touchscreen support (tslib, calibration and SDL 1.2.11 support)

Friday, February 22, 2008

Open2x Makefiles

I've adapted the GBA Makefiles from devkitARM to work with the Open2x toolchain. They are very clean, and I thought it'd be nice to have them around so that new people don't have to faff around writing their own. It may also help people release dynamic binaries when a public release of the Open2x firmware is made.

There are two Makefiles included. 'Makefile' builds a dynamically linked binary suitable only for use on Open2x and 'Makefile.gph' builds a statically linked binary, which can run on any firmware (but is really meant for GPH only).

To install, simply copy the 3 rules files to /opt/open2x/gcc-4.1.1-glibc-2.3.6 (or wherever you have installed the toolchain) and create a copy of the template directory to use as your project directory. There is a 'LIBS' variable in each Makefile (line 40) to which you need to add your -lwhatever statements to. If you want to compile C++ code with these Makefiles, you will also have to add a CXXFLAGS section, which will normally be the same as CFLAGS.

Wednesday, February 20, 2008

Firmware: Developer Release 3

I've finally made a third developer release of the Open2x firmware. This is a translational release between DR2 and a release candidate for a final public release. As far as I'm concerned, the filesystem is pretty complete and the kernel is in good shape.

New features in this release are plentiful. For one thing, the latest SVN version of GMenu2x is being used, which has a new 'Explorer' option so you can run applications without first creating a shortcut if you like. I've also added a new Open2x settings menu into GMenu2x to enable such things as USB host and USB networking on boot (as well as configure them). I will be uploading the code for this soon, but if you really need it now just contact me.

And that leads nicely onto some other new features thanks to working USB host support. USB mass storage and HID have been tested working thus far (you need to select the 'Mount EXT' icon in GMenu2x after inserting a mass storage device). Other USB drivers have been included but I know very little about them so they may not be complete and they certainly haven't been tested (Bluetooth should be in there, along with several USB ethernet devices).

Several applications have been integrated into the firmware, with more to come in future releases. Currently we have a file manager (Enexfi), video player (MP2X) and an E-book reader (Greader2x). Any suggestions are welcome (particularly for an image viewer), but they must be open source so we can recompile and distribute them with the firmware.

The base filesystem now has up to date libraries but I've had to compress them which adds a second or two onto the boot time of DR2 (still less than the GPH firmware and will be corrected with the next release).

Once the new features of this have been tested, I'll move on to DR4 (which I've already got plans for, but more on those closer to the time) which will be a release candidate of sorts in itself.

If you want a copy of this release, please contact me in #open2x on FreeNode (IRC).

In other news, I've found a way of clearing the fake bad blocks off the NAND without touching the bootloader so all those problems caused by 3.0 downgrades should soon be a thing of the past! I'm going to work on a dedicated NAND claner which may be integrated into the next Open2x firmware installer.