I've bought and fitted one of @lyonsden's excellent Pinduino kits to a Funhouse. Everything working as expected, but I'd like to make some tweaks, if I can.
I'm using what I assume is the default sketch for this game - https://github.com/elyons/professor_pinball_pinduino_sketches/blob/master/Funhouse-Ramp/Funhouse-Ramp.ino
What I would like to do, if possible, is introduce some game state logic to it. In other words, I'd like to be able to do different effects depending on whether the game is in multiball mode or not, for example.
I don't have the WP-EXT board (I don't know what this is, but it was mentioned earlier in the thread) so all my board is monitoring is J126 on the Power Driver Board. With the exception of two pins, they are all flashers.
Here's what I know about Funhouse & flashers:
- When the clock strikes 11:30 and the game informs the player - no flashers are used
- When the clock strikes 11:45 the clock flashers and red flashers are illuminated 3 times, perhaps 1 second gap between flashes. I think this is the only time the game ONLY lights the red flashers, normally its red/blue/white in sequence
- When the clock strikes midnight (ready for multiball) no flashers are used, only two inserts pulse continuously
- When it is midnight, Rudy's mouth opens completely and stays open (to trap and ball and begin multiball)
Two of the wires on J126 are for "Mouth Motor" and "Up/Down Driver". Can these wires be monitored? Is it possible for Pinduino/a sketch to know if the mouth is up or down? Or is the wire simply switched on or off?
I think I could get the game to detect that it is 11:45 at least if I could detect that the clock flashers have flashed 3 times (and only three times) within 3 seconds, with no other flashers illuminating during that time. Since 11:45 is triggered by a lock shot in all cases (11:30 can be triggered simply through playing the game) then there should be no reason any other flashers should illuminate during this time. That said I would need to somehow run a loop within the main loop() to detect this...
Assuming it were possible to maintain game states in the sketch, is this feasible? No flashers come on when the ball drains so if it's a a multiplayer game where one person is at 11:45 and another isn't the LEDs would no longer be in the correct state. The default sketch ultimately goes back to attract mode after 2 seconds, so will always be correct whoever is playing and whatever point in the game they're at.
Is what I'm thinking remotely feasible, or would I need WP-EXT and monitoring trough eject solenoids, etc.