Posts related to console / hardware hacking and homebrew software development.
One-and-a-half Xbox360 hackers
Yesterday, I was sitting around and pondering whether to implement some kind of NAND filesystem support in XeLL. After all, there are people out there who would like to boot a Linux kernel without having to attach a USB storage device or insert a CD-R.
On the other hand, XeLL should actually be ported to
libxenon
, a hardware abstraction library
for the Xbox360 hardware, which is desperately lacking developer attention as well.
Now, I am only one person, but there are so many missing features. And by
missing features I actually mean "things one could rip port from other
OSS projects".
The idea of libhomebrew
And that is where the idea enlightened me. Every homebrew-on-$HARDWARE
project so far was redoing the same things:
hack the hardware (optional)
write drivers for hardware components
create a library containing/wrapping all the drivers and a libc
port libraries with additional functionality (like MP3 playback and JPEG decoding)
port libSDL ;-)
write apps!
Now, steps 1. and 2. are of course specific to $HARDWARE
. Step 3. is often
based on how step 2. was performed, but it does not have to. The following
steps however could be easily abstracted away from the actual hardware,
even though currently, they are redone countless times.
But do we really have to redo them for every new platform?
One lib to rule them all
Instead, we could just create the one homebrew library, libhomebrew
. It
would contain a basic set of functionality, ports of commonly-used libraries
and of course HAL
backends for all supported platforms.
Everybody in the homebrew scene would profit from this:
homebrew authors could do write-once deploy-everywhere development.
platform hackers would profit too: instead of porting SDHC drivers or libmad to yet another console, they could just add a
libhomebrew
HAL backend for their hardware, automagically gaining all the libs (and many apps).library maintainers could integrate
libhomebrew
support into their libs, without the fear of creating a forest of hardware adaptations.
*yawn* This is all old news!
Of course, this is nothing I could file a patent for (I would not blog it if it was ;-)). The basic idea already exists for decades in many different implementations, however not in such a homebrew-centric way so far.
The three projects most similar to the presented idea are:
The Linux kernel is exactly that, plus a huge pile of bloat completely superfluous for console homebrew.
ScummVM is an adventure game "emulator" with a large set of platform backends.
devkitPro provides homebrew toolkits for several different platforms, but no common hardware abstraction as far as I could see.
Progress of libhomebrew
So far, all there is is a libhomebrew
wiki
page on the free60 wiki. After all, I am
only one person with a full-time job not related to homebrew in any way.
However, I hope to find some interested developers who are tired of re-writing drivers and porting yet another lib to their favourite platform.
Contribute or at least spread the word!