No description
Find a file
2026-05-16 15:50:20 +02:00
.claude corrected small minor bugs 2026-05-06 14:59:07 +02:00
assets-cg assets(exitdoor): nouveau sprite porte + régénération PC-SDL 2026-05-16 12:25:36 +02:00
AUDITS correctly linked the laser with on/off switches 2026-04-12 20:42:57 +02:00
cmake move levels in one single place 2026-05-14 18:36:32 +02:00
dist package for release v1.0 2026-05-16 15:50:20 +02:00
docs docs: nzp N5 (distribution NppFlash compressée) 2026-05-16 14:32:23 +02:00
LevelsPacker build(packs): exclure StarterKit de la distribution (TMX sans entités) 2026-05-16 15:29:23 +02:00
nppflash_entities diagonals: full perimeter borders + particle/ninja collision fixes 2026-05-14 22:38:18 +02:00
nppflash_levels feat: conformité NppFlash, noms de niveaux v5, grille Legacy, écran Trophées 2026-05-15 17:14:10 +02:00
sdl-pc test+hardening(pack): régression noms .nzp + en-tête blob lu en tas 2026-05-16 14:59:56 +02:00
src fix(ui): pièce trophée — offset final +8/-8 px 2026-05-16 15:23:16 +02:00
tests test+hardening(pack): régression noms .nzp + en-tête blob lu en tas 2026-05-16 14:59:56 +02:00
tools feat: conformité NppFlash, noms de niveaux v5, grille Legacy, écran Trophées 2026-05-15 17:14:10 +02:00
.clang-format run pass of clang-format 2026-05-09 17:08:59 +02:00
.clangd move levels in one single place 2026-05-14 18:36:32 +02:00
.gitignore chore(cleanup): untrack des artefacts régénérables, arbre propre 2026-05-16 09:12:03 +02:00
build-casio feat: système Trophées+Stats, cache de scan packs, fix sprite gold 2026-05-15 21:00:47 +02:00
build-pc move levels in one single place 2026-05-14 18:36:32 +02:00
CHANGELOG.md feat(pack): générer un .nzp retire le .npp homonyme résiduel 2026-05-16 14:38:31 +02:00
clean.sh feat(pack): distribution NppFlash en .nzp + découverte extension-agnostique (N5) 2026-05-16 14:32:23 +02:00
CMakeLists.txt feat(pack): distribution NppFlash en .nzp + découverte extension-agnostique (N5) 2026-05-16 14:32:23 +02:00
README.en.md refactoring structure of folders and files 2026-04-16 16:56:48 +02:00
README.md docs: resync pack-format v5, roadmap compression .nzp, refresh index 2026-05-16 09:18:16 +02:00
run-pc added launchpads, gauss turret and mini-electrifiers. 2026-05-06 22:52:49 +02:00
run-tests feat: conformité NppFlash, noms de niveaux v5, grille Legacy, écran Trophées 2026-05-15 17:14:10 +02:00

N++ on a Casio Calculator

"One ninja. One calculator. No excuse for failing math class."


Yes, you read that right. N++, the iconic platformer by Metanet Software — the one where you spend hours bouncing a tiny ninja off walls at full speed — runs on a Casio fx-CG50.

The same calculator sitting on your desk during exams.

Gameplay screenshot Gameplay screenshot 2


What is N++?

A minimalist, unforgiving platformer: a black ninja on a white background, walls, deadly traps, and physics that reward mastery. No lives, no health bar — just you, a timer, and your ability to not explode.

The original game was released on PC/PS4 in 2016. This one runs on a graphing calculator.


What you can do

  • Run, jump, slide along walls and chain wall jumps
  • Navigate slopes — physics handles diagonals and half-slopes
  • Collect gold coins scattered across levels
  • Activate the switch to open the exit door — and survive long enough to reach it
  • Avoid lasers sweeping the level (disabled by the switch)
  • Dodge homing missiles launched by turrets
  • Explode on a mine and watch the ninja shatter into colored pixels
  • Splat from a fall too high and see the pieces fly off in ragdoll
  • Celebrate with 9 different victory animations when you clear a level
  • Progress through 11 levels that chain automatically

Controls

Key Action
/ Run
SHIFT (short press) Small jump
SHIFT (held) High jump
SHIFT + opposite direction (near a wall) Wall jump
SHIFT (result screen) Next level

Why it's impressive

The physics are actually there. Inertia, coyote time, jump buffer, wall slide, diagonal slope handling — everything that makes N++ feel good to play is implemented. The ninja responds exactly the way it should.

The traps are there too: animated lasers with sparks at the impact point, homing missiles with a trail, all computed in fixed-point arithmetic to hold 60 fps on the calculator's SH4 CPU.

The animations as well: walking, running, jumping, wall sliding, 9 different victory animations. And when you die, it's spectacular — particle explosion or ragdoll depending on how you went out.


How to install

  1. Download NppClone.g3a
  2. Connect your Casio fx-CG50 via USB
  3. Copy the file to the calculator's memory
  4. Launch it from the main menu

That's it.


Building from source

You need fxSDK and the sh3eb-elf cross-compilation toolchain.

fxsdk build-cg

The NppClone.g3a file will appear in the project root directory.


Work in progress.