Yeah, I can see what you mean about the strobe on the grayed-out bottom row. The canonical way around dither strobe on the Playdate (assuming 2x2 dithers) is to scroll in two-pixel increments. If that eats into your smooovness (as I imagine it might), you might have to get resourceful. Two ideas I can imagine:
- make the dither into a separate, transparent sprite that overprints the block and moves in 2-pixel increments, but that might be slow and a pain to track with your other sprites, not to mention make flashing effects difficult.
- create two versions of the dithered sprites, with the dither pattern offset by one row in the alternate versions of the sprite. Then just pick the odd versions if your tile is in an odd row, and the even versions if the tile is in an even row. If you do that, the dither pattern itself stays still, while the solid-black and solid-white parts slide up under it. It would be an extra step wherever you're picking sprite frames, but depending on how that code's laid out it could be very straightforward.
Failing that, just have an accessibility toggle that, like, blacks out the center of the circle, cross, and heart, or draws them as white-on-black. Changing those three blocks would help distinguish heart from diamond, circle from both square and diamond, and the cross, well, that's just for symmetry since there are six blocks.
Oh, and a music toggle would be nice.