Generated by tools/progress.py on 2026-10-23. Raw numbers: progress.json. History (one point a day). In total: 516 of 1638 (32%).
334 of 1230 documented IPC commands (27%).
| Interface | Official name | Done | Constant | Total | % |
|---|---|---|---|---|---|
| acc | |||||
acc/IManagerForApplication9 missing
| nn::account::baas::IManagerForApplication | 0 | 0 | 9 | 0% |
acc/IProfile4 missing
| nn::account::profile::IProfile | 4 | 2 | 8 | 50% |
acc:u010 missing
| nn::account::IAccountServiceForApplication | 15 | 6 | 25 | 60% |
| am | |||||
am/IApplicationFunctions54 missing
| nn::am::service::IApplicationFunctions | 16 | 7 | 70 | 23% |
am/IApplicationProxy | nn::am::service::IApplicationProxy | 9 | 0 | 9 | 100% |
am/IAudioController6 missing
| nn::am::service::IAudioController | 0 | 0 | 6 | 0% |
am/ICommonStateGetter55 missing
| nn::am::service::ICommonStateGetter | 10 | 5 | 65 | 15% |
am/IDebugFunctions35 missing
| nn::am::service::IDebugFunctions | 0 | 0 | 35 | 0% |
am/IDisplayController28 missing
| nn::am::service::IDisplayController | 0 | 0 | 28 | 0% |
am/ILibraryAppletAccessorno reference list: total = handled commands | 14 | 8 | 14 | 100% | |
am/ILibraryAppletCreator5 missing
| nn::am::service::ILibraryAppletCreator | 2 | 0 | 7 | 29% |
am/ISelfController36 missing
| nn::am::service::ISelfController | 23 | 21 | 59 | 39% |
am/IStorage1 missing
| nn::am::service::IStorage | 1 | 0 | 2 | 50% |
am/IStorageAccessor | nn::am::service::IStorageAccessor | 3 | 0 | 3 | 100% |
am/IWindowController6 missing
| nn::am::service::IWindowController | 2 | 1 | 8 | 25% |
appletOE | nn::am::service::IApplicationProxyService | 1 | 0 | 1 | 100% |
| aoc | |||||
aoc:u22 missing
| nn::aocsrv::detail::IAddOnContentManager | 0 | 0 | 22 | 0% |
| apm | |||||
apm | nn::apm::IManager | 3 | 1 | 3 | 100% |
apm/ISession | nn::apm::ISession | 3 | 2 | 3 | 100% |
| audren | |||||
audren:u5 missing
| nn::audio::detail::IAudioRendererManager | 0 | 0 | 5 | 0% |
audren:u/IAudioDevice21 missing
| nn::audio::detail::IAudioDevice | 0 | 0 | 21 | 0% |
audren:u/IAudioRenderer15 missing
| nn::audio::detail::IAudioRenderer | 0 | 0 | 15 | 0% |
| ectx | |||||
ectx:aw2 missing
| nn::err::context::IWriterForApplication | 0 | 0 | 2 | 0% |
| fs | |||||
fs/IDirectory | nn::fssrv::sf::IDirectory | 2 | 0 | 2 | 100% |
fs/IFile2 missing
| nn::fssrv::sf::IFile | 5 | 0 | 7 | 71% |
fs/IFileSystem1 missing
| nn::fssrv::sf::IFileSystem | 16 | 2 | 17 | 94% |
fs/ISaveDataInfoReader | nn::fssrv::sf::ISaveDataInfoReader | 1 | 1 | 1 | 100% |
fs/IStorage4 missing
| nn::fssrv::sf::IStorage | 2 | 0 | 6 | 33% |
fsp-srv123 missing
| nn::fssrv::sf::IFileSystemProxy | 23 | 12 | 146 | 16% |
| hid | |||||
hid138 missing
| nn::hid::IHidServer | 36 | 26 | 174 | 21% |
hid/IActiveVibrationDeviceList | nn::hid::IActiveVibrationDeviceList | 1 | 1 | 1 | 100% |
hid/IAppletResource | nn::hid::IAppletResource | 1 | 0 | 1 | 100% |
| hwopus | |||||
hwopusno reference list: total = handled commands | 10 | 0 | 10 | 100% | |
hwopus/IHardwareOpusDecoderno reference list: total = handled commands | 8 | 2 | 8 | 100% | |
| ldr | |||||
ldr:rono reference list: total = handled commands | 6 | 4 | 6 | 100% | |
| lm | |||||
lm | nn::lm::ILogService | 1 | 0 | 1 | 100% |
lm/ILogger3 missing
| nn::lm::ILogger | 2 | 1 | 5 | 40% |
| mm | |||||
mm:u | nn::mmnv::IRequest | 8 | 2 | 8 | 100% |
| nfp | |||||
nfp:userno reference list: total = handled commands | 1 | 0 | 1 | 100% | |
nfp:user/IUserno reference list: total = handled commands | 12 | 0 | 12 | 100% | |
| nvdrv | |||||
nvdrv5 missing
| nns::nvdrv::INvDrvServices | 9 | 0 | 14 | 64% |
| pctl | |||||
pctl | nn::pctl::detail::ipc::IParentalControlServiceFactory | 2 | 0 | 2 | 100% |
pctl/IParentalControlService140 missing
| nn::pctl::detail::ipc::IParentalControlService | 0 | 0 | 140 | 0% |
| pl | |||||
pl:u1 missing
| nn::pl::sharedresource::detail::IPlatformSharedResourceManager | 6 | 2 | 7 | 86% |
| set | |||||
setno reference list: total = handled commands | 8 | 1 | 8 | 100% | |
| sm | |||||
sm:1 missing
| nn::sm::detail::IUserInterface | 4 | 3 | 5 | 80% |
| time | |||||
time/ISteadyClock4 missing
| nn::timesrv::detail::service::ISteadyClock | 4 | 2 | 8 | 50% |
time/ISystemClock | nn::timesrv::detail::service::ISystemClock | 5 | 2 | 5 | 100% |
time/ITimeZoneService4 missing
| nn::timesrv::detail::service::ITimeZoneService | 10 | 2 | 14 | 71% |
time:u12 missing
| nn::timesrv::detail::service::IStaticService | 11 | 3 | 23 | 48% |
| vi | |||||
vi/IApplicationDisplayService4 missing
| nn::visrv::sf::IApplicationDisplayService | 18 | 7 | 22 | 82% |
vi/IGraphicBufferProducer5 missing
| android::IGraphicBufferProducer | 9 | 3 | 14 | 64% |
vi/IHOSBinderDriver | nns::hosbinder::IHOSBinderDriver | 4 | 1 | 4 | 100% |
vi/IManagerDisplayService81 missing
| nn::visrv::sf::IManagerDisplayService | 0 | 0 | 81 | 0% |
vi/ISystemDisplayService47 missing
| nn::visrv::sf::ISystemDisplayService | 0 | 0 | 47 | 0% |
vi:m5 missing
| nn::visrv::sf::IManagerRootService | 1 | 0 | 6 | 17% |
vi:s1 missing
| nn::visrv::sf::ISystemRootService | 1 | 0 | 2 | 50% |
vi:u1 missing
| nn::visrv::sf::IApplicationRootService | 1 | 0 | 2 | 50% |
45 of 124 documented SVCs (36%).
| Interface | Official name | Done | Constant | Total | % |
|---|---|---|---|---|---|
SVCs79 missing
| https://switchbrew.org/wiki/SVC | 45 | 1 | 124 | 36% |
58 of 138 documented ioctls (42%).
| Interface | Official name | Done | Constant | Total | % |
|---|---|---|---|---|---|
/dev/nvhost-as-gpu3 missing
| https://switchbrew.org/wiki/NV_services | 8 | 2 | 11 | 73% |
/dev/nvhost-gpu30 missing
handled but undocumented: 0x14 | https://switchbrew.org/wiki/NV_services (section "Channels" > "Ioctls") | 11 | 7 | 41 | 27% |
/dev/nvhost-ctrl5 missing
| https://switchbrew.org/wiki/NV_services | 10 | 3 | 15 | 67% |
/dev/nvhost-ctrl-gpu14 missing
handled but undocumented: 0xb | https://switchbrew.org/wiki/NV_services | 11 | 3 | 25 | 44% |
/dev/nvhost-nvdec7 missing
| https://switchbrew.org/wiki/NV_services (section "Channels" > "Ioctls": the host1x channel ioctls) | 6 | 2 | 13 | 46% |
/dev/nvmap14 missing
| https://switchbrew.org/wiki/NV_services | 6 | 0 | 20 | 30% |
/dev/nvhost-vic7 missing
| https://switchbrew.org/wiki/NV_services (section "Channels" > "Ioctls": the host1x channel ioctls) | 6 | 2 | 13 | 46% |
79 of 146 documented mnemonics (54%).
| Interface | Official name | Done | Constant | Total | % |
|---|---|---|---|---|---|
floating point7 missing
| 13 | 0 | 20 | 65% | |
half precision4 missing
| 4 | 0 | 8 | 50% | |
integer14 missing
| 22 | 0 | 36 | 61% | |
conversion | 4 | 0 | 4 | 100% | |
registers and predicates3 missing
| 9 | 0 | 12 | 75% | |
memory7 missing
| 7 | 0 | 14 | 50% | |
textures and surfaces6 missing
| 8 | 0 | 14 | 57% | |
control flow12 missing
| 12 | 0 | 24 | 50% | |
outras14 missing
| 0 | 0 | 14 | 0% |
A command counts as implemented when the runtime has its own arm for it in the match of the service (crates/rt/src/services), the SVC (horizon.rs) or the device ioctl (services/nvdrv.rs); anything that falls to the default arm goes to the stub, which answers with zeros and warns. The Constant column sets apart implemented commands whose body only returns success or fixed values. Ioctls are compared by the low byte of their number, which is how the devices dispatch them.
The totals are the commands documented on Switchbrew (tools/reference/horizon.txt, IDs and names only) for the interfaces Kirikae exposes or games ask for, not every system service. A new interface joins the count when it joins the reference.
Shader instructions count the mnemonics of the Maxwell opcode table generated from envytools (crates/maxwell/src/opcodes.rs) that have their own arm in the SPIR-V translator (crates/maxwell/src/translate.rs). A mnemonic counts whole even when only some of its variants are translated.