3Dmigoto now open-source...
  88 / 143    
Reposting my PCSX2 post here, just in case: Hey! I got PCSX2 to trigger exclusive fullscreen and 3D Vision on Windows 10! The method is a bit different. After everything is installed and configured: - Boot a game. - Press escape and go to GSdx options (it won't crash). - Reboot or resume the game. - Press alt+enter until it works. Usually at the first or second time. - If by any chance you press escape again, PCSX2 will crash. HOWEVER, I can't get PCSX2 to load 3Dmigoto in any way. Even without the other d3d9.dll. 3D Vision is enabled, yes, but without 3Dmigoto there is no 3D for us! Any help here? I tried all hooking methods, all the "allow_" stuff, etc, and still nothing. No logs, no hunting OSD or hotkeys... It just doesn't load. G-Sync+ULMB is saved in this case, but I want 3D.
Reposting my PCSX2 post here, just in case:

Hey! I got PCSX2 to trigger exclusive fullscreen and 3D Vision on Windows 10! The method is a bit different. After everything is installed and configured:

- Boot a game.
- Press escape and go to GSdx options (it won't crash).
- Reboot or resume the game.
- Press alt+enter until it works. Usually at the first or second time.
- If by any chance you press escape again, PCSX2 will crash.

HOWEVER, I can't get PCSX2 to load 3Dmigoto in any way. Even without the other d3d9.dll. 3D Vision is enabled, yes, but without 3Dmigoto there is no 3D for us!

Any help here? I tried all hooking methods, all the "allow_" stuff, etc, and still nothing. No logs, no hunting OSD or hotkeys... It just doesn't load.

G-Sync+ULMB is saved in this case, but I want 3D.

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 03/30/2017 06:05 PM   
Hey bo3b (and DSS if you're feeling up to it) - is it a big ask to take a look at 3dmigoto's ability to work with/pass through other dll fixes? Specifically, there's a community fix that makes some major improvements to Nier Automata, and it doesn't seem to work with 3dmigoto. There's information in the thread here: https://forums.geforce.com/default/topic/999760/3d-vision/nier-automata/ Any chance this might be a relatively simple thing to fix, and that one of you would have time to look at it?
Hey bo3b (and DSS if you're feeling up to it) - is it a big ask to take a look at 3dmigoto's ability to work with/pass through other dll fixes?

Specifically, there's a community fix that makes some major improvements to Nier Automata, and it doesn't seem to work with 3dmigoto. There's information in the thread here:


https://forums.geforce.com/default/topic/999760/3d-vision/nier-automata/


Any chance this might be a relatively simple thing to fix, and that one of you would have time to look at it?

Posted 04/02/2017 01:58 PM   
You can't simply pass them through, all DLLs must load in sequence. It's a matter of the end user making sure that there are not any naming conflicts or version incompatibilities. For naming, there's documentation on using ProxyLib to manipulate load hierarchy. In the thread you linked, they hadn't bothered trying any known solutions, like the method on the blog, nor even a forum search. The odd duck was Alias Isolation, which required a profile setting [quote="bo3b"]To use Alias Isolation mod, enable the CS flag in the profile. [size="M"][color="green"]Set StereoFlagsDX10=0x00004000. Or use the Max Payne 3 Profile.[/color][/size][/quote] BTW, here's a link to the mod http://steamcommunity.com/app/524220/discussions/0/135512104777399045/
You can't simply pass them through, all DLLs must load in sequence.

It's a matter of the end user making sure that there are not any naming conflicts or version incompatibilities. For naming, there's documentation on using ProxyLib to manipulate load hierarchy.

In the thread you linked, they hadn't bothered trying any known solutions, like the method on the blog, nor even a forum search.

The odd duck was Alias Isolation, which required a profile setting

bo3b said:To use Alias Isolation mod, enable the CS flag in the profile.

Set StereoFlagsDX10=0x00004000. Or use the Max Payne 3 Profile.


BTW, here's a link to the mod
http://steamcommunity.com/app/524220/discussions/0/135512104777399045/

Posted 04/02/2017 08:19 PM   
[quote="D-Man11"]You can't simply pass them through, all DLLs must load in sequence. It's a matter of the end user making sure that there are not any naming conflicts or version incompatibilities. For naming, there's documentation on using ProxyLib to manipulate load hierarchy. In the thread you linked, they hadn't bothered trying any known solutions, like the method on the blog, nor even a forum search. The odd duck was Alias Isolation, which required a profile setting [quote="bo3b"]To use Alias Isolation mod, enable the CS flag in the profile. [size="M"][color="green"]Set StereoFlagsDX10=0x00004000. Or use the Max Payne 3 Profile.[/color][/size][/quote] BTW, here's a link to the mod http://steamcommunity.com/app/524220/discussions/0/135512104777399045/[/quote] To clarify a couple of pieces here. For the pass through of a dll, the order should not matter, because the dlls are all patching the same entry points. So for example, most games want access to DXGI::Present(), so that they can do stuff either before a frame is presented to the hardware, or after. e.g. In 3Dmigoto case, we draw the green overlay on top of the frame right at that moment. And we use that moment, to run the other stuff we do, like keyboard controls. It's a good way to get a time-slice of the CPU of the game. In the Reshade case, they also want to patch that same spot for any full screen post-process effects. They modify the finished backbuffer. Not sure about Nier Automata, but it will likely be something similar. As long as everyone plays nice, everyone can patch that same entry point, and we daisy chain to each other, passing along the actual parameter to the call. The problems arise when people use shitty unreliable techniques to patch the entry points. There is a LOT of awful code on the net with people thrashing around and trying crazy, poorly thought out, and badly implemented patching. I did a lot of research before choosing the Nektra library. (The one I wanted to use was Microsoft Detours, but it's $10,000 license for x64 code) This is why we get incompatibilities with other code. Things like overlays, or ENB or Reshade et. al. If they did a shitty job, we can't fix it for them. The biggest problem is that most of these stupid approaches don't lock out other threads while they modify the entry point. So you can get two pieces of code running simultaneously hitting the same memory location. One wins, the other loses. If they cross-link each other, then the code that follows will get confused and crash, because it doesn't see what it expects. Again, assuming they don't check errors and suck, like they often do. If they bothered to check errors, they wouldn't crash. So... it's generally not something we can fix. And it's also generally not our incompatibility, because we do check errors, and we use two 100% solid techniques for patching entry points (dll wrapper style with every entry with dllload call for the next, and the Nektra direct hook library). You can note that Steam overlay is no longer incompatible with 3Dmigoto- because they fixed their retarded code. We didn't change. So it's not just small players, even Valve makes amateur-level programming mistakes. I can't speak to HelixMod of course, because we've never seen the code, but my impression is that HelixMod itself uses a solid technique. For the AliasIsolation mod there- that CS Flag is to allow it to run at all. We need that entry in order for the AliasIsolation ComputeShader to be run for both eyes, otherwise it's only run for one eye. It's unrelated to the proxy loading. I'll try to take a look at the proxy loading for Nier Automata, since we have it in ShaderHacker shared. And I've gotten a couple of reports of proxy loading failures when using Reshade. Most likely to be their problem like usual, but always possible we have introduced a bug.
D-Man11 said:You can't simply pass them through, all DLLs must load in sequence.

It's a matter of the end user making sure that there are not any naming conflicts or version incompatibilities. For naming, there's documentation on using ProxyLib to manipulate load hierarchy.

In the thread you linked, they hadn't bothered trying any known solutions, like the method on the blog, nor even a forum search.

The odd duck was Alias Isolation, which required a profile setting

bo3b said:To use Alias Isolation mod, enable the CS flag in the profile.

Set StereoFlagsDX10=0x00004000. Or use the Max Payne 3 Profile.


BTW, here's a link to the mod
http://steamcommunity.com/app/524220/discussions/0/135512104777399045/

To clarify a couple of pieces here.

For the pass through of a dll, the order should not matter, because the dlls are all patching the same entry points. So for example, most games want access to DXGI::Present(), so that they can do stuff either before a frame is presented to the hardware, or after.

e.g. In 3Dmigoto case, we draw the green overlay on top of the frame right at that moment. And we use that moment, to run the other stuff we do, like keyboard controls. It's a good way to get a time-slice of the CPU of the game.

In the Reshade case, they also want to patch that same spot for any full screen post-process effects. They modify the finished backbuffer. Not sure about Nier Automata, but it will likely be something similar.

As long as everyone plays nice, everyone can patch that same entry point, and we daisy chain to each other, passing along the actual parameter to the call.


The problems arise when people use shitty unreliable techniques to patch the entry points. There is a LOT of awful code on the net with people thrashing around and trying crazy, poorly thought out, and badly implemented patching. I did a lot of research before choosing the Nektra library. (The one I wanted to use was Microsoft Detours, but it's $10,000 license for x64 code)

This is why we get incompatibilities with other code. Things like overlays, or ENB or Reshade et. al. If they did a shitty job, we can't fix it for them.

The biggest problem is that most of these stupid approaches don't lock out other threads while they modify the entry point. So you can get two pieces of code running simultaneously hitting the same memory location. One wins, the other loses. If they cross-link each other, then the code that follows will get confused and crash, because it doesn't see what it expects. Again, assuming they don't check errors and suck, like they often do. If they bothered to check errors, they wouldn't crash.

So... it's generally not something we can fix. And it's also generally not our incompatibility, because we do check errors, and we use two 100% solid techniques for patching entry points (dll wrapper style with every entry with dllload call for the next, and the Nektra direct hook library). You can note that Steam overlay is no longer incompatible with 3Dmigoto- because they fixed their retarded code. We didn't change. So it's not just small players, even Valve makes amateur-level programming mistakes.

I can't speak to HelixMod of course, because we've never seen the code, but my impression is that HelixMod itself uses a solid technique.


For the AliasIsolation mod there- that CS Flag is to allow it to run at all. We need that entry in order for the AliasIsolation ComputeShader to be run for both eyes, otherwise it's only run for one eye.

It's unrelated to the proxy loading.


I'll try to take a look at the proxy loading for Nier Automata, since we have it in ShaderHacker shared. And I've gotten a couple of reports of proxy loading failures when using Reshade.

Most likely to be their problem like usual, but always possible we have introduced a bug.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/02/2017 09:26 PM   
Took a quick look at their respective code bases for SpecialK, used in the FAR tool. It uses MinHook as its patching mechanism. It also has good error checking and code sanity, and doesn't make the obvious mistakes like running too much out of DLLMain. MinHook I'm less stoked about, because I don't see him use EnterCriticalSection, which I'd expect is a lot better than his hand rolled thread management. It's an OS service, there isn't any reason to write a different one that I can see. But maybe he has experience with other badly formed software and it's a workaround. MinHook also does a solid job on x64 code, a lot of the prior stuff would botch the fact that they can only use a 5 byte JMP, even in x64. So overall, those don't have any red flags I'd expect to cause problems. One thing I noted while looking at the FAR code- are we in a rush for this fix? The fix he put in place for the game is a fairly egregious mistake on the part of the developers, using low res textures, even on 1440p and 4K screens. This seems like something of an embarrassment, and I'd expect the devs to release a Hi-res pack of some form.
Took a quick look at their respective code bases for SpecialK, used in the FAR tool. It uses MinHook as its patching mechanism. It also has good error checking and code sanity, and doesn't make the obvious mistakes like running too much out of DLLMain.

MinHook I'm less stoked about, because I don't see him use EnterCriticalSection, which I'd expect is a lot better than his hand rolled thread management. It's an OS service, there isn't any reason to write a different one that I can see. But maybe he has experience with other badly formed software and it's a workaround.

MinHook also does a solid job on x64 code, a lot of the prior stuff would botch the fact that they can only use a 5 byte JMP, even in x64.


So overall, those don't have any red flags I'd expect to cause problems.


One thing I noted while looking at the FAR code- are we in a rush for this fix?

The fix he put in place for the game is a fairly egregious mistake on the part of the developers, using low res textures, even on 1440p and 4K screens.

This seems like something of an embarrassment, and I'd expect the devs to release a Hi-res pack of some form.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/02/2017 10:09 PM   
Hey bo3b, thanks for checking this out. Hopefully you're correct, and they patch this stuff themselves. I haven't had a chance to try installing it myself (recently moved house, running off crappy wireless internet, can't download games), but we do have it on the shared accounts if you have time to look.
Hey bo3b, thanks for checking this out.


Hopefully you're correct, and they patch this stuff themselves. I haven't had a chance to try installing it myself (recently moved house, running off crappy wireless internet, can't download games), but we do have it on the shared accounts if you have time to look.

Posted 04/03/2017 02:37 AM   
[quote="Pirateguybrush"]Hey bo3b, thanks for checking this out. Hopefully you're correct, and they patch this stuff themselves. I haven't had a chance to try installing it myself (recently moved house, running off crappy wireless internet, can't download games), but we do have it on the shared accounts if you have time to look.[/quote] I did take a look with the shared account. The problem with FAR/SpecialK is that he [i]requires[/i] the use of the platform/evil update. We don't support the platform update very well. Works in some games, but not all. Since we return errors for pieces we haven't supported, his good error handling catches that and fails out. He doesn't have a fallback to 11.0 from 11.1 unlike most games. I'm adding support for a specific missing object that it needs, but can't promise anything. The platform update has been a real problem.
Pirateguybrush said:Hey bo3b, thanks for checking this out.


Hopefully you're correct, and they patch this stuff themselves. I haven't had a chance to try installing it myself (recently moved house, running off crappy wireless internet, can't download games), but we do have it on the shared accounts if you have time to look.

I did take a look with the shared account.

The problem with FAR/SpecialK is that he requires the use of the platform/evil update. We don't support the platform update very well. Works in some games, but not all. Since we return errors for pieces we haven't supported, his good error handling catches that and fails out. He doesn't have a fallback to 11.0 from 11.1 unlike most games.

I'm adding support for a specific missing object that it needs, but can't promise anything. The platform update has been a real problem.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/03/2017 05:47 AM   
Is that something that he'd be able to easily fix on his end, do you think?
Is that something that he'd be able to easily fix on his end, do you think?

Posted 04/03/2017 07:52 AM   
[quote="Pirateguybrush"]Is that something that he'd be able to easily fix on his end, do you think?[/quote] Seems unlikely, because it's asking the end user to install that update. Probably there is a feature that he wants to support, which is only found in the 11.1 APIs. In any case, just a heads up that I added further support for the platform update, and it seems to be running here with Nier Automata, and FAR mod. I get his heads up display in game. I don't understand the nuances of what it actually does, so don't know if that all works, but at least 3Dmigoto and FAR are compatible now. I'll release a new version tomorrow.
Pirateguybrush said:Is that something that he'd be able to easily fix on his end, do you think?

Seems unlikely, because it's asking the end user to install that update. Probably there is a feature that he wants to support, which is only found in the 11.1 APIs.


In any case, just a heads up that I added further support for the platform update, and it seems to be running here with Nier Automata, and FAR mod. I get his heads up display in game. I don't understand the nuances of what it actually does, so don't know if that all works, but at least 3Dmigoto and FAR are compatible now.

I'll release a new version tomorrow.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/05/2017 07:47 AM   
That's great, bo3b! I hope it will make all of his SpecialK mods compatible (sadly they crash with the dx9 helixmod dll since certain version, but we don't have the source code. 3Dmigoto compatibility is enough for new games). By the way, bad news. My big SSD died two days ago, and I lost the Dead Rising fix (it should be easy to repeat. I don't know why I didn't upload a copy to amazon aws, and I intended to check if the game ran correctly on W10 soon) and the Xanadu Next fix (which had its drawbacks).
That's great, bo3b! I hope it will make all of his SpecialK mods compatible (sadly they crash with the dx9 helixmod dll since certain version, but we don't have the source code. 3Dmigoto compatibility is enough for new games).

By the way, bad news. My big SSD died two days ago, and I lost the Dead Rising fix (it should be easy to repeat. I don't know why I didn't upload a copy to amazon aws, and I intended to check if the game ran correctly on W10 soon) and the Xanadu Next fix (which had its drawbacks).

CPU: Intel Core i7 7700K @ 4.9GHz
Motherboard: Gigabyte Aorus GA-Z270X-Gaming 5
RAM: GSKILL Ripjaws Z 16GB 3866MHz CL18
GPU: MSI GeForce RTX 2080Ti Gaming X Trio
Monitor: Asus PG278QR
Speakers: Logitech Z506
Donations account: masterotakusuko@gmail.com

Posted 04/05/2017 09:50 AM   
[b][center][color="orange"][size="XL"]3Dmigoto 1.2.57[/size][/color] [size="M"][url]https://github.com/bo3b/3Dmigoto/releases[/url][/size] [/center][/b] - Improve platform update support to allow FAR mod with Nier Automata. This should also improve 3Dmigoto support for Reshade. If it doesn't work, please let me know.


- Improve platform update support to allow FAR mod with Nier Automata.


This should also improve 3Dmigoto support for Reshade. If it doesn't work, please let me know.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/07/2017 09:26 PM   
Thanks bo3b
Thanks bo3b

Gigabyte Z370 Gaming 7 32GB Ram i9-9900K GigaByte Aorus Extreme Gaming 2080TI (single) Game Blaster Z Windows 10 X64 build #17763.195 Define R6 Blackout Case Corsair H110i GTX Sandisk 1TB (OS) SanDisk 2TB SSD (Games) Seagate EXOs 8 and 12 TB drives Samsung UN46c7000 HD TV Samsung UN55HU9000 UHD TVCurrently using ACER PASSIVE EDID override on 3D TVs LG 55

Posted 04/07/2017 09:44 PM   
Awesome, thanks bo3b!
Awesome, thanks bo3b!

Posted 04/08/2017 10:50 AM   
Hey Guys, U just wanted to let those know who keep Migoto uptodate that I don't think the uninstall.bat works anymore.. I tried it several times and it does not look like it uninstalls all the files.. Now it looks like it did something but when I look the shaderfixes folder and the d3dx.ini and some of the other dll's are still there.. I have to manually delete them and this is causing problems when installing updated fixes I think.. So can someone have a look at that Please.. Thank you for the new version of Migoto Bo3b ;)
Hey Guys,

U just wanted to let those know who keep Migoto uptodate that I don't think the uninstall.bat works anymore..

I tried it several times and it does not look like it uninstalls all the files.. Now it looks like it did something but when I look the shaderfixes folder and the d3dx.ini and some of the other dll's are still there..

I have to manually delete them and this is causing problems when installing updated fixes I think..

So can someone have a look at that Please..

Thank you for the new version of Migoto Bo3b ;)

Intel i5 7600K @ 4.8ghz / MSI Z270 SLI / Asus 1080GTX - 416.16 / Optoma HD142x Projector / 1 4'x10' Curved Screen PVC / TrackIR / HOTAS Cougar / Cougar MFD's / Track IR / NVidia 3D Vision / Win 10 64bit

Posted 04/15/2017 11:08 PM   
[quote="The_Nephilim"]Hey Guys, U just wanted to let those know who keep Migoto uptodate that I don't think the uninstall.bat works anymore.. I tried it several times and it does not look like it uninstalls all the files.. Now it looks like it did something but when I look the shaderfixes folder and the d3dx.ini and some of the other dll's are still there.. I have to manually delete them and this is causing problems when installing updated fixes I think.. So can someone have a look at that Please.. Thank you for the new version of Migoto Bo3b ;)[/quote] I think the only way that can happen is if the permissions are somehow messed up for the game in question. The script itself is very simple, the only thing that can go wrong is permission errors. If you run it as admin, it will always work. The only file skipped is d3dcompiler_46.dll, as games sometimes use that themselves. I use it all the time and haven't seen any problems. If this is on Win10, it's always possible that Microsoft decided to jack up yet another thing that was working fine. Most likely though the game itself did something weird with the install, requiring admin, or changing permissions.
The_Nephilim said:Hey Guys,

U just wanted to let those know who keep Migoto uptodate that I don't think the uninstall.bat works anymore..

I tried it several times and it does not look like it uninstalls all the files.. Now it looks like it did something but when I look the shaderfixes folder and the d3dx.ini and some of the other dll's are still there..

I have to manually delete them and this is causing problems when installing updated fixes I think..

So can someone have a look at that Please..

Thank you for the new version of Migoto Bo3b ;)

I think the only way that can happen is if the permissions are somehow messed up for the game in question. The script itself is very simple, the only thing that can go wrong is permission errors. If you run it as admin, it will always work.

The only file skipped is d3dcompiler_46.dll, as games sometimes use that themselves.

I use it all the time and haven't seen any problems.


If this is on Win10, it's always possible that Microsoft decided to jack up yet another thing that was working fine.

Most likely though the game itself did something weird with the install, requiring admin, or changing permissions.

Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers

Posted 04/16/2017 12:04 AM   
  88 / 143    
Scroll To Top