Friday 10 May 2030

Introduction

What the hell is a Pixbox? This is the project of a geeky developer (myself) who wanted to get his hands on one of those fun little credit card-size computers - but not knowing what to do with it -, who dreamt of having an arcade cabinet - but not having room to store it -, and who had a 5 year-old at home and wanted him to discover old-school video games.

The Pixbox is a Beaglebone Black-based 2-player "arcade stick", embedding several emulators tuned for the project, and a custom-made launcher. The aim was to emulate up to the 16-bit generation of consoles. I ended up with the following systems being emulated:

  • Arcade: with AdvanceMame. Not totally satisfying, a bit slow, but functional for several games
  • Gameboy: with AdvanceMess, works great
  • NES: with AdvanceMess, works great
  • Game Gear: with AdvanceMess. Blue-ish picture, but fully functional
  • Master System: with PicoDrive, works great
  • Genesis/Megadrive, Sega CD/Mega CD: with PicoDrive, works great
  • Super NES: with snes9x. Works fine on some games
  • NeoGeo: with gngeo, works great
  • Playstation: with Pcsx-rearmed, works great given the lack of hardware acceleration
  • PCEngine: with Hu-Go!: Work in progress, but already playable!
I hope this blog will help save time for fellow developers working on Beaglebone, Raspberry Pi and other systems. I intend to share the steps I have taken, and how to make every piece work as intended, from adapting/compiling emulators to developing the controls - and more!

Here are a few photos of the final steps of the projects.




The GUI...


And a video I recorded to send a demo to friends. Do not expect many comments...



Here is a list of the steps I followed and tried to expose in this blog:

  1. An OS for my 'Bone
  2. A word on the file system
  3. Building the compiler and a few essential libraries
  4. Turning the Beaglebone Black into a joystick controller
  5. NeoGeo emulation: gngeo
  6. Megadrive/Genesis, Master System, MegaCD/SegaCD, 32x emulation: Picodrive
  7. Super NES emulation: snes9x-sdl
  8. Arcade emulation: AdvanceMame
  9. Playstation emulation: pcsx-rearmed
  10. Misc. emulation: AdvanceMess
  11. A custom launcher 
  12. Misc. configuration
  13. PCEngine emulation: Hu-Go! [WIP]