Page 1 of 2

why only 4096 colors

Posted: Wed Oct 12, 2022 3:18 am
by t_r

Hello all,

 

Why does VERA support only 12-bit colors? As I see there are 4 bits wasted for every palette entry, it would require only 8 bits more to have full 24-bit color. Or maybe the 4 extra bits could be used as a modifier for the RGB values.


why only 4096 colors

Posted: Wed Oct 12, 2022 4:48 am
by Wavicle


On 10/11/2022 at 8:18 PM, t_r said:




Hello all,



 



Why does VERA support only 12-bit colors? As I see there are 4 bits wasted for every palette entry, it would require only 8 bits more to have full 24-bit color. Or maybe the 4 extra bits could be used as a modifier for the RGB values.



Each additional bit of color depth requires an FPGA pin per color and there are none left. Also beyond 4 or 5 bits, resistor DACs start losing precision and you need to switch to a DAC IC.


why only 4096 colors

Posted: Wed Oct 12, 2022 5:01 am
by t_r


On 10/12/2022 at 7:48 AM, Wavicle said:




Also beyond 4 or 5 bits, resistor DACs start losing precision and you need to switch to a DAC IC.



Do you mean the DAC wouldn't be able differentiate between the colors anyway even if there was 8-bits for each channel?

How many pins does the VERA sound system use, maybe those could be used for colors, and a separate tailor-made sound FPGA introduced? That would get rid of the dependency for "new old stock" Yamaha sound chip as well if it could be implemented on FPGA.

I'm used to programing the good old MCGA/VGA on DOS-era PCs, and I appreciated of all the color gradients that could be used, personally I'd be willing to sacrifice the sound for visual quality. Also I think wasting 4 bits is not very good "orthogonal" design for otherwise so well designed computer.

Don't get me wrong I really like the design, it's just that this computer has just so much power that I hate to see that some of it being wasted for not supporting full bit depth colors (or true colors or whatever they were called back in the day). Of course just my personal opinion.


why only 4096 colors

Posted: Wed Oct 12, 2022 6:57 am
by Wavicle


On 10/11/2022 at 10:01 PM, t_r said:




Do you mean the DAC wouldn't be able differentiate between the colors anyway even if there was 8-bits for each channel?



How many pins does the VERA sound system use, maybe those could be used for colors, and a separate tailor-made sound FPGA introduced? That would get rid of the dependency for "new old stock" Yamaha sound chip as well if it could be implemented on FPGA.



I'm used to programing the good old MCGA/VGA on DOS-era PCs, and I appreciated of all the color gradients that could be used, personally I'd be willing to sacrifice the sound for visual quality. Also I think wasting 4 bits is not very good "orthogonal" design for otherwise so well designed computer.



Don't get me wrong I really like the design, it's just that this computer has just so much power that I hate to see that some of it being wasted for not supporting full bit depth colors (or true colors or whatever they were called back in the day). Of course just my personal opinion.



It's difficult to get a reliable resistor DAC that has 6 bits of true precision because each resistor has a little bit of error in it. The resistor DAC on VERA starts at 4300 ohms and goes down by half for each bit: 2150, 1075, and 536. The next step down would be 265 ohms which is close to 5% of 4300 ohms, so using 5% resistors in your resistor DAC the practical limit is 4 bits per color. This is why resistor DACs rarely go beyond 4 or 5 bits per color. Beyond this, you need to use a DAC IC.

VERA audio uses 3 pins. Stripping all audio out of VERA would get you at best 1 additional bit per color. The YM2151 will most likely have to be replaced eventually by an FPGA implementation; it remains to be seen if this is true of the YM3012 as well.

12-bit color depth is well above par for an 8-bit computer. This is meant to be the spiritual successor to the Commodore 8-bit line.

The iCE40UP5K has at most 39 I/O pins. 8 are used for the data bus; 5 for the address bus; 3 for bus signaling; 1 for IRQ; 3 for audio; 4 for SPI; 12 for color; 2 for syncs; and 1 for the 25MHz VGA clock.

Regardless, it is too late in the project for a breaking change of this magnitude. All 8-bit systems came with warts. It gave them character.


why only 4096 colors

Posted: Wed Oct 12, 2022 7:06 am
by AndyMt

I think another reason is also that it's hard to take advantage of more colors, especially in bitmap modes. There's just not enough VRAM. Even for 256 colors that's not enough in full resolution. And - 4096 is pretty much the maximum I personally would call "era appropriate" - that's Amiga territory.

I also see it as a challenge to produce good looking graphics, despite the limitations. And I must say - the sense of achievement I had when I finished the background graphics for "Invaderz" was pretty nice.


why only 4096 colors

Posted: Wed Oct 12, 2022 10:50 am
by t_r


On 10/12/2022 at 9:57 AM, Wavicle said:




Regardless, it is too late in the project for a breaking change of this magnitude. All 8-bit systems came with warts. It gave them character.



Thanks for the explanation, it makes a bit more sense now. It's by no means an issue for me, I just wondered the rationale behind that choice. Wouldn't even call it as a wart considering what kind of sorcery the genuine 8-bit computers sometimes required, that's why I am so excited of this system, it's so clean and well designed.

Of course as a programmer I'd love to see more colors, more ram, and maybe even a faster cpu but I guess that's just my ideal retro computer, something resembling to 16-bit era.


why only 4096 colors

Posted: Wed Oct 12, 2022 10:56 am
by t_r


On 10/12/2022 at 10:06 AM, AndyMt said:




4096 is pretty much the maximum I personally would call "era appropriate" - that's Amiga territory.



I never owned Amiga but its graphics always seemed pretty much on par with PC even though VGA supported 8-bits per color channel.

In a weird way this X16 reminds me of TurboGrafx-16, it also had "slow" cpu but punched above its weight in terms of graphical fidelity.


why only 4096 colors

Posted: Wed Oct 12, 2022 11:35 am
by AndyMt


On 10/12/2022 at 12:56 PM, t_r said:




In a weird way this X16 reminds me of TurboGrafx-16



Yes, that's what I think, too. The CPU in the TG-16 was 6502 derived and the GPU was 16 bit with similar properties than VERA, although with just half the VRAM and only a 512 color palette if I'm not mistaken.


why only 4096 colors

Posted: Sat Oct 15, 2022 8:05 pm
by Roy Eltham


On 10/12/2022 at 3:56 AM, t_r said:




I never owned Amiga but its graphics always seemed pretty much on par with PC even though VGA supported 8-bits per color channel.



In a weird way this X16 reminds me of TurboGrafx-16, it also had "slow" cpu but punched above its weight in terms of graphical fidelity.



Original VGA was 6bit per component (18bit) color. It wasn't until later that they did 8bit per component 24bit color.



Having 12bit color feels like a luxury for an 8bit system (even with all the ram), so I am quite happy with that.


why only 4096 colors

Posted: Wed Oct 19, 2022 8:54 pm
by neutrino

It might be worth having a video mode for 18-bit or 24-bit such that if better D/A are used in the feature it will be a simple swap instead of having to rework all the software.