RenoDX is an engine for modifying DirectX games. Recommended configuration:
- VSCode - Recommended IDE
- vs_buildTools.exe - MSVC 2022 Build Tools
- cmake - Build System
- llvm - Used for compiling, linting and formatting
- ninja - For faster building
- Windows SDK - Used to build addons and compile HLSL. Minimum supported version:
10.0.26100.0 - DirectXShaderCompiler - Provides
dxc.exeanddxcompiler.dllfor Shader Model 6.x compilation and devkit tooling. DXC-based decompilation is also used by devkit where supported. Some releases also includedxil.dll, but it is not required for the RenoDX MCP workflow. - cmd_decompiler.exe - Decompiles upto Shader Model 5.0 to HLSL
- slangc.exe - Compiles .slang files for DXBC, DXIL, and SPIR-V
RenoDX uses the Reshade Addon API meaning Reshade is a core requirement for RenoDX.
git clone https://github.com/clshortfuse/renodx.git
Bootstrap helper binaries from the repo root. The recommended path is the setup script:
powershell -ExecutionPolicy Bypass -File .\scripts\setup-dev-env.ps1
powershell -ExecutionPolicy Bypass -File .\scripts\setup-dev-env.ps1 -Update
powershell -ExecutionPolicy Bypass -File .\scripts\setup-dev-env.ps1 -Install
powershell -ExecutionPolicy Bypass -File .\scripts\setup-dev-env.ps1 -Bin .\bin -Install- The default invocation is a preview. It does not change files. Instead it reports the Windows SDK version it found and the current versus configured versions for the managed toolchain components.
-Installcreates.\binwhen needed, applies managed tool installs or updates, attempts Windows SDK installation when the SDK is missing, and copiesfxc.exeinto.\binwhen the SDK is already installed.- Use
-Binwhen running the script outside the repo root. The defaultbinpath is relative to the current working directory, not the script directory. -Updatere-runs the same version-aware checks and applies managed tool installs or updates without attempting Windows SDK installation. If the SDK is already installed, it can still copyfxc.exeinto.\bin.- The script will not downgrade a newer local managed tool install. It updates only when the configured package is newer than the installed one. It does not currently force-refresh same-version cached tool archives.
- When you use the in-game devkit overlay or MCP workflow, point
devkit_set_tools_pathat this same.\bindirectory if the game ships a conflictingdxcompiler.dllor other toolchain helpers.
Manual tool setup is still supported if you prefer to manage .\bin yourself.
mkdir bincurl -L -o dxc.zip https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.9.2602/dxc_2026_02_20.zipcurl -L -o slang.zip https://github.com/shader-slang/slang/releases/download/v2025.16.1/slang-2025.16.1-windows-x86_64.zipcurl -L -o cmd_Decompiler-1.3.16.zip https://github.com/bo3b/3Dmigoto/releases/download/1.3.16/cmd_Decompiler-1.3.16.zippowershell -Command "Expand-Archive -Path dxc.zip -DestinationPath dxc_temp -Force; Copy-Item dxc_temp\bin\x64\* .\bin -Force; Remove-Item dxc_temp -Recurse -Force"powershell -Command "Expand-Archive -Path slang.zip -DestinationPath slang_temp -Force; Copy-Item slang_temp\bin\* .\bin -Force; Remove-Item slang_temp -Recurse -Force"powershell -Command "Expand-Archive -Path cmd_Decompiler-1.3.16.zip -DestinationPath 3dmigoto_temp -Force; Copy-Item (Get-ChildItem 3dmigoto_temp -Recurse -Filter cmd_Decompiler.exe | Select-Object -First 1).FullName .\bin\cmd_Decompiler.exe -Force; Remove-Item 3dmigoto_temp -Recurse -Force"del dxc.zipdel slang.zipdel cmd_Decompiler-1.3.16.zip
Install the Windows SDK if it is not already present. The setup script will attempt this automatically when run with -Install, or you can do it manually:
winget install --id Microsoft.WindowsSDK -e --silent
Use Windows SDK 10.0.26100.0 or newer. fxc.exe comes from the Windows SDK. CMake can find it in the SDK install path, and the setup script will also copy it into .\bin when it can. The DXC package should provide dxc.exe together with dxcompiler.dll; some DXC releases also ship dxil.dll, which is fine to keep alongside them in .\bin but is not required by the current devkit MCP path. slangc.exe and cmd_Decompiler.exe are also expected there unless you have an equivalent toolchain arrangement of your own.
Update the submodules
git submodule update --init --recursive
Configure the project
cmake --preset clang-x64
Build the project
cmake --build --preset clang-x64-release
Build the live inspection tooling
cmake --build --preset clang-x64-debug --target devkit mcp_bridge
Note: for 32bit binaries use:
cmake --preset clang-x86cmake --build --preset clang-x86-release --target generic
Note: for MSVC use:
cmake --preset ninja-x64cmake --build --preset ninja-x64-release --target generic
Note: for Visual Studio use:
cmake --preset vs-x64cmake --build --preset vs-x64-release --target generic
Every folder inside src/games/ is considered a game mod. The CMakeList.txt file will perform the following steps:
- Search for
C:/Program Files (x86)/Windows Kits/10for locations offxc.exeanddxc.exe - Search
src/games/**/*.hlslfor shader HLSL files that have following format{CRC32}.{TARGET}.hlsl(.):- shader CRC32 in hex formatted as
0xC0DEC0DE - shader target including
{TYPE}_{MAJOR}_{MINOR}(eg:ps_6_6) - the
hlslextension
- shader CRC32 in hex formatted as
- Associate each shader file with an output
embed/{CRC32}.h - Search for
src/games/**/addon.cppand associate a target based on the folder name with the output beingrenodx-{target}.addon64(or.addon32if targetted Win32) - Add
src/devkit/addon.cppas a target.
To simplify creating a new mod, the src/games/generic exists to be copied to start work on a new mod.
For live inspection, RenoDX also ships:
devkitthe game-side inspection addonmcp_bridgethe MCP bridge process that exposes devkit to MCP clients
Common debug build command:
cmake --build --preset clang-x64-debug --target devkit mcp_bridgeThe bridge binary is written to:
build/Debug/renodx-mcp-bridge.exe
For the practical inspection workflow and live shader iteration rules, see:
docs/DEVKIT_MCP.md