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.

2 comments:

etabeta 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.