I'm looking to create a slot machine type game in Screen 4, and I think I've come up with an interesting way to manage the independent scrolling of the reels. However, I'm having a little difficulty understanding the VDP enough to get a proof-of-concept up.
My plan is to change the data in the pattern table for Screen 4 by shifting everything in the reel up by two lines or so. (Each column of the reels would have its own dedicated pattern space that gets changed, rather than changing the nametable.) This is easily done by just feeding different data into the pattern table, but I imagine doing it by feeding the VDP that data one byte at a time would be painfully slow. I had seen the HMMM command, but that doesn't quite do what I expect it to do in Screen 4: it copies blocks of pixels while in a bitmap/graphics screen, whereas I want just a straight and fast VRAM to VRAM byte-for-byte copy that can hypothetically be used in any screen mode.
Does such a function exist within the VDP? Even if it's an assembly routine (I've improved somewhat since my last set of questions)?