• Hey, guest user. Hope you're enjoying GameParadise! Have you considered registering for an account? Come join us and add your take to the daily discourse.

[Archived] Xenoblade Chronicles 3 Graphics Settings

admin

Chad
Staff member
85%
Sorry for posting previously thread with wrong informations. Now everything seems to be working.

There are two methods to apply mod:
- for people with DLC installed
- for people without DLC installed

People without DLC must install additionally exefs patch, so with each new game update they must also update exefs patch to get config working.

Graphics settings are stored in binary file, so script is necessary to convert it up back to bin file.

Structure
Header:

Python:
MAGIC "INIB"
int32 10000 #unknown purpose
uint32 0x10 #offset of entry table
uint32 0x175 #entry count

So new config file has 373 entries in comparison to 224 entries in XCDE. Quite a buff.

But issue is that we don't have names of those settings.
Entry table:

Python:
int32 hash #murmur3 hash of config name
int32 type #0 - bool, 1 - float, 2 - (float, float, float), 3 - (float, float, float, float)
uint32 offset #direct offset of value

and at the end values.
main doesn't calculate those name hashes in runtime, it has hashes stored already in main, so we don't have access to original names of configs. So 148 entries are unknown (found by brute force only one new name - "ifmg")

Took config names from XCDE config file to fill names for what we can, for unknown names I am using hash as name (starting with 0x)

ao_av_Shwstr for whatever reason is repeated. Since JSON doesn't accept repeated keys and I wanted this to output the same file as original, I have decided to store one name as string, second as hash 0xDD677246.

If someone can write some sophisticated dictionary brute force attack on hashes and run it to fill out names, it would be appreciated.
C++:
{
    "tonemap": true,
    "ssao": false,
    "bloom": false,
    "godray": true,
    "AntiAliasing": true,
    "ColReduction": true,
    "dof": false,
    "lensFlare": false,
    "aoskip": false,
    "lut": true,
    "toneHistogramLow": 0.8,
    "toneHistogramHigh": 0.9,
    "tonemax": 1.0,
    "tonemin": 0.15,
    "tonescale": 7.0,
    "toneUpSpeed": 0.1,
    "toneDownSpeed": 0.5,
    "toneBlmmax": 1000.0,
    "toneBlmmin": 0.001,
    "toneBlmmul": 100.0,
    "godray_inival": 0.95,
    "godray_decay": 0.99,
    "godray_scale": 1.235,
    "blm_border_sub": 1.0,
    "blm_border_mul": 0.105,
    "blm_border_sub2": 0.0,
    "blm_border_mul2": 0.0,
    "blm_border_max": 3.5,
    "blm_str1": 1.0,
    "blm_str2": 1.0,
    "blm_str3": 1.0,
    "blm_gauss1": 0.9,
    "blm_gauss2": 0.8,
    "blm_gauss3": 0.8,
    "blm_weight1": 0.63,
    "blm_weight2": 0.1,
    "blm_weight3": 0.14,
    "blm_weight4": 0.53,
    "blm_weight5": 0.58,
    "blm_deviation1": 0.2,
    "blm_deviation2": 0.5,
    "blm_deviation3": 1.0,
    "blm_deviation4": 1.0,
    "blm_deviation5": 1.0,
    "blm_saturation1": 0.0,
    "blm_saturation2": 0.0,
    "blm_saturation3": 0.0,
    "blm_saturation4": 0.0,
    "blm_saturation5": 0.35,
    "blm_emissive_str": 9.0,
    "blm_tone_scale": 0.05,
    "blm_emissive_max": 20.0,
    "blm_emissive_min": 0.0,
    "bloom2": true,
    "0x5D63DA76": 1.0,
    "0xFC6A6BB8": 1.1,
    "0x3857A64C": 0.7,
    "0x2B755BF": 0.1, // related settings starts here
    "0x35CD4D20": 0.11,
    "0x506684C7": 0.25,
    "0xD357E3AE": 0.36, // related settings ends here
    "lens_max": 1.0,
    "lens_rot": 0.0,
    "lens_sub": 1.5,
    "lens_mul": 3.5,
    "lens_weight": 0.1,
    "lens_decay": 1.0,
    "lens_str": 1.5,
    "lens_paMax": 4.0,
    "lens_UVDecay": 0.29,
    "AA_Sharpness": 8.0,
    "AA_Range": 0.5,
    "AA_Threshold": 0.17,
    "AA_ThresholdMin": 0.05,
    "red_sclX": 1.0,
    "red_sclY": 1.0,
    "red_hdsclX": 0.75,
    "red_hdsclY": 0.75,
    "red_Auto": true,
    "red_AtMaxX": 1.0,
    "red_AtMaxY": 1.0,
    "red_AtMinX": 0.7,
    "red_AtMinY": 0.7,
    "red_AtRate": 99.0,
    "ao_Lengs": 0.1, //Ignored (not read at all)
    "ao_LengsRatio": 1.98, //Ignored (not read at all)
    "ao_range": 5.7, //Ignored (not read at all)
    "ao_rangeRatio": 1.0, //Ignored (not read at all)
    "ao_sub": 0.02, //Ignored (not read at all)
    "ao_subRatio": 0.15, //Ignored (not read at all)
    "ao_Mul": 2.0, //Ignored (not read at all)
    "ao_blurRange": 0.72, //Ignored (not read at all)
    "ao_blurScale": 0.75, //Ignored (not read at all)
    "ao_av_Shwstr": 0.5,
    "blur": false,
    "blurStr": 0.2,
    "blurAlpha": 40.0,
    "blurSub": 0.025,
    "blurBlurRange": 0.32,
    "shadowStr": 1.0,
    "shadowHalf": true,
    "shadowColor": [
        1.0,
        1.0,
        1.0
    ],
    "simShwStr": 1.6,
    "simShwIn": 0.7,
    "simShwMin": 0.15,
    "sRGBMode": true,
    "gamma": 6.0,
    "ao_av_CenterWeight": 1.09,
    "ao_av_MaxDistance": 0.15,
    "ao_av_MaxRadius": 0.2,
    "ao_av_FadeOutStart": 70000.0,
    "ao_av_FadeOutDistance": 10000.0,
    "ao_av_BlurFallOff": 0.05,
    "ao_av_BlurScale": 1.6,
    "0xDD677246": 0.5, //ao_av_Shwstr
    "cam_near": 0.1,
    "cam_far": 80000.0,
    "avmp01": [
        0.5,
        0.5,
        0.5
    ],
    "avmp02": [
        0.5,
        0.5,
        0.5
    ],
    "avmp03": [
        0.5,
        0.5,
        0.5
    ],
    "avmp04": [
        0.5,
        0.5,
        0.5
    ],
    "avmp05": [
        0.5,
        0.5,
        0.5
    ],
    "avmp06": [
        0.5,
        0.5,
        0.5
    ],
    "avmp07": [
        0.5,
        0.5,
        0.5
    ],
    "avmp08": [
        0.5,
        0.5,
        0.5
    ],
    "avmp09": [
        0.5,
        0.5,
        0.5
    ],
    "avmp10": [
        0.5,
        0.5,
        0.5
    ],
    "avmp11": [
        0.5,
        0.5,
        0.5
    ],
    "avmp12": [
        0.5,
        0.5,
        0.5
    ],
    "avmp13": [
        0.5,
        0.5,
        0.5
    ],
    "avmp14": [
        0.5,
        0.5,
        0.5
    ],
    "avmp15": [
        0.5,
        0.5,
        0.5
    ],
    "avmp16": [
        0.5,
        0.5,
        0.5
    ],
    "cloud_h_min": 1000.0,
    "cloud_h_max": 1100.0,
    "cloud_color": [
        1.0,
        1.0,
        1.0
    ],
    "toonDirType": 0.0,
    "toonDirBackBright": 1.0,
    "toonDirElevation": 0.1,
    "toonDirPntSptRatio": 0.5,
    "toonDirLightScaleVal": 0.75,
    "toonDirInOutMin": 0.6,
    "toonIBLScaleVal": 0.28,
    "toonShadowAlpha": 0.15,
    "toonCharShadowAlpha": 0.02,
    "toonCharShadowMin": 0.46,
    "0xF333710C": 8.0,
    "0xFFD3EE80": 15.0,
    "0x8D2766E2": 30.0,
    "0xF6FF1D20": 0.5, // related settings start here
    "0x1A1693FE": 6.0,
    "0x189ADEE9": 9.5, //related settings end
    "0x301232E3": 0.1,
    "0xA7951F52": true, //Ignored (not read at all)
    "0x6099124E": 0.0, //Ignored (not read at all)
    "0xC94C3D6C": 0.0,
    "0x9B196145": 2.3,
    "0x5789A4A": true,
    "0xB12E641E": 40.0,
    "0xC4662501": 0.0,
    "0x5F104B4": 0.4,
    "0x336AFD5E": 1.5,
    "0xD6CEDAEF": [
        0.0,
        0.0,
        0.0
    ],
    "0x712CE7F5": 8.0, //related settings start here
    "0x72A9D801": 15.0,
    "0x9144CB69": 30.0, //related settings end here
    "0x7DECFD2B": 0.5, //related settings start here
    "0x35BB3EB": 6.0,
    "0xF7FE9B66": 9.5, //related settings end here
    "0x427B5122": 0.1,
    "rim_color": [ //Ignored (not read at all)
        1.0,
        1.0,
        1.0
    ],
    "rim_intensity": 3.0, //Ignored (not read at all)
    "iblDirectLightIntensity": 1.0,
    "iblSkyIntensity": 1.5,
    "iblBlendBetweenFrame": 30.0,
    "0xCC9776A3": 2.2,
    "skyToneDirLightIntensity": 0.2,
    "skyToneAmbientIntensity": 0.32,
    "tssao": true,
    "tssaoRadius": 1.0,
    "tssaoIntensityMul": 1.0,
    "tssaoIntensityPow": 0.16,
    "tssaoOutputAO": 0.35,
    "tssaoPostBlurSharpness": 0.55,
    "tssaoLuminanceCorrection": 0.3,
    "tssaoSelectiveFiltering": true, //Ignored (not read at all)
    "tssaoWeakenRatio": 0.8,
    "ssr": true,
    "ssrIntensity": 1.0,
    "ssrShinessFade": 0.8, //Ignored (not read at all)
    "ssrGroundness": 0.73,
    "ssrFadeSec": 5.0,
    "shadowCloud": true,
    "shadowCloudStr": 0.8,
    "shadowCloudSize": 300.0,
    "shadowCloudScrollDir": 150.0,
    "shadowCloudScrollSpeed": 6.0,
    "shadowRaytraceDistance": 0.15,
    "shadowRaytracePitch": 0.0,
    "tmaa": true,
    "tmaaSharpness_0": 0.4,
    "tmaaSharpness_1": 0.6,
    "tmaaSharpness_2": 0.6,
    "tmaaSharpness_3": 0.72,
    "tmaaSharpness_4": 0.8,
    "tmaaSharpness_5": 0.9,
    "tmaaSharpness_Hnd_0": 1.2,
    "tmaaSharpness_Hnd_1": 1.1,
    "tmaaSharpness_Hnd_2": 1.1,
    "tmaaSharpness_Hnd_3": 1.12,
    "tmaaSharpness_Hnd_4": 1.2,
    "tmaaSharpness_Hnd_5": 1.3,
    "tmaaBlendDefault": 0.05,
    "tmaaBlendPBR": 0.0,
    "tmaaBlendMPF": 0.3,
    "tmaaBlendToon": 0.05,
    "tmaaNewUpScale": true,
    "tmaaSharpnessType": 2.0,
    "tmaaSharpnessAwareIntensity": 0.2,
    "shwCharParm": 17.92,
    "shwHalfLamParm": 1.0,
    "wetMaxShiness": 0.5,
    "wetDarkness": 0.48,
    "wetShinessScale": 0.6,
    "wetToInsideFrame": 10.0,
    "wetToOutsideFrame": 20.0,
    "TransReduction": true,
    "trans_red_sclX": 0.5,
    "trans_red_sclY": 0.5,
    "blur2": true,
    "blur2Str": 10.0,
    "blur2Sub": 0.25,
    "blur2ObjScale": 0.65,
    "blur2CameraScale": 0.8,
    "blur2BlurRange": 0.7,
    "blur2PixelRange": 20.0,
    "blur2HLV": true,
    "gpucount": 64.0,
    "leafSpecColMinShiness": 0.1,
    "leafSpecColMaxShiness": 0.4,
    "leafSpecColRatio": 0.85,
    "furBlur": true,
    "furBlurStr": 0.3,
    "furBlurPixelRange": 20.0,
    "0x9e2bdf35": true, //AliasingAttoonDefault(?)
    "0xCBF60DCC": 0.45,
    "0xE7B8E359": 20.0,
    "0x3E8B2DFF": 0.172,
    "0xFAB5D0F": 0.396,
    "0x15D13C05": 0.403,
    "0x1F3EB72A": 0.3,
    "0xFE2A5D4C": 0.545,
    "0xEEF1A09B": 0.291,
    "0xCB34ED6F": 0.478,
    "0xE3A59F1C": 0.701,
    "0x94F0215F": 0.612,
    "lightShaft": true,
    "lightShaftTonemapScale": 1.0,
    "lightShaftTonemapLuminance": 6.5,
    "reduceDirLightRim": 3.0,
    "monochromeToonId": 128.0,
    "monochromeFogScale": 0.5,
    "0x6EF1CDA4": true,
    "0xBDDCEAFD": 2.0,
    "0x11FECE04": true,
    "0xB1F493C2": 0.5,
    "0xF5EB7B25": 3.0,
    "0x44D18825": 0.0,
    "0x2FCECF30": 0.4,
    "lightRimColor": [
        0.88,
        0.91,
        1.0,
        0.0
    ],
    "0xFB0982CB": 0.4,
    "0x2496CDB5": 0.8,
    "0x829607F": 0.3,
    "0xFCA5701C": 0.6,
    "0x9DB8A56E": [
        0.81,
        0.86,
        1.0,
        0.0
    ],
    "0x55FB8D0A": 0.4,
    "0xC7CE9119": 0.8,
    "0xA72DEF7C": 0.3,
    "0xC7A407A3": 0.6,
    "0xBA390E46": false,
    "0x5F14B998": 0.0,
    "0x57CEA10C": 0.0,
    "0x649AAB9D": true,
    "0xDBBE01E6": false,
    "0xD770A81C": 1.0,
    "0xD63B15D7": 1.0,
    "0x8644220F": 0.0,
    "0xB0D850D5": 0.0,
    "0x6B9AE74E": 2.0,
    "0x4E9A09B4": 1.0,
    "0xF4096DDB": [
        0.0,
        0.0,
        0.0,
        1.0
    ],
    "0xA19E7F6A": 0.0,
    "0xC4B90990": 0.0,
    "0xB8F7EDAE": false,
    "0x784D9270": [
        0.5,
        0.5,
        1.0
    ],
    "0xDF6D3430": 10.0,
    "0xB3EB5046": 0.3,
    "0x6FA1D395": 5.0,
    "0xFD3F07AF": 0.2,
    "0x6272E208": 0.5,
    "0x29B2FD3A": 1.0,
    "0x22858515": 1.0,
    "0xF4524CBA": true,
    "0x61D26460": 9.0,
    "0x4236F1E7": 10.0,
    "0xC191A703": 0.1,
    "0x83BC7501": 0.8,
    "0x26C9A218": true,
    "0x6533AC49": 0.5,
    "0x8946B815": 0.3,
    "0x76E6D31": 1.0,
    "0x5AFB4305": [
        1.0,
        0.3,
        0.0
    ],
    "0x396603C6": 2.0,
    "0xC6AEF946": 1.5,
    "0xF873E01": 0.7,
    "0xCEE2545E": 400.0,
    "0x122F2051": 200.0,
    "0x32DA3BA1": 0.5,
    "0xE35FE997": 1.0,
    "0xF2509119": 0.8,
    "0xB6C16A92": 0.2,
    "0x7AC5C042": [
        0.06,
        0.0,
        0.15
    ],
    "0xDB44E95F": 1.0,
    "0x394D8ADD": 1.0,
    "0xCC286031": 0.0,
    "0xD0044ECA": 0.0,
    "0x46FDEFE": 400.0,
    "0xF2F951A0": 400.0,
    "0xAE7AAA37": [
        1.0,
        0.24,
        0.0
    ],
    "0x90795FB8": 0.5,
    "0xE95E879C": 0.0, //"frAWE"(?)
    "0xA671F91F": 25.0,
    "ifmg": 75.0,
    "0x3C5AB47C": 75.0,
    "0x1C71EDDC": 0.0,
    "0x9A1225D0": 0.0,
    "0x60392758": 75.0,
    "0xCF37604F": 75.0,
    "0x95236DF0": 0.0,
    "0x692E4637": 1.0,
    "0x7B297FB2": [
        1.0,
        0.52,
        0.08
    ],
    "0x27733291": 1.2,
    "0xDDFD9943": 0.0,
    "0x3DB94B93": 0.0,
    "0x8AB3E426": 80.0,
    "0x1811244E": 80.0,
    "0x2871F67": 300.0,
    "0x1EAA9061": 400.0,
    "0x8A1103DB": 1.0,
    "0x7BF25AFD": 3.5,
    "0xFBD4A02": 0.3, //Ignored (not read at all)
    "0xEBCB4443": 300.0, //Ignored (not read at all)
    "0x30EC7F91": 1.0,
    "0x7F693558": -1.0,
    "0x4E548": 0.65,
    "0x38041560": 0.4,
    "0xCDFD665A": 50.0,
    "0xFD3B3C9A": 0.0,
    "0x68F91A18": 0.0,
    "0x2988AA37": [
        1.0,
        0.54,
        0.0
    ],
    "0x948D0A42": 3.0,
    "0xF4DBB5E9": 0.0,
    "0xF51E544F": 0.0,
    "0x4860955B": 200.0,
    "0x736ED30F": 400.0,
    "0xF58EB9B5": 1.0,
    "0x5CB90504": 1.0,
    "0x81154B3B": 3.0,
    "0xB8C8D60E": true,
    "0x2328A055": 1.0,
    "0x66A4EB5F": 3.0,
    "0xD211F9B0": 2.5,
    "0x27D2D389": 3.5
}

Tutorial

Requirements:
  • Python 3.10.0+
  • python library pymmh3 (you can install it with command "pip3 install pymmh3" in cmd/bash if you checked "Add to PATH"/"Add Python to environment variables" when installing Python)

Instructions:
  1. Download "GraphicsSettings.zip" and unpack it
  2. Edit "lib_nx.json" with whatever text editor you like. You can use IDE with JSON support (f.e. Visual Studio Code) to check if you didn't broke something in file. Don't change keys (strings before ":") if you don't know what you are doing!
  3. Run "libnxToBin.py"
Now depending on if you have DLC installed or not:


  • Compatible titleID and versions:
    • 010074F013262000 - 1.0.0, 1.1.0

    Mod is using patch file that was based on Next Method from XC2 thread to get config working outside of ard.
    1. Put "atmosphere" folder on root of your sdcard (folder structure for Yuzu: Link)
    2. Run game

  • This works with any version of game.

    Tested on:
    - DLC Wave 1 (010074F013263001)

    1. Go to atmosphere\contents\010074f013262000\romfs\stream\dumpbin in your GraphicsSettings folder, copy lib_nx.bin to Switch sdcard folder (create folders if they don't exist):
      • for DLC Wave 1 users:
        atmosphere/contents/010074F013263001/romfs/monolib/shader
    2. Run game


Remember that messing up with settings can bring unexpected results, in worst case crashing game or even damaging save.
Thanks to @PhiZero and @OldManKain for testing.
I didn't test it personally.

Whatever presets you will figure out, you can upload in this topic.
 

Attachments

  • GraphicsSettings.zip
    GraphicsSettings.zip
    4.6 KB · Views: 115

Recent Content

Newest Downloads

Tutorials

Back
Top