ReverseNX-RT Switch

From GameBrew
ReverseNX-RT
Reversenxrtswitch.png
General
Authormasagrator
TypeOverlays
Version2.0.0
LicenseMIT License
Last Updated2023/10/01
Links
Download
Website
Source
Support Author

ReverseNX-RT is an alternative version of ReverseNX that enables you to switch between handheld and docked mode in Real Time.

Requires SaltyNX 0.7.0+ and Tesla environment installed.

Overlay contains multiple modes, from which 2 are main ones, other are error notifications.

Installation

Requirements:

Patch/Plugin compatibility:

  • It's compatible with ReverseNX patches/ReverseNX-Tool 2.0.0+.
  • It's not compatible with deprecated ReverseNX plugin.
  • Do not use ReverseNX-RT next to Status Monitor 0.6.0 or older (Tesla can crash on Atmosphere if you are using NX-FPS).

To install, download the latest release and place ReverseNX-RT-ovl.ovl in the /switch/.overlays/ directory.

Note: If you have a previous version installed, make sure you delete ReverseNX-RT.elf from SaltySD/plugins folder.

User guide

Main modes

When running game and everything works as should:

reversenxrt4.png

You have only two options here:

  • Change system control (It also refers to ReverseNX-Tool flags - f.e. if you have docked flag set for this game in ReverseNX-Tool, when system control is enabled, it will force docked mode).
  • Change mode (disabled if system control is enabled).

Game stays in current configuration until you will close game.

When game is not running, SaltyNX is working and plugin is detected:

reversenxrt5.png

You have option to (de)activate plugin from this menu. Deactivating it will result in renaming file so it will not be loaded by SaltyNX. Activating plugin renames to original filename.

Error notifications

SaltyNX is not working! - SaltyNX crashed or is not installed correctly.

Can't detect ReverseNX-RT plugin! - ReverseNX-RT plugin is not detected in sdcard SaltySD/plugins. Put plugin to correct folder without renaming it.

Game was closed! Overlay disabled! Exit from overlay and run game first! - If you were using overlay in last running game and closed game without closing overlay, you need to close overlay to use it again.

ReverseNX-RT is not running! - Plugin was not injected. It's either 32-bit game or is in SaltyNX exceptions list.

Game doesn't support changing modes! - Plugin was injected and is working, but function for checking modes was not used. Either game doesn't have one (which means there is no difference between handheld and docked) or game just checks it later than when you wanted to check (for example game may not use it for few seconds after booting was finished). You need to exit from overlay and run it again later to check if error still occurs...

WRONG MAGIC! - Something went horribly wrong and overlay is reading value from wrong memory position. It should not happen if you are opening overlay after game boot process will finish. It may also happen if you will close overlay before closing game and open it after running next game, this time not compatible with SaltyNX.

Troubleshooting

List of titles having compability issues with ReverseNX-RT:

Title Versions Why?
Monster Hunter Rise 1.0.0-1.1.1 + possible later version MessageEvent is used, to recognize plugin and apply changes you need to go back to qlaunch and back to game.
Robotics;Notes Elite 1.0.1 Broken PopNotificationMessage() thread, not working at all.

Often when I'm closing game, Atmosphere crashes with error 0x41001. Why?

Atmosphere 0.12.0 with new options for cheat engine bringed bug that causes showing this error in random instances. For some reason this overlay makes this bug occur more frequently. Either go back to 0.11.1 or update to newer version.

Changelog

v2.0

  • Added support for SaltyNX 0.7.0+.

v1.1.1-update 2

  • Updated plugin to add proper support for Monster Hunter Rise so now there is no need to go back to home menu.
  • To achieve this 4 functions were hooked:
    • nn::oe::GetNotificationMessageEvent()
    • nn::os::InitializeMultiWaitHolder(nn::os::MultiWaitHolderType*, nn::os::SystemEventType*)
    • nn::os::LinkMultiWaitHolder(nn::os::MultiWaitType*, nn::os::MultiWaitHolderType*)
    • nn::os::WaitAny(nn::os::MultiWaitType*) - in case of detecting NotificationMessageEvent included in MultiWaitType argument it redirects call to nn::os::TimedWaitAny(nn::os::MultiWaitType*, nn::TimeSpan timeout) with timeout set to 1ms.
  • Overlay was not updated.

v1.1.1

  • Overlay: update libtesla to newest version that fixes random crashes in docked mode related to freeing framebuffer.

v1.1

  • Read/Write data from SharedMemory instead of using dmnt:cht.
  • Requires SaltyNX 0.5.0+.
  • Edit: Accidentally put old files.

v1.0.2

  • Added support for FW 16.0.0.

v1.0.1

  • Fixed svc magic reading in overlay.

v1.0

  • First Release.

External links

Advertising: