6 Commits
Author SHA1 Message Date
Valiantsin DzerakhandClaude Opus 5.5 2125ad6eea Extract the RomFS again when its index on disk cannot be read
A 0.2.8 install's romfs/index.json had two flipped bytes, and the update stopped with an unexpected JSONDecodeError
instead of extracting again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:08:05 +03:00
Wellington Dias 1d51343ac1 Build and run the runtime natively on Linux.
Shared runtime code now goes through runtime/platform/platform.h, implemented by platform/win32.c and a new
platform/linux.c: futex locks, a userfaultfd and PAGEMAP_SCAN write watch, signal-based async preemption, our own
fiber switch, and a SIGSEGV handler for the thaw and crash hooks. The window, input, menu and software keyboard get
SDL3 back ends beside the Win32 ones, with the swapchain (gfx_present.c) and input merging (input.c) shared. SHA-256
replaces BCrypt, ELF builds get their own override sections, and the build tools gain Linux branches.

On Linux the selftest and the gfx-abi, astc, nvn and window probes pass. probe-vkmem still fails: imported guest
memory cannot be write-watched on Linux, which the shadow buffers in vk_memory.c will address.
2026-10-29 16:56:56 -03:00
Valiantsin DzerakhandClaude Opus 5.5 1820a83f30 Say which game file is damaged when its hashes fail
The ExeFS and RomFS extractors report a failed block hash or a short read as an opaque script failure, and a failed
hactool merge as a generic error. extract.DamagedFile now names the file; a merge whose hash checks fail runs hactool
on the base Program NCA alone to tell the base game from the update. The installer shows check.input_damaged: the file
is damaged or incomplete and should be copied again. hactool output is decoded and its log written as UTF-8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:35:40 +03:00
Valiantsin DzerakhandClaude Opus 5.5 0431b62683 Add the installer core: the six setup steps, JSON progress events, totk-install.json resume and update, and explicit paths in the extract, build and shader tools
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 08:25:14 +03:00
Valiantsin DzerakhandClaude Opus 5.5 e4e397d28c Run the vendored extract scripts through a stub that adds their directory to sys.path, and read the shader list from tools/data when present
The embeddable Python ignores the script directory on sys.path, so extract_romfs.py failed to import extract_exefs. prepare_shaders.py no longer needs git or refs/ when tools/data/shader_list.tsv exists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 07:53:12 +03:00
Valiantsin DzerakhandClaude Opus 5.5 19c9b648d1 Add the recompiler, Windows runtime, tools and docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:27:54 +03:00