whitebox as in gallery, pixel as in video game
the whitebox is a special-purpose computer build to preserve and expose the history of console video game design. this project also revolves around the idea of educated criticism; it aims to facilitate a dialogue between the understudied history of the medium, the general public and future video game designers.
this gaming machine allows you, or in this case me, to curate selections of video games and present them to the public under the theoretical umbrella of an art exhibition; with whatever credibility that tired concept adds. with this setup you can for example: offer the public every unlicensed game made for NES to play with, or a selection of all the work made by Gunpei Yokoi or even the worst games from the golden age of arcades. the possibilities for critical crisscrossing are fun and endless.
this system relies on the use of emulators; an emulator "duplicates (provides an emulation of) the functions of one system using a different system"(wikipedia) so these emulators run ROM files: image dump files of the read-only memory chip from old game cartridges or arcade machines. the act of creating an ROM image simplifies the archiving and preservation of older software. to the companies that own these games as intellectual property you are only allowed to use ROMs created by yourself, if you own a physical copy of the game or if it isn't protected by the entertainment software association (ESA). under the current ridiculously one sided copyright laws digital sharing of ROMs is in fact very illegal. Hence me not offering any links to websites where ROMs can be obtained; for this google and bit torrent are your very good friends.
but then again, I don't see any companies trying to create a cohesive and widespread open-to-the public archive of video games for educational purposes either. maybe then we wouldn't have so many crap games ;)
this project was developed for the launch of NASA: Newark Artist Space Association, and I have to thank NYCResistor and Hackinteractive for all the much appreciated help.
To find out more about the first curated exhibition visit the project page.
Step 1: This is what you need
in fine detail:
hard drive: something bigger than 30Gs will be more than enough memory but will also give you enough flexibility to partition or to run different apps. I am using a western digital 80GB drive if you have a slim laptop hard drive then more power to you.
motherboard: I'm using a VIA VB7001 Mini-ITX Board, this is a compact motherboard complete with a 1.5GHz processor and on-board audio plus out ports for s-video, composite RCA and VGA, which will matter for when you need to connect the system to a TV, monitor or projector. this motherboard also needed some RAM memory so a 1GB stick will do fine.
power supply unit plus power adapter: so one of my concerns with this system was size, hence the mini motherboard, so this also means getting a power supply source that is also very small. I used the a PicoPSU-120, 120W 12V DC-DC along with a Power Adapter 12V DC/80W suitable for the PicoPSU.
dvd/cd drive: i used an old slimdrive DVD/CD drive from a dell laptop, if you do this as well then youll need a Slimline CD to 40-pin IDE to connect the drive to a secondary IDE slot in your motherboard.
Slimline DVD/CD to 40-pin IDE Adapter: this adapter is used to connect to the motherboard by converting the slimline connector to a standard 40 pin IDE connection. this also comes with a 3.5"mini power connector (floppy style) which is perfect because our PicoPSU can power it easily.
IDE ribbon cable: this is your basic meant-n-potatoes kind of ribbon cable, used to connect the newly adapted DVD drive to the motherboard. your motherboard should also come packed with one.
USB controllers: any USB enabled gamepad will do and there are tons of choices out there. you could retrofit your old NES or SNES controllers or use a xbox 360 gamepad, or even hack an old non USB xbox pad for this purpose. basically you choose your poison here.
USB cable: Dual USB Cable with individually mountable USB ports compatible with the motherboard of your choice. this cable will be used for the controllers and in my case they had to be soldered to the board, more on that later...
power switch: well I went all ballistic retro and used the NES power switch :> - also Raphael Abrams of NYCResistor was nice enough to gift me an extra one of these.
power LED: color is up to you.
tv out cables: this is up to the you or the situation, you can use composite RCA with most TV's and also s-video with some. VGA, S-video with monitors and projectors; I found this article on the subject very enlightening.
acrylic glass: for the case I used 2 sheets of 1/4 inch plexiglas, each sheet being 9 x 24 inches. these were then cut to my design with a lazer-cutter. so for bonding the material you'll need Weld-on 3 acrylic cement, this stuff smells bad and needs to be applied with a syringe.
operating system: my recommendation for OS is Ubuntu; it is free, linux based, open source and mad hood. of course you can use your preferred system with Windows being the most popular option and I will briefly cover that as well but this instructable will mainly focus on open source tools.
emulators: there are many flavors of emulators out there and ideally you would get one for every console ever made, thus broadening your critical scope. thankfully the collective brain of Wikipedia compiled a list for us here.
spray paint: for a nice finish
other stuff: like patience, epoxy or gorilla glue, a well lit, ventilated, clean and comfortable working area plus wire strippers, screws, screwdriver, wires, a soldering kit, tape etc etc. if you don't have something then MacGyver it but always be on the safe side. I really should have documented my soldering burns....
Step 2: This is what you need to do
first off we start with the case, it will be cube shaped with the width, height and length of 7.5 inches. I am using 1/4 inch clear plexiglas that I bought at canal plastics center in Chinatown, NYC. they have a really good selection of plastics and also do custom laser cutting. the bulk of the measuring was done using a vector graphics editor like adobe illustrator or inkscape; the free open source alternative.
the attached files will give you all the exact measurements but in general the size of the case was dictated by the size of the motherboard plus the right balance between the other items in the cube. the usb, dvd, LED, back panel and power button holes were also measured to precision. be sure to add airflow ports near the processor fan and at opposite sides of the cube to cut down overheating.
after you have the measurements and files ready then its time to visit your friendly neighborhood hacker space. NYCResistor in Brooklyn holds open craft nights once a week during which you can work on projects with others as well as ask for help; I was able to test cut some pieces my first night and then rent their laser cutter the day after.
the laser cutter I used needed a vector based file that can be exported as a .dxf (autoCAD interchange) file to import into Corel Draw. make sure to get help with the laser cutter if you are not sure about what you are doing since this space age tech can kill you. the machine can cut and also etch onto the material, I used some etching to create guides for the front plate and also to write on the back plate.
once your files are ready just send the information to the laser cutter and in a matter of exciting minutes you'll have your pieces ready.
Step 3: Building the cube
so now that your parts are ready its time to put it all together. I started assembling the top of the cube using the syringe and the liquid weld-on 3 acrylic cement; at this point things had changed in the design and it was clear that the hard drive would not fit on the side like I had planned but that the top panel was a perfect fit. I took the two small rectangular pieces of plexi and drilled two screw holes into them for holding the hard drive plus I used a couple of the corner joints to secure the plexi pieces to the top panel.
after this I continued with the base and the left / right panels. the best way to do this is by placing the parts together and applying the weld-on 3 around the edges of the connection like in the photo below. this way the liquid will be suctioned into the gap between the two plexi pieces and with some added pressure and a wait time of 3 minutes you'll have a solid bond.
once you have this technique down the rest is pie. connect the front and left / right panels to the base then glue in the corner pieces for added support. the back plate is going to be removable and secured with screws, the top panel is attached last so we can work on the inside for a bit longer.
next to attach the motherboard I positioned four corner pieces around the inside of the cube at the same height; the height is equal to the height between the base and the hole in the back plate where the motherboard connectors protrude. each corner piece is carefully positioned then marked with a pen according to where screw holes are available in the motherboard and then drilled.
next take the extra d-pad and button shapes and glue them to the front plate following the etched lines, and also attach another two pieces of rectangular plexi to the base panel; this is where the DVD drive will rest on. now that everything is glued and in place it's time for a coat of paint.
Step 4: Installing the hardware
I originally intended to only paint the box white from the inside and create this great depth effect with the 1/4 inch plexi but the amount of joints and some defects in the plastic made this less desirable. I continued to paint the front panel and left the rest for later.
now to fit everything in.
- first screw in the hard drive to its top panel support and make sure the IDE cable and the picoPSU are connected as well.
- next take the power LED and solder two cables to it long enough to reach the F-panel of the motherboard, then place it in the hole as shown in the picture below and hot glue it in place. keep the cables tidy with tape for now.
- attach the dvd/cd drive to the base supports we added earlier, you can use epoxy or gorilla glue, whatever works for you.
- now take the double USB cord and cut the excess plastic out of the heads making sure the ports fit into their respective holes in the front panel piece. the other end of the cable will have to be soldered to the motherboard later.
- next to position the power buttons and the USB ports I used the last of the rectangular plexi pieces and some screws. the yellow metal piece you see in the photograph comes from a metal lego set, but anything like it will do. this was my MacGyver moment. glue and clamp the USB pieces and put them aside and let them dry.
- the last piece to fit in is the motherboard but to do this I had to first connect the power / reset switch and the double USB cables to the motherboard. following the motherboard instruction manual and the information on pin assignments from the images below, I connected the power, reset and LED wires to the appropriate pins on the F-panel section of the motherboard and then tested.
- same thing with the USB cables, following the color coding from the image below I connected, and after testing, soldered the wires to the pins. I had to do this since my USB cable was not the right size for my board and this seemed like a sensible hack if the cable worked; which it did. so if you have to do this then just get the cables out of the casing and carefully solder them to the board.
- now that this is ready just glue the plexi piece that holds the switches and the USBs to the front panel and insert the motherboard along with them. wait a few hours for the glue to dry then come back for the board...
- and carefully screw the board in place.
next we add paint.
Step 5: Finishing the build + more paint
alright so now the inside is looking tight and packed. just have to take care of the back panel and some paint:
- the center hole in the back panel is the same size as the power plug connector. it is simple to screw fasten the bolt in place as in the picture below. in the end I had to dremel the opening a bit for it to fit comfortably.
- next position the back panel and close the case, then secure with 3 screws. I had some from an old project that were perfect for this.
- now the construction is finished and its time for more paint! I covered the back, front and the airflow holes in the sides with newspaper and tape then applied a couple of coats of satin spray paint for plastics.
now with everything in place its time to install some software.
Step 6: Installing the software
this part is all about software and wrapping the whole thing up. so again, this project relies on the use of emulators and ROM files; in this case the systems we are trying to emulate are old videogame consoles like the following:
Nintendo Entertainment System
Super Nintendo Entertainment System
and various arcade machines
so first things first; install your OS. if using Ubuntu then download the latest version for free and burn a CD or order one sent to your home for free. pop this baby in and reboot the machine then follow the instructions and you are done. follow the same booting procedure if you are installing windows but add having to buy the software if you don't already have a copy available. once your system is up and running then we install emulators.
this wikipedia list of emulators will help you find and set up whichever emulators you need, for my prototype I focused on the NES and the following will cover that ground.
Ubuntu: very easy to set up; on the navigation bar select applications>add/remove then make sure all available applications is selected before you search and look for GFCE Ultra - this is the NES emulator. Now search for Kamefu this is the a frontend application for managing your collection of games and emulators.
Windows: this link gives a great list of emulators but I personally like Nestopia. download and install. for a frontend you can use the excellent mamewah or one of the following choices.
compile a master folder and use with the emulators.
this will depend on what kind of controllers you are using, but basically you need to install drivers for them to function. most controllers will provide them along with the hardware or be available online for download, just look up the make and "driver" on google. for Ubuntu a lot of controllers are supported to begin with, as in the case of the xbox 360 pad but you can also find drivers online along with help from the ubuntu community.
and that's it.
now that you have your system ready curate a selection of games around a theme you are interested in like maybe depictions of women in video games or the best creations of Nintendo R&D1. now put together an open party at your house or a public space, invite a bunch of people over and offer them your buffet of games then talk about them, analyze them, trash them, love them, argue about them and then go out and make the kind of games you want to exist.