diff options
| author | 2026-10-12 20:41:17 -0400 | |
|---|---|---|
| committer | 2026-10-12 20:41:17 -0400 | |
| commit | d936fce375f99294184a60958180c5549c78512b (patch) | |
| tree | f485206a94f746a7d9d9f7dcb99d28cb1085db10 /Plugin.cs | |
| parent | 421eb7e473f0772a7af5884a62b0942151fa302e (diff) | |
| download | WorldTuningTool-d936fce375f99294184a60958180c5549c78512b.tar.gz WorldTuningTool-d936fce375f99294184a60958180c5549c78512b.tar.bz2 WorldTuningTool-d936fce375f99294184a60958180c5549c78512b.zip | |
Temporary revert of some cleanup for compat
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'Plugin.cs')
| -rw-r--r-- | Plugin.cs | 158 |
1 files changed, 79 insertions, 79 deletions
@@ -2601,7 +2601,7 @@ namespace WorldTuningTool updatePrimaryLightParams = Hook.Create<UpdatePrimaryLightParams>(addr, UpdatePrimaryLightParamsHook); staticPrimaryLightParams = Hook.Create<StaticPrimaryLightParams>(0x1416D94F0, StaticPrimaryLightParamsHook); - defaultHqMode = new Patch(0x14226562B, [0xC6, 0x87, 0xA3, 0xE9, 0x00, 0x00, 0x01]); + defaultHqMode = new Patch((nint)0x14226562B, [0xC6, 0x87, 0xA3, 0xE9, 0x00, 0x00, 0x01]); //defaultHqMode.Enable(); setShadowQuality = new NativeAction<int>(0x14043FF80); @@ -2624,9 +2624,9 @@ namespace WorldTuningTool shadowRes1_2 = new Patch(addr + 0x68, [0x59]); // movss -> mulss. shadowRes1_3 = new Patch(addr + 0x77, [0x59]); // movss -> mulss. #if OVERSIZED_SHADOW_MAP - shadowRes1_4 = new Patch(0x142288AAA + 0x4, [0x7A, 0x97, 0xF8, 0x00]); // Limit 4.0 -> 6.0. + shadowRes1_4 = new Patch((nint)0x142288AAA + 0x4, [0x7A, 0x97, 0xF8, 0x00]); // Limit 4.0 -> 6.0. #else - shadowRes1_4 = new Patch(0x142288AAA + 0x4, [0x9E]); // Limit 4.0 -> 5.0. + shadowRes1_4 = new Patch((nint)0x142288AAA + 0x4, [0x9E]); // Limit 4.0 -> 5.0. #endif addr = PatternScanner.FindFirst(Pattern.FromString("89 91 00 55 00 00 83 FA 05 77 41 48 63 C2 4C 8D 05 ?? ?? ?? ?? 41 8B 94 80 84 8B 28 02 49 03 D0 FF E2 B8 00 08 00 00")); Assert(addr == 0x142288B00); @@ -2653,32 +2653,32 @@ namespace WorldTuningTool // time (area change/createToneMapObject() vs change of Volume Quality setting). It's also rendered // in a seperate pass that happens after the initial volume rendering. So keep that in mind if inspecting // a frame in renderdoc. - volumeSars1 = new Patch(0x1424D0159, [0x90, 0x90]); - volumeSars2 = new Patch(0x1424D01A0, [0x90, 0x90]); - volumeSars3 = new Patch(0x1424D01C6, [0x90, 0x90]); - volumeSars4 = new Patch(0x1424D0219, [0x90, 0x90]); - volumeSars5 = new Patch(0x1424D0242, [0x90, 0x90]); - volumeSars6 = new Patch(0x1424D029D, [0x90, 0x90]); - volumeSars7 = new Patch(0x1424D02C6, [0x90, 0x90]); - volumeSars8 = new Patch(0x1424D0321, [0x90, 0x90]); - volumeSars9 = new Patch(0x1424D034A, [0x90, 0x90]); + volumeSars1 = new Patch((nint)0x1424D0159, [0x90, 0x90]); + volumeSars2 = new Patch((nint)0x1424D01A0, [0x90, 0x90]); + volumeSars3 = new Patch((nint)0x1424D01C6, [0x90, 0x90]); + volumeSars4 = new Patch((nint)0x1424D0219, [0x90, 0x90]); + volumeSars5 = new Patch((nint)0x1424D0242, [0x90, 0x90]); + volumeSars6 = new Patch((nint)0x1424D029D, [0x90, 0x90]); + volumeSars7 = new Patch((nint)0x1424D02C6, [0x90, 0x90]); + volumeSars8 = new Patch((nint)0x1424D0321, [0x90, 0x90]); + volumeSars9 = new Patch((nint)0x1424D034A, [0x90, 0x90]); /* As far as I can tell, this is limited by buffers created cpu-side. Seems like * it would be an extremely hard change. - froxelRes1 = new Patch(0x142384F15 + 0x1, [0x02]); // 4 -> 2 - froxelRes2 = new Patch(0x142389711 + 0x1, [0x02]); // 4 -> 2 - froxelRes3 = new Patch(0x142389878 + 0x1, [0x02]); // 4 -> 2 - froxelRes4 = new Patch(0x14238989E + 0x1, [0x02]); // 4 -> 2 - froxelRes5 = new Patch(0x1423898D8 + 0x1, [0x02]); // 4 -> 2 - froxelRes6 = new Patch(0x14238992B + 0x1, [0x02]); // 4 -> 2 - froxelRes7 = new Patch(0x14238FED1 + 0x4, [0x7B, 0xFF, 0xAB, 0x00]); // 0.25 -> 0.50 - froxelRes8 = new Patch(0x14239009C + 0x4, [0xB0, 0xFD, 0xAB, 0X00]); // 0.25 -> 0.50 + froxelRes1 = new Patch((nint)0x142384F15 + 0x1, [0x02]); // 4 -> 2 + froxelRes2 = new Patch((nint)0x142389711 + 0x1, [0x02]); // 4 -> 2 + froxelRes3 = new Patch((nint)0x142389878 + 0x1, [0x02]); // 4 -> 2 + froxelRes4 = new Patch((nint)0x14238989E + 0x1, [0x02]); // 4 -> 2 + froxelRes5 = new Patch((nint)0x1423898D8 + 0x1, [0x02]); // 4 -> 2 + froxelRes6 = new Patch((nint)0x14238992B + 0x1, [0x02]); // 4 -> 2 + froxelRes7 = new Patch((nint)0x14238FED1 + 0x4, [0x7B, 0xFF, 0xAB, 0x00]); // 0.25 -> 0.50 + froxelRes8 = new Patch((nint)0x14239009C + 0x4, [0xB0, 0xFD, 0xAB, 0X00]); // 0.25 -> 0.50 */ /* Would require a complicated shader edit to maybe work. Similar to SSLR. - checkerRes1 = new Patch(0x14238580D + 0x4, [0x43]); // 0.5 -> 1.0 - checkerRes2 = new Patch(0x14238FFC3 + 0x4, [0x8D]); // 0.5 -> 1.0 + checkerRes1 = new Patch((nint)0x14238580D + 0x4, [0x43]); // 0.5 -> 1.0 + checkerRes2 = new Patch((nint)0x14238FFC3 + 0x4, [0x8D]); // 0.5 -> 1.0 */ - value2ForVolumeQuality = new Patch(0x142389652, [0xB8, 0x02, 0x00, 0x00, 0x00, 0x90]); + value2ForVolumeQuality = new Patch((nint)0x142389652, [0xB8, 0x02, 0x00, 0x00, 0x00, 0x90]); // Gameplay. addr = PatternScanner.FindFirst(Pattern.FromString("80 BB 34 EC 00 00 00 88 8B 31 EC 00 00 C6 83 30 EC 00 00 00 74 1C C6 83 34 EC 00 00 00 48 8B 0D 68 4B 4F 03 80 B9 58 02 00 00 00 75 05 E8 5A F5 01 00 48 8B CB E8 E2 05 00 00 83 BB DC EB 00 00 06 74 0A C7 83 DC EB 00 00 06 00 00 00")); @@ -2696,25 +2696,25 @@ namespace WorldTuningTool defaultViewModeLODLimit_2 = new Patch(addr + 0x24, [0x07]); // Talking to NPC. - defaultViewModeLODLimit_3 = new Patch(0x14128F1AC + 0x1, [0x07]); - defaultViewModeLODLimit_4 = new Patch(0x14128F1AC + 0xF, [0x07]); + defaultViewModeLODLimit_3 = new Patch((nint)0x14128F1AC + 0x1, [0x07]); + defaultViewModeLODLimit_4 = new Patch((nint)0x14128F1AC + 0xF, [0x07]); - defaultCharaCreatorParam = new Patch(0x141B1A0C1 + 0x6, [0x1]); + defaultCharaCreatorParam = new Patch((nint)0x141B1A0C1 + 0x6, [0x1]); addr = PatternScanner.FindFirst(Pattern.FromString("74 4D 33 C0 48 81 C1 00 02 00 00 F3 0F 10 11 0F 2F CA 72 0C FF C0 48 83 C1 04 83 F8 03 72 EC C3")); Assert(addr == 0x1426D89CA); addressHigherValueForFoliageSway = new Patch(addr + 0x7, [0x04]); // Found using mFrameSkipNum annotation from MHW-DTI-Dumps. - zeroFrameSkip = new Patch(0x142246948, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); - zeroFrameSkip2 = new Patch(0x142641888, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); - zeroFrameSkip3 = new Patch(0x14237AD75, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); + zeroFrameSkip = new Patch((nint)0x142246948, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); + zeroFrameSkip2 = new Patch((nint)0x142641888, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); + zeroFrameSkip3 = new Patch((nint)0x14237AD75, [0x31, 0xC0, 0x90, 0x90, 0x90, 0x90]); - viewModeAddressLod1 = new Patch(0x141B19A6C + 0x4, [0x1C, 0x02, 0x00, 0x00]); - viewModeAddressLod2 = new Patch(0x141B19B7C + 0x4, [0x20, 0x02, 0x00, 0x00]); + viewModeAddressLod1 = new Patch((nint)0x141B19A6C + 0x4, [0x1C, 0x02, 0x00, 0x00]); + viewModeAddressLod2 = new Patch((nint)0x141B19B7C + 0x4, [0x20, 0x02, 0x00, 0x00]); // vTable of Interest: 0x1433B8730. - jmpOverEffects = new Patch(0x14263483B, [0xEB]); + jmpOverEffects = new Patch((nint)0x14263483B, [0xEB]); // The game will crash when trying to switch to the FULL_RES path for SSR. It's likley because // it tries to access shaders that are not available in the game files. @@ -2724,78 +2724,78 @@ namespace WorldTuningTool // is that it's compiled out and that this method of increasing the SSR resolution can't work. /* // Attempt to forcefully enable FULL_RES path for SSR. - ssrFullRes1 = new Patch(0x14228894D, [0x0F, 0x85, 0xB9, 0xAA, 0x30, 0x00]); - ssrFullRes1_1 = new Patch(0x14259340C, [0xC6, 0x81, 0x28, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); - ssrFullRes2 = new Patch(0x14228897D, [0x0F, 0x85, 0x99, 0xAA, 0x30, 0x00]); - ssrFullRes2_1 = new Patch(0x14259341C, [0xC6, 0x81, 0x30, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); - ssrFullRes3 = new Patch(0x1422889AD, [0x0F, 0x85, 0x79, 0xAA, 0x30, 0x00]); - ssrFullRes3_1 = new Patch(0x14259342C, [0xC6, 0x81, 0x2C, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); - ssrFullRes4 = new Patch(0x14259268C, [0x41, 0xC7, 0x86, 0x28, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x2C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x34, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x41, 0xC7, 0x86, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x41, 0xC6, 0x86, 0x3C, 0x02, 0x00, 0x00, 0x01]); + ssrFullRes1 = new Patch((nint)0x14228894D, [0x0F, 0x85, 0xB9, 0xAA, 0x30, 0x00]); + ssrFullRes1_1 = new Patch((nint)0x14259340C, [0xC6, 0x81, 0x28, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); + ssrFullRes2 = new Patch((nint)0x14228897D, [0x0F, 0x85, 0x99, 0xAA, 0x30, 0x00]); + ssrFullRes2_1 = new Patch((nint)0x14259341C, [0xC6, 0x81, 0x30, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); + ssrFullRes3 = new Patch((nint)0x1422889AD, [0x0F, 0x85, 0x79, 0xAA, 0x30, 0x00]); + ssrFullRes3_1 = new Patch((nint)0x14259342C, [0xC6, 0x81, 0x2C, 0x02, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90]); + ssrFullRes4 = new Patch((nint)0x14259268C, [0x41, 0xC7, 0x86, 0x28, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x2C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xC7, 0x86, 0x34, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x41, 0xC7, 0x86, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x41, 0xC6, 0x86, 0x3C, 0x02, 0x00, 0x00, 0x01]); */ // SSLR resolution factor 0.5 -> 1.0 (not related to fSSLRFactor or fSSLRScale). - ssrRes1 = new Patch(0x1425926B8 + 0x9, [0x80]); - ssrRes2 = new Patch(0x1425934C0 + 0x8, [0x80]); + ssrRes1 = new Patch((nint)0x1425926B8 + 0x9, [0x80]); + ssrRes2 = new Patch((nint)0x1425934C0 + 0x8, [0x80]); // Skip mip mapping pass (part of _FULL_RES). - ssrRes3 = new Patch(0x142282B53, [0x31, 0xC0, 0x90, 0x90, 0x90]); + ssrRes3 = new Patch((nint)0x142282B53, [0x31, 0xC0, 0x90, 0x90, 0x90]); // Depth mips resolution. - ssrShr1 = new Patch(0x14269DE47, [0x90, 0x90]); - ssrShr2 = new Patch(0x14269DE54, [0x90, 0x90]); - ssrShr3 = new Patch(0x14269E07A, [0x90, 0x90]); - ssrShr4 = new Patch(0x14269E080, [0x90, 0x90]); + ssrShr1 = new Patch((nint)0x14269DE47, [0x90, 0x90]); + ssrShr2 = new Patch((nint)0x14269DE54, [0x90, 0x90]); + ssrShr3 = new Patch((nint)0x14269E07A, [0x90, 0x90]); + ssrShr4 = new Patch((nint)0x14269E080, [0x90, 0x90]); // Approximate depth mip resolution. - ssrShr5 = new Patch(0x14269DED3 + 0x2, [0x3]); // 4 -> 3 - ssrShr6 = new Patch(0x14269DEDA + 0x3, [0x3]); + ssrShr5 = new Patch((nint)0x14269DED3 + 0x2, [0x3]); // 4 -> 3 + ssrShr6 = new Patch((nint)0x14269DEDA + 0x3, [0x3]); // Depth mips pass 1 dispatch dimensions. - ssrSars1 = new Patch(0x142282FD8 + 0x3, [0x3]); // 4 -> 3 - ssrSars2 = new Patch(0x142282FE5 + 0x2, [0x3]); + ssrSars1 = new Patch((nint)0x142282FD8 + 0x3, [0x3]); // 4 -> 3 + ssrSars2 = new Patch((nint)0x142282FE5 + 0x2, [0x3]); // Depth mips pass 2 iRegion parameter. - ssrSars3 = new Patch(0x142283014 + 0x3, [0x3]); - ssrSars4 = new Patch(0x142283018 + 0x3, [0x3]); - ssrSars5 = new Patch(0x14228301C + 0x3, [0x3]); - ssrSars6 = new Patch(0x142283020 + 0x2, [0x3]); + ssrSars3 = new Patch((nint)0x142283014 + 0x3, [0x3]); + ssrSars4 = new Patch((nint)0x142283018 + 0x3, [0x3]); + ssrSars5 = new Patch((nint)0x14228301C + 0x3, [0x3]); + ssrSars6 = new Patch((nint)0x142283020 + 0x2, [0x3]); // Depth mips pass 2 dispatch dimensions. - ssrSars7 = new Patch(0x1422832B3 + 0x3, [0x3]); - ssrSars8 = new Patch(0x1422832C8 + 0x2, [0x3]); + ssrSars7 = new Patch((nint)0x1422832B3 + 0x3, [0x3]); + ssrSars8 = new Patch((nint)0x1422832C8 + 0x2, [0x3]); // Depth copy, for unknown use, viewport/scissor. - ssrSars9 = new Patch(0x1423C5809, [0x90, 0x90]); - ssrSars10 = new Patch(0x1423C5818, [0x90, 0x90]); - ssrSars11 = new Patch(0x1423C5824, [0x90, 0x90]); - ssrSars12 = new Patch(0x1423C5830, [0x90, 0x90]); - ssrSars13 = new Patch(0x1423C5ABC, [0x90, 0x90]); - ssrSars14 = new Patch(0x1423C5AF3, [0x90, 0x90]); + ssrSars9 = new Patch((nint)0x1423C5809, [0x90, 0x90]); + ssrSars10 = new Patch((nint)0x1423C5818, [0x90, 0x90]); + ssrSars11 = new Patch((nint)0x1423C5824, [0x90, 0x90]); + ssrSars12 = new Patch((nint)0x1423C5830, [0x90, 0x90]); + ssrSars13 = new Patch((nint)0x1423C5ABC, [0x90, 0x90]); + ssrSars14 = new Patch((nint)0x1423C5AF3, [0x90, 0x90]); // RayAppendBuffer dispatch dimensions, 4 -> 3 wasteful. - //new Patch(0x14228C323 + 0x3, [0x3]); - //new Patch(0x14228C32D + 0x2, [0x3]); + //new Patch((nint)0x14228C323 + 0x3, [0x3]); + //new Patch((nint)0x14228C32D + 0x2, [0x3]); // Clear trace buffer, 8 -> 7 wasteful - //new Patch(0x14228C3F4 + 0x2, [0x7]); + //new Patch((nint)0x14228C3F4 + 0x2, [0x7]); // Approximate mip resolution. - ssrShr7 = new Patch(0x142592EBA + 0x2, [0x3]); // 4 -> 3 - ssrShr8 = new Patch(0x142592ED0 + 0x2, [0x3]); + ssrShr7 = new Patch((nint)0x142592EBA + 0x2, [0x3]); // 4 -> 3 + ssrShr8 = new Patch((nint)0x142592ED0 + 0x2, [0x3]); // Mips pass 1 dispatch dimensions. - ssrSars15 = new Patch(0x142283626 + 0x3, [0x03]); // 4 -> 3 - ssrSars16 = new Patch(0x142283633 + 0x2, [0x03]); + ssrSars15 = new Patch((nint)0x142283626 + 0x3, [0x03]); // 4 -> 3 + ssrSars16 = new Patch((nint)0x142283633 + 0x2, [0x03]); // Mips pass 2 iRegion parameter. - ssrSars17 = new Patch(0x142283667 + 0x2, [0x03]); - ssrSars18 = new Patch(0x14228366A + 0x3, [0x03]); - ssrSars19 = new Patch(0x14228366E + 0x3, [0x03]); - ssrSars20 = new Patch(0x142283672 + 0x3, [0x03]); + ssrSars17 = new Patch((nint)0x142283667 + 0x2, [0x03]); + ssrSars18 = new Patch((nint)0x14228366A + 0x3, [0x03]); + ssrSars19 = new Patch((nint)0x14228366E + 0x3, [0x03]); + ssrSars20 = new Patch((nint)0x142283672 + 0x3, [0x03]); // Mips pass 2 dispatch dimensions. - ssrSars21 = new Patch(0x1422838E7 + 0x3, [0x03]); - ssrSars22 = new Patch(0x1422838FC + 0x2, [0x03]); + ssrSars21 = new Patch((nint)0x1422838E7 + 0x3, [0x03]); + ssrSars22 = new Patch((nint)0x1422838FC + 0x2, [0x03]); // Mips blur dispatch dimensions. - ssrSars23 = new Patch(0x1422839B0, [0x8D, 0x0E, 0x44, 0x8D, 0x76, 0x01, 0x90]); + ssrSars23 = new Patch((nint)0x1422839B0, [0x8D, 0x0E, 0x44, 0x8D, 0x76, 0x01, 0x90]); // Resolve pass, 4 -> 3 wasteful. - //new Patch(0x14228686D + 0x3, [0x3]); - //new Patch(0x142286877 + 0x2, [0x3]); + //new Patch((nint)0x14228686D + 0x3, [0x3]); + //new Patch((nint)0x142286877 + 0x2, [0x3]); - forceSSLRTemporalReset = new Patch(0x14228CE53, [0xB9, 0x01, 0x00, 0x00, 0x00, 0x90, 0x90]); + forceSSLRTemporalReset = new Patch((nint)0x14228CE53, [0xB9, 0x01, 0x00, 0x00, 0x00, 0x90, 0x90]); return new PluginData(); } |