From 3c185d5fdee82bcc4a79fd1114aeffe1a7975859 Mon Sep 17 00:00:00 2001 From: Jeffrey Paine Date: Sun, 25 Jun 2023 07:02:02 -0400 Subject: [PATCH] fix(iidx): Fix stretched BGAs in 9th and 10th style This adds edge cases to the existing logic that checks the vertex UV values to fix stretched BG videos on 11 to 17 already. However, 9 and 10 also show this issue on modern GPU hardware though it does not appear on all BG videos but only on videos from 1st to 3rd style songs. This commit addresses that issue by adding the missing checks to the existing logic. Additional refactoring of configuration naming etc. to match the extended functionality is included. --- dist/iidx/iidxhook-09.conf | 2 +- dist/iidx/iidxhook-10.conf | 2 +- dist/iidx/iidxhook-11.conf | 2 +- dist/iidx/iidxhook-12.conf | 2 +- dist/iidx/iidxhook-13.conf | 2 +- dist/iidx/iidxhook-14.conf | 2 +- dist/iidx/iidxhook-15.conf | 2 +- dist/iidx/iidxhook-16.conf | 2 +- dist/iidx/iidxhook-17.conf | 2 +- dist/iidx/iidxhook-18-cn.conf | 3 - dist/iidx/iidxhook-18.conf | 3 - dist/iidx/iidxhook-19.conf | 3 - dist/iidx/iidxhook-20-cn.conf | 3 - dist/iidx/iidxhook-20.conf | 3 - dist/iidx/iidxhook-21.conf | 3 - dist/iidx/iidxhook-22.conf | 3 - dist/iidx/iidxhook-23.conf | 3 - dist/iidx/iidxhook-24.conf | 3 - dist/iidx/iidxhook-25.conf | 3 - dist/iidx/iidxhook-26.conf | 3 - src/main/iidxhook-util/config-gfx.c | 5 +- src/main/iidxhook-util/d3d9.c | 144 ++++++++++++++++++---------- src/main/iidxhook-util/d3d9.h | 2 +- src/main/iidxhook1/dllmain.c | 2 +- src/main/iidxhook2/dllmain.c | 2 +- src/main/iidxhook3/dllmain.c | 2 +- 26 files changed, 112 insertions(+), 96 deletions(-) diff --git a/dist/iidx/iidxhook-09.conf b/dist/iidx/iidxhook-09.conf index 5894f4f..077e3d2 100755 --- a/dist/iidx/iidxhook-09.conf +++ b/dist/iidx/iidxhook-09.conf @@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-10.conf b/dist/iidx/iidxhook-10.conf index 9bbe438..a9874ea 100755 --- a/dist/iidx/iidxhook-10.conf +++ b/dist/iidx/iidxhook-10.conf @@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-11.conf b/dist/iidx/iidxhook-11.conf index ed834cb..e1dc01e 100755 --- a/dist/iidx/iidxhook-11.conf +++ b/dist/iidx/iidxhook-11.conf @@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-12.conf b/dist/iidx/iidxhook-12.conf index 217d142..a3518e3 100755 --- a/dist/iidx/iidxhook-12.conf +++ b/dist/iidx/iidxhook-12.conf @@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-13.conf b/dist/iidx/iidxhook-13.conf index 005dd74..1f8525f 100755 --- a/dist/iidx/iidxhook-13.conf +++ b/dist/iidx/iidxhook-13.conf @@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-14.conf b/dist/iidx/iidxhook-14.conf index d8c7645..935d75d 100755 --- a/dist/iidx/iidxhook-14.conf +++ b/dist/iidx/iidxhook-14.conf @@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-15.conf b/dist/iidx/iidxhook-15.conf index 4d35e15..b41ebaf 100755 --- a/dist/iidx/iidxhook-15.conf +++ b/dist/iidx/iidxhook-15.conf @@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-16.conf b/dist/iidx/iidxhook-16.conf index e30f7d7..1051ea7 100755 --- a/dist/iidx/iidxhook-16.conf +++ b/dist/iidx/iidxhook-16.conf @@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-17.conf b/dist/iidx/iidxhook-17.conf index 04a471f..06f25d9 100755 --- a/dist/iidx/iidxhook-17.conf +++ b/dist/iidx/iidxhook-17.conf @@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F # EAMID eamuse.eamid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer +# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style) gfx.bgvideo_uv_fix=false # Run the game in a framed window (requires windowed option) diff --git a/dist/iidx/iidxhook-18-cn.conf b/dist/iidx/iidxhook-18-cn.conf index 8eed203..10bb802 100644 --- a/dist/iidx/iidxhook-18-cn.conf +++ b/dist/iidx/iidxhook-18-cn.conf @@ -1,9 +1,6 @@ # PCBID eamuse.pcbid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-18.conf b/dist/iidx/iidxhook-18.conf index 51a5995..2380cde 100755 --- a/dist/iidx/iidxhook-18.conf +++ b/dist/iidx/iidxhook-18.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-19.conf b/dist/iidx/iidxhook-19.conf index 51a5995..2380cde 100755 --- a/dist/iidx/iidxhook-19.conf +++ b/dist/iidx/iidxhook-19.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-20-cn.conf b/dist/iidx/iidxhook-20-cn.conf index 0c4e207..77aef4f 100644 --- a/dist/iidx/iidxhook-20-cn.conf +++ b/dist/iidx/iidxhook-20-cn.conf @@ -1,9 +1,6 @@ # PCBID eamuse.pcbid=0101020304050607086F -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-20.conf b/dist/iidx/iidxhook-20.conf index d5445e9..d5ed89e 100755 --- a/dist/iidx/iidxhook-20.conf +++ b/dist/iidx/iidxhook-20.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-21.conf b/dist/iidx/iidxhook-21.conf index d5445e9..d5ed89e 100755 --- a/dist/iidx/iidxhook-21.conf +++ b/dist/iidx/iidxhook-21.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-22.conf b/dist/iidx/iidxhook-22.conf index d5445e9..d5ed89e 100755 --- a/dist/iidx/iidxhook-22.conf +++ b/dist/iidx/iidxhook-22.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-23.conf b/dist/iidx/iidxhook-23.conf index d5445e9..d5ed89e 100755 --- a/dist/iidx/iidxhook-23.conf +++ b/dist/iidx/iidxhook-23.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-24.conf b/dist/iidx/iidxhook-24.conf index d5445e9..d5ed89e 100755 --- a/dist/iidx/iidxhook-24.conf +++ b/dist/iidx/iidxhook-24.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-25.conf b/dist/iidx/iidxhook-25.conf index 5ba9b8a..f14335a 100644 --- a/dist/iidx/iidxhook-25.conf +++ b/dist/iidx/iidxhook-25.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/dist/iidx/iidxhook-26.conf b/dist/iidx/iidxhook-26.conf index 5ba9b8a..f14335a 100644 --- a/dist/iidx/iidxhook-26.conf +++ b/dist/iidx/iidxhook-26.conf @@ -1,6 +1,3 @@ -# Fix stretched BG videos on newer GPUs. Might appear on Red and newer -gfx.bgvideo_uv_fix=false - # Run the game in a framed window (requires windowed option) gfx.framed=false diff --git a/src/main/iidxhook-util/config-gfx.c b/src/main/iidxhook-util/config-gfx.c index 56ed3e7..e591f48 100644 --- a/src/main/iidxhook-util/config-gfx.c +++ b/src/main/iidxhook-util/config-gfx.c @@ -45,8 +45,9 @@ void iidxhook_config_gfx_init(struct cconfig *config) config, IIDXHOOK_CONFIG_GFX_BGVIDEO_UV_FIX_KEY, IIDXHOOK_CONFIG_GFX_DEFAULT_BGVIDEO_UV_FIX_VALUE, - "Fix stretched BG videos on newer GPUs. Might appear on Red and " - "newer"); + "Fix stretched BG videos on newer GPUs. Might appear on SIRIUS " + "and older. On 9th and 10th style this issue may only affect " + "older BGAs (from 1st-3rd style)"); cconfig_util_set_bool( config, diff --git a/src/main/iidxhook-util/d3d9.c b/src/main/iidxhook-util/d3d9.c index 477d753..9c87719 100644 --- a/src/main/iidxhook-util/d3d9.c +++ b/src/main/iidxhook-util/d3d9.c @@ -580,14 +580,14 @@ iidxhook_util_d3d9_iidx13_fix_song_select_bg(struct hook_d3d9_irp *irp) } static void -iidxhook_util_d3d9_iidx11_to_17_fix_uvs_bg_videos(struct hook_d3d9_irp *irp) +iidxhook_util_d3d9_iidx09_to_17_fix_uvs_bg_videos(struct hook_d3d9_irp *irp) { log_assert(irp); log_assert(irp->op == HOOK_D3D9_IRP_OP_DEV_DRAW_PRIMITIVE_UP); /* same code taken from the d3d8 module. but, this just fixes the quad seam issue as there are no reports of streched bg videos */ - if (iidxhook_util_d3d9_config.iidx11_to_17_fix_uvs_bg_videos && + if (iidxhook_util_d3d9_config.iidx09_to_17_fix_uvs_bg_videos && irp->args.dev_draw_primitive_up.primitive_type == D3DPT_TRIANGLEFAN && irp->args.dev_draw_primitive_up.primitive_count == 2 && irp->args.dev_draw_primitive_up.stride == 28) { @@ -632,52 +632,100 @@ iidxhook_util_d3d9_iidx11_to_17_fix_uvs_bg_videos(struct hook_d3d9_irp *irp) /* different versions have different themes and position the bg video on slightly different positions (good job...) */ if (/* single */ - ((vertices[0].x >= 164.0f && vertices[0].x <= 168.0f && - iidxhook_util_d3d9_float_equal(vertices[0].y, 0.0f, 0.1f)) && - (vertices[1].x >= 472.0f && vertices[1].x <= 476.0f && - iidxhook_util_d3d9_float_equal(vertices[1].y, 0.0f, 0.1f)) && - (vertices[2].x >= 472.0f && vertices[2].x <= 476.0f && + (vertices[0].x >= 164.0f && vertices[0].x <= 168.0f && + iidxhook_util_d3d9_float_equal(vertices[0].y, 0.0f, 0.1f) && + vertices[1].x >= 472.0f && vertices[1].x <= 476.1f && + iidxhook_util_d3d9_float_equal(vertices[1].y, 0.0f, 0.1f) && + vertices[2].x >= 472.0f && vertices[2].x <= 476.1f && + ((iidxhook_util_d3d9_float_equal( + vertices[2].y, 415.0f, 0.1f)) || iidxhook_util_d3d9_float_equal( vertices[2].y, 416.0f, 0.1f)) && - (vertices[3].x >= 164.0f && vertices[3].x <= 168.0f && - iidxhook_util_d3d9_float_equal( - vertices[3].y, 416.0f, 0.1f))) || + vertices[3].x >= 164.0f && vertices[3].x <= 168.0f && + ((iidxhook_util_d3d9_float_equal( + vertices[3].y, 415.0f, 0.1f)) || + (iidxhook_util_d3d9_float_equal( + vertices[3].y, 416.0f, 0.1f)))) || /* double top left */ - ((iidxhook_util_d3d9_float_equal(vertices[0].x, 6.0f, 0.1f) && - vertices[0].y >= 24.0f && vertices[0].y <= 28.0f) && - (iidxhook_util_d3d9_float_equal(vertices[1].x, 147.0f, 0.1f) && - vertices[1].y >= 24.0f && vertices[1].y <= 28.0f) && - (iidxhook_util_d3d9_float_equal(vertices[2].x, 147.0f, 0.1f) && - vertices[2].y >= 212.0f && vertices[2].y <= 216.0f) && - (iidxhook_util_d3d9_float_equal(vertices[3].x, 6.0f, 0.1f) && - vertices[3].y >= 212.0f && vertices[3].y <= 216.0f)) || + ((iidxhook_util_d3d9_float_equal(vertices[0].x, 6.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[0].x, 11.0f, 0.1f)) && + vertices[0].y >= 23.9f && vertices[0].y <= 28.0f && + (iidxhook_util_d3d9_float_equal(vertices[1].x, 137.0f, 0.1f) || + iidxhook_util_d3d9_float_equal( + vertices[1].x, 147.0f, 0.1f)) && + vertices[1].y >= 23.9f && vertices[1].y <= 28.0f && + (iidxhook_util_d3d9_float_equal(vertices[2].x, 137.0f, 0.1f) || + iidxhook_util_d3d9_float_equal( + vertices[2].x, 147.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].y, 192.0f, 0.1f) || + (vertices[2].y >= 212.0f && vertices[2].y <= 216.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].x, 6.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[3].x, 11.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].y, 192.0f, 0.1f) || + (vertices[3].y >= 212.0f && vertices[3].y <= 216.0f))) || /* double bottom left */ - ((iidxhook_util_d3d9_float_equal(vertices[0].x, 6.0f, 0.1f) && - vertices[0].y >= 216.0f && vertices[0].y <= 220.0f) && - (iidxhook_util_d3d9_float_equal(vertices[1].x, 147.0f, 0.1f) && - vertices[1].y >= 216.0f && vertices[1].y <= 220.0f) && - (iidxhook_util_d3d9_float_equal(vertices[2].x, 147.0f, 0.1) && - vertices[2].y >= 404.0f && vertices[2].y <= 408.0f) && - (iidxhook_util_d3d9_float_equal(vertices[3].x, 6.0f, 0.1f) && - vertices[3].y >= 404.0f && vertices[3].y <= 408.0f)) || + ((iidxhook_util_d3d9_float_equal(vertices[0].x, 6.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[0].x, 11.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[0].y, 200.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[0].y, 206.0f, 0.1f) || + (vertices[0].y >= 216.0f && vertices[0].y <= 220.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[1].x, 137.0f, 0.1f) || + iidxhook_util_d3d9_float_equal( + vertices[1].x, 147.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[1].y, 200.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[1].y, 206.0f, 0.1f) || + (vertices[1].y >= 216.0f && vertices[1].y <= 220.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].x, 137.0f, 0.1f) || + iidxhook_util_d3d9_float_equal( + vertices[2].x, 147.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].y, 368.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[2].y, 394.0f, 0.1f) || + (vertices[2].y >= 404.0f && vertices[2].y <= 408.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].x, 6.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[3].x, 11.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].y, 368.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[3].y, 394.0f, 0.1f) || + (vertices[3].y >= 404.0f && vertices[3].y <= 408.0f))) || /* double top right */ - ((vertices[0].x >= 493.0f && vertices[0].x <= 494.0f && - vertices[0].y >= 24.0f && vertices[0].y <= 28.0f) && - (vertices[1].x >= 634.0f && vertices[1].x <= 635.0f && - vertices[1].y >= 24.0f && vertices[1].y <= 28.0f) && - (vertices[2].x >= 634.0f && vertices[2].x <= 635.0f && - vertices[2].y >= 212.0f && vertices[2].y <= 216.0f) && - (vertices[3].x >= 493.0f && vertices[3].x <= 494.0f && - vertices[3].y >= 212.0f && vertices[3].y <= 216.0f)) || + (((vertices[0].x >= 493.0f && vertices[0].x <= 494.0f) || + iidxhook_util_d3d9_float_equal( + vertices[0].x, 500.0f, 0.1f)) && + vertices[0].y >= 23.9f && vertices[0].y <= 28.0f && + (iidxhook_util_d3d9_float_equal(vertices[1].x, 626.0f, 0.1f) || + (vertices[1].x >= 634.0f && vertices[1].x <= 635.0f)) && + vertices[1].y >= 23.9f && vertices[1].y <= 28.0f && + (iidxhook_util_d3d9_float_equal(vertices[2].x, 626.0f, 0.1f) || + (vertices[2].x >= 634.0f && vertices[2].x <= 635.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].y, 192.0f, 0.1f) || + (vertices[2].y >= 212.0f && vertices[2].y <= 216.0f)) && + ((vertices[3].x >= 493.0f && vertices[3].x <= 494.0f) || + iidxhook_util_d3d9_float_equal( + vertices[3].x, 500.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].y, 192.0f, 0.1f) || + (vertices[3].y >= 212.0f && vertices[3].y <= 216.0f))) || /* double bottom right */ - ((vertices[0].x >= 493.0f && vertices[0].x <= 494.0f && - vertices[0].y >= 216.0f && vertices[0].y <= 220.0f) && - (vertices[1].x >= 634.0f && vertices[1].x <= 635.0f && - vertices[1].y >= 216.0f && vertices[1].y <= 220.0f) && - (vertices[2].x >= 634.0f && vertices[2].x <= 635.0f && - vertices[2].y >= 404.0f && vertices[2].y <= 408.0f) && - (vertices[3].x >= 493.0f && vertices[3].x <= 494.0f && - vertices[3].y >= 404.0f && vertices[3].y <= 408.0f))) { + (((vertices[0].x >= 493.0f && vertices[0].x <= 494.0f) || + iidxhook_util_d3d9_float_equal( + vertices[0].x, 500.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[0].y, 200.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[0].y, 206.0f, 0.1f) || + (vertices[0].y >= 216.0f && vertices[0].y <= 220.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[1].x, 626.0f, 0.1f) || + (vertices[1].x >= 634.0f && vertices[1].x <= 635.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[1].y, 200.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[1].y, 206.0f, 0.1f) || + (vertices[1].y >= 216.0f && vertices[1].y <= 220.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].x, 626.0f, 0.1f) || + (vertices[2].x >= 634.0f && vertices[2].x <= 635.0f)) && + (iidxhook_util_d3d9_float_equal(vertices[2].y, 368.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[2].y, 394.0f, 0.1f) || + (vertices[2].y >= 404.0f && vertices[2].y <= 408.0f)) && + ((vertices[3].x >= 493.0f && vertices[3].x <= 494.0f) || + iidxhook_util_d3d9_float_equal( + vertices[3].x, 500.0f, 0.1f)) && + (iidxhook_util_d3d9_float_equal(vertices[3].y, 368.0f, 0.1f) || + iidxhook_util_d3d9_float_equal(vertices[3].y, 394.0f, 0.1f) || + (vertices[3].y >= 404.0f && vertices[3].y <= 408.0f)))) { /* fix UVs 1.0f / 512 fixes the diagonal seam connecting the two triangles which is visible on some GPUs (why? idk) @@ -695,7 +743,7 @@ iidxhook_util_d3d9_iidx11_to_17_fix_uvs_bg_videos(struct hook_d3d9_irp *irp) } static void -iidxhook_uti_d3d9_fix_iidx9_to_13_viewport_size(struct hook_d3d9_irp *irp) +iidxhook_uti_d3d9_fix_iidx09_to_13_viewport_size(struct hook_d3d9_irp *irp) { log_assert(irp); log_assert(irp->op == HOOK_D3D9_IRP_OP_GET_CLIENT_RECT); @@ -967,7 +1015,7 @@ iidxhook_util_d3d9_log_config(const struct iidxhook_util_d3d9_config *config) "pci_vid: %X\n" "pci_pid: %X\n" "iidx09_to_19_monitor_check_cb: %p\n" - "iidx11_to_17_fix_uvs_bg_videos: %d\n" + "iidx09_to_17_fix_uvs_bg_videos: %d\n" "iidx12_fix_song_select_bg: %d\n" "iidx13_fix_song_select_bg: %d\n" "iidx14_to_19_nvidia_fix: %d\n" @@ -985,7 +1033,7 @@ iidxhook_util_d3d9_log_config(const struct iidxhook_util_d3d9_config *config) config->pci_vid, config->pci_pid, config->iidx09_to_19_monitor_check_cb, - config->iidx11_to_17_fix_uvs_bg_videos, + config->iidx09_to_17_fix_uvs_bg_videos, config->iidx12_fix_song_select_bg, config->iidx13_fix_song_select_bg, config->iidx14_to_19_nvidia_fix, @@ -1050,7 +1098,7 @@ void iidxhook_util_d3d9_init_config(struct iidxhook_util_d3d9_config *config) config->pci_vid = 0; config->pci_pid = 0; config->iidx09_to_19_monitor_check_cb = NULL; - config->iidx11_to_17_fix_uvs_bg_videos = false; + config->iidx09_to_17_fix_uvs_bg_videos = false; config->iidx12_fix_song_select_bg = false; config->iidx13_fix_song_select_bg = false; config->iidx14_to_19_nvidia_fix = false; @@ -1109,7 +1157,7 @@ iidxhook_util_d3d9_irp_handler(struct hook_d3d9_irp *irp) hr = hook_d3d9_irp_invoke_next(irp); if (hr == S_OK) { - iidxhook_uti_d3d9_fix_iidx9_to_13_viewport_size(irp); + iidxhook_uti_d3d9_fix_iidx09_to_13_viewport_size(irp); } return hr; @@ -1161,7 +1209,7 @@ iidxhook_util_d3d9_irp_handler(struct hook_d3d9_irp *irp) return hook_d3d9_irp_invoke_next(irp); case HOOK_D3D9_IRP_OP_DEV_DRAW_PRIMITIVE_UP: - iidxhook_util_d3d9_iidx11_to_17_fix_uvs_bg_videos(irp); + iidxhook_util_d3d9_iidx09_to_17_fix_uvs_bg_videos(irp); return hook_d3d9_irp_invoke_next(irp); diff --git a/src/main/iidxhook-util/d3d9.h b/src/main/iidxhook-util/d3d9.h index c5f1eaa..901f6a0 100644 --- a/src/main/iidxhook-util/d3d9.h +++ b/src/main/iidxhook-util/d3d9.h @@ -102,7 +102,7 @@ struct iidxhook_util_d3d9_config { * the background videos or seeing a quad seam (see implementation for * further details). */ - bool iidx11_to_17_fix_uvs_bg_videos; + bool iidx09_to_17_fix_uvs_bg_videos; /** * Ported from d3d8 module to enable this when using d3d8to9. diff --git a/src/main/iidxhook1/dllmain.c b/src/main/iidxhook1/dllmain.c index 05efdf9..a3a4a35 100644 --- a/src/main/iidxhook1/dllmain.c +++ b/src/main/iidxhook1/dllmain.c @@ -87,7 +87,7 @@ static void iidxhook1_setup_d3d9_hooks( d3d9_config.framerate_limit = config_gfx->frame_rate_limit; d3d9_config.iidx12_fix_song_select_bg = config_iidxhook1->happy_sky_ms_bg_fix; - d3d9_config.iidx11_to_17_fix_uvs_bg_videos = config_gfx->bgvideo_uv_fix; + d3d9_config.iidx09_to_17_fix_uvs_bg_videos = config_gfx->bgvideo_uv_fix; d3d9_config.scale_back_buffer_width = config_gfx->scale_back_buffer_width; d3d9_config.scale_back_buffer_height = config_gfx->scale_back_buffer_height; d3d9_config.scale_back_buffer_filter = config_gfx->scale_back_buffer_filter; diff --git a/src/main/iidxhook2/dllmain.c b/src/main/iidxhook2/dllmain.c index 17afc06..25a76ed 100644 --- a/src/main/iidxhook2/dllmain.c +++ b/src/main/iidxhook2/dllmain.c @@ -84,7 +84,7 @@ static void iidxhook2_setup_d3d9_hooks( d3d9_config.framerate_limit = config_gfx->frame_rate_limit; d3d9_config.iidx13_fix_song_select_bg = config_iidxhook2->distorted_ms_bg_fix; - d3d9_config.iidx11_to_17_fix_uvs_bg_videos = config_gfx->bgvideo_uv_fix; + d3d9_config.iidx09_to_17_fix_uvs_bg_videos = config_gfx->bgvideo_uv_fix; d3d9_config.scale_back_buffer_width = config_gfx->scale_back_buffer_width; d3d9_config.scale_back_buffer_height = config_gfx->scale_back_buffer_height; d3d9_config.scale_back_buffer_filter = config_gfx->scale_back_buffer_filter; diff --git a/src/main/iidxhook3/dllmain.c b/src/main/iidxhook3/dllmain.c index 1563161..b2e0e41 100644 --- a/src/main/iidxhook3/dllmain.c +++ b/src/main/iidxhook3/dllmain.c @@ -80,7 +80,7 @@ iidxhook3_setup_d3d9_hooks(const struct iidxhook_config_gfx *config_gfx) d3d9_config.pci_pid = config_gfx->pci_id_pid; /* Required for GOLD (and newer?) to not crash with NVIDIA cards */ - d3d9_config.iidx11_to_17_fix_uvs_bg_videos = true; + d3d9_config.iidx09_to_17_fix_uvs_bg_videos = true; d3d9_config.iidx14_to_19_nvidia_fix = true; d3d9_config.scale_back_buffer_width = config_gfx->scale_back_buffer_width;