https://www.gamasutra.com/view/feature/131503/1500_archers_o...
The vast majority of details like animations are not implemented in the deterministic simulation. If we play our copies side by side, our villagers probably aren't animating exactly the same, the particle fx can be based on different random seeds (or just not present depending on culling or graphics details), etc. But anything that impacts gameplay is absolutely deterministic. It's OK if our villager is graphically facing left on my screen and right on yours, but the unit of wood they just chopped happened on exactly the same simulation frame.
Modern RTS games take this pretty far. In Company of Heroes when a tank blows up, people are thrown out and bits of it fly away and hit other units etc. The 3D FX is free to do whatever it wants to, with the one restriction that it cannot in any way impact gameplay. A tank can land on a soldier, but maybe it did on my screen and didn't on yours, so we can't make the soldier die! And in the simulation running on the game company servers, there aren't even any 3D graphics or physics running.
So the same technique can be used to upgrade old games. You run an invisible copy, and build a 3D version that looks at the location of the sprites and game state and makes it look pretty. Inputs in to the 3D version (you're probably rendering a 3D camera with perspective any maybe even rotation) are translated back to inputs to the 2D version.
This is absolutely fool proof in terms of maintaining consistency. It is guaranteed. But it's not a trivial task, you have to build a completely new rendering system in a way that's more complicated than you'd implement in a fresh game (say Diablo 3).
If there's a bug in the 3D version, the strike happens at the correct time gameplay wise, it just looks wrong.