cross-posted from: https://www.reddit.com/user/ChucksFeedAndSeed/comments/14xksce/beta1_totk_dynamicfps_v155beta1_custom_internal/
E: EA 3764 was finally released, sadly pineapple builds still have pretty high RAM usage, a reduced memory usage build can be found at https://www.reddit.com/user/ChucksFeedAndSeed/comments/15532qa/pineapple_ea_3764_reducedramusage_build/
E: Also posted a modded Yuzu build to reduce RAM usage with this at https://www.reddit.com/user/ChucksFeedAndSeed/comments/14xksce/beta1_totk_dynamicfps_v155beta1_custom_internal/js3cwlp/, if you try it lemme know how it goes!
E: beta3 released to hopefully fix the hanging issues with beta2: https://www.reddit.com/user/ChucksFeedAndSeed/comments/14xksce/beta1_totk_dynamicfps_v155beta1_custom_internal/jrzm4mu/
Been looking through more of the game, seem to have found a way to increase games internal res above 1080p, letting the game scale up to 1440/2160/etc natively, without needing to use emu scaling.
This lets us get around some of the issues with the emu scalers, such as the sky-island / edge / AO / shadow issues, hopefully allowing those effects to scale up properly 😺For this to work some of the engine internals around memory heap sizes had to be tweaked.
Because of that, the game will require the increased memory option in the emulator to be enabled for above-1080p resolutions to work.In Yuzu this can be enabled in
Configure > System > Unsafe extended memory layout (8GB DRAM)
.
In Ryujinx you can enable it viaOptions > Settings > System > Use alternative memory layout (Developers)
.(E: newer Yuzu versions have separated the extended memory option into 3 settings, 4GB / 6GB / 8GB - I'd recommend trying with the 6GB setting first to try and minimize memory usage, if you get any crashes on load then try increasing it to 8GB)
As both emus point out, there's a chance this increased memory could cause instability, or the res increase itself might have certain issues.
This hasn't been tested too thoroughly yet, for those brave enough to try it please let me know if you find any issues!So far the only downgrade I've noticed compared to emu-scaler is the image seeming slightly less sharpened compared to emu.
It's only really noticeable when taking still-shots though, in motion it looks pretty much the same (but with none of the strange edge/AO artefacts :)
(I know the emu-scaled versions seemed a bit oversharpened to some people too, so maybe this is just how the game is actually meant to look at higher res?)Note that performance with this seems very slightly lessened (~5FPS difference) compared to emu-scaler, likely because things like AO/shadow buffers now get scaled up by the game.
Not too sure about how memory usage might be different, would be interested in any comparisons!
(E: maybe it's emu-dependant but I've also heard the opposite from some people too, with FPS gains coming from using this, interesting, if you try it please let me know your experience!)If the performance hit is too much for you I'd recommend using the emu-scaler with /u/PixelKiri's new sky-island edge fix, helps clean up a lot of the issues that the emu-scaler has.
(many thanks to them for helping test this mod & giving it a look over too!)Any comparisons with the emu-scalers would be appreciated, or if you have any other thoughts/questions about it please let me know!
DynamicFPSv1.5.5beta1.zip download: https://pixeldrain.com/u/3DSbhLXf
Compatible with all game versions.
Make sure to enable extended/alternate memory layout in your emu settings for the resolution mod to work, otherwise internal res will be limited to 1080p.
If you choose a resolution above 1920x1080 it's recommended to keep emu at 1x scale, the res you chose should get used fine (you can still use emu-scaler with it if you like, but that will likely bring back the scaling issues which were mentioned above)
Recommend using this with the Disable Quality Reduction patch too, otherwise game may drop to ~80% of internal res, even with FSR/DynamicRes disablers.
If anyone would like to support my work I have a ko-fi page at https://ko-fi.com/ChucksFeedAndSeed :)
To set it up make sure to extract all the folders included in the ZIP into your games mod directory (in Yuzu: right click game in game list -> Open Mod Data Location), also make sure to disable any older dynamic FPS / resolution mods.
Ryujinx: I'm not sure if Ryu has a way to toggle mods selectively, you may need to remove the folders of the optional mods you don't want (if all are left active it should make 60FPS take precedence over the others).
Yuzu: keep Yuzu speed limit at 100% if you want to use the new FPS options, also recommend keeping the
Sync to framerate of video playback
advanced graphics option disabled if you intend to use 60FPS cutscene mods.The INI can also be changed to use a custom resolution too, but it's only been tested with 16:9 ones so far, if you try anything different let me know how it goes!
Known issues:
- mods that change heap sizes might not work properly with this, atm this will just force the heap size to
(vanilla size) + (the size increase we calculated)
, so any increased size from mods won't be added to it...
The heap sizes could be interesting to look into, heard of others being able to reduce stuttering/improve perf by changing them, maybe being able to keep more things in memory instead of needing to decompress from romfs could help things somewhat.
In case anyone ever tries looking into it, next version will adjust things to try and preserve any size increases.- not every rendered texture/buffer gets scaled up by the game (unlike emu-scaler which scales up majority of them, albeit with slight artefacts), shadow texture is the most obvious one affected, but this also causes things like the blurred background in inventory screen to look low-res, luckily shadow res can be adjusted in code, but since that blurred background is done via games UI system it looks like it might need UI layout files to be changed instead.
- (fixed in beta3 onward): certain res options (1440p, maybe 2880p) might prevent game from booting, it's an issue with how shadow buffer size is worked out afaik, you can workaround it by editing the resolution_1440p.ini / resolution_2880p.ini, and change the ResolutionShadows line to
ResolutionShadows = 2048
orResolutionShadows = 4096
- Using resolutions that aren't integer multiples of 1080p (eg. 2560x1440, which is 1.3333... times 1080p) may show some white edge artefacts.
This is kinda strange since games default 1600x900 (and handheld 1280x720) both aren't integer multiples... got some ideas about it, will look into it more soon (thanks to /u/PixelKiri for letting me know!)