ClientServerMAME v0.8 Beta1 - 模擬器

By George
at 2010-11-21T17:56
at 2010-11-21T17:56
Table of Contents
http://10ghost.blogspot.com/
ClientServerMAME v0.8 Beta1 is released. ClientServerMAME is a fork of MAME
(Multiple Arcade Machine Emulator) that allows players to play via the
internet.
ClientServerMAME v0.8 Changelog:
PEER TO PEER:
Player inputs are now broadcast in a peer-to-peer fashion. This means that
everyone must have port 5805 open on their router, but also reduces latency
since the client's commands don't have to bounce off of a server and come
back to him/her. There is still a server who has authority over the syncs.
The operating procedure now works like this:
The server starts the game and begins accepting connections.
When a new client connects to the server, the client has to be "accepted"
before he/she can join the game.
To be accepted, all of the existing accepted clients try to establish a
connection to that client. If *any* of them fail to connect to the new
client, the new client is rejected by the server.
Once the client is fully connected to all other clients, it enters the
accepted pool and is assigned a player in MAME.
Every frame, the server and all accepted clients publish what buttons they
will press 200 milliseconds from the current time.
If a client fails to publish their inputs and the 200 ms are up, everyone
waits up to 10 seconds for the client's inputs. If the client still hasn't
responded by 10 seconds, the client is kicked and everyone else continues.
All of this happens behind the scenes so as long as everyone has their port
forwarded or has a router with upnp (see below), the only difference will be
the reduced lag.
UPNP SUPPORT:
On startup, CS-MAME will try to use upnpc to forward port 5805 on your
router. If your router supports upnp, this may save you from having to
forward the port manually, but is known to fail on some routers, even on
routers that claim to support upnp. As a result, manually forwarding port
5805 is still the preferred method.
INPUT HANDLER:
The input handler is a complete rewrite. The previous version relied on the
server to be the authority and broadcast out the state of all of the
joysticks & buttons. In the new version, MAME commands are broadcast out from
each peer. Because this version is command driven, it is much more stable and
fixes most of the desyncs that were occurring in games such as wwfwfest (see
the tutorial for an example of desyncs in wwfwfest). With the new input
handler, desyncs are very rare, and only seem to occur when playing across
different platforms or processor hardware, or when I artificially raise the
packet loss to high values. Also, the game is in sync immediately after the
initial sync is sent, and it doesn't take time to wait for the games to get
in sync.
MASTER SERVER:
Based on people's comments, I've decided to look into supporting a master
server that can (1) advertise public games and (2) provide a forum for people
to meet and arrange games. In MAME there are thousands of games, so the best
system in my opinion would be one where you can post a list of games you want
to play and then the system tries to match you up with other people who share
games on your list. The master server can also check if you have port 5805
forwarded correctly and allow you to create public games where other people
can join your game while it is in progress. Unfortunately, virtual dedicated
servers are quite expensive, so I'm going to try to host the master server
from my PC at the beginning and then see if I can save up some $ to buy
hosting in the future. I've put a 'donate' button on the blog in case anyone
is interested in donating towards getting hosting and supporting further
development of CS-MAME & CS-MESS. Although there is a donate button, I want
to make it clear: ClientServerMAME is and will always be completely free and
open source software. You will never have to donate money to get the software
and play MAME/MESS online.
NES/SNES SAVE STATE SUPPORT:
You can see from this post that the save state support for NES & SNES is
currently a work in progress. I've been able to get NES save states partially
working, but there are still glitches that occur. I haven't had much luck
with SNES either, but I'm continuing to hack away at it. It will be a great
day when all of the SNES and NES library opens up to ClientServerMESS, so I'm
working hard to make that a reality.
BETA Testing:
The current source seems fairly stable for 1v1 play, but there are still bugs
when more than 2 players are involved. While I am working on these bugs, it
would be great if some people could volunteer to beta test the current
2-player version of the software. If you are interested, send me an email at
jgmath2000 [AT] gmail [DOT] com . Anyone requesting to be a part of the beta
should expect the software to have bugs, and should be prepared to take
screenshots and copy-paste the console output if CS-MAME crashes. If you are
looking for a stable version of CS-MAME 0.8, please wait for a final release,
thanks.
http://cloud.github.com/downloads/MisterTea/ClientServerMAME/ClientServerMAME_
0_8_BETA1_Setup.exe
※ 編輯: choan 來自: 140.112.121.97 (11/22 10:23)
ClientServerMAME v0.8 Beta1 is released. ClientServerMAME is a fork of MAME
(Multiple Arcade Machine Emulator) that allows players to play via the
internet.
ClientServerMAME v0.8 Changelog:
PEER TO PEER:
Player inputs are now broadcast in a peer-to-peer fashion. This means that
everyone must have port 5805 open on their router, but also reduces latency
since the client's commands don't have to bounce off of a server and come
back to him/her. There is still a server who has authority over the syncs.
The operating procedure now works like this:
The server starts the game and begins accepting connections.
When a new client connects to the server, the client has to be "accepted"
before he/she can join the game.
To be accepted, all of the existing accepted clients try to establish a
connection to that client. If *any* of them fail to connect to the new
client, the new client is rejected by the server.
Once the client is fully connected to all other clients, it enters the
accepted pool and is assigned a player in MAME.
Every frame, the server and all accepted clients publish what buttons they
will press 200 milliseconds from the current time.
If a client fails to publish their inputs and the 200 ms are up, everyone
waits up to 10 seconds for the client's inputs. If the client still hasn't
responded by 10 seconds, the client is kicked and everyone else continues.
All of this happens behind the scenes so as long as everyone has their port
forwarded or has a router with upnp (see below), the only difference will be
the reduced lag.
UPNP SUPPORT:
On startup, CS-MAME will try to use upnpc to forward port 5805 on your
router. If your router supports upnp, this may save you from having to
forward the port manually, but is known to fail on some routers, even on
routers that claim to support upnp. As a result, manually forwarding port
5805 is still the preferred method.
INPUT HANDLER:
The input handler is a complete rewrite. The previous version relied on the
server to be the authority and broadcast out the state of all of the
joysticks & buttons. In the new version, MAME commands are broadcast out from
each peer. Because this version is command driven, it is much more stable and
fixes most of the desyncs that were occurring in games such as wwfwfest (see
the tutorial for an example of desyncs in wwfwfest). With the new input
handler, desyncs are very rare, and only seem to occur when playing across
different platforms or processor hardware, or when I artificially raise the
packet loss to high values. Also, the game is in sync immediately after the
initial sync is sent, and it doesn't take time to wait for the games to get
in sync.
MASTER SERVER:
Based on people's comments, I've decided to look into supporting a master
server that can (1) advertise public games and (2) provide a forum for people
to meet and arrange games. In MAME there are thousands of games, so the best
system in my opinion would be one where you can post a list of games you want
to play and then the system tries to match you up with other people who share
games on your list. The master server can also check if you have port 5805
forwarded correctly and allow you to create public games where other people
can join your game while it is in progress. Unfortunately, virtual dedicated
servers are quite expensive, so I'm going to try to host the master server
from my PC at the beginning and then see if I can save up some $ to buy
hosting in the future. I've put a 'donate' button on the blog in case anyone
is interested in donating towards getting hosting and supporting further
development of CS-MAME & CS-MESS. Although there is a donate button, I want
to make it clear: ClientServerMAME is and will always be completely free and
open source software. You will never have to donate money to get the software
and play MAME/MESS online.
NES/SNES SAVE STATE SUPPORT:
You can see from this post that the save state support for NES & SNES is
currently a work in progress. I've been able to get NES save states partially
working, but there are still glitches that occur. I haven't had much luck
with SNES either, but I'm continuing to hack away at it. It will be a great
day when all of the SNES and NES library opens up to ClientServerMESS, so I'm
working hard to make that a reality.
BETA Testing:
The current source seems fairly stable for 1v1 play, but there are still bugs
when more than 2 players are involved. While I am working on these bugs, it
would be great if some people could volunteer to beta test the current
2-player version of the software. If you are interested, send me an email at
jgmath2000 [AT] gmail [DOT] com . Anyone requesting to be a part of the beta
should expect the software to have bugs, and should be prepared to take
screenshots and copy-paste the console output if CS-MAME crashes. If you are
looking for a stable version of CS-MAME 0.8, please wait for a final release,
thanks.
http://cloud.github.com/downloads/MisterTea/ClientServerMAME/ClientServerMAME_
0_8_BETA1_Setup.exe
※ 編輯: choan 來自: 140.112.121.97 (11/22 10:23)
Tags:
模擬器
All Comments
Related Posts
Jpcsp SVN r1868

By Lily
at 2010-11-21T13:51
at 2010-11-21T13:51
DeSmuME SVN r3868

By Kyle
at 2010-11-21T13:48
at 2010-11-21T13:48
PCSX2 SVN r4042

By Andy
at 2010-11-21T13:47
at 2010-11-21T13:47
x360ce v2.0.2.92 Beta 2

By Zanna
at 2010-11-21T09:12
at 2010-11-21T09:12
edgbla's Software Rendering Plugin 0.34

By Kama
at 2010-11-21T09:02
at 2010-11-21T09:02