Added Pinball FX Classic in addition to Pinball FX3#554
Added Pinball FX Classic in addition to Pinball FX3#554bhitney wants to merge 4 commits intofreezy:masterfrom
Conversation
|
This version works great in my cabinet. Makes DMDExt memory grabber work with Pinball FX Classic. |
|
Sorry, completely missed this one. Did they just rename it, or is there a real new version? |
|
Zen pushed out an update that rebranded Pinball FX3 to “Pinball FX Classic”… which broke the memory grabber in DMDExt (because the process name is no longer ‘Pinball FX3'). This pull request fixes it. Also requires that you launch DMDext with the updated "source" parameter, like this: dmdext mirror --source=pinballfxclassic --no-virtual I tested it in my cabinet using bhitney's fork, here: https://github.com/bhitney/dmd-extensions/actions/runs/23983252777 |
I believe they just renamed it (I have not gotten any confirmation from Zen on this). The old could be deleted or left for backward compat? |
|
How about just modifying the current driver then instead of adding another one? I suppose most of this PR is duplicated code? |
|
That's good, too (I mentioned in the issue I wasn't sure if preferred renaming or adding.) I chose to add so if someone updated DMDExt but not FX3, it wouldn't break. (Why would someone do that? Not really sure. Figured adding was safer.) |
|
How about just checking both process names and grabbing the first match? That wouldn't break BC and changes would be minimal. |
|
I don't think there's a wrong approach, but the way the PinballFXGrabber is defined made that a bit more complicated (though this is just after a casual look, I don't know it well): One option is to change the GetProcessName to return an IEnumerable instead of string, then change the FindHandle and wherever else to account for that. That leaves the console arguments untouched. Or, shim in something in the command line parsing that source=PinballFX3 or source=PinballFXClassic maps to the same PinballFX3Grabber, but that wouldn't be too elegant I don't think. Another option is to dynamically pass a processname override command line argument, for future flexibility. In the end, my thinking was simplicity - deprecate the old PinballFX3 in this version so nothing is at risk of breaking while adding support for the new version, then remove it in the following version. But I'm good either way, if you want to match both process names let me know how you'd like that implemented. |
|
I think changing |
Added support for Pinball FX Classic, copied from Pinball FX3. Left Pinball FX3 as-is for compatibility.