freezy / dmd-extensions

A toolbox for virtual pinball dot matrix displays.
GNU General Public License v2.0
132 stars 55 forks source link

PBFX3 upgrade issue #73

Closed rablack97 closed 7 years ago

rablack97 commented 7 years ago

Hello Freezy,

I've noticed that when booting a PBFX3 table, the table plays fine, but the tool seems to be altering the dmd. After exit, dmdext doesn't seem to kill itself and then any game on any other emulator displays the dmd as all red. I have to reset the Pin2DMD to unhang it and then its fine. This is only on PBFX3 tables, it does not do this if i launch a PBFX3 table.

I've also had to execute your file twice to get it to work in my scripts.

; <COMPILER: v1.1.22.09>
#NoEnv
#SingleInstance force
#WinActivateForce
SetTitleMatchMode, 3
DetectHiddenWindows, On
Sleep, 4000
Run, c:\DirectOutput\Doflinx.exe
Sleep, 2000
dmdext_Path=c:\dmdext
Run, %dmdext_Path%\dmdext.exe mirror --source=pinballfx3 --no-virtual,, Hide
Sleep, 1000
Run, %dmdext_Path%\dmdext.exe mirror --source=pinballfx3 --no-virtual,, Hide
exitapp

I run this script when the table exits, and in some instances, the dmdext processes are still running. Which causes the dmd to not display anything at PBX table select. However, even if the script does kill it, the DMD is still hung on displaying nothing but red until reset on any other table.

; <COMPILER: v1.1.22.09>
IfWinExist, DOF Linx for Pinball Emulators
WinCLose, DOF Linx for Pinball Emulators
Process, Close, DofLinx.exe
sleep, 500
Process, Close, DofLinx.exe
sleep, 500
Process, Close, dmdext.exe
Sleep, 500
Process, Close, dmdext.exe
Sleep, 500
Process, Close, dmdext.exe
Sleep, 500
Process, Close, dmdext.exe
exitapp

I know you will want a log, but not sure where that would be, i only see 2 log config files.

freezy commented 7 years ago

Hmm even with the -q parameter it doesn't quit?

The log is what's printed on the console when running dmdext.

rablack97 commented 7 years ago

Lost me on the console part?

Where would i put the -q parameter in script, wouldn't that run it and immediately kill it?

rablack97 commented 7 years ago

dmdext.zip

rablack97 commented 7 years ago

those are the 2 log files out of the folder

rablack97 commented 7 years ago

like this, the comma is throwing me off..

Run, %dmdext_Path%\dmdext.exe mirror --source=pinballfx3 --no-virtual -q, --quit-when-done,, Hide

freezy commented 7 years ago

From the doc:

  -q, --quit-when-done     Exit the program when finished, e.g. when Pinball
                           FX2 doesn't receive any frames anymore. Default:
                           false

When you have a problem, it's best to isolate it in order to find out from where it actually originates. In this case, that means running dmdext not through AHK but directly on a console to see if the same thing happens.

If it works, then you can tweak your AHK script. If it doesn't, then we can examine further. Concretely that means: Run dmdext in a command prompt (aka "console") as described in the documentation and try to reproduce the error.

rablack97 commented 7 years ago

TY sir, all fixed up, adding destination=pin2dmd and -q fixed it. It also fixed having to execute dmdext twice. I think the auto was my problem as that tried to output to all available devices. Works perfectly in fx2 and fx3.

Run, %dmdext_Path%\dmdext.exe mirror --source=pinballfx3 --destination=pin2dmd --no-virtual -q,, Hide

freezy commented 7 years ago

You're welcome!