freezy / dmd-extensions

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

[DLL] VPM ROM settings are not saved when started with PBX #31

Closed sverrewl closed 7 years ago

sverrewl commented 7 years ago

Using latest 1.5 it seems that VP tables always crash after exit on PinDMD3. Features like using camera to setup things like layback is kind of useless with this happening.

freezy commented 7 years ago

Thanks, got a few crash reports about that one. :)

Can you try this build and see if it's fixed? Cheers!

DmdDevice.zip

sverrewl commented 7 years ago

Thumbs up - works great. Thank you so much !

sverrewl commented 7 years ago

Was a tad to early on the feedback. I believe this still to be dmddevice related. Now everything is working except when run through PBX. On table exit it dies. Run a table add coins exit. Restart table - no credits available. If you get GC score, it is gone. Only resolution so far for this issue is to go back to the release that comes with SAM 2.8b. 66 bytes in size.

freezy commented 7 years ago

A log would be helpful and also a screenshot or .ini snippet of PBX would be good in order to reproduce.

sverrewl commented 7 years ago

Using your dmddevice.dll instead of lucky1' - dmd == black. Log from PBX is exactly like when working.

15:52:01.4  15.02.2017:  PinballX - Version 2.28
15:52:01.4  15.02.2017:  Windows 7 Ultimate Service Pack 1 64-bit (7,9638671875GB)
15:52:01.4  15.02.2017:  Loading Settings
15:52:01.4  15.02.2017:  Initialize Component
15:52:01.5  15.02.2017:  Initialize Display
15:52:02.5  15.02.2017:  Loading PlugIns
15:52:02.6  15.02.2017:  Created DirectX BackGlass Window
15:52:02.7  15.02.2017:  Hiding Cursor
15:52:02.7  15.02.2017:  Hiding Taskbar
15:52:02.7  15.02.2017:  Real DMD Intialized
15:52:02.7  15.02.2017:  CPU:  Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
15:52:02.7  15.02.2017:  GPU 1: NVIDIA GeForce GTX 750 Ti
15:52:02.7  15.02.2017:  Displays: 2
15:52:03.0  15.02.2017:  Load Game List
15:52:03.0  15.02.2017:  Loading Database: Visual Pinball
15:52:03.0  15.02.2017:  Loading Database: Physmod5
15:52:03.0  15.02.2017:  Loading Database: VP9_Tables
15:52:03.0  15.02.2017:  Finding and matching artwork and videos
15:52:03.7  15.02.2017:  Loading Game Statistics and Scores
15:52:03.8  15.02.2017:  Main display running full screen windowed.
15:52:03.8  15.02.2017:  Loading Surfaces
15:52:04.2  15.02.2017:  Finished Loading Surfaces
15:52:04.2  15.02.2017:  Initialize Audio
15:52:04.2  15.02.2017:  Set Keyboard Controls
15:52:04.2  15.02.2017:  Initialize Joystick
15:52:04.3  15.02.2017:  1 Joystick Attached
15:52:04.3  15.02.2017:  Started
15:52:08.6  15.02.2017:  Launch System
15:52:08.6  15.02.2017:  Waiting for threads
15:52:08.6  15.02.2017:  Disposing display
15:52:09.9  15.02.2017:  C:\Visual_Pinball\VPinballX.exe /play -"C:\Visual_Pinball\Tables\VPX\Junk Yard_VPX_1_3.vpx"
15:52:10.4  15.02.2017:  C:\PinballX\vpauto.exe 
15:52:15.6  15.02.2017:  Found PinMAME ROM: genie.nv
15:52:19.1  15.02.2017:  Hidden Visual Pinball Editor Window
15:52:26.5  15.02.2017:  Exit System Control Pressed
15:52:33.8  15.02.2017:  C:\pacfix\run_after_pinballx.cmd 
15:52:38.0  15.02.2017:  Created DirectX BackGlass Window
15:52:38.0  15.02.2017:  Real DMD Intialized
15:52:38.0  15.02.2017:  Main display running full screen windowed.
15:52:41.9  15.02.2017:  Exiting
15:52:41.9  15.02.2017:  Showing Taskbar
15:52:41.9  15.02.2017:  Unhiding Mouse Cursor
15:52:41.9  15.02.2017:  Disposing Plugins
15:52:41.9  15.02.2017:  Saving Settings
15:52:41.9  15.02.2017:  Bye

So, in fact 2 different dmddevice.dll - yours in VP, lucky1 in PBX and UltraDMD works. I wouldn't have noticed that there is a problem if it hasn't been for that I play for high-scores and they didn't get saved. Load a table, add some coins, start a game, exit, reload table and the coin is one more than you would expect. Grand Champion is kind of essential for most, Pinball is all about setting those as high as possible :-)

Attached pinballx.ini and post_run_script

PinballX._ni.txt run_after_pinballx_cmd.txt

freezy commented 7 years ago

Hang on, isn't Grand Champion an EM Game? How is the DMD relevant?

sverrewl commented 7 years ago

Haha. No any DMD table - high-score ... where you put your name in .. after you exit, the old score is still there. Might be a EM table - idk ... but, I'm not that stupid :)

freezy commented 7 years ago

Okay, so to summarize, when launching an SS game from PBX and the dmdext DLL, high-scores (or any ROM settings) don't get saved.

However, they get saved when:

That's the conclusion? And you suspect something smelly with UltraDMD being used in PBX through yet another dmddevice.dll?

sverrewl commented 7 years ago

Yes, thats my conclusion - or, I should say I'm not 100% sure that any earlier dmdext.dll used to work perfectly. It was only by chance that I noticed this bug. I played a hell of a game with exactly the dll you posted earlier in this thread ... streaming and all. Then I noticed because I set a great score that it was lost and the debug began.

UltraDMD - not sure. I don't play that much original tables. I simply can't get any table to perform very well with it. FPS seems to drop to a crawl. What I do notice is that UltraDMD doesn't exit cleanly - and if played via PBX - since I use DMD in the menues, PBX can't re-open DMD and starts to complain. PinDMD not found.

That is why I do kill it in the post-script. Would love if it was possible to ask ultradmd to exit via VP script eg. table1_exit() ... like controller.stop or something.

freezy commented 7 years ago

Okay so if you could try one more thing: Since your kill script is only used for UltraDMD tables anyway, could you disable it and see if that changes anything?

I'll try to reproduce this, but I've never set up UltraDMD for PBX. Meanwhile if you remember which dmdext DLL used to work with your setup, that would be interesting as well.

sverrewl commented 7 years ago

Back. Unfortunately no change. All in on installer does install the UltraDMD in VP\XDMD. As PinDMD3 user you only replace those xdmd.dll and xdmdnative.dll with the ones lucky1 provided. And add the dmddevice.dll. My guess is that you need to use lucky1' to get it working.

sverrewl commented 7 years ago

Update : Don't longer believe it is dmddevice.dll alone that is the problem I'm seeing. I had forgotten that I'm running a special build from DjRobX

http://vpuniverse.com/forums/forums/topic/2687-code-change-to-enable-sam-le-driver-board-support/?do=findComment&comment=33050

If I run official, nvram seems to be saved. So we should close this case. I still have crashes, but, as I see it It can't be just dmddevice.dll related.

Functionality request - I would love if we could get a simply "dmdext play -s 1 -f filename.png". Play image for 1 second and exit ( not clearing dmd afterwards ).

freezy commented 7 years ago

Thanks for the update. Can you create a new issue for the other feature request?

On Feb 19, 2017 14:37, "Sverre Winge Larsson" notifications@github.com wrote:

Update : Don't longer believe it is dmddevice.dll alone that is the problem I'm seeing. I had forgotten that I'm running a special build from DjRobX

http://vpuniverse.com/forums/forums/topic/2687-code-change- to-enable-sam-le-driver-board-support/?do=findComment&comment=33050

If I run official, nvram seems to be saved. So we should close this case. I still have crashes, but, as I see it It can't be just dmddevice.dll related.

Functionality request - I would love if we could get a simply "dmdext play -s 1 -f filename.png". Play image for 1 second and exit ( not clearing dmd afterwards ).

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/freezy/dmd-extensions/issues/31#issuecomment-280919654, or mute the thread https://github.com/notifications/unsubscribe-auth/AAETGvMYYjK4xTO1wVZJ4E93pwnhYKdMks5reEWagaJpZM4Lx8DC .