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.
Wow, Sorry for the question, but coming from c64 , where you have to struggle a lot to change the charset, it didn't seem a possible thing! I confirm my compliments and wish you a good challenge.
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:
Probably there's a little misunderstood, when I read "custom charset" I thought you were talking about replacing stock chars with new designed ones, and this is a slow and space consuming operation in basic on c64. You were talking, instead,about putting stock chars in a variable, and this is normal also for C64.
So kudos for the Aladdin pixel art made with stock chars,it's resembling a lot the original one.
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.
← Return to game
Comments
Log in with itch.io to leave a comment.
I´m trying to load direct from dos but after choose load file what have I to do ?
You don't have to load the DOS menu, because it' s a Basic file. Boot it with Basic enabled, then type LOAD"D:MC.BAS"
Nice game, but the custom charset is allowed? it's not defined into the listing, as what I see
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.
See below:
Wow, Sorry for the question, but coming from c64 , where you have to struggle a lot to change the charset, it didn't seem a possible thing! I confirm my compliments and wish you a good challenge.
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:
https://www.reddit.com/r/c64/comments/1214xwo/10print_with_custom_characters_and...
Probably there's a little misunderstood, when I read "custom charset" I thought you were talking about replacing stock chars with new designed ones, and this is a slow and space consuming operation in basic on c64. You were talking, instead,about putting stock chars in a variable, and this is normal also for C64.
So kudos for the Aladdin pixel art made with stock chars,it's resembling a lot the original one.
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.