mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2024-11-27 16:00:52 +01:00
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.
This commit is contained in:
parent
d3f192976c
commit
3c185d5fde
2
dist/iidx/iidxhook-09.conf
vendored
2
dist/iidx/iidxhook-09.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-10.conf
vendored
2
dist/iidx/iidxhook-10.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-11.conf
vendored
2
dist/iidx/iidxhook-11.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-12.conf
vendored
2
dist/iidx/iidxhook-12.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-13.conf
vendored
2
dist/iidx/iidxhook-13.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-14.conf
vendored
2
dist/iidx/iidxhook-14.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-15.conf
vendored
2
dist/iidx/iidxhook-15.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-16.conf
vendored
2
dist/iidx/iidxhook-16.conf
vendored
@ -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)
|
||||
|
2
dist/iidx/iidxhook-17.conf
vendored
2
dist/iidx/iidxhook-17.conf
vendored
@ -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)
|
||||
|
3
dist/iidx/iidxhook-18-cn.conf
vendored
3
dist/iidx/iidxhook-18-cn.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-18.conf
vendored
3
dist/iidx/iidxhook-18.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-19.conf
vendored
3
dist/iidx/iidxhook-19.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-20-cn.conf
vendored
3
dist/iidx/iidxhook-20-cn.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-20.conf
vendored
3
dist/iidx/iidxhook-20.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-21.conf
vendored
3
dist/iidx/iidxhook-21.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-22.conf
vendored
3
dist/iidx/iidxhook-22.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-23.conf
vendored
3
dist/iidx/iidxhook-23.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-24.conf
vendored
3
dist/iidx/iidxhook-24.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-25.conf
vendored
3
dist/iidx/iidxhook-25.conf
vendored
@ -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
|
||||
|
||||
|
3
dist/iidx/iidxhook-26.conf
vendored
3
dist/iidx/iidxhook-26.conf
vendored
@ -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
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user