zapping-vbi / zvbi

Vertical Blanking Interval (VBI) utilities
Other
6 stars 4 forks source link

drcs_clut_offs is never set - Level 3.5 DRCS displayed incorrectly #8

Open ileanadumitrescu95 opened 2 years ago

ileanadumitrescu95 commented 2 years ago

SourceForge bug #200 written by William on 2014-02-15

Hi,

I have created some teletext level 3.5 test pages and have been running some tests and it seems that drcs_clut_offs is never set, it it always 0

I have managed to get it working by adding some extra code to teletext.c

In the function enhance, in the column address triplets section under case x0D: / drcs character invocation /

I added the below code between pg->drcs[page] = dvtp->data.drcs.chars[0]; and cache_page_unref (dvtp);

switch (dvtp->data.drcs.mode[offset])
{
case DRCS_MODE_12_10_4:
{
if (normal)
{
es.ac.drcs_clut_offs=10+16;
es.mac.drcs_clut_offs=~0;
}
else
{
es.ac.drcs_clut_offs=10;
es.mac.drcs_clut_offs=~0;
}
break;
}
}
}

This is incomplete as I have not added support for 4 colour mode yet.

Then after that I had to add some extra code to the function enhance_flush

if (es->mac.drcs_clut_offs)
c.drcs_clut_offs= es->ac.drcs_clut_offs;

After doing this and fixing the bug i posted a few days ago (198), Level 3.5 Graphics are being displayed correctly (at least in 16 colours) :)

Regards Wiliam