MPF 0.80 + GMC (on Mac)

30 views
Skip to first unread message

Dan Wilder

unread,
Nov 24, 2025, 2:54:09 AM (6 days ago) Nov 24
to MPF Users
Hi all,
I’ve just started tinkering with my first pinball project and need some help.

For context: FAST Neuron with a Pi 4B plugged directly into the Neuron, running Pi OS Lite 32-bit Legacy (to support an older Python).
Dev env: macOS, Python 3.12.7 in a venv with MPF 0.80.0.dev11, Godot 4.5.1 with GMC lib 0.6.1.

My plan is to run everything on the Neuron’s Pi. I don’t really want to have a separate PC, but I’m struggling a little with validating how things might eventually look, been reading heaps of manual yet some things are still a little fuzzy.

#1
Could someone please tell me whether MPF 0.80 can address multiple instances of GMC apps, obviously using different addresses/ports (not only localhost:5050)? If not, can it control two physical HDMI-connected displays, or only the single default display connected to the same machine where MPF and GMC are running?

#2
I’ve been playing with GMC/Godot for a few days now, and it seems to be quite a challenge to run it as a standalone exported app. I’m not even trying to run it on my Pi yet, just experimenting on my Mac, and it has been a bit of a mission. Has anyone got a very straightforward cookbook on how to export an app so it can run on its own with all resources included, including the gmc.cfg file? Or am I getting it completely wrong? How it supposed to run in a final working pinball machine? I guess it's not a Godot editor that should run an app, right?

#3
I haven’t been able to run an exported Godot app, it fails to start due to incorrect resource paths. I had to rewrite the traverse_tree_for func to make it work, but I suspect I’m missing something obvious and would appreciate some direction. My goal is to compile my app and then run it on the Pi that is plugged into my Neuron.

I know I’m probably overcomplicating things but I just love tinkering – a working pinball machine isn’t really the goal, the goal is to make a crazy working pinball machine :D

Your help will be much appreciated!

Cheers!

Anthony van Winkle

unread,
Nov 24, 2025, 9:02:52 PM (5 days ago) Nov 24
to MPF Users
Hello Dan, and welcome to MPF!

#1
Technically MPF can connect to any number of BCP instances, including multiple GMC instances, but this hasn't really be tested very much. GMC has no problem running multiple displays, although usually it's configured that GMC outputs a single window of extra-large resolution and the OS spreads that large framebuffer across multiple screens. It gets a bit technical but it's definitely doable.

#2
I haven't written a guide on export GMC projects yet but it's also doable. The first thing to note is that non-Godot-native files need to be explicitly included in the Export Settings > Resources > Filters to export non-resource files. The important one is *.cfg to get the configuration in there, but you'll also want *.ogv if you have videos or any other resources besides scenes, sounds, and images.

#3
The tree traversal export issue is a known thing I've been procrastinating on, but you've prompted me to get it fixed and here's a PR that ought to take care of it: https://github.com/missionpinball/mpf-gmc/pull/40. But in the meantime you can delete lines 85-88 in media.gd to bypass the issue (so long as you aren't using a custom root for your media).

#Also
  • Generally speaking an RPi4 is strongly discouraged for games that have screens, but the RPi5 is a rock star and works very well. You may save a lot of headache if you boost up to the 5. And Python 3.12+ and 64-bit will be your friend there too.
  • Exported builds are difficult to debug and slow to iterate on, so the recommended setup is to have your development computer connected to the Neuron most of the time and run the game from there. If you want to take it to a show or have it ready-to-play for a party or something, switch over to the onboard computer for the duration.
For encouragement, know that when I say things are "doable" I mean that's exactly what I'm doing in my current game: an RPi5 mounted on the Neuron, running dual HDMI to two separate displays, with a standalone godot binary exported from my mac. So don't worry, you're on the right track!

-Anthony

Dan

unread,
Nov 24, 2025, 10:18:15 PM (5 days ago) Nov 24
to MPF Users
Hi Anthony,
thanks a bunch! that’s really helpful and honestly quite encouraging.
I’m building this machine purely for my own fun, not planning to take it anywhere. we don’t really have any shows here in New Zealand anyway :-)))

Good point about the Pi 5 I just had a 4 sitting in a drawer and figured I’d start with that. My plan was to run a big main screen and a smaller secondary one with a different resolution, so when I read about the virtual screen (the large framebuffer) I wasn’t entirely sure how well that would work, but I’ll give it a go when I get to that stage.
Initially I was thinking about using a few Pi Zeros with little 2.4" LCDs stuck to them, all on the same network as the main Pi and talking back to MPF.
But last night I had another idea: connecting the little Pi Zeros directly to the FAST network and driving the content through that Pi’s GPIOs. I’m still not sure what the best or easiest way is to trigger a simple animation on a small LCD based on events coming from MPF, using a Pi as a FAST switch seems like a waste of FAST resources but might be the only way?

As for the exported app bundle — I couldn’t get it running at all without fixing the function. I think I tried adding *.cfg explicitly but that didn’t work either… thanks a lot for jumping on this straight away and patching it. I’ll give it a whirl shortly and confirm whether it works for me. I’ll make sure I add my media stuff explicitly too.

Cheers!
Reply all
Reply to author
Forward
0 new messages