nx2/ Recompilation statique et AArch64 LifterAOT Lifter | nx2/lift.py, nx2/insn.py, nx2/nso2.py, nx2/image.py | Python 3 (Capstone, Unicorn 2.1, LZ4, Zstandard)mkw-recomp (7336f0a) + Rexcomp a64-kit | work/sa/gen/*.c (~1.4 GB répartis sur 57 blocs C, 294 450 fonctions) | Charge les modules Switch 2 NSO à l'adresse 0x80000000 avec les réadressages DT_RELR, résout les tables de saut (1 475 tables) et traduit 17 668 191 instructions ARMv8.2+ (y compris UDOT) en C. |
Extracteur de dump nx2/nup.py et nx2/unpack.pyIngestion du dump | nx2/nup.py, nx2/unpack.py, nx2/dump.py, third_party/zbic | Python 3 + C (décodeur Atmosphere ZBIC)Hookshot / mkw-recomp | work/dump/exefs + work/dump/romfs (26.2 GB extraits) | Valide les sept signatures d'intégrité du dump Switch 2 pour 0400486024DEC000 v131072, extrait les archives .nup et décompresse les binaires NSO main encodés en ZBIC du firmware 22.0.0+. |
Compilateur nx2/build.py et nx2/make_game.py Native DriverBuild et Link System | nx2/build.py, nx2/make_game.py, nx2/split_hot.py, nx2/pgo_pieces.py | Python 3 + Clang / LLD (llvm-mingw ucrt-x86_64)mkw-recomp + pipeline PGO split_hot Hookshot | hookshot.exe (426 MB) / hookshot + image.bin | Répartit le code dynamique généré sur 8 unités de traduction parallèles, applique les profils de branchement LLVM format brut 11 PGO, compile les blocs froids en -O1 et les blocs chauds en -O2, puis édite les liens de l'exécutable natif. |
Native host/ Horizon OS et HLE d'exécution SDK 22.2.8Exécution OS et services | host/hos_main.c, host/hos_setjmp.c, host/nn_hid.c, host/nn_applet.c, host/posix/ | C11 / Win32 et POSIX Threads / Assemblyhos/ TOTKPort adapté via mkw-recomp | Lié directement dans hookshot.exe / hookshot | Remplace les limites 485 nn:: SDK au moment de l'exécution, réserve un espace d'adressage virtuel invité de 512 GB, mappe les fibres nn::os sur des fibres natives et gère le système de fichiers, l'audio (libopus) ainsi que les manettes HID. |
Enregistreur de commandes host/nvn_native.c NVN2 (API 231.40)Front-end API graphique | host/nvn_native.c, host/nvn2.c, gpu/render/rx_nvn.h | C11Couche mkw-recomp NVN2 | Flux d'opérations NVN2 en mémoire pour gpu/vk/ | Implémente les routines API 231.40 de Switch 2 NVN2 directement sur la mémoire invitée, capture les pools de mémoire à la soumission et transmet les tampons de commandes au backend Vulkan. |
Backend gpu/vk/ Vulkan 1.3 et Engine Queue ReplayVulkan 1.3 Renderer | gpu/vk/vk_main.cpp, gpu/vk/vk_replay.cpp, gpu/vk/vk_memory.cpp, gpu/vk/vk_draw.cpp, gpu/vk/vk_coopmat.cpp | C++20 (Vulkan 1.3, VMA, Dear ImGui)mkw-recomp gpu/vk + correctifs Hookshot OoT | hookshot_vk.dll (Windows) / hookshot_vk.so (Linux) | Rejoue les flux de commandes NVN2 sous Vulkan 1.3 avec VK_EXT_mesh_shader, applique la synchronisation inter-files WaitEvent, exécute les matrices coopératives HMMA f16 pour l'upscaling vidéo/TAAU et gère les miroirs de pools VRAM avec diff en réécriture. |
Abaissment gpu/vk/eden/ Ampere SM86 vers Maxwell et Recompiler SPIR-VShader Recompiler | gpu/vk/eden/, lower_to_maxwell.h, structured_control_flow.cpp | C++20 (recompilateur de shaders Eden + sirit)Eden (build Eglantine 181) + correctifs de flux de contrôle Lichii | hookshot_programs.bin, hookshot_programs.idx, hookshot_pipelines.bin | Convertit 10 154 shaders SASS (SM86) Ampere Nin_Ounce_NVN2 de Switch 2 (dont les programmes vertex/mesh à 249 registres REGMAP_nx2 et les shaders de tâches) vers la RI Maxwell, puis génère le Vulkan SPIR-V. |
Technologies d'upscaling gpu/vk/vk_dlss.cpp NVIDIA DLSS et intégrée AMD FSR 3.1Mise à l'échelle temporelle et génération d'images | gpu/vk/vk_dlss.cpp, gpu/vk/vk_menu.cpp | C++20 (NVIDIA NGX SDK 310.9.16, AMD FidelityFX SDK 1.1.4)Intégration native Hookshot | FSR 3.1 intégré + chargeur dynamique nvngx_dlss.dll | Intercepte le jitter de résolution dynamique, les vecteurs de mouvement et les tampons de profondeur d'OoT pour piloter le FSR 3.1 AMD intégré sur tous les GPU ou l'upscaling optionnel NVIDIA DLSS Super Resolution (préréglages Transformer K/M/L) lorsque nvngx_dlss.dll est présent. |
GUI Hookshot builder/ Builder (WPF Windows et AppImage Linux)Launcher pour les joueurs et UI Builder | builder/HookshotBuilder.sln, scripts/linux/appimage.sh | C# (.NET 8 WPF sous Windows) / Shell et Python sous LinuxGénérateur officiel Hookshot | HookshotBuilder.exe / Hookshot-x86_64.AppImage | Vérifie les dumps .nup ou romfs+exefs fournis par l'utilisateur, orchestre la compilation C locale unique de 10 à 45 minutes sans distribuer de ressources protégées par le droit d'auteur, et offre les commandes Jouer/Update. |
Outil de transfert de sauvegardes, profileurs et suite de non-régression scripts/ et tests/Outillage et vérification | scripts/oot_saves.py, scripts/prof.py, scripts/framelog.py, tests/run_all.py | Python 3 et PowerShellOutils officiels Hookshot | oot-save-backups/, contrôle de non-régression CI sans données de jeu | Assure la migration bidirectionnelle des sauvegardes entre Hookshot et les émulateurs Switch 2 (Lichii, Eglantine, Orchid, NX2navi), l'échantillonnage de la pile à 1 ms et les tests de non-régression de code source sans données propriétaires. |