Status
Nx86 has 57 development phases present locally (Phase 0 through Phase 56). The compiler pipeline, runtime, memory system, threading skeleton, FP and SIMD support, simple homebrew path, HLE service skeletons, input runtime, guest IPC/audio skeleton, Vulkan backend skeleton, shader translation skeleton, shader AOT, pipeline cache infrastructure, graphics profile feedback, title behavior patches, guarded speculative optimization, official title profiles, a profile export sanitizer, and GUI shell are in place. The project cannot run real Switch games yet.
Now
Pipeline and native runtime
- Synthetic ARM64 programs travel the full compiler pipeline: decode, lift to NxIR, optimize, verify, lower to x86_64-v4, package as .nxo.
- NxIR exists as a typed SSA intermediate representation with a verifier and dead-flag elimination.
- Multi-block native execution through a dispatcher with guest PC lookup and block exit handling.
- Emergency JIT compiles missing blocks on the fly and adds them to the cache.
- Block chaining with guarded native exits and W^X patching.
- Hot/cold block splitting: profile-guided native block layout without changing dispatcher keys.
- Native coverage reports functional, static, executed, fastmem, and slowmem penalty metrics in the GUI.
Memory, CPU features, and threading
- Fastmem: direct guest memory access through a 64 GiB mmap arena with checked fallback.
- Slowmem: fallback load/store helpers with counters, fault reporting, and coverage penalties.
- Memory mirroring with release/debug mode support.
- Self-modifying code detection: page generation tracking, SIGSEGV signal handler (Linux), dispatcher eviction, and page re-protection.
- Atomics v0: exclusive monitor, LDXR/STXR decode and execution, LDAR/STLR acquire/release semantics.
- Barrier semantics v0: DMB, DSB, and ISB decode, lift into NxIR, and interpreter/evaluator execution.
- Guest threading v0 with thread state isolation, scheduler host-thread and fiber modes, and bounded replay logs.
- Floating-point scalar: FMOV, FADD, FSUB, FMUL, FDIV, FCMP over f64 in interpreter and evaluator.
- SIMD/NEON v0: 128-bit vector registers, v.2d integer and FP add through interpreter, evaluator, and native backend.
- Advanced vector lowering: packed XMM native ops (paddq, addpd, pcmpeqq, pshufd) with AVX-512 mask support.
Homebrew, services, and graphics
- Simple homebrew boot path using Nx86-owned .nxhb.toml descriptors, metadata, code/data/stack mapping, and entrypoint handling.
- HLE service skeleton maps svc #0 through svc #4 to deterministic filesystem, thread, memory, and input outcomes.
- Input runtime exposes keyboard, gamepad, and injected test snapshots to homebrew-visible controller state.
- Guest IPC v0 supports service names, sessions, domains, object handles, result codes, handle transfers, and command/response buffers.
- Audio runtime skeleton can accept interleaved stereo f32 PCM from a guest IPC audio command buffer.
- Vulkan backend skeleton can detect/load Vulkan, create a device where available, render an offscreen frame, and surface the rendered-frame path to the GUI.
- Shader translation skeleton models shader metadata and source hashes, creates deterministic placeholder translations, stores .nxshader cache objects, and adds synthetic shader inputs.
- Shader AOT compiles a title's whole shader set during initial compile, caches .nxshader objects, uses shared profile hints, and reports shader readiness as a Native Coverage axis.
- Native Coverage uses a three-axis min-gate (CPU, shader, pipeline) so the weakest axis caps the combined headline.
- Vulkan pipeline cache infrastructure: PipelineCacheBlob with atomic save/load, PipelineProfileHints, PipelineKey hashing, and a pipeline miss log.
- Graphics profile feedback: runtime shader and pipeline usage events are logged, aggregated, and promoted into hints that feed the next compile/rebuild cycle.
Compatibility and speculative optimization
- Title behavior patch system: typed compatibility metadata that can drive executable runtime behavior, including required and undisableable built-in patches with resolver reporting.
- GSO v0 (guarded speculative optimization): a versioned guard-profile format built from monomorphic branch-target observations, with manual local overrides and native x86_64-v4 guard lowering for terminal SUBS comparisons.
- Official title profiles: a registry bundling a title's behavior patches and GSO profile, matched by title ID and a non-cryptographic content hash, with human-readable compatibility notes.
- Profile sanitizer: an export gate that strips personal paths from free-text fields and rejects embedded-blob-like content before any local title profile can be shared, with local GSO overrides structurally excluded from the shareable form.
Tooling and tests
- Cache manager with .nxo integrity checking, manifest, and atomic writes.
- Runtime profiling: versioned JSONL profiles with typed events, crash-tail recovery, and file locking.
- Profile-guided rebuild promotes JIT-discovered blocks to AOT objects.
- CFG recovery via recursive-descent traversal.
- Guard and deopt metadata for future speculative optimization.
- Inspector with disassembly, CFG, NxIR dump, and native mapping views.
- GUI shell with Library, Compile, Tests, Settings, Inspector, Scheduler, and input configuration screens (egui, Linux).
- 399 unit tests pass across the compiler, runtime, VMM, scheduler, services, input, audio, GUI, shader, Vulkan, pipeline cache, title profiles, GSO, and cache layers.
Not yet
- No public downloads.
- No commercial title import or title boot.
- No firmware, keys, or bundled system files.
- No real NRO/NSO parsing or Horizon ABI coverage.
- No real filesystem, thread, memory, input, or audio service coverage beyond deterministic skeletons.
- No conditional branch lowering in native multi-block functions.
- No real SPIR-V or Maxwell/NVN shader translation yet.
- No Windows or macOS native execution.
Next
- Phase 57: Verified Profile Repository Support: signed profile format, download/upload approval UI, decentralized source support, and hardware class ratings.
- Phase 58: Compatibility Database: compatibility labels, Native Coverage integration, reports, and a title status UI.
- Phase 59: Commercial Title Import v0: legal user-provided title import, title ID detection, update/DLC metadata, and compile refusal for unsupported cases.
- Phase 60: Commercial Title Boot Experiments: early title startup, service and missing-instruction logging, emergency JIT path, and crash reports.