Skip to content

Kokoromi

This is the documentation of Kokoromi, an early Nintendo Switch 2 emulator written in Rust. It builds on the CPU, service, GPU and front-end foundations laid by its maintainer and contributors. The project's own AArch64 programs run through the loader, kernel, stand-in services, audio renderer and GPU path.

The project's test programs hand the emulated Ampere GPU small programs called shaders, for example one that computes the colour of each pixel of a sky. Those shaders are NVIDIA machine code. The emulator rewrites them into SPIR-V, the shader format of the cross-vendor graphics API Vulkan. Then an Intel, AMD or NVIDIA card in a PC can run them.

The Julia demo dispatches Ampere machine code, translated to SPIR-V.

Start here For
Architecture map One picture of the whole emulator, and which page answers what
Decision records The big design choices, each explained in plain words first
Glossary Every GPU term the pages use, with one plain sentence and an example
SM86 instruction table (PDF) The desktop Ampere instruction encodings used by the translator, generated from NVIDIA's table