uXeBoy is a custom printed circuit board which draws its main design elements from two distinct sources, creating something greater than the sum of its parts:
1. uXeBoy takes its shape and size from the front 'daughterboard' of the original GameBoy, which means it can be easily installed in a GameBoy shell as a direct substitute – it is directly compatible with the already existing parts for the plastic buttons / rubber contact pads, and lines up perfectly with all of the mounting posts and screw holes inside a GameBoy.
2. For its circuitry, uXeBoy uses modern surface-mount components to replicate the design of a NES control pad. Based on an 8-bit 4021 shift register, this design allows the on / off states for eight separate buttons to be easily transmitted using five wires. The 'NES control pad' interface standard is well-defined, well-documented, and makes the uXeBoy board instantly compatible with any commercially-produced or open-source-hacked piece of electronics that has ever been attached to a NES controller.
Project Details at http://pozible.com/uXeBoy
Follow on Twitter at http://twitter.com/uXeBoy
E-Mail to uXe@uXeBoy.com
Now for a demonstration! Here is a video of the uXeBoy connected to a Raspberry Pi – at this point I would like to acknowledge all of the hard work previously done by the 'RetroPie Project' that made this demonstration so easy for me to do. Firstly, by having an excellent guide to follow for getting NES emulation up and running on the Pi. And secondly, for the 'RetroPie GPIO adapter board' – I deliberately designed the uXeBoy's pin-out to match the pin-out of this GPIO adapter board, so that connecting the uXeBoy to the Raspberry Pi is a simple matter of connecting both boards with a common 10-pin IDC ribbon cable!
This is just running the default Raspbian distribution from the Raspberry Pi downloads page, so with a little work it could definitely be optimised for a faster boot-time (check out the Marshmallow Entertainment System, for example). The RetroPie project covers much more than just NES emulation, and allows for a good range of games and emulators to be run on the Pi – playing DOOM on the uXeBoy was definitely a new experience for me! The GPIO adapter board provides circuitry protection and a simple interface to the Pi's GPIO pins – but it is also possible to bypass the adapter altogether and make your connections directly to the GPIO pins if desired. Either of the two different software options provided can be used for driving the interface – SNESDev-RPi is a 'user-space' application which translates the GPIO input as a virtual keyboard, while gamecon_GPIO_RPi is a 'kernel-space' driver used to read the GPIO input as a joystick instead.
I have installed a 2.5" LCD display in to the GameBoy shell, and with a little modification there is also room for a 3.5" LCD. Small screens are available in abundance these days – usually intended for use as a 'car reverse camera LCD' which you can disassemble for parts. However you also have the option of buying just the bare LCD and a controller board – which takes some of the guess-work out of waiting for a complete screen to arrive before you can take it apart to find out what is inside! Another possibility is to drive an LCD module directly from the Pi's GPIO pins rather than using the composite video output. As you can see, my own project is still in the prototype / 'on-the-table' stage with the Raspberry Pi sitting outside of the GameBoy shell – but there has already been quite a lot of effort made and different perspectives shown on ways to fit the Pi inside a GameBoy: