Main > Main Forum

Networked Mame Games?

Pages: << < (4/4)

u_rebelscum:

Adding emulation of any arcade-networking raises a lot of issues.

The first was demonstrated in this thread: confusion between netplay (any game, bad to mamedev) and net emulation (emulate connections original game had).  When mame gets net emulation (and the news gets out), people with think that mame has netplay, and get mad when they find out it doesn't.  Imagine something like this thread, except not so nice, with 1000 mad newbies complaining over at mame.net.  This is enough for most of mameDev to want to stay away. ;)

Next is lag, or "ping time".  Most systems that connected directly to each other had very short lag times, even if the speed (bandwidth) wasn't anything near gigabit.  The games were written so that they need that short lag to stay synced, etc.  There are extra steps due to emulation (emulation of arcade "netcard" & protocol (x2, one per computer), PC OS & driver limitations (x2), PC card limitations (x2), and the network limitations, each adding to the lag time.  The only saving grace on this is the original speeds were mostly around the 1 to 10 megabit level.  This makes it possible that the faster 100 Mb & 1 Gb networks may catch up for added lag time.  Even so, I doubt any internet connections will have low enough lag times to work in most cases. 

The exception to the lag time problem are the internet or modem connected games.  However, this often was just to trade scores or profiles, which needed a central location to connect to, and didn't show in the play. 


Next is the emulation (of course).  And, no, the PC network card can't be used to do the emulating just like video cards can't.  The hardware token rings and other non-ethernet networks as well as the now stardard tcp/ip ethernet were used, and each will need to be emulated.

SavannahLion:


--- Quote from: u_rebelscum on March 23, 2007, 02:00:15 pm ---Next is the emulation (of course).  And, no, the PC network card can't be used to do the emulating just like video cards can't.  The hardware token rings and other non-ethernet networks as well as the now stardard tcp/ip ethernet were used, and each will need to be emulated.

--- End quote ---

Taht would be interesting if my cache of token-ring cards actually become valuable and needed again  ;D

u_rebelscum:


--- Quote from: SavannahLion on March 23, 2007, 01:29:45 pm ---Haven't we reached the point now where some of the more modern arcades run a stripped down Windows? I've seen BSODs on more than a few machines lately.

The segment of games that would require linking emulation would be relatively small. As more and more modern games are run on top of an OS like Windows, then there would be no doubt that the networking code (if any existed) would be TCP/IP or something similar.

--- End quote ---

Yes, but you're not thinking on the right level.

Mame emulates the hardware (CPU, video card, sound card, and if ever network card). 

The ROMs contain the software.  That means the ROMs for these games would include windows + drivers only for the specific network card in the cab.  Much like the voodoo video card, it doesn't help mame.

If mame correctly emulated the network card, mame would not worry about protocols at all.  The game packets the info in whatever protocol and sends it to the card.  Mame emulates the card, pretending to send like normal, but really just embeding the packet in a tcp/ip (or udp or whatever) packet.  When the packet gets to the other side, mame gets the packet and gives the game the packet the game expects in the protocol it expects.

OTOH, mame could fake emulate the card (think sound samples), but then mame would need to know the different protocols.  Harder to code IMO, and not as in tune with mame's goals as emulating the card.

That said, knowing the protocols would really help in emulating the network cards.  And it probably will be easier to emulate a tcp/ip over ethernet than a token ring over ethernet.


SavannahLion:

I think I see your point, but doesn't it go in the other direction too?

Someone mentioned that some controls are being sold standard with integrated USB controllers because the arcade cabs themselves are becoming more PC-like. On Happs, I see they sell what appears to be standard HDD's (Killer Instinct?), CD/DVD drives (Golden Tee), SIMMs and I'm sure a whole gammut of other components that were originally found only on PCs.

If these components are so readily interchangeable (correct me if I'm wrong), wouldn't the logic extend to NIC's as well? A 3Dfx GPU is a brand name as well as part of a very specific tool suite. It's not like you can plunk in a nVidia and expect it to run code specific for a 3Dfx GPU. But I doubt most people popping tokens is going to care about whether the NIC in a particular cab is from Linksys or 3Com. Linux has about a dozen core drivers that works for nearly every NIC.

I'm really making a lot of assumptions here. If the NIC is just a straight IC on the mainboard and the arcade manufacturer went with one supplier instead of the cheapest, then this discussion is probably moot and I'll kindly step out. :notworthy:

I'm not trying to be an ass or anything, I'm just trying to get my facts straight here.

u_rebelscum:


--- Quote from: SavannahLion on March 23, 2007, 04:48:50 pm ---I think I see your point, but doesn't it go in the other direction too?

Someone mentioned that some controls are being sold standard with integrated USB controllers because the arcade cabs themselves are becoming more PC-like. On Happs, I see they sell what appears to be standard HDD's (Killer Instinct?), CD/DVD drives (Golden Tee), SIMMs and I'm sure a whole gammut of other components that were originally found only on PCs.

If these components are so readily interchangeable (correct me if I'm wrong), wouldn't the logic extend to NIC's as well? A 3Dfx GPU is a brand name as well as part of a very specific tool suite. It's not like you can plunk in a nVidia and expect it to run code specific for a 3Dfx GPU. But I doubt most people popping tokens is going to care about whether the NIC in a particular cab is from Linksys or 3Com. Linux has about a dozen core drivers that works for nearly every NIC.

I'm really making a lot of assumptions here. If the NIC is just a straight IC on the mainboard and the arcade manufacturer went with one supplier instead of the cheapest, then this discussion is probably moot and I'll kindly step out. :notworthy:

I'm not trying to be an ass or anything, I'm just trying to get my facts straight here.

--- End quote ---

You're not being an ass. :)  It's just that mame and mamedev have a certain view that does not focus on short term fixes (usually ;)) or speed, but instead on ease of long term upkeep, OS independency, ease of understanding the code, and most of all "documentation of the original hardware over playablity".  Once you understand the "mamedev view", you can see why mame won't directly access the NIC.

Let me try a simple example:

Some arcade machines used 386 CPUs.  Does mame let the game directly use the PC CPU?  No, it emulates the 386 just like all other CPUs it emulates.  The same applies for all video cards, sound cards, hard drives, CD drives, joysticks, buttons, spinners and everything else (including NICs once they're added). 

If mame adds support for arcade NICs, mame will emulate the original hardware, and use an OS independent method of transferring the information.  Mame won't try to use the PC NIC to offload any emulation; the PC NIC will just be for transporting the encased info. 

And while it's possible to do it closer like you describe (as some emulators might try), it would be OS dependent, not portable, multiply the complexity of the networking code ( # NICs emulated *  # PC NICs supported), and probably too much a hack to even be close to be "emulation".

Pages: << < (4/4)

Go to full version