Repository navigation
Releases
Mini Ninjas NX v1.0.8 — MSAA and grass GPU optimizations
Reduces GPU work in MSAA passes, depth resolves and close-up grass while retaining 1280×720 and 4× MSAA. The final 1.0.8-rc.3 candidate was tested on Nintendo Switch; the stable NRO has identical executable code and changes only the displayed version. Gameplay profiling is disabled.
GPU improvements
- Hardware 4× MSAA now covers smaller compatible passes: the minimum sample-space pitch drops from 640 to 160.
- Compatible depth resolves read the native MSAA image directly, avoiding an intermediate unpack.
- Render targets allocate the required rows and grow while preserving colour, depth and stencil, reducing oversized allocations and clear work.
- The grass shader removes redundant alpha-comparison branches and discards transparent pixels before colour/fog calculations. Grass density, alpha thresholds, fade, blending and depth/stencil behaviour are preserved.
- Retains the previous deferred/useful-area clears, compatible resolve/copy elimination, guarded early depth tests, unnecessary fragment-shader removal, and CPU PGO/LTO optimizations.
Performance
| Gameplay on Nintendo Switch | CPU | GPU | minininjas_fps_limit |
|---|---|---|---|
| Nearly stable 30 FPS | 1020 MHz | 307 MHz | 30 (default) |
| Stable 30 FPS | 1020 MHz | 460 MHz | 30 |
| 60 FPS target | 1785 MHz | 614 MHz | 0 (uncapped) |
The 30 FPS results were reported during testing of this release. The 60 FPS clock settings are unchanged. Set the clocks on the console; edit minininjas.toml beside the NRO and restart to change the frame limit.
Updating
For an existing v1.0.3–v1.0.7 or v1.0.8 release-candidate installation, replace only sdmc:/switch/mini-ninjas/mini-ninjas.nro. Keep your game files, saves, configuration and shader cache. The runtime archive is unchanged from v1.0.7; the new grass shader creates its own cache entry when first used.
For a fresh installation, use the browser installer or follow the manual setup. Launch in title takeover mode, not Album/applet mode.
The grass optimization is enabled by default. For comparison, set minininjas_foliage_fast_alpha = false in minininjas.toml and restart; this leaves MSAA enabled.
Shader validation covered 54,848 discard/colour cases and all alpha-comparison variants. A saved grass-frame replay retained byte-identical colour and depth. See the updated performance notes for conditions and validation.
Assets: mini-ninjas.nro, the matching mini-ninjas-runtime.zip, and SHA256SUMS.txt. Original game assets are not included.
Mini Ninjas NX v1.0.7 — GPU optimizations
Mini Ninjas NX v1.0.7 reduces GPU work while retaining 1280×720, native 4× MSAA and the CPU optimizations from v1.0.6.
- Smarter render-target clears: defer colour/depth clears until needed, skip redundant identical clears, and clear used rows with safe expansion when later passes reach more of a buffer.
- Fewer compatible resolve/copy operations: swap complete matching single-sample depth images when the resolve also clears the target, and defer compatible front-buffer copies. Required MSAA resolves and conversions keep their normal paths.
- Early-Z for eligible effects: test depth before fragment shading when the pass has no depth writes or active stencil.
- Skip unnecessary fragment-shader work: use the minimal empty shader for passes without colour writes, active alpha testing, shader discard or shader depth output.
The clear/copy changes preserve partial writes, invalidate stale duplicate-clear state, and retain valid frame snapshots for later reads. See the GPU performance notes for the conditions and checks.
The final candidate was tested on Nintendo Switch with smoother gameplay and no visual artifacts reported. The stable NRO has the same executable code as v1.0.7-rc.2, with only the displayed version updated. Gameplay profiling is disabled: no PGO recorder, CPU stack sampling, service timings or per-draw CPU/GPU timing reports. The v1.0.6 PGO/LTO optimizations remain active.
Updating v1.0.3–v1.0.6 or v1.0.7-rc.1/rc.2: replace sdmc:/switch/mini-ninjas/mini-ninjas.nro. Keep your existing game files, configuration, saves and shader cache. For a fresh installation, use the web installer.
Mini Ninjas NX v1.0.6 — Updated Switch gameplay profile
Mini Ninjas NX v1.0.6 uses a new gameplay profile recorded on a Nintendo Switch during a playthrough into the second level.
- GCC rebuilt all 97 generated game code files with profile-guided optimization (PGO) and link-time optimization (LTO). The new recording exercised 12,445 of 26,543 instrumented functions, including 1,173 that the v1.0.5 recording did not reach.
- The two CPU optimizations from v1.0.5 remain enabled by default. Audio workers sleep while waiting for their group, and five hot game functions and 28 leaf routines keep guest register values in host registers where possible. The renderer submits work every 128 guest draws by default.
- The stable NRO contains the same executable code as v1.0.6-rc.1. Gameplay profiling and audio capture are disabled. The performance notes cover the recording, compiler settings, CPU changes and renderer behavior.
Updating v1.0.3 through v1.0.5 or v1.0.6-rc.1 — replace sdmc:/switch/mini-ninjas/mini-ninjas.nro. Keep your existing game files, configuration and saves. For a fresh installation, use the web installer.
Mini Ninjas NX v1.0.5 — Switch CPU and rendering optimizations
This stable release brings the CPU and renderer changes from the experimental builds into the main Switch port.
- Audio workers now briefly spin and then sleep until the group is ready. Five frequently executed game functions and their leaf callees keep PowerPC register values in host registers. Both optimizations are enabled by default.
- Direct calls across generated code files, link-time optimization (LTO), and a gameplay profile recorded on Switch (PGO) optimize the recompiled game code. Large aligned guest-memory fills use a native routine.
- The command processor returns space to the game at completed PM4 packet boundaries. The renderer submits work to the GPU every 128 guest draws by default. The interval is adjustable in
minininjas.toml. - Includes the level-two audio playback fixes from v1.0.4. Gameplay profiling, stack sampling, audio capture and per-draw timing are disabled in the release.
The tester observed lower CPU load and higher GPU utilization in a heavy scene on Switch with both CPU changes enabled.
Updating from v1.0.3 or v1.0.4 — replace sdmc:/switch/mini-ninjas/mini-ninjas.nro. The new defaults also apply with an existing config that omits those settings. Keep your game files, saves and config.
For a fresh installation, use the web installer. The runtime archive and SHA-256 checksums are available below.
Mini Ninjas NX v1.0.4 — Level two audio fix
Fixed a repeating sound in the opening cutscene of level two, Leaving Home. The XMA decoder now advances past a packet header that the game uses as a loop marker. Valid audio loops still play. The decoder also preserves the game's buffer position during concurrent updates, and the audio worker can resume immediately after silence.
The gameplay NRO excludes audio capture, WAV writing, per-frame XMA counters, CPU stack sampling and timing of Switch service calls.
Updating an existing installation
Replace sdmc:/switch/mini-ninjas/mini-ninjas.nro. Your existing game files, shaders, configuration and saves work with this update.
For a fresh installation, use the Mini Ninjas NX installer with your supported Xbox 360 copy. The runtime ZIP contains the shader package and default configuration. SHA256SUMS.txt lists both download hashes.
Mini Ninjas NX v1.0.4-exp.2 — Level two audio fix
Fixed a repeating sound in the opening cutscene of level two, Leaving Home. The XMA decoder now advances past a packet header that the game uses as a loop marker. Valid audio loops still play. The decoder also preserves the game's buffer position during concurrent updates, and the audio worker can resume immediately after silence.
The gameplay NRO excludes audio capture, WAV writing, per-frame XMA counters, CPU stack sampling and timing of Switch service calls.
This experimental build retains cross-file direct calls, link-time optimization, the gameplay PGO profile recorded on Switch, and GPU Partial Submit every 128 guest draws by default. PGO was applied during compilation. The NRO has no PGO recorder.
Updating an existing installation
Replace sdmc:/switch/mini-ninjas/mini-ninjas.nro. Your existing game files, shaders, configuration and saves work with this update. Use an existing v1.0.3 or v1.0.4 installation.
Mini Ninjas NX v1.0.4-exp.1 • Experimental performance build
Install
Replace sdmc:/switch/mini-ninjas/mini-ninjas.nro in an existing v1.0.3 installation. The same game files, shaders, saves and runtime configuration work with this build.
Performance experiment
- Direct calls across translated PowerPC files, GCC link-time optimization and a gameplay PGO profile recorded on Nintendo Switch.
- Earlier publication of completed PM4 packets and a native fast path for aligned guest-memory fills. The optional NEON vector routine is off by default.
- Partial Submit sends work to the GPU after 128 guest draws by default. To compare with end-of-frame submission, set
deko_partial_submit_draws = 0inminininjas.tomland restart. - The gameplay executable excludes PGO recording, CPU stack sampling, timing wrappers around Switch services, per-draw timings and Partial Submit diagnostic reports. Existing diagnostic settings on the SD card cannot enable them.
Nintendo Switch clock settings
| Gameplay | CPU | GPU | minininjas_fps_limit |
|---|---|---|---|
| 25–30 FPS, depending on the scene | Stock | Stock | 30 |
| Stable 30 FPS | 1224 MHz | Stock | 30 |
| 60 FPS target | 1785 MHz | 614 MHz | 0 |
Set the clocks on the console and restart the game after editing the configuration. The FPS figures describe the clock settings. The size of any improvement from this experimental build depends on the scene.
Mini Ninjas NX v1.0.3
Fixes trees disappearing when they pass between the camera and the player. The trunk now stays partially visible as it fades, so the player can still be seen through it.
The renderer now uses the game's depth bias when drawing the main scene's depth prepass. This lets the trunk pass the depth test in the subsequent translucent draw.
To update from v1.0.2, replace sdmc:/switch/mini-ninjas/mini-ninjas.nro with the attached NRO. For a new installation, use the browser installer or follow the manual installation instructions.
Mini Ninjas NX v1.0.2
Fixes water refraction in the full-frame renderer and adds a configurable frame limit.
- Water now samples the correct horizontal part of the scene after the change from four strips to one full-screen region. The correction preserves the existing ripple calculation, vertical coordinates and environment cubemap lookup.
- The supplied
minininjas.tomltargets 30 FPS. Setminininjas_fps_limit = 0and restart the game to disable the additional limit. - The limiter waits between frames without changing the game clock or video-mode vblank frequency.
- Hardware 4× MSAA, CPU optimizations and the v1.0.1 movie-skip crash fix are retained. The runtime package includes precompiled versions of the corrected shaders.
With the limit disabled, gameplay runs at 40–60 FPS depending on the scene (test profile: CPU 1040 MHz, GPU 460 MHz). The port does not force an overclock.
Update: use the browser installer or replace the NRO and extract the new runtime ZIP into sdmc:/switch/mini-ninjas/. Keep existing game files and saves. The runtime ZIP includes the default minininjas.toml; preserve any settings you have edited before replacing it.
This is an independent research project requiring your own supported Xbox 360 game copy. The original executable, textures, models, levels, audio and movies are not included. See installation and building.
Mini Ninjas NX v1.0.1
Fixes an audio-driver lifetime crash when skipping the opening movie shortly after selecting Play Game.
- Audio callbacks keep their runtime state until they finish, even when the movie unregisters its audio client.
- Late audio submissions safely stop when their driver has already been removed.
- Client slots are not reused while their previous callbacks are still active.
The fix has been checked on Nintendo Switch. The existing single-region renderer, hardware 4× MSAA and CPU optimizations are unchanged. Gameplay performance remains 40–60 FPS depending on the scene (test profile: CPU 1040 MHz, GPU 460 MHz).
Update: use the browser installer or replace sdmc:/switch/mini-ninjas/mini-ninjas.nro with the attached NRO. Existing game files, shader runtime and saves can be kept. The shader runtime ZIP is unchanged from v1.0.0 and is included for new installations.
This is an independent research project requiring your own supported Xbox 360 game copy. The original executable, textures, models, levels, audio and movies are not included. See installation, building and the repository credits.