nx2/ 정적 재컴파일 및 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 (57개 C 청크에 걸친 약 1.4 GB, 294,450개 함수) | Switch 2 NSO 모듈을 DT_RELR 재배치와 함께 0x80000000에 로드하고, 점프 테이블(1,475개 테이블)을 분석하며, 17,668,191개의 ARMv8.2+ 명령(UDOT 포함)을 C로 번역합니다. |
nx2/nup.py 및 nx2/unpack.py 덤프 추출기덤프 인제스천 | nx2/nup.py, nx2/unpack.py, nx2/dump.py, third_party/zbic | Python 3 + C (Atmosphere ZBIC 디코더)Hookshot / mkw-recomp | work/dump/exefs + work/dump/romfs (26.2 GB 추출됨) | 0400486024DEC000 v131072에 대한 7가지 Switch 2 덤프 신호를 검증하고, .nup 아카이브를 추출하며, 펌웨어 22.0.0+ ZBIC 인코딩된 main NSO 바이너리의 압축을 풉니다. |
nx2/build.py 및 nx2/make_game.py Native 컴파일러 DriverBuild 및 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 + Hookshot split_hot PGO 파이프라인 | hookshot.exe (426 MB) / hookshot + image.bin | 핫 리프팅 코드를 8개의 병렬 번역 단위로 분할하고, LLVM 원시 포맷 11 PGO 분기 프로파일을 적용하며, 콜드 청크는 -O1, 핫 청크는 -O2로 컴파일하여 네이티브 실행 파일을 링크합니다. |
host/ Native Horizon OS 및 SDK 22.2.8 HLE 런타임OS 및 서비스 런타임 | host/hos_main.c, host/hos_setjmp.c, host/nn_hid.c, host/nn_applet.c, host/posix/ | C11 / Win32 및 POSIX Threads / Assemblymkw-recomp를 통해 변형된 TOTKPort hos/ | hookshot.exe / hookshot 내에 직접 링크됨 | 런타임에 485 nn:: SDK 경계를 대체하고, 512 GB 게스트 가상 주소 공간을 예약하며, nn::os 파이버를 네이티브 파이버에 매핑하고 파일 시스템, 오디오(libopus) 및 HID 컨트롤러를 처리합니다. |
host/nvn_native.c NVN2 (API 231.40) 커맨드 레코더그래픽 API 프론트엔드 | host/nvn_native.c, host/nvn2.c, gpu/render/rx_nvn.h | C11mkw-recomp NVN2 레이어 | gpu/vk/용 인메모리 NVN2 op 스트림 | 게스트 메모리 상에서 직접 Switch 2 NVN2 API 231.40 프로시저를 구현하고, 제출 시점에 메모리 풀을 캡처하며, 커맨드 버퍼 제출을 Vulkan 백엔드로 스트리밍합니다. |
gpu/vk/ Vulkan 1.3 Backend 및 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 + Hookshot OoT 수정 사항 | hookshot_vk.dll (Windows) / hookshot_vk.so (Linux) | VK_EXT_mesh_shader와 함께 Vulkan 1.3에서 NVN2 커맨드 스트림을 재생하고, 큐 간 WaitEvent 동기화를 처리하며, TAAU/영상 업스케일링을 위한 HMMA f16 코오퍼레이티브 매트릭스를 실행하고, 라이트백 diff 기능을 통해 VRAM 풀 미러를 관리합니다. |
gpu/vk/eden/ Ampere SM86-to-Maxwell 낮추기 및 SPIR-V RecompilerShader Recompiler | gpu/vk/eden/, lower_to_maxwell.h, structured_control_flow.cpp | C++20 (Eden 셰이더 재컴파일러 + sirit)Eden (Eglantine 빌드 181) + Lichii 제어 흐름 수정 | hookshot_programs.bin, hookshot_programs.idx, hookshot_pipelines.bin | 10,154개의 Switch 2 Nin_Ounce_NVN2 Ampere SASS(SM86) 셰이더(249-GPR REGMAP_nx2 버텍스/메시 프로그램 및 태스크 셰이더 포함)를 Maxwell IR로 로어링하고 Vulkan SPIR-V를 생성합니다. |
gpu/vk/vk_dlss.cpp NVIDIA DLSS 및 내장 AMD FSR 3.1 업스케일러템포럴 업스케일링 및 프레임 생성 | gpu/vk/vk_dlss.cpp, gpu/vk/vk_menu.cpp | C++20 (NVIDIA NGX SDK 310.9.16, AMD FidelityFX SDK 1.1.4)Hookshot 네이티브 연동 | 내장 FSR 3.1 + 런타임 nvngx_dlss.dll 로더 | OoT의 동적 해상도 지터, 모션 벡터 및 뎁스 버퍼를 가로채 모든 GPU에서 기본 내장된 AMD FSR 3.1을 구동하거나, nvngx_dlss.dll이 감지될 때 선택적 NVIDIA DLSS 초해상도(트랜스포머 프리셋 K/M/L)를 구동합니다. |
builder/ Hookshot Builder GUI (Windows WPF 및 Linux AppImage)플레이어 Launcher 및 Builder UI | builder/HookshotBuilder.sln, scripts/linux/appimage.sh | C# (Windows 기반 .NET 8 WPF) / Linux 기반 셸 및 PythonHookshot 자체 제작(퍼스트 파티) 빌더 | HookshotBuilder.exe / Hookshot-x86_64.AppImage | 사용자가 제공한 .nup 또는 romfs+exefs 덤프를 검증하고, 저작권 자산을 포함하지 않은 채 10~45분 소요되는 최초 1회 로컬 C 빌드를 조율하며, 실행/Update 컨트롤을 제공합니다. |
scripts/ 및 tests/ 세이브 변환 유틸리티, 프로파일러 및 회귀 테스트 스위트도구 및 검증 | scripts/oot_saves.py, scripts/prof.py, scripts/framelog.py, tests/run_all.py | Python 3 및 PowerShellHookshot 자체 제작(퍼스트 파티) 툴링 | oot-save-backups/, CI 게임 파일 미포함 회귀 게이트 | Hookshot와 Switch 2 에뮬레이터(Lichii, Eglantine, Orchid, NX2navi) 간의 양방향 세이브 이전, 1 ms 스택 샘플링 분석, 게임 파일이 필요 없는 소스 회귀 테스트를 제공합니다. |