Thanks for the interest! It works by generating a pair of line interrupts for each visible line of tiles, then adjusting the vertical scroll position for the Tile layer accordingly based upon a sine wave pattern, i.e. the 1st line interrupt "switches on" the tile line and the 2nd "switches off" the tile line and is then repeated for all visible moving lines.
Tile graphics data is not manipulated as such.
Initially I did consider basing the effect on updating the tile base address register but the "grain" of this address is limited to a multiple of 2048 bytes.
Ah I see. It's using the documented stuff to scroll tiles, not somehow disabling all video output during a certain time and then re-enabling it again a few raster lines later (as it had to be done with the FLD effect on the c64 I believe?)
Ah I see. It's using the documented stuff to scroll tiles, not somehow disabling all video output during a certain time and then re-enabling it again a few raster lines later (as it had to be done with the FLD effect on the c64 I believe?)
Yes, all documented VERA registers etc. The routine does disable the tile layer between each tile line to stop VERA outputting any tile graphics (this is the space highlighted in yellow below) and dynamically determines the next relative vertical scroll position for the layer in relation to the end position of the previous line.