How ctrdecomp/nintendoware4ctr works
NintendoWare4Ctr is a decompilation of NintendoWare’s graphics and sound engine, with animation, 2D layout, font, I/O, math, OS, and utility libraries in the supplied tree. A typical client uses engine APIs to load resources, update animation or scene state, then render graphics/UI or play sound. The graph shows these product domains and selected internal stages; exact runtime wiring is limited because only a small sample of implementation was provided. README-listed ctrl, eft, and h3d capabilities are not represented in the supplied tree.
Main entry points: gfx_GraphicsDevice.cpp Rendering · gfx_SceneBuilder.cpp Scene and models · snd_SoundArchiveLoader.cpp Sound archives · gfx_ParticleEmitter.cpp Particle effects
Components 20
Graphics engine
- Graphics resources
sources/libraries/gfx/res - Scene and models
sources/libraries/gfx/gfx_SceneBuilder.cpp - Particle effects
sources/libraries/gfx/gfx_ParticleEmitter.cpp - Lighting
sources/libraries/gfx/gfx_FragmentLight.cpp - Rendering
sources/libraries/gfx/gfx_GraphicsDevice.cpp
Sound engine
- Sound archives
sources/libraries/snd/snd_SoundArchiveLoader.cpp - Sound data
sources/libraries/snd/snd_SoundDataManager.cpp - Sound playback
sources/libraries/snd - 3D sound
sources/libraries/snd/snd_Sound3DEngine.cpp - Audio hardware
sources/libraries/snd/snd_HardwareManager.cpp
Layout and fonts
- 2D layout
sources/libraries/lyt/lyt_Layout.cpp - Font rendering
sources/libraries/font/font_TextWriterBase.cpp
Animation and I/O
- Animation
sources/libraries/anim/anim_AnimFrameController.cpp - File streams
sources/libraries/io
Core utilities
- Math primitives
include/nw/math.h - Memory utilities
include/nw/os/os_Memory.h - Containers and resources
include/nw/ut/ut_LinkList.h
Other components
- Game client
- Graphics hardware
- CTR sound API
Connections 19
- Game client → Animation: updates frames
- Game client → File streams: opens streams
- Game client → Scene and models: builds scenes
- Game client → Particle effects: configures effects
- Game client → Sound archives: selects sounds
- Game client → 3D sound: sets sound space
- Game client → 2D layout: builds UI
- Game client → Font rendering: writes text
- Sound archives → Sound data: resolves file data
- Audio hardware → CTR sound API: sets effects and volume
- Graphics resources → Scene and models: provides resources
- Scene and models → Rendering: submits scene
- Lighting → Rendering: supplies lighting
- Particle effects → Rendering: supplies particles
- Rendering → Graphics hardware: renders
- 2D layout → Font rendering: uses text
- File streams → Sound archives: reads archive data
- Sound playback → Audio hardware: controls output
- 3D sound → Sound playback: provides 3D parameters