Bildschirmmodi

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Hoessi666
Beiträge: 19
Registriert: 09.12.2009 11:34
Computerausstattung: eMachine Notebook G520, Intel 575 @ 2GHz, 2GB Ram,Intel Mobile 4 Series Express
Wohnort: R´Lyeh

Re: Bildschirmmodi

Beitrag von Hoessi666 »

GPI hat geschrieben:Ich frag mal blöd nach den Sinn von 320x200. Die meisten Monitore sind mittlerweile LCDs etc. Die haben meist eine feste Auflösung und wenn man eine niedrigere nimmt wird das oft mehr schlecht als Recht unterstützt.

Genauso ein 256-Farb modus. Er ist eigentlich heute völlig veraltet und wird nur noch aus kompatiblitätsgründen zur Verfügung gestellt. Ich kann nur jeden Abraten, sowas zu Nutzen (Bei einigen Macs wurde meines Wissens nach schon der Modus ersatzlos gestrichen. Sprich die Hardware macht es nicht mehr und eine Softwareemulation gibt es nicht).
Für RetroGamer sind LowRes-Auflösungen und palettenbasierte Farbtiefen eine feine Sache, deshalb find ich´s schade, dass solche Sachen sterben...aber ist wohl der Lauf der Dinge...
Sprites etc kann man zoomen um die LowRes quasi auf einer höheren, modernen Auflösung nachzustellen, aber Palette-Cycling ist z.B. nur sehr schwer umzusetzen (finde ich), da die Bildpunkte ja einzeln entsprechend der gespeicherten Farbwerte aus der Palette gezeichnet werden müssen. Bei hohen Auflösungen ´ne ganze Menge Arbeit, selbst wenn man direkt über den Screenbuffer() geht. Zusätzlich müssen bei Pixelkollisionen die Farbwerte der überlappenden Sprites pro Pixel einzeln auf die transparente Farbe geprüft werden usw.

Man könnte das alles vielleicht auch auf ein Sprite in der Größe der ursprünglich angestrebten Auflösung (z.B. 320x240) malen, ein 3DSprite draus machen und dieses vergrößert auf den Screen packen, aber ob auch das schnell genug ist?
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Bildschirmmodi

Beitrag von GPI »

Hoessi666 hat geschrieben:Man könnte das alles vielleicht auch auf ein Sprite in der Größe der ursprünglich angestrebten Auflösung (z.B. 320x240) malen, ein 3DSprite draus machen und dieses vergrößert auf den Screen packen, aber ob auch das schnell genug ist?
Mach ein Fenster auf und nutz einen WindowedScreen mit Strech aktiv - funktioniert allerdings nur mit DirectX.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Hoessi666
Beiträge: 19
Registriert: 09.12.2009 11:34
Computerausstattung: eMachine Notebook G520, Intel 575 @ 2GHz, 2GB Ram,Intel Mobile 4 Series Express
Wohnort: R´Lyeh

Re: Bildschirmmodi

Beitrag von Hoessi666 »

GPI hat geschrieben:
Hoessi666 hat geschrieben:Man könnte das alles vielleicht auch auf ein Sprite in der Größe der ursprünglich angestrebten Auflösung (z.B. 320x240) malen, ein 3DSprite draus machen und dieses vergrößert auf den Screen packen, aber ob auch das schnell genug ist?
Mach ein Fenster auf und nutz einen WindowedScreen mit Strech aktiv - funktioniert allerdings nur mit DirectX.
Da hast Du aber auch nur die Grafikmodi über 8Bit heutzutage. Ums "Handzeichnen" kommst Du da glaub ich nicht drumrum...
(Bei meinem zitierten Sprite-Beispiel müßte man natürlich auch über den DrawingBuffer direkt manipulieren wegen "Speed".)
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Bildschirmmodi

Beitrag von GPI »

Jup, aber eventuell macht man es gleich anders. So Farbrotationen hat man ja bspw. für Wasser genutzt. Heute kann man dafür einfach neue Sprites für zeichnen und rotieren. Man hat das ja früher gemacht, weil man nicht so viel Speicher hatte.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Re: Bildschirmmodi

Beitrag von Zaphod »

Der Grund für meinen Wunsch nach einer kleinen Auflösung und Indexed Modi war, dass ich mich mal wieder Hobby mäßig mit software rendering (besonders Mode7, Raycasting und anderen Trigonometrie basierten tricks) beschäftigen wollte. Das kann man natürlich auch in Truecolor Modi machen, muss sich dann aber mit so nervigen Sachen wie Pixelformaten beschäftigen und in sehr hohen Auflösungen wird das ganze auch schnell langsam, weil der Zeitaufwand quadratisch mit der Auflösung wächst.

Für den Fall dass jetzt jemand das Bedürfnis verspürt mich darauf aufmerksam zu machen, dass das nicht mehr zeitgemäß ist, sage ich schon einmal im voraus das ich mir dessen bewusst bin. Ich spiele aber auch noch gerne zwanzig Jahre alte spiele und wenn ich mir den derzeitigen Retro-Trend ansehe, scheine ich damit nicht alleine zu sein.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Bildschirmmodi

Beitrag von NicTheQuick »

Theoretisch kann man doch eine Palette ganz einfach mit 'DisplaySolidSprite()' emulieren. Man legt 256 8-Bit-Alpha-Sprites an und ein ebenso großes Array mit RGB-Farbwerten. Dieses Array definiert die Farbe für den entsprechenden Index. Angezeigt werden dann einfach in jedem Durchlauf alle 256 Sprites übereinander mit der entsprechenden Farbe aus dem Array als 4. Parameter von 'DisplaySolidSprite()'. Möchte man nun an Pixel (x, y) die Farbe an Index i schreiben, malt man an Stelle (x, y) in Sprite Nummer i einen weißen Pixel und löscht diesen aus allen anderen Sprites.
Um dann nicht immer bei allen anderen Sprites diesen Pixel zu löschen, kann man sich ja merken, welcher Index an dieser Stelle vorher benutzt wurde und diesen dann nur in diesem entsprechenden Sprite löschen.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Re: Bildschirmmodi

Beitrag von Zaphod »

Naja, man kann sich ja auch einfach ein Array von 24bit Farbwerten machen und das benutzen... gibt noch eine ganze menge Wege um Indexed modi zu emulieren.

Ich wollte mich auch nicht beklagen, ich war nur sehr verwundert, dass es diese Modi nicht mehr gibt und irgendwie finde ich es halt schade.

Liegt bestimmt daran das ich alt geworden bin ;)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Bildschirmmodi

Beitrag von NicTheQuick »

Nein, mit einem einfachen Array mit 24-Bit-Farbwerten ist es nicht getan. Wenn du dann die Farbe für einen Index änderst, ändert die sich nicht auch automatisch an jeder Stelle auf dem Bildschirm. Und die Palette rotieren kann man dann auch nicht wirklich.
Antworten