Part of the hash-bench cross-platform suite — the same hash-algorithm sources timed natively on seven Nintendo consoles (NES · GB/GBC · GBA · NDS · DSi · 3DS · N64).
DSi-enhanced Nintendo DSi / DSi XL / 2DS / 3DS-family hashing-
algorithm benchmark. Identical algorithm set and code to the sibling
hash-bench-nds (32 algorithms, dual-screen
display), with one runtime difference:
setCpuClock(true); // ARM946E: 67 MHz → 134 MHzisDSiMode() returns false on original DS / DS Lite (which can't boot
this ROM anyway in TWL-mode launchers), but on every DSi-era device —
DSi, DSi XL, 2DS, 3DS / 3DS XL, New 3DS / New 3DS XL — the call
succeeds and the ARM9 runs at double clock for the entire sweep.
The CPU is otherwise identical to the original DS's ARM9, so the
2× ROM-to-ROM throughput delta is a clean measurement of "what raw
clock speed buys you" with everything else (cache, ISA, memory bus)
held constant.
| File | Target | Notes |
|---|---|---|
hash-bench-dsi.nds |
DSi / DSi XL / 2DS / 3DS family | ARM9-only, 200 KB. Load via TWiLight Menu / Unlaunch / homebrew launcher. Does not run on original DS / DS Lite — those don't have DSi-mode hardware. |
Requires the same devkitPro stack as the NDS sibling — devkitARM +
libnds + ndstool. The only Makefile difference is -DHBENCH_DSI_MODE
in CFLAGS (gates the setCpuClock(true) call) and the project name.
.\build.bat # build hash-bench-dsi.nds + copy to artifacts\
.\build.bat clean # nuke build/ + outputs
Linux/macOS/CI: make.
| Aspect | hash-bench-nds | hash-bench-dsi |
|---|---|---|
| ARM9 clock | 67 MHz everywhere | 134 MHz on DSi-family |
| Runs on DS / DS Lite | ✅ | ❌ |
| Runs on DSi / 2DS / 3DS-family | ✅ (in DS-compat mode, 67 MHz) | ✅ (native TWL mode, 134 MHz) |
| Source code | identical | |
| Algorithm set | identical (32 algos) | |
| ROM size | 200 KB | 200 KB |
| Build artifact | .nds |
.nds (same format; TWL-mode behavior is runtime) |
Compare results side-by-side by running both ROMs on a DSi-family device — the µs/iter column should be roughly half on the DSi build.
Identical to hash-bench-nds — see
the NDS README for the full table of algorithms, reference digests,
and design notes. All 32 sources are byte-identical across the GBA /
NDS / DSi / 3DS projects.
- devkitPro / devkitARM — ARM toolchain
- libnds — DS hardware
abstraction,
setCpuClockAPI - calico — modern libnds runtime
hash-bench-nds— sibling project supplying the dual-screen layout + 32 algorithm sources