nx2/ Recompilação estática e 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 em 57 blocos de C, 294.450 funções) | Carrega módulos de Switch 2 NSO em 0x80000000 com realocações DT_RELR, resolve tabelas de desvio (1.475 tabelas) e traduz 17.668.191 instruções de ARMv8.2+ (incluindo UDOT) para C. |
Extrator de dumps do nx2/nup.py e nx2/unpack.pyIngestão de dumps | nx2/nup.py, nx2/unpack.py, nx2/dump.py, third_party/zbic | Python 3 + C (decodificador Atmosphere ZBIC)Hookshot / mkw-recomp | work/dump/exefs + work/dump/romfs (26.2 GB extraídos) | Valida os sete sinais de integridade do dump do Switch 2 para 0400486024DEC000 v131072, extrai arquivos .nup e descompacta os binários principais NSO codificados em ZBIC do firmware 22.0.0+. |
nx2/build.py e Driver do compilador de nx2/make_game.py NativeBuild e 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 de PGO split_hot do Hookshot | hookshot.exe (426 MB) / hookshot + image.bin | Divide o código ativo convertido entre 8 unidades de compilação paralelas, aplica perfis de desvio PGO brutos no formato 11 da LLVM, compila trechos secundários com -O1 e trechos críticos com -O2, gerando o executável nativo. |
host/ Native Horizon OS e Runtime HLE SDK 22.2.8Execução de SO e serviços | host/hos_main.c, host/hos_setjmp.c, host/nn_hid.c, host/nn_applet.c, host/posix/ | C11 / Win32 e POSIX Threads / AssemblyTOTKPort hos/ adaptado via mkw-recomp | Vinculado diretamente ao hookshot.exe / hookshot | Substitui os limites da 485 nn:: SDK em tempo de execução, reserva um espaço de endereçamento virtual guest de 512 GB, mapeia fibras nn::os em fibras nativas e gerencia sistema de arquivos, áudio (libopus) e controles HID. |
Gravador de comandos host/nvn_native.c NVN2 (API 231.40)Front-end gráfico do API | host/nvn_native.c, host/nvn2.c, gpu/render/rx_nvn.h | C11Camada mkw-recomp NVN2 | Fluxo de operações de NVN2 em memória para gpu/vk/ | Implementa rotinas do Switch 2 NVN2 API 231.40 diretamente sobre a memória convidada, faz a captura de pools de memória no envio e transmite buffers de comando para o backend Vulkan. |
Backend gpu/vk/ Vulkan 1.3 e Queue Replay EngineVulkan 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 + correções de OoT Hookshot | hookshot_vk.dll (Windows) / hookshot_vk.so (Linux) | Reproduz fluxos de comando do NVN2 em Vulkan 1.3 com VK_EXT_mesh_shader, sincroniza WaitEvent entre filas, processa matrizes cooperativas HMMA f16 para upscaling de TAAU/cinemáticas e gerencia réplicas de pools VRAM com write-back diffing. |
Lowering de SM86 para Maxwell do gpu/vk/eden/ Ampere e SPIR-V RecompilerShader Recompiler | gpu/vk/eden/, lower_to_maxwell.h, structured_control_flow.cpp | C++20 (recompilador de shader Eden + sirit)Eden (Eglantine build 181) + correções de fluxo de controle Lichii | hookshot_programs.bin, hookshot_programs.idx, hookshot_pipelines.bin | Converte 10.154 shaders SASS (SM86) Nin_Ounce_NVN2 Ampere do Switch 2 (incluindo programas de vértice/mesh REGMAP_nx2 de 249 GPRs e task shaders) para Maxwell IR e gera código Vulkan SPIR-V. |
Upscalers integrados para gpu/vk/vk_dlss.cpp NVIDIA DLSS e AMD FSR 3.1Upscaling temporal e geração de quadros | gpu/vk/vk_dlss.cpp, gpu/vk/vk_menu.cpp | C++20 (NVIDIA NGX SDK 310.9.16, AMD FidelityFX SDK 1.1.4)Integração nativa no Hookshot | FSR 3.1 integrado + carregador dinâmico de nvngx_dlss.dll | Intercepta o jitter de resolução dinâmica, vetores de movimento e buffers de profundidade do OoT para acionar o AMD FSR 3.1 integrado em todas as GPUs ou o NVIDIA DLSS Super Resolution opcional (predefinições Transformer K/M/L) quando nvngx_dlss.dll estiver presente. |
Builder GUI do builder/ Hookshot (WPF Windows e AppImage Linux)Launcher do jogador e Builder UI | builder/HookshotBuilder.sln, scripts/linux/appimage.sh | C# (.NET 8 WPF no Windows) / Shell e Python no LinuxConstrutor proprietário do Hookshot | HookshotBuilder.exe / Hookshot-x86_64.AppImage | Verifica os dumps .nup ou romfs+exefs fornecidos pelo usuário, orquestra a compilação local de C em 10 a 45 minutos (executada uma única vez) sem distribuir arquivos protegidos por direitos autorais e oferece controles de Jogar/Update. |
Utilitário de transferência de saves, analisadores e testes de regressão do scripts/ e tests/Ferramentas e validação | scripts/oot_saves.py, scripts/prof.py, scripts/framelog.py, tests/run_all.py | Python 3 e PowerShellFerramentas originais do Hookshot | oot-save-backups/, validação de regressão em CI sem arquivos do jogo | Oferece migração bidirecional de saves entre o Hookshot e emuladores do Switch 2 (Lichii, Eglantine, Orchid, NX2navi), análise de amostragem de pilha de 1 ms e testes de regressão de código-fonte independentes dos dados do jogo. |