Then Puzzle Bobble is screwed for cause.
Let me see if my screen-at-a-time renderer has an exact implementation.

The one quirk I can point out for sure is that it's not instantaneous, so the first opt offsets apply to the SECOND tile of the line. The reason is that the tilemap fetches are understood to occur consecutively during caching, allowing too little time for the offsets to be applied.

anyway, Mode 4 is a single 16-bit value. $8000 is the H/V flag (believe set is V). (aside from Mode 7, all PPU accesses are 16-bit, if that helps).

And sweet work to Kale and etabeta78. You guys are making a couple hours spent reviewing old emulator change logs looking for familiar bugs a very worthwhile undertaking!