HELP: ** SVGA and VERTICAL RETRACE IRQ ** !!!

HELP: ** SVGA and VERTICAL RETRACE IRQ ** !!!

Post by Alexander Prochoro » Fri, 24 Jan 1997 04:00:00



Hi all !

is it possible to have vertical retrace IRQ on SVGA card (I
have S3/Virge) ?
I mean - on *any* SVGA card ? Or is it card-dependent. I
tried to run some
VGA samples that intercept vertical retrace IRQ and do some
job, but INT 0Ah
handler was never called !

Am I doing something wrong ? Or there's other way for SVGAs
? Or is vertical
retrace IRQ just not generated by hardware ?

All I want is to have flicker-free animation, so any other
info in that area
is greatly appreciated. How did they do that in Wing
Commander or Quake in
SVGA modes ? Any ideas ?

--
Alexander Prochorov,
Datlin Software, Ltd.

 
 
 

HELP: ** SVGA and VERTICAL RETRACE IRQ ** !!!

Post by Prlkovs » Sat, 25 Jan 1997 04:00:00


In article



> > Hi all !

> > is it possible to have vertical retrace IRQ on SVGA card (I
> > have S3/Virge) ?
> > I mean - on *any* SVGA card ? Or is it card-dependent. I
> > tried to run some
> > VGA samples that intercept vertical retrace IRQ and do some
> > job, but INT 0Ah
> > handler was never called !

> > Am I doing something wrong ? Or there's other way for SVGAs
> > ? Or is vertical
> > retrace IRQ just not generated by hardware ?
> Well, the original VGA by IBM called IRQ 9 when the Vertical Retrace
> preiod was entered, but for some reason this IRQ was not implemented in
> clones of the VGA. Some of the very early VGA cards (like Paradise) still
> implemented the IRQ 9, but it hase since drifted into oblivion.
> So it may be that your card causes an IRQ 9 in Vertical Retrace (or in
> the day of PnP maybe even an int 0Ah, as does my Diamond 64 Video), but
> if you want to stay compatible, you had beter not use the Interrupt
> Method to determine the time of a Vertical Retrace.

> > All I want is to have flicker-free animation, so any other
> > info in that area
> > is greatly appreciated. How did they do that in Wing
> > Commander or Quake in
> > SVGA modes ? Any ideas ?
> There are several ways to determine the time of a Vertical Retrace. YOu
> can time the time between Retraces by polling it and counting clockticks
> and then reprogramming your timer to trigger an interrupt just before
> entering your Vertical Retrace period. You'd have to recalibrate your
> timer constantly though. Or you can just poll the Vertical Retrace, i.e.
> whenever you have time check whether you are in VR and if so, copy your
> completed frame over into display memory.

> I'm not sure, but I think some demos don't even care about the VR  - they
> just write to display mem whenever a frame is ready. Todays fast cards
> ought to be handle it without flicker. But don't pin me down on this -
> better ask an active demo coder.

>   MLF

> ;----------------------------------------------------------------------------;
> ;  Michael Lamar Flegel  ;  Student of Math and Physics in Hamburg, Germany  ;
> ;  Am Ehrenmal 2         ;---------------------------------------------------;
> ;  21516 Schulendorf     ;  www.physnet.uni-hamburg.de/home/vms/flegel       ;

> ;----------------------------------------------------------------------------;

Demo's and games do care about VR, there is plenty of information on this
subject from the games programming site

ftp://x2ftp.oulu.fi/pub/msdos/programming/

and the usenet group

rec.games.programmer

        \|||/
       >|- o|<     I was never sure about anything anyway...
-----oo0  U  -Ooo----------------------------------------------------

---------------------------------------------------------------------

 
 
 

HELP: ** SVGA and VERTICAL RETRACE IRQ ** !!!

Post by Johannes Samuli Lehtine » Tue, 28 Jan 1997 04:00:00



> > I'm not sure, but I think some demos don't even care about the VR  - they
> > just write to display mem whenever a frame is ready. Todays fast cards
> Demo's and games do care about VR, there is plenty of information on this
> subject from the games programming site

That's how it should be. However, there are number of demos (and also
some games) that don't pay any attention to vertical retrace. Because
these demos use system RAM to compose the frame and then only blit it
to video memory on top of the previous frame, it doesn't look as
awfull as you might think. For example the older Realtech SVGA demos I
have seen don't care about vertical retrace.

In my opinion this is quite a poor implementation, especially if the
demo uses VBE anyway. It would not have been a big job to blit the
next frame to the other video memory page and then ask the VESA BIOS
to flip the visible pages during the vertical retrace (in VBE 2.0 the
BIOS optionally also takes care of final syncing to VR so it would
have been quite easy).

--

 
 
 

HELP: ** SVGA and VERTICAL RETRACE IRQ ** !!!

Post by Bas van Sisseren (TSD/CRON » Mon, 10 Feb 1997 04:00:00




Quote:>is it possible to have vertical retrace IRQ on SVGA card (I have S3/Virge) ?
>I mean - on *any* SVGA card ? Or is it card-dependent. I tried to run some
>VGA samples that intercept vertical retrace IRQ and do some job, but INT 0Ah
>handler was never called !

The same here.. In our demo 'HOPELESS' i used the timer interrupt for
this. I first switch to the right mode, then measure the time of the
VRI and initialize the irq-handler (irq 0, int 08h). Every time the
handler is called, it waits until the vri REALLY happens and then
resets the timer-counter. When executed this, it will call my real
vertical retrace handler.

Quote:>Am I doing something wrong ? Or there's other way for SVGAs? Or is vertical
>retrace IRQ just not generated by hardware ?

Not here.. i tried it too once.. i also couldn't find it.. :-(

        tsd/cronix

 
 
 

1. HELP ! Vertical Retrace interrupt

Hi,

I need to pick some brains out there for help with a problem using the Vertical
Retrace interrupt on EGA/VGA cards. On ATs this comes in as IRQ9 which hangs off
IRQ2 because of the cascaded PICs ( Programmable Interrupt Controllers ).

I have successfully utilised this interrupt to achieve smooth horizontal scrolling
in a program which runs fine on 286s and 386s with ISA buses and VGA cards.

I have recently bought a 486DX 33MHz VESA Local Bus machine with a Diamond Stealth
24 VLB SVGA card. When I run the program on the new machine, everything is OK
except for the horizontal scrolling. Basically this doesn't happen because the
Vertical Retrace interrupt never happens. The program addresses the VGA registers
directly based on information obtained from EGA/VGA, A Programmer's Reference Guide
by Bradley Dyck Kliewer 1988. Apart from the interrupt, every other access to the
registers has produced the desired result on the 486 machine.

The 486 machine has a caching local bus disk controller but I would have thought
it unlikely that this is affecting things.

Does anyone out there have any ideas as to what the problem could be, or at least
steer me in the right direction.


Thanks for any help,

  Wayne Morris-Thurgood

2. FTP support

3. Vertical Retrace

4. CHECK THIS OUT!

5. synchronizing with vertical retrace

6. I think it's a BIG BUG, tell me what you think.

7. screen update without using Vertical Retrace (VSYNC) ?

8. BC5 vs VC++

9. Vertical Retrace question

10. Vertical Retrace and buffering in TC++ v1.x using BGI

11. Vertical retrace problem

12. Vertical Retrace (Again)