Monthly Archives: June 2016

6/15/2016 – Let’s install MPF 0.30

Well here we go.  I’m following the instructions on the How To: Migrate from MPF 0.21 to MPF 0.30.  I can skip on down to instruction 2A because that is where the real fun starts. I’m on a Windows 10 (yes, I was one of those lucky souls that Microsoft updated automatically even though I said I wanted to update later.  Grrr).  This machine was previously running MPF 0.21 so Python 2.7 is currently installed on the machine.

In a command prompt I did the “echo %PROCESSOR_ARCHITECTURE%” and found that I have an AMD64.  That means I need to use the 64-bit installer and proves that I’m a cheapskate because I don’t buy the more expensive Intel processors.  I went ahead and downloaded the 64bit installer file as described.

I dislike installing Python in my path, so the commands that I type out will give the full path to start the Python executable.  After install Python 3.4.4 I went ahead and checked the version which the command is “c:\Python34\python –version” and it reports back that Python 3.4.4 is running.  Yeah!

To install MPF, I typed “c:\Python34\python -m pip install mpf-mc” or alternately I could have typed “c:\Python34\Scripts\pip install mpf-mc”.  It warned me that I’m using an older version of pip but, I don’t believe that I care.

I have a special font that I use, but we will see what happens without trying to install the default MPF fonts.  Who knows if it will work.

I already have Git GUI installed, but if you don’t you can grab Git GUI here.  Git GUI allowas you to easily download Git code repositories.  The nice part is that you can right click and create a repository folder without going through the command prompt.  (You may need to reboot to get the right click context menus, but I don’t remember that being necessary).

Okay, now lets grab the git examples repository.  So all of MPF files are located in the Desktop\Pinball folder.  The Desktop folder on Windows 10 is located at \Users\YourUserName\Desktop.  This includes the Desktop\Pinball\mpf-docs folder which includes the current MPF 0.30 documentation that I need to do a couple updates for the OPP configuration information.  Now I need to create the Desktop\Pinball\mpf-examples folder that has all the example code.  To do that, I right clicked in the Desktop\Pinball folder, and chose the Git GUI menu item.  That opens up the Git GUI.  Next I clicked Clone Existing Repository in the Git GUI program.  The source location is, and for the target directory, I browse to Desktop/pinball and add “/mpf-examples” to the directory name.  Note:  The folder does not exist and Git GUI feels it must create it by itself.  The target directory should have something C:/Users/YourUserName/Desktop/Pinball/mpf-examples in it.  Now press the clone button.  That will take a minute to finish.  I used to have to move the Git to the dev branch, but looking at the repository, it seems like the configuration files for demo man on the trunk are currently for 0.30 version of MPF.

Let’s try and get it running.  So now open up two command prompt windows.  (I still have one open from doing the original install, so I only have to open one.)  Run the “cd C:/Users/YourUserName/Desktop/Pinball/mpf-examples/demo_man” in each of the windows to get to the correct directory.  In the first window, I type “C:\Python34\python.exe -m mpf mc”.  Hey!  It says “Loading Assets: 100%” on the fake DMD window that it creates.  That sounds good.  In the second command window, I type “C:\Python34\python.exe -m mpf -x”.  The extra “-x” says that you don’t have any real hardware.   (I’m sure most people running MPF don’t actually have a Demo Man pinball machine sitting next to them.)  You should hear some fan fare play.  With the created “Mission Pinball Framework” as the active window, you can press ‘s’ to start a game.  ‘x’ gives you some points.  Hitting ‘b’ crashes it, and hitting ‘t’ sends it into tilt mode where I can’t figure out how to make it recover.  The only thing that really matters is that it is working.  You can close out the program by closing the “Mission Pinball Framework” window.

That seemed to be even a little easier than the last time I installed MPF.   Next up will be trying to move the little bit of SS3 MPF 0.21 script files that I have over to MPF 0.30.  That should show the SS3 attract mode which would be a nice next step.

6/12/2016 – Where does this site go from here?

The Kickstarter is over and completed.  (Yes, I still have to send stickers to a couple people), but all the supporters have been sent their packages.  I’m still working on rewiring the SS3 playfield so that I can start running the Gen2 cards on it, but that is a background task that I’m not looking forward to, so it is going very slowly.  I’ve been rolling around in my head ideas on where I want the site to go from this point.

The people who supported the Kickstarter will need support, so questions that they ask and how to address them will be written up on this blog.  That isn’t going to be a lot of stuff and it will probably be pretty sporadic.

After much consideration, I think that I will blog about converting the SS3 rules to Mission Pinball Framework (MPF).  There is a lot of information on their site about how to do things, but it seems like many things can be done multiple ways.  I’m going to try and give insight into why I wrote my scripts in the way that I did, and what choices I made.  I’ve already completely coded SS3 in Python, so this will give an interesting perspective into scripts vs straight Python coding.

I’m going to focus only on the 0.30 branch of MPF.  It seems that the people who are driving MPF are trying to let the 0.21 branch die and move on from there.  MPF 0.21 is based on Python 2.7, while MPF 0.30 is based on Python 3.x.  There were some major changes between those versions of Python, so it will be a little bit of a learning curve for me.

The other nice thing is that I have my own code repository.  (Well, Source Forge does and it contains all of my source code).  I should be able to point to the exact version of source code that I’m currently working on, and with a few clicks, you can go back in time and see what the code looked like at that point.  Many times people write about issues they were having, but the code has morphed significantly from the time they were having issues to the current time.  Since all of my code is in the repository, I can simply say, at this point, I’m on version 240 of the repository.  When you grab the repository, you can say that you want to see version 240, and that allows you to go “back in time” to that point in development.  That will allow people to follow fixes and changes at their own pace, and even go back a couple years, and see how I solved certain things.

I’m pretty excited about that aspect of it.  (I’m not exciting to go back down to the basement and keep working on the rewire, but it is simply the drudgery that must be done.)  Much of the issue comes from the fact that I don’t want to simply rip off all the wires and start from scratch, but maybe that would have been easier in the long run.  Oh well, we will see.

I have a bunch of other blog entries that I want to write up too.  At some point I need to compare the current state of the OPP hardware with PROC and Fast.  It’s been something I’ve been meaning to do for over a year, but never got around to it.  The last blog entry that I need to write up is going the after the fact on the Kickstarter.  How much did Kickstarter take in fees?  Did I make money, or did I fall into a hole with all the shipping to different countries?  (I did have a box which cost about $34 to ship.  Didn’t see that one coming).

Pintastic New England is coming on July 8th & 9th.  I’m going to be on a panel about the state of homebrew pinball on Friday at 4:00 pm.  Stop by if you have a chance, and say hi.  I’ve never been on a panel before, so we will see how that goes.   Hopefully we will get some interesting questions.  I’m particularly interested in talking to mocean who is also supposed to be on the panel.

That’s all I can think of at this point.  Hopefully it will be interesting enough so people can continue to get good information from the blog.