Features:
(For use with Zero Collection, remove all D3d10 files in src folder, there only for reference to the original device)
- Let you use slang-shaders with Capcom's Mega Man X Legacy Collection.
- Fixes scaling artifact due to nearest-neighbour upscaling.
Download from here.
Using i686-w64-mingw32-gcc (cross compiling should work too):
# Download source
git clone https://github.com/isja13/d3d9-mmz-zxlc.git
cd d3d9-mmz-zxlc
git submodule update --init --recursive
# Create symlinks and patch files
make prep
# Build the dll
make -j$(nproc) dll
Some options to pass to make
# disable optimizations and prevents stripping
make o3=0 dll
# disable lto (keep -O3)
make lto=0 dll
Copy dinput8.dll
, interp-mod.ini
, and the slang-shaders\
directory to your game folders, e.g.:
SteamLibrary\steamapps\common\Mega Man X Legacy Collection
SteamLibrary\steamapps\common\Mega Man X Legacy Collection 2
interp-mod.ini
contains options to configure the mod.
; Log API calls to interp-mod.log,
; [logging]
; enabled=true
; hotkey_toggle=VK_CONTROL+O
; hotkey_frame=VK_CONTROL+P
; Change interpolation mode and set up custom slang shaders.
[graphics]
; Use linear instead of point upscaling for the 2D games.
interp=true
; (WIP) Use linear scaling when possible for the 3D games.
; linear=true
; When using Type 1 filter, interp=true, and slang_shader* is not set,
; apply Type 1 filter over and over until it reaches screen size.
; enhanced=true
; Custom shader for X1~X6, needs Type 1 filter set in-game.
; slang_shader=slang-shaders/xbrz/xbr-lv2.slangp
slang_shader_snes=slang-shaders/crt/crt-lottes-fast.slangp
slang_shader_psone=slang-shaders/xbrz/xbrz-freescale-multipass.slangp
; Custom shader for X7~X8.
slang_shader_3d=slang-shaders/anti-aliasing/smaa.slangp
; (TODO) Custom render resolution for X7~X8
; render_3d_width=
; render_3d_height=
; Custom display resolution, e.g. 4K and so-on,
; Should be 16:9 as the mod currently does not correct for aspect ratio.
display_width=
display_height=
If all goes well you should now be able to start the game and see the overlay on top-left of the screen showing the status of the mod.
interp-mod.ini
can be edited and have its options applied while the game is running.
Source code for this mod, without its dependencies, is available under MIT. Dependencies such as RetroArch
are released under GPL.
RetroArch
is needed only forslang_shader
support.SPIRV-Cross
andglslang
are used forslang_shader
support.HLSLcc
is used for debugging.
Other dependencies are more or less required:
minhook
is used for intercepting calls tod3d10.dll
.imgui
is used for overlay display.smhasher
is technically optional. Currently used for identifying the built-in Type 1 filter shader.