Reverse-engineering Shockwave to save early 2000s web games (Rust/WASM)
Details
- External ID
- 47297544
- Source
- HN
- Company
- —
- Product
- games
- Website domain
- github.com
- Launched
- March 8, 2026
- Cohort
- —
- Upvotes
- 16
- Upvotes percentile
- 0.6968019680196802
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
Hi HN,When browsers killed NPAPI plugin support, thousands of early 2000s web games were effectively lost to time. Macromedia Shockwave, in particular, was a closed-source, highly complex, and largely undocumented beast.So a few friends and I spent the last two years doing something arguably unhinged: rebuilding the entire Director engine from scratch. Today, we're finally sharing dirplayer-rs.Repo: https://github.com/igorlira/dirplayer-rsWe intentionally stayed quiet on this until we had undeniable proof that it was actually possible. With our latest v0.4.1 release, we have full hardware-accelerated graphics. Complex games are booting natively in the browser and are fully playable.A few childhood favorites, actually playable right now:Habbo Hotel: https://dirplayer.com/habboLEGO Junkbot: https://dirplayer.com/junkbotLEGO Worldbuilder: https://dirplayer.com/worldbuilderWe chose Rust and WebAssembly because we wanted a native, plugin-free way to play these games without relying on ancient executables. Parsing decades-old, untrusted binary blobs and undocumented bytecode is a memory safety nightmare, making Rust an easy choice. It also gives us predictable performance with zero GC pauses, keeping frame rates smooth.The biggest headache by far has been Lingo, Director's scripting language. It's massive. It heavily supports 3D graphics, embedded Flash content, and the worst part: Xtras. Xtras were external distributable plugins compiled from native C code. Figuring out how to make those play nice in a modern WASM environment has been a serious challenge.We did, however, successfully implement the Multiuser Xtra so games can create socket connections (which is how Habbo is working!). We still have a long way to go to support full 3D and the massive ecosystem of third-party Xtras, but the foundation is solid.None of this happened in isolation. We built on years of prior work from the Shockwave reverse-engineering community: folks who have been poking at Director's internals for years, and their prior projects, tools, and research made this possible.Happy to get into the weeds in the comments: the RE process, decompiling ancient binaries, the weird quirks of Director's VM, the Rust architecture, whatever you're curious about.And genuinely: what old Shockwave game do you wish still worked? Drop it below and we'll see if we can get it booting.
Enrichment
- Theme
- Vertical
- Media & entertainment
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- shockwave emulator for preserving early 2000s web games
- Manually corrected
- False
Could you build this?
No Re-engineering Macromedia Shockwave requires deep reverse engineering of closed-source binary formats, virtual machines, and undocumented rendering engines in Rust and WebAssembly.
What it would actually take: Requires disassembling legacy Shockwave/Director binaries (x86), reverse engineering the Lingo bytecode VM, chunked container file formats (RIFX/DIR/DXR), and proprietary 3D/audio subsystems. Implementation demands deep systems programming in Rust and compilation to WebAssembly using WebGL/WebGPU for emulation, built by expert systems engineers over years.
Discussion
1 comment analyzed.
Competitors mentioned: C++
Competitors
Other products that read as similar to this one — 252 launches clear the similarity bar, closest 8 shown.
Attention rank: #109 of 253 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 125 days after the earliest competitor.
- Iron-Wolf · hn · 2026-02-21 · 88 upvotes · similarity 0.50
- z2rs · github · 2026-09-18 · 32 upvotes · similarity 0.48
- 2D RPG base game client recreated in modern HTML5 game engine with AI · hn · 2026-03-10 · 11 upvotes · similarity 0.47
- a Rust ray tracer that runs on any GPU · hn · 2025-11-03 · 95 upvotes · similarity 0.45
- Quake in the browser, with procedurally generated levels · hn · 2026-06-22 · 5 upvotes · similarity 0.45
- A WebGPU-based browser engine with "Blam "-style physics · hn · 2026-01-15 · 5 upvotes · similarity 0.45
- RetroTick · hn · 2026-02-27 · 195 upvotes · similarity 0.44
- Afterburner · hn · 2026-06-14 · 6 upvotes · similarity 0.44
Other launches for this product
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.