Post by Krusty on Mar 26, 2011 7:11:34 GMT -5
Change description:
Digitalghost has revamped the sync'ing process in MAMEHub. Here is the quote from his blog about it :
Friday, March 25, 2011
Massive change to inital syncing
A lot of people ask me "If everyone has to 'catch up' to the server, why is there an initial sync?". The answer is "because the same game doesn't load the same way twice".
Of course this doesn't make sense, so I looked into it. It looks like the biggest reason why the games don't load the same way is because memory isn't being cleared correctly, so I added some code in MAME to automatically clear all memory as it's allocated.
This lets me get rid of most of the initial sync process. Instead of sending a copy of the game's RAM, I now send a checksum. If the checksum doesn't match on the client, it means that the client loaded differently than the host for some reason and the sync fails. This means that some games that used to be playable might not work anymore. If you get a CHECKSUM FAILED error, please send me the MAMELog.txt for all players.
Massive change to inital syncing
A lot of people ask me "If everyone has to 'catch up' to the server, why is there an initial sync?". The answer is "because the same game doesn't load the same way twice".
Of course this doesn't make sense, so I looked into it. It looks like the biggest reason why the games don't load the same way is because memory isn't being cleared correctly, so I added some code in MAME to automatically clear all memory as it's allocated.
This lets me get rid of most of the initial sync process. Instead of sending a copy of the game's RAM, I now send a checksum. If the checksum doesn't match on the client, it means that the client loaded differently than the host for some reason and the sync fails. This means that some games that used to be playable might not work anymore. If you get a CHECKSUM FAILED error, please send me the MAMELog.txt for all players.
Approximate revision of change:
r278 is the actual revision containing these changes.
r279 is an update to enable verbose logging.
Reason for change:
Reduce the time and bandwidth needed for game synchronization.
Impact:
Users are experiencing a "checksum error" on the client side when trying to connect to certain hosted games such as those using the CPS1, CPS2 and SNK drivers.
It is not yet certain exactly which games have stopped working with the r279 update.
Support:
These errors will be addressed in the next update which should be sometime in April.
How you can help:
Respond to this thread with attached logs from both the client and the host if you encounter the "checksum error".
1) The clients mame will end automatically. Save the log.
2) The hosts mame will have to be ended manually*. Save the log.
3) Attach the mamelog.txt from both the client and the host.
4) Specify the (short) name of the mame ROM being tested that produced the "checksum error". (example: kof98)
* Close the empty command prompt that gets launched when you host a game.
Advanced Workaround:
Rolling back the version manually is not supported or encouraged by Digitalghost! The best thing to do is wait for the next update.
Except for NeoGeo games, rolling back to r277 is now an outdated workaround for the "checksum error". See the updated workaround below instead.
If you experience the "checksum error" as described above in your log then try deleting that games associated .cfg file.
Example: delete mamehub\dist\cfg\hsf2.cfg if you're getting the checksum error with hsf2.
You should not have to do this more than one time per game.
Either the client or the host or both will need to do this workaround. It depends on who still has pre-r279 .cfg files (?)
Update: The current workaround seems to work for most games impacted by "checksum error" except NeoGeo!
;D Big thanks to no for discovering this workaround on March 27th. ;D
Note:
This change took place on approximately March 25th, 2011.
All of my posts in the news section are from the perspective of a MAMEHub tester and do not necessarily represent Digitalghosts views.
Only Digitalghost provides the final word on MAMEHub.