Homebrew RELEASE UnityGraphics - Graphics settings for Unity games

masagrator

The patches guy
OP
Member
Joined
Oct 14, 2018
Messages
4,983
Trophies
2
XP
8,681
Country
Poland
UnityGraphics

This is a combination of SaltyNX plugin and Tesla overlay that allows to modify in real time graphics settings in games using Unity engine.

Screen.jpg


Requirements:
- Atmosphere (This is related to dmnt:cht that allows homebrews for reading build_id of running games. SX OS doesn't provide this info). Not tested on ReinX
- Tesla environment
- SaltyNX
- File with offsets dedicated to game (you can find storage here: https://github.com/masagrator/UnityGraphicsWarehouse)

More info in repo:
https://github.com/masagrator/UnityGraphics

--------------------------
If you want bring support to any other Unity game and you know how to unpack exefs and disassemble main, I can provide help if tutorial at Warehouse is not easy to read.
https://github.com/masagrator/UnityGraphicsWarehouse

Join RetroNX Discord channel and DM me (because some people are sending me invites and never respond after I accept them).
https://discord.gg/9HdWtZ3
 

masagrator

The patches guy
OP
Member
Joined
Oct 14, 2018
Messages
4,983
Trophies
2
XP
8,681
Country
Poland
As I'm going from Monday to work for next 3-4 weeks abroad, I'm releasing this now.

For now only supported game is Pokémon Mystery Dungeon™: Rescue Team DX 1.0.2 (TID: 01003D200BAA2000) and only Quality category. There will be more if more people will help with expanding support.

For now have fun. Probly next bigger update will come in the end of next month.
 
Last edited by masagrator,

masagrator

The patches guy
OP
Member
Joined
Oct 14, 2018
Messages
4,983
Trophies
2
XP
8,681
Country
Poland
This is very big, congrats for you work, the ability to create our tweaks!, This should work on the majority of Unity engine games? which limitations did you face it ?
The biggest limitation was my own lack of experience. I have never used classes, etc. And I knew I need to put settings to separate files, otherwise every gui would be in main and that means main.cpp would rise to hundreds of kB, which would be a madness. I have learned enough from looking at WerWolv's overlays to understand finally how to move them to separate file.

For now only limitations I can see are when settings are not using standard casts like int, float, bool, but f.e. Vector3. But if something is using that, then probably end-user won't use it anyway + what is the best way to adjust ints and floats (for now I'm profiling buttons individually for each setting).

So it's not something big. Maybe biggest limitation is my own free time. :unsure:
 
  • Like
Reactions: newkey_sky
0.1.1

masagrator

The patches guy
OP
Member
Joined
Oct 14, 2018
Messages
4,983
Trophies
2
XP
8,681
Country
Poland
Added 0.1.1 version
  • Fixed version number in Tesla menu
  • Added SetResolution from Screen category with predefined options
  • Added safety for using older offsets files
Remember to update offset file from Warehouse to add support for this option to Pokemon Dungeon.

Unity doesn't accept resolutions other than defined in get_resolutions. I need to implement how to get all supported resolutions and dynamically add options based on that.

2020072618580000-A5A477B869AFD225B3DAF74249D70FF2.jpg
 
Last edited by masagrator,

masagrator

The patches guy
OP
Member
Joined
Oct 14, 2018
Messages
4,983
Trophies
2
XP
8,681
Country
Poland
Ok, it looks like I was wrong. get_resolutions in Pokemon doesn't output accepted resolutions list. So it will stay as it is.
 

Cybereu

Member
Newcomer
Joined
Jun 12, 2020
Messages
23
Trophies
0
Age
34
XP
237
Country
Brazil
Thanks !
Im going to use it a lot.

Edit:
Correcting, I would like to use it a lot but I can`t even know where's exefs files are.
 
Last edited by Cybereu,

uli

Member
Newcomer
Joined
Apr 27, 2013
Messages
5
Trophies
0
Location
Düsseldorf
XP
283
Country
Germany
Just stumbled upon this plugin and started the process of modding The Long Dark. I am completely new to this topic so I will share my steps first, to make sure I didn't miss anything.

I could follow the whole process:
- Get main from exefs via DBI and Android File Transfer App on Mac (I got the main from the update not from the v0)
- Installed Ghidra 9.1.2 (+ SwitchLoader-1.4.0-a9dc0f2-Ghidra_9.1.2)
- Dissambled main (took >2 hours)
- Found the UnityEngine.QualitySettings and Decompiled the function
- Copied all offsets to template.txt
- Created hex Files (size 272) as described in the github Readme
- Put the hex file in sdmc:/SaltySD/plugins/UnityGraphics/01007A700A87C000/9B4979A234077441907E280C6B57A78700000000000000000000000000000000.hex

-> Start Game -> Crashes (SaltyNX seems to have crashed too)

Do you have any hints what I did wrong?

(Atmosphere 1.1.1 / FW 13.0 / Latest SaltyNX)
 

uli

Member
Newcomer
Joined
Apr 27, 2013
Messages
5
Trophies
0
Location
Düsseldorf
XP
283
Country
Germany
Thanks, the issue was related to (stupid) Mac Finder Application which creates dot (.) files everywhere. After running a dot_clean on my SD Card the Game starts and I can at least change the resolution successfully.
When I try to Enter the Quality Settings the Game crashes again.

Thanks a lot for your outstanding work btw. As soon as I have (hopefully) sorted this out I will make a Pull Request to your Repo and do some more Games (Subnautica f.e. :-) )
 

uli

Member
Newcomer
Joined
Apr 27, 2013
Messages
5
Trophies
0
Location
Düsseldorf
XP
283
Country
Germany
I could narrow the settings in template.txt down and have now a working .hex file for The Long Dark.

One annoying thing, which might be related to the behaviour of TLD, is still bugging me.
Every time I enter or leave a building (which happens quite a lot), the changes I made to the Quality Settings are set back to the default settings. The changed resolution stays though.

Is there a way we can make the changes in the Quality Settings permanent? Maybe like the mod from cucholix for Deadly Premonition 2....if yes, can you point me to a howto or explain the steps?
 
General chit-chat
Help Users
    NeoGaming @ NeoGaming: :nayps3: