Thursday, June 19, 2014

The Modern Firepower Pinball Project - Overdue Update

Modern Firepower - Build Complete!

Completely unintentional, I see now it has been just over a year since my last post.  You would be forgiven for thinking that Modern Firepower was just another project that was abandoned and didn't pan out.  Fortunately, the exact opposite is true.

It was a year ago that most of the pieces came together, and the machine became playable.  Ironically, this is the most difficult stage in any project.  It became much more fun to play than to continue the build, much less post about it.

At the same time, new challenges cropped up, primarily software related.  Before the machine was in a playable state, my software tests were very promising, but with Modern Firepower now playable, small behavioral ticks emerged.  I also had to learn the hard way how to properly multi-thread a very complex application using thread-safe techniques.

Read more inside...

Software development continued off and on, slowly refining the game play.  For me, Christmas day brought an extra heaping of joy as I watched my family and extended family play on the machine for hours with almost nary an issue.

During all this time, the backbox was incomplete, missing its faceplate and upgraded speakers.  I decided in the new year it was time to push towards completion.  I designed the faceplate in CAD and had it CNC milled by the excellent crew at Select Trim (I'll dedicate a post to this another day).  I then assembled, sanded and painted the backbox, putting in the same effort I expended for the cabinet.  A new addition to the machine was the inclusion of a real DMD in the backbox, but this sat idle taunting me to program it.

Backbox build complete with upgraded speakers and a real DMD connected via a PinDMD2.

Recently I realized that the machine was close enough to completion that I ought to show it off, and as planets would align, the brand new Southern-Fried Gameroom Expo (in Atlanta, my own backyard!) was coming up soon, so I began a mad dash to prepare the machine for the show.  It's been a crazy and hectic two weeks, and there were certainly a few moments I thought the show was out of reach.  I had a laundry list of small bugs to eradicate, I ported my code over from Lazarus/Free Pascal to Delphi (a risky move that resulted in a monumental improvement in game-play performance!), added a few key missing game features, and programmed not only the DMD control engine, but also a separate program to create DMD animations.

I've also been working on replacing all of the graphics and sound effects with my own custom creations.

I also set about tidying up the machine.  Not that it was dirty, but the inner cabinet components had simply been set inside and never secured.  I knew moving the machine was likely to cause some damage with components moving freely inside, so I secured all components and wiring.

Clean and tidy, there's almost nothing in the cabinet save a power strip and power supplies.  The three wires loose in the middle are the only connections needed for the playfield (50v Solenoid Power, 12v/5v Power, and a USB cable).

Additionally, I've been stress testing the machine.  It's one thing to play for a few games, quite another to play all day by hundreds or even thousands of people... for 3 days.  Troy also graciously volunteered for stress test duty (such sacrifice!), and through his efforts we were able to identify a couple minor bugs which I promptly squashed. 

The hard work has paid off, and Modern Firepower is ready for showtime.  Hope to see you at the show!

All lit up, Modern Firepower is amazing... pictures don't do it justice.

Oh, and in case you're wondering how all of the pieces came together, I'm still working on detailing the details.  Posts to come!

No comments:

Post a Comment