> 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?
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
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 legally
> 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.
Doesn't the undo functionality cause it to store copyrighted data from the original ROM in the patch?
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.
That's not how patching a rom works. You directly replace data and the formats that let you undo have to put a copy of the original data in the patch file. So yes it is a risk.
You don't need a copy of the original data, you can simply store your change as a XOR so undoing it mean XORing it again.
However, if your change involves zeroing something out, you're back to storing the original data again.