Hey all,
Most of you probably know MAME (Multi Arcade Machine Emulator). Basically, it lets you play arcade games dating back from pong to arcade games circa 2006 on your PC. The volume of arcades supported by MAME is massive.
Some of you might even know about MESS. It's similar to MAME, but for consoles. With a single app you can play NES, SNES, Sega Master System, Genesis, N64, GBA, and a ton of others.
There's a program called Kaillera that allows you to play MAME games online with your friends, but it has some drawbacks:
-It only works for windows
-It does not gracefully handle dropped packets. The games will desync and become frustrating for all players if a packet is dropped
-It isn't open source
-It doesn't work with MESS, only MAME.
So I decided to write my own network wrapper around MAME & MESS, called ClientServerMAME & ClientServerMESS. I've been working on it for a few months now and at this point it is stable and fast. It also compares the memory on all of the players to resolve any differences that can occur based on network lag, floating point inconsistency, etc. This means that you can play for hours without worrying about the games going out of sync and becoming unplayable.
So basically this adds stable netplay to over 10,000 games, including every console game up to n64.
Here's a video of me trying to play super mario kart against myself using an internet simulator:
I am now working on a program called MAMEHub that will let players meet and arrange games. MAMEHub also wraps ClientServerMAME and ClientServerMESS (which are command-line programs) with a nice GUI interface so you don't have to be a command-line guru to use them.
You can get the binaries and source code here:
https://github.com/MisterTea/ClientServerMAME/downloadsYou can read more about it and follow updates on my blog here:
http://10ghost.blogspot.comLastly, here is a tutorial on using MAMEHub:
http://10ghost.blogspot.com/p/mamehub-tutorial.htmlEnjoy!