The two main aspects which let me realise this project the way I did were
- multi-player support
I wanted the system to behave like a console, which means that you only have to plug in the power cable, video/audio connections, gamepads and press "on".
After a short boot up (1 - 1.5 minutes) a selection menu is presented to the user where it is possible to choose the system to be emulated. When the system has been chosen, a list of available games is shown. A keypress of gamepad 1 will start the emulation.
To return to the menu, one only has to press the "exit" button on top of the ArcadeBox.
The ArcadeBox itself consists of the following elements:
- aluminium case
- eeePC 701 4G
- 80GB external harddrive
- 2x 4-way USB hub
- 2 fans (usb-powered)
- video signal converter (usb-powered)
- modified gamepad (to handle command buttons)
- command buttons ("on", " exit", ...)
- various small parts (metal clamps, screws, ...)
Additionally, there are 1 - 4 external gamepads and various cables for connection.
I wanted the eeePC to stay as it was. This means: no drilling, no replacing of components, etc...
The only thing I had to do was to unscrew it and attach 2 cables to the power-button of the netbook's main board. Because of the arrangement of the elements it was not possible to implement a mechanical solution (e.g. a stick that goes through the casing and touches the power-button).
Since the eeePC 701 uses it's keypad as a radiator, it was necessary to prevent the netbook's lid from closing. There are two conic stoppers mounted beneath the screen (picture 5).
All components that need power are supported by the netbook's USB ports. This includes the video-signal converter, the two fans and of course a maximum amount of 4 gamepads + 1 modified built-in gamepad as an interface for the command-buttons.
I tried to offer as many different external connectors as possible to guarantee that the ArcadeBox can be attached to a maximum of different devices.
On the audio side, one can choose between a stereo phone-jack or cinch adapters.
For the video signal, there are composite-video , s-video and VGA available. Interestingly, it is possible to connect all three of them to different devices and get an output on each of them.
The original VGA signal that is outputted by the netbook is converted by a 30$ (ebay/hongkong) video-signal converter. It does a good job.
I always liked the way old electronic devices are labeled everywhere inside in case of reparation. So, I did the same, in case anyone else than me has to take a look inside the ArcadeBox.
Since one of the main aspects of the ArcadeBox is it's portability, it was only logical to use a carrying case to house it's components.
The aluminium case I used has just the right size and enough free space inside to allow a substantial airflow to prevent overheating.
It is very sturdy (perfect for transportation) and assists the soft-retro like look I tried to accieve.
Each command-button and connector is captioned by an old mechanically generated "office-lable-sticker" (see picture 2). I really like the looks of it.
Additionally, the fans emit a soft blue light which looks quite cool when the room is darkened.
As much as I would have loved to use Linux for this project, I had to fall back to Windows XP. The reason for this is that I needed very good support for the eeePC's hardware-acceleration to be able to emulate newer consoles.
To avoid wast of precious system-ressources, I stopped explorer.exe from loading as shell. Instead, a *.bat file with a list of commands to prepare the system is executed. I was quite surprised to find out, that one can use a batch-file as shell. :-O
A special software is used to assign keypresses of the command-buttons ("load", "save", "exit", ...) to corresponding keys (e.g. "exit" = ESC-key) or commands.
The frontend I use is AtomicFE ( http://www.atomicfe.com/EN2/ ).
It supports different skins and is easy to configure.
The configuration of the emulators was quite a hassle. I had to standardize the input keys of different emulators to a certain extent (load, save, start, ...). Until now, the "load" and "save" buttons don't work for all emulated systems. But then again, one would not need the possibility to save for certain systems.
Also, some emulators deactivate a pre-configured input-device when it is not attached. For example, if you would use the ArcadeBox with only one gamepad attached and next day, you would want to use all 4 of them, the emulator would not recognize them until you would do a reconfiguration.
The solution to this problem is quite simple: you just have to locate the config-file of the emulator and make it write-persistent. Another methode would be, to reset the settings by a batch-file which is called at boot-time.
To allow easy care of the system, it is possible to reach the LAN-port of the netbook from outside the aluminum-case. When a lan-cable is attached, it is possible to access the system with a VNC-client (a VNC-server is always running on the ArcadeBox).
Also, for each installed emulator, the roms directory is accesible as a windows-shared-folder.
Things I would do different next time
I certainly would rethink the aligment of some of the connectors. For example, it just does not make sense to plug in the audio/video cables and the gamepads on the same side.
Also, since the power-cord has to be plugged-in at the back-side, is is not possible to use the ArcadeBox when it is positioned standing upwards.
The fans are weak-points of the casing. As I could see, only one fan of this size would have been enough to deliver a sufficient airflow.
It has been a great project which I was very satisfied to see turning out so well.
The ArcadeBox is not heavily-used, but when it is, it's great fun for all players. :-)