xoxor4d / iw3xo-dev

iw3xo - a call of duty 4 modification - rtx remix compatibility

Home Page:https://xoxor4d.github.io/projects/iw3xo/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iw3xo/rtx - a Call of Duty 4 modification

This client mod brings various modifications and additions to the base game
and also includes support for nvidia's RTX Remix.


GitHub release (latest by date)build-releaseGitHub commits since latest release (by date)DownloadsDiscord


[ Most noteworthy features of iw3xo ]
map exporting -- live link between the game and radiant -- sp map loading in mp --
collision visualization -- day and night cycle with custom sky shader --
custom movement options and much more



[ Remix compatibility ]
tweak sunlight, fog and skybox per map -- spawning of unique anchor meshes to attach new prims --
remix friendly culling and the ability to override culling per portal --
3D is fully rendered with fixed-function


img

> Features / Guides / In-Depth <

https://xoxor4d.github.io/projects/iw3xo/

Usage

Mandatory but might not feature the latest and greatest:

  1. Download the latest iw3xo release - the _rtx build comes with all files required for rtx remix
  • Extract the contents into your cod4 root directory.
  • Skip to Step 5 if you are not interested in nightly builds

Nightly (always up-to-date):

  1. [rtx only] Install the latest full rtx-remix release (0.4.1 at this time)
    https://github.com/NVIDIAGameWorks/rtx-remix/tags

  1. [rtx only] [optional] Install the latest github action builds of:
    remix bridge - https://github.com/NVIDIAGameWorks/bridge-remix/actions
    remix runtime - https://github.com/NVIDIAGameWorks/dxvk-remix/actions

  1. Download the latest iw3xo (develop branch) github actions build:
    Build-Release - https://github.com/xoxor4d/iw3xo-dev/actions
  • Drop iw3x.dll and the contents of the assets-remix folder [rtx only] into your cod4 root directory

  1. Run run_remix.bat to start the game with rtx-remix features enabled
    or directly run iw3xo.exe

iw3xo.exe (modified to load iw3x.dll instead of d3d9.dll)
| -> iw3x.dll is a proxy d3d9.dll


  1. Read the Dvars / Console Commands and Current issues sections


Remix section

🔷 To clarify, this client mod is only making CoD4 compatible with remix. 🔷

🔷 It does not enhance materials or meshes 🔷

My actual remix-mod with enhanced materials, meshes and lights can be found over at ModDB:
https://www.moddb.com/mods/cod4-mp-rtx-remix-iw3xo


  • Use console command /devgui to open a developer gui -> RTX tab

    I suggest binding the /devgui command to a key, eg: /bind F5 devgui

  • A. Commandline Arguments:

    • -rtx :: enable rtx modules (⚠️ required for rtx-remix)
    • -no_default_sky :: disable sky spawning (map settings)
    • -no_sun :: disable sun spawning (map settings)
    • -no_fog :: disable fog (map settings)
    • -stock_effects :: render effects using shaders
    • -old_anti_culling :: use the old anti culling system
    • -no_forced_lod :: do not set r_forceLod to high by default
    • -load_normal_spec :: enable loading of specular and normal maps (if you need to for some reason)
    • -no_playershadow :: disable player shadow casting
  • commandline example:  c:\path\iw3xo.exe -rtx -no_default_sky -stock_effects

  • B. Dvars (I recommend tweaking these via the /devgui) :

    🟩 encouraged to be tweaked
    🟦 can be useful in edge case scenarios
    🟧 shouldn't be touched

    Culling dvars:

    🟩 rtx_culling_tweak_mins :: prevents a bit of culling
    🟩 rtx_culling_tweak_maxs :: prevents a lot of culling
    🟩 rtx_culling_tweak_frustum :: disables frustum culling
    🟩 rtx_culling_tweak_smodel :: disables static model culling
    🟩 rtx_culling_plane_dist :: distance of frustum culling planes
    🟩 rtx_fx_cull_elem_draw_radius :: fx elements inside this radius around the player are not culled

    General dvars:

    🟩 r_forceLod :: force all models to a specific LOD
    🟩 r_forceLod_second_lowest :: prevent game from using the lowest LOD (sometimes used to hide the model)
    🟩 r_lodScaleRigid :: adjust static model draw distances (lower values increase draw distance)
    🟩 r_showTess :: draws material info (incl. all image names) of surfaces (geometry / models)
    🟩 r_showTessDist :: adjust draw distance of ^ info text
    🟩 r_showCellIndex :: show portal index info (useful for manual culling overrides via map settings)
    🟩 r_showModelNames :: draw names of static models around the player
    🟦 rtx_sky_hacks :: allows manually declaring textures as sky (maps w. multiple skies)
    🟦 rtx_sky_materials :: materials that iw3xo flags as 'sky' materials (logic that replaces the default sky)

    Dvars that should only be changed if you know what you are doing:

    🟧 rtx_warm_smodels :: build model vertex buffers on map load (enabled by default)
    🟧 rtx_hacks :: replace the skybox with a blue-gray texture
    🟧 rtx_extend_smodel_drawing :: disable static model draw limit (max amount of static models drawn at once)
    🟧 rtx_sky_follow_player :: sky will follow the player (helps with culling)
    🟧 rtx_fx_alpha_scalar :: global fx alpha scalar

    Culling dvars when old_anti_culling flag is set:

    🟩 rtx_disable_world_culling :: tweak overall culling
    🟩 rtx_disable_entity_culling :: tweak culling of script objects (entities)


  • C. Console Commands :
    • mapsettings_update :: reload map settings
    • mapsettings_get_defaults :: prints sun direction, color and intensity in map_settings format based on the stock map settings to the consle

map_settings.ini :: root/iw3xo/rtx

🔸 Tweak sunlight / color, skybox and fog settings
🔸 Override culling per portal / cell (to fix light or shadow culling - dvar r_showCellIndex)
🔸 Spawn unique anchor meshes that can be used to attach unique prims and lights to


⚠️ Current Issues

  • Swift changes in geometry (eg. teleporting) can crash the game.

    • Decrease geometry drawing by increasing culling or play with r_lodScaleRigid
  • Remix might try to use your onboard gpu (that is a general CoD issue), so its best to disable it in the bios or within the device manager

  • Some effects will slow down the game (really depends on the effect and the amount)


img img


Questions?



Requirements:

  1. CoD4 1.7
  2. English localization (other languages work when renamed)
  • root/localization.txt   -> change first line to "english"
  • root/main/   -> rename "localized_yourlanguage_iw**.iwd" files to "localized_english_iw**.iwd"
  • root/zone/   -> rename folder "yourlanguage" to "english"


Build / Compile

> How to build / compile the project using Visual Studio

  1. Clone the repo! (zip does not include deps!)
  2. Setup a COD4_ROOT environment variable with a path to your cod4 directory (optional)
  3. Use generate-buildfiles.bat to build project files with premake
  4. Open (build/iw3xo-dev.sln) and setup paths for the iw3x project (not needed if Step #2)
  • General       output directory path -> path-to-cod4-root\
  • Debugging   command -> path-to-cod4-root\iw3xo.exe
  • Debugging   working directory -> path-to-cod4-root
  1. Build -> Build Solution or run with debugger

Optional (Fastfile sources)

  1. https://github.com/xoxor4d/xcommon_iw3xo (compiled, placed into root/zone/english/)
  2. https://github.com/xoxor4d/xcommon_iw3xo_menu (compiled, placed into root/zone/english/)



Optional:
https://github.com/xoxor4d/iw3xo-radiant

Project Page:
https://xoxor4d.github.io/projects/iw3xo/

Discord:
https://discord.gg/t5jRGbj


Credits



Disclaimer

This software has been created purely for the purposes of academic research. Project maintainers are not responsible or liable for misuse of the software. Use responsibly.

About

iw3xo - a call of duty 4 modification - rtx remix compatibility

https://xoxor4d.github.io/projects/iw3xo/


Languages

Language:C++ 67.4%Language:GSC 32.2%Language:Lua 0.4%Language:Batchfile 0.0%