Here’s a cool hack for those of you wishing to play some retro multiplayer SNES games online!
[Michael Fitzmayer] is a resident hacker at shackspace; der hackerspace in Stuttgart. He’s come up with this clever little ethernet adapter network-bridge that can share local controller-inputs over the internet. The entire project is open-source, and readily available on github. It’s still in the early stage of development, but it is already fully functional. The firmware is small and will fit on an ATmega8, and by the looks of the component list it’s a fairly easy build.
He’s even integrated a switch mode (hold B and Y during boot), which avoids trying to figure out which controller will be player one! After all, don’t you remember untangling the controller cords, trying to figure out which one is which?
We know you had a favorite controller and would give the other “crappy” one to your guest.
Example video is after the break.
[Thanks Hadez]
OMG, my childhood is back! *.*
This would only work in instances where game state doesn’t need to be synced. Something like Tetris Attack would never work using just input sharing. This style of network play is also prone to de-syncing just through packet loss.
Still, it’s pretty nifty.
That is an excellent point!
Exactly what I was going to say.
Pretty cool idea! Seems to work alright but it’s never going to be very accurate because of latency and differences in random game events. You’d have to sync the consoles memory and stuff to overcome this.
http://wiki.superfamicom.org/snes/show/Ports+%26+Pinouts
I wonder feasible it is to sniff and inject the ram, and probably the clockline too.
I also have been wondering how much easier XBAND would be to make nowadays, with the improvements to IDE’s, library wrappers, compilers and debug tools.
Also with the snes hardware being much more understood. I’d love a new xband with modern servers.
https://en.wikipedia.org/wiki/Kaillera
and it works REALLY well granted both sides have a low latency connection
Kaillera has access to the CPU, this hardware doesn’t and thus will suffer from the problems listed above.
It could work if there was only one console and the video signal was also shared to the non-console location. Sort of like OnLive.
regarding the desync: you dont need to run this on two machines. you could just have one host machine receive both inputs and send the audio and video result back to the client.
vpoko beat me to it
Hey!
Thank you for the comments and the interest in this project. It makes me a little bit proud to see it here on Hack a Day. :)
Anyways, you guys are right, regarding the latency problem and the issues with random events. But it was a very good (and easy to accomplish) starting point while developing the hardware (within 4 weeks).
But my personal main goal is to create some kind of server controlled BBS or online game, using homebrew software to handle the incoming and outgoing data. In fact, the controller ports are just serial ports, at least from a technical point of view. A suitable PS/2-to-SNES keyboard adapter is already finished.
About the XBAND from the mid 90s: It was practically the same technique, but it used RAM patches to avoid the random event issues. This could be done using Romhacks on a flash cartridge. We’ll see. :)
If you want to help in the development of this project, join us in #retrotardation on euIRC. We’re also working on a similar Gameboy Classic / Super Gameboy project.
Greetings
Michael
PS: Please be indulgent; english is not my native language.
I saw this and I immediately thought of XBAND.
https://en.wikipedia.org/wiki/XBAND
It’s crazy to think that I started playing online games over 20 years ago.
This is pretty cool, but as has been stated, sync issues will occur in many cases. One option might be to use one console and stream the a/v output through a capture device.
“We know you had a favorite controller and would give the other “crappy” one to your guest.” Serious gamers would bring their own favorite controller!
Software version.