It is the safest and easiest way, but most netplay clients are capable of doing frame delays without desynching for a while. Project64k can take 2 or 3 Smash64 matches before desynching, sometimes more sometimes less. Mupen64k is just a little better. Mupen++ or something does not desynch at all ever, except maybe after 30 minutes. When the packet doesn't arrive in time the game suffers an FPS drop, the expected frame delay is calculated using the ping before the game starts. Computer related FPS drops don't cause desynchs either in these emulators.
That "kaillera hack" thing would desynch in less than a minute, which was unplayable. But the Dolphin team is unrelated to that so I might as well not bring it up again.
The main problem with netplay theoretically desynch-wise are random numbers. In Smash64 there was no issue with random numbers sans random stage select, probably because the N64 has no internal clock. But GCN games may, for example, get the random seed from the system's clock, so that has to be synced up for example. Not to mention it may have more accurate counters probably that the only way you'd be able to sync random stuff is to have it precoded into Dolphin, which is very hacky.
I'd try working on it, but I don't know C++ [only C#, Java, PHP], emulation theory or anything related in general, and I just can't be assed to learn both.
That "kaillera hack" thing would desynch in less than a minute, which was unplayable. But the Dolphin team is unrelated to that so I might as well not bring it up again.
The main problem with netplay theoretically desynch-wise are random numbers. In Smash64 there was no issue with random numbers sans random stage select, probably because the N64 has no internal clock. But GCN games may, for example, get the random seed from the system's clock, so that has to be synced up for example. Not to mention it may have more accurate counters probably that the only way you'd be able to sync random stuff is to have it precoded into Dolphin, which is very hacky.
I'd try working on it, but I don't know C++ [only C#, Java, PHP], emulation theory or anything related in general, and I just can't be assed to learn both.
