Tuesday, December 30, 2014

Of(f) course...

As always, just when things are moving forward they turn to a screeching halt again.

For some time the MP3-triggers has behaved badly and "misfired" when playing MP3's. I thought this could be due to the solenoid-interrupt stepping in and messing with the communication. Should be easy to check, just remove the interrupts temporarily, right?


What happened was that I've coded the solenoids to fire right away (for speed) and be turned off in the... that's right, the interrupt function. This lead to the solenoid being stuck in active and took me a while to notice since I was debugging code on the computer at the same time. Things that happen when you leave a project for some time, it's almost impossible to remember all decisions that were taken and for what reason. After that I heard what almost sounded like gravel dropping on the floor and thought "what the hell is that?".

Then came the smoke.

I moved faster than Mick Jagger on speed and shut off the machine, threw the glass front off and pulled the board up. I expected to see fire, but there were just one sizzling solenoid. I had to keep it cool by blowing air on it for a good long time. Phew.

Damage control.

1) Sizzling solenoids, anyone? I've heard they're all the rage...
The first thing was obvious. The drain kick solenoid was more fried than a bucket of KFC. Clocking in at almost 0Ω it was basically a short circuit.

Next thing - not a single solenoid worked after the incident. They seemed fine resistance-wise and didn't feel warm, so I suspected the power supply and check the voltage. It read 6V... not good. Should be 48V. After unplugging the short circuit solenoid the voltage went up to 48V again. Thank you, China manufacturer, for voltage limiting when shorting instead of blowing up!

2) New. Crispy.
I replaced the solenoid with a spare one I just happened to have in my "garbage" pile. (An exact match too. Seriously!?). Still no tango....

3) Spot the burnt MOSFET....

...because of course, the solenoid driver board MOSFET was blown as well.
I looked high and low for a replacement, but could only find IRF640's. I used these in the past and they worked, but kind of slow for the flippers so I scrapped them. They also became quite hot due to not opening fully when activated (not really a low-level voltage MOSFET).

The board seemed fine, so I soldered a IRF640 on there and included a heat shield. How about now?
4) Surely this has got to be it, right?




My theory is that the last time I used them was with the Ardunio Mega, which runs at 5V 40mA per output. The Chipkit has 3V and 20mA, if I'm not mistaken. This is simply to weak to open the gate at all. I raised the on-time with 10x and it still didn't work, so I once again scrapped the idea of using them.

I've now ordered a new power driver board (just in case) and a bunch of replacement MOSFET's (RFP30N06LE). It GOT to work.

On the plus side...
I've created the Atlas, Big Daddy and Upgrade game modes now, along with additional tweaks and things (like user selectable background music before launching the ball). Just got to get the MP3's to trigger reliably, as said, but Big Daddy is even now a treat to shoot at! :) 

5) Junkyard/graveyard. I've grown used to stuff not working, but this is getting ridiculous. 

Sunday, December 28, 2014

Merry Christmas, Mr Bubbles!

With the holiday spirit still in mind, I've treated the pinball machine with some respect and love and gave it a few gifts - in the shape of additional game programming features!

I've detoured from "creating the most advanced and deep ruleset the world has ever seen (tm)" and instead focused on getting basic functionality in place. I figure I can always flesh out the features every now and then instead. A strategy that proved to be most effective. I've added basic functionality for most major game play features including:

* Little Sisters
* Rescue / Harvest (videomode)
* Steinman multiball ("Ugly ugly ugly!")
* DNA / ADAM Frenzy
* Photo targets
* Drones
* Plasmids / "Plasmirage" multiball
* Rapture multiball

The features are pretty much stand-alone at the moment, as I've mostly skipped the planned interleaved parts. I've got a lot of sound effects in place as well as generic "hurry up" quotes. The game is now playable and enjoyable, which is a good thing! Next I aim to get the following features in place:

* Mr Bubbles / "Big Rage" multiball
* Splicers
* New Years Eve
* The Masterpiece  
* The rest... 

The biggest challenge so far has been to do "timed" events properly, or rather events that keeps running and doing things over several cycles, as it includes using a lot of counters and variables to keep track of various states and what not. I've found myself having to deal with, and code, a large number of different interconnecting functions simultaneously, for instance with the Little Sister mode. It's easy to get side tracked and think "oh, right - I also need this!" while doing something completely different.

Even the most basic function needs a menu setting, a start and stop state, it's own variables (which is unique to each player), an update loop and rule set for interacting with other functions etc. The list goes on and increases as the complexity of the function/mode grows. It's rather easy to miss things, for instance - one time I stared myself blind on the code for a mode and couldn't figure out why the frak it didn't work. Turned out I missed to run the update-function for the mode completely...

The plan is to at least have something in place for every switch and lane, even if it means just getting points and getting a message displayed. I've skipped almost all videos at the moment (this can be added quite easily in the future) - I just really want the machine to be in an alpha or beta state at the very least, which seems plausible at the moment, thankfully. 

1) Old rubbers. Hard to see in the picture
but when stretched this rubber is
visibly cracked almost everywhere.
I had to do the first routine maintenance of the machine, which included new rubbers for flippers and slingshots! It's mostly because of air and sun exposure as it hasn't really been played a lot. I've also wiped and cleaned the playfield, as well as adjusting some hardware (including the drain, which sometimes failed to kick the ball, resulting in multiple drain registrations and thus ending multiballs prematurely...).

Felt a little weird to perform maintenance before it's even completed, but hey, it sure feels like a proper machine now. The future for the machine looks promising - 2015 will most likely be the year I'll finish it! ;)

Sunday, September 7, 2014

Blogs that don't update!

I hate when blogs don't update - Including mine!

So I feel obliged to write a few lines, even thou nothing really has happened the last few weeks. Entering the studio soon with my band and every bit of focus is on that, I'm afraid.

But the machine is always present.
Always watching.
I must please it soon with some good offerings... ;)

Friday, July 25, 2014

The color of nostalgia is brown...

Sat and looked through the 'Making-of' folder on my harddrive and found some old pictures from the Fallout days. It's pretty remarkable how little the designed changed from one idea to the other, and how well the features from Fallout translated into BioShock ones. Which in turn also explains why everything worked out so quickly while designed the new artwork. I guess I was, and still am, pretty confident about the general game design.

1) The very first hand drawn artwork with the overlaid Autocad approximation of the playfield.
  Come to think of it - the fallout version is not that bad and very, very, close to the final version already.

Considering I had almost no parts to measure at that point in time, it's amazing that I got the proportions pretty much right by looking at photos online. Internet is a beautiful thing! :)

2) Close up of the top playfield. Pretty much the same here as the BioShock version, even got the "big figure to shoot at". The bobble head may actually have been more satisfying to shoot thou. Instead of the vent we'd have a Vault (with moving door). The bumpers would of course be the boxing ring at New Reno...

3) The lower playfield is also very similar. The lights have changed a little but, otherwise it's pretty much the same. The PipBoy would naturally be the center piece and the saucer was intended to be a drophole, to take the ball to the upper playfield, in the shape of a crater.

4) Players view of the top playfield. I think the Bobble Head and the accompanying stats board would have looked killer in real life! While sketching I pretty much draw what comes up, but I'd really love the idea of having a Vault Ball lock. It was supposed to lock the ball physically with a moving gear door and a rotating red "warning light" on top, although I changed the position of the vault in this later sketch. Awesome. 

5) Finally - The red lines are the old Fallout drawing, and the image is of course the BioShock artwork that was created around the final drawing. Not a lot changed, as you can see. The main target was moved a bit more centered, and the lights were changed/moved...
If I had to regret one thing - It would be not having either the stats board or the vault. Actually, I might do the stats board in the future with the spare Arduino I have... so the thing I regret is the vault.

Next time thou! ;)  

Clogs of War!

After playing a couple of games, as well as letting "outsiders" play,  I'm pretty confident I need to improve the ball through - or more precisely, the drain. Sometimes if the balls drain too fast during multiball (hey, don't judge me!) the balls pile up and the old school drain can't keep up with the pressure. The balls on top pretty much prevents the drain from clearing and the system has to be unclogged manually. The drain I'm using was only designed for single ball usage, so the joke's on me for trying to adapt it. ;)

I'm thinking I might need to fully replace it with a modern one, but I guess I'll try to improve the actual drain first so that only one ball at a time might enter. The downside with getting a new one is the rather substantial cost, so I'd rather avoid that as much as possible. But it is a problem at the moment, since the game has trouble counting balls as well if the drain doesn't function properly.

1) Top playfield with some lights active. I really enjoy just starting the game, seeing everything light up and playing a game. Even if it's not programmatically finished (by far) it's still very enjoyable! Shortly after this pic thou - Mr B's arm fell off... Will need to fix that.

I've noticed that programming the rules aren't all that trivial - even for an experienced programmer there's a lot to consider, especially when breaking it down to simple parts. Take a function that should raise the up-post when doing a left loop. How should we define a left loop? During single player it's easy, but during multiball it gets tougher since you can't simply compare it to the last switch and determine the direction from that. Well, it's somewhat doable by having a rule set that ignores faraway or unrelated switches etc, but still it's something that I've underestimated. I've also noticed that keeping track of all features and modes to prevent them from interfering with each other is rather cumbersome. But at least this can be improved upon without doing any major "surgery" - just open the front door and plug in the USB-cable. 

Furthermore - I really wished I didn't place the electronics under the pinball table... When the time comes for upgrades other than actual programming, such as music, sound or videos, it's a rather big operation compared to just removing the translite on a regular machine... But done is done and now I've tested that. Won't do that again!

Tuesday, July 22, 2014

Days of future past...

In the essence of 'two steps forward, one step back' I've spent most of the day figuring out why all of a sudden some switches stopped working while playing a game but working flawlessly in the diagnostics menu.

Turns out I did a little sloppy coding that overrode the later functions...Whoops.
All fixed now thou! 

I've also replaced the switch in the center VUK to one that should be more robust. The downside is that it can only detect if a ball is entering the VUK, not if there's a ball in the VUK. This shouldn't be a problem if the VUK functions normally and if it doesn't - the ball search will eject the ball anyway.

While working continuously on the machine it's somehow second nature, but being away from the hardware a while really gives you respect for the amount of wiring and work that has gone into the machine. When time comes to do hardware maintenance it's really a case of inventing the wheel once again. And this is despite all my attempts to keep everything neat and organized / documented.

Just a reminder of what it looks like under the hood...
1) Oh, the joy of troubleshooting this... I still don't know why the magnet works now and why it didn't a while ago. I just close my eyes and pray that it works every time I've tinkered with the playfield.

...which is somewhat forgotten when the hood is closed.

2) Players view. Somewhat. At this point, with the glass and all - it really does look commercially made!
The translite is, obviously, not a very tight fit but I intend to put some small edges around to prevent light from leaking out. It's also missing the metal side protectors at this point.

It's a beaut', ain't it! ;) 

Sunday, July 20, 2014

Darkness, be gone!

I added a couple of lights and a spotlight to the global illumination of the board.
The upper left corner was very dark but is now nicely lit. I'll probably need to put a light shining between the flippers as well, since that area is really dark if the room lights are turned off, for instance. I want the machine to be able to play in complete darkness and fully light up the playfield on its own!

I also need to fix a better switch solution for the center VUK. It's not very reliable at the moment, I'm afraid.

Friday, July 18, 2014

Glass house and rocks!

Hi guys!

I've been extremely busy since the tour with promotion and work with the band, but I have at least put the glass on now and re-seated a cable to the plasmid saucer. This also (miraculously) fixed the magnet that I deemed to be broken a couple of posts ago(!). Weird!

Anyway - to try to make up for my lack of updates, I'm posting not one, but two videos of the playfield. One idle playfield overview and one where my girlfriend plays a game. The software is running in debug mode, so the lights flicker a bit (due to low refresh rate) and there are not many game rules in play so the game seem more sluggish than it is.

I've also concluded that I must shrink the gap in the right outlane...that thing is ball hungry.

Monday, May 5, 2014

I'm back!

I'm back from touring Europe! \m/

Now I'll just need to structure things up and start digging through the remaining points on the machine!

Thursday, March 20, 2014

A little slow on the updates...

Things have been slow lately and will become even slower - I'm going on tour with my band.
During April we'll be around in Europe so there will be very little time and thoughts going to the pinball machine. Planning the tour and dealing with various venues all over the world, along with rehearsing with a new band member, has taken most of my time this year (and a good portion last year as well).

But when I'm back, I intend to finish the machine up fast! Time to wrap it up! :)

Meanwhile, you can all help me decide on a position for my new crawler splicer figure...

1) This way...?

2) Or like this?

3) Maybe even this. But then the right area looks crowded.
4) It's also possible to have it like this. Perhaps even just the upper body.

I purchased the figure to add some detail to the left area of the board, but which position do you think looks the best?

Oh, and by the way - this is how the package looked upon arrival. *thumbs up* 

5) The postal office needs Anger Management in their lives!

Tuesday, February 25, 2014

Bling for the rings!

Found these on eBay and had to get them.
No keys belonging to my BioShock machine should come without its own bling! 

1) BioShock keyrings. I was just wondering what to put on the keys when these showed up on eBay!

Thursday, February 20, 2014

Thank you for the tango, Irrational Games!

I'm sad to read that Irrational Games are closing down their business as we know it. Without them there would have been no BioShock and most definitely no BioShock pinball.

"Seventeen years is a long time to do any job, even the best one. And working with the incredible team at Irrational Games is indeed the best job I’ve ever had. While I’m deeply proud of what we’ve accomplished together, my passion has turned to making a different kind of game than we’ve done before. To meet the challenge ahead, I need to refocus my energy on a smaller team with a flatter structure and a more direct relationship with gamers. In many ways, it will be a return to how we started: a small team making games for the core gaming audience."

This is by no means a death sentence for the studio as it is reshaping its core. Hopefully they'll keep making awesome games, as I'm sure they'll do!

You can read more about it here:

This does not affect my pinball machine, in case you're worried!

Monday, February 17, 2014


Quick update.

1) Side view. Spotted any of the new features yet?

2) Below the 1959-sign there's supposed to be a splicer mask... but I've misplaced it. Hopefully I'll find it.

Sunday, February 16, 2014

State of the Machine

The past few days I've been able to focus a little on the machine, which is always nice.

I've added three switches that were missing - top drophole, upper shooterlane and the last ball through switch. All three very crucial switches that were somehow forgotten to be added or simply to complicated to setup.

1) Upper drophole switch. Not the nicest setup in history - but considering I forgot to make room for it during design and it's extremely tight to work in that area, it looks all right and is not visible from a players perspective. (I really need to clean the board before putting on the glass!)

I'm about to rewrite the ball handling code now that I've got more (and more accurate) ways of detecting the balls so instead of "it's probably launched now" I can actually know for sure if a ball has been launched successfully. 

I've also added a little bit of decorations here and there and the machine is almost 100% physically complete. What's left is a couple of switches that needs to be tweaked after a couple of games to make them behave reliably and easier to read titles on the inserts. I have printed out new titles in white that needs to be applied before putting the glass on. Preferably.

A message system has been added to send the player small messages (or large) to hurry up or if a ball gets stuck, failed to launch and so on. The smaller one is more informative and overlays the current screen while the bigger one covers the entire screen and is meant to present more mode-related messages such as "JACKPOT!" etc. I've added a couple of modes as well such as EVE, Rapture, DNA / ADAM frenzy, JACK in order to get the game programming started. It's nice to have the machine "talking" back to you while testing!

Here's the current state of the machine.
Those of you who's been following the blog for a while probably notices a few new pieces...

2) Current state of the pinball machine.