torch2424 / wasmboy

Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
https://wasmboy.app/
GNU General Public License v3.0
1.4k stars 66 forks source link

Link Cable Emulation #34

Open torch2424 opened 6 years ago

torch2424 commented 6 years ago

Look into Link Cable Emulation

Goal would to be have it done over WebRtc with a peer to peer connection, using something like simple-peer or PeerJs

torch2424 commented 6 years ago

GB Dev perspective:

http://gbdev.gg8.se/wiki/articles/Serial_Communication_(Link_Cable)_Tutorial

torch2424 commented 6 years ago

Hardware perspective:

http://gbdev.gg8.se/wiki/articles/Serial_Data_Transfer_(Link_Cable)

torch2424 commented 6 years ago

PlutoBoy has a link cable emulation: https://github.com/RossMeikleham/PlutoBoy

torch2424 commented 6 years ago

Our best bet is WebRTC. It provides a P2P like way to transfer data between two clients. It is also possible to.do serverless, by sending each other's signaling key through Email or some sort

https://github.com/cjb/serverless-webrtc

torch2424 commented 6 years ago

Here's another severless webrtc I found while out getting coffee 😄 https://github.com/owebio/serverless-webrtc-chat

torch2424 commented 6 years ago

Here's serverless WebRTC using QR codes:

https://github.com/AquiGorka/webrtc-qr

And a qr code reader:

https://github.com/schmich/instascan

torch2424 commented 6 years ago

https://peerjs.com/

I think we should go with that. They have a server already hosted for their service. And if it ever went down, we could simply roll our own real quick, and just change some values on the client 😄

Last thing I would check out: https://github.com/kgryte/awesome-peer-to-peer

torch2424 commented 5 years ago

Started some of this at: #229

FM1337 commented 4 years ago

how goes the progress on this?

torch2424 commented 4 years ago

@FM1337 I haven't started this beyond just mocking it out to get the game Alleyway working :o

That being said, looking back over this, seems like PeerJS is the way to go, so I just gotta find the time to do it :smile:

symful commented 1 year ago

Would be great if functions to transfer data between clients are configurable.