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.
The paths changed for 18 and again for 19. Refactor and improve
the detection logic to consider this. This also should make
the code more maintainable.
The synchronization block was too coarse and kept the lock
acquired even when the hooked call continued traversing because
it skipped the chart patch trap code. This was apparently fine
on several games but caused very flaky deadlocking on iidx18
during the boot screens and even crashed iidx19 consistently
before showing the boot screen.
Applies to iidx18 and iidx19 when using the recently extended
redirect feature for settings paths, mixing / and \ crashes the
game in some operator sub-menus when trying to save settings.
Provide an option for non final lincle revisions and
if the "modern" monitor check is not delivering stable
results on the final lincle revision, e.g. using the
original "pendual lcd" monitor.
Affects all games based on version 18 and 19 which includes
the chinese versions
This code is based on the toastertools implementation.
Credits to the original authors.
Remove this module because it doesn't really provide any value
anymore. Using the d3d8to9 wrapper lib does not only fix some
odd d3d8 issues but also allows us to run all (IIDX) games over
d3d9. Thus and in order to reduce quite a lot of maintanance effort,
we remove this module.
Please use the d3d8to9 wrapper lib from now on in combination with
any d3d8 games and in order to use bemanitools gfx hook features.
Uses the hook/d3d9 module with IRP handlers now. All previously
available features are implemented.
Furthermore, a new overhauled up-/downscaling method is implemented
which supports all IIDX versions now.
Only enabled / tested on IIDX CB and SDVX5
The point of this, is to allow rs232 hooks for only the descriptors that we hook.
This is because the emulation here is incomplete.
Although the IOCTL's do end up being passed to the real hardware, the game rejects some of the responses and hangs.
By short circuiting out, and calling the real Comm functions instead, it works.
And hence, card-reader passthrough works on IIDX25+/SDVX5+ finally without eamio-real