25.01.2017, 16:16
Wie Wetzer es richtig erkannt hat, endet Phase 2 mit einer SCHICKM.EXE, welche nur unter DOS funktioniert.
Phase 3 ist dann die Portierung der DOS-Abhängigen Codeteile auf SDL,
damit das ganze Programm nativ auf _richtigen_ Betriebssystemen läuft.
Phase 2 ist folgendermaßen untergliedert:
Im Moment arbeite ich an Punkt 1, gaor an Punkt 2.
Ich bin schon bis zu Segment seg014 vorgedrungen, an welchem es noch kleine Unterschiede gibt, anschließend kommen die Stub-Segmente, das Datensegment und schließlich der Code (seg024-seg122) welche aus der SCHICKM.EXE bei Bedarf nachgeladen werden. Die Stub-Segmente und der nachladbare Code sollten schon soweit identisch sein, das Datensegment ist vorerst nur ein
großes Feld mit lauter Nullen.
Diese Nullen werden durch die Arbeit von gaor durch _richtige_ Daten ersetzt, wodurch der Code wesentlich lesbarer werden wird.
Innerhalb von Phase 2 sollte sich nichts wesentliches für die Benutzer von Bright-Eyes ändern, abgesehen von Bugfixes.
Phase 3 ist die Portierung:
Nach dieser Phase sollte eine lauffähige Version für jedes Betriebssystem bereitstehen, welches von SDL unterstützt wird.
Phase 3 ist dann die Portierung der DOS-Abhängigen Codeteile auf SDL,
damit das ganze Programm nativ auf _richtigen_ Betriebssystemen läuft.
Phase 2 ist folgendermaßen untergliedert:
- Mit dem BCC eine SCHICKM.EXE erstellen, in welcher sich der Code aus Phase 1 an genau den richtigen Stellen befindet.
- Ersetzen der Variablen aus dem Datensegment, welches bis jetzt nur ein großes Feld mit Daten ist, durch Variablen, welche in C deklariert und ggf. definiert sind.
Im Moment arbeite ich an Punkt 1, gaor an Punkt 2.
Ich bin schon bis zu Segment seg014 vorgedrungen, an welchem es noch kleine Unterschiede gibt, anschließend kommen die Stub-Segmente, das Datensegment und schließlich der Code (seg024-seg122) welche aus der SCHICKM.EXE bei Bedarf nachgeladen werden. Die Stub-Segmente und der nachladbare Code sollten schon soweit identisch sein, das Datensegment ist vorerst nur ein
großes Feld mit lauter Nullen.
Diese Nullen werden durch die Arbeit von gaor durch _richtige_ Daten ersetzt, wodurch der Code wesentlich lesbarer werden wird.
Innerhalb von Phase 2 sollte sich nichts wesentliches für die Benutzer von Bright-Eyes ändern, abgesehen von Bugfixes.
Phase 3 ist die Portierung:
- Ein- und Ausgabe von Dateien sollte über die Funktionen aus der C-Bibliothek realisiert werden. In SCHICKM.EXE werden nicht-portable Varianten von DOS genutzt. Hinzu kommt, dass der Spielstand im Little-Endian-Format abgelegt wird, damit die Spielstände auch auf verschiedenen Prozessoren funktionieren.
- Eingaben von Maus und Tastatur müssen neu geschrieben werden.
- Die Ausgabe auf den Framebuffer muss neu geschrieben werden + sinnvolle Skalierungsmöglichkeiten, da eine Auflösung von 320x200 nicht mehr tragbar ist.
- Die Ausgabe der Musik muss neu überdacht werden. SDL2.0 hat keine Audio-CD Unterstützung mehr, desshalb sollte dafür ausschließlich das Abspielen von MP3/OGG/FLAC implementiert werden. Alternativ sind ja auch noch die MIDI-Daten vorhanden. Um diese Abzuspielen muss auch wieder etwas implementiert werden.
- Ein Timer muss neu implementiert werden um die Zeit in Aventurien weiterlaufen zu lassen. Da dieser Timer zu gleichen Zeit auf einem anderen Prozessor laufen kann, muss der Code auf kritische Bereiche geprüft werden um Race-Conditions zu vermeiden.
- ...???
Nach dieser Phase sollte eine lauffähige Version für jedes Betriebssystem bereitstehen, welches von SDL unterstützt wird.