Display(Auslese) Start-Adresse

Diskussion zum Thema Programmierung unter DOS (Intel x86)
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Display(Auslese) Start-Adresse

Beitrag von TomCat »

Hallo,
ich bin im Vesa-grafikmodus 1280*1024 mal 32 bit farbtiefe.

um doublepuffering zu realisieren habe ich bislang immer die Bios-funktion:

ax = 4f07h
bx = 0
cx = spalte ab der ausgelesen werden soll (16 bit)
dx = zeile ab der ausgelesen werde soll (16 bit)
int 10h
benutzt

Jetzt möchte ich gerne den Auslesezeiger direkt programmieren.
Die Startadressen des CRTC Port 3d4h sind ja jeweils nur 8 bit breit. wie kann ich da den Auslesezeiger auf die z.B. die 2. Seite setzen. Bei der Auflösung reichen ja die 16 Bit nicht. :(

Weiß jemand wie man da z.b. den Auslesezeiger auf die 2. Seite setzen kann?

THX TomCat
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Display(Auslese) Start-Adresse

Beitrag von DOSferatu »

Vergiß den CRTC Port bei VESA.
Und: Es gibt keine zweite Seite.
Stell Dir einfach vor, der Grafikspeicher hat ein ganz langes (hohes) Bild gespeichert, dessen Breite die Scanlinebreite ist (bei 8bit Farbtiefe meist identisch mit der Auflösungsbreite).
Nehmen wir an, der Mode wäre 800x600, dann stell einfach Bild 0 auf Koordinaten 0;0
Und Bild 1 auf Koordinaten 0;600
und Bild 2 auf Koordinaten 0;1200
usw...
Das Folgende gilt für die "Banked" Methode
Der "Auslesezeiger" bzw Schreibzeiger bewegt sich nur im 16bit-Bereich, btw man liest IMMER das Segment $A000 aus. Man wechselt die "Bank" mit dem VESA-Befehl $4F05.
Wenn die Banken 64bit groß sind (bei neueren sowie allen vernünftigen VESA-Karten sind sie das)
bedeutet das, daß die BANK den oberen 16bit, der Offset ab $A000 den unteren 16bit einer theoretischen Adresse von 4GB innerhalb der Grafikkarte entspricht.
Und diese Adresse gilt innerhalb des oben erwähnten "langen Bildes".
Ich habe mir für VESA eine Unit geschrieben, die diese Sachen automatisch macht - spezielle Dinge (die, die schnell gehen sollen) steuere ich auch manchmal noch "direkt" an (mit speziell auf das "Banked" Model angepaßte Methode).
Es gibt noch die "linear Framebuffer" Methode.
Die Graka muß die unterschützen. Dann kann man direkt auf einen im Speicher "eingeblendeten" Bereich zugreifen und es linear adressieren. Dieser Speicher ist nicht wirklich RAM des Rechners, sondern er wird an einer Adresse knapp unter 4GB eingeblendet.
Diesen linearen Framebuffer Mode zu benutzen macht allerdings nur wirklich Sinn, wenn man im Flat 4G Mode oder Protected Mode programmiert, da man im Realmode (der segmentiert ist) ja ohnehin dauernd die Segmente wechseln muß, sowie keinen Direktzugriff auf diese hohen Speicherbereiche hat (sondern es über XMS tricksen müßte, wenn man es hinkriegt, genau diesen Bereich zu treffen).
Zu Information: Man setzt einen Mode auf "linear Framebuffer", indem man an der Modenummer das Bit 14 setzt. (also Mode + $4000, bzw Mode + 16384). Und wie gesagt, die Grafikkarte muß es supporten, das ist im Mode Available Flag erkennbar - weiß gerade nicht welches Bit. Dazu bitte den Text "Wie funktioniert Grafik?" von meiner Seite runterladen - da habe ich viel zu Grafik auf PC erklärt.
Ich hoffe, das hilft erstmal weiter.
Wenn nicht - mit PC-Grafikprogrammierung in VGA/VESA und darunter kenne ich mich sehr gut aus - dann einfach fragen.
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Display(Auslese) Start-Adresse

Beitrag von TomCat »

Hi DOSferatu,

danke für deine lange Antwort. :-)

Also ich bin unreal mode und arbeite mit linearem Framepuffer der, wie du schon erwähnt hast, im hohen Adressbereich beginnt. Bei mir aktuell bei Adresse: 3758096384
der Grafikbereich meiner Seite "0" beginnt also an dieser Speicheradresse. Die nächste Seite bei: Adresse seite "0" + eingestellte Aufloesung mal Farbtiefe. == (AdresseSeite"0") +(1280*1024*4)
So weit so gut.
Mit der Vesa-Funktion:

ax = 4f07h
bx = 0
cx = spalte ab der ausgelesen werden soll (16 bit)
dx = zeile ab der ausgelesen werde soll (16 bit)
int 10h

funktioniert das ja.

Es geht mir jetzt darum, dies durch direkte Registerprogrammierung zu
zu realisieren. Gehe mal davon aus mit dem CRT-Controller.

Leider kann ich hier den Auslesezeiger nur max. 65535 Pixel weiter setzen.

mov dx,3d4h
mov al,0ch ;low wert
out dx,al

mov dx,3d5h
mov al,255
out dx,al

mov dx,3d4h
mov al,0dh ;high-wert
out dx,al

mov dx,3d5h
mov al,255
out dx,al

somit ist der Auslesezeiger max. ca. 51 zeilen weiter zu setzen aber niemals 1024 Zeilen !!

Wie kann ich den Auslesezeiger 1024 zeilen weiter setzen???

THX TomCat
wobo
DOS-Guru
Beiträge: 615
Registriert: So 17. Okt 2010, 14:40

Re: Display(Auslese) Start-Adresse

Beitrag von wobo »

Es ist ja gerade Sinn von VESA, dass Du die Register nicht mehr von Hand programmieren mußt. Denn wo sich Bit16 usw. der Display-Adresse befinden, ist von Karte zu Karte unterschiedlich (auch bei gleichen Herstellern!). Du mußt Dir ansonsten die Registerbelegung Deiner Karte holen, wenn Du die Register direkt beschreiben willst. Dann läuft Dein programm natürlich nur noch auf Rechnern, die ebenfalls eine baugleiche Grafikkarte haben.

Ich habe mir das mal für Nicht-VESA-SVGA angetan. Teilweise befinden sich bit16 und Bit17 nicht einmal im selben Register, oder im selben Register, aber bunt verstreut!

Wie DosFeratu schon schrieb: Vergiß CRTC bei VESA. Du kannst Dir so ohne weiteres nicht einmal sicher sein, dass jede VESA-Karte, das Setzen der ersten 64k pixel über die VGA-Regs $0c und $0d zuläßt. Denn ist ist zwar meistens so, aber nicht notwendig, dass sich eine VESA-Karte in einem VESA-Videomode VGA-kompatibel verhält.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Display(Auslese) Start-Adresse

Beitrag von freecrac »

Als ich mit der VESA-Programmierung anfing hatte ich schon eine Geforce 4 TI4200(AGP;64MB) mit einem VBE 3-Bios drauf. Damit kann man das dortige hardware triple buffering verwenden welches gegenüber dem double buffering den Vorteil hat, das dieses triple buffering auf den VSYNC selber wartet und wir uns darum nicht weiter kümmern müssen. Dazu ist es sinnvoll eine höhere Refreshrate als nur 60hz und einen Vesamode mit eigenen CRTC-Parameter zu verwenden, insofern man einen dafür geeigneten CRT-Monitor verwendet. Das sieht dann auch nicht so dunkel aus und es macht unsere Bewegungsabläufe mit triple buffering ggf. auch sichtbar schneller. Wie der Name es schon vermuten läßt haben wir dann drei Bildschirmadressen/Bildbereiche der jeweiligen Buffer, die dann jeweils im Durchlauf von uns gewechselt werden müssen.

Auch beim triple buffering verwenden wir die Funktion 4F07h, um die neue Startadresse zu setzen.
Das erste Mal mit BX = 2 (Shedule new Display-Start-Adress) und alle folgenden Male mit BX= 4 (Wait until Display shedule).

...

Dieses Beispiel benötigt eine MMX-CPU, einen CRT-Monitor mit 96khz/160hz(19"-CRT oder grösser), eine Grafikarte mit einem VBE3-Bios und ein DOS gebootet, aber ohne einen EMS-Memmorymanager wie emm386.exe. Es wird der Unrealmode und ein Vesamode mit 1024x768 mit 100hz Refreshrate verwendet. Um geeignete CRT-Parameter für eine höhere Refreshrate zu bekommen habe ich das vbehz-Tool verwendet.

Um es einfach zu machen sind nur ein paar farbige Bälle zu sehen, die über den Bildschirm bewegt werden bis sie an einen Rand des Bildbereichs stossen und dann ihre Richtung wechseln. Weil die Bälle aber nicht klein genug sind und deswegen eine Menge Bilddaten zusammen kommen, würden sie ohne buffering nicht flimmerfrei darstellbar sein, wenn sie über den Bildschirm bewegt werden.

http://www.alice-dsl.net/freecracmaps/Tool/Neutrip.zip

Dirk
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Display(Auslese) Start-Adresse

Beitrag von DOSferatu »

Natürlich ist/war VESA3 eine schöne (Weiter)-entwicklung. Aber da ich natürlich für typische DOS-Rechner programmiere, kann ich nicht vom Vorhandensein einer Vesa3-fähigen Grafikkarte ausgehen.
Und ich persönlich mag es nicht, wenn hardwarebedingt irgend etwas dann GAR NICHT läuft.
OK, ich programmiere auch für mind. 386er, was dann auch bewirkt, daß es auf 286ern nicht läuft - aber in meinem Fall ist es ja nicht nur EIN FEATURE, zu dem ich "keine Lust" hätte, das softwaremäßig zu supporten, sondern quasi die gesamten Möglichkeiten der 2 zusätzlichen Segmentregister sowie der auf 32bit erweiterten (bzw erweiterbaren) normalen Register.
Und obwohl es eine steinkalte Schande ist, daß es zu VGA-Zeiten nur wenige Grafikkarten gab, die beim Vertical Retrace einen Hardware-IRQ auslösen konnten (was wirklich super gewesen wäre, wenn das Standard gewesen wäre! - der C64 zB kann in JEDER gewünschten Rasterzeile solche IRQs auslösen - und das auch mehrfach pro Frame...) - würde ich nicht ein Spiel an das Vorhandensein von VESA3.0-fähige Hardware koppeln wollen - dann ist die Lauffähigkeit doch auf zu wenige (DOS-)Systemkonfigurationen begrenzt.
Aber das ist natürlich nur meine persönliche Meinung dazu.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Display(Auslese) Start-Adresse

Beitrag von freecrac »

DOSferatu hat geschrieben:Natürlich ist/war VESA3 eine schöne (Weiter)-entwicklung. Aber da ich natürlich für typische DOS-Rechner programmiere, kann ich nicht vom Vorhandensein einer Vesa3-fähigen Grafikkarte ausgehen.
Und ich persönlich mag es nicht, wenn hardwarebedingt irgend etwas dann GAR NICHT läuft.
OK, ich programmiere auch für mind. 386er, was dann auch bewirkt, daß es auf 286ern nicht läuft - aber in meinem Fall ist es ja nicht nur EIN FEATURE, zu dem ich "keine Lust" hätte, das softwaremäßig zu supporten, sondern quasi die gesamten Möglichkeiten der 2 zusätzlichen Segmentregister sowie der auf 32bit erweiterten (bzw erweiterbaren) normalen Register.
Und obwohl es eine steinkalte Schande ist, daß es zu VGA-Zeiten nur wenige Grafikkarten gab, die beim Vertical Retrace einen Hardware-IRQ auslösen konnten (was wirklich super gewesen wäre, wenn das Standard gewesen wäre! - der C64 zB kann in JEDER gewünschten Rasterzeile solche IRQs auslösen - und das auch mehrfach pro Frame...) - würde ich nicht ein Spiel an das Vorhandensein von VESA3.0-fähige Hardware koppeln wollen - dann ist die Lauffähigkeit doch auf zu wenige (DOS-)Systemkonfigurationen begrenzt.
Aber das ist natürlich nur meine persönliche Meinung dazu.
Meine Anforderungen an die Hardware liegen schon etwas höher. Die Mindestanforderung ist eine MMX-CPU und eine Karte mit VBE 3-Bios. VBE3 muss schon wegen der höheren Refreshrate als 60hz bei hohen Auflösungen und bei der Verwendung eines CRT-Monitors sein und die MMX-Register gibt es auch schon sehr lange und sie beschleunigen die Bildausgabe erheblich. Dann verwende ich vorzugsweise nur Bildmodi mit 32 Bit je Pixel, damit auch Filme und Fotos ohne farbliche Einschränkungen angezeigt werden können. Die Mindestauflösung sollte nicht kleiner als 1024x758 sein. Weil ich habe mir doch keinen PC angeschafft, um dann nur vergleichsweise die niedrige Auflösung eines C64ers zu verwenden. Für den C64 war das ja noch OK, aber von einem PC erwarte ich viel mehr. So konnte mich auch eine Aufösung von 640x480 mit 256 Farben noch niemals wirklich glücklich machen. Und leider ist mir mein Core2quad mit 2800mhz auch immer noch viel zu langsam.

Ich hatte es aber auch noch nie wirklich vor ein Spiel zu programmieren. Vermutlich würde ich dann von einer 1000mhz CPU als Mindestanforderung ausgehen. Alle diese Anforderungen können heute doch leicht erfüllt werden. Die Mehrzahl aller heutigen Benutzer haben doch heute gar keinen so alten Rechner mehr, der solche für heutige Verhältnisse geringen Anforderungen nicht erfüllen kann. Ich würde es nicht als so tragisch sehen, wenn noch ältere und langsamere Rechner dann nicht mehr unterstützt werden, solange die neuesten Rechner immer noch DOS booten können. Ich denke das heute fast alle modernen Grafikarten ein VBE 3-Bios mitbringen und das solche Modelle in der Masse dominieren. So kann ich dabei keine Art von Begrenzung auf nur wenig Hardware erkennen. Ganz im Gegenteil, die Anzahl der älteren Rechner wird immer geringer, so das wir damit nur noch von zunehmend verschwindend wenigen verfügbaren Rechner ausgehgen können. Der kleinste und gemeinsame Nenner wäre dann weit unter dem Durschnitt was heutige Rechner leisten können. Den Kopf zerbrechen würde ich mir vermutlich daran, wie man moderne Sound-Karten und Onboardsound verwenden kann.

Dirk
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Display(Auslese) Start-Adresse

Beitrag von DOSferatu »

Naja, ICH sehe das so tragisch:
Schnelle Systeme verleiten zu ineffizienter schlampiger Programmierung. (Beispiele dafür sind quasi überflüssig - man sieht es an allen Ecken und Enden - heutzutage ist Performance bei Programmen ja eher die Ausnahme als die Regel.

Hohe Auflösungen sind nur gerechtfertigt, wenn die erzeugte Grafik das auch hergibt. Ich z.B. mag handgepixelte Grafik - da pixelt keiner in dieser Auflösung (1024) - und für diese Leute läuft es dann meistens auf große mit Farbverläufen gefüllte Flächen hinaus - was nicht gut aussieht.

Das Problem, was ich sehe ist, daß quasi NIEMAND die Leistung, die heutige Rechner haben, wirklich richtig ausnutzt - sondern die Geschwindigkeit und die erweiterten (Grafik-/Sound-) -Hardwarefähigkeiten eher nur benutzt werden, um programmiererisches Unvermögen / Faulheit zu kompensieren, oder die Entwicklungszeit/-Kosten herabzusetzen, um die Gewinnspanne zu erhöhen.

Und ja, ich bin DOS-User. Und ja, ich programmiere auf einem 486er.
Und WENN ich wirklich einmal 1024er Auflösung und CPU-Geschwindigkeiten im GHz Bereich jemals für irgend etwas voraussetzen werde, dann wird es wirklich nur etwas sein, das technisch darunter nicht möglich ist. Aber da ich Spiele programmiere und mir diese modernen "realistischen" Ego-Kriegs-Shooter am Allerwertesten vorbeigehen und ich dafür kein Interesse aufbringen kann, wird so etwas von mir auch niemals kommen. Ich favorisiere Jump-n-Run, Shoot-em-up (eben dieses 8/16-bit konsolenartige Arcade) und Adventures. Und die erscheinen bei mir auch in diesem Stil.

Wieder alles nur eine persönliche Meinung meinerseits.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Display(Auslese) Start-Adresse

Beitrag von freecrac »

DOSferatu hat geschrieben:Naja, ICH sehe das so tragisch:
Schnelle Systeme verleiten zu ineffizienter schlampiger Programmierung. (Beispiele dafür sind quasi überflüssig - man sieht es an allen Ecken und Enden - heutzutage ist Performance bei Programmen ja eher die Ausnahme als die Regel.
Mir ist in der Regel eher die Spieilfläche viel zu klein und ich würde gerne noch etwas mehr Performance dafür opfern, um eine grössere Speilfläche zu bekommen, die man nicht sofort überblicken kann und wo dann die Wahrscheinlichkeit höher liegt, das man von dem Spielgeschehen auch häufiger überascht wird.
Hohe Auflösungen sind nur gerechtfertigt, wenn die erzeugte Grafik das auch hergibt.
Dafür kann man ja Filmaufnahmen machen und diese in einem Spiel verwenden.
Ich z.B. mag handgepixelte Grafik
Mich können solche Werke nur wenig begeistern.
- da pixelt keiner in dieser Auflösung (1024)
Ich persöhnlich würde heute eher die native Auflösung meines 28" LCD in 1920x1200 sehen wollen.
- und für diese Leute läuft es dann meistens auf große mit Farbverläufen gefüllte Flächen hinaus - was nicht gut aussieht.
Diese Flächen sollten schon eher mit Bildern von Fotos und Filmaterial gefüllt werden.
Das Problem, was ich sehe ist, daß quasi NIEMAND die Leistung, die heutige Rechner haben, wirklich richtig ausnutzt - sondern die Geschwindigkeit und die erweiterten (Grafik-/Sound-) -Hardwarefähigkeiten eher nur benutzt werden, um programmiererisches Unvermögen / Faulheit zu kompensieren, oder die Entwicklungszeit/-Kosten herabzusetzen, um die Gewinnspanne zu erhöhen.
Das sehe ich genauso.
Und ja, ich bin DOS-User. Und ja, ich programmiere auf einem 486er.
Ich sehe keinen triftigen Grund sich nur auf solche alten Rechner bei der DOS-Programmierung zu beschränken.
Und WENN ich wirklich einmal 1024er Auflösung und CPU-Geschwindigkeiten im GHz Bereich jemals für irgend etwas voraussetzen werde, dann wird es wirklich nur etwas sein, das technisch darunter nicht möglich ist.
Damit hätte ich keine Probleme.
Aber da ich Spiele programmiere und mir diese modernen "realistischen" Ego-Kriegs-Shooter am Allerwertesten vorbeigehen und ich dafür kein Interesse aufbringen kann, wird so etwas von mir auch niemals kommen.
Es muss ja kein Kriegs-Shooter werden, mit der Ego-Perspektive lassen sich auch andere Prinzipien verfolgen wie z.B bei Minecraft im Kreativemode, wo man gar nicht kämpfen braucht und es nur darum geht sein eigenes Gespür für schöne Bauwerke zu ergründen. Und wo man auch gemeinsam mit anderen Spielern seine eigenen künstlerischen Talente in ein gemeinsam gebautes Ambiente einbringen kann.
Ich favorisiere Jump-n-Run, Shoot-em-up (eben dieses 8/16-bit konsolenartige Arcade) und Adventures. Und die erscheinen bei mir auch in diesem Stil.

Wieder alles nur eine persönliche Meinung meinerseits.
Ich finde Jump-n-Run und auch Shoot-em-up in der 2D-Perspektive einfach schon viel zu langweilig.

Anders bei der Ego-Perpektive, wo ich mit einer künstlichen Welt quasi geistig verschmelzen kann und wo es auch mehr Interaktionsmöglichkeiten gibt, die sich in einer dreidimensionalen Spielwelt duch das Rundherum-Erlebniss ergeben können. Auf diese Weise wird man mehr gefordert und auch die Spannung erhöht sich mit den Anforderungen sich in so einem dreidimensionalen Raum zurecht zu finden. Das betrifft dann auch die Wahl der Position, wo man mit seiner Spielwelt und den dort anzutreffenden Objekten interagieren kann. Wenn man sich nun daran etwas gewöhnt hat, diese höheren Anforderungen zu bewältigen, dann wirken danach alle flachen 2D-Spiele nur noch als zu wenig spannend.

So fehlt mir auch schon etwas das Verständniss dafür was andere Spieler heute überhaupt noch an 2D-Spiele so interessant finden können. Mir fehlt vermutlich einfach nur diese Begeisterung dafür, weil ich schon für mich spannenderere Spiele kennengelernt habe und damit die Messlatte von Spannung und Spaß dabei immer höher gesetzt wurde.

Es fehlen aber noch preiswerte 3D-Monitore die ganz ohne eine 3D-Brille ein 3D-Bild darstellen können. Bei den 3D-Brillen setze ich eine Runde aus und warte lieber noch bis die richtigen 3D-Monitore auf den Markt kommen. Die 3D-Brillen sind für mich eine völlig inakzeptabel Lösung, wo man meiner Meinung nach keinesfalls mitmachen sollte.

Dirk
Brueggi

Re: Display(Auslese) Start-Adresse

Beitrag von Brueggi »

Eine sehr interessante Diskussion, die hier entstanden ist.

Ist natürlich auch nur meine persönliche Meinung (und soll kein Angriff sein!): Ich würde mir auf einem modernen PC jedoch kein DOS installieren und auch keine DOS-Programme nutzen. Irgendwie gehört das nicht zueinander... und funktioniert auch nicht mehr 100%.

Ich finde es auch schade, dass eine VGA-Karte keinen IRQ auslösen kann,wie eben der C64. Noch eleganter wäre natürlich die Amiga-Methode gewesen.... aber ok, letztlich ging es wohl doch nur um Büro-Arbeit beim PC ;-)

Da ich vom 8-Bit-Bereich komme, interessieren mich am PC eben (erstmal) all die Dinge, die man vorher nicht kannte. 640x480x16 Col, 320x200x256 Col, 262.000 Farben, Festplatten, Soundkarten... und wenn ich 1024x768 bei 24- oder 32-Bit-Grafiken sehen möchte, dann lad ich Paintshop unter Win XP oder sonst wo ;-) Wo ich früher mit 64K oder 128K auskommen musste, kann ich jetzt 640K nutzen (wenn ich kann und will bzw. es das Programm rechtfertigen würde). Der PC ist für nicht mehr der alte Sandhaufen in der Landschaft, sondern ein riesiger Sandkasten mit haufenweise neue Möglichkeiten. Und wo lernt man damit besser umzugehen, als an einem - noch übersichtlichen - und nicht durch ein OS eingeschränkt zugänglichen Rechner (ala 286,386,486) ? =)
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Display(Auslese) Start-Adresse

Beitrag von DOSferatu »

Bei mir mag es wohl daran liegen, daß mich die "Realität" überhaupt nicht oder nur sehr wenig interessiert und sie für mich eher eine Art "notwendiges Übel" ist. WÜRDE ich hohe Auflösungen, hohe Farbtiefe, realistische "Grafik" und "Sound" haben wollen, würde ich einfach rausgehen - da hat man das alles. Am Spiel interessiert mich, daß man bestimmte - für das jeweilige Spielprinzip unwichtige - Dinge reduzieren kann (wie z.B. eine Dimension), die Steuerung auf das Wesentliche beschränken usw. So daß das Spiel eben nicht so etwas pottlangweiliges macht wie den Versuch, die Realität nachzubilden, sondern etwas ganz eigenes tut. Irgendwelche realen Ereignisse wie bestimmte Kriege und bestimmte Waffen/Uniformen etc einfach als Spiel nachzubilden (und nachzuspielen) ist (meiner Meinung nach) einfallslose Grütze - wenn Leute mit Spielen Geld verdienen wollen, keine tollen Spielideen haben und einfach "machen, was alle machen, weil sich damit 'ne Zeitlang gut Geld verdienen läßt".
Ich habe einen Kumpel, der einige so Kriegsszenarien-Spiele hat - das ist alles so öde, ich penne von Zusehen schon jedesmal fast ein. Immer wieder dasselbe: Realistisch animierte Leute mit realistisch aussehenden Waffen und realistischem Kriegsgerät, die sich gegenseitig abballern und immer wieder und immer wieder....... GÄHN.
Diese Spiele sind eben diese "Grafikblender" - wenn die Grafik realistisch und hochauflösend ist, staunen alle über die tolle Grafik und übersehen dabei, was für eine öde repetative Grütze das alles ist.....
Die echten Kriege sind schon die größte Scheiße* unter der Sonne, die die Menschheit je erfunden hat - und das Nachspielen derselben macht es nicht weniger bescheuert. Aber gut - jeder hat eben einen anderen Geschmack... [* Entschuldigung für das harte Wort]
Allein sich zu uniformieren ist schon etwas, das ich in der Realität in höchstem Maße lächerlich finde... Aber gut, genug davon.

Bei 3D vermisse ich z.B. ebenfalls eine Dimension - denn eigentlich wird es meist nur 2D gespielt. Bei 2D-Jump-n-Run wird die "Tiefe" eben weggelassen, bei den "3D" Spielen ist es dafür eben die Höhendimension, die eher vernachlässigbar eingesetzt wird.
Bei 3D ist die Sichtgrenze die Entfernung (also die Verkleinerung durch Perspektive), bei 2D der Bildschirmrand - so daß man sowohl bei 3D als auch bei 2D überrascht werden kann.
Und ja, viele 2D Spiele haben die immer gleichen Abläufe - und Figurenbewegungen. Da ist das Ziel eben - anders als bei 3D - die Reaktion auf die Abläufe bis zur Perfektion zu trainieren.
Ich als Einzelgänger - und die wenigen Freunde, die ich habe, spielen nicht so etwas wie ich - empfinde Spiele als nachteilig, die NUR noch als Multiplayer funktionieren und die Singleplayersachen sind nur noch "der Vollständigkeit halber" halbherzig angeflanscht. So daß man, wenn man mal etwas spielen will, immer andere Leute dazu braucht. Und wenn es fremde Leute auf irgendwelchen Servern sind, dann sind sie nie auf demselben Erfahrungslevel wie man selbst. (Mein Kumpel ärgert sich öfters darüber, wie dämlich sich da manche Mitspieler anstellen... Aber es ist natürlich klar: 3D-Geballer lockt eben oft auch strunzdummes Gesocks an.... "Hähähäh! Ballern!...." - damit muß man in so 3D Kriegsgeballer eben immer rechnen. Und ich kann mir nicht vorstellen, daß die Hersteller dieser Spiele nicht wüßten, welche Klientel ihre Spiele kauft. Deshalb ist auch alles auf dieses pseudocoole Soldatending ausgelegt: "Ich hab ne Uniform, ich hab ne Waffe und jetzt bin ich wer!"
Und es geht dabei dann überhaupt nicht mehr darum, ein SPIEL zu spielen. Denn: Ein SPIELPRINZIP ist nicht von der Pixelgröße oder der Farbtiefe oder der Anzahl Soundkanäle abhängig. Und wer so etwas denkt, gehört zur Kategorie Menschen, die auch ein Buch Müll finden würden, wenn nur Text drinstände und gar keine bunten Bilder drin wären - da sie die Form der Darbietung über die eigentliche Information stellen. Leute, denen Dinge nur Spaß machen können, wenn sie Truecolor/Hochauflösend/Surroundsound sind, haben einfach eine verkümmerte Phantasie und Vorstellungskraft, man muß ihnen alles genau so vorkauen, weil sie nicht die geringste Fähigkeit zur Abstraktion haben und ihnen ein schlechtes Spiel mit "geiler Grafik" immer noch besser gefällt als ein gutes Spiel mit einfacher Grafik. Das sind auch Leute, die den wirklichen Sinn eines Spiels nicht erkannt haben. Auf mich persönlich wirken solche Leute immer etwas "schlicht im Geiste" bzw etwas "einfach gestrickt".
Zum Glück haben sich zumindest EINIGE Spielefirmen mittlerweile wieder eines besseren besonnen und bringen nicht mehr einen dämlichen Egokriegsshooter nach dem anderen heraus, sondern wagen auch mal wieder, neue, andere Ideen zu haben - oder eben auch Spielprinzipien wiederzubeleben, die unverdienterweise fast verlorengegangen wäre - wie z.B. handgezeichnete Adventures. (Eine Zeitlang - in den späten 90ern und frühen 2000ern - glaubten die Spielefirmen allen Ernstes "so etwas wolle doch keiner mehr".) Spielefirmen die nur immer den neuen Teil des immer gleichen Kriegsgeballers rausbringen - nur (dank neuerer Grafikhardware) mit mehr Effekten, stellen sich meiner Meinung nach ein kreatives Armutszeugnis aus. Andererseits kann man diese Firmen ja verstehen - den denen geht es ja nur darum, mit möglichst wenig Aufwand und ohne neue Ideen möglichst viel Geld zu machen - weil sie eben eine Firma sind. Das noch größere Armutszeugnis stellen sich ja eher die Leute aus, die diesen Kram immer wieder kaufen... Ich sage es mal so: Bei pubertierenden männlichen Jugendlichen könnte man das ja noch verstehen, daß sie auf dieses sinnlose Geballer und diese Grafikblender hereinfallen, weil sie die tollen Waffen und realistische Explosionen für das Größte halten - Spielinhalt scheißegal. Aber sobald man die 20 überschritten hat und so einen Kram immer noch anbetet, bewegt man sich eigentlich gewissermaßen schon auf der Vorstufe eines irgendwie im Geiste etwas Zurückgebliebenen...
Meiner Meinung nach sind viele der heutigen 3D-Ballerspiele überhaupt keine richtigen Computerspiele mehr im eigentlichen Sinne, daß einem das Spiel selbst irgendeine Herausforderung stellt. Da sie nur noch im Multiplayer richtig funktionieren, ist das "Spiel" selbst eigentlich gar nichts anderes mehr als eine Grafikplattform, die die Aktionen der Leute und das Level grafisch darstellt - das Spiel selbst müssen die Beteiligten machen. Also ist es nichts weiter als ein Grafikdemo, das durch Steuerbefehle von außen beeinflußt wird - denn das Spiel selbst tut ja gar nichts mehr. Und mit der heutigen überkandidelten Grafikhardware ist Darstellung von 3D Grafik ja nichts Besonderes mehr. Jede Firma hat (oder kauft) sich eine gängige 3D-Darstellungs-Engine und fertig ist die Laube.
Alles natürlich wieder nur eine ganz persönliche Meinung.
Zuletzt geändert von DOSferatu am Mi 21. Nov 2012, 18:46, insgesamt 2-mal geändert.
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Display(Auslese) Start-Adresse

Beitrag von DOSferatu »

Anmerkung an die Moderatoren: Und ja, ich habe es bemerkt, daß ich mich etwas vom Topic entfernt habe. Entschuldigung - es ließ sich nicht vermeiden.
Brueggi

Re: Display(Auslese) Start-Adresse

Beitrag von Brueggi »

Bevor ich etwas dazu schreibe, eine Bitte an die MODs: Damit das eigentliche Thema nicht "zerstört" wird, könnte man die letzten Postings irgendwie ins Off-Topic schieben, damit man da weiter drüber reden/diskutieren/sinnieren kann? Ich fände es schade, wenn es gerade jetzt gestoppt wird, wo es doch richtig anfängt :-)
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Display(Auslese) Start-Adresse

Beitrag von freecrac »

Brueggi hat geschrieben:Eine sehr interessante Diskussion, die hier entstanden ist.

Ist natürlich auch nur meine persönliche Meinung (und soll kein Angriff sein!): Ich würde mir auf einem modernen PC jedoch kein DOS installieren und auch keine DOS-Programme nutzen. Irgendwie gehört das nicht zueinander... und funktioniert auch nicht mehr 100%.
Mit DOS 6.22 selber habe ich noch nie Probleme wegen einer schnelleren CPU feststellen können.
Das einige DOS-Anwendungen fehlerhaft programmiert wurden ist ja nicht die Schuld der schnellen CPUs, sondern ein schwerwiegender Konzeptfehler im Code solcher Anwendungen. Und nur wegen fehlerhaft programmierter Anwendungen würde ich jeztzt nicht behaupten wollen, dass unser DOS nicht mehr zu schnelleren Rechnern gehört, oder dass DOS damit nicht mehr sinnvoll benutzt werden kann.
Ich finde es auch schade, dass eine VGA-Karte keinen IRQ auslösen kann,wie eben der C64.
Unter Windows wird der Grafikkarte aber auch eine IRQ-Nummer zugeordnet. Mir ist es aber nicht bekannt wie dieser IRQ benutzt wird. Ich vermute das unter Windows damit nicht die Bios-Routinen der Grafikkarte angesprungen und ausgeführt werden, sondern das möglicherweise doch von der Grafikkarte ein IRQ ausgelöst werden kann.
Noch eleganter wäre natürlich die Amiga-Methode gewesen.... aber ok, letztlich ging es wohl doch nur um Büro-Arbeit beim PC ;-)
Ja ursprünglich war der PC nur dafür gedacht.
Da ich vom 8-Bit-Bereich komme, interessieren mich am PC eben (erstmal) all die Dinge, die man vorher nicht kannte. 640x480x16 Col, 320x200x256 Col, 262.000 Farben, Festplatten, Soundkarten... und wenn ich 1024x768 bei 24- oder 32-Bit-Grafiken sehen möchte, dann lad ich Paintshop unter Win XP oder sonst wo ;-) Wo ich früher mit 64K oder 128K auskommen musste, kann ich jetzt 640K nutzen (wenn ich kann und will bzw. es das Programm rechtfertigen würde).
Meine erste Graffikkarte (eine ET4000 mit 1MB) hatte ja schon einen 24 Bit truecolormode und deswegen wollte ich danach auch keine niedrigere Farbauflösung mehr haben. Nach dem Einbau der Karte habe ich sofort ein kleines Programm mit Debug geschrieben und damit einTruecolorbild(24Bit *.tga) unter DOS selber zur Anzeige gebracht. Windows 3.11 für Workgroups habe ich erst später bekommen.
Der PC ist für nicht mehr der alte Sandhaufen in der Landschaft, sondern ein riesiger Sandkasten mit haufenweise neue Möglichkeiten. Und wo lernt man damit besser umzugehen, als an einem - noch übersichtlichen - und nicht durch ein OS eingeschränkt zugänglichen Rechner (ala 286,386,486) ? =)
Damit das auch so bleibt wurde von der Linuxgemeinde auch schon eine Art Workaround für das kommende "Secureboot "
entwickelt, damit auch weiterhin alle bootfähigen Betriebssysteme auch mit neuereren Rechnern bootbar bleiben.
Auch für uns DOSianer ist das eine sehr gute Nachricht.

Dirk
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Display(Auslese) Start-Adresse

Beitrag von TomCat »

Damit das auch so bleibt wurde von der Linuxgemeinde auch schon eine Art Workaround für das kommende "Secureboot "
entwickelt, damit auch weiterhin alle bootfähigen Betriebssysteme auch mit neuereren Rechnern bootbar bleiben.
Auch für uns DOSianer ist das eine sehr gute Nachricht.

Dirk
Was es mit diesem "Secureboot" auf sich? Ist es dann nicht mehr möglich z.B. einfach mit einer DOS 6.22 Boot-Diskette zu booten?

TomCat
Antworten