summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2026-02-26 21:55:35 +0000
committerLéo Lam <leo@leolam.fr>2026-02-26 21:55:52 +0000
commit5151dfa69adc38a6a9bf3e8a5aa3eb4d077c233b (patch)
treefc55c94821eee3c793e53fee145ade5f82c265d2
parent8e588c214e1e0f68597a598f2d2330426b6bc58d (diff)
tools/setup: add support for v1.9.0 NSO
v1.9.0 is now the latest Switch version.
-rwxr-xr-xtools/setup.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/tools/setup.py b/tools/setup.py
index a7837103..9526baba 100755
--- a/tools/setup.py
+++ b/tools/setup.py
@@ -14,16 +14,16 @@ TARGET_PATH = setup.get_target_path()
TARGET_ELF_PATH = setup.get_target_elf_path()
-def _download_v181_to_v150_patch(dest: Path):
+def _download_latest_to_v150_patch(dest: Path):
print(">>>> downloading patch...")
- urllib.request.urlretrieve("https://s.botw.link/v150_downgrade/v181_to_v150.patch", dest)
+ urllib.request.urlretrieve("https://s.botw.link/v150_downgrade/v190_to_v150.patch", dest)
def prepare_executable(original_nso: Optional[Path]):
COMPRESSED_V150_HASH = "898dc199301f7c419be5144bb5cb27e2fc346e22b27345ba3fb40c0060c2baf8"
UNCOMPRESSED_V150_HASH = "d9fa308d0ee7c0ab081c66d987523385e1afe06f66731bbfa32628438521c106"
- COMPRESSED_V181_HASH = "92a2ff88205a00ba3eaaf7c1cd3e247220c93eafefa48d7b7b1d6b97e444bb5e"
- UNCOMPRESSED_V181_HASH = "efccff3dd89599f54d7889e339b240565ad4a21c6478a7264808b702a7d264c4"
+ COMPRESSED_V190_HASH = "f6f0b20bb1f2b67d164c24871cd473147eef1d285f12e7bd492e3126c6022e27"
+ UNCOMPRESSED_V190_HASH = "6a30c162a2e6f885e0b1c0a6673a84795549a5ccdec1de8d3a741168ac4cba86"
# The uncompressed v1.5.0 main NSO.
TARGET_HASH = UNCOMPRESSED_V150_HASH
@@ -49,23 +49,23 @@ def prepare_executable(original_nso: Optional[Path]):
print(">>> found compressed 1.5.0 NSO")
setup._decompress_nso(original_nso, TARGET_PATH)
- elif nso_hash == UNCOMPRESSED_V181_HASH:
- print(">>> found uncompressed 1.8.1 NSO")
+ elif nso_hash == UNCOMPRESSED_V190_HASH:
+ print(">>> found uncompressed 1.9.0 NSO")
with tempfile.TemporaryDirectory() as tmpdir:
patch_path = Path(tmpdir) / "patch"
- _download_v181_to_v150_patch(patch_path)
+ _download_latest_to_v150_patch(patch_path)
setup._apply_xdelta3_patch(original_nso, patch_path, TARGET_PATH)
- elif nso_hash == COMPRESSED_V181_HASH:
- print(">>> found compressed 1.8.1 NSO")
+ elif nso_hash == COMPRESSED_V190_HASH:
+ print(">>> found compressed 1.9.0 NSO")
with tempfile.TemporaryDirectory() as tmpdir:
patch_path = Path(tmpdir) / "patch"
- decompressed_nso_path = Path(tmpdir) / "v181.nso"
+ decompressed_nso_path = Path(tmpdir) / "v190.nso"
setup._decompress_nso(original_nso, decompressed_nso_path)
- _download_v181_to_v150_patch(patch_path)
+ _download_latest_to_v150_patch(patch_path)
setup._apply_xdelta3_patch(decompressed_nso_path, patch_path, TARGET_PATH)
else:
@@ -97,7 +97,7 @@ def main():
parser = argparse.ArgumentParser(
"setup.py", description="Set up the Breath of the Wild decompilation project")
parser.add_argument("original_nso", type=Path,
- help="Path to the original NSO (1.5.0 or 1.8.1, compressed or not)", nargs="?")
+ help="Path to the original NSO (1.5.0 or 1.9.0, compressed or not)", nargs="?")
args = parser.parse_args()
setup.install_viking()