25.03.2025, 21:31
@cmfrydos: Puh! Das zusammenzufassen ist nicht ganz einfach.
Vorab: Ich kann C/C++ und Assembler sehr gut lesen.
Damals hab ich angefangen nach dem Zufallszahlengenerator zu suchen, da dieser von den Probewürfen aufgerufen wird.
Die Eingaben vom Zufallszahlengenerator habe ich mir vom Stack mit CPU_Pop16() heruntergeholt und ausgegeben.
Dann war mir klar von welcher Funktion die Probewürfe kommen, u.s.w.
Den Zufallszahlengenerator habe ich nachprogrammiert um mir auch das Ergebnis ansehen zu können.
Auf diese Art habe ich das Assemblerrefactoring erlernt.
Da ich jedoch auch Fehler mache habe ich meinen Code so gestaltet, dass er auch mit dem BCC kompilierbar wird und mir dafür eine Testumgebung gebaut.
Somit habe ich ein gutes Auge für BCC-Executables bekommen und kann da schnell "etwas sehen".
Mit "IDA 5.0" wurde mir auch die Struktur der EXE-Datei klar.
Wie du das jetzt mit dem Watcom-Code umsetzen kannst, weiß ich auch nicht.
Das sieht alles völlig anders aus und der IDA zeigt nur den Code der Executable an, in welche noch eine LE (Linear executable) eingebettet ist.
http://www.textfiles.com/programming/FORMATS/lxexe.txt
Such mal in der RIVA.EXE nach:
LE 00 00 00 00 00 00 00 02 00 01 00
Das ist der Anfang der eingebetteten LE-Datei, welche den tatsächlichen Code des Spiels enthält.
Dort hört mein Verständnis erstmal auf. Vielleicht hilft das.
Vorab: Ich kann C/C++ und Assembler sehr gut lesen.
Damals hab ich angefangen nach dem Zufallszahlengenerator zu suchen, da dieser von den Probewürfen aufgerufen wird.
Die Eingaben vom Zufallszahlengenerator habe ich mir vom Stack mit CPU_Pop16() heruntergeholt und ausgegeben.
Dann war mir klar von welcher Funktion die Probewürfe kommen, u.s.w.
Den Zufallszahlengenerator habe ich nachprogrammiert um mir auch das Ergebnis ansehen zu können.
Auf diese Art habe ich das Assemblerrefactoring erlernt.
Da ich jedoch auch Fehler mache habe ich meinen Code so gestaltet, dass er auch mit dem BCC kompilierbar wird und mir dafür eine Testumgebung gebaut.
Somit habe ich ein gutes Auge für BCC-Executables bekommen und kann da schnell "etwas sehen".
Mit "IDA 5.0" wurde mir auch die Struktur der EXE-Datei klar.
Wie du das jetzt mit dem Watcom-Code umsetzen kannst, weiß ich auch nicht.
Das sieht alles völlig anders aus und der IDA zeigt nur den Code der Executable an, in welche noch eine LE (Linear executable) eingebettet ist.
http://www.textfiles.com/programming/FORMATS/lxexe.txt
Such mal in der RIVA.EXE nach:
LE 00 00 00 00 00 00 00 02 00 01 00
Das ist der Anfang der eingebetteten LE-Datei, welche den tatsächlichen Code des Spiels enthält.
Dort hört mein Verständnis erstmal auf. Vielleicht hilft das.


