Friday, December 14, 2007

Testing on a PE+ Machine

Here is a small update on the new game code I am writing for the PE+ platform.

I finally got around to burning the code on a chip and putting it in my real machine. The results were amazingly good. I was worried about the watchdog timer, but the code I put in place to support it works just fine.

I discovered some interesting details about the machine as I tried to enable certain features within my game.

The coin comparator turns on the coin-lockout feature by default. This means that any coins put into the machine are immediately rejected and come out in the little coin reject tray. I added code to turn off the coin-lockout and any coins inserted after that pass through the ABC optics and into the hopper. I have code in place to check for the proper ABC sequence and any coin-in timeouts before accepting the coin. These functions appear to be completely working.

Next was attempting to payout a coin from the hopper (the area that holds all the coins inside the machine). In order to successfully do this, you must enable both Hopper 1 and Hopper 2 outputs. This makes the hopper motor spin which in turn drives coins up a bar and out of the machine. At the end of the payout chute is a sensor that is triggered as the coin is leaving the machine. By creating code to enable the motor and count the number of coins passing through the sensor, I was able to acurately dispense any number of coins.

There is also support for testing when the hopper is empty, or a coin-out timeout condition occurs. And I added code to turn on the diverter when the hopper is full. This is just a simple gate that diverts coins into an overflow bucket when the hopper cannot hold anymore coins.

With this greater understanding of the hopper/payout process, I was able to fix a bug in the MAME driver that currently has issues with the hopper empty and coin-out timeout conditions. I will be submitting the fix for the next update.

Technically I believe I have most aspects of the machine covered that I will need to finish my game. There are some additional pieces I may add once the game is solid, but they are somewhat optional. This list of extra features would include:
  • EEPROM Support to backup the battery-backed RAM
  • Music Option (The game currently uses tones only)
  • Dollar Bill Validator support (I would need to buy one for testing)
  • Progressive Jackpot Feature (May need partial DUART support)
  • Card Animation
  • Attract Mode Animation (Blinking Play 5 Coins)
  • Double Up Feature
  • Soft Meters (Keeps track of coin counts etc)
  • Joker Feature (Optional but would reduce paytables)

There is plenty of testing and coding to do, but I believe my knowledge of the machine is growing and will allow me to further solidify the current MAME driver over time.


Fabio said...

first of all, congratulation for the findings about the PE+ system

I have a question, anyway, about the driver in MAME: is there any particular setting needed to start the slots sets? in latest builds, it seems impossible to enter the config menu (in fact, the same problem is present in a couple of poker as well)...

Stolistic said...

There are two known methods to setup a game for the first time. Both methods are documented at the beginning of the peplus.c source code. One method involves holding down the self-test button (with the door open) until you hear a "ping" sound, and the other does not.