Super interesting (as usual for Displaced Gamers) part 1 breakdown of why gameplay lag occurs in Metroid on the NES: https://youtu.be/3G6vkRz-_0I?feature=shared
One major cause turns out to be that the game compresses the world data by storing rooms as collections of multi-tile prefabs, rather than as uncompressed tile layouts. This achieves an order of magnitude reduction in world data size, at the cost of having to construct rooms on the fly in RAM - often incurring redundant writes for clearing and pasting.