7800-devtools / 7800basic

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

Extra DL Memory Alternative #17

Closed ghost closed 11 months ago

ghost commented 11 months ago

From the docs, the default location for Display List List and Display Lists is stored in $1800 to $1FFF. With Extra DL Memory enabled, $1800 to $28FF is consumed, and I assume $2040 to $20FF and $2140 to $21FF are skipped. The games I've worked on often require RAM for game variables, this varies for each game. If a game needs additional space for the display list, it may need to store an array of the x, y, and other properties somewhere in RAM for those sprites. I am going to need to create a RAM character mapped screen for dynamic playfield changes. Something I found useful is an option to save the display list list at around $2200 to $227F and free up $1800 to $187F to insert an additional sprite on each line. I know that the plotsprite4 function has already made it possible to get more sprites on each line, and requiring this option might also help.

msaarna commented 11 months ago

The DLL memory layout is something I prefer to be abstracted from the user, for the purposes of simplicity and supportability. But the change you describe is easily performed by copying the official 7800basic.h into your project directory and modifying the memory location DLLMEM is referencing.