[hatari-devel] Alive demo (fun industries) works well now

Eero Tamminen eerot at users.berlios.de
Thu Mar 4 22:30:34 CET 2010


Hi,

I checked now Toons' Yepyha demo which has most strange screen sizes.

It uses video mode 0 (doesn't toggle any of the bits), but in Hatari
it occasionally switches to 192x2 pixel sized screen.

When looking at the Videl registers when this happens:
$FF82A2 : VFT - Vertical Frequency Timer   : 0271
$FF82A4 : VBB - Vertical Border Begin      : 0265
$FF82A6 : VBE - Vertical Border End        : 002f
$FF82A8 : VDB - Vertical Display Begin     : 0145
$FF82AA : VDE - Vertical Display End       : 0147

The value used by Hatari for calculating screen height: VDE - VDB = 2.
Can this really be true?

I just noticed following in Aura's Videl doc:
------------------
$FFFF82A8 [R/W] W _____A9876543210  Vertical Display Begin (VDB)

On which halfline should  begin  gfx  display.  If  VDB  >  VFT,  no display 
is present. If VDB > VDE, display is present from VDB to VFT.

$FFFF82AA [R/W] W _____A9876543210  Vertical Display End (VDE)

On which halfline should end gfx display. If  VDE < VFT, no display is 
present. If VDE < VDB, display is present from VDE to VFT.
------------------

VFT - VDB = 300 which would be fine width except that VDB < VDE.

And from what I've seen of the register values, this is always true:
	VDE < VFT,
although according to Aura's doc it would mean that no display is
present...?


	- Eero


On Thursday 04 March 2010, Eero Tamminen wrote:
> I've tried this demo to see whether my video mode bits based scaling
> patch helps (attached).  While the patch helps with desktop RGB & VGA
> resolution changes (except for something funny Hatari does at bootup) and
> should fix the fullscreen/non-fullscreen switching, it doesn't help with
> the above discussed issue (in that demo, or with the "Terrorize your
> soul" demo).
>
> When I took the VIDEL registers every Alive demo changed time video mode:
> 	lock videl
> 	b ($FF82C2).w ! ($FF82C2).w
>
> I noticed that what the demo does is:
> * toggling the double line video mode (VMD) bit on RGB monitor[1]...
> * change line width between these:
> $FF8210 : VWRAP - line width               : 00a0
> $FF8210 : VWRAP - line width               : 0140
> * change display start and end between these:
> $FF8288 : HDB - Horizontal Display Begin   : 0003
> $FF828A : HDE - Horizontal Display End     : 009b
> $FF8288 : HDB - Horizontal Display Begin   : 02ba
> $FF828A : HDE - Horizontal Display End     : 0089
>
> Latter seemed strange, how the first HDB can be smaller than
> the corresponding HDE value?
>
>
> [1] videl.c does this in VIDEL_getScreenHeight() regardless of monitor
> type: int yres = vde - vdb;
>         if (!(vmode & 0x02))            // interlace
>                 yres >>= 1;
>         if (vmode & 0x01)               // double
>                 yres >>= 1;
>
> Should the double line bit be ignored with RGB monitor?
>
>
> VIDEL_getScreenWidth() checks just line width, it doesn't take into
> account: - horizontal display beginning and end, is line width really
> enough? - quarter/half pixel video mode setting although yres takes into
> account double/interlace mode settings.
>
>
> TYS demo was also toggling double line mode on RGB monitor...
>
>
> Any comments / advise?



More information about the hatari-devel mailing list