Godzilla multiplied by Arcade Games plus McDonalds divided by Pepsi Max plus StepMania equals Tom Tilley
Thomas Tilley
Godzilla arcade games McDonalds Pepsi MAX StepMania Tom Tilley

[ Home ] [ Publications ] [ Resume ] [ Family ] [ Projects ] [ The Others ] [ Sitemap ]

Home
Publications
Resume
Family
Projects
Coffee Grinder Puzzle Bobble
The Others
Sitemap

Coffee Grinder Puzzle Bobble

2010


Students playingCoffee Grinder Puzzle Bobble at Payap University

The Dean of Science asked if I could make something fun for visitors to play with at Payap University's 35th Anniversary celebrations. I had been wanting to make some controllers to play the 1994 arcade game Puzzle Bobble (also known as Bust-a-Move) that worked like the coffee-grinder/pedestal winches that racing yachts use for controlling their sails (see the image below) - so this was the perfect opportunity.

In Puzzle Bobble the two monsters from 1986's Bubble Bobble game return to operate a steampunk-esque bubble shooting machine (see the images below or play it online). One monster rotates a wheel to aim the bubbles which are loaded and launched by the other monster. If three or more bubbles of the same colour touch then they burst and disappear. The aim of the game is to clear the screen of bubbles.

While the original arcade game used the joystick to aim the bubbles, with these controllers the monster rotates the wheel in response to you turning the cranks. It makes the game a lot more physical and it's a lot of fun - especially playing against someone else.




The controller physically consists of the crank handle that you rotate, a base or pedestal to hold the crank, and a stripped down optical mouse which detects rotation by watching the crank handle turn. The computer simply sees the controller as a mouse and some other software is used to convert that into the joystick input expected by the game.

Coffee grinder pedestal winch
Source: Latitude 38
Screenshot of 2-player Puzzle Bobble
Bubblun turning the aiming mechanism in Puzzle Bobble
Two player game using a single laptop

Here's a video of Coffee Grinder Puzzle Bobble in action. You can read on below for more details on how the controllers were constructed and how they work.


Crank Handle

The crank is made from 18mm (1/2") PVC pipe using 4 x elbows, and 2 x end caps, with 2 x 20mm (3/4") joiners for the hand-grips. You can cling tightly to the hand-grips and they rotate freely as the crank turns. Each hand-grip has two pieces of 20mm pipe that have been cut in half and glued in either end of the handle to reduce the amount of wobble. I also rubbed a small amount of wax inside each handle to help things turn smoothly.

PVC connectors for the handle assembly Handle interior showing the additional spacers An exploded view of the handles (top) and the assembled handles (lower right)

The crank shaft also includes a larger diameter wheel and this is what the mouse "watches" to detect rotation. The diameter of the wheel is built up using four layers of pipe and connector sections starting with 20mm pipe, a 20mm connector, some 25mm pipe and finally a 25mm connector (see the diagrams below). This gives it the same diameter as the 25mm T-piece that holds the crank at the top of the pedestal. I made the outer section of the wheel wider than the inner layers so that I would have more flexibility in where to position the mouse that detects rotation. So the handle isn't off-center I slid this wider section back over the elbow like a cuff which you can see in the far-right image.

Building up the ring for contact with the scrol wheel Adding two more layers to increase the width and diamtere of the ring for detection by the optical sensor Inside view of the final ring showing the 4 layers External view of the ring showing the wider outer layer

Here is a picture of the crank handle in place in the completed controller. I didn't glue the right elbow (on the side of the shaft without the wheel) but used a small bolt to secure the right handle so that the crank can still be removed for storage or transport.

The completed controller assembly

Pedestal

The pedestal that supports the crankshaft raises it to a comfortable height above the table while allowing it to rotate freely. The pedestal is made from 25mm (1") pipe using 2 x T-Pieces, 3 x elbows and 2 x end caps. The elbows form a simple G-clamp to secure the controller to the table (see the side-view below). The connection at the table's edge is not glued so that it can be easily removed.

One of the problems when building things from PVC pipe is that the pieces either fit together very tightly (normally what you want but it doesn't allow any movement) or if you use different sizes of pipe together they are too loose. If you want to build something that rotates smoothly (like a crank handle!) this is a problem. I encountered this problem when I first tried to build a steering wheel for the the PVC racing cars.

The crank shaft is made from 18mm (1/2") pipe and it turns out that this size pipe fits smoothly through the center of a 20mm (3/4") T-piece. I cut the center section from two of these T-pieces and with a small amount of filing they fit nicely inside either end of a 25mm (1") T-piece. When glued in place they effectively reduce the diameter of the larger T-piece so that a piece of 18mm (1/2") pipe will rotate freely with only a small amount of "play" (see the pictures below). The picture below right shows a normal 25mm (1") T-piece on the left and a T-piece with inserts on the right.

Side view showing the G-clamp in action Cutdown T-piece showing the desired center section. T-piece (right) with glued inserts

Rotation Sensing

My original thought for detecting the rotation of the crank handle was to use the encoder wheel and optical sensor from a mechanical ball mouse. The wheel would be connected to the shaft so that it rotated in unison with the handle. This should work quite well but as I started looking at mice (mouses?) I decided that it might be easier to use a mouse with a scroll-wheel and simply put the wheel in contact with the shaft. I didn't want the bulk of the whole mouse mounted near the shaft and so I started building the mouse equivalent of a stretch-limo by cutting a mouse in half and extending the wiring to the encoder wheel (see the picture below left). Unfortunately the mechanism didn't work reliably so in the end I decided to simply use an optical mouse.

I stripped down a $3 mouse by removing the button switches and wheel sensor, re-positioning the capacitors, and shaving a small section off of the circuit board (see the side-by-side before and after image of the board below) so that it fit snugly into a Clorets container (the orange plastic box in the right images).

Stretched optical mouse with remote scroll wheel The orginal mouse PCB (left) and the stripped down PCB (right) Optical mouse in a Clorets container Mounted optical rotation sensor

The black line on the top of the Clorets box is an off-cut from a cable-tie. The box is hot-melt glued under the pedestal and held in place with another cable-tie. The off-cut glued on top of the box ensures that there is a small amount of separation between the box and the wheel on the crank shaft. Some masking tape on the wheel increases its visibility to the mouse.

Mouse to Joystick Conversion

The original Puzzle Bobble arcade game (running in MAME - the Multiple Arcade Machine Emulator) expects joystick input so I needed to find a way to turn the output from the mouse into joystick movements and button clicks. PPJoy (Parallel Port Joystick) is a virtual joystick driver that includes a mouse to joystick option that would work for a single controller but I wanted to support two controllers so people could play against each other.

Carl Kenner's GlovePIE is an extremely flexible input re-mapping tool originally designed for use with the P5 data glove. It support up to eight mice connected to a single computer and in conjunction with PPJoy it can be used to remap input from multiple mice to multiple virtual joysticks (GlovePIE also has Nintendo Wii-mote support so this is a common solution for people wanting to use Wii-motes to play games on PCs). The image below illustrates the conversion of mouse output from the coffee grinder controller to virtual joystick input for MAME:

Software used to map the mouse input to a virtual joystick for use with MAME

GlovePIE Parallel Port Joystick The Multiple Arcade Macine Emulator (MAME)

GlovePIE uses a scripting language and the following script maps the rotation of a single Puzzle Bobble controller (really just the left and right mouse movement) to the X-axis of a PPJoy virtual joystick. It is based on the "MouseParty.PIE" script distributed with GlovePIE and assumes that the computer already has a mouse attached:

You can download an expanded version of this script for two controllers here: MouseJoystick.PIE

GlovePIE also has some command-line options (to see these try running GlovePIE from a command prompt using 'glovepie /?'). I wrote a batch file called 'startgame.bat' to start Puzzle Bobble in MAME and this can be called by GlovePIE along with the 'MouseJoystick.PIE' script like this:

     glovepie -MouseJoystick.PIE "/r:startgame.bat"

You can then put this line in a desktop shortcut so all you have to do is click the shortcut to launch the game with the appropriate input remapping for the controllers.

Buttons

For the "shoot" buttons I mounted microswitch arcade buttons in the base of a slightly larger version of the plastic containers I used for my multiplayer Guitar Hero project. Two wires are patched into the left button of the mouse (the white and pink wires coming out the side of the Cloret's container in the picture above) that run through the pedestal to a connector mounted on one of the PVC end-caps. I originally used RCA connectors but then decided that speaker terminal connectors would give me a little more flexibility - if there was a problem with the button wiring I could simply strip the wires without needing to re-solder a new plug.

Arcade button containers Original RCA button connector Speaker terminal button connector

Puzzle Bobble is a great game but it's even more fun to play against someone else while using a large rotating controller! You could also use these controllers to play other games with similar gameplay mechanics like Snood or Zuma (my wife's a big fan). It would also be fun to try some other arcade games like Tempest (although you would need a second button or someone else on superzapper) or Hyper-Olympics (also known as "Track & Field" in North America). I am also thinking of building a steampunk-esque controller with many gears akin to the machine in the game - but that will have to be a project for another time.

Other Projects

You may also be interested in reading about other things you can do with PVC pipe or some of my other projects:

hacked joysticks PVC water pipe Guitar Hero GL-Tron/motorbikes mercury switch
Coffee Grinder Puzzle Bobble
Coffee Grinder Puzzle Bobble
Asteroids Cabinet Fish Tank
Asteroids Cabinet Fish Tank
Hovercraft
Hovercraft
Wooden DDR Mat
Wooden DDR Mat
Everyday uses for PVC water pipe
Everyday uses for PVC water pipe
Bug-zapper Guitar Hero Controller
Bug-zapper Guitar Hero Controller
PVC Water Pipe Tron Controller
PVC Water Pipe Tron Controller
Virtual Pinball
Virtual Pinball
Halo Motorbike Helmet
Halo Motorbike Helmet
Multiplayer Guitar Hero
Multiplayer Guitar Hero
Bamboo Racing Cars
Bamboo Racing Cars
REAL-Tron
REAL-Tron
Terminator Xeyes
T-800 Terminator Xeyes
Plasma Pong Table
Plasma Pong Table
Voting Machine
Voting Machine
Blossom Motorbike Helmet
Blossom Motorbike Helmet
Stormtrooper Motorbike Helmet
Stormtrooper Motorbike Helmet
Tron Handheld POV Display
Tron Handheld POV Display
Countertop MAME Arcade Cabinet
Countertop MAME Arcade Cabinet
Suckerbot
Suckerbot