132 pointsby tripplyonsJun 6, 2026

14 Comments

eigenspaceJun 6, 2026
Very cool. Too bad this doesnt seem to work as a PWA, or am I jusr missing the button on Android Firefox?
parastiJun 6, 2026
You have to use "Add to home" menu item on Firefox for Android. But this web app doesn't seem to be a PWA.
ameliaquiningJun 6, 2026
You could send a PR. It's reasonably straightforward to add a manifest to make the app installable (https://developer.mozilla.org/en-US/docs/Web/Progressive_web...), and to use Workbox to make it work offline since it's fully static (https://developer.chrome.com/docs/workbox).

The one caveat is that a PWA needs an icon but the project doesn't currently have one, so you'd have to design, find, or LLM-generate one.

dmitrygrJun 6, 2026
Ok. So what’s interesting here, presumably, is that this isn’t a wasm GBA emulator (which also exist and work). This is the game itself compiled to wasm. Even though no official source code was ever published, there was a community based decompilation.
tripplyonsJun 6, 2026
Yes, it a recompilation of a community decompilation!
LucJun 6, 2026
fc417fc802Jun 6, 2026
How long until this is DMCA'd? How has the project it's based on stuck around for so long? Do I perhaps misunderstand what this is? https://github.com/pret/pokeemerald
mathgeekJun 6, 2026
It's a port of a disassembly that requires you to provide your own ROM. The legality of such things is a tangled web that anyone producing them needs to navigate very, very carefully.
yw3410Jun 6, 2026
Interesting; but the GitHub project linked seems to have the original animations from the ROM.
mathgeekJun 6, 2026
It's mostly argued around or against the application of fair use. I suggest consulting a lawyer if you're truly interested, as it quickly gets into legalese around what constitutes ownership, distribution, etc. Throw in a lack of extensive case law and you quickly get into opinions rather than legal bases.
derefrJun 6, 2026
I get the sense that these disassembly/decompilation projects believe that some types of IP-laden asset data can be shipped embedded into the project — not necessarily "legally", but in that they'll likely get away with doing so indefinitely — as long as:

1. those assets are stored in proprietary formats that only the game code itself understands, and

2. no tool exists in the project to extract the assets from these proprietary formats into open formats, unless that tool itself exists only in source-code form in the codebase, and requires the ROM as an input to compile it (even if in the case of such a tool, the ROM is doing nothing but serving as a "key" to unlock compilation.)

Basically, if you have to prove you have your own copy of the IP in order to make their embedded copy of the IP "legible", then it's very hard to construct an evidence-based DMCA takedown order that actually makes any coherent point about the project "distributing" said IP.

That being said, shipping assets like this at all, even if you "can get away with it", is ultimately just a kind of laziness / shortcut-taking. They do it because there's either no clear/simple/obvious way to automatically extract the given asset data from the ROM (e.g. because the relevant data is split up into various data planes + metadata bits that are stored "exploded" all over the ROM), so they just did it once by hand, committing the results; or because there's no clear/simple/obvious way to store the extracted asset data such that a regular compiler/assembler natively understands how to embed it into the binary in the particular form it was found in the original ROM. (Remember, re-assembling/compiling to the original ROM is always the test these projects use to ensure their disassembly/decompilation is preserving semantics. So they need to replicate every weird layout quirk the original dev tooling imposed upon the original ROM. And sometimes the original dev tooling included special-purpose domain-specific asset-codegen tools that aren't part of regular compiler toolchains.)

What these projects should actually be doing, is taking on the schlep: writing the extract tooling anyway, even if it's just "copy these bytes from here and these bytes from there, and spit them out as hex in an .asm file with this header"; and/or writing matching asset-codegen tooling to the tooling that likely existed in the platform SDK, to run before compile/assemble time, converting the extracted ROM asset files into a form (probably a bunch of little assembly files) that will land in the right places when linked back together to form the original ROM.

LplololopoJun 6, 2026
How is this a port which requires you to provide my own ROM?
oompydoompy74Jun 6, 2026
I’m of the opinion that projects like this should start hosting Forgejo instances in countries with favorable laws and just mirroring to Github for exposure.
elmt35Jun 6, 2026
or something decentralised, like radicle (https://radicle.dev)
hawkiceJun 6, 2026
Confirming that saving genuinely works. Interesting stuff. Wonder if we can get trades working too.
tripplyonsJun 6, 2026
Yeah, I made sure saving worked correctly
ceroxylonJun 6, 2026
First thing I checked as well! I've been Poke-sniped, there goes a few hours.
itsthecourierJun 6, 2026
some weeks ago I made a Gameboy emulator from zero in rust and then exported it to wasm

https://holy-lake-f6df.sdreyesg.workers.dev/

took me 3 hours with Opus. Opus knew the whole ISA, clock, bus quirks, etc. from their training without any external docs

mathgeekJun 6, 2026
Likely because all of the external docs were already in its training set.
tripplyonsJun 6, 2026
Yes, this project was made in around 15 hours of Codex.
oceanskyJun 6, 2026
Next step: 100% browser javascript pokémon emerald.
vorticalboxJun 6, 2026
New LLM benchmark?
gobdovanJun 6, 2026
Any way to get sound?
tripplyonsJun 6, 2026
I have not added that yet, but it would probably be quite easy to throw a few prompts to Codex to do so.
weird-eye-issueJun 6, 2026
I did a Pokémon Crystal playthrough several months ago, still great games!

I used an emulator on my laptop with increased speed so it made everything like walking and combat way faster which was really nice and I probably would have given up if it wasn't for that

danielrmayJun 6, 2026
Super neat. I'd love to see what it would be like to play with more modern &intuitive touch controls instead of just the D-pad and A/B.
firefaxJun 6, 2026
Why Emerald -- is classic already done?

If anyone has emulator suggestions, I recently attempted a playthrough and found that midway through my copy of red, the game was corrupted? Oddest thing -- hadn't reading the point where you do the "Missingno trick" near cinnebar.

Anyways, I suspect the save got corrupted somehow but it made me swear off emulation and try a physical copy. (Which had the battery I replaced fail... it's been a comedy of errors).

patrickcorriganJun 6, 2026
Try https://afterplay.io it’s cross platform, saves every 20 seconds and keeps your last 50 saves which you can recover from if anything goes wrong
jeremyloy_wtJun 6, 2026
Emerald is well regarded as the best of Generation 3, which is the final of the traditional 2D games and can trade with Fire Red/Leaf Green (remakes of the classic)

So you have available all of the original Pokémon

tripplyonsJun 6, 2026
I chose Pokemon Emerald because it is my favorite of the games that have been disassembled!
InnittechJun 6, 2026
29 FPS for me, what hardware are you using to get a hundred thousand FPS?
_vertigoJun 6, 2026
iPhone 13. Did you change the slider at the bottom?
InnittechJun 6, 2026
Yeah, just found that. Now I'm getting 3000+FPS on my ancient Thinkpad T520.
zuzululuJun 6, 2026
Nintendo lawyers intensifi
deadbabeJun 6, 2026
What kind of mods and new features could be added?
wild_pointerJun 6, 2026
There should be 2 options for speed, regular and sped up. Then there should be a key to speed the game up. When I was a kid, it was the space key for GBA. You could have the normal game and skip the boring parts fast.