My tools only convert from binary to asm and back to binary.
The binary -> HLSL must be part of Chiri's wrapper and will probably dump as bin if HLSL conversion fails.
Yes, the only tool to convert from .bin to HLSL is 3Dmigoto at present. I did an extensive google search for another one, and this is the only one I know of.
It's not perfect, it does not seem to be able to do all shaders thrown at it. I'll be working on that.
Current state:
.bin = all shaders, need to be .bin to be executable.
ASM.txt = Disassembled from .bin, from either microsoft disassembler, or Helix disassembler.
HLSL.txt = Decompiled from .bin (not ASM) by 3Dmigoto.
Helix does:
.bin -> ASM.txt -> .bin
Flugan does:
.bin -> ASM.txt -> .bin
3Dmigoto does:
.bin -> HLSL.txt -> .bin
.bin -> ASM.txt
Yes, the only tool to convert from .bin to HLSL is 3Dmigoto at present. I did an extensive google search for another one, and this is the only one I know of.
It's not perfect, it does not seem to be able to do all shaders thrown at it. I'll be working on that.
Current state:
.bin = all shaders, need to be .bin to be executable.
ASM.txt = Disassembled from .bin, from either microsoft disassembler, or Helix disassembler.
HLSL.txt = Decompiled from .bin (not ASM) by 3Dmigoto.
Want to add my thanks to Chiri (and co?) for releasing this. Thank you and i hope that if this results in enjoyment for any wealthy people on the forum, that they shower you with a monetary reward. Same for the Bioshock Inifinte fix.
Want to add my thanks to Chiri (and co?) for releasing this. Thank you and i hope that if this results in enjoyment for any wealthy people on the forum, that they shower you with a monetary reward. Same for the Bioshock Inifinte fix.
My wrapper will now disasssemble/assemble at runtime if desired.
I still have the offline app for bin -> asm -> bin.
The most optimized code path will be to load fixed bin files directly and disabling log and dump.
This still leaves the trouble of fixing shaders. The special stereo texture is untested at this Point.
Latest build:
http://1drv.ms/1g9Ecs3
Another thing to add for anybody who might want to play around with 3Dmigoto.
I revived my Psychonaut technique for 3Dmigoto, to see where some of the auto-fixed shaders are being used. So, this changes the output color of a patched pixel shader to pink, and then you play the game and see where it shows up.
You get results like this in Bioshock Infinite.
[img]http://www.bo3b.net/infinite/BioShockInfinite19_85.jpg[/img]
That's some sort of glow/bloom effect that was in the auto-patched pixel shaders.
You can just add this to the end of a pixel shader:
[code] o0 = float4(1.0f, 0, 1.0f, 1.0f);[/code]
This can help you find a given shader for experimentation or learning how the stereo texture is applied.
Another thing to add for anybody who might want to play around with 3Dmigoto.
I revived my Psychonaut technique for 3Dmigoto, to see where some of the auto-fixed shaders are being used. So, this changes the output color of a patched pixel shader to pink, and then you play the game and see where it shows up.
You get results like this in Bioshock Infinite.
That's some sort of glow/bloom effect that was in the auto-patched pixel shaders.
You can just add this to the end of a pixel shader:
o0 = float4(1.0f, 0, 1.0f, 1.0f);
This can help you find a given shader for experimentation or learning how the stereo texture is applied.
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
That's really cool, I don't think I noticed that stuff in your Psychonauts fix. Is there a quick/simple way to do that in ASM? I poked around a bit in your Psychonauts fix and, although extremely informative, I couldn't make out a way to turn your toggle into anything usable with a single line of code like this, or at least it didn't work with what I was trying it on, if it's possible I could definitely use something like this in a few of the other things I've been working on.
That's really cool, I don't think I noticed that stuff in your Psychonauts fix. Is there a quick/simple way to do that in ASM? I poked around a bit in your Psychonauts fix and, although extremely informative, I couldn't make out a way to turn your toggle into anything usable with a single line of code like this, or at least it didn't work with what I was trying it on, if it's possible I could definitely use something like this in a few of the other things I've been working on.
You can do it in DX9 ASM too, but not in a single line because of the way that constants work in DX9.
In Psychonauts, the Vertex Shader would set a color to be passed to a Pixel Shader, so I could set it there. If you are looking at Pixel Shader, you can just set its output color to be the hot pink.
[code]
dcl_color o1
def c201, 1,0,1,1 // hot pink r,g,b,a
mov o1, c201
or if mov oC1 r0.xyz
mov oC1 c201
[/code]
So if output is dcl_color o1 like above, that just gets set to the hardcoded constant color. If it's a pixel shader it will be something like mov oC1 ro.xyz as output, which can be replaced with the mov oC1 c201.
Let me know if that doesn't make sense.
You can do it in DX9 ASM too, but not in a single line because of the way that constants work in DX9.
In Psychonauts, the Vertex Shader would set a color to be passed to a Pixel Shader, so I could set it there. If you are looking at Pixel Shader, you can just set its output color to be the hot pink.
So if output is dcl_color o1 like above, that just gets set to the hardcoded constant color. If it's a pixel shader it will be something like mov oC1 ro.xyz as output, which can be replaced with the mov oC1 c201.
Let me know if that doesn't make sense.
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
I'm retiring my wrapper and will work on 3Dmigoto as time permits.
The main reason is that my wrapper has quickly become more unstable when adding essential features.
One good wrapper is better than two broken ones.
I look forward to taking a closer look at 3Dmigoto.
Until now I've only clanced at the code from time to time but as progress on my wrapper is impossible it's time for closer look. As a bonus I don't have to reinvent the wheel.
I'm retiring my wrapper and will work on 3Dmigoto as time permits.
The main reason is that my wrapper has quickly become more unstable when adding essential features.
One good wrapper is better than two broken ones.
I look forward to taking a closer look at 3Dmigoto.
Until now I've only clanced at the code from time to time but as progress on my wrapper is impossible it's time for closer look. As a bonus I don't have to reinvent the wheel.
Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?
Nice to hear that Flugan, I hope you guys can get it to work!
All hail 3d modders DHR, MasterOtaku, Losti, Necropants, Helifax, bo3b, mike_ar69, Flugan, DarkStarSword, 4everAwake, 3d4dd and so many more helping to keep the 3d dream alive, find their 3d fixes at http://helixmod.blogspot.com/ Also check my site for spanish VR and mobile gaming news: www.gamermovil.com
Yes! This is a great step I think.
Flugan also already added his Assembler to the project, and we are going to hook it up shortly. This is significant because we could not previously Assemble the ASM version of shaders, we could only do the HLSL.
The HLSL is possibly better for understanding and fixing, but a lot of people have extensive experience with the ASM and this will allow us to compare fixes there to the HLSL and learn more. The HLSL Decompiler is also presently busted on some shaders like in AC3, so this allows us to fix those shaders as well.
Flugan also already added his Assembler to the project, and we are going to hook it up shortly. This is significant because we could not previously Assemble the ASM version of shaders, we could only do the HLSL.
The HLSL is possibly better for understanding and fixing, but a lot of people have extensive experience with the ASM and this will allow us to compare fixes there to the HLSL and learn more. The HLSL Decompiler is also presently busted on some shaders like in AC3, so this allows us to fix those shaders as well.
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
After some frustrations in the last year I decided to concentrate on older Dx9 or working Dx11 games I already have and didn't care any more about new releases (at least AAA titles with Dx11). So when I returned to the forum after a long time I was very exited to see that talented coders like You are working on a solution that 3D Vision will survive in the future!
After some frustrations in the last year I decided to concentrate on older Dx9 or working Dx11 games I already have and didn't care any more about new releases (at least AAA titles with Dx11). So when I returned to the forum after a long time I was very exited to see that talented coders like You are working on a solution that 3D Vision will survive in the future!
My original display name is 3d4dd - for some reason Nvidia changed it..?!
Just a status update here.
I just added my first actual feature to the tool, which is to enable the F10 feature of reloading all shaders from the ShaderFixes folder. This allows you to alt-tab, edit a file, alt-tab, F10 to reload and see the effect. This is generally a huge benefit to understanding and hacking around experimentation.
Given the code complexity, this is also a good sign, because it means I can actually make changes, and have learned enough to improve it. (That wasn't clear at the start, Helix and Chiri are in a whole 'nother league.)
3Dmigoto is in OK shape, and possibly usable for many games, but possibly not.
For AC3, it's only limping, because of bugs in the decompiler.
For DXHR and Sleeping Dogs it seemed to be running fine and might allow fixes there.
For Arma 3, it does not seem to run at all.
I've started a list of games, with status on the Wiki: [url]https://github.com/bo3b/3Dmigoto/wiki/Game-notes[/url]
You can dramatically help the project by trying 3Dmigoto with games you are interested in, and updating the Wiki with your results.
I just added my first actual feature to the tool, which is to enable the F10 feature of reloading all shaders from the ShaderFixes folder. This allows you to alt-tab, edit a file, alt-tab, F10 to reload and see the effect. This is generally a huge benefit to understanding and hacking around experimentation.
Given the code complexity, this is also a good sign, because it means I can actually make changes, and have learned enough to improve it. (That wasn't clear at the start, Helix and Chiri are in a whole 'nother league.)
3Dmigoto is in OK shape, and possibly usable for many games, but possibly not.
For AC3, it's only limping, because of bugs in the decompiler.
For DXHR and Sleeping Dogs it seemed to be running fine and might allow fixes there.
Nope sorry, not at present. I did take a quick look to create a 64 bit executable, but there are some funny link errors that will require more attention than I can justify at the moment. This will be more of a problem in the future, but this is the first 64 bit problem child.
Best bet for crosshair would be to take the dds or texture editing approach. If you can find via modder tools the cursor, you can just make it a blank texture.
Nope sorry, not at present. I did take a quick look to create a 64 bit executable, but there are some funny link errors that will require more attention than I can justify at the moment. This will be more of a problem in the future, but this is the first 64 bit problem child.
Best bet for crosshair would be to take the dds or texture editing approach. If you can find via modder tools the cursor, you can just make it a blank texture.
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
The binary -> HLSL must be part of Chiri's wrapper and will probably dump as bin if HLSL conversion fails.
Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?
donations: ulfjalmbrant@hotmail.com
It's not perfect, it does not seem to be able to do all shaders thrown at it. I'll be working on that.
Current state:
.bin = all shaders, need to be .bin to be executable.
ASM.txt = Disassembled from .bin, from either microsoft disassembler, or Helix disassembler.
HLSL.txt = Decompiled from .bin (not ASM) by 3Dmigoto.
Helix does:
.bin -> ASM.txt -> .bin
Flugan does:
.bin -> ASM.txt -> .bin
3Dmigoto does:
.bin -> HLSL.txt -> .bin
.bin -> ASM.txt
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
46" Samsung ES7500 3DTV (checkerboard, high FOV as desktop monitor, highly recommend!) - Metro 2033 3D PNG screens - Metro LL filter realism mod - Flugan's Deus Ex:HR Depth changers - Nvidia tech support online form - Nvidia support: 1-800-797-6530
I still have the offline app for bin -> asm -> bin.
The most optimized code path will be to load fixed bin files directly and disabling log and dump.
This still leaves the trouble of fixing shaders. The special stereo texture is untested at this Point.
Latest build:
http://1drv.ms/1g9Ecs3
Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?
donations: ulfjalmbrant@hotmail.com
I revived my Psychonaut technique for 3Dmigoto, to see where some of the auto-fixed shaders are being used. So, this changes the output color of a patched pixel shader to pink, and then you play the game and see where it shows up.
You get results like this in Bioshock Infinite.
That's some sort of glow/bloom effect that was in the auto-patched pixel shaders.
You can just add this to the end of a pixel shader:
This can help you find a given shader for experimentation or learning how the stereo texture is applied.
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
[MonitorSizeOverride][Global/Base Profile Tweaks][Depth=IPD]
In Psychonauts, the Vertex Shader would set a color to be passed to a Pixel Shader, so I could set it there. If you are looking at Pixel Shader, you can just set its output color to be the hot pink.
So if output is dcl_color o1 like above, that just gets set to the hardcoded constant color. If it's a pixel shader it will be something like mov oC1 ro.xyz as output, which can be replaced with the mov oC1 c201.
Let me know if that doesn't make sense.
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
The main reason is that my wrapper has quickly become more unstable when adding essential features.
One good wrapper is better than two broken ones.
I look forward to taking a closer look at 3Dmigoto.
Until now I've only clanced at the code from time to time but as progress on my wrapper is impossible it's time for closer look. As a bonus I don't have to reinvent the wheel.
Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?
donations: ulfjalmbrant@hotmail.com
All hail 3d modders DHR, MasterOtaku, Losti, Necropants, Helifax, bo3b, mike_ar69, Flugan, DarkStarSword, 4everAwake, 3d4dd and so many more helping to keep the 3d dream alive, find their 3d fixes at http://helixmod.blogspot.com/ Also check my site for spanish VR and mobile gaming news: www.gamermovil.com
Flugan also already added his Assembler to the project, and we are going to hook it up shortly. This is significant because we could not previously Assemble the ASM version of shaders, we could only do the HLSL.
The HLSL is possibly better for understanding and fixing, but a lot of people have extensive experience with the ASM and this will allow us to compare fixes there to the HLSL and learn more. The HLSL Decompiler is also presently busted on some shaders like in AC3, so this allows us to fix those shaders as well.
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
My original display name is 3d4dd - for some reason Nvidia changed it..?!
I just added my first actual feature to the tool, which is to enable the F10 feature of reloading all shaders from the ShaderFixes folder. This allows you to alt-tab, edit a file, alt-tab, F10 to reload and see the effect. This is generally a huge benefit to understanding and hacking around experimentation.
Given the code complexity, this is also a good sign, because it means I can actually make changes, and have learned enough to improve it. (That wasn't clear at the start, Helix and Chiri are in a whole 'nother league.)
3Dmigoto is in OK shape, and possibly usable for many games, but possibly not.
For AC3, it's only limping, because of bugs in the decompiler.
For DXHR and Sleeping Dogs it seemed to be running fine and might allow fixes there.
For Arma 3, it does not seem to run at all.
I've started a list of games, with status on the Wiki: https://github.com/bo3b/3Dmigoto/wiki/Game-notes
You can dramatically help the project by trying 3Dmigoto with games you are interested in, and updating the Wiki with your results.
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
Best bet for crosshair would be to take the dds or texture editing approach. If you can find via modder tools the cursor, you can just make it a blank texture.
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