Enabling DWARF support in Chrome DevTools for the first time was like magic! Didn't think it'd be possible to view the contents of variables at every frame, yet here we are.
Linux already overcommits memory so much you can imaging it's infinite, the big show-stopper is the 64 bit integers used to track it. We'd need infinite pointer sizes before we could meaningfully use infinite tape.
I tried 007 and it lags to much to be playable in Chrome but I have an old version on purpose to keep the adblocker, in Firefox it works great!
The biggest problem I have had with emulators is always sound though; it's often choppy even when the emulator does not lag!
What I would give to know why sound always becomes choppy when you emulate it, my solution so far is to just compile emulators until the audio works and copy'n paste that part of the code over to the emulator that has video working best!
Audio is hard in general and emulation probably even more so.
The main issue is that for games you want as low latency as possible, when you control things immediately it's easy to know when actual triggers happens, but for emulation you might need to copy or snapshot the entire state whilst under a strict timing deadline.
The options are, bigger buffers (easier to emulate, more time for things.. worse latency) or smaller ones (less latency, but timing is harder and if there is extra work that has to fit within the deadline).
Just trying to point you in the right direction as many projects are now using WASM and the debugging tools are useful. good effort