Jump to content



Photo
* * * * * 1 votes

True Full screen in VP 10.1 loses focus - requires Alt-tab


  • Please log in to reply
373 replies to this topic

#261 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 28 October 2016 - 08:28 PM

Just adding to the chorus of appreciations here: Thank you, DJRobX! 

 

:D 



#262 TerryRed

TerryRed

    Pinball Fan

  • Silver Supporter
  • 1,960 posts

  • Flag: Canada

  • Favorite Pinball: Too many to choose...

Contributor

Posted 28 October 2016 - 09:50 PM

Working great here as well. Thanks.

 

Still have the issue with: some B2S files won't load when VPX is in full screen, and launched from PBX.  Not many of them though.



#263 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

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!



#264 Drybonz

Drybonz

    Really bad at pinball, but having fun.

  • Members
  • PipPipPipPip
  • 1,538 posts

  • Flag: ---------

  • Favorite Pinball: Theatre of Magic

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?



#265 Umpa

Umpa

    Pinball Fan

  • Members
  • PipPipPipPip
  • 740 posts

  • Flag: United States of America

  • Favorite Pinball: AC/DC

Posted 28 October 2016 - 11:02 PM

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?

#266 toxie

toxie

    VPF Veteran

  • VP Dev Team
  • PipPipPipPipPipPip
  • 5,734 posts
  • Location:berlin, germany

  • Flag: Germany

  • Favorite Pinball: AFM

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. :)



#267 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

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



#268 TerryRed

TerryRed

    Pinball Fan

  • Silver Supporter
  • 1,960 posts

  • Flag: Canada

  • Favorite Pinball: Too many to choose...

Contributor

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?



#269 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

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.


#270 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

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.



#271 Drybonz

Drybonz

    Really bad at pinball, but having fun.

  • Members
  • PipPipPipPip
  • 1,538 posts

  • Flag: ---------

  • Favorite Pinball: Theatre of Magic

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.



#272 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

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.


#273 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

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.


#274 osujd

osujd

    Enthusiast

  • Silver Supporter
  • 74 posts

  • Flag: ---------

  • Favorite Pinball: TAF

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



#275 TerryRed

TerryRed

    Pinball Fan

  • Silver Supporter
  • 1,960 posts

  • Flag: Canada

  • Favorite Pinball: Too many to choose...

Contributor

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.


#276 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

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.


#277 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

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.


#278 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

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.  



#279 Carny_Priest

Carny_Priest

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,257 posts
  • Location:Austin, TX

  • Flag: United States of America

  • Favorite Pinball: EATPM

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.


#280 gStAv

gStAv

    Pinball Lover

  • Members
  • PipPipPipPip
  • 1,331 posts

  • Flag: Sweden

  • Favorite Pinball: TOM, IJ, AFM, WC94

Posted 30 October 2016 - 11:33 AM

maybe a side note here, but how's your load time when using true fullscreen vpx + px?

I experience like 40 sec load time now.

 

No probs though as it works when loaded. Just feels like it have doubled after the true full screen implementation.

 

cheers


3rs054-6.png