diff --git a/src/main/iidxhook6/Module.mk b/src/main/iidxhook6/Module.mk index 8ef02e7..7fda87b 100644 --- a/src/main/iidxhook6/Module.mk +++ b/src/main/iidxhook6/Module.mk @@ -7,6 +7,7 @@ deplibs_iidxhook6 := \ avs \ libs_iidxhook6 := \ + iidxhook-d3d9 \ iidxhook-util \ ezusb-emu \ ezusb-iidx-16seg-emu \ diff --git a/src/main/iidxhook6/dllmain.c b/src/main/iidxhook6/dllmain.c index 4b689ae..b4ca65a 100644 --- a/src/main/iidxhook6/dllmain.c +++ b/src/main/iidxhook6/dllmain.c @@ -25,6 +25,8 @@ #include "hooklib/rs232.h" #include "hooklib/setupapi.h" +#include "iidxhook-d3d9/bb-scale-hd.h" + #include "iidxhook-util/acio.h" #include "iidxhook-util/config-gfx.h" #include "iidxhook-util/config-io.h" @@ -44,6 +46,7 @@ "Usage: launcher.exe -K iidxhook6.dll [options...]" static const hook_d3d9_irp_handler_t iidxhook_d3d9_handlers[] = { + iidxhook_d3d9_bb_scale_hd_d3d9_irp_handler, iidxhook_util_d3d9_irp_handler, }; @@ -63,14 +66,20 @@ iidxhook6_setup_d3d9_hooks(const struct iidxhook_config_gfx *config_gfx) d3d9_config.framerate_limit = config_gfx->frame_rate_limit; d3d9_config.pci_vid = config_gfx->pci_id_vid; d3d9_config.pci_pid = config_gfx->pci_id_pid; - 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; d3d9_config.forced_refresh_rate = config_gfx->forced_refresh_rate; d3d9_config.device_adapter = config_gfx->device_adapter; iidxhook_util_d3d9_configure(&d3d9_config); + // The "old"/current scaling feature does not work with 20-26 because + // the render engine changed and provides its own built-in scaling feature + if (config_gfx->scale_back_buffer_width > 0 && + config_gfx->scale_back_buffer_height > 0) { + iidxhook_d3d9_bb_scale_hd_init( + config_gfx->scale_back_buffer_width, + config_gfx->scale_back_buffer_height); + } + hook_d3d9_init(iidxhook_d3d9_handlers, lengthof(iidxhook_d3d9_handlers)); } diff --git a/src/main/iidxhook7/Module.mk b/src/main/iidxhook7/Module.mk index db61d88..a40366a 100644 --- a/src/main/iidxhook7/Module.mk +++ b/src/main/iidxhook7/Module.mk @@ -2,11 +2,13 @@ avsdlls += iidxhook7 ldflags_iidxhook7 := \ -liphlpapi \ + -ld3d9 \ deplibs_iidxhook7 := \ avs \ libs_iidxhook7 := \ + iidxhook-d3d9 \ iidxhook-util \ cconfig \ ezusb-emu \ diff --git a/src/main/iidxhook7/dllmain.c b/src/main/iidxhook7/dllmain.c index 5faf1b2..af948f6 100644 --- a/src/main/iidxhook7/dllmain.c +++ b/src/main/iidxhook7/dllmain.c @@ -25,6 +25,8 @@ #include "hooklib/rs232.h" #include "hooklib/setupapi.h" +#include "iidxhook-d3d9/bb-scale-hd.h" + #include "iidxhook-util/acio.h" #include "iidxhook-util/config-gfx.h" #include "iidxhook-util/config-io.h" @@ -44,6 +46,7 @@ "Usage: launcher.exe -K iidxhook7.dll [options...]" static const hook_d3d9_irp_handler_t iidxhook_d3d9_handlers[] = { + iidxhook_d3d9_bb_scale_hd_d3d9_irp_handler, iidxhook_util_d3d9_irp_handler, }; @@ -63,14 +66,20 @@ iidxhook7_setup_d3d9_hooks(const struct iidxhook_config_gfx *config_gfx) d3d9_config.framerate_limit = config_gfx->frame_rate_limit; d3d9_config.pci_vid = config_gfx->pci_id_vid; d3d9_config.pci_pid = config_gfx->pci_id_pid; - 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; d3d9_config.forced_refresh_rate = config_gfx->forced_refresh_rate; d3d9_config.device_adapter = config_gfx->device_adapter; iidxhook_util_d3d9_configure(&d3d9_config); + // The "old"/current scaling feature does not work with 20-26 because + // the render engine changed and provides its own built-in scaling feature + if (config_gfx->scale_back_buffer_width > 0 && + config_gfx->scale_back_buffer_height > 0) { + iidxhook_d3d9_bb_scale_hd_init( + config_gfx->scale_back_buffer_width, + config_gfx->scale_back_buffer_height); + } + hook_d3d9_init(iidxhook_d3d9_handlers, lengthof(iidxhook_d3d9_handlers)); } diff --git a/src/main/iidxhook8/Module.mk b/src/main/iidxhook8/Module.mk index f51688c..e71c8c2 100644 --- a/src/main/iidxhook8/Module.mk +++ b/src/main/iidxhook8/Module.mk @@ -12,6 +12,7 @@ deplibs_iidxhook8 := \ avs \ libs_iidxhook8 := \ + iidxhook-d3d9 \ iidxhook-util \ acioemu \ bio2emu \ diff --git a/src/main/iidxhook8/dllmain.c b/src/main/iidxhook8/dllmain.c index 95e968b..13509be 100644 --- a/src/main/iidxhook8/dllmain.c +++ b/src/main/iidxhook8/dllmain.c @@ -18,6 +18,8 @@ #include "hooklib/rs232.h" #include "hooklib/setupapi.h" +#include "iidxhook-d3d9/bb-scale-hd.h" + #include "iidxhook-util/acio.h" #include "iidxhook-util/config-gfx.h" #include "iidxhook-util/d3d9.h" @@ -43,6 +45,7 @@ "Usage: launcher.exe -K iidxhook8.dll [options...]" static const hook_d3d9_irp_handler_t iidxhook_d3d9_handlers[] = { + iidxhook_d3d9_bb_scale_hd_d3d9_irp_handler, iidxhook_util_d3d9_irp_handler, }; @@ -60,14 +63,20 @@ iidxhook8_setup_d3d9_hooks(const struct iidxhook_config_gfx *config_gfx) d3d9_config.framerate_limit = config_gfx->frame_rate_limit; d3d9_config.pci_vid = config_gfx->pci_id_vid; d3d9_config.pci_pid = config_gfx->pci_id_pid; - 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; d3d9_config.forced_refresh_rate = config_gfx->forced_refresh_rate; d3d9_config.device_adapter = config_gfx->device_adapter; iidxhook_util_d3d9_configure(&d3d9_config); + // The "old"/current scaling feature does not work with 20-26 because + // the render engine changed and provides its own built-in scaling feature + if (config_gfx->scale_back_buffer_width > 0 && + config_gfx->scale_back_buffer_height > 0) { + iidxhook_d3d9_bb_scale_hd_init( + config_gfx->scale_back_buffer_width, + config_gfx->scale_back_buffer_height); + } + hook_d3d9_init(iidxhook_d3d9_handlers, lengthof(iidxhook_d3d9_handlers)); }