This is something I often notice whenever I see a first-generation Pokémon game being played on a Game Boy emulator. It might be present on real hardware as well, but I don’t have that to test.
When the player moves around so that the map has to scroll, and there are also NPC sprites present on the map, the other sprites tend to lag a few pixels behind the scrolling motion; it takes a couple more frames for the sprites to move into their correct position. Here’s a demonstration in Pokémon Yellow, recorded in mGBA:
And here’s Pokémon Crystal for comparison (targetting the Game Boy Color), where there is no such effect:
I have a number of hypotheses why this might happen:
- This is an inaccuracy in the emulator. Given that I remember seeing this in probably every emulator in which I tried, I regard this explanation as rather improbable.
- This is a limitation of Game Boy’s hardware sprite support, which emulators dutifully replicate, and it was fixed in Game Boy Color.
- This is a bug in the scrolling subroutine, fixed in Generation II games, and in principle it should be possible to backport the fix; the issue just wasn’t considered significant at the time.
- This is a deliberately inserted artefact meant to compensate for LCD ghosting or a similar effect, which was rendered unnecessary in Generation II thanks to Game Boy Color’s improved display.
Which one of these is the closest to truth?