[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