Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Thanks a lot. I understand better now.

However, in the beginning you have this:

SPRITE_ADDR=0x4000*2
NIBBLES_IN_SPR=64
SPR_IX=256
ADDR=SPRITE_ADDR+NIBBLES_IN_SPR*SPR_IX

You are using address 49152 (0xC000). Any reason behind this please?

Also, how does this example give me space for more sprites other than the 256 in the sprite editor? (excluding background tiles)

Thanks

ADDR - is address FG(BG addres + 256 sprites)
It may be different, at your discretion.
I agree, not quite correctly written, it will be more accurate:

SPRITE_ADDR=0x4000
BYTES_IN_SPR=32
SPR_IX=256
ADDR=(SPRITE_ADDR+BYTES_IN_SPR*SPR_IX)*2
(1 edit)

Ok thanks.

So basically using 2-bit instead of 4-bit sprites does not make any difference in the number of sprites you have available. The number is always 512 (256 FG + 256 BG).

If you want more sprites, you can use the LZW compression and compress a sprite sheet as a string of text. Is that correct?

"So basically using 2-bit instead of 4-bit sprites does not make any difference in the number of sprites you have available. The number is always 512 (256 FG + 256 BG)." - this is not true.

I updated the example - https://tic.computer/play?cart=100

Now in the example the difference is more noticeable:

4-bit sprite takes 12 cells (4x3) -> 32x24 pixels -> 768 pixels

2 bit takes 6 cells (6х1) -> 48x8 pixels -> 384 pixels

But you lose the ability to view / edit graphics in the built-in editor and and API functions are not suitable for printing to the screen.