I gave in to temptation and re-implemented all of the 8-bit Woopsi functions in 16-bit. Most of the complexities have vanished, and the SuperBitmap now scrolls properly. Any speed loss incurred by doubling the amount of data flying around isn’t noticeable, but I get a slew of benefits including:
- Tidier, simpler code
- No need for palette management - I wasn’t really looking forward to having to write 8-bit palette remapping routines in order to load bitmap data into windows on the screen
- SuperBitmap works properly
I rewrote the 8-bit code that’s been giving me so much trouble in no time at all. The only problem I came across was some weird behaviour from the DMA_Copy() routine, but I soon figured out that it was the bracket problem again. Still not fixed, then…
Here’s the latest demo:
I’ve broken the naming convention for this release - it’s called “Woopsi 16” as I duplicated the original project for the 16-bit upgrade rather than change the code, just in case I change my mind. If anyone has any good arguments against using 16-bit mode, I’d love to hear them.