How ctrdecomp/ctr_sdk works
CTR_SDK is a decompilation of Nintendo 3DS’s standard SDK: a collection of C/C++ APIs for applications to use device services, graphics, media, and runtime facilities. The principal workflow is an application calling an SDK module to perform a platform task, with service-backed modules communicating with the device or OS. The graph retains major README capabilities, including input, storage, rendering, audio, configuration, and dynamic loading. Source excerpts are limited, so links between modules are shown only where sampled code supports them; other module relationships are intentionally omitted.
Main entry points: snd_MasterManager.cpp Sound playback · cfg_Api.cpp Device configuration · hid_Api.cpp Input devices · camera_Api.cpp Camera
Components 24
Device Services
- App lifecycle
sources/libraries/applet/CTR/applet_API.cpp - Device configuration
sources/libraries/cfg/CTR/cfg_Api.cpp - Input devices
sources/libraries/hid/CTR/hid_Api.cpp - Camera
sources/libraries/camera/camera_Api.cpp - StreetPass
include/nn/cec/CTR/cec_Api.h - Network manager
sources/libraries/ndm/ndm_Setup.cpp - Power and RTC
sources/libraries/ptm/CTR/MPCore/ptm_Api.cpp
Graphics
- Graphics API
include/nn/gx.h - GLES2 renderer
sources/libraries/gles2/systemmanager.c - Geometry helpers
sources/libraries/gr/gr_Utility.cpp - GPU backend
sources/libraries/gxlow/CTR/gxlow_Management.cpp
Media and Files
- File services
sources/libraries/fs/CTR/MPCore/fs_Api.cpp - File I/O backend
sources/libraries/fslow/fslow_QueryOptimalBucketCount.cpp - Font rendering
sources/libraries/font/font_ResFont.cpp - Decompression
sources/libraries/cx/cx_Uncompression.cpp - Sound playback
sources/libraries/snd/CTR/snd_MasterManager.cpp - DSP audio
sources/libraries/dsp/CTR/dsp_Api.cpp
Runtime
- OS facilities
sources/libraries/os/os_Initialize.cpp - Memory and containers
sources/libraries/fnd/fnd_HeapBase.cpp - Hash functions
sources/libraries/crypto/Hash/crypto_Sha1.cpp - Dynamic loading
sources/libraries/ro/ro_DynamicLoader.cpp - Service access
sources/libraries/srv/srv_Api.cpp
Other components
- 3DS application
- 3DS device services
Connections 31
- 3DS application → App lifecycle: uses lifecycle
- 3DS application → Device configuration: reads settings
- 3DS application → Input devices: reads input
- 3DS application → Camera: captures images
- 3DS application → StreetPass: exchanges messages
- 3DS application → Network manager: controls networking
- 3DS application → Power and RTC: reads device state
- 3DS application → Graphics API: requests graphics
- 3DS application → GLES2 renderer: renders with GLES2
- 3DS application → Geometry helpers: uses geometry
- 3DS application → File services: reads and writes files
- 3DS application → Font rendering: draws text
- 3DS application → Decompression: decompresses data
- 3DS application → Sound playback: plays audio
- 3DS application → OS facilities: uses OS facilities
- 3DS application → Memory and containers: allocates memory
- 3DS application → Hash functions: hashes data
- 3DS application → Dynamic loading: loads modules
- 3DS application → Service access: accesses services
- Sound playback → Device configuration: reads sound settings
- Graphics API → GPU backend: uses GPU backend
- GLES2 renderer → GPU backend: dispatches GPU work
- File services → File I/O backend: uses I/O backend
- Sound playback → DSP audio: uses DSP audio
- Device configuration → 3DS device services: communicates with
- Input devices → 3DS device services: reads device state
- Camera → 3DS device services: controls camera
- StreetPass → 3DS device services: uses device service
- Network manager → 3DS device services: controls networking
- Power and RTC → 3DS device services: reads device state
- Service access → 3DS device services: connects services