English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware

 
 
Thread Tools
Old 23 July 2020, 12:47   #1
absence
Registered User
 
Join Date: Mar 2009
Location: moon
Posts: 373
ECS super hi-res palette limitations

I understand the maximum of two bitplanes due to DMA bandwidth limitations (twice the speed of hi-res leaves half the amount of data per pixel), but why is the palette limited to just 64 colours rather than the usual 4096? It's half the number of bits per channel, so I guess there's another kind of bandwidth limitation at the same time. Is it known how the hardware operates at this level, or is it a black box to guess (educationally) about?
absence is offline  
Old 23 July 2020, 13:24   #2
roondar
Registered User
 
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
I'm not sure how it works internally in the chip, but the Hardware Reference Manual states:
Quote:
Originally Posted by HRM
SuperHires mode has a coarser granularity of color control than either Hires or Lores modes. This is because the timing of color conversions at these very high pixel rates requires special "tricks". There are only two bits of red, green and blue color resolution per hires pixel.
So I guess there is some limitation in Denise which stops it from being possible. Perhaps someone else can give more hardware specific answer? It's certainly interesting, though!
roondar is offline  
Old 23 July 2020, 13:28   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
AFAIK it is due to Denise internal palette RAM bandwidth limit. Chip manufacturing technology used for pre-AGA Amiga chipset simply wasn't fast enough for superhires.

This hack allows to get two pixels worth of color information using single palette RAM read (with halved color component value range per pixel).
Toni Wilen is offline  
Old 23 July 2020, 13:44   #4
roondar
Registered User
 
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
Sounds logical. Thanks for the info!
roondar is offline  
Old 23 July 2020, 14:20   #5
absence
Registered User
 
Join Date: Mar 2009
Location: moon
Posts: 373
Quote:
Originally Posted by Toni Wilen View Post
This hack allows to get two pixels worth of color information using single palette RAM read (with halved color component value range per pixel).
I see, that makes sense. Does it mean software has to pack two colours together in each palette register manually?
absence is offline  
Old 23 July 2020, 14:44   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
Quote:
Originally Posted by absence View Post
I see, that makes sense. Does it mean software has to pack two colours together in each palette register manually?
graphics.library handles it automatically (Note that AGA KS ROMs don't support this mode anymore). 3rd edition HRM ECS extra chapter documents the "encoding".
Toni Wilen is offline  
Old 23 July 2020, 14:56   #7
ross
Defendit numerus
 
ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
It can also be viewed online here: http://amigadev.elowar.com/read/ADCD.../node00A4.html
not a very comfortable mode
ross is offline  
Old 23 July 2020, 15:08   #8
absence
Registered User
 
Join Date: Mar 2009
Location: moon
Posts: 373
That's hilarious, what a hack. Thanks for the information!
absence is offline  
Old 23 July 2020, 16:00   #9
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by Toni Wilen View Post
graphics.library handles it automatically (Note that AGA KS ROMs don't support this mode anymore). 3rd edition HRM ECS extra chapter documents the "encoding".
Actually, there are no longer AGA and ECS versions of the graphics.library. That's just a single code.

Concerning the palette usage, the trick is that every color(!) is responsible for generating two pixels. That is, once a particular color is loaded into the DA converter, it generates from the two most significant bits of each channel the left pixel, and the two least significant bits of each color go into the right pixel. Thus, the Denise logic stays almost identical, the pixels are duplicated at the very last step of the DAC.

Hence 4 bits per color = 12 bits per pixel for a regular mode, but 2 bits per color = 6 bits for SHIRES, giving the data rate for 2 pixels (2*6 = 12).

A very fine hack indeed.
Thomas Richter is offline  
Old 25 July 2020, 07:25   #10
AmigaHope
Registered User
 
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
They could have conceivably just added an extra CLUT buffer to Denise to get around this, and keep the 12-bit palette, but they didn't. I'm not sure why they didn't.
AmigaHope is offline  
Old 26 July 2020, 14:21   #11
ovale
Registered User
 
Join Date: Jun 2014
Location: milan / italy
Posts: 174
I think the problem is the CLUT max speed is 70ns. Super hires requires 35ns. In super hi res Denise works as in hi res except 2 pixels are emitted every 70 ns using that trick. BTW, Denise has no color DACs.
ovale is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Possible ocs/ecs chipset bug? (palette flicker) vagrant support.WinUAE 24 02 December 2017 14:28
WTD: ECS Super Denise alexh MarketPlace 6 03 October 2009 22:01
Super Street Fighter 2 - wrong palette in final version! viddi support.Games 43 31 October 2008 19:45
Super Denise (ECS) wanted! Antiriad MarketPlace 4 18 September 2003 11:15
Super Street Fighter 2 (ECS) Bamiga2002 Games images which need to be WHDified 3 07 September 2003 23:14

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 18:02.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.07897 seconds with 15 queries