The NEW Build Your Own Arcade Controls

Main => Software Forum => Topic started by: Keroppi on May 09, 2008, 01:53:48 pm

Title: MAME networking (linking) functionality?
Post by: Keroppi on May 09, 2008, 01:53:48 pm
Does mame implement any sort of network linking functionality? I have not been able to find any information on the subject.  :dunno

Before I get flamed, let me be clear I am not talking about the Kaillera net play, or any garbage like that. I have no need to play Street Fighter over the internet, and I respect the mamedevs POV about Kaillera, as well as Saint's coinciding wishes.

I am talking about emulation of the linking functionality of the original machines that supported it; maybe a driver to run the original communications over a serial/parallel/enet connection?

I fully understand the mamedevs avoidance of novelty net play stuff, but I figure with their noble approach to an accurate-as-possible low-level emulation of every machine, I would assume that the linking would be emulated as well, considering it was part of the original programming of the relevant machines...

Any help would be appreciated, I am planning to build a dual cabinet, and would like to accurately emulate the original dual linking systems, if it's possible. Thanks!!
Title: Re: MAME networking (linking) functionality?
Post by: u_rebelscum on May 09, 2008, 05:49:30 pm
Not yet.  :( There's been talk about emulating the communication part of connected cabs, but there's a few blocking points.

A. Latency.  Many of the connected arcade cabs had very low latency.  Some weren't as low as others, of course, but with the setups of 10/100/1000 mbit ethernets, different wifis, dsl, cable, or (shutter) dialup, plus the overhead of emulation, there are many cases where even these lenient games won't work.
B. Different communication methods, protocols, etc.  Mame would prefer to implement a "generic" way to emulate the hardware, without hacks & documenting the hardware.  Not easy with all the differences (not impossible, either, but above my head of sure).
C. Documentation (or lack thereof).  Easier to emulate with documentation.
D. Confusion with "(inter)netplay".  And all the reasons mamedev wants to stay away for (inter)netplay.


The latest I've read (but I'm not an "insider"), is that it's possible on (low latency) gigabit ethernet and faster.  However, the "best" way (documentation, latency, ease of programming, ease of support, and stay away from confusion with internetplay) is to emulate the two (or more) cabs on the same computer, and keep the inter-cab communication inside that same computer.

As mentioned before, mame's not ready for this yet, and has aways to go before it is.  So to paraphrase others, "Sit back and enjoy way comes your way or start coding; and a lot is in the pipes already."  :D
Title: Re: MAME networking (linking) functionality?
Post by: SGT on May 09, 2008, 09:26:06 pm
On a related note and if I'm reading this right, according to the WIP the .7 version of the M2 emulator has linking working with Daytona USA via a local network.  Sounds exciting.  See the first post of the thread:

http://www.speksnk.org/foro/viewtopic.php?f=50&t=66973&sid=3a33133dbadd0fb70e4d6e08c1f645ae

Also speaks of Indy 500, and Sega Rally Championship working in multiplayer mode.

Title: Re: MAME networking (linking) functionality?
Post by: Jdurg on May 09, 2008, 10:23:14 pm
Yeah, it would be interesting to see MAME properly emulate SSF2: Tournament Edition.  I remember seeing it in action at an arcade here in the US back when I was younger.  Was there for maybe two days before the arcade operator replaced it with a bunch of other CPS2 games.

The only way I could see it emulated would be to properly emulate all 8 machines separately on the same computer using 8 different "instances" of MAME.  They'd then have to emulate the networking the systems have and somehow allow you to switch which "machine" you're looking at.  I would assume that would require a great deal of processing power to emulate all 8 machines at the same time.
Title: Re: MAME networking (linking) functionality?
Post by: DaOld Man on May 10, 2008, 06:27:10 am
I too am interested in doing this.

I was thinking of putting VGA switch on one cab, to switch the monitor between its computer and its neighbors computer. Would also switch the keyboard emulator between the two computers.
That way one cab can share the other cabs computer, running the game, both monitors, and and both control panels  on one computer.

I think this is feasible, although I havent thought about it a whole lot.
It would probably only work with two cabs, and I hate the idea of all the cables between the two cabs.
Networking would be much sweeter.
Title: Re: MAME networking (linking) functionality?
Post by: Keroppi on May 10, 2008, 09:45:29 pm
Not yet.  :( There's been talk about emulating the communication part of connected cabs, but there's a few blocking points.

A. Latency.  Many of the connected arcade cabs had very low latency.  Some weren't as low as others, of course, but with the setups of 10/100/1000 mbit ethernets, different wifis, dsl, cable, or (shutter) dialup, plus the overhead of emulation, there are many cases where even these lenient games won't work.
B. Different communication methods, protocols, etc.  Mame would prefer to implement a "generic" way to emulate the hardware, without hacks & documenting the hardware.  Not easy with all the differences (not impossible, either, but above my head of sure).
C. Documentation (or lack thereof).  Easier to emulate with documentation.
D. Confusion with "(inter)netplay".  And all the reasons mamedev wants to stay away for (inter)netplay.


The latest I've read (but I'm not an "insider"), is that it's possible on (low latency) gigabit ethernet and faster.  However, the "best" way (documentation, latency, ease of programming, ease of support, and stay away from confusion with internetplay) is to emulate the two (or more) cabs on the same computer, and keep the inter-cab communication inside that same computer.

As mentioned before, mame's not ready for this yet, and has aways to go before it is.  So to paraphrase others, "Sit back and enjoy way comes your way or start coding; and a lot is in the pipes already."  :D

Thanks for the response. I fish I COULD code, then I'd get right on it.  :)

A. I don't think latency would be a problem with gigabit ethernet. It's probably the only interface that could handle it (aside from my 10gb infiniband), and the others you mentioned (wifi, dsl, dailup, etc) should not even been considered, as we are trying to emulate the functions of the original machines, NOT play over the internet...

B. I agree it wouln't be easy. You are correct, they would have to implement a generic driver (just as they have for pretty much every other subsystem)

C. I'm sure it's easier with documenation, but they have managed to emulate 100s of methods and protocols for various functions in games. Surely they weren't ALL documented?

D. If implemented correctly, there would be no confusion to (inter)net play, because you couldn't USE it for internet play. For example if MAME sent/received proprietary packet headers, or if configuration required you to use an automatic private ip (169.xxx) IP, or a million other things they could do to restrict said interface from external access...all while using a generic driver for standard machines...

I don't forsee managing emulating communication capable cabs on one machine. Hell you can't run one instance of SF Rush, much less TWO. I think they would have to be on separate machines. I can understand the process being very difficult to accomplish, and/or it even being lower on the to do list. But considering their painstaking work to accurately emulate all these machines at the lowest level, I just refuse to believe that they would just "skip" this portion of these machines...
...maybe you're right and they're just not ready for it yet. But how long do you think until they are? Hell, I figure at least 60-80% of the machines are is perfectly emulated as they hoped to accomplish...
Title: Re: MAME networking (linking) functionality?
Post by: headkaze on May 11, 2008, 09:06:21 am
A while ago I was working on a little project called MultiMame (it was called that before the other program with the same name was released). It's when I first implemented code to inject keys into Mame's Raw Input system.

The idea was to add Kaillera support for vanilla Mame so that it wouldn't break their licence agreement. I got it working and tested it with a PC running as server on localhost and another PC running as a client on my LAN. I played Street Fighter for testing and while it did work, as you can imagine it eventually goes out of sync until the two players are in different places on each PC trying to fight someone who isn't there.

The reason why kaillera works with that special build of Mame (that the mamedev's don't like) is because it sends keys to each PC synced per frame. You need per-frame syncing so it won't get horribly out of sync.

So in conclusion the only way I can see Mame ever adding support for network play is a derivitive that doesn't break it's licence by releasing the full source. AFAIK they broke licence because kaillera is closed source and they couldn't include it even though the actual changes in Mame's source were available for download.

As for using a gigabit LAN, unfortunately I only have a 100 Mbit network so I couldn't say. But there were other issues with Kailera that I didn't bother trying to address because of the latency. Like the fact you have to open a dialog in the kaillera dll to select a server or enter an IP address. I was going to write some API hacks to enter this into the kaillera window while keeping it hidden.
Title: Re: MAME networking (linking) functionality?
Post by: Keroppi on May 11, 2008, 03:05:24 pm
Thanks for your reply. But with the refernces to Kaillera, I think you are missing my point. I don't want what Kaillera does. Th netplay you speak of is not my intention, or the implementation I am looking for. SFII only had one championship version with linking capability, and unless I am mistaken, you aren't talking specifically about that machine.
There should be no "frame sync" because I am not trying to "hack" a 2player single screen/single cab machine over the internet with a client/host config like Kaillera does. I am not talking about enabling anything that the original machines were not capable of, or adding any new functionality. I am talking about replicating/emulating the original linking/communication capabilities of the particular machines that had them. Such as as Virtual On, or Cyber Sled, or any of the dual-sitdown racing machines. I just want to be able to completely emulate the original machines.
Title: Re: MAME networking (linking) functionality?
Post by: headkaze on May 12, 2008, 02:32:19 am
Thanks for your reply. But with the refernces to Kaillera, I think you are missing my point. I don't want what Kaillera does. Th netplay you speak of is not my intention, or the implementation I am looking for. SFII only had one championship version with linking capability, and unless I am mistaken, you aren't talking specifically about that machine.
There should be no "frame sync" because I am not trying to "hack" a 2player single screen/single cab machine over the internet with a client/host config like Kaillera does. I am not talking about enabling anything that the original machines were not capable of, or adding any new functionality. I am talking about replicating/emulating the original linking/communication capabilities of the particular machines that had them. Such as as Virtual On, or Cyber Sled, or any of the dual-sitdown racing machines. I just want to be able to completely emulate the original machines.

Oops didn't read your whole thread sorry, I get what you were asking for now.
Title: Re: MAME networking (linking) functionality?
Post by: bolt84868 on April 23, 2015, 12:32:51 am
 :cheers:When I was trying to download MAME the other day, I downloaded the developer binaries (because I didn't want to use the installer) and found an html document called "index", but it looks like a link is possible, you just might need a host computer to do it (like a game server). :blah: my head hurts from telling this. :timebomb:
Title: Re: MAME networking (linking) functionality?
Post by: SailorSat on April 23, 2015, 09:27:55 am
Zombie Thread!

p.s. linking has been done as proof of concept.