Hacker Newsnew | past | comments | ask | show | jobs | submit | banteg's commentslogin

A showcase site for Warcraft III's UI recreated as web components.

BLP textures are decoded client-side, borders use WebGL nine-slice rendering, and hero portraits are live 3D models. Four faction themes, all switchable with one prop.

Built with SolidJS, TypeScript, and the war3-model library.


the version you had is a 2014 remake, it's quite different from the version i've recreated from 2003. this one only existed as for win32. my version should run on linux, and even if it doesn't, it's all open source, so should be easy to patch and have it work forever.

the whole process is thoroughly documented in the repo

https://github.com/banteg/crimson


Crimsonland (2003) is a top-down shooter that shipped as a stripped DirectX 8 binary with zero symbols. I decompiled it with Ghidra, validated behavior with WinDbg and Frida, and rewrote it from scratch in Python/Raylib — 46,800 lines matching the original behavior faithfully. The write-up covers static and runtime analysis, reverse engineering custom asset formats, and the full rewrite process. Code is on GitHub and it's playable now via uvx crimsonland@latest


Very fun use of an agentic loop :). Do you have any info/data about how many tokens this ended up consuming in that time?


Wow! What a blast from the past. I remember 13yo spending day after day on this game despite being an avid crpg player those days.

Going to give this a spin after work. Thanks for the work and the writeup!


.....python? Why a slow scripting lang?


there is https://marimo.io/ that does all this and more


we just stream stablecoins every second https://llamapay.io


I've assembled a full list of frozen accounts. Most notable are Polkadot auction proceeds ($90M) and Iconomi ($34.5M).

https://gist.github.com/banteg/f61d256d12158b8c344d7889266f4...


How did you do this? Did you write a Js script to scan the block chain using web3?


Right, I wrote a script to find contracts with the matching code. See web3.eth.getCode.


what code? can you be more specific? Are you just taking the first 4 bytes keccak(initWallet(something somethign))?


I've assembled a full list of frozen accounts. It includes Gavin Wood's Polkadot auction proceeds ($90M) and Iconomi wallet ($34.5M).

https://gist.github.com/banteg/f61d256d12158b8c344d7889266f4...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: