More actions
No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
|source=https://github.com/masagrator/SaltyNX | |source=https://github.com/masagrator/SaltyNX | ||
|donation=https://ko-fi.com/masagrator | |donation=https://ko-fi.com/masagrator | ||
}} | }} | ||
SaltyNX is a process running in the background that allows for code injection and modification. It is utilized by various tools such as ReverseNX-Tool, [[ReverseNX-RT Switch|ReverseNX-RT]], and Status Monitor in conjunction with [[NX-FPS Switch|NX-FPS]], UnityGraphics, and several Smash mods. | SaltyNX is a process running in the background that allows for code injection and modification. It is utilized by various tools such as ReverseNX-Tool, [[ReverseNX-RT Switch|ReverseNX-RT]], and Status Monitor in conjunction with [[NX-FPS Switch|NX-FPS]], UnityGraphics, and several Smash mods. | ||
This is a based on shinyquagsire23's [https://github.com/shinyquagsire23/SaltyNX SaltyNX] witg includes many QoL improvements and beside plugins support also supports patches. | |||
== | == Installation == | ||
* | How to install: | ||
* | * Atmosphere >=0.10.1 - Put folders from archive to root of your sdcard. | ||
* | * Atmosphere <=0.9.4 and any other CFW - Rename <code>contents</code> folder to <code>titles</code>. | ||
Remember to restart Switch. | * SX OS - Remember to rename <code>atmosphere</code> folder to <code>sxos</code>. | ||
* Remember to restart Switch. | |||
==Patches pattern== | No technical support for: | ||
* | *Atmosphere forks. | ||
* | *SX OS. | ||
* | *Kosmos. | ||
*ReinX. | |||
==User guide== | |||
===Patches pattern=== | |||
* Filename is symbol of function with filetype <code>.asm64</code>. | |||
* Inside file write with hex editor instructions that you want to overwrite for this function. | |||
* Put this file either to <code>SaltySD/patches</code> to make it work for every game, or to <code>SaltySD/patches/*titleid*</code> to make it work for specific game. | |||
For additional functions you need [https://github.com/masagrator/SaltyNX-Tool SaltyNX-Tool]. | For additional functions you need [https://github.com/masagrator/SaltyNX-Tool SaltyNX-Tool]. | ||
== | ===Plugin examples=== | ||
Plugin source code examples: | |||
*https://github.com/masagrator/NX-FPS/blob/master/source/main.cpp | |||
*https://github.com/masagrator/ReverseNX-RT/blob/master/Plugin/source/main.cpp | |||
*https://github.com/masagrator/UnityGraphics/tree/master/Plugin/source | |||
* | |||
* | |||
* | |||
{| class="wikitable" | === List of titles not compatible with plugins/patches === | ||
{| class="wikitable sortable" | |||
! Title | ! Title | ||
! plugins/all | ! plugins/all | ||
Line 146: | Line 141: | ||
| all | | all | ||
| heap related | | heap related | ||
|- | |||
| Sherlock Holmes and The Hound of The Baskervilles | |||
| all | |||
| 32-bit game, not supported | |||
|- | |- | ||
| Tokyo Mirage Session #FE Encore | | Tokyo Mirage Session #FE Encore | ||
Line 172: | Line 171: | ||
32-bit games are ignored by default for patches and plugins. | 32-bit games are ignored by default for patches and plugins. | ||
==Known | ==Compatibility== | ||
Tests were done on FW 7.0.1-16.0.0 with Atmosphere up to 1.5.0. | |||
==Known issues== | |||
* Instability with some homebrews and sysmodules (like emuiibo), | * Instability with some homebrews and sysmodules (like emuiibo), | ||
* You need to have at least Hekate 5.0.2 if you don't want issues related to Hekate, | * You need to have at least Hekate 5.0.2 if you don't want issues related to Hekate, | ||
* 32 bit games are unsupported, | * 32 bit games are unsupported, | ||
* Cheats using directly heap addresses may not work properly while using plugins | * Cheats using directly heap addresses may not work properly while using plugins, | ||
==Changelog== | ==Changelog== | ||
Line 228: | Line 230: | ||
== External links == | == External links == | ||
* | * GitHub - https://github.com/masagrator/SaltyNX | ||
* | * GitHub - https://github.com/masagrator/SaltyNX-Tool | ||
* GBAtemp - https://gbatemp.net/threads/saltynx-discussion-thread.579051/ |
Revision as of 23:52, 20 April 2023
SaltyNX | |
---|---|
General | |
Author | masagrator |
Type | Other Apps |
Version | 0.5.2 |
License | Mixed |
Last Updated | 2023/04/02 |
Links | |
Download | |
Website | |
Source | |
Support Author | |
SaltyNX is a process running in the background that allows for code injection and modification. It is utilized by various tools such as ReverseNX-Tool, ReverseNX-RT, and Status Monitor in conjunction with NX-FPS, UnityGraphics, and several Smash mods.
This is a based on shinyquagsire23's SaltyNX witg includes many QoL improvements and beside plugins support also supports patches.
Installation
How to install:
- Atmosphere >=0.10.1 - Put folders from archive to root of your sdcard.
- Atmosphere <=0.9.4 and any other CFW - Rename
contents
folder totitles
. - SX OS - Remember to rename
atmosphere
folder tosxos
. - Remember to restart Switch.
No technical support for:
- Atmosphere forks.
- SX OS.
- Kosmos.
- ReinX.
User guide
Patches pattern
- Filename is symbol of function with filetype
.asm64
. - Inside file write with hex editor instructions that you want to overwrite for this function.
- Put this file either to
SaltySD/patches
to make it work for every game, or toSaltySD/patches/*titleid*
to make it work for specific game.
For additional functions you need SaltyNX-Tool.
Plugin examples
Plugin source code examples:
- https://github.com/masagrator/NX-FPS/blob/master/source/main.cpp
- https://github.com/masagrator/ReverseNX-RT/blob/master/Plugin/source/main.cpp
- https://github.com/masagrator/UnityGraphics/tree/master/Plugin/source
List of titles not compatible with plugins/patches
Title | plugins/all | Why? |
---|---|---|
Alien: Isolation | plugins | Heap related |
Azure Striker Gunvolt: Striker Pack | all | 32-bit game, not supported |
Baldur's Gate and Baldur's Gate II: Enhanced Editions | all | 32-bit game, not supported |
DEADLY PREMONITION Origins | all | 32-bit game, not supported |
Dies irae Amantes amentes For Nintendo Switch | all | 32-bit game, not supported |
Goat Simulator | all | 32-bit game, not supported |
Grandia Collection | all | Only launcher is 64-bit, games are 32-bit |
Grid: Autosport | plugins | Heap related |
Immortals Fenyx Rising | plugins | Heap related |
LIMBO | all | 32-bit game, not supported |
Luigi's Mansion 3 | plugins | Heap related |
Mario Kart 8 | all | 32-bit game, not supported |
Mario Strikers: Battle League | plugins | Heap related |
Megadimension Neptunia VII | all | 32-bit game, not supported |
Moero Chronicle Hyper | all | 32-bit game, not supported |
Moero Crystal H | all | 32-bit game, not supported |
Monster Hunter Generations Ultimate | all | 32-bit game, not supported |
New Super Mario Bros. U Deluxe | all | 32-bit game, not supported |
Ni no Kuni: Wrath of the White Witch | all | 32-bit game, not supported |
Olympic Games Tokyo 2020 – The Official Video Game™ | plugins | Heap related |
Pikmin 3 Deluxe | all | 32-bit game, not supported |
Planescape: Torment and Icewind Dale | all | 32-bit game, not supported |
Stubbs the Zombie in Rebel Without a Pulse | all | heap related |
Sherlock Holmes and The Hound of The Baskervilles | all | 32-bit game, not supported |
Tokyo Mirage Session #FE Encore | all | 32-bit game, not supported |
Valkyria Chronicles | all | 32-bit game, not supported |
Witcher 3 GOTY (version 3.2) | all | heap related |
World of Goo | all | 32-bit game, not supported |
YouTube | plugins | Unknown |
Titles other than 32-bit are added to exceptions.txt which is treated as Black list, you can find it in root of repo. SaltyNX reads it from SaltySD folder. X
at the beginning of titleid means that this game will not load any patches and plugins.
32-bit games are ignored by default for patches and plugins.
Compatibility
Tests were done on FW 7.0.1-16.0.0 with Atmosphere up to 1.5.0.
Known issues
- Instability with some homebrews and sysmodules (like emuiibo),
- You need to have at least Hekate 5.0.2 if you don't want issues related to Hekate,
- 32 bit games are unsupported,
- Cheats using directly heap addresses may not work properly while using plugins,
Changelog
0.5.2
- Fix RTLD detection for getBID() in older games like LA Noire.
0.5.1
- Add function SaltySD_GetBID() to use with plugins to retrieve buildID of running game
- Fix bug that was causing SharedMemory to not clean up upon detection of game that is 32-bit or in exceptions.txt (fixes bug in homebrew reading SharedMemory, f.e. Status Monitor Overlay, FPSLocker and ReverseNX-RT). Thanks to ~cucholix for finding this bug and testing fix.
0.5.0
- Add SharedMemory 4096B block to use with plugins.
- SaltyNX is reserving 4096 byte block to use with any app. Default purpose is to allow exchanging data in real time between homebrew and plugins without using dmnt:cht/svcDebug
0.4.0a-hotfix
- Fixed sm compability issues with Atmosphere 0.19.0+
- Thanks to SciresM for providing this fix - 2e0bd1d!
0.4.0a
- Resolves issue with nonconsistent heap reserving.
- FIFA 18-21 and Darksiders 2 are now working properly.
- EDIT: It doesn't work correctly with M.16.2 (0.16.2 EXPERIMENTAL). Works on standard 0.16.2
0.3.2a
- Fix loading plugins from titleid folders ef8ff67
It should now fix bug introduced from 0.3.0a with crashing plugins in Smash Bros and other games while using title specific plugins
- include another exception - abort loading plugins if:
titleid & 0x1F00 != 0
0.3.1a
- Fixed rare case of crashing game when trying to load hbloader in title replacement mode by disabling bootstrap in this case
- 2MB fix reverted, as this was crashing Zelda BoTW
0.3.0a
- Add support for patches (more in readme)
- Thanks to this it's possible to omit crashes with code injection if it doesn't need heap to work.
0.2.1a
- Reduced RAM usage by 320kB.
0.2a
- Ditched Spawner
- Rewrited Proc to be independent and now it's booted directly from CFW as sysmodule
- Thanks to this I could lower memory usage by 60 kB
- Added option to disable log writing (writing is enabled by default)
- Added toolbox.json to bring correct support for sysmodules managers
- Because of ditching Spawner, KIP is not possible to use anymore. That's why we have now only one package using exefs.
- saltysd_proc.elf from SaltySD folder is not used anymore, you can delete it.
0.2
- Update solving compability issues with FW 10.0.0 for people using NSP.zip
- Issue is not existing for KIP, so you don't need to update anything if you are using it (appstore is using NSP.zip)
- Delete folder 0100000000534C56 from contents/titles before updating.
0.1a 0.1.2a
- Implement hack to resolve issues with cheats in Atmosphere.
0.1.1a
- Now aborting bootstrapping if titleid is higher than 0x01FFFFFFFFFFE000.
0.1a
- First Release.