(FCEUX)

However, my emulator completely messes it up, and instead of making the first couple of scanlines very wavy, it makes the whole screen slightly wavy. Not only that, but there are some things on the top and bottom of the screen which aren't supposed to be shown (although I'm assuming this is because of the lack of nametable switching and/or lack of fine Y scroll implementation). Here's my emulator displaying the same ROM:
(My emulator)

As you may notice, the screen of my emulator doesn't wave as much the FCEUX one in the first "third" of the screen, but it rather makes the whole screen wavy in intervals of maybe 3 pixels at most
I thought this issue might be due to my PPU not being pixel-based but rather scanline-based. My PPU basically waits for 113.7 or so CPU cycles to pass, and then draws an entire scanline at once. Could this be the problem? Or is fine X scrolling perhaps badly implemented?