ROM Hack RELEASE Xenoblade Chronicles 2 Graphics Settings

  • Thread starter Thread starter masagrator
  • Start date Start date
  • Views Views 851,650
  • Replies Replies 740
  • Likes Likes 44
Thank you very much for your work.
Because I am using the Japanese version (0100F3400332C000) and the latest version is v2.0.2.

Will Xenoblade2DynFPS support Japanese version (0100F3400332C000) v2.0.2 be developed in the future?

Update:I found something that works, thank you anyway.
What did you find? Can you link me, I've been looking for something to fix the resolution for the jp version myself. Thanks
Post automatically merged:

Thank you very much for your work.
Because I am using the Japanese version (0100F3400332C000) and the latest version is v2.0.2.

Will Xenoblade2DynFPS support Japanese version (0100F3400332C000) v2.0.2 be developed in the future?

Update:I found something that works, thank you anyway.
What did you find? Can you link me, I've been looking for something to fix the resolution for the jp version myself. Thanks
 
For anyone on emulation bothered by 60fps audio de-sync: Using software Lossless Scaling frame gen does wonders.

Turning off the dynamic fps mod and using frame gen instead will solve the audio-desync issue and you'll also get 60fps cutscenes! This solution will work fine for 30fps games like XC2 where additional input latency won't affect the gameplay experience. There's also some minor motion artifacts however the benefits outweigh the cost by a lot.

Steps:
-Monitor refresh set to 60hz
-Acquire Lossless Scaling and set Frame Gen to 3.0, Mode to X2, and Capture API to DXGI
-Make sure vsync is off in the emulator
-If not using g-sync, go to nvidia control panel->manage 3D settings->XC2 emulator->vsync option = adaptive half refresh

Once in-game full-screen, toggle frame gen with Ctrl+Alt+S


Hope this helps someone!
 
Last edited by luckcapsule128,
  • Like
Reactions: DKH6789 and rsc-pl
What did you find? Can you link me, I've been looking for something to fix the resolution for the jp version myself. Thanks
Post automatically merged:


What did you find? Can you link me, I've been looking for something to fix the resolution for the jp version myself. Thanks
For the Jp version, the workflow should be the same. Follow the guide from the "next method".

This is what I did using Ryujinx. Download the Profiles.zip and use the Raw Image->Max 720 settings. Extract the folder "0100E95004039001" to "sdcard\atmosphere\contents\". Rename that folder to the title ID of the Jp version, if you have the DLC installed, rename it to the ID of the DLC, I used "0100f3400332d002". And that is it.

To check if it works, turn off the bloom settings in the lib_nx.ini file and then check on the light bulbs in the game.
Post automatically merged:

I have ran into a problem with emulator where the mod doesn't work when going into a new area. For example, the mod worked fine in the first scene of the game where the big ship is, but then when I progressed into the second area with the rain, my mod was "turned off". All the graphic became low resolution with jaggy lines. It worked again when I restarted the program. But then after I got to a new meadow area it doesn't work again.
 
Last edited by gurugundam,
Hello! I've been looking at this thread recently and i could've sworn i read something about a version of DynFPS that caps at 30FPS, not going above it. It sounded interesting due to the whole "no slowdown below 30fps" thing it does.
My computer can't handle 60FPS, only reaching 40fps, plus, QTEs don't work properly with the mod enabled at 60FPS either. So i would like to know if there really is a version of DynamicFPS capped at 30FPS if possible! I swear i read this entire thread with no success :unsure:
 
Hello! I've been looking at this thread recently and i could've sworn i read something about a version of DynFPS that caps at 30FPS, not going above it. It sounded interesting due to the whole "no slowdown below 30fps" thing it does.
My computer can't handle 60FPS, only reaching 40fps, plus, QTEs don't work properly with the mod enabled at 60FPS either. So i would like to know if there really is a version of DynamicFPS capped at 30FPS if possible! I swear i read this entire thread with no success :unsure:
I thought the game runs natively at 30 fps? You don't need any fps mod when you want to stay at 30 fps.
 
I thought the game runs natively at 30 fps? You don't need any fps mod when you want to stay at 30 fps.
Yeah, but it suffers from slowdown on Torigoth and other areas usually, but with DynFPS active it has some sort of Frameskip that avoids slowdown, and i'd much rather have that than the game running at half speed in any town
 
I don't understand. Is this for PC emulation? Android? Does lib_nx.ini go into the mods folder? Or the emualator's sdmc/atmosphere folder?
 
I have just noticed that Ryujinx is running this game natively at 720p instead of 1080p. I used the ingame screenshot capture and the image came out to be 1280 x 720. I tried the same with Yuzu and the screenshot is at 1920 x 1080. Which one is the correct one?

Update: According to Digital Foundry, the game is indeed native 720p. So does that mean yuzu was rendering everything that was low resolution to 1080p and marked it as native resolution?

 
Last edited by gurugundam,
I have just noticed that Ryujinx is running this game natively at 720p instead of 1080p. I used the ingame screenshot capture and the image came out to be 1280 x 720. I tried the same with Yuzu and the screenshot is at 1920 x 1080. Which one is the correct one?

Update: According to Digital Foundry, the game is indeed native 720p. So does that mean yuzu was rendering everything that was low resolution to 1080p and marked it as native resolution?



You're overthinking it. It means using in-game screenshot capture between emulators isn't going to give you meaningful data because emulators behave differently. It's 720p, mostly.
Post automatically merged:

Yeah, but it suffers from slowdown on Torigoth and other areas usually, but with DynFPS active it has some sort of Frameskip that avoids slowdown, and i'd much rather have that than the game running at half speed in any town
On windows emulation, it shouldn't slow down the game speed when it drops below 30fps when playing vanilla and without mods. It'll get stuttery visually but audio for example shouldn't crack when it drops below 30.
 
Last edited by luckcapsule128,
You're overthinking it. It means using in-game screenshot capture between emulators isn't going to give you meaningful data because emulators behave differently. It's 720p, mostly.
The ingame screenshot is the direct capture of the rendered frame before outputting to the screen, so there is a meaningful difference. I have tested with Xenoblade 3, Xenoblade X and Mario Odyssey. With Ryujinx, at native resolution, both Xenoblade titles came out to be 1080p in the screenshot while Mario Odyssey is at 900p, the resolution seems to vary from game to game. And with Yuzu, they are all 1080p.

Digital Foundry also found Odyssey to be 900p at the highest resolution, which is agreeing to what Ryujinx has.


How did Yuzu turned everything to 1080p as native?
Post automatically merged:

Update, I have used the getnative program to find the native resolution of my screenshots and here's the results:

native resolution compare.png


The downward spike from the curve indicated the native resolution detected from the image.

I was correct, the ingame screenshots in native resolution from yuzu are indeed upscales. The XC2 image was detected as 720p and the Odyssey image was detected as 900p, which matches Ryujinx's and what Digital Foundry was saying.
 
Last edited by gurugundam,
Folks,

I feel I have made an important discovery relevant to people using this tool with a PC emulator like Ryujinx or Yuzu.

This applies to people intending to run the game at high resolutions like 2K or 4K with a powerful graphics card like Geforce RTX to match.

I have noticed that with the INI configurations provided in this thread (i.e., 720p), when the game is started the emulators successfully override the original resolution to give the desired new output as intended, e.g. 4K.

However, because there is no way to completely disable all forms of resolution scaling in the game and the default resolution provided in the INI configuration here maxes out at 720p, I have noticed that in many sections of the game as you play the resolution can reset itself back down to 720p. The game will start to look a lot less sharp than before and the emulator is unable to enforce the high resolution limit anymore. This can happen in many places in the game, and is not fixed unless rebooting the game each time this occurs.

I have finally found a workaround for this issue, which effectively finally completely disables resolution scaling on emulators. Use the 720p base ("raw") configuration provided in this thread, but in the INI file change the following values:

red_AtMinX=2.0
red_AtMinY=2.0

This tends to make the game look sharper in general because it runs at a high resolution all the time, rather than just some of the time.

I provide my full optimized configuration below for reference. This disables all the post-processing blur and oversharpen effects. EXCEPT the TMAA (temporal anti-aliasing) which I prefer for a less pixelated image, it looks better when the resolution is not incorrectly changing and other post-process effects are disabled, but you can disable it too if you want. Please ensure the emulator is running in docked mode (and not pseudo handheld mode).

Finally, please note that the configuration files in this thread may need to be put not into the base mod folder (0100e95004038000) but assuming you have all the free DLC installed, you might need to put the configuration into a DLC folder like 0100E95004039002 which you would need to manually create (that happens to be the New Quests Pack but you can look for IDs of other DLCs as needed).

As example for Ryujinx using New Quests Pack folder:

So you would have the INI file with the content below in:
C:\Users\whateveryouwindowsuernameis\AppData\Roaming\Ryujinx\mods\contents\0100E95004039002\romfs\monolib\shader\lib_nx.ini

And the other file goes here:
C:\Users\whateveryouwindowsuernameis\AppData\Roaming\Ryujinx\mods\contents\0100E95004039002\exefs\Xenoblade2Graphics\D007651BC7C6A51ED7E8F463E02AC2EF.ips

All the best.

tonemap=on
ssao=off
bloom=on
godray=on
AntiAliasing=off
ColReduction=on
dof=off
lensFlare=off
aoskip=off

lut=on
luttex1=lutba

cube=cube

toneHistogramLow=0.8
toneHistogramHigh=0.9
tonemax=1.0
tonemin=0.15
tonescale=7.0
toneUpSpeed=0.1
toneDownSpeed=0.5
toneBlmmax=1000
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

lens_max=1
lens_rot=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.290

AA_Sharpness=2.0
AA_Range=0.5
AA_Threshold=0.17
AA_ThresholdMin=0.05

red_sclX=1.0
red_sclY=1.0
red_hdsclX=1.0
red_hdsclY=1.0

red_Auto=on
red_AtMaxX=1.0
red_AtMaxY=1.0
red_AtMinX=2.0
red_AtMinY=2.0
red_AtRate=97.0


ao_Lengs=0.1
ao_LengsRatio=1.98
ao_range=5.7
ao_rangeRatio=1.000
ao_sub=0.02
ao_subRatio=0.150
ao_Mul=2.0
ao_blurRange=0.720
ao_blurScale=0.75
ao_av_Shwstr=0.5


blur=off
blurStr=0.2
blurAlpha=4.0
blurSub=0.025
blurBlurRange=0.32

shadowStr=1.0
shadowHalf=on
shadowColor=0.0, 0.0, 0.0
simShwStr=1.6
simShwIn=0.7
simShwMin=0.15

sRGBMode=on
gamma=6

ao_av_CenterWeight=1.090
ao_av_MaxDistance=0.15
ao_av_MaxRadius=0.2
ao_av_FadeOutStart=70000.0
ao_av_FadeOutDistance=10000.0
ao_av_BlurFallOff=0.050
ao_av_BlurScale=1.6
ao_av_Shwstr=0.5

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 = Camera
toonDirBackBright = 1.0
toonDirElevation = 0.1
toonDirPntSptRatio = 0.0
toonDirLightScaleVal = 0.333;
toonDirInOutMin = 0.6
toonIBLScaleVal = 0.28;
toonShadowAlpha = 0.02;
toonCharShadowAlpha = 0.02;
toonCharShadowMin = 0.46;
toonOutlineWidth = 2.3
toonOutlineMaxWidthPixelCoverage = 11.5;
toonOutlineDispOffPixelCoverage = 1.0;
toonRimDirAngleX = 13.40
toonRimDirAngleY = -11.90

rim_color = 1.0, 1.0, 1.0
rim_intensity = 3.0

iblDirectLightIntensity = 1.0
iblSkyIntensity = 1.5
iblBlendBetweenFrame = 30

skyToneDirLightIntensity = 0.2
skyToneAmbientIntensity = 0.32

tssao = on
tssaoRadius = 1.0
tssaoIntensityMul = 1.0
tssaoIntensityPow = 0.16
tssaoOutputAO = 0.35
tssaoPostBlurSharpness = 0.55
tssaoLuminanceCorrection = 0.3
tssaoSelectiveFiltering = on
tssaoWeakenRatio = 0.8

ssr = on
ssrIntensity = 1.0
ssrShinessFade = 0.8
ssrGroundness = 0.73
ssrFadeSec = 5.0

shadowCloud = on
shadowCloudStr = 0.8
shadowCloudSize = 300
shadowCloudScrollDir = 150.0
shadowCloudScrollSpeed = 6.0

shadowRaytraceDistance = 0.15
shadowRaytracePitch = 0.0

tmaa=on
tmaaSharpness_0 = 0.4
tmaaSharpness_1 = 0.6
tmaaSharpness_2 = 0.6
tmaaSharpness_3 = 0.72
tmaaSharpness_4 = 0.8
tmaaSharpness_5 = 0.0
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=on

shwCharParm = 17.92;
shwHalfLamParm = 1.0;

wetMaxShiness = 0.5
wetDarkness = 0.48
wetShinessScale = 0.6
wetToInsideFrame = 10
wetToOutsideFrame = 20

TransReduction = on
trans_red_sclX = 0.5
trans_red_sclY = 0.5

blur2=off
blur2Str = 1.0
blur2Sub = 0.2
blur2ObjScale = 0.65
blur2CameraScale = 0.8
blur2BlurRange = 0.7
blur2PixelRange = 20.0
blur2HLV = on

gpucount=64

leafSpecColMinShiness = 0.1
leafSpecColMaxShiness = 0.4
leafSpecColRatio = 0.85
Thanks, this solved my issue with the resolution resetting itself to 720p, often during consecutive cut scenes. Here's one of them, right after fighting the giant lobster in the beginning and met Pyra.

Without the setting, the resolution was auto reset to 720p from 1440p.

Before:
Xenoblade Chronicles 2_2025-03-28_17-30-58.jpg


after:
Xenoblade Chronicles 2_2025-03-28_17-09-00.jpg



I would also like to add that those 2 lines also acted as a quality slider. When I increased it, more details were added

Regular 2x scale:
Xenoblade Chronicles 2_2025-03-28_16-38-42.jpg


2x scale + red_AtMinX and red_AtMinY to 2.0
Xenoblade Chronicles 2_2025-03-28_16-37-21.jpg


The things on the background has more details. The downside though is that my RTX 3060 is not good enough to keep it up with 30 fps.

Update: I have tested this setting on both Ryujinx and Sudachi(Yuzu), while CPU usage are about the same at 7% and 8%, Sudachi is significantly better in GPU usage at only 1-4%, while Ryujinx is at 41%.
 
Last edited by gurugundam,
Thanks, this solved my issue with the resolution resetting itself to 720p, often during consecutive cut scenes. Here's one of them, right after fighting the giant lobster in the beginning and met Pyra.

Without the setting, the resolution was auto reset to 720p from 1440p.

Before:
View attachment 494202

after:View attachment 494203


I would also like to add that those 2 lines also acted as a quality slider. When I increased it, more details were added

Regular 2x scale:
View attachment 494204

2x scale + red_AtMinX and red_AtMinY to 2.0
View attachment 494205

The things on the background has more details. The downside though is that my RTX 3060 is not good enough to keep it up with 30 fps.
Yeah, Xenoblade 2 is the only Xenoblade game where you can do something like this, by emulator anyways, and the most control of the graphic with the .ini file. The other games, you can only do less with the .ini file, XC3's being the most useless.
 
The ingame screenshot is the direct capture of the rendered frame before outputting to the screen, so there is a meaningful difference. I have tested with Xenoblade 3, Xenoblade X and Mario Odyssey. With Ryujinx, at native resolution, both Xenoblade titles came out to be 1080p in the screenshot while Mario Odyssey is at 900p, the resolution seems to vary from game to game. And with Yuzu, they are all 1080p.
That's cool that you confirmed it, but this is already known information across this thread in addition to your own DF article posting. Did you suspect this game was actually running at 1080p or something? Running the game native on either emu will look noticeably blurry on an HD display.
 
That's cool that you confirmed it, but this is already known information across this thread in addition to your own DF article posting. Did you suspect this game was actually running at 1080p or something? Running the game native on either emu will look noticeably blurry on an HD display.
The graphs indicated that Yuzu was also rendering at 720p natively. The problem came from this option from the setting on saving the image:

screenshot setting.png


I believe that this "auto resolution" option was buggged. With "auto" means that resolution should change depending on the source, however right now everything that was under 1080p rendered was upscaled and saved to a 1080p image and everything between 1080 and 4K were upscaled to 4K. It is wrong. This issue should be reported but I don't know where to.
 
Last edited by gurugundam,
Anyone know of any settings in the lib_nx file that improve the game's performance? I'm on an 11th gen i7 and RTX 3070 but man XC2 does NOT like certain areas like Mor Ardain and it will slow to a crawl. I can't figure out if it's something with that files' settings, or the emulator (citron). I can't figure out what's bottle necking it.

Untitled.png
Untitled1.png
Untitled2.png
 

Site & Scene News

Popular threads in this forum