11
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 01 Sep 2024
11 points (86.7% liked)
nostupidquestions
112 readers
1 users here now
founded 2 years ago
The thing is, you don't want to "fix" that.
Your x86 is a supercomputer from an alien world compared to an NES. It's not just extremely faster, it works in entirely different ways physically.
Some features of old console games rely on a deep understanding of the entire hardware of the console. As you wrote the game in assembly language, talking directly to each individual hardware component, you had to follow certain rules from the operating manual. There is no operating system doing this for you. Now, what happens if you don't follow the manual strictly?
There is some undefined behavior that still works reliably, if you just get the timing for a certain instruction to a component just right.
If you now were to naively interpret the instructions in an emulator, even at exactly the right timings according to the frequency of processor, the game would suddenly be broken, because your emulator is missing micro corrections for signal delay that the original console had due to physical properties.
So even making the game run as it would on the console is a major challenge.
If you add optimizations in one place, because of your one level stuttering, it might break dozens of other games. The emulator doesn't want to be a software to play your game as well as possible. The emulator wants to replicate the way the original console worked as perfectly as possible. Your game stuttering exactly the same way as you remember it is a sign of a good emulator.