PIU Enhancements

From Hive13 Wiki
Jump to navigation Jump to search

Pump It Up

Pump It Up is a Dance Arcade style game. Players control the game using five pressure foot pads, one more than the Dance Dance Revolution series. These pads include four arrows (up, down, left and right) and a central pad. This board was manufactured in Korea and utilizes 5 buttons. There are different types of boards that were created. The newer boards were the MK-V series and the IO board (PIU10 or PIUIO) is a PCI board. The MK-III boards have a proprietary daughter board for PIUIO).

The Problem

The MK-III system boots the game off of a CD. It decompresses an embeded XP image that runs the executable (piu32.exe). This executable talks directly to the PIUIO board for lights, controls, etc. This unit hits the CD continuously, this causes for a slow boot up, overheating and burn out of CD rom drives.

Goal

Convert the MK-III PIU system to run off of a Compact Flash drive.

Hurdles

Some hurdles need to be overcome in order for this to work.

No Bios output

When booting the system no BIOS output is displayed until the 3dfx card initializes then you see the VGA bios output. This will likely be an issue later when trying to get the system to boot off of a compact flash drive. The battery of the system was removed. Without the CD Rom attached we can get a "No boot disk found" message and a blinking A:\ cursor. Which is surprising because that makes it seems like a small amount of DOS is loaded even though the boot CD is not attached.

Solution

We currently do not have a solution to this problem yet.

No Keyboard

The Motherboard has pins for a mouse and keyboard but the board is not labeled for the layout of the keyboard pins. There are 6 pins for a keyboard but only 4 wires in a PS/2 keyboard. The video card had 8 pins and only used 6. So we are assuming it will only use 4 of the six. We crated a small custom keyboard cable connector to try out different combinations to attempt to get keyboard access.

Solution

We are still working on a solution. Currently we have the keyboard lights responding on poweron but that is it.

References

Piu32.exe Drivers

The main game PIU32.exe directly talks to the PIUIO board. People have been able to move the PCI version of this card into a standard XP install and use OpenITG to get the game to work. We very well may go the route of using OpenITG once we can get the system to boot to an alternate media.

Unpacking Embedded XP (Optional)

A lot of insight could be given if we could extract and unpack the Embedded XP image on the CD (zimage.sdi). Not a lot of time has been put to this task as of yet. This is marked as optional because it could be possible to roll our own XP on Compact Flash with OpenITG and not need this image. Still, it would be good to have.

Reversing

Hardware

Keyboard

First technique was to use insulated wire crimps but only crimp one end. The idea was to allow ease of slipping the crimps onto the different connectors to work out the wiring. The order that shows a keyboard post test is Brown, Yellow, Red, Grey. We will use a voltmeter to try and deduce some of the pins then make a better connection mechanism for the final test.

Inital keyboard wire testing

Software

Just for some quick initial testing we booted the CD/ISO into a KVM/QEMU on linux setup. The system unpacks successfully and a small XP cmd.exe prompt is visible but it does not respond to the keyboard. There is an error about not finding D:\piu\piu32.exe then a BSoD message. It is possible to press F8 during boot and choose Safe Mode or command prompt but any option will also die with a BSoD because of an unhandled hardware interrupt. This is most likely a core driver trying to talk to the PIUIO board.

The copy protection dialog found in piu32.exe is simply the result of the software not being able to create a service to control the PIUIO board. If you bypass this check the system will then try to talk directly to the board and will not check for errors..causing a crash.

TODO

  • Finish the keyboard hack
  • Research extracting the Embedded XP image to something that can be modified.