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

Eero Tamminen eerot at users.berlios.de
Thu Mar 4 00:55:39 CET 2010


Hi,

> Konador, Cyprian a écrit :
>> Unfortunatelly, under WinXP, watching this nice demo is realy painfull.
>> It very often change screen resolution, and on my configuration it
>> looks like: - first effect
>>  - change resolution to 320x100 - I see windows destkop and icons
>>  - second effect
>>  - change resolution to 320x200 - I see windows destkop and icons
>>  - first effect
>>  - change resolution to 320x100 - I see windows destkop and icons

On Saturday 27 February 2010, Laurent Sallafranque wrote:
> For me, under linux, there are 2 behaviours :
>
> - if I look at the demo in windowed mode, no problem, it's perfect.
>
> - if I look at it in fullscreen mode, the resolution change make the
> demo stops for a few ms, then run, then freeze for a few ms, ... after
> each resolution change

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?


	- Eero
-------------- next part --------------
A non-text attachment was scrubbed...
Name: videl-scale.diff
Type: text/x-diff
Size: 9092 bytes
Desc: not available
URL: <https://lists.berlios.de/pipermail/hatari-devel/attachments/20100304/96e3d511/attachment.diff>


More information about the hatari-devel mailing list