Ryan wrote:
This would be very cool to have working. I've often wondered exactly what all netplay needed to work, from a technical end. I get that latency is a key issue, but beyond that I don't see the big deal. I'm guessing the netplay parts merely send key presses and durations, passing them to the emulator as if player 2 was also at the same machine. As long as latency didn't go above say 100 or 150ms, I can't see how that'd be too big a deal, it doesn't hurt play of games like TF2 or CS much if at all. it could just be my own ignorance of how things work though.
The issue you run across with the SNES is that a lot of how the game reacts to what's going on depends heavily on the precise timing of inputs. Luck manipulation in particular is an issue there; any game that incorporates player input into its randomization is going to desync the moment one person's computer thinks the timing is even slightly different from the other's. Enemy AI will react differently with slightly different positioning of the characters. The list goes on.
TF2 and CS are built from the ground up expecting those kinds of inconsistencies, so the methods to deal with them are built in; specifically, there's one computer that is the 'master' and everything really takes place on that server. All the clients connecting to it just make a 'best guess' on what's going on based on the information it gets from the master server. With the SNES, it has to be frame-perfect, every frame. It's possible, but not easy, and you entirely lose the 'best guess' capability of netplay-based engines.