Hacker News new | ask | show | jobs
by Karrot_Kream 2875 days ago
You can already put ROMs on IPFS, and if you use a JS Emulator and point it at a ROM in IPFS, well there you go.
1 comments

Good idea; I tried that. Unfortunately IPFS doesn't yet seem reliable. Or at least I couldn't get it to work very well. I'll try again though.

Wanna collab? Shoot me an email and we can work it out. I'm really interested in getting this concept running. If only IPFS were low latency and easy for average gamers to upload files to, that seems a perfect fit.

I was hoping that as users play games, they would also upload the games to other people who want to play. That way there's no scarcity of server resources. You could fit ~40 n64 games into 1GB, so it's not a lot of bandwidth.

IPFS definitely has high latency, but you might be able to combine this with the Web Storage API [1] to compress and then store the ROM data for local use. I'd be interested in a collab, is your email in your profile?

1: https://developer.mozilla.org/en-US/docs/Web/API/Storage

Yeah! We're thinking along the same lines. I think with a bit of work, libretro can be modified to do it: https://github.com/libretro/parallel-n64

It's already been ported to the web. https://medium.com/webmr/n64-vr-with-javascript-e188de42ced5

The trouble is performance. N64 emulation is all software rasterization based, but it can be rewritten to use WebGL. It's just a lot of work that no one's done yet. RetroArch runs at 40fps because it can use SSE ops, which is beyond what browsers can do currently.

I think it would be possible to ship an Electron app with a local build of Retroarch, modified to export the rom's game data and selectively replace the draw calls with other ones. That way you can basically swap out starfox with mario, if you wanted. If any of this sounds interesting, shoot me an email (see profile).