Roguelike port?

Can you make some gradient floor tiles? From darker to lighter? I’d like to make some simple experiment.

1 Like

Do you mean color ramps or floor tiles that are dithered?

Just 3-4 floor tiles from darker to lighter using that 16 color palette.

This 16 color palette does not have a smooth transition :confused: (the code will take care of that). Here’s the basic 14x14 floor slate in light, medium and dark (default) using only colors from the 16 color palette. A darker than default color would have to be just black. Shown at 2x.

And here’s how that would work in game (not great, the shifts are too drastic)

Is that what you need, or do you need me to create ramps similar to the extended 64 color palette I had before?

1 Like

could you try a 2 color ditter on those floor tiles?

Thanks! That’s enough for my little test.
And yes that’s shift is too drastic. if palette will be adjustable by code that will allow some good effects, but at the moment there no way to test it.
@jonne tell me here that it will be implemented. Do you know what idea he refers to?

i sorta know what he means, but it involves directly drawing sprites to screen
or with smaller buffer regions with there own pallet indexes

I think @adekto wants to use a different system for shifts by generating colors by tweaking RGB values on the fly.

My original idea of 64 colors (basically 16 colors + 1 lighter + 2 darker for each of the 16) followed something closer to what @jonne had in mind (indexing the colors).

yea the theory behind mine is ether using a weighted grey scale pallet thats added to the color pallet or a full luminance scaler thing

We will see.

Are 64 colors and 128 sprite not enough for the roguelike? Load different different palette before drawing the sprite seems the easy way to me. But mostly depend on hardware perfomance. Or maybe I’m missing something.

is posible but we end with duplicate colors in pallet since ech sprite needs to store the offset of the pallet

Couldn’t we store them once in an array and tell each sprite to look it up by [x][y]?

i tried to explain this several times
what is x and y exactly? 2 bytes, you have to do that for all 3 colors thats 6 bytes per sprite

ech color is a 565 thats 2 bytes

so basicly your storing 6 bytes per sprite to refrence 6 bytes in a pallet…

wile the way im trying to do is all in 1 byte per sprite

1 Like

Got it. If you can pull it off, it would be great.

Programs like PyxelEdit and Aseprite can automatically generate tints and shades of a color, and they do pretty decent job at it. Maybe the code behind it can be useful in your approach? If we can find it somewhere…

this post is very long indeed, maybe I’ve miss something :grin:

@VonBednar
ok so i have some GL experience and i know that wont work
the problem is the 565 rgb format
so pallets in pokitto we store is 565 that means 5 bits of Red 6 green and 5 blue
this is a compact way to store rgb in 2 bytes instead of 3 separate
in image programs they use seperate rgba bytes in sequencial order they import watever image format you had int this sometimes its even 10, 16 or even 32 for some versions of truetone (sorry its been a while so this might not be 100% acurate) but since the displays color depth is set to read 565 (its less bits so better framerate then sending full rgb)

im sorry but you got to start leurning c and how the hell microcontrolers work XD

yea dont worry, i would do TLDR on this aswell
though @HomineLudens you know exactly how the pallet/sprites work right?

theres some waisted bits in there if you dont use a multiple of 2 (like our sprites are 14x14)
so one of the aditions we want to implement is an optimized serial bit sprite
where the first 2 bytes are width and length of sprite byte index

i hope that makes sence im prety bad at explaining things

that format could actualy be used as a sprite sheet format, and could allow for vertical scrolling sprite animations (like water for example)

I’ve some idea. I’ve made a tool that convert image to c header, so I’ve face the sprite format conversion.

That’s sound interesting and is an approach I didn’t consider. I’ll follow the discussion to see the evolution. Good work.

Yes, @adekto is on the right track here. Basically it means selecting a different palette in the middle of a scanline. Very similar to tricks used on C64

3 Likes

oh boy, good thing i just bought a c64 XD
but really thats annoying as hell to keep track off

1 Like