Impressive! I was wondering when I saw the screen mode of your earlier entry, if you would attempt one in GTIA modes. Looks great!
Recent community posts
No, it is replacing the stock with custom characters. It works the same for C64 and Atari:
1. Put your custom charset bytes (8 bytes per char) somewhere in RAM. The traditional slow way is a bunch of data statements and a loop to POKE to some location.
2. Tell computer the new charset location
For step 1 here, I save space and time by positioning the actual string at a spot in memory that I tell the computer the charset is located. I fill the string with special chars to represent each of the 8 bytes per custom char. Therefore no DATA, looping, POKEing required.
This works in Atari since a string can be thousands of bytes long, unlike C64 which must be 255 or less. I create a dummy string that takes up useless ram but positions the very next string right where I need it. This was a typical Atari BASIC trick from back in the day.
Thank you! I found someone doing a similar trick on c64 to put PETSCII chars in a string, and pointed the charset to the start of the program, though there may be a limit on which values can be encoded like this:
Thank you! Yes, the custom charset is set into B$ in lines 2 and 3. It's a pretty standard way of setting them using one character per byte instead of a list of numbers in a DATA statement, which consume much more code.
This is really cool, love the manual, and a fun game! Great job!
I see you used comments to pack in level and character data at the end of each line. Did you PEEK some memory location to read the comment token bytes in memory or is that an alternate way to have data in MSX Basic?