DOS Spieleprojekt mit DJGPP

Diskussion zum Thema Programmierung unter DOS (Intel x86)
go32
Kommandozeilenfetischist
Beiträge: 174
Registriert: Sa 24. Okt 2015, 22:51

Re: DOS Spieleprojekt mit DJGPP

Beitrag von go32 »

@An die Moderatoren!

Bitte einmal löschen, wegen Doppelposting!

S o r r y !
go32
Kommandozeilenfetischist
Beiträge: 174
Registriert: Sa 24. Okt 2015, 22:51

Re: DOS Spieleprojekt mit DJGPP

Beitrag von go32 »

@GMBigB:

Ich muss noch ergänzen, dass ich die Allegro als statische Bibliothek für go32v2 (djgpp) brauche. Dynamische Bibliotheken werden von diesem DOS Extender nicht unterstützt.

Ich arbeite inzwischen auch an der Umsetzung weiter.

Die passende DOS Version der Allegro Bibliotheken im Binärfprmat wäre in der Tat eine große Hilfe. Die GUI für die ich das brauche ist eh GPL.
GMBigB
Norton Commander
Beiträge: 141
Registriert: Fr 5. Mär 2010, 13:30

Re: DOS Spieleprojekt mit DJGPP

Beitrag von GMBigB »

Sorry, total verschwitzt... ist das Problem noch aktuell? Ich habe mal eine Allegro 4.2.3.1 angehängt - das ist die letzte 4er-Version, die es für DOS gibt. Die 4.4 enthält bereits Windows-Bestandteile. Ich müsste mal einen Diff machen - vielleicht sind auch Patches für die 4.2.3.1 drin. Leider ist die Zeit immer so verdammt knapp. Ich hoffe um Weihnachten rum ist es etwas ruhiger.

Du kannst ja aber mal ausprobieren, ob sie so funktioniert. Der DOS-Extender sollte egal sein. Bei mir funktioniert sie mit CWSDPMI, DOS4GW und DOS32A - ich denke, dass GO32 dann auch kein Problem darstellen wird. Ansonsten immer Druck machen und zur Not eine PM schreiben, wenn es wieder zu lange dauert. ;-)

So ein Mist... kann die Datei hier nicht anhängen, weil sie zu groß ist und weder .zip noch .a erlaubt sind. Bitte hier runterladen:
http://www.game64.de/liballeg.zip
go32
Kommandozeilenfetischist
Beiträge: 174
Registriert: Sa 24. Okt 2015, 22:51

Re: DOS Spieleprojekt mit DJGPP

Beitrag von go32 »

Danke, @GMBigB!

Die Übersetzung scheint zu klappen. Dennoch wäre ein Diff gut zu gebrauchen, damit ich weiß, welche Teile mit Sicherheit nicht funktionieren werden. Ich habe in den Pascalquellen die external Deklarationen angepasst:

external SHARED_LIBRARY_NAME NAME 'allegro_funktion';

geändert in:

external {$IFNDEF GO32V2}SHARED_LIBRARY_NAME{$ENDIF} NAME 'allegro_funktion';

wobei 'allegro_funktion' die konkrete Bibliotheksfunktion in der liballeg.a ist.

Natürlich habe ich {$LINKLIB liballeg.a} in der allegro.sfg Includedatei ergänzt, die ja in den Pascal-Allegro Units überall per $Include Dierektive eingebunden wird.

Nun aber verlangt Freepascal die Verwendung des externen Linkers für Go32, unter Windoes scheint FPC einen internen (im Compilertool eingebauten Linker) zu verwenden. Jedenfalls übersetzt Lazarus nur bis zur .o Datei des ausführbaren Testprogrammes. und erzeugt eine Textdatei mit Compileranweisungen. SO enttehen pro Allegro-Anwendung die Dateien myprog.o, der Objektcode und eine Datei myprog.compiled.

letztere sieht so aus:

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<Compiler Value="c:\Users\denker_1\Downloads\LazarusPortable\App\lazarus\fpc\2.6.4\bin\i386-win32\fpc.exe" Date="1162591227"/>
<Params Value=" -MObjFPC -Scghi -O1 -Tgo32v2 -g -gl -vewnhi -FiF:\pp\projects\allegro\examples\lib\i386-go32v2 -FuF:\pp\projects\allegro\lib -FuF:\pp\projects\allegro\examples\ -FUF:\pp\projects\allegro\examples\lib\i386-go32v2\ -l exalpha.lpr"/>
<Complete Value="False"/>
</CONFIG>

Diese wird von Lazarus erzeugt.
Antworten