PDA

View Full Version : Windows 10 Fullscreen glitches out



phly95
12-21-2016, 03:33 PM
Zelda Classic on Windows 10 seems to not work in fullscreen mode unless using a program called DXGL. Is anyone else having this issue and is there a way to fix it for newer versions of Windows?

War Lord
12-21-2016, 04:04 PM
Which version? I do believe there are issues with some of the older versions though I have not tested it myself.
I'm running the latest stable version on Windows 10 without issue, as are others.

BFeely
12-21-2016, 10:23 PM
Zelda Classic on Windows 10 seems to not work in fullscreen mode unless using a program called DXGL. Is anyone else having this issue and is there a way to fix it for newer versions of Windows?

Windows 10 (and also Windows 8/8.1) only support 32-bit color. The reason DXGL works is because it advertises 8, 16, and 24-bit color modes even if the version of Windows doesn't support them, and fully emulates the low-color modes.

Without DXGL, you can attempt to make Windows emulate 8-bit color (which is what ZC uses) by right clicking on zelda-w.exe and selecting Properties. In the Compatibility tab check "Reduced color mode" and from the dropdown make sure "8-bit (256) color" is selected.

If this works, it should also work on Windows 8 and 8.1, however there may be a severe loss of performance due to a DirectDraw bug in those versions. DXGL is not affected by this bug though because it uses OpenGL in 32-bit color mode.

Saffith
12-21-2016, 11:00 PM
In ag.cfg, find the doublebuffer setting and be sure it's set to 1. That seems to fix a lot of these issues.

XMuppetSB
12-22-2016, 02:37 AM
In ag.cfg, find the doublebuffer setting and be sure it's set to 1. That seems to fix a lot of these issues.

Well, I tried changing this setting to 1 and the full screen mode still didn't work for ZC or ZQuest.

phly95
12-22-2016, 02:42 AM
Actually, after using the latest beta, it seems to have resolved the problem. The stable version seems to be what is causing issues.

XMuppetSB
12-22-2016, 02:46 AM
Actually, after using the latest beta, it seems to have resolved the problem. The stable version seems to be what is causing issues.

I'm actually having these problems with the latest beta, which is 2.50.3 RC1.

Gleeok
12-22-2016, 04:10 AM
We should probably start asking what DirectX (Direct3D)version and graphics card users have when reporting this problem.

Would set_gfx_mode(GFX_SAFE) be any different? Also, it might be useful to print out all the fields for gfx_capabilities in allegro.log just to see if there's some correlation there. Because right now I'm out of ideas.

ZoriaRPG
12-22-2016, 10:29 AM
We should probably start asking what DirectX (Direct3D)version and graphics card users have when reporting this problem.

Would set_gfx_mode(GFX_SAFE) be any different? Also, it might be useful to print out all the fields for gfx_capabilities in allegro.log just to see if there's some correlation there. Because right now I'm out of ideas.

The build using allegro 4.4.3 doesn't have that blue flicker, but it does have an issue where ZC outright crashes when it tries to play any non-midi music. (It also fixed at least one long-standing KB issue.) 4.4.3 uses DirectX 8, instead of DirectX 7, which is likely beneficial.

If you, or Saffith, or DarkDragon want to help debug it and figure out why the audio is causing it to crash, I could port over the allegro changes easily enough.

This crash occurs with the Windows build (http://timelord.insomnia247.nl/zc/zc_dev/ZC_2.54_Beta_39_Allegro_4.4.3.zip). The Linux build has no audio at all, at all.

Source (http://timelord.insomnia247.nl/zc/zc_dev/ZC_2.54_Sources_Beta_39_Allegro_4.4.3.zip), if you want to examine it.

DarkDragon
12-24-2016, 03:40 AM
Zelda Classic crashes reliably for me if I try to alt-tab out of fullscreen mode. The segfault occurs deep inside the Windows DirectDraw library (and the cause is almost certainly the (mis)use of hardware surfaces).

I have a GeForce GTX 980 Ti and Direct3D version 12.

Gleeok
12-24-2016, 04:02 AM
Do any other allegro 4 games or any one of the the allegro examples work at all on Windows 10 machines that also crash ZC?

ZoriaRPG
12-24-2016, 12:06 PM
Zelda Classic crashes reliably for me if I try to alt-tab out of fullscreen mode. The segfault occurs deep inside the Windows DirectDraw library (and the cause is almost certainly the (mis)use of hardware surfaces).

I have a GeForce GTX 980 Ti and Direct3D version 12.

DarkDragon: Would you these binaries (http://timelord.insomnia247.nl/zc/zc_dev/zc_ag443.zip) please, and inform me if it does the same thing:

1. Open the ZQuest binary, then make a blank custom quest, and save it.
2. Open the ZC binary skipping the intro screen.
3. Open the custom quest that you saved, and see if you can alt+tab safely, or if it still crashes.

The intro screen in that build, and some music stuff is still unstable, but I'd like to know if it resolves your issue otherwise. We're working on making this bastard branch stable, but it's a slow process.

DarkDragon
12-24-2016, 01:12 PM
The executable will not run with my version of alleg42.dll. Did you recompile Allegro with a different toolchain?

ZoriaRPG
12-24-2016, 02:01 PM
The executable will not run with my version of alleg42.dll. Did you recompile Allegro with a different toolchain?

[Frack, I hit edit instead of quote. Fixed.]


Oops, I forgot to include the libs.

Recompiling allegro was of course, mandatory for this, and something went awry...The obvious suspect is alogg, which has been deprecated by logg.

Make a backup of alleg42.dll, and libzcsound.dll and temporarily replace them with the libs in this pakage (http://timelord.insomnia247.nl/zc/zc_dev/zc_ag443.zip).

alleg44.dll can live perpetually, but I forgot to fix things a bit, and it still pumped out alleg42.dll, despite this library actually being 4.4, as a special dep. We'll eventually remedy that. Suffice to say, that it needs both the included ag44.dll and the included ag42.dll to run, and that this ag.42.dll differs from the one in the 2.50.3 package, so you will need to rename the existing library, and drop this in, or just duplicate the directory and drop in everything. Likewise, libzcsound.dll is also different, as it uses the allegro 4.4.3 packfile password functions.

Those are the root of all evils, with regards to the migration.

Gleeok
12-25-2016, 05:25 AM
Alright, after hours of banging my head raging against the dying of the light dealing with Micro$oft raping myself with Windows 10 contemplating suicide getting ready to drink myself into a coma messing with ZC on my super-awesome engineering-marvel-of-the-world Windows 10 machine, I conclude that it basically works the same as on Windows 7 except that it even worse in the managing FPS department and it indeed does crash toggling fullscreen mode. I couldn't get very far in DirectX layer either; it seems to run through some compatibility layer and I have no idea how it works. It has an AMD card in it, and GPU debugging was not very successful. Aside from that, it runs surprisingly well.

Why does ZC still default to fullscreen though? I thought I changed that years ago.

ZoriaRPG
12-25-2016, 01:47 PM
Alright, after hours of banging my head raging against the dying of the light dealing with Micro$oft raping myself with Windows 10 contemplating suicide getting ready to drink myself into a coma messing with ZC on my super-awesome engineering-marvel-of-the-world Windows 10 machine, I conclude that it basically works the same as on Windows 7 except that it even worse in the managing FPS department and it indeed does crash toggling fullscreen mode. I couldn't get very far in DirectX layer either; it seems to run through some compatibility layer and I have no idea how it works. It has an AMD card in it, and GPU debugging was not very successful. Aside from that, it runs surprisingly well.

Why does ZC still default to fullscreen though? I thought I changed that years ago.

(Emphasis, mine.)

Sounds like you're having a fun day. :/

Good point there. Not sure why that is the default, but should be easy enough to change out. The default for ZCL is windowed mode, but running the binary raw, fullscreen. You could always pack DXGL with it I suppose? Is the code for that open, or closed?

I still need some analysis on the test binary, as I think it should be better with some of this.

DarkDragon
12-26-2016, 02:27 AM
[Frack, I hit edit instead of quote. Fixed.]


Oops, I forgot to include the libs.

Recompiling allegro was of course, mandatory for this, and something went awry...The obvious suspect is alogg, which has been deprecated by logg.

Make a backup of alleg42.dll, and libzcsound.dll and temporarily replace them with the libs in this pakage (http://timelord.insomnia247.nl/zc/zc_dev/zc_ag443.zip).

alleg44.dll can live perpetually, but I forgot to fix things a bit, and it still pumped out alleg42.dll, despite this library actually being 4.4, as a special dep. We'll eventually remedy that. Suffice to say, that it needs both the included ag44.dll and the included ag42.dll to run, and that this ag.42.dll differs from the one in the 2.50.3 package, so you will need to rename the existing library, and drop this in, or just duplicate the directory and drop in everything. Likewise, libzcsound.dll is also different, as it uses the allegro 4.4.3 packfile password functions.

Those are the root of all evils, with regards to the migration.

It's also complaining about libgcc_s_dw2-1.dll. I guess you used MinGW?

Can you send a binary that has all external libraries statically linked?

Gleeok
12-26-2016, 07:42 AM
Why does ZC still default to fullscreen though? I thought I changed that years ago.

I must of been smoking crack. Come to find out I like just changed this in August....

This is why sleep can be beneficial sometimes. >_>

ZoriaRPG
12-26-2016, 10:48 AM
It's also complaining about libgcc_s_dw2-1.dll. I guess you used MinGW?

Can you send a binary that has all external libraries statically linked?

Oh, did I forget to do a static link after all? Crumbs.

Sure. The next time I do a build of this branch, I'll static link them and send that. That could very well be the problem anyway.