Just adding to the chorus of appreciations here: Thank you, DJRobX!
Posted 28 October 2016 - 09:55 PM
Is it possible that someone throw summary about: how to run VPX tables in hyperpin or pinballx from start to finish with B2S, lost focus problem, DMD size problem etc.
wishful thinking ;>
I will take a stab at fixing the DMD size when ddraw=0 problem in VPM. That's at least something I understand and have control over.
Today i tried to improve your solution a bit by enabling bilinear filtering. But for whatever weird reason it does not work, no matter what i tried (and the same scheme works perfectly in VP for example).
The best i could find on the net is that it is not done for 'small bitmaps' because of some internal heuristic. WTF!
Posted 28 October 2016 - 10:06 PM
Terry, that sounds like it may be a PBX issue, although I have never seen it. Maybe check with tspiers over at his forum.
Regarding the new "alt tab" fix... I just tested and it is working perfectly, even on games with a long launch delay. No alt-tab needed, no screen flicker as it gives priority back to the playfield... perfect! Thanks DJRobX, and thanks toxie and fuzzel for getting this fix into VPX.
So, with the DMD re-sizing and playfield alt-tabbing fixed, I was pondering whether this thread is obsolete... but the last remaining issue that I would refer people here for, is the rom error with DDraw not at zero. So I'm wondering... with the recent VPM fix, would it be possible to force DDraw to zero when using true fullscreen and retire this thread, or is there still a reason to keep the option?
Posted 28 October 2016 - 11:02 PM
Posted 28 October 2016 - 11:33 PM
Is it possible that someone throw summary about: how to run VPX tables in hyperpin or pinballx from start to finish with B2S, lost focus problem, DMD size problem etc.
wishful thinking ;>
I will take a stab at fixing the DMD size when ddraw=0 problem in VPM. That's at least something I understand and have control over.
Today i tried to improve your solution a bit by enabling bilinear filtering. But for whatever weird reason it does not work, no matter what i tried (and the same scheme works perfectly in VP for example).
The best i could find on the net is that it is not done for 'small bitmaps' because of some internal heuristic. WTF!
Found a nice little standalone lib that is pretty fast that could do the job. Will sort out some more tiny details and then this will also be solved. ![]()
Posted 29 October 2016 - 12:56 AM
Thanks for fixing this and for fixing the scaling on the DMD as part of the bargain. No more custom resolutions! And I have a brighter display as well!
Looked up some past discussions on boosting the levels further:
Antialias may not be what you think:
http://www.vpforums....?showtopic=8173
Most who toy with this setting turn it lower than the default 50%. I have a p2k style cab that projects onto the playfield glass. I lose some detail so I actually bumped it up to 60%
Intensity settings:
http://www.vpforums....sity#entry36108
I'm going with 80 / 60 / 20
Posted 29 October 2016 - 06:40 AM
Thanks for fixing this and for fixing the scaling on the DMD as part of the bargain. No more custom resolutions! And I have a brighter display as well!
Looked up some past discussions on boosting the levels further:
Antialias may not be what you think:
http://www.vpforums....?showtopic=8173
Most who toy with this setting turn it lower than the default 50%. I have a p2k style cab that projects onto the playfield glass. I lose some detail so I actually bumped it up to 60%
Intensity settings:
http://www.vpforums....sity#entry36108
I'm going with 80 / 60 / 20
What are you using for a multiple for your DMD resolutions? (with ddraw=0)
I can't get a "clean" pixel perfect DMD anymore with this newer version no matter what "width or height" I use. My screen is 1366x768.
For my DMD with PinMAME, I tried:
1280x320... I get uneven DMD pixels.
I tried 777x201, which before (with the older version) would make a perfect multiple of 128x32 (with the extra border pixels) and give 768x192. With the newer version this doesn't work correctly either.
Any ideas?
Posted 29 October 2016 - 06:54 AM
Tried with VP10.2 2825 on my windows 10 PC this works great to keep Visual Pinball from loosing focus and fixes my problems completely on the Visual Pinball side. However I am still getting the direct2bs missing file error in PinballX. Looks like we are getting closer thanks again DJRobX
Have you tried an older PinballX? The stuff Tom added to try and make this work before the focus fix to VP break things for me also. I just run an older version and everything works well.
Edited by DJRobX, 29 October 2016 - 06:55 AM.
Posted 29 October 2016 - 07:07 AM
Before you close this thread are these the steps to get full screen running: 1. Update to newest version of vpx and select full screen option. 2. Update newest version of vpinmame. 3. Add the code to the tables that DJRobX posted in this thread. Is this the correct steps?
The line of code goes into VP, which Toxie has integrated.
So I'm wondering... with the recent VPM fix, would it be possible to force DDraw to zero when using true fullscreen and retire this thread, or is there still a reason to keep the option?
Unfortunately no. There's no simple way to do that automatically. VPM doesn't know anything about VP unless you explicitly tell it to pass something along in the table script. We could go crazy and add something to core.vbs, but I see this whole thing as a stop-gap solution until VP gets a 2nd screen DMD renderer built into it. It shouldn't be that difficult for VP to throw up another D3D window and copy the display bits (like it does now for on-table DMD rendering).
I think writing the user interface to configure it and make it somehow backwards compatible to other tables that want to use VPM directly will be the hard part.
Posted 29 October 2016 - 10:59 AM
No worries... that element is definitely the least problematic because there is already a simple registry setting to straighten it out. I'm thinking there will probably be a new wave of people with questions about how that works since true fullscreen is becoming more and more appealing with all these nice new developments, but all the information on how to set it up is already in this thread.
Thanks again.
Posted 29 October 2016 - 05:03 PM
I tried 777x201, which before (with the older version) would make a perfect multiple of 128x32 (with the extra border pixels) and give 768x192. With the newer version this doesn't work correctly either.
Any ideas?
The source is 259 pixels wide and 67 pixels tall, so 777x201 ought to work. I'll check that out.
*Edit*
So when the target window size gets bigger MAME does something a little different, the source rect changes to 257 * 65. So you need 771 x 195 for pixel perfect. The pixels look correct to me at that size.
Edited by DJRobX, 29 October 2016 - 05:37 PM.
Posted 29 October 2016 - 05:50 PM
Hmm, I thought it was multiples of 256 x 64 then add 3 px for extra border.
http://www.vpforums....901#entry254508
Before the scaling fix, I was using 771 x 195 (771 x 259 for the big SEGA displays).
Edited by Carny_Priest, 29 October 2016 - 05:53 PM.
Posted 29 October 2016 - 06:12 PM
Tried with VP10.2 2825 on my windows 10 PC this works great to keep Visual Pinball from loosing focus and fixes my problems completely on the Visual Pinball side. However I am still getting the direct2bs missing file error in PinballX. Looks like we are getting closer thanks again DJRobX
Have you tried an older PinballX? The stuff Tom added to try and make this work before the focus fix to VP break things for me also. I just run an older version and everything works well.
Any idea on where to get older versions of pinball x? I only see 2.27
Posted 29 October 2016 - 08:33 PM
I tried 777x201, which before (with the older version) would make a perfect multiple of 128x32 (with the extra border pixels) and give 768x192. With the newer version this doesn't work correctly either.
Any ideas?
The source is 259 pixels wide and 67 pixels tall, so 777x201 ought to work. I'll check that out.
*Edit*
So when the target window size gets bigger MAME does something a little different, the source rect changes to 257 * 65. So you need 771 x 195 for pixel perfect. The pixels look correct to me at that size.
This is EXACTLY what I needed to know.
Now the base value that we need to multiply is 257x65.... so I just multiplied that by 5 for 1285x325 for my 1366x768 resolution dmd monitor....and it works PERFECT! Now I just have ALL of my PinMAME games set to ddraw=0, not just vpx tables, and I make that my default so that new tables ran for the first time will work no matter what.... vp9, pm5, or vp10!
The easy way to make this change was to just export my current pinmame settings from the registry, and then use notepad to do a "REPLACE" of all the " ddraw - dmd width height - dmd x y " settings with the new values.
I could use "setdmd" to do this, but that will mess up all of my tables that need to have their ror rol values changed for rotation.
I have anti-alias set to 0 so that the dmd pixels are perfect and clean.
So now we have VPX 10.2 which works in exclusive fullscreen with no "focus" issues anymore (no need for alt-tab fixes) and it runs silky smooth... and we can now have our DMDs set to any size we want with ddraw=0 with pixel perfect dmds thanks to DJRobX's fixes! (I just need to find a fix for some B2S files not loading with VPX when launched from PBX)
Great work!
Tried with VP10.2 2825 on my windows 10 PC this works great to keep Visual Pinball from loosing focus and fixes my problems completely on the Visual Pinball side. However I am still getting the direct2bs missing file error in PinballX. Looks like we are getting closer thanks again DJRobX
Have you tried an older PinballX? The stuff Tom added to try and make this work before the focus fix to VP break things for me also. I just run an older version and everything works well.
Any idea on where to get older versions of pinball x? I only see 2.27
You could always just use an "other" "custom" system in Pinball X for VPX, instead of the built in VP system. This will completely disable any built-in "fixes" that are used for VP, PFX2 or TPA.
I've done this on all of my systems, as I don't need those fixes, and some of them cause issues for my particular setup.
Edited by TerryRed, 29 October 2016 - 09:14 PM.
Posted 29 October 2016 - 10:20 PM
Hmm, I thought it was multiples of 256 x 64 then add 3 px for extra border.
http://www.vpforums....901#entry254508
Before the scaling fix, I was using 771 x 195 (771 x 259 for the big SEGA displays).
I got my numbers by stepping through the debugger and looking at the source that it was copying pre-scale. What's interesting is that I DID see 259x67, UNTIL I tried to resize the window! The VPM rendering stuff is kind of a nightmare. Instead of modular code that starts with raw DMD pixels then renders that to different types of outputs, there's a maze of "if" statements and size calculations that have tons of conditional checks based on a number of configurations settings, most of which seem defunct. For example, there's a "cleanstretch" setting that I have to assume was SUPPOSED to enable/disable the old scaling behavior, but it isn't honored in either ddraw=0 OR ddraw=1!
There's a reason nobody has tried to improve this thing in like a decade. LOL!
Edited by DJRobX, 29 October 2016 - 10:21 PM.
Posted 29 October 2016 - 10:52 PM
I know that we are getting off on a tangent here, but the remaining DMD scenario is how VPM renders tables with secondary DMD on the playfield such as the Whitestar games, monopoly, simpprty, ripleys or WPC-95, NBA Fastbreak. In a Setup/Test situation you can see these secondary displays rendered directly below the main display. In-game, the secondary display renders as black. Configuring these tables in the usual way produces a squashed aspect ratio. Before, I just knuckled down, set ddraw, and stretched vertically until it looked better. With the scaling fix, I went back through with a windows spy utility to try to measure this out. For my configuration, where I was shooting for 1600 x 400 px, it appeared to get very close if I went to 1600 x 550 px to account for that black bar. It would be even better to have some insight from the source to establish the settings to properly configure these tables as well.
Thanks for making these fixes to the scaler. It's been an issue forever!
By the way, on large B2S not loading with true full screen on PBX, I found that running Task Manager in the background solved by problem. All B2S loads every time. I can't explain why.
[Edit] Ran the install test function on Maverick and measured the client window with the spy utility. Looks like base size for these tables are 385 x 129. At least when I scale up by a factor of four, the output looks right.
As far as the tables with secondary DMD, I did the same thing with the spy utility. There is a little more trial and error here but at least for simpprty base size 257 x 89 looks real good to me. There are ten rows of dots to render in the playfield display. ripleys has seven rows of dots to render on the playfield display so the same base size as simpprty is close but not there yet. NBA Fastbreak renders segment displays on the playfield for the shot clock so that in turn may require a different base size.
Edited by Carny_Priest, 30 October 2016 - 02:01 AM.
Posted 30 October 2016 - 03:55 AM
The Whitestar DMD thing has always bothered me. I think those games just have an incorrect DMD size configuration. The secondary DMD is an extra thing relayed to the table as lights, and shouldn't matter for the main DMD (just like it doesn't on [BLEEP] tables that use an almost identical IO board).
Any idea on where to get older versions of pinball x? I only see 2.27
If you go to the PinballX download there's a drop-down box for a changelog. If you pick 2.25 a download link will appear. That version works fine for me, where 2.27 does not.
Posted 30 October 2016 - 04:10 AM
Ok, these are the candidate base size settings for VPM:
standard 128x32 DMD -> 257x65
128x16 DMD such as hook_408 -> 257x33
Sega 192x64 DMD -> 385x129
And then for tables with secondary displays on the playfield
monopoly -> 257x83
nba_f31 -> 257x94
ripleys -> 257x83
simpprty -> 257x89
I'm guessing hirolcas will be the same as monopoly as it is also rendering a seven row matrix. I no longer have that table installed.
I'm sure that there are more but these are the ones that I'm aware of at the moment.
So, to get pixel perfect output you would multiply the width and height by some integer and change the settings in the registry. Try these out and confirm.
Edited by Carny_Priest, 30 October 2016 - 04:13 AM.