Note: This post was originally part of this everyweeks post, and has been edited to fit this blog.
Emulator development generally has a lot of ups and downs. Some days you'll be monstrously productive, other days it'll be a total slog to fix one or two minor bugs. This post is about one of those times :) .
Let's rewind a couple months to when I had just finished floating point op's and gamepad input (among some other things). At this point, many games still had some small graphical glitches, and a couple would even soft-lock on certain parts. Generally, debugging these weren't too bad, as it was a lot of just implementing/refining how the video hardware worked (in particular interrupt scheduling details), and a lot of games would get fixed at once and suddenly just work. There were a few cases though where games looked like they had conflicting requirements; usually this was just due to my own misunderstanding and was remedied by re-reading technical docs, but one of these in particular took a lot of effort to track down: