7800-devtools / 7800basic

a BASIC-like language for creating games that run on the Atari 7800 console.
Other
23 stars 3 forks source link

Have both 8 and 16 pixel zonehights #14

Closed ghost closed 11 months ago

ghost commented 11 months ago

Can you make it possible to mix two different zonehights within the same program, along with mixing with Double Wide. I would like to create something with a 40x8 column text character display at the top of the screen with a graphics tile mapped section below using 16x16 tiles. I have been trying to figure out a way to work around this. If not, I guess I will need to try it using CC7800.

msaarna commented 11 months ago

It's not possible at this time. There are a few reasons for making zone height a compile-time choice, rather than a runtime choice. First, having mixed zone heights would add overhead to the sprite and character routines, both in terms of rom storage and speed. Second (and much more critically) mixed zone heights would greatly complicate the storage of graphics data, because the different height zones have different dma hole locations. The 7800 already has an issue with roms being segregated into small chunks of code and graphics, and mixed zone heights would make this much worse. If you need this flexibility, for sure using CC7800 or Assembly would be the way to go. Good luck with your project!