Soweit ich gelesen habe (PC Intern 3.0), ja. Hatte aber wohl andere Ursachen, nämlich, dass die CGA es nicht gemocht hat, wenn während des Bildschirmaufbaus auch auf das Videoram zugegriffen worden war. Dies bedeutete, dass man den Videoram der CGA nur während des Vertical Retraces beschreiben oder auslesen durfte. Schauerlich! War aber vor meiner Zeit. Ich hatte zuerst 'ne Hercules (kein Schnee) und bin dann gleich auf VGA umgestiegen.Brueggi hat geschrieben:@Wobo: Gabs dieses "Schneegestöber" nicht auch schon bei CGA?
VGA-Karte und Interrupt?
Re: VGA-Karte und Interrupt?
Re: VGA-Karte und Interrupt?
VideoRAM nur während des VR beschreiben? Ohje, da hat man ja kaum Zeit...
Naja, ich hatte auf PC gleich ne VGA. (Was auch daran liegt, daß ich meinen ersten eigenen PC erst 1996 hatte.)
Naja, ich hatte auf PC gleich ne VGA. (Was auch daran liegt, daß ich meinen ersten eigenen PC erst 1996 hatte.)
Re: VGA-Karte und Interrupt?
Ja, genau. Das ist das Intro von Ultima VI (kam mir irgendwie bekannt vor)! Im Scroller schreibt er übrigens, dass er es blöde findet, dass auf VGA der Interrupt nicht geht, obwohl das in der Registerbelegung so erwähnt ist! Also auch in dieser Hinsicht absolut on topic.drzeissler hat geschrieben:das sieht echt supi aus gell und die musik dürfte vom ultima6 intro sein.wobo hat geschrieben:Brueggi hat geschrieben:PS: @Dr.Zeissler: Danke für den Link auf die Demos. Das erste (Joop) kannte ich noch nicht. Das rennt auf meinem 386sx16 echt wie sau. Und dazu noch Adlib-Sound. Hat Spaß gemacht!
die farbauswahl, die scroller und die musik sind für die paar kb echt toll
und das sogar ruckelfrei am 286er mit 10 Mhz!
Im Scroller schreibt er auch, dass irgendein SplitScreen nur auf schnellen 386ern, nicht aber auf 286ern geht. Ich habe aber nicht ganz verstanden, was er damit meint. Nur zur Sicherheit: Auf Deinem 286 hast Du oben auch die Laufschrift, dann das Logo mit drei CopperBars und unten die 3D-Rotation "Europe", oder?
Was mir jetzt mehrfach aufgefallen ist: Du hast ein ganz schön umfangreiches Demo/Demoszene-Wissen! Danke für die Links.
Re: VGA-Karte und Interrupt?
Ja, schrecklich wie ich schon schrieb. Ich bin schon froh, dass ich zu der Zeit noch nicht wußte, was ein PC ist. PC Intern 3.0 schreibt: Auf einem Ur-PC (4.77 Mhz) konnte man innerhalb eines Retraces rechnerisch maximal 800 byte schreiben... Viel Spass beim Programmieren, kann man da nur sagen!DOSferatu hat geschrieben:VideoRAM nur während des VR beschreiben? Ohje, da hat man ja kaum Zeit...
Naja, ich hatte auf PC gleich ne VGA. (Was auch daran liegt, daß ich meinen ersten eigenen PC erst 1996 hatte.)
-
- DOS-Gott
- Beiträge: 2347
- Registriert: Mo 8. Feb 2010, 16:59
Re: VGA-Karte und Interrupt?
danke für die blumen. was der in dem intro schreibt hab ich gar nicht gelesen ;) ja ich denke ich habe alles
- Laufschrift JA
- drehendes Logo JA
- Farbige rotierende Balken JA
- Musik JA
ich habe bei pouet einfach mal nach jahren alte sachen rausgekramt und sukzessive am 286er auf funktion getestet und diese schöne teil funktionierte absolut perfekt und liefert für die größe eine echt tolle performance ab. als es hier um vermutlich ähnliche sachverhalte ging, dacht ich mir ich poste das mal, vielleicht passt es ja.
greetings
doc
- Laufschrift JA
- drehendes Logo JA
- Farbige rotierende Balken JA
- Musik JA
ich habe bei pouet einfach mal nach jahren alte sachen rausgekramt und sukzessive am 286er auf funktion getestet und diese schöne teil funktionierte absolut perfekt und liefert für die größe eine echt tolle performance ab. als es hier um vermutlich ähnliche sachverhalte ging, dacht ich mir ich poste das mal, vielleicht passt es ja.
greetings
doc
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
-
- DOS-Übermensch
- Beiträge: 1035
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
Re: VGA-Karte und Interrupt?
Ich nehme mal bei Gelegenheit die zwei Demos auf, wobei ich nicht 100% sicher bin, ob Kukoo2 korrekt umgesetzt wird. Mal schauen...
Ansonsten die vertikalen Balken heißen gemeinhin Kefren Bars und sind ein klassischer Demo Effekt. (von der Gruppe Kefrens vom Amiga, bekannt z.B. durch die Demo Desert Dream)
z.B. im letzten Part von One Year Camelot / Camelot (C64) sind schon welche drin.
http://www.c64.ch/demos/realdetail.php?id=912
(oder auch hier: http://www.c64.ch/demos/realdetail.php?id=191 )
Das mit dem IRQ ist so nicht ganz richtig, denn auf vielen frühen VGA Karten kann man diesen ueber einen Jumper aktivieren:
http://mail.lipsia.de/~enigma/neu/pics/cl_vga.jpg
Mitte unten INTENA = Interrupt Enable
Hatte hier nicht jemand eine Speedstar24x verbaut?
http://th99.dyndns.org/v/C-D/50264.htm -> JP3
Bei den frühen VGA Karten gingen noch viele Hardware Tricks, die man sonst nur von den Homecomputern kannte. Später wurde das meiste durch neuzeichnen von Pixeln ersetzt.
btw das vertikale Scrollen des Pinball Tisches in Pinball Fantasies ist auch ein CRTC Trick.
Ansonsten die vertikalen Balken heißen gemeinhin Kefren Bars und sind ein klassischer Demo Effekt. (von der Gruppe Kefrens vom Amiga, bekannt z.B. durch die Demo Desert Dream)
z.B. im letzten Part von One Year Camelot / Camelot (C64) sind schon welche drin.
http://www.c64.ch/demos/realdetail.php?id=912
(oder auch hier: http://www.c64.ch/demos/realdetail.php?id=191 )
Das mit dem IRQ ist so nicht ganz richtig, denn auf vielen frühen VGA Karten kann man diesen ueber einen Jumper aktivieren:
http://mail.lipsia.de/~enigma/neu/pics/cl_vga.jpg
Mitte unten INTENA = Interrupt Enable
Hatte hier nicht jemand eine Speedstar24x verbaut?
http://th99.dyndns.org/v/C-D/50264.htm -> JP3
Bei den frühen VGA Karten gingen noch viele Hardware Tricks, die man sonst nur von den Homecomputern kannte. Später wurde das meiste durch neuzeichnen von Pixeln ersetzt.
btw das vertikale Scrollen des Pinball Tisches in Pinball Fantasies ist auch ein CRTC Trick.
Diverse Retro-Computer vorhanden.
-
- DOS-Übermensch
- Beiträge: 1035
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
Re: VGA-Karte und Interrupt?
Soo 18464 Byte zu diesem: ftp://78.47.153.163/video/joop.mkv
Diverse Retro-Computer vorhanden.
-
- DOS-Gott
- Beiträge: 2347
- Registriert: Mo 8. Feb 2010, 16:59
Re: VGA-Karte und Interrupt?
hi elianda!
ja, ich hab die speedstar24x im 286er und ich hab mich schon gefragt wofür die jumper sind ?
Bei mir ist gejumpert daher habe ich den IRQ wohl aktiv. Ist das der Grund warum am 286er dieses Intro
butterweich und fehlerfrei läuft.
übrigens ist das kukoo2 nicht butterweich. der unterste scrolltext ruckelt mächtig und das auf allen rechnern
die ich habe.
ja, ich hab die speedstar24x im 286er und ich hab mich schon gefragt wofür die jumper sind ?
Bei mir ist gejumpert daher habe ich den IRQ wohl aktiv. Ist das der Grund warum am 286er dieses Intro
butterweich und fehlerfrei läuft.
übrigens ist das kukoo2 nicht butterweich. der unterste scrolltext ruckelt mächtig und das auf allen rechnern
die ich habe.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
-
- DOS-Übermensch
- Beiträge: 1035
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
Re: VGA-Karte und Interrupt?
Nunja ich habe natuerlich Kukoo2 auch schon aufgenommen und bin auf das gleiche Problem gestossen.
Oben laeuft alles flüssig und unten der Scroller und das Checkerboard ruckelt... Hmm.
Vielleicht sollte ich mal eine Trident 512 kB nehmen, wie im Scrolltext beschrieben ist.
Wenn es nicht fluessig hinzubekommen ist, werde ich das Video mal encodieren.
Oben laeuft alles flüssig und unten der Scroller und das Checkerboard ruckelt... Hmm.
Vielleicht sollte ich mal eine Trident 512 kB nehmen, wie im Scrolltext beschrieben ist.

Wenn es nicht fluessig hinzubekommen ist, werde ich das Video mal encodieren.
Diverse Retro-Computer vorhanden.
-
- DOS-Gott
- Beiträge: 2347
- Registriert: Mo 8. Feb 2010, 16:59
Re: VGA-Karte und Interrupt?
ganz kurz zum thema "ruckelfreie animation"
ich kenne viele spiele am amiga die quasi ruckelfrei scrollen.
am pc gab es zu damaliger zeit nur ganz wenige, das meiste
hat immer gruckelt. ich verstehe bis heute nicht,warum z.B.
ein Jazz2 so ruckelig scrollen muss, aber egal, das thema bei
mir ist aktuell "emulation" bspw. Amiga.
Gibt es bei der Emulation überhaupt "ruckelfreies" Scrollen ?
Bspw. ShadowOfTheBeast ist Amiga drei Ebenen ruckelfreies
Scrollen am PC mit WinFellow ruckelt es aber.
UAE braucht mehr Power als mein P2-300 hat, Winfellow läuft
an sich prima, bis auf das Ruckeln. Steem ist auch ganz ok,
zumindest aber grafisch besser und ruckelfreier.
Wie gesagt, der alte Kisten hatten "spezial-Chips" die in
Hardware ruckfreie Animationen konnten, am PC in emulierter Form ist es vorbei mit vollständig ruckelfrei...zumindest bei mir.
ich kenne viele spiele am amiga die quasi ruckelfrei scrollen.
am pc gab es zu damaliger zeit nur ganz wenige, das meiste
hat immer gruckelt. ich verstehe bis heute nicht,warum z.B.
ein Jazz2 so ruckelig scrollen muss, aber egal, das thema bei
mir ist aktuell "emulation" bspw. Amiga.
Gibt es bei der Emulation überhaupt "ruckelfreies" Scrollen ?
Bspw. ShadowOfTheBeast ist Amiga drei Ebenen ruckelfreies
Scrollen am PC mit WinFellow ruckelt es aber.
UAE braucht mehr Power als mein P2-300 hat, Winfellow läuft
an sich prima, bis auf das Ruckeln. Steem ist auch ganz ok,
zumindest aber grafisch besser und ruckelfreier.
Wie gesagt, der alte Kisten hatten "spezial-Chips" die in
Hardware ruckfreie Animationen konnten, am PC in emulierter Form ist es vorbei mit vollständig ruckelfrei...zumindest bei mir.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Re: VGA-Karte und Interrupt?
Der Grund ist ganz einfach:
Amiga (Monitore, TVs) laufen mit 50Hz, PC Monitore mit 60 oder 70 Hz (je nach Auflösung). Unter modernen OS wird nicht an den VGA Registern rumgespielt, um die runterzutimen.
Die Spiele (C64, Amiga) arbeiten mit Rasterzeilen-Interrupts bzw Vertical Retrace Interrupts, d.h. sie timen das Spiel auf die Wiederholfrequenz des TVs oder Monitors (bzw an der Frquenz des Chips, der dem TV oder Monitor das Bild generiert). Ist nun die Frequenz des PC-Monitors anders, kann der Emulator es nicht ruckelfrei darstellen oder scrollen, denn dann müßte sich die Spielgeschwindigkeit (bzw die ganze Geschwindigkeit des simulierten Rechners) erhöht werden, d.h. ein Spiel, das auf eine Framerate von 50 Hz getimed wurde und auf dem PC Monitor ruckelfrei scrollen soll, müßte mit 60 Spielframes laufen. Es wäre kein Problem (auf modernen Rechnern), 60x statt 50x die Anzeige zu generieren, ABER es sind trotzdem nur 50 "Spiel-Schritte" pro Sekunde (und damit auch 50 "Scroll-Schritte", denn das Scrolling hängt vom Laufen der Spielfigur ab).
Das alleine ist der Grund, warum Amiga- und C64- Emulatoren auf PC nicht ruckelfrei laufen. Theoretisch könnte ein Amiga- oder C64-Emu auf PC ruckelfrei laufen, WENN der PC-Monitor auf 60 Hz laufen würde UND die "USA-Einstellung" (also NTSC statt PAL) benutzt wurde, denn NTSC wird mit ca. 60 Hz generiert.
Meist wird jedoch in Emulatoren auf die Anpassung an die Monitorfrequenz verzichtet. Es gibt zwar in manchen Emulatoren Einstellungen dafü+, um das anzuschalten, aber es wirkt aus obengenannten Gründen halt trotzdem nicht so, daß es nicht ruckelt, sondern lediglich, daß die Bildgenerationsrate mit der Monitorfrequenz synchronisiert wird.
Da aber die Monitorfrequenz (Grafikkartenfrequenz) nicht immer bekannt ist oder nur vom OS aus geändert wird, wird meist darauf verzichtet, überhaupt einen VR-Sync zu benutzen.
(Wie in anderen Threads thematisiert, gibt es auf dem PC zusätzlich auch das Problem, daß zwar an einem Bitwechsel in einem Register der VGA-Karte ein Vertical Retrace (Rücklauf des Rasterstrahls) erkannt werden kann, jedoch (bis auf einige Modelle) kein Hardware-Interrupt (IRQ) dabei ausgelöst wird - man also den VR nur durch dauerndes Abfragen dieses Bits erkennen kann.
OK, das war ein langer Text für so einen an sich einfachen Grund. Ich hoffe, ich konnte das Problem einigermaßen verständlich erklären.
Amiga (Monitore, TVs) laufen mit 50Hz, PC Monitore mit 60 oder 70 Hz (je nach Auflösung). Unter modernen OS wird nicht an den VGA Registern rumgespielt, um die runterzutimen.
Die Spiele (C64, Amiga) arbeiten mit Rasterzeilen-Interrupts bzw Vertical Retrace Interrupts, d.h. sie timen das Spiel auf die Wiederholfrequenz des TVs oder Monitors (bzw an der Frquenz des Chips, der dem TV oder Monitor das Bild generiert). Ist nun die Frequenz des PC-Monitors anders, kann der Emulator es nicht ruckelfrei darstellen oder scrollen, denn dann müßte sich die Spielgeschwindigkeit (bzw die ganze Geschwindigkeit des simulierten Rechners) erhöht werden, d.h. ein Spiel, das auf eine Framerate von 50 Hz getimed wurde und auf dem PC Monitor ruckelfrei scrollen soll, müßte mit 60 Spielframes laufen. Es wäre kein Problem (auf modernen Rechnern), 60x statt 50x die Anzeige zu generieren, ABER es sind trotzdem nur 50 "Spiel-Schritte" pro Sekunde (und damit auch 50 "Scroll-Schritte", denn das Scrolling hängt vom Laufen der Spielfigur ab).
Das alleine ist der Grund, warum Amiga- und C64- Emulatoren auf PC nicht ruckelfrei laufen. Theoretisch könnte ein Amiga- oder C64-Emu auf PC ruckelfrei laufen, WENN der PC-Monitor auf 60 Hz laufen würde UND die "USA-Einstellung" (also NTSC statt PAL) benutzt wurde, denn NTSC wird mit ca. 60 Hz generiert.
Meist wird jedoch in Emulatoren auf die Anpassung an die Monitorfrequenz verzichtet. Es gibt zwar in manchen Emulatoren Einstellungen dafü+, um das anzuschalten, aber es wirkt aus obengenannten Gründen halt trotzdem nicht so, daß es nicht ruckelt, sondern lediglich, daß die Bildgenerationsrate mit der Monitorfrequenz synchronisiert wird.
Da aber die Monitorfrequenz (Grafikkartenfrequenz) nicht immer bekannt ist oder nur vom OS aus geändert wird, wird meist darauf verzichtet, überhaupt einen VR-Sync zu benutzen.
(Wie in anderen Threads thematisiert, gibt es auf dem PC zusätzlich auch das Problem, daß zwar an einem Bitwechsel in einem Register der VGA-Karte ein Vertical Retrace (Rücklauf des Rasterstrahls) erkannt werden kann, jedoch (bis auf einige Modelle) kein Hardware-Interrupt (IRQ) dabei ausgelöst wird - man also den VR nur durch dauerndes Abfragen dieses Bits erkennen kann.
OK, das war ein langer Text für so einen an sich einfachen Grund. Ich hoffe, ich konnte das Problem einigermaßen verständlich erklären.
-
- DOS-Gott
- Beiträge: 2347
- Registriert: Mo 8. Feb 2010, 16:59
Re: VGA-Karte und Interrupt?
das 50/60 hz problem war mir bekannt, das es alleine der auslöser der ruckler ist, war mir neu.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Re: VGA-Karte und Interrupt?
Naja, es ist aber so. Wenn das Spiel mit 50 Hz läuft, aber das Bild mit 60 Hz dargestellt wird, ruckelts halt, da unsynchron.
Den gleichen Effekt kann man auch umgekehrt beobachten:
Man nehme eine alte Serie ("Eine schrecklich nette Familie"), da original aus USA und daher NTSC, wenn in PAL umgerechnet: beim Scrolling der Credits im Abspann ruckelts auch - und zwar aus demselben Grund (NTSC: ca 60 Hz, PAL: 50 Hz). Heutzutage wird bei dieser Umrechnung da eine Menge Computervoodoo benutzt, damit das nicht mehr so auffällt, aber bei alten Serien gabs sowas noch nicht.
Den gleichen Effekt kann man auch umgekehrt beobachten:
Man nehme eine alte Serie ("Eine schrecklich nette Familie"), da original aus USA und daher NTSC, wenn in PAL umgerechnet: beim Scrolling der Credits im Abspann ruckelts auch - und zwar aus demselben Grund (NTSC: ca 60 Hz, PAL: 50 Hz). Heutzutage wird bei dieser Umrechnung da eine Menge Computervoodoo benutzt, damit das nicht mehr so auffällt, aber bei alten Serien gabs sowas noch nicht.
Re: VGA-Karte und Interrupt?
Bei einem VBE3-Bios mit Vesa hardware triple buffering wird nach dem Beschreiben einer noch nicht angezeigten Bildseite ein Softwareinterrupt angesprungen der das Umschalten der Bildseiten mit dem VSync synchronisiert.
Damit kann man bidschirmfüllende Bewegungen des gesamten BildInhaltes völlig ruckelfrei hinbekommen. Allerdings ist die Geschwindigkeit auch von der eingestellten Refreshrate abhängig, so das es sinnvoll ist eine hohe Refreshrate einzustellen,
denn mit nur 60 hz Refreshrate wird es langsamer und mit einer höheren Refreshrate schneller, wenn die verwendete CPU selber für die Aufgabe schnell genug ist.
Dirk
Damit kann man bidschirmfüllende Bewegungen des gesamten BildInhaltes völlig ruckelfrei hinbekommen. Allerdings ist die Geschwindigkeit auch von der eingestellten Refreshrate abhängig, so das es sinnvoll ist eine hohe Refreshrate einzustellen,
denn mit nur 60 hz Refreshrate wird es langsamer und mit einer höheren Refreshrate schneller, wenn die verwendete CPU selber für die Aufgabe schnell genug ist.
Dirk
Re: VGA-Karte und Interrupt?
Das Problem ist, wenn ein Spiel mit 50 Hz scrollt, weil sich die Figur mit 50 "Steps" pro Sekunde bewegt (Screenausschnitt scrollt ja "um die Spielfigur herum"), nützt es nichts, ob man das Bild 60x pro Sekunde darstellt oder nicht - es wird trotzdem ruckeln, weil jedes 5. und 6. Frame gleich sein werden und alle anderen nicht.