Ericisonit 2022-04-06 07:48
Full 160x128 pixel-based drawing with 3D brush textures. Double tap to clear the screen. Pen width adjusts with swipe velocity.
SP4CEBAR 2022-04-06 08:19 (Edited)
Ooh, it's character-writing based
You did it!
Nice to see that it's based on my program :D
Ericisonit 2022-04-06 09:38
I’d say it’s a lot more like some of my other work, but your recent program definitely inspired me to figure out the problem of showing more than 256 chars on the screen at the same time: just have raster copy 40 bytes of char data every time it’s called and you can get a full 20 tile row in every 8 lines. I only really use about 32 characters from $8000 to $8280 or whatever it is, so I could still have a UI and a font etc etc. I just wish that there was a way to do both backgrounds this way so you could squeeze a lot more colors into the mix.
McPepic 2022-04-06 14:24
Looks super cool. Nice work!
SP4CEBAR 2022-04-06 15:35 (Edited)
[Quote] "I just wish that there was a way to do both backgrounds this way so you could squeeze a lot more colors into the mix."
@ericisonit, when I was writing my raster BG writer, I just so happened to have been thinking about, and calculating for a two BG raster char loader
The idea I had is to have a bunch of characters preloaded to give it a head-start
This is what I calculated
(256 + 128 * 40 / 16) / (20 * 2) = 14.4
'(256 PRELOADED CHARACTERS + 128 RASTERS * 40 BYTES PER RASTER / 16 BYTES FOR A CHARACTER) / (20 CHARACTERS IN A BACKGROUND ROW * 2 BACKGROUNDS) = 14.4 LINES OF CHARACTERS
'REFERENCE: 16 WOULD BE THE FULL BACKGROUND, SO IT'S JUST 1.6 BG CELL LINES SHORT, WHICH IS 32 CHARACTERS PER BACKGROUND, 64 IN TOTAL
If the raster operations could somehow be optimized to write 48 bytes per raster, then it's possible
(256 + 128 * 48 / 16) / (20 * 2) = 16
But that would still be a best-case scenario: the first raster (or the first eight) can't be used because there wouldn't be any free characters
in the lines after that the first characters can be recycled
I also calculated how many characters and character transfers would be available with this approach if only one bg was used
'SIMPLIFIED: ONE BG LAYER
'(256 + 128 * 40 / 16) / (20 * 1) = 28.8
'THIS ONE LEAVES 12.8 BG CELL ROWS LEFT OVER, WHICH IS 256 CHARACTERS (the same amount as the amount of preloaded characters)
So I had a new plan: just do it for one bg, and distribute the remaining characters to wherever that extra color depth is needed the most
Also, I recognized the "
BG VIEW OFF 1
" in your code, that's why I thought it was based on the same program
SP4CEBAR 2022-04-06 16:47
I stress-tested the raster function in your code, and it could copy up to 42 bytes per raster
I then replaced your two-dimensional CONDATA with two one-dimensional CONDATA0 and CONDATA1, with this change it could copy 44 bytes per raster
SP4CEBAR 2022-04-06 16:50
This brings it to
(256 + 128 * 44 / 16) / (20 * 2) = 15.2 which is 16*2 = 32 characters short of being able to drive both backgrounds at a time (in a best-case scenario)
nathanielbabiak 2022-04-07 16:55 (Edited)
You can get 4+3 colors on full-screen 160x128, and an additional 3 colors on 32x96 centered in the middle.
I had planned a really cool photo to be 64x128 (rather than 160x128) using this setup and 4+3+3 colors, but I wanted to pan the photo since it was actually closer to 256 tall, and couldn't get panning to move quickly/smoothly enough.