ReverseNX - Flag your console as handheld or docked

ReverseNX_logo_transparent_v4.png

ReverseNX

Combination of SaltyNX patches that force games to think that you are using docked or handheld mode.

You can use it to change graphics settings and unlock some options that are available only in docked/handheld mode. For now in experimental phase, because SaltyNX has many bugs that need to be patched.

To download latest SaltyNX, check links at the end of post.

_____________

To use ReverseNX, you need to use ReverseNX-Tool which can be downloaded at the end of this post. Check readme in repo to learn how to use it.


When forcing docked mode, it is recommended to use OC settings exactly as used in docked mode:
Code:
handheld_charging_gpu=768
handheld_charging_mem=1600

______________

Known issues:
  • SaltyNX is still under development, so it may cause issues on it's own. More in SaltyNX repo.
______________

Thanks to @Kirby567fan and @crow132 for testing.
To @RattletraPM for logo.
To @SunTheCourier for sys-clk Editor on which I have based ReverseNX-Tool >=2.0.0
To Borealis contributors for Borealis which I'm using from 3.0.0
______________

ReverseNX-Tool

github repo: https://github.com/masagrator/ReverseNX-Tool
Releases: https://github.com/masagrator/ReverseNX-Tool/releases

____________

SaltyNX
github repo: https://github.com/masagrator/SaltyNX
Releases: https://github.com/masagrator/SaltyNX/releases

 
Last edited by masagrator,

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
953
Country
Germany
If I disable SaltyNX in the Tool, is the FPS counter still working?


Edit: I didnt got an error in applet mode, I set the dock flag and try to start crash team racing. Game didnt start. Then I started it again, it loaded, but FPS counter didnt work and the switch wasnt in "docked mode" because I couldnt start a 3/4 player local multiplayer session. Then I did go back the the tool in applet mode and got the same error "saltyNX is not injected". Strange.
 
Last edited by 1basti1,

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,338
Trophies
3
XP
12,180
Country
Poland
If I disable SaltyNX in the Tool, is the FPS counter still working?


Edit: I didnt got an error in applet mode, I set the dock flag and try to start crash team racing. Game didnt start. Then I started it again, it loaded, but FPS counter didnt work and the switch wasnt in "docked mode" because I couldnt start a 3/4 player local multiplayer session. Then I did go back the the tool in applet mode and got the same error "saltyNX is not injected". Strange.
It's not strange. Something crashed SaltyNX when game was booting, that's why is not working anymore.
Next question - are you using cheats for this game?
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,338
Trophies
3
XP
12,180
Country
Poland
No cheats what so ever.

Maybe because my CTR is on V1.0.7?

Confirmed working is 1.0.4
So if you don't even have cheats file for this game (you don't need to use them, just their existence give crash)
Check for sysmodules. If you ever had Kosmos, better to delete everything related to CFW and put fresh files and homebrew.
 

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
953
Country
Germany
I dont have much installed (I used SXOS, now atmosphere) but I just read that emuiibo can crash it. Maybe thats why. Thats a pitty. Cant have it all I guess. But thanks for answering so quickly.
 

1basti1

Well-Known Member
Member
Joined
Jun 30, 2019
Messages
215
Trophies
0
Age
33
XP
953
Country
Germany
Hi, I tried it once again. I disabled Emuiibo. I dont have any other sysmodules installed, also no cheats, just a couple overlays. CTR still crashes when I start the game. I have no idea what I do wrong here.

I really should have cleared the log... But here is the end of the log.

SaltySD: new max 86, 0 0000001800213d90
SaltySD: found AttachProcess event:
tid 010000000000100d pid 0000000000000086
name hbloader
isA64 1 addrSpace 1 enableDebug 1
enableAslr 1 useSysMemBlocks 0 poolPartition 1
exception 0000000000000000
SaltySD: TID 010000000000100d is a system application, aborting bootstrap...
SaltySD: new max 87, 0 0000001800213d90
SaltySD: found AttachProcess event:
tid 0100f9f00c696000 pid 0000000000000087
name Application
isA64 1 addrSpace 3 enableDebug 1
enableAslr 1 useSysMemBlocks 1 poolPartition 0
exception 0000000000000000
SaltySD: debug event 4, passing...
SaltySD: svcGetDebugEventInfo returned 8c01, breaking
.text to 557f204000, .data to 558397b000
SaltySD: cmd 1 handler, proc handle 100005, heap 39dee00000, path saltysd_core.elf
SaltySD: loading sdmc:/SaltySD/saltysd_core.elf, size 0x599a0
SaltySD: Search for size 77000
SaltySD: Found free address space at 2d24c8000, size 77000
SaltySD Core: restoring code...
SaltySD: cmd 2 handler
SaltySD: cmd 4 handler
SaltySD Core: got SD card handle 20002
SaltySD: cmd 3 handler, memcpy(55853037dc, 33edc58ba8, 4)
SaltySD: cmd 3 handler, memcpy(55853037e0, 33edc58bc0, 10)
SaltySD: cmd 3 handler, memcpy(55853039ac, 33edc58ba8, 4)
SaltySD: cmd 3 handler, memcpy(55853039b0, 33edc58bc0, 10)
SaltySD Core: Searching plugin dir `'...
SaltySD: cmd 1 handler, proc handle 1b0006, heap 39dee77000, path NX-FPS.elf
SaltySD: loading sdmc:/SaltySD/plugins/NX-FPS.elf, size 0x13f80
SaltySD: Search for size d000
SaltySD: Found free address space at 86d572000, size d000
SaltySD: cmd 1 handler, proc handle 1e8005, heap 39dee84000, path ReverseNX.elf
SaltySD: loading sdmc:/SaltySD/plugins/ReverseNX.elf, size 0x209d0
SaltySD: Search for size 19000
SaltySD: Found free address space at d552f7000, size 19000
SaltySD Core: Searching plugin dir `0100f9f00c696000/'...
SaltySD Core: 3 0->2d24c85e0 SaltySDCore_fopen
SaltySD Core: 4 0->0 __libnx_exception_handler
SaltySD Core: 5 0->2d24c8670 SaltySDCore_fwrite
SaltySD Core: 6 0->2d24c8c90 SaltySD_printf
SaltySD Core: 7 0->2d24ca0b0 SaltySDCore_ReplaceImport
SaltySD Core: 8 0->55852ac600 _ZN2nn2os13GetSystemTickEv
SaltySD Core: 9 0->0 __deregister_frame_info
SaltySD Core: a 0->0 _ITM_registerTMCloneTable
SaltySD Core: b 0->2d24c8600 SaltySDCore_fclose
SaltySD Core: c 0->0 _ITM_deregisterTMCloneTable
SaltySD Core: d 0->55853ced90 nvnBootstrapLoader
SaltySD Core: e 0->0 __register_frame_info
SaltySD Core: f 0->0 eglSwapBuffers
SaltySD Core: 4 0->0 __libnx_exception_handler
SaltySD Core: 9 0->0 __deregister_frame_info
SaltySD Core: e 0->0 __register_frame_info
NX-FPS: alive
SaltySD Core: 7e9e8 nvnBootstrapLoader to 0x86d5726a0, 4bc1048 0x5583dc5048
SaltySD: cmd 3 handler, memcpy(5581ea7e28, 33edc58bf8, 18)
NX-FPS: injection finished
SaltySD Plugin: jumping to 0x2d24ca3ac
SaltySD Core: 3 0->2d24c8690 SaltySDCore_mkdir
SaltySD Core: 4 0->2d24c85e0 SaltySDCore_fopen
SaltySD Core: 5 0->0 __libnx_exception_handler
SaltySD Core: 6 0->2d24c8c90 SaltySD_printf
SaltySD Core: 7 0->2d24c8660 SaltySDCore_remove
SaltySD Core: 8 0->2d24ca0b0 SaltySDCore_ReplaceImport
SaltySD Core: 9 0->0 __deregister_frame_info
SaltySD Core: a 0->0 _ITM_registerTMCloneTable
SaltySD Core: b 0->2d24c8600 SaltySDCore_fclose
SaltySD Core: c 0->0 _ITM_deregisterTMCloneTable
SaltySD Core: d 0->2d24c8440 SaltySDCore_getCodeStart
SaltySD Core: e 0->0 __register_frame_info
SaltySD Core: 5 0->0 __libnx_exception_handler
SaltySD Core: 9 0->0 __deregister_frame_info
SaltySD Core: e 0->0 __register_frame_info
SaltySD ReverseNX: alive
Docked global flag detected. Applying docked graphics settings.
SaltySD Core: 7e9a3 _ZN2nn2oe18GetPerformanceModeEv to 0xd552f7920, 4bc0e20 0x5583dc4e20
SaltySD: cmd 3 handler, memcpy(5581ea77b0, 33edc589f8, 18)
SaltySD Core: 7e9d2 _ZN2nn2oe16GetOperationModeEv to 0xd552f7930, 4bc0f98 0x5583dc4f98
SaltySD: cmd 3 handler, memcpy(5581ea7c18, 33edc589f8, 18)
Setting GetOperationMode: 1
Setting GetPerformanceMode: 1

I actually just want to use Handheld mode in the dock, because of the 60fps patches... :(
 
ReverseNX-Tool 1.36

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,338
Trophies
3
XP
12,180
Country
Poland
Released updates:

ReverseNX-Tool 1.36
Code:
Deleted disabling cheats in Atmosphere, it's obsolete with SaltyNX 0.1.2a.
SaltyNX 0.1.2a
Code:
Implement hack to resolve issues with cheats in Atmosphere.
 

Tonygesto

Active Member
Newcomer
Joined
Jun 28, 2019
Messages
25
Trophies
0
Age
25
XP
121
Country
Spain
hey guys i getting saltynx is not injected red text on reversenx
btw i have on my main root folder saltySD files update to reverseNX 0.34 and saltynx to 0.1.2a

Im at global mode set nut it says in red salty nx is not injected...

im at sx os 2.9.4 cfw 9.2
 
Last edited by Tonygesto,

Red_BY

Well-Known Member
Newcomer
Joined
May 11, 2019
Messages
53
Trophies
0
XP
337
Country
Belarus
So dk what I'm doing wrong and need some help. I installed SaltyNX+KIP+NSP and now when I try to enter HB menu I just get black screen. Did I install something wrong? When i dont install NSP it works but I get SaltyNX not injected error in ReverseNX tool.
 
Last edited by Red_BY,

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,338
Trophies
3
XP
12,180
Country
Poland
Did you even try to read SaltyNX readme?

--------------------- MERGED ---------------------------

And did you even try to read ReverseNX-Tool readme?
 

Red_BY

Well-Known Member
Newcomer
Joined
May 11, 2019
Messages
53
Trophies
0
XP
337
Country
Belarus
I did... Well anyway figured out that I need to use Applet Mode by reading comments. (Didnt try it first since I thought almost everything requires launching from apps now) Still dont know why NSP causes black screen so I just dont use it. Read me says "For Atmosphere or Reinx you can use combination KIP.zip + SaltyNX or NSP.zip + SaltyNX" so Its not even necessary afaiu,but whatever it works now so just ty for that amazing tool.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,338
Trophies
3
XP
12,180
Country
Poland
I did... Well anyway figured out that I need to use Applet Mode by reading comments. (Didnt try it first since I thought almost everything requires launching from apps now) Still dont know why NSP causes black screen so I just dont use it. Read me says "For Atmosphere or Reinx you can use combination KIP.zip + SaltyNX or NSP.zip + SaltyNX" so Its not even necessary afaiu,but whatever it works now so just ty for that amazing tool.
So your reading capabilities need improvement.
"or" is there for a reason.
And ReverseNX-Tool:
To use only in Applet mode. Title replacement mode in 99.9% of cases will block function responsible for checking if SaltyNX is alive and can even crash SaltyNX.
 

kristianity77

GBATemp old fogey
Member
Joined
Jul 10, 2003
Messages
1,680
Trophies
2
Location
Sleaford, UK
XP
2,681
Country
United Kingdom
I'd love to get all this working, is there a fools guide on how to set this up on the switch? I'm running the latest firmware, latest atmosphere etc. All games I have on the system are working fine. It's just be nice to make some of the games that look awful in handheld mode a little better (ie xenoblade)
 

SkullHex2

Well-Known Member
Member
Joined
Feb 27, 2017
Messages
246
Trophies
0
XP
1,304
Country
United States
I'd love to get all this working, is there a fools guide on how to set this up on the switch? I'm running the latest firmware, latest atmosphere etc. All games I have on the system are working fine. It's just be nice to make some of the games that look awful in handheld mode a little better (ie xenoblade)
Download “SaltyNX-0.1.2a.zip” here: https://github.com/masagrator/SaltyNX/releases
Extract it into the root of your microSD.
Then download either “KIP-0.1.zip” or “NSP-0.1.zip” here: https://github.com/masagrator/SaltyNX/releases
Using the latter should be easier, because (correct me if I'm wrong) it doesn't require you to explicitly activate it. You just need to extract it into the root of your microSD and I guess reboot your Switch.

These are optional but can come in very handy. Download “ReverseNX-Tool.nro” here: https://github.com/masagrator/ReverseNX-Tool/releases
Drag and drop to the switch folder of your microSD.
Same with “SaltyNX-Tool.nro” here: https://github.com/masagrator/SaltyNX-Tool/releases

Last time I checked (two days ago), ReverseNX works per titleid by default, which means it only runs for the titles you want.
In order to make ReverseNX work for some title, you need to create an empty file, namely ‘docked.flag’ or ‘handheld.flag’ depending on which mode you want to activate, into SaltySD/plugins/<titleid>/ReverseNX/
Easier way to be 100% sure about a titleid is probably using Checkpoint or something like that.
What I've just described is how to manually configure ReverseNX. Alternatively, you could use ReverseNX-Tool but you'll have to figure out how to do that by yourself (should be pretty easy).

ReverseNX can also work globally. The ‘docked.flag’ or ‘handheld.flag’ goes into SaltySD/plugins/ReverseNX, and this time it applies to every game you run (not for the exceptions though).

If you want ReverseNX to work per titleid, put an empty file called ‘titleid.flag’ into SaltySD/flags/ReverseNX/
When this file is not there, ReverseNX is working globally.
 
Last edited by SkullHex2,
  • Like
Reactions: kristianity77

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BigOnYa @ BigOnYa: Nighty night, don't let the step brother bite