Captain Claw

projects

The 1997 pirate classic, in your browser

Type
Game · 2026
Built with
C++ · SDL2 · Emscripten · WebAssembly · Box2D · Node.js · WebSocket · Playwright
Links
captainclaw.lolDonate

Captain Claw is Monolith's 1997 pirate platformer, and OpenClaw is an open-source C++ and SDL2 reimplementation of its engine. This is OpenClaw compiled to WebAssembly with Emscripten, so the whole game runs in a browser tab at captainclaw.lol. No download, no installer: WASD to move, Space to jump, J for the sword, K for the pistol, or the original arrow keys if your hands remember them.

Getting it to run was mostly the parts nobody had finished for the web. The CD rip's CLAW.REZ has no sound effects in it, so one tool unpacks the InstallShield cabinet without running the installer and another merges the 1,151 original WAV files back in. The real SDL2_mixer port replaces the stubbed audio, the music is MIDI played by a TinySoundFont synthesizer in the page, the death and teleport fades are drawn over a frozen frame so WebGL never flashes black, and the picture scales by whole pixels so the art does not shimmer on a Retina screen. The first build died on a MacBook with "memory access out of bounds": elevators were holding on to the physics bodies of enemies that had already been killed while riding them. On the desktop that is silent corruption. In WebAssembly it is a hard stop.

Then it grew past a port. A small Node relay hands out six-letter room codes and up to eight players share a level, each Claw in their own colour with a name tag, with kills and treasure counting for everyone. The codes never contain an X or a Z, because the multiplayer menu is lettered with glyphs cut at load time from the original menu art, and the 1997 lettering has neither. Lifting and throwing powder kegs and soldiers, which the original had and OpenClaw never implemented, works with Claw's own animations. Every menu option works, saves stay in the browser per player, custom levels load from a file, and PLEASE DONATE sits on the main menu in the same gold lettering.

It is served from a Mac at home, with the relay behind the same domain. Before an update goes out, a Playwright suite plays the game in Chromium and Firefox: 29 single-player checks, two browsers in one room, lift and throw, every menu page.