Mode X und EGA Parrallax

  • wenn man quasi einen Ausschnitt aller Texturen in den Konventionellen Speicher läd sollte das doch mit etwas Rücksicht im Level Design alles Sinn mögliche abdecken...

    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • wir werden sehen wie es sich verhällt. kleine Rechner sind immer wiederr für überraschungen gut...


    hier die erste.....


    nein das war ein defektes 386 board...


    hier die testläufe auf dem 386DX40 mit ein paar sehr tiefreichenden veränderungen im MAP/Editor und im Spiel


    Im Map Editor können jetzt über 2 BIT je Sprite Textur die eigenschaften Horizontal / vertikal spiegeln hinterlegt werden für eine Kachel.


    Gespiegelt wird immer nur das Sprite, wenn darunter eine normale Textur liegt bleibt diese gleich!

    es können auch keine normalen Texturen gespiegelt werden, der Grund ist einfach... Rechenleistung einsparen!


    Wenn auf einem Feld lediglich eine Textur liegt, dann werden schon immer ziemlich viele Rechen routinen weg gelassen um das Restaurieren dieser flächen mit möglichst wenig Rechenleistung zu erledigen.


    wenn man unbedingt eine Bodentextur gespiegelt haben muss, kann man diese auch als Sprite drüber legen.

    Der Rechenaufwand ist allerdins schon deutlich höher, gegenüber einfachen Texturen.



    hier 2x die selbe Brücke 1. mit gespiegelten Texturen 2. mit verschiedenen Texturen. Der unterschied ist hierbei nicht so gross, man spart aber 4 Texturen im speicher bei dieser Brücke.



    wenn man jetzt einen Teich mit 4 innen / 4 aussen / 4 seiten / 2 Wasser fläche =14 Texturen hat, dann kann man das ganze auf 1innen / 1aussen / 2seiten / 2 Wasser fläche = 6 Texturen reduzieren.

    das gleiche gillt für kahle stellen / trampelpfade o.ä. hier werden auch wieder 6 anstelle von 14 Texturen benötigt.


    Es gibt aber auch Dinge wo das nicht funktioniert, die abhänge mit Geröll haben zu viel Geometrie / Schatten enthalten.. hier kann man nicht wirklich viele weg lassen sonst schaut es komisch aus.

    Einmal editiert, zuletzt von Markus ()

  • Sieht wie immer sehr hübsch aus :) Für die Geschwindigkeit würde ich Wert darauf legen, dass die gespiegelte Sprite-Ausgabe entweder getrennt implementiert ist oder der Compiler sie so optimiert, dass die Spiegel-Richtung ausserhalb der Schleifen getroffen wird und es dann innen für jeweils eine Richtung optimierte Schleifen gibt, die keine Fallunterscheidungen mehr enthalten. Alternativ könnte man auch die gespiegelten Sprites einmalig beim Laden berechnen und im Speicher ablegen, damit die Sprite-Ausgabe selbst sie nicht mehr dynamisch zu spiegeln braucht.

  • wenn die zeichen routine ein Sprite entdeckt wird geprüft ob es gespiegelt ist H und V getrennt, dann muss der Farbwert aus einer anderen stelle gelesen werden.

    Wenn kein Sprite vorhanden sondern nur eine einfache Boden Textur, dann wird das komplett ignoriert.


    Läuft man also über Boden Texturen hat der Rechner nichts mit sprites zu restaurieren, also wenig Rechenleistung.

    Bisher ist kein spürbarer unterschied zwischen der Spiel Datei mit und ohne Sprite Spigel routine auf dem 386 zu spüren, kein FPS.

    Also scheint es ihn relativ wenig zu belasten.

  • Heute den kompletten Texturen speicher aufgeräumt... durch die neue Spiegeln funktion konnte ist von den momentan aktiven 150 Texturen reduzieren auf 121, das lohnt sich schon.

    Das sind 29 Texturen weniger... entspricht exakt den kompletten Textur Paket für das Haus! Ich könnte also jetzt noch ein komplett anderes Haus im selben Textur speicher gleichzeitig laden.

  • die gleiche Stelle wie zuvor auf dem Bild, das ganze schaut so schon viel lebendiger aus.

    An ein paar stellen kann man aber auch wieder die grenzen des Systems erkennen.


    Man kann immer nur 2 Texturen übereinander legen.

    Die feste nicht änderbare 1. Texture welche immer komplett gezeichnet wird ohne transparenz.

    Und darüber kann ein Sprite liegen, welches H/V spiegelbar ist.



    Im Editor sieht man wo Sprites für den Zaun positioniert wurden, hier kann man dann keine Rasenkannte mehr plazieren.

    Für mir wäre es jetzt ein leichtes einfach die Anzahl der aufeinander liegenden Texturen extrem zu erhöhen, aber der Rechenaufwand hierfür ist ziemlich gross und ich halte es so auch noch für vollkommen ausreichend.


    An der Wasserkannte überlagert der übergang vom Wasser zum Boden schön die Boden Textur, die übergänge halte ich für relativ fliessend.


    im Textur Editor kommt das ganze auch mit sparsamen 6 Texturen aus.

    vor dem umbau wären noch 13 Texturen erforderlich gewesen. Die möglichkeit das überlagernde Sprite zu speigeln spart hier so viel ein.

    Mann kann hier auch noch weitere Bodentexturen erstellen ich könnte mir z.B. eine Art "Fahrbahnbelag" Kopfsteinpflaster oder ähnliches vorstellen... oder ein Holz, man hätte immer einen sauberen übergang zum Gras.

    Mal schauen was ich noch so am Wochenende an Texturen erstellen kann.

  • Hat jemand zufällig Beispiel Code für die Nutzung von EMS unter c++ oder ein paar gute Links.

    Will mal ein wenig damit experimentieren.

    Mir würde schon Beispielcode für die Nutzung von EMS unter C (ohne ++) reichen...

    Wenn ihr noch ne Woche warten könnt, ich bereite da gerade was vor... Aber momentan kommt das reale Leben dazwischen.

    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • Hat jemand zufällig Beispiel Code für die Nutzung von EMS unter c++ oder ein paar gute Links.

    Will mal ein wenig damit experimentieren.

    Also XMS wäre einfacher, weil du dort exakte Adressbereiche zum Kopieren mitgeben kannst und nicht immer auf Vielfache von 16 kB (oder EMS 4: 4 kB) gerundet wird. Behaupte ich mal ;)

  • Hat jemand zufällig Beispiel Code für die Nutzung von EMS unter c++ oder ein paar gute Links.

    Will mal ein wenig damit experimentieren.

    Also XMS wäre einfacher, weil du dort exakte Adressbereiche zum Kopieren mitgeben kannst und nicht immer auf Vielfache von 16 kB (oder EMS 4: 4 kB) gerundet wird. Behaupte ich mal ;)

    Ich such was einfaches Idiotensicheres, die Antwort ist vermutlich ...nimm kein DOS...


    Ich habe jetz so viel darüber gelesen, aber irgendwie nur die hälfte verstanden und leider wurde nirgendwo so wirklich tiefer auf das Thema eingegangen.

    Und auf Geschwindigkeit und genaue Daten kann man halt auch nicht zurück greifen.


    Wenn beides halbwegs praktikabel ist, dann ist die Frage halt was ist schneller.


    verdammt...durchs "W" bin ich heute wieder gefahren, ich hätte root einfach kidnappen sollen! Die Adlib Videos fand ich auch sehr interessant, aber eins nach dem anderen.

  • Ich such was einfaches Idiotensicheres, die Antwort ist vermutlich ...nimm kein DOS...

    Tatsächlich würde ich sagen: Nimm einen 32-bit Compiler für DOS. Da hast du extrem viel RAM und extrem wenig Mühe damit. Du musst dir dafür einmalig den Stress machen, dir passenden Code für den Grafikzugriff zu copy pasten, aber das kannst du ja dann hinterher verdrängen ;) Oder teile deinen bisherigen Code hier, dann können wir dran rumbasteln und Alternativen ausprobieren, also z.B. ich 32-bit Compiler oder irgendwer anderes EMS und noch einer XMS.

  • Kann ja mal abwarten was root so neues bringt... zum Thema EMS


    Root hatte ja auch ein paar >Adlib< Videos gemacht, fand ich ziemlich interessant. Den alten C Code verstehe ich auch noch relativ gut.

    Und irgendwann muss ich damit auch mal anfangen, wobei ich zuerst noch den kompletten Grafik Part komplett haben möchte.

    Ich will halt testen was da in 16bit c++ noch so geht, aufm 386er.


    Den Charakter speicher will ich nochmal anpacken, ich muss den noch anpassen. Da sollen immer die Charaktere / Kreaturen geladen werden die auch momentan benötigt werden.

    Da kann ich mir EMS oder XMS gut zum schnellen ablegen vorstellen. Je nachdem was das kann, kann ich den code daran anpassen.


    Deshalb will ich erstmal einfach nur kennen lernen wie das genau funktioniert und wie sich das dann tatsächlich auf realer Umgebung verhält.

  • Karteneditor heute so angepasst das er automatisch am MAP Rand die nächste MAP automatisch nachladet und die geladene speichert und schliesst,

    So geht das bearbeiten schon wieder etwas schneller.


    gleich mal die Testmap ausgedehnt, das ganze fpllt sich langsam.


    Und auch wieder 5 neue Texturen erstellt, getestet. Alte zusammen gelegt überarbeitet.

  • Würde das evtl helfen? Dann blättere ich mal nach, ist aus diesem Buch.


    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • PC intern >>>4<<< behandelt das Thema nicht mehr im Buch. Wenn das dort beschrieben wird wäre das nützlich.

    Da ist das Kapitel auf CD als PDF. Daher meine Frage nach der CD…

    root42 auf YouTube


    80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, GUSar Lite & TNDY & SnarkBarker, PC MIDI Card + SC55 + MT-32, XT CF Lite, OSSC 1.6

  • PC intern >>>4<<< behandelt das Thema nicht mehr im Buch. Wenn das dort beschrieben wird wäre das nützlich.

    Da ist das Kapitel auf CD als PDF. Daher meine Frage nach der CD…

    Ist das EMS Beispiel Programm wahrscheinlich dann auch, wenn nicht müsste ich die Diskette hier mal versuchen zu lesen...

    386SX- 20 Mhz "Erster eigener Rechner!2" NoName Komponenten

    486DX -30 "Industrie PC" auf Steckkarte

    Super Sockel 7 Gigabyte GA-5AA 3Dfx Voodoo 3500 TV

    AMD "Geode" ebenfalls Steckkarte für Backplane

    3x IBM Netvista 8364 "ThinRetroSystem" 1-2 von denen würde ich tauschen...


    "und noch so einiges mehr... "

  • auf der CD sind die Beispiele und eine 300MB Datei... die ist vermutlich gepackt und die Daten sind nur über ein Programm auf der CD zugänglich.

    Ich werde das mal auf einem kleinen Rechner, mit CD installieren und dann mal schauen ob da noch was ist.


    Wenn ich die CD hoch geladen habe gebe ich hier noch den Link durch.


    weg über den Fluss suchen

    ....

    Theke ... saufen ... !

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!