본문 바로가기

EMULATOR/MAME Hub/CSMAME

ClientServerMAME 0.8a


CSMAME 0.8a is a first attempt to address desyncs that are creeping up. You can get CSMAME 0.8a here: https://github.com/MisterTea/ClientServerMAME/downloads .

Basically, there are three root causes of desyncs:

1) Bugs in CSMAME. These will be fixed as they are found.

2) Incomplete save state support in the core MAME architecture. I'm going to do my best to fix this.

3) Incomplete save state support for a particular machine. I can't really do much about this because there are so many machines and it would be impossible to fix them all.

I've fixed several bugs that fit under category (1) and (2). While category (3) is impossible to address, having (1) and (2) fixed will make CSMAME robust enough to deal with most issues in category (3).

Here's a list of the fixes from 0.8 to 0.8a:

-Fixed bug where the server clock was not being updated while a client was trying to connect. While this bug corrects several desyncs, fixing it introduced the side-effect that the server must now "catch up" all of the time that it spent sending the ROM to the client. The result is that the game will be emulated too fast for a few seconds after a new client connects until everyone reaches the current time.

-Several machine variables were not included in the save state, such at the random number seed and the emulation clock time. These have been added to the save state.

-Fixed bug where the server would occasionally miss a client message.

-Fixed bug where the client could enter new commands while replaying past commands after a desync recovery and thereby cause another desync.