Homebrew  Updated

UE4cfgdumper - dump RAM pointers to graphics settings

This tool automatically searches for some of graphics and gameplay settings available in Unreal Engine 4. Instead of doing this slowly in Edizon or wait for main to disassemble, you can just use this tool and get common settings pointers dumped in few minutes. It requires dmnt:cht (tl;dr cheat engine used by Atmosphere) to run. So if you have GDB enabled, it won't run.

It automatically detects if game is running on Unreal Engine 4 or 5, prints which version and encoding is in use. Tested on games like Hellblade, Borderlands 3, Hogwarts Legacy, Kao the Kangaroo, The Dark Pictures Anthology: Little Hope, Dragon Ball Z KAKAROT, so it should work for at least most UE4 games. No Unreal Engine 5 game was tested yet.

THIS IS NOT ALL IN ONE SOLUTION THAT WILL CREATE FOR YOU 60 FPS OR RESOLUTION CHEATS, ETC. YOU MUST BASED ON RESULTS MAKE YOUR OWN CHEATS!

Tool dumps offsets into two forms:
- cheats format that contain address and default value of each setting
- log format that prints name, address + default value not only in hexadecimal, but also decimal form.

Currently supported settings:
Code:
- t.MaxFPS
- r.LensFlareQuality
- r.BloomQuality
- r.SceneColorFringeQuality
- r.AmbientOcclusionRadiusScale
- r.ShadowQuality
- r.MotionBlurQuality
- r.PostProcessAAQuality
- r.DepthOfFieldQuality
- r.ScreenPercentage
- r.MSAA.CompositingSampleCount
- r.MobileMSAA
- r.MSAACount
- r.MaxAnisotropy
- r.ViewDistanceScale
- r.EyeAdaptationQuality
- r.Shadow.DistanceScale
- r.Tonemapper.GrainQuantization
- r.SkyLightingQuality
- r.DynamicRes.OperationMode
- r.DynamicRes.MinScreenPercentage
- r.DynamicRes.MaxScreenPercentage
- r.DynamicRes.FrameTimeBudget
- r.Tonemapper.Sharpen
- r.Tonemapper.Quality
- r.Upscale.Quality
- r.DisableDistortion
- r.TemporalAA.Upsampling
- r.SSR.Quality
- r.SSS.Quality
- r.SSS.Scale
- r.RefractionQuality
- r.MaxQualityMode
- r.Mobile.ShadingPath
- r.LightFunctionQuality
- r.SSGI.Enable
- r.SSGI.Quality
- r.GTSyncType
- foliage.LODDistanceScale
- r.Streaming.FullyLoadUsedTextures
- r.TonemapperFilm
- r.SecondaryScreenPercentage.GameViewport
- r.VSync
- rhi.SyncInterval
- bUseFixedFrameRate (search method for this and next ones is not compatible with games using older UE than 4.19)
- bSmoothFrameRate
- FixedFrameRate
- CustomTimeStep

To understand what each of this setting does read Unreal Engine 4 documentation matching version used by your game.
Some of those settings are not available on older versions of engine, so don't worry if some settings cannot be found. Check if they are listed in documentation.

Full video how this looks like in The Dark Pictures Anthology: Little Hope 1.0.0 from booting game to end of dumping process:


Repo: https://github.com/masagrator/UE4cfgdumper

Releases: https://github.com/masagrator/UE4cfgdumper/releases

How to use:
1. Run game and wait for main menu to appear
2. Run UE4cfgdumper
3. When it's finished, it will print at the end where files are saved. It follows pattern: sdmc:/switch/ue4cfgdumper/*title_id*/*build_id*.txt and .log
 
Last edited by masagrator,

blashy101

Well-Known Member
Newcomer
Joined
Sep 12, 2023
Messages
78
Trophies
0
Age
31
XP
400
Country
United States
Title ID: 0100A8401A0A8000

Based on the results from this, how can I take this information and use it to make cheats/IPS patch to increase framerate or change some of these settings? I used FPSLocker to push this game to 60 before and it worked reasonably well but it capped out at about 45fps, so I imagine reducing some of the graphics settings might help get it to 60?
 

Attachments

  • 3BC3CEAD22CE46BF.txt
    3.1 KB · Views: 18
  • 3BC3CEAD22CE46BF.log.txt
    3.4 KB · Views: 24

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,297
Trophies
3
XP
12,078
Country
Poland
@blashy101 When making 60 FPS cheat, you should focus mainly on 6 things:

- rhi.SyncInterval - setting this to 1 allows interval to work at 60 FPS. Not needed if you use FPSLocker. In some games this setting doesn't work at all, for example Ghostrunner has it set to 2, but there is no interval set in NVN.
- t.MaxFPS - setting it to 60 or 0 (0 may not work if game has enabled smoothFrameRate, but it is preferred over 60 whenever possible) allows unlocking internal FPS lock to allow 60 FPS
- r.DynamicRes.FrameTimeBudget - what frametime dynamic resolution should target. The best way to calculate this is to divide default value by (1000/30) and then result multiply by (1000/FPS). In case of 60 FPS just half default value.
- r.VSync - setting it to 0 is always a good choice. Many games have it enabled, and it's actually harmful to performance on Switch.
- CustomTimeStep - this set to 1 ties game speed to framerate, speed is retrieved from FixedFrameRate float value, so it's advised to set it to 0 (f.e. Demon Slayer has it set to 1)
- FixedFrameRate - it's like using t.MaxFPS and CustomTimeStep at the same time. Cheat file provides in one line flags and float value. If flags are 00000047/0x47 or 00000067/0x67, change it to 00000007/0x7 to disable FixedFrameRate. 00000027/0x27 means that only SmoothFrameRate is enabled. (f.e. DBZ Kakarot enables FixedFrameRate only in cutscenes).

This won't help with very few games, for example Mortal Kombat 1 uses custom class to block game to 30 FPS in cameos.

For other things look up Unreal Engine documentation matching engine version used by your game + eventually this:
https://github.com/masagrator/UE4cfgdumper/blob/main/include/ue4settings.hpp

So by looking at your log, I would change r.VSync to 0. By looking at r.DynamicRes.OperationMode you have dynamicres disabled. It's possible that it's enabled in other places in game, so just in case would be good to change r.DynamicRes.FrameTimeBudget to 16.66.
 
Last edited by masagrator,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • RedColoredStars @ RedColoredStars:
    There is zero instacart delivery to here. No door dash. No Uber. Notta. Its a small farming community
    +1
  • Sicklyboy @ Sicklyboy:
    eagerly awaiting 4x 8TB HDDs to get delivered today
  • RedColoredStars @ RedColoredStars:
    So I drive the 30 miles there, spend $100-$150 on groceries, and drive back home. Still saved $$$ after gas over shopping locally.
    +1
  • K3Nv2 @ K3Nv2:
    You'd think you could make deals with local farmers
  • AncientBoi @ AncientBoi:
    :unsure::unsure::unsure: I could make a killing there doing instcart there :D @RedColoredStars
  • RedColoredStars @ RedColoredStars:
    It makes the trip even more worth it if I'm out of my medication and need to stop by the medical dispensary. I try to line the two up to avoid extra trips.
    +1
  • RedColoredStars @ RedColoredStars:
    @AncientBoi, Except the town is pretty MAGA infested. People still flying TRUMP 2016 flags all over. They didnt get the memo the year changed since then. lol.
    +1
  • RedColoredStars @ RedColoredStars:
    They passed a city ordinance last month. No smoking cannabis in public. Not even eating gummies. $300 fine and misdemeanor charge if caught. People can walk down the street smoking cigs and tossing the butts all over, but God forbit someone take a couple puffs of their medication.
    +1
  • RedColoredStars @ RedColoredStars:
    First off, it's recreationally legal here. Secondly, I have a prescription from my doctor and approved by the state. But still a fucking criminal.
    +1
  • RedColoredStars @ RedColoredStars:
    Like at bars. Cant sit outside even in the smoking section and take a few puffs. Yet I have to breath the cig smoke from 20 people chain smoking all night in every direction around me.
  • K3Nv2 @ K3Nv2:
    Honestly I feel like Trump is going to crush Biden just because of the trial
  • RedColoredStars @ RedColoredStars:
    They cite
    public health and safety concerns" LMAO!!! Yet they do nothing about the poison drinking water quality.
  • K3Nv2 @ K3Nv2:
    The look at how they treated me card is powerful within dumb voters
  • RedColoredStars @ RedColoredStars:
    A Trump win is certainly a possibility. If he's reelected, 4 more years then no one has to worry about him being president ever again. I survived last time, I'll survive it if there's a next time. Don't know how anyone could vote for the guy, but I'm also not anyone else but me.
    +1
  • K3Nv2 @ K3Nv2:
    Honestly things were cheaper with Trump but that's tounge and cheek could be exactly the same outcome if he won reelection
  • RedColoredStars @ RedColoredStars:
    All of the fake "Christians" vote for him even though he's broken like 8 of the 10 commandments... that we know of. Maybe all 10. LOL
    +1
  • K3Nv2 @ K3Nv2:
    A president is just a public figure within America
  • K3Nv2 @ K3Nv2:
    South park put it will there's always a bite between a turd sandwhich or a giant douce
    +1
  • RedColoredStars @ RedColoredStars:
    I like when he says stuff like "They are preventing me from talking!!!" Wait. What? You mean the person that is literally talking right now.. is being prevented from talking? LOL! Gag order also does not apply to taking the stand. He's free to say whatever he'd like. lolol
    +1
  • NinStar @ NinStar:
    holy fuck this discsussion sucks, where are my sisters
  • K3Nv2 @ K3Nv2:
    Well if it sucks stop blowing turd sandwhich
    +1
  • Xdqwerty @ Xdqwerty:
    @NinStar, convince your parents to make a sister for you
  • NinStar @ NinStar:
    parents? what parents?
  • K3Nv2 @ K3Nv2:
    People who screwed each other to make you
    +1
    K3Nv2 @ K3Nv2: People who screwed each other to make you +1