@dmang-dev

Open-source work, mostly about making modern things run on hardware that was never asked to do them — two-factor auth on a Game Boy, SHA-256 on a 6502, an AI client driving a PlayStation 2 emulator.

PSP Development

Toolchain work and homebrew for the Sony PSP — including a one-command native Windows build of the pspdev toolchain, which historically required a Linux box or WSL.

pspdev-win

Build the pspdev PSP homebrew toolchain natively on Windows under MSYS2 - one PowerShell command from clean Windows to a working psp-gcc.

Shell

btc-miner-psp

Sony PSP Bitcoin pool miner — stratum v1 over WiFi, software SHA-256d nonce sweep on the 333 MHz MIPS R4000. ~40 kH/s, ~10^9x slower than an ASIC. The oldest mainstream portable console that can speak the real Bitcoin protocol today.

C

pspdev

pspdev master repository

fork of pspdev/pspdev

Kobo E-Readers

Kobo readers use Adobe RMSDK, which chokes on CSS that every other reader handles. These find the breakage and fix it.

kobofix

Make EPUBs work on Kobo e-readers (Adobe RMSDK): detect and fix the modern CSS that breaks them.

Python

epubcheck-kobo

Unofficial Kobo/RMSDK-aware fork of EPUBCheck (adds KOBO-001/002/003 warnings).

Java

MCP Servers for Emulators

Model Context Protocol servers that let an AI client drive a running emulator — read and write memory, press buttons, save state, step frames. One per emulator family, covering most consoles from the NES to the PS3.

mcp-retroarch

MCP server for RetroArch — exposes memory r/w, save state, screenshot, pause/frameadvance/reset via the Network Control Interface

TypeScript★ 2

mcp-bizhawk

MCP server for BizHawk — drive NES/SNES/GB/GBC/GBA/Genesis/N64/PSX/Saturn and more through one Lua bridge

TypeScript★ 3

mcp-dolphin

MCP server for Dolphin (GameCube + Wii) — drives memory r/w, controllers, savestate, frame advance via Felk's Python-scripting Dolphin fork

TypeScript★ 2

mcp-ppsspp

MCP server for PPSSPP — drive PSP games through PPSSPP's built-in WebSocket debugger

TypeScript★ 5

mcp-mgba

MCP server bridging Claude (and other MCP clients) to the mGBA Game Boy Advance emulator via Lua scripting

TypeScript★ 1

mcp-pine

MCP server for PINE-speaking emulators (PCSX2, RPCS3, etc.) — exposes memory r/w and savestate control

TypeScript★ 1

TOTP Authenticators

RFC 6238 two-factor authenticators running natively on retro handhelds. Real HMAC-SHA1 on hardware that predates the standard by decades — a Game Boy generating the same six digits as your phone.

totp-gb

TOTP authenticator for Game Boy / Game Boy Color / Super Game Boy

C★ 4

totp-3ds

Native Nintendo 3DS / 2DS TOTP (RFC 6238) authenticator — libctru .3dsx for Home Menu

C★ 1

totp-nds

Native Nintendo DS / DS Lite TOTP (RFC 6238) authenticator with dual-screen UI and libfat persistence

C

totp-gba

Native Game Boy Advance TOTP authenticator (RFC 6238)

C

totp-psp

Native Sony PSP TOTP (RFC 6238) authenticator — five-screen UI, file-based persistence on memstick

C

Hash Benchmark ROMs

The same 32 hash algorithms, measured on seven generations of console silicon — from a 1.79 MHz 6502 to a 268 MHz ARM11. Native code on each, no emulation shortcuts.

hash-bench

Cross-platform hash-algorithm benchmark suite — 32 algos on 7 Nintendo consoles (NES, GB/GBC, GBA, NDS, DSi, 3DS, N64). Landing page + cross-platform story; per-platform code in sibling repos.

hash-bench-nes

NES / Famicom hashing-algorithm benchmark — 18 algos on a 1.79 MHz 6502 (cc65)

C

hash-bench-gb

Game Boy / Game Boy Color hashing-algorithm benchmark — 18 algos on a 4.19 MHz SM83 (GBDK-2020)

C★ 2

hash-bench-gba

Game Boy Advance hashing-algorithm benchmark — 32 algos on a 16.78 MHz ARM7TDMI (devkitARM + libtonc)

C

hash-bench-nds

Nintendo DS hashing-algorithm benchmark — 32 algos on a 33.51 MHz ARM946E (devkitARM + libnds)

C

hash-bench-dsi

Nintendo DSi hashing-algorithm benchmark — 32 algos on a 134 MHz ARM946E (DSi-mode setCpuClock)

C

hash-bench-3ds

Nintendo 3DS hashing-algorithm benchmark — 32 algos on a 268-804 MHz ARM11 (devkitARM + libctru)

C

hash-bench-n64

Nintendo 64 hashing-algorithm benchmark — 32 algos on a 93.75 MHz VR4300 MIPS3 (libdragon)

C

hash-bench-n64-optimized

Experimental N64 perf sibling of hash-bench-n64 — mini code golf, -O3 unroll on only the algos that win (md5, sha256, sha512); avoid layout changes that hurt sha3

C

hash-bench-psp

Sony PSP hashing-algorithm benchmark — 32 algos on a 333 MHz Allegrex MIPS-II (pspsdk)

C

California Grid & Weather

A live map of California utility outages, PSPS shutoff events, NWS alerts, wildfires and NOAA imagery, in one view.