Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- I recently stumbled upon https://www.hackdex.app/ which is a lovely website dedicated to Pokémon ROM hacks.
It's a really vibrant scene, with a lot of different hacks that go all the way to fully-fledged games, but because it's so rich it can be a pain to find what is available and what the latest version of a given ROM hack is.
This website has a neat feature where you upload any base Pokémon ROM file, and it filters all available ROM hacks that are compatible with it via a neat UI. And of course it offers you a one-click download (well, in-local-storage-patch) to the given ROM hack.
Source code: https://github.com/Hackdex-App/hackdex-website
by teroshan - Quick clarification: I'm pretty sure there's no uploading at all; it uses local storage for the filtering too, which is important because uploading a ROM tends to be risky legallyby saghm
- > It is written in Haskell and Rust and this made getting it to work nicely in the browser, interesting
I imagine. What motivated using that combination?
by yjftsjthsd-h - (author; wife posted the thread)
Haskell is cool and I wanted to play with it.
Rust is cool enough, has libraries Haskell doesn't, can be faster, and is a way to stick the unavoidably imperative parts under the bed.
Browser was not in the original vision but turned out to be surprisingly painless-ish. Haskell can compile to wasm. Avoiding C-backed crates on vibes / for no particular reason happened to be quite helpful.
by nyuutsu - > nyuu.page
Is this in any way related to byuu, the SNES emulator author?
- No it's not related, sadly Byuu passed away several years ago.by 22c
- Doesn't the undo functionality cause it to store copyrighted data from the original ROM in the patch?by gblargg
- I think it's similar to adding a note to a book, and then removing that note, leaving you with a the original book. That scenario doesn't violate copyright law as far as I'm aware.
- (Author here, my wife posted this thread; it has no bearing on the question but I am told it is good to disclaim.)
You could quibble about what counts but the core is "yeah".
Ppf3-with-undo stores literal "hey, we expect byte n to be 'foo'. on apply, replace it with 'bar'. on undo, put 'foo' back. remember: the copyrighted byte is 'foo'". Touch every byte in some way and your undo data is the entire original.
Some patches literally touch one byte. Their undo is, indirectly or indirectly, a recipe for retrieving one byte of copyrighted data. Is that fragmentary enough that it is entirely in the clear? I have no idea.
by nyuutsu