This updater unlocks your ability of updating most of the ASM cheats for Nintendo Switch.
Table of Contents
- Quick Start Guide
- Building from Source
- Trouble Shooting
Now supports (same logic with code makers updating their codes like AOB from Cheat Engine):
- Upgrade or degrade cheat codes
- Update game cheat codes to other locales (if they don't rewrite the game code, then yes)
- Search the whole main file for code features
- Update normal ASM/code cave codes
- Skip page/pageoff codes
- Recognize branch codes and modify their pointer
- Auto fill cheat bids when saving .txt file
- Self-adapting inner parameters
- ASM code display
- Output address sync with ASM code display
- Save modified .NSO file base on cheats
- Updating codes in .rodata or somewhere else (aka. high probability breaking the new game
Quick Start Guide
- Windows 10 (
✔️), Windows 7 ( ❌if ver < 0.2), Mac/Linux ( ❓: rebuild required (thx to Amuyea))
- No python environment required
Dump main file from xci/nsp/nsz game/updates
- Old Main File: dump from the game which old cheat runs on
- New main File: dump from the game which you want to update the old cheat to
Load main file and copy cheat codes
Build ID of the old main file will be shown after loading. Please make sure it is the same with the old cheat.
Interactively updating the cheat codes
Logs window has everything you need when updating cheat codes.
- Generate: Generate one code or title
- Skip: Skip one code or title, especially for pointer cheats.
- Undo: Undo the last operation.
- Restart: Restart the whole process.
- Wing Length: Decide how many asm code lines are extracted as code features before and after the target address. Supported input type like array [left_side, right_side] and integer "single_input" are listed below:
|Type||Left Side||Right Side||Support Single Input|
|Normal ASM code||feature lines before ASM address||feature lines after ASM address||
|Branch to code cave||feature lines before bl address||feature lines after bl address||
|Branch with target address||wing length for bl address||wing length for bl target address||
- Regenerate: Useful when logs window show "address not found". Please change wing length and regenerate until single hit, or maybe double.
- Debug: Generate a debug folder with procedure files to show you what happend during the whole progress.
Save cheat codes with "SaveCHT" button
Building from Source
Pre-Requisites For Build
- Python 3.9
- Packages in requirements.txt
- upx (if bundling to one file need)
- Spec file for pyinstaller (refer here for more info)
Hints For Pre-Requisites
- Choose any python version lower than 3.9 will unleash the support of Windows 7, but not tested. Please use at your own risk.
- There is a main.spec template in project root directory, please change demanded parameters before use.
Usage For Build
Install Python and upx
- Don't forget to add environment variables.
Download source code
Use any command shell you familar with to install support packages
cd your_source_code_root_dir py -3.9 -m pip install -r requirements.txt
Run the project
py -3.9 __main__.py
OR build the project
pyinstaller -F -w your_spec_name.spec --upx-dir your_upx_dir
Why my new codes doesn't work?
Why my new codes break the game?
A: Game developer will make a huge change for some specific version of games, like adding new function or improving code efficiency. In these cases, the ASM cheat codes need to be refind.
Why this application repeating same title over and over again?
A: It happened when capstone in the application failed to recognize bytes features. Here are some major reasons: zero gap in bytes file fail to work in capstone (fixed), nsnsotool decompressing command failed (fixed), application folder structure destroyed, cheat codes BID different from old main file. Please re-download this application or create an issue.
Interactive ASM Cheats Updater is based on
b.) nsnsotool: This tiny program helps a lot on transforming nso files, made by 0CBH0.
Also thanks to:
All cheat makers that sparing no effort in writing and updating cheat codes, you ARE the true heros!
All the helpers for bringing this project to life!
Refer the LICENSE file for more details.