Hacker News new | past | comments | ask | show | jobs | submit login
N64 WASM (github.com/nbarkhina)
131 points by tosh on Feb 22, 2022 | hide | past | favorite | 23 comments



WASM debugging is not non-existent, read up here: https://developer.chrome.com/blog/wasm-debugging-2020/

Just trying to point you in the right direction as many projects are now using WASM and the debugging tools are useful. good effort


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.


Awesome that's amazing thanks for posting, im blown away


Darn, I thought this was going to be a WASM runtime that runs on the N64.


If we had that, how many n64 implementations could we stack?

More generally, what’s the most nested Turing machine ever built?


You might love this article from page 14 of PoC||GTFO #20:

https://www.alchemistowl.org/pocorgtfo/pocorgtfo20.pdf

(warning: it's a relatively big PDF file, which also works as a .zip file with resources)


Zero. No Turing machine has ever been built. The tape needs to be infinite to be a Turing machine.


What's the problem with adding more tape as needed? You don't need a literally infinite tape to have infinite tape from the machine's POV.


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.


Turing machines don't have pointers, just offsets from the current position. Since you can't move infinite steps, you can still use finite offsets.


Good thing is there is no halting problem when using 64bit pointers.


GP probably meant something among the lines of: "What is the most nested turing complete system ever built"


You are correct, this is what I meant.

I've found "self-interpreter" implementations that aim to be short

https://arxiv.org/html/cs/0311032

https://codegolf.stackexchange.com/questions/585/self-interp...

But I haven't found anyone yet that optimized for actual number of recursive implementations on a real machine.


Can you prove that statement in finite time?


This works amazingly well! Tried out Mario 64 - some lag during 2d overlays but gameplay was very smooth and this is on a 2015 mbp.


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).


You use an outdated version of chrome to use an adblocker?

What's wrong with UBlock Origin?


They thinks manifest v3 is already the only allowed method.


To be fair, by what I recall 007 and Turok both ran like garbage on any emulator... Unsure if that has changed any.


Where do you get the Roms tho


the rom depot - you’re welcome


archive.org has complete collections of many systems, including the N64.




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

Search: