Dragon Quest XI
  1 / 4    
The game looks insanely pretty, even in 2D. I'll attach a bunch of screenshots, in case you were wondering if 3D is working. Spoiler alert: It's messed up in 3D Vision out of the box. Just rename the file extension from .jpg to .jps to view in 3D.
The game looks insanely pretty, even in 2D.
I'll attach a bunch of screenshots, in case you were wondering if 3D is working.
Spoiler alert: It's messed up in 3D Vision out of the box.

Just rename the file extension from .jpg to .jps to view in 3D.

#1
Posted 09/04/2018 08:46 PM   
It's Unreal Engine 4. Try the universal fix. I want to get this game... later. Too busy with other games right now. I hope someone can mod the orchestrated OST.
It's Unreal Engine 4. Try the universal fix.

I want to get this game... later. Too busy with other games right now. I hope someone can mod the orchestrated OST.

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

#2
Posted 09/04/2018 09:53 PM   
Thanks, the UE4 universal fix works quite nicely. Just a few shadows are still off, but it's playable. I'll upload a couple more screens to showcase how stunning the game's scenery is in 3D :)
Thanks, the UE4 universal fix works quite nicely. Just a few shadows are still off, but it's playable.

I'll upload a couple more screens to showcase how stunning the game's scenery is in 3D :)

#3
Posted 09/05/2018 01:14 PM   
Looks pretty nice! Thanks for the screenshots. Might have to pick this game up earlier than I thought I would.
Looks pretty nice! Thanks for the screenshots. Might have to pick this game up earlier than I thought I would.

#4
Posted 09/05/2018 11:28 PM   
How does it run in 3D. ? Performance wise .
How does it run in 3D. ? Performance wise .

I'm ishiki, forum screwed up my name.

9900K @5.0 GHZ, 16GBDDR4@4233MHZ, 2080 Ti

#5
Posted 09/08/2018 07:23 AM   
Well, my 10 year old i5 (3,8 Ghz) and 980Ti can run this just fine in 1080p, 60 fps 3D, if I scale back heavily on anti-aliasing and picture quality. However, I've capped the game at 30 fps instead and cranked up image quality to the max, because framerate doesn't bother me all that much in a turn-based RPG. It's only crucial in action oriented games. BTW, the game is perfect in 3D with the universal UE4 fix if you turn off all shadows - Thank you DHR! Due to an insane backlog, I usually don't pick up games at launch anymore, but I've gladly spent 70 bucks for DQ XI. It was so worth it, as it's the best RPG I've played in ages, surpassing even my beloved Trails series from Falcom. I can barely even play DQ XI, cause I just tend to stare at the stunning scenery for hours on end. Yes, it's got a bit of a fairy tale vibe going on and it's often a tad too childish, but the vistas and level of detail are just breathtakingly beautiful in Unreal Engine 4. It's perfection, like a timeless Disney cartoon, cause it's celshaded. As far as I'm concerned, 2018 can't get any better than this - DQ XI and Ys VIII are the pinnacles of CRPGs and action-RPGs respectively. Definitely get both games, if you can stomach the anime art direction.
Well, my 10 year old i5 (3,8 Ghz) and 980Ti can run this just fine in 1080p, 60 fps 3D, if I scale back heavily on anti-aliasing and picture quality.

However, I've capped the game at 30 fps instead and cranked up image quality to the max, because framerate doesn't bother me all that much in a turn-based RPG. It's only crucial in action oriented games. BTW, the game is perfect in 3D with the universal UE4 fix if you turn off all shadows - Thank you DHR!

Due to an insane backlog, I usually don't pick up games at launch anymore, but I've gladly spent 70 bucks for DQ XI. It was so worth it, as it's the best RPG I've played in ages, surpassing even my beloved Trails series from Falcom.

I can barely even play DQ XI, cause I just tend to stare at the stunning scenery for hours on end.
Yes, it's got a bit of a fairy tale vibe going on and it's often a tad too childish, but the vistas and level of detail are just breathtakingly beautiful in Unreal Engine 4. It's perfection, like a timeless Disney cartoon, cause it's celshaded.

As far as I'm concerned, 2018 can't get any better than this - DQ XI and Ys VIII are the pinnacles of CRPGs and action-RPGs respectively.

Definitely get both games, if you can stomach the anime art direction.

#6
Posted 09/08/2018 10:22 AM   
Uninstall the UE4 fix and redownload again. I just udpate the universal fix and may cover now all shadows, lights and reflections. If you see an issue, you can hunt a PS and post here.
Uninstall the UE4 fix and redownload again. I just udpate the universal fix and may cover now all shadows, lights and reflections.

If you see an issue, you can hunt a PS and post here.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#7
Posted 09/08/2018 11:12 AM   
Thanks DHR :) The issues persist, even when using the updated universal fix. I've been hunting, marking and disabling some pixel shaders that cause issues, until I realized that the game actually generates a different number of shaders every time. It seems to me that the pixel shaders get renamed randomly and on the fly, after zoning from town to world map and the total amount of pixel shaders can vary from 250 to 282 to 335 to 375. The ones I've disabled somehow got shuffled around or renamed after launching the game again, so I could never quite catch the correct ones.
Thanks DHR :)

The issues persist, even when using the updated universal fix.

I've been hunting, marking and disabling some pixel shaders that cause issues, until I realized that the game actually generates a different number of shaders every time.

It seems to me that the pixel shaders get renamed randomly and on the fly, after zoning from town to world map and the total amount of pixel shaders can vary from 250 to 282 to 335 to 375.

The ones I've disabled somehow got shuffled around or renamed after launching the game again, so I could never quite catch the correct ones.

#8
Posted 09/09/2018 01:28 PM   
Do you have a screenshot of the issue? Hunt the PS that remove the issue and post here.
Do you have a screenshot of the issue?
Hunt the PS that remove the issue and post here.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#9
Posted 09/09/2018 02:20 PM   
Yes, I do. I'll include a screenshot of how the game looks when that PS is disabled in hunting mode. The game adds newly detected pixel shaders on the fly, so the total number of PS went up from 192 to 421 after 5 minutes of playtime. Every time a new PS is detected, the shader that's causing the issue changes. At first it was named PS158 then 179, 193, 255, 276, 312 and finally I found it to be PS322. It will probably change again after discovering new parts of the world map. 3Dmigoto returns an error when I try to save PS322. "Failed to copy marked shader" presumably because it already exists or something like that. Despite that error message after pressing "3" on the numeric keypad, 3Dmigoto dumps the following PS: // ---- Created with 3Dmigoto v1.3.11 on Sun Sep 09 17:02:31 2018 Buffer<float4> t0 : register(t0); cbuffer cb0 : register(b0) { float4 cb0[28]; } // 3Dmigoto declarations #define cmp - Texture1D<float4> IniParams : register(t120); Texture2D<float4> StereoParams : register(t125); void main( float4 v0 : TEXCOORD0, nointerpolation uint v1 : TEXCOORD1, float4 v2 : SV_POSITION0, out float4 o0 : SV_Target0) { // Needs manual fix for instruction: // unknown dcl_: dcl_uav_typed_buffer (uint,uint,uint,uint) u1 // Needs manual fix for instruction: // unknown dcl_: dcl_uav_typed_buffer (uint,uint,uint,uint) u2 float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11; uint4 bitmask, uiDest; float4 fDest; r0.xy = (uint2)v2.yx; r0.xy = (uint2)r0.xy; r0.z = cb0[27].z + -r0.x; r1.xyzw = float4(-1,-1,2,2) + r0.yzyz; r1.xyzw = r1.xyzw / cb0[27].yzyz; r2.yz = r1.yx * float2(2,2) + float2(-1,-1); r1.xy = r1.zw * float2(2,2) + float2(-1,-1); r0.z = (int)v1.x * 5; r3.xyz = t0.Load(r0.z).xyz; r0.z = mad((int)v1.x, 5, 1); r4.xyz = t0.Load(r0.z).xyz; r0.zw = cmp(r2.zy < r4.xy); r0.z = r0.w ? r0.z : 0; r1.z = 1; r5.xyz = cmp(r3.xyz < r1.xyz); r0.w = r5.y ? r5.x : 0; r0.w = r5.z ? r0.w : 0; r0.z = r0.w ? r0.z : 0; if (r0.z != 0) { r3.xyz = r4.xyz + r3.xyz; r4.xyz = mad((int3)v1.xxx, int3(5,5,5), int3(2,3,4)); r5.xyz = t0.Load(r4.x).xyz; r4.xyw = t0.Load(r4.y).xyz; r6.xyz = t0.Load(r4.z).xyz; r2.w = -1000; r7.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.zyw; r8.x = dot(r7.xyz, r5.xyz); r8.y = dot(r7.xyz, r4.xyw); r8.z = dot(r7.xyz, r6.xyz); r7.xyz = min(float3(500000,500000,500000), r8.xyz); r8.xyz = max(float3(-500000,-500000,-500000), r8.xyz); r2.x = r1.x; r9.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.xyw; r10.x = dot(r9.xyz, r5.xyz); r10.y = dot(r9.xyz, r4.xyw); r10.z = dot(r9.xyz, r6.xyz); r7.xyz = min(r10.xyz, r7.xyz); r8.xyz = max(r10.xyz, r8.xyz); r9.xy = r2.zw; r9.w = r1.y; r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwy; r11.x = dot(r10.xyz, r5.xyz); r11.y = dot(r10.xyz, r4.xyw); r11.z = dot(r10.xyz, r6.xyz); r7.xyz = min(r11.xyz, r7.xyz); r8.xyz = max(r11.xyz, r8.xyz); r9.xy = r2.xw; r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwy; r11.x = dot(r10.xyz, r5.xyz); r11.y = dot(r10.xyz, r4.xyw); r11.z = dot(r10.xyz, r6.xyz); r7.xyz = min(r11.xyz, r7.xyz); r8.xyz = max(r11.xyz, r8.xyz); r9.xy = r2.zy; r9.z = 1; r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xyz; r11.x = dot(r10.xyz, r5.xyz); r11.y = dot(r10.xyz, r4.xyw); r11.z = dot(r10.xyz, r6.xyz); r7.xyz = min(r11.xyz, r7.xyz); r8.xyz = max(r11.xyz, r8.xyz); r2.z = 1; r2.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.xyz; r10.x = dot(r2.xyz, r5.xyz); r10.y = dot(r2.xyz, r4.xyw); r10.z = dot(r2.xyz, r6.xyz); r2.xyz = min(r10.xyz, r7.xyz); r7.xyz = max(r10.xyz, r8.xyz); r8.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwz; r9.x = dot(r8.xyz, r5.xyz); r9.y = dot(r8.xyz, r4.xyw); r9.z = dot(r8.xyz, r6.xyz); r2.xyz = min(r9.xyz, r2.xyz); r7.xyz = max(r9.xyz, r7.xyz); r1.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r1.xyz; r3.x = dot(r1.xyz, r5.xyz); r3.y = dot(r1.xyz, r4.xyw); r3.z = dot(r1.xyz, r6.xyz); r1.xyz = min(r3.xyz, r2.xyz); r2.xyz = max(r7.xyz, r3.xyz); r1.xyz = cmp(r1.xyz < float3(1,1,1)); r0.z = r1.y ? r1.x : 0; r0.z = r1.z ? r0.z : 0; r1.xyz = cmp(float3(-1,-1,-1) < r2.xyz); r0.w = r1.y ? r1.x : 0; r0.w = r1.z ? r0.w : 0; r0.z = r0.w ? r0.z : 0; if (r0.z != 0) { r0.x = r0.x * cb0[27].y + r0.y; r0.x = (uint)r0.x; bitmask.y = ((~(-1 << 31)) << 1) & 0xffffffff; r0.y = (((uint)r0.x << 1) & bitmask.y) | ((uint)1 & ~bitmask.y); // Needs manual fix for instruction: imm_atomic_iadd r1.x, u1, r0.y, l(1) InterlockedAdd(dest, imm_value, orig_value); r0.y = cmp((uint)r1.x < 512); if (r0.y != 0) { r0.y = cb0[27].y * cb0[27].z + 0.5; r0.y = (uint)r0.y; r0.x = mad((int)r1.x, (int)r0.y, (int)r0.x); // No code for instruction (needs manual fix): store_uav_typed u2.xyzw, r0.xxxx, v1.xxxx } } } o0.xyzw = float4(0,0,0,0); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) D3D Shader Disassembler // // using 3Dmigoto v1.3.11 on Sun Sep 09 17:02:31 2018 // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // TEXCOORD 0 xyzw 0 NONE float // TEXCOORD 1 x 1 NONE uint x // SV_POSITION 0 xyzw 2 POS float xy // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_Target 0 xyzw 0 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[28], immediateIndexed dcl_resource_buffer (float,float,float,float) t0 dcl_uav_typed_buffer (uint,uint,uint,uint) u1 dcl_uav_typed_buffer (uint,uint,uint,uint) u2 dcl_input_ps constant v1.x dcl_input_ps_siv linear noperspective v2.xy, position dcl_output o0.xyzw dcl_temps 12 ftou r0.xy, v2.yxyy utof r0.xy, r0.xyxx add r0.z, -r0.x, cb0[27].z add r1.xyzw, r0.yzyz, l(-1.000000, -1.000000, 2.000000, 2.000000) div r1.xyzw, r1.xyzw, cb0[27].yzyz mad r2.yz, r1.yyxy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000) mad r1.xy, r1.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000) imul null, r0.z, v1.x, l(5) ld_indexable(buffer)(float,float,float,float) r3.xyz, r0.zzzz, t0.xyzw imad r0.z, v1.x, l(5), l(1) ld_indexable(buffer)(float,float,float,float) r4.xyz, r0.zzzz, t0.xyzw lt r0.zw, r2.zzzy, r4.xxxy and r0.z, r0.w, r0.z mov r1.z, l(1.000000) lt r5.xyz, r3.xyzx, r1.xyzx and r0.w, r5.y, r5.x and r0.w, r5.z, r0.w and r0.z, r0.w, r0.z if_nz r0.z add r3.xyz, r3.xyzx, r4.xyzx imad r4.xyz, v1.xxxx, l(5, 5, 5, 0), l(2, 3, 4, 0) ld_indexable(buffer)(float,float,float,float) r5.xyz, r4.xxxx, t0.xyzw ld_indexable(buffer)(float,float,float,float) r4.xyw, r4.yyyy, t0.xywz ld_indexable(buffer)(float,float,float,float) r6.xyz, r4.zzzz, t0.xyzw mov r2.w, l(-1000.000000) mad r7.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.zywz dp3 r8.x, r7.xyzx, r5.xyzx dp3 r8.y, r7.xyzx, r4.xywx dp3 r8.z, r7.xyzx, r6.xyzx min r7.xyz, r8.xyzx, l(500000.000000, 500000.000000, 500000.000000, 0.000000) max r8.xyz, r8.xyzx, l(-500000.000000, -500000.000000, -500000.000000, 0.000000) mov r2.x, r1.x mad r9.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xywx dp3 r10.x, r9.xyzx, r5.xyzx dp3 r10.y, r9.xyzx, r4.xywx dp3 r10.z, r9.xyzx, r6.xyzx min r7.xyz, r7.xyzx, r10.xyzx max r8.xyz, r8.xyzx, r10.xyzx mov r9.xy, r2.zwzz mov r9.w, r1.y mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwyx dp3 r11.x, r10.xyzx, r5.xyzx dp3 r11.y, r10.xyzx, r4.xywx dp3 r11.z, r10.xyzx, r6.xyzx min r7.xyz, r7.xyzx, r11.xyzx max r8.xyz, r8.xyzx, r11.xyzx mov r9.xy, r2.xwxx mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwyx dp3 r11.x, r10.xyzx, r5.xyzx dp3 r11.y, r10.xyzx, r4.xywx dp3 r11.z, r10.xyzx, r6.xyzx min r7.xyz, r7.xyzx, r11.xyzx max r8.xyz, r8.xyzx, r11.xyzx mov r9.xy, r2.zyzz mov r9.z, l(1.000000) mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xyzx dp3 r11.x, r10.xyzx, r5.xyzx dp3 r11.y, r10.xyzx, r4.xywx dp3 r11.z, r10.xyzx, r6.xyzx min r7.xyz, r7.xyzx, r11.xyzx max r8.xyz, r8.xyzx, r11.xyzx mov r2.z, l(1.000000) mad r2.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx dp3 r10.x, r2.xyzx, r5.xyzx dp3 r10.y, r2.xyzx, r4.xywx dp3 r10.z, r2.xyzx, r6.xyzx min r2.xyz, r7.xyzx, r10.xyzx max r7.xyz, r8.xyzx, r10.xyzx mad r8.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwzx dp3 r9.x, r8.xyzx, r5.xyzx dp3 r9.y, r8.xyzx, r4.xywx dp3 r9.z, r8.xyzx, r6.xyzx min r2.xyz, r2.xyzx, r9.xyzx max r7.xyz, r7.xyzx, r9.xyzx mad r1.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx dp3 r3.x, r1.xyzx, r5.xyzx dp3 r3.y, r1.xyzx, r4.xywx dp3 r3.z, r1.xyzx, r6.xyzx min r1.xyz, r2.xyzx, r3.xyzx max r2.xyz, r3.xyzx, r7.xyzx lt r1.xyz, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000) and r0.z, r1.y, r1.x and r0.z, r1.z, r0.z lt r1.xyz, l(-1.000000, -1.000000, -1.000000, 0.000000), r2.xyzx and r0.w, r1.y, r1.x and r0.w, r1.z, r0.w and r0.z, r0.w, r0.z if_nz r0.z mad r0.x, r0.x, cb0[27].y, r0.y ftou r0.x, r0.x bfi r0.y, l(31), l(1), r0.x, l(1) imm_atomic_iadd r1.x, u1, r0.y, l(1) ult r0.y, r1.x, l(512) if_nz r0.y mad r0.y, cb0[27].y, cb0[27].z, l(0.500000) ftou r0.y, r0.y imad r0.x, r1.x, r0.y, r0.x store_uav_typed u2.xyzw, r0.xxxx, v1.xxxx endif endif endif mov o0.xyzw, l(0,0,0,0) ret // Approximately 0 instruction slots used ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Yes, I do. I'll include a screenshot of how the game looks when that PS is disabled in hunting mode.

The game adds newly detected pixel shaders on the fly, so the total number of PS went up from 192 to 421 after 5 minutes of playtime.

Every time a new PS is detected, the shader that's causing the issue changes.
At first it was named PS158 then 179, 193, 255, 276, 312 and finally I found it to be PS322.
It will probably change again after discovering new parts of the world map.

3Dmigoto returns an error when I try to save PS322. "Failed to copy marked shader" presumably because it already exists or something like that.

Despite that error message after pressing "3" on the numeric keypad, 3Dmigoto dumps the following PS:


// ---- Created with 3Dmigoto v1.3.11 on Sun Sep 09 17:02:31 2018
Buffer<float4> t0 : register(t0);

cbuffer cb0 : register(b0)
{
float4 cb0[28];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
float4 v0 : TEXCOORD0,
nointerpolation uint v1 : TEXCOORD1,
float4 v2 : SV_POSITION0,
out float4 o0 : SV_Target0)
{
// Needs manual fix for instruction:
// unknown dcl_: dcl_uav_typed_buffer (uint,uint,uint,uint) u1
// Needs manual fix for instruction:
// unknown dcl_: dcl_uav_typed_buffer (uint,uint,uint,uint) u2
float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11;
uint4 bitmask, uiDest;
float4 fDest;

r0.xy = (uint2)v2.yx;
r0.xy = (uint2)r0.xy;
r0.z = cb0[27].z + -r0.x;
r1.xyzw = float4(-1,-1,2,2) + r0.yzyz;
r1.xyzw = r1.xyzw / cb0[27].yzyz;
r2.yz = r1.yx * float2(2,2) + float2(-1,-1);
r1.xy = r1.zw * float2(2,2) + float2(-1,-1);
r0.z = (int)v1.x * 5;
r3.xyz = t0.Load(r0.z).xyz;
r0.z = mad((int)v1.x, 5, 1);
r4.xyz = t0.Load(r0.z).xyz;
r0.zw = cmp(r2.zy < r4.xy);
r0.z = r0.w ? r0.z : 0;
r1.z = 1;
r5.xyz = cmp(r3.xyz < r1.xyz);
r0.w = r5.y ? r5.x : 0;
r0.w = r5.z ? r0.w : 0;
r0.z = r0.w ? r0.z : 0;
if (r0.z != 0) {
r3.xyz = r4.xyz + r3.xyz;
r4.xyz = mad((int3)v1.xxx, int3(5,5,5), int3(2,3,4));
r5.xyz = t0.Load(r4.x).xyz;
r4.xyw = t0.Load(r4.y).xyz;
r6.xyz = t0.Load(r4.z).xyz;
r2.w = -1000;
r7.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.zyw;
r8.x = dot(r7.xyz, r5.xyz);
r8.y = dot(r7.xyz, r4.xyw);
r8.z = dot(r7.xyz, r6.xyz);
r7.xyz = min(float3(500000,500000,500000), r8.xyz);
r8.xyz = max(float3(-500000,-500000,-500000), r8.xyz);
r2.x = r1.x;
r9.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.xyw;
r10.x = dot(r9.xyz, r5.xyz);
r10.y = dot(r9.xyz, r4.xyw);
r10.z = dot(r9.xyz, r6.xyz);
r7.xyz = min(r10.xyz, r7.xyz);
r8.xyz = max(r10.xyz, r8.xyz);
r9.xy = r2.zw;
r9.w = r1.y;
r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwy;
r11.x = dot(r10.xyz, r5.xyz);
r11.y = dot(r10.xyz, r4.xyw);
r11.z = dot(r10.xyz, r6.xyz);
r7.xyz = min(r11.xyz, r7.xyz);
r8.xyz = max(r11.xyz, r8.xyz);
r9.xy = r2.xw;
r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwy;
r11.x = dot(r10.xyz, r5.xyz);
r11.y = dot(r10.xyz, r4.xyw);
r11.z = dot(r10.xyz, r6.xyz);
r7.xyz = min(r11.xyz, r7.xyz);
r8.xyz = max(r11.xyz, r8.xyz);
r9.xy = r2.zy;
r9.z = 1;
r10.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xyz;
r11.x = dot(r10.xyz, r5.xyz);
r11.y = dot(r10.xyz, r4.xyw);
r11.z = dot(r10.xyz, r6.xyz);
r7.xyz = min(r11.xyz, r7.xyz);
r8.xyz = max(r11.xyz, r8.xyz);
r2.z = 1;
r2.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r2.xyz;
r10.x = dot(r2.xyz, r5.xyz);
r10.y = dot(r2.xyz, r4.xyw);
r10.z = dot(r2.xyz, r6.xyz);
r2.xyz = min(r10.xyz, r7.xyz);
r7.xyz = max(r10.xyz, r8.xyz);
r8.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r9.xwz;
r9.x = dot(r8.xyz, r5.xyz);
r9.y = dot(r8.xyz, r4.xyw);
r9.z = dot(r8.xyz, r6.xyz);
r2.xyz = min(r9.xyz, r2.xyz);
r7.xyz = max(r9.xyz, r7.xyz);
r1.xyz = -r3.xyz * float3(0.5,0.5,0.5) + r1.xyz;
r3.x = dot(r1.xyz, r5.xyz);
r3.y = dot(r1.xyz, r4.xyw);
r3.z = dot(r1.xyz, r6.xyz);
r1.xyz = min(r3.xyz, r2.xyz);
r2.xyz = max(r7.xyz, r3.xyz);
r1.xyz = cmp(r1.xyz < float3(1,1,1));
r0.z = r1.y ? r1.x : 0;
r0.z = r1.z ? r0.z : 0;
r1.xyz = cmp(float3(-1,-1,-1) < r2.xyz);
r0.w = r1.y ? r1.x : 0;
r0.w = r1.z ? r0.w : 0;
r0.z = r0.w ? r0.z : 0;
if (r0.z != 0) {
r0.x = r0.x * cb0[27].y + r0.y;
r0.x = (uint)r0.x;
bitmask.y = ((~(-1 << 31)) << 1) & 0xffffffff; r0.y = (((uint)r0.x << 1) & bitmask.y) | ((uint)1 & ~bitmask.y);
// Needs manual fix for instruction:
imm_atomic_iadd r1.x, u1, r0.y, l(1)
InterlockedAdd(dest, imm_value, orig_value);
r0.y = cmp((uint)r1.x < 512);
if (r0.y != 0) {
r0.y = cb0[27].y * cb0[27].z + 0.5;
r0.y = (uint)r0.y;
r0.x = mad((int)r1.x, (int)r0.y, (int)r0.x);
// No code for instruction (needs manual fix):
store_uav_typed u2.xyzw, r0.xxxx, v1.xxxx
}
}
}
o0.xyzw = float4(0,0,0,0);
return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
// using 3Dmigoto v1.3.11 on Sun Sep 09 17:02:31 2018
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD 0 xyzw 0 NONE float
// TEXCOORD 1 x 1 NONE uint x
// SV_POSITION 0 xyzw 2 POS float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[28], immediateIndexed
dcl_resource_buffer (float,float,float,float) t0
dcl_uav_typed_buffer (uint,uint,uint,uint) u1
dcl_uav_typed_buffer (uint,uint,uint,uint) u2
dcl_input_ps constant v1.x
dcl_input_ps_siv linear noperspective v2.xy, position
dcl_output o0.xyzw
dcl_temps 12
ftou r0.xy, v2.yxyy
utof r0.xy, r0.xyxx
add r0.z, -r0.x, cb0[27].z
add r1.xyzw, r0.yzyz, l(-1.000000, -1.000000, 2.000000, 2.000000)
div r1.xyzw, r1.xyzw, cb0[27].yzyz
mad r2.yz, r1.yyxy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
mad r1.xy, r1.zwzz, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
imul null, r0.z, v1.x, l(5)
ld_indexable(buffer)(float,float,float,float) r3.xyz, r0.zzzz, t0.xyzw
imad r0.z, v1.x, l(5), l(1)
ld_indexable(buffer)(float,float,float,float) r4.xyz, r0.zzzz, t0.xyzw
lt r0.zw, r2.zzzy, r4.xxxy
and r0.z, r0.w, r0.z
mov r1.z, l(1.000000)
lt r5.xyz, r3.xyzx, r1.xyzx
and r0.w, r5.y, r5.x
and r0.w, r5.z, r0.w
and r0.z, r0.w, r0.z
if_nz r0.z
add r3.xyz, r3.xyzx, r4.xyzx
imad r4.xyz, v1.xxxx, l(5, 5, 5, 0), l(2, 3, 4, 0)
ld_indexable(buffer)(float,float,float,float) r5.xyz, r4.xxxx, t0.xyzw
ld_indexable(buffer)(float,float,float,float) r4.xyw, r4.yyyy, t0.xywz
ld_indexable(buffer)(float,float,float,float) r6.xyz, r4.zzzz, t0.xyzw
mov r2.w, l(-1000.000000)
mad r7.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.zywz
dp3 r8.x, r7.xyzx, r5.xyzx
dp3 r8.y, r7.xyzx, r4.xywx
dp3 r8.z, r7.xyzx, r6.xyzx
min r7.xyz, r8.xyzx, l(500000.000000, 500000.000000, 500000.000000, 0.000000)
max r8.xyz, r8.xyzx, l(-500000.000000, -500000.000000, -500000.000000, 0.000000)
mov r2.x, r1.x
mad r9.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xywx
dp3 r10.x, r9.xyzx, r5.xyzx
dp3 r10.y, r9.xyzx, r4.xywx
dp3 r10.z, r9.xyzx, r6.xyzx
min r7.xyz, r7.xyzx, r10.xyzx
max r8.xyz, r8.xyzx, r10.xyzx
mov r9.xy, r2.zwzz
mov r9.w, r1.y
mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwyx
dp3 r11.x, r10.xyzx, r5.xyzx
dp3 r11.y, r10.xyzx, r4.xywx
dp3 r11.z, r10.xyzx, r6.xyzx
min r7.xyz, r7.xyzx, r11.xyzx
max r8.xyz, r8.xyzx, r11.xyzx
mov r9.xy, r2.xwxx
mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwyx
dp3 r11.x, r10.xyzx, r5.xyzx
dp3 r11.y, r10.xyzx, r4.xywx
dp3 r11.z, r10.xyzx, r6.xyzx
min r7.xyz, r7.xyzx, r11.xyzx
max r8.xyz, r8.xyzx, r11.xyzx
mov r9.xy, r2.zyzz
mov r9.z, l(1.000000)
mad r10.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xyzx
dp3 r11.x, r10.xyzx, r5.xyzx
dp3 r11.y, r10.xyzx, r4.xywx
dp3 r11.z, r10.xyzx, r6.xyzx
min r7.xyz, r7.xyzx, r11.xyzx
max r8.xyz, r8.xyzx, r11.xyzx
mov r2.z, l(1.000000)
mad r2.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r2.xyzx
dp3 r10.x, r2.xyzx, r5.xyzx
dp3 r10.y, r2.xyzx, r4.xywx
dp3 r10.z, r2.xyzx, r6.xyzx
min r2.xyz, r7.xyzx, r10.xyzx
max r7.xyz, r8.xyzx, r10.xyzx
mad r8.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r9.xwzx
dp3 r9.x, r8.xyzx, r5.xyzx
dp3 r9.y, r8.xyzx, r4.xywx
dp3 r9.z, r8.xyzx, r6.xyzx
min r2.xyz, r2.xyzx, r9.xyzx
max r7.xyz, r7.xyzx, r9.xyzx
mad r1.xyz, -r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx
dp3 r3.x, r1.xyzx, r5.xyzx
dp3 r3.y, r1.xyzx, r4.xywx
dp3 r3.z, r1.xyzx, r6.xyzx
min r1.xyz, r2.xyzx, r3.xyzx
max r2.xyz, r3.xyzx, r7.xyzx
lt r1.xyz, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
and r0.z, r1.y, r1.x
and r0.z, r1.z, r0.z
lt r1.xyz, l(-1.000000, -1.000000, -1.000000, 0.000000), r2.xyzx
and r0.w, r1.y, r1.x
and r0.w, r1.z, r0.w
and r0.z, r0.w, r0.z
if_nz r0.z
mad r0.x, r0.x, cb0[27].y, r0.y
ftou r0.x, r0.x
bfi r0.y, l(31), l(1), r0.x, l(1)
imm_atomic_iadd r1.x, u1, r0.y, l(1)
ult r0.y, r1.x, l(512)
if_nz r0.y
mad r0.y, cb0[27].y, cb0[27].z, l(0.500000)
ftou r0.y, r0.y
imad r0.x, r1.x, r0.y, r0.x
store_uav_typed u2.xyzw, r0.xxxx, v1.xxxx
endif
endif
endif
mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

#10
Posted 09/09/2018 04:00 PM   
@Gryzor_ That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.
@Gryzor_
That seesm not be the correct shader...try to found another shader that remove only the wrong effect, not all shadows. Also a screenshot with the issue on screen will be nice.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#11
Posted 09/10/2018 03:56 PM   
Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference. When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.
Just in case, Gryzor_ (you probably know this): regex doesn't affect dumped shaders, so shaders inside ShaderFixes always have the preference.

When you say shaders are renamed, do you mean the filenames? Because you seem to talk only about the numbers you see in the hunting HUD. The numbers there are just the order of the shaders in the current scene, and it grows bigger if you don't clear it with "numpad +". It's normal for numbers to be different all the time.

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

#12
Posted 09/10/2018 04:20 PM   
Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end. Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere. [quote="masterotaku"]It's normal for numbers to be different all the time.[/quote] So how do you find shaders to match when you want to compare shaders from an old (fixed) game? This was confusing me a lot when I dumped shaders to compare when I saw none of the shaders I dumped were in the already fixed state. (I emptied ShaderFixes and dumped fresh broken shaders to compare but none were matching with those already fixed)
Thanks for sharing Gryzor. I'm at 82 hours for Zelda BOTW and stopped playing the main quest because I don't wont the game to end.
Coincidentally tonight I was thinking when a game that could match this one would see the light. This game does seem to match the atmosphere.

masterotaku said:It's normal for numbers to be different all the time.
So how do you find shaders to match when you want to compare shaders from an old (fixed) game? This was confusing me a lot when I dumped shaders to compare when I saw none of the shaders I dumped were in the already fixed state. (I emptied ShaderFixes and dumped fresh broken shaders to compare but none were matching with those already fixed)

#13
Posted 09/10/2018 07:37 PM   
[quote="KoelerMeester"]So how do you find shaders to match when you want to compare shaders from an old (fixed) game? This was confusing me a lot when I dumped shaders to compare when I saw none of the shaders I dumped were in the already fixed state. (I emptied ShaderFixes and dumped fresh broken shaders to compare but none were matching with those already fixed)[/quote] Patterns in the shader code. There are usually one or two lines that differenciate different types of shaders (each type needing the same fix, or more or less the same). Then it's just ctrl+f and search in all your files and the old files with Notepad++, and then compare them. Or if you know you want to fix water, and one of the old shaders has "Water" written inside it by the old fixer, you know it may be that one :p. What I do with Tekken 7 (thousands of shaders) is searching for one or two specific lines in all the ShaderCache folder that the game generates, after taking out the most recent files. I copy those files to another place, search the lines, replace a few things automatically, and put the files in ShaderFixes. The first DMC HD Collection update broke all my shaders. All new CRCs. The code was basically the same and I had to compare them to the old shaders one by one. Using good names in the first line helps a lot. Years ago I opened shaders from other game fixes only to find out there were 0 comments, absolutely no clues about what shaders did.
KoelerMeester said:So how do you find shaders to match when you want to compare shaders from an old (fixed) game? This was confusing me a lot when I dumped shaders to compare when I saw none of the shaders I dumped were in the already fixed state. (I emptied ShaderFixes and dumped fresh broken shaders to compare but none were matching with those already fixed)


Patterns in the shader code. There are usually one or two lines that differenciate different types of shaders (each type needing the same fix, or more or less the same). Then it's just ctrl+f and search in all your files and the old files with Notepad++, and then compare them.
Or if you know you want to fix water, and one of the old shaders has "Water" written inside it by the old fixer, you know it may be that one :p.

What I do with Tekken 7 (thousands of shaders) is searching for one or two specific lines in all the ShaderCache folder that the game generates, after taking out the most recent files. I copy those files to another place, search the lines, replace a few things automatically, and put the files in ShaderFixes.

The first DMC HD Collection update broke all my shaders. All new CRCs. The code was basically the same and I had to compare them to the old shaders one by one. Using good names in the first line helps a lot. Years ago I opened shaders from other game fixes only to find out there were 0 comments, absolutely no clues about what shaders did.

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

#14
Posted 09/10/2018 08:10 PM   
[quote="masterotaku"]Patterns in the shader code. There are usually one or two lines that differenciate different types of shaders (each type needing the same fix, or more or less the same). Then it's just ctrl+f and search in all your files and the old files with Notepad++, and then compare them. [/quote] Thanks for clarifying masterotaku. This sounds like a lot of searching and patience. So this means a certain part of shaders will always be the same? You just need to identify that specific algorithm of the shader to apply the correct stereorising effect?
masterotaku said:Patterns in the shader code. There are usually one or two lines that differenciate different types of shaders (each type needing the same fix, or more or less the same). Then it's just ctrl+f and search in all your files and the old files with Notepad++, and then compare them.
Thanks for clarifying masterotaku. This sounds like a lot of searching and patience. So this means a certain part of shaders will always be the same? You just need to identify that specific algorithm of the shader to apply the correct stereorising effect?

#15
Posted 09/11/2018 10:49 AM   
  1 / 4    
Scroll To Top