Freepascal-Thread


Herzlich Willkommen carli :)

Suppi, da sind wir schonmal 5 Freepascaler ^^
Habe mir paar Videos zu deinem Spiel angesehen, wirkt recht nett.
Wobei ich mich über die langsame Geschwindigkeit wundere..
Da wird es aber sicher gute Gründe für geben.

Was dein Projekt ohne Pandora angeht.. sollte sich niemand dafür melden
könnte es vielleicht bald einen Emulator für den PC geben :) (reine Vermutung)

Ich freu mich dass wir nun schon 5 sind (ich nehme doch stark an dass du noch eine Pandora bestellen wirst? ;)


Bin schon gespannt wann der erste FPCler seine Pandora bekommt.
 
Ich hab nen Bekannten (=CME), der hat so ein Teil und der hat auch Ahnung, wie man den QEmu aufsetzt. Mal sehn, was draus wird.

-- Do Sep 23, 2010 20:28 --

Leute, ich bastel gerade an nem GLES 2.0-Header für Freepascal. (Auch als OpenGL-Unit verwendbar)
Geladen werden soll mit SDL_GetProcAddress.

Ich bräuchte jemanden, der schon mal ein Demo-Programm mit SDL und gles2.0 trocken aufsetzt, sodass man nur noch den Header einsetzen kann, um das Endprodukt zu testen.


Wie stehts eig. um nen FPC mit linux-arm? Hat sich schon mal jemand mit den binutils auseinandergesetzt?

-- Fr Sep 24, 2010 00:04 --

So,

war n hartes Stück Arbeit, aber hier präsentiere ich euch den GL ES 2.0 Header für Freepascal!

http://www.file-upload.net/download-2840894/gles_header.pas.html

Der Header funktioniert auch auf Shader-fähigen Grafikkarten, ich hab extra ein paar Funktionen, die mein Treiber nicht hat, deaktiviert.

Wäre cool, wenn mal jemand den Header mit irgendwas testet.
 
Fantastisch, ein GLES Header...

Also GLES läuft auch mit normalen PC-Grafikkarten und hat zum Teil die normalen OpenGL-Prozeduren?? ich dachte immer das wär eine ganz eigene API für Mobil....

Vielleicht solltest du das nochmal in einem eigenen Thread posten, wir haben ja jetzt ein eigenes Forum!
 
Gibst du mal den Link bitte?

@GL: GLES ist ein vollständig eigenständiger Standard, der jedoch auch einige Funktionen mit GL 2.0 gemeinsam hat. Im Prinzip ist GLES ein von abwärtskompatiblem Irrsin befreites, reines GL 2.0, mit dem man schön saubere, performante Grafikengines schreiben kann.
 
carli said:
Gibst du mal den Link bitte?

Wohin, zu unserem Pascal-Bereich?
http://forum.gp2x.de/viewforum.php?f=61

Da sind wir doch gerade schon drin. Ich dachte nur dein Header wäre einen eignen Thread wert, damit er nicht hier im allgemeinen Laber-Thread untergeht. ;)

Mit OpenGL ES hab ich mich bisher noch nicht befasst, hab ja erst mit dem normalen GL angefangen, daher meine dumme Fragerei! :)
 
Hallo nochmal an alle!

Hey, ist ja einiges passiert seit meinem letzten Besuch..
Eigenes Forum (Dank an Evildragon^^), OpenGL ES 2.0 Header (vielen Dank an carli!).
Denke dass wir dem Thema OpenGL ES definitv einen eigenen Thread widmen sollten.
Sieht dann nicht mehr ganz so mikrig aus unser Forum ^^

Ausserdem würde mich sehr interessieren wie man Pascal Header von C Headern übersetzt..
Habe mir carlis OGLES Header angeschaut und bin erfreut darüber dass es garnicht so kompliziert wirkt.

Welche Informationen waren dafür nötig? Hast du direkt von einem fertigen C-Header übersetzt?
Könntest du deine Quelle mal posten? Würde gerne lernen selbst soetwas zu Vollbringen.
Vielleicht wäre es eine Idee für einen weiteren Thread.

Ich freue mich jedenfalls sehr dass du dir die Mühe gemacht hast carli :)


Nur leider kann ich mich zur Zeit noch nicht als Tester und Helfer anbieten,
da auch ich erstmal OpenGL lerne (mein eigenes Spiel schreibe) und mit Linux
und Crosscompiling kaum Erfahrungen gesammelt habe.

(gut mit SDL und OpenGL hab ich jetzt auch schon ein klein wenig gearbeitet,
aber das reicht noch lange nicht ;)
 
Einen C-Header zu übersetzen ist relativ einfach, man muss halt beide Sprachen können.
ein #define wird zu const und im Sonderfall OpenGL legt man sich alle Funktionen als globale Funktionsvariablen an und weist ihnen in einer init-Routine mit einem GetProcAddress-Call den jeweiligen Funktionszeiger zu.

Damit das Umschreiben etwas schneller geht, kann man suchen-ersetzen-Orgien abhalten, die alle "," in ";" umwandeln und alle "0x" in "$" und alle " $" in " = $", dann hat man schon mal den Konstantenteil übersetzt. Die Funktionen sind dann schon wesentlich mehr Aufwand. (Handarbeit)

Den Thread hab ich aufgemacht. Dort dann weiteres^^
 
Hey Leute :D


Ich habe eine gute und eine schlechte Nachricht ...


Erst die gute: Der erste FPCler hat seine Pandora bekommen! Die Rede ist von mir ^^ (Premium Pandora, meine 1. Batch Pandora dauert noch)
Die schlechte: Ausgerechnet jemand der noch fast keine Ahnung von Linux hat ;(


Ich habe mich nun erstmal ein wenig mit dem OS der Pandora beschäftigt.. was es so gibt etc..
Aufjedemfall werde ich auch mal versuchen FPC auf der Pandora zu kompilieren.
Allerdings werde ich mit Fehler nicht umgehen können und könnte da aufjedemfall Hilfe gebrauchen.


Werde die Tage mal folgende Anleitung durchgehen: (Grund, warte noch auf meine 16GB SD-Karte)
http://wiki.lazarus.freepascal.org/Setup_Cross_Compile_For_ARM


und euch mitteilen ob es geklappt hat, oder an welcher Stelle es Probleme gibt :)
 
Freut mich! :) :juhu:

Hast du eigentlich mal versucht, FP direkt auf der Pandora laufen zu lassen? Also die Entwicklungsumgebung... Soll ja angeblich mit jedem ARM-Linux funzen. :confused:??

Das wär dann vielleicht auch eine vorübergehende Möglichkeit für kleinere Sachen: den Quelltext auf die Pandora kopieren und dort zu kompilieren... :) Um zunächst die Crosscompiliererei zu sparen... :huh:

:)
 
Hallo..


Habe nun die ersten Versuche hinter mir, und zusammen mit den anderen Problemen die ich aufgrund fehlendem Wissen in Linux habe, raucht mir der Kopf schon zu sehr.. also mache ich erstmal nen break;
Dennoch möchte ich natürlich noch berichten wie es mit FPC so verlief..


Ich habe mich dem Tipp von xyta gewidmet und versucht einfach vorkompiliertes auszutesten.. also nahm ich dieses Installationspaket:

FPC 2.2.2 package for arm-linux
http://www.freepascal.org/down/arm/linux-ftp.freepascal.org.var

Nun, wenn wir kleine Probleme überspringen die aufgrund meiner Linux Wissenslücken entstanden sind, kann man sagen dass die komplette Installationsroutine absolut fehlerfrei ausgeführt wurde.

Nun wollte ich es natürlich auch testen und versuchte die Beispiel hello.pp zu kompilieren, die folgenden einfachen Inhalt hat:


program hello;

begin
writeln('Hello world');
end.


Also auf zum: [Pandora-Terminal]
Code:
<i>
</i>arthur-openpandora:~/fpc-2.2.2/bin$                                   

arthur-openpandora:~/fpc-2.2.2/bin$ ./fpc hello
Free Pascal Compiler version 2.2.2 [2008/08/10] for arm
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for ARM
Compiling hello.pp
Assembling hello
Linking hello
/usr/bin/ld: ERROR: Source object system.o has EABI version 0, but target hello has EABI version 4
/usr/bin/ld: failed to merge target specific data of file system.o
hello.pp(19,27) Error: Error while linking
hello.pp(19,27) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: ppcarm returned an error exitcode (normal if you did not specify a source file to be compiled)
arthur-openpandora:~/fpc-2.2.2/bin$

hello.o liegt nun ebenfalls im betreffenden Ordner, welcher einen erfolgreichen Schritt bescheinigt.
Einzig das Linken schlug aufgrund inkompatibler EABI-version fehl.

Ich tippe mal darauf dass die System.o speziell für unseren omap kompiliert werden müsste,
dessen Eigenschaft „EABI“ sich von derjenigen unterscheidet, für die die vorliegende System.o kompiliert wurde.


Was vielleicht wichtig zu wissen wäre: Nach der Standartinstallation (keine Änderungen der Standarteinstellung),
hatte der Compiler nötige Dateien zum kompilieren nicht gefunden (System.o und prt0.o) obwohl man laut Dokumentation keine spezifischen Ordnerangaben setzen musste wenn man die Standarteinstellungen der Installationen belässt.

Also habe ich erstmal für den schnellen Test per Windowsrechner die benötigten Dateien aus dem Archiv entpackt und per USB-Stick an der Pandora in den BIN-Ordner von FPC reinkopiert, wonach er die Daten auch fand. (Sicher, die Daten befinden sich auch auf der Pandora.. nur wääh, keine Lust auf weitere Schwierigkeiten xD)



Insgesamt denke ich aber dass das Ergebnis positiv ist, da zumindest der Compiler korrekt zu arbeiten scheint.
Demnach fällt mir grade nur ein: Ein kleiner Schritt für uns, aber ein großer Schritt für mich xD

Fp, die Entwicklungsumgebung läuft übrigens einwandfrei, es war schön das gewohnte Blau zu sehen.
Allerdings konnte natürlich aus dem selben Grund nicht kompiliert werden: compile failed ;)

Bin mal gespannt was ihr dazu sagt, und bin zuversichtlich dass es auf der Pandora gänzlich funktionieren wird sobald sich jemand dransetzt der mehr Ahnung hat ;)
 
Hey Kaworu,

danke für deine Testbemühungen! :)

ich hab mal kurz gegoogelt und bin auf diese Seite gestoßen:

http://wiki.freepascal.org/Compile_and_Develop_on_Maemo_device

Es bezieht sich auf das Nokia N900, was ja einen ähnlichen OMAP hat. :confused:??
First we need to get a working copy of fpc for ARM EABI. Currently, it is possible to get only ARB OABI version at the FreePascal web site. (version 2.2.2)

That's why we need to compile an ARM version of the compiler on the GNU/Linux PC first, then transfer it to the Nokia device, and compile the full compiler distribution there.

Wahrscheinlich wird man nicht drumherum kommen, sich in irgendeiner Form Linux auf dem Desktop/Laptop zu installieren, wenn man für die Pandora entwickeln will.... :confused:?? Das ist auch für mich noch sehr neu und wahrscheinlich auch für viele andere Pascal-Programmierer, weil TP/Delphi eigentlich immer für DOS/Windows veröffentlicht wurde. ;)
Gibt es eigentlich Distributionen die sich zum Entwickeln besonders gut eignen? Zum Spieleentwickeln? Also ich bräuchte nicht unbedingt 100 Browser, IMs und OpenOffice.... Das Linux müsste im Prinzip nackt, aber "API-Komplett" sein. Das würde ich mir dann in VirtualBox instaliieren. :confused:?? :)

Könnte Zenwalk die Lösung sein?
http://www.zenwalk.org/

Das in einer VirtualBox installiert:
http://www.virtualbox.org/

Und dann die Anleitung oben durchgearbeitet... :huh: :huh:
 
Heutzutage kann man auch Ubuntu unter Windows installieren/deinstallieren wie eine ganz normale Anwendung. Beim Systemstart kannst Du dann im Windowsbootloader zwischen Windows und Ubuntu wählen. Das nennt sich WUBI:

http://wiki.ubuntuusers.de/Wubi

Also einfach Ubuntu (ich empfehle 10.04 LTS) runterladen und auf CD brennen. CD bei laufendem Windows einlegen und wubi.exe starten. An Partitionen wird nichts geändert. Total sicher.

(VirtualBox geht auch. Dann aber die PUEL-Version. Macht weniger Ärger.)

Dann suchst Du im Menü nach Synaptic-Paketmanager. Damit lässt sich alles zum proggen nachinstallieren. Kein Internetgestöber und setup.exe-geklicke notwendig. ;)

Zu Pascal:

http://wiki.ubuntuusers.de/Lazarus
http://wiki.ubuntuusers.de/Free_Pascal

Grundlegendes zu Ubuntu:

http://wiki.ubuntuusers.de/Einsteiger
http://openbook.galileocomputing.de/ubuntu/
 
OK, dann eben Ubuntu... :)


Ich dachte halt an Zenwalk, weil es relativ klein ist, vor allem in der Core-Version wenig Krams und Schnickschack dabei haben soll und offenbar sogar mit XFCE daher kommt. :confused::
 
Xfce, kein Problem.
Nimmst Du halt Xubuntu.

Mit zuvor genannter Paketverwaltung lassen sich Programme auch deinstallieren. Wenn Du was nicht brauchst, einfach auf entfernen klicken. Bei (X)Ubuntu klappt sowas.

Xfce ist nicht mehr so sehr viel fixer als Gnome. Es gibt auch noch LXDE bzw. Lubuntu.

Übrigens kann man Desktopumgebungen auch einfach installieren/deinstallieren. Kannst auch mehrere haben. Dann hast Du die Wahl beim einloggen.

Bei ubuntuusers.de findest Du bestimmt einiges zum Thema.

http://wiki.ubuntuusers.de/Desktop

Download Xubuntu 10.04 LTS:
http://ftp.tu-chemnitz.de/pub/linux/ubuntu-cdimage/xubuntu/releases/lucid/release/

(Desktop CD,
PC (Intel x86) desktop CD)
 
Hallo nochmal :)

xyta schrieb:
Hey Kaworu,

danke für deine Testbemühungen!

-Nichts zu danken, schließlich ist FPC auf der Pandora eines der wichtigsten Punkte für mich ;)


xyta schrieb:
Wahrscheinlich wird man nicht drumherum kommen, sich in irgendeiner Form Linux auf dem Desktop/Laptop zu installieren, wenn man für die Pandora entwickeln will.... Das ist auch für mich noch sehr neu und wahrscheinlich auch für viele andere Pascal-Programmierer, weil TP/Delphi eigentlich immer für DOS/Windows veröffentlicht wurde.

Naja, ein Desktop-Linux ist ja nur einmalig von Nöten, um halt den FPC Compiler neu zu kompilieren.. der Rest geht auch auf der Pandora und soll wenns fertig ist, komplett ohne Hilfe und direkt auf der Pandora lauffähig sein..
Allerdings bin ich der Falsche dafür, da ich mir erstmal Grundkenntnisse von Linux anzueignen habe..

Hoffe mal sehr dass KidPaddle, der zumindest erfolgreich einen Crosscompiler für GP2X entwickelt hat,
oder carli oder sonstwer sich an dem Prokekt ranwagt..

Wenn die Hardware so ähnlich/gleich ist, könnte man vielleicht auch speziell für den N900 kompiliertes auf der Pandora zum laufen bringen ¿

-- Do Feb 10, 2011 18:26 --

Vielleicht haben wir mit der nächsten Version mehr Glück:
[Auszug aus freepascal.org ]


January 1st, 2010 Happy New Year!, a new major version 2.4.0 has been released. The 2.4.x series adds, among others,

Delphi like resources for all platforms,
Dwarf debug information improvements,
Several new targets
64-bit Mac OS X (x86_64/ppc64)
iPhone (Mac OS X/Arm)
Haiku (from the BeOS family)
Improved ARM EABI support
Whole program optimization
Many compiler bugfixes and half an year of library updates (since 2.2.4)


Leider gibt es nur die Sources zu dieser Version für Arm-Linux..
Müsste mal jemand versuchen zusammenbauen :)
 
Das Problem im Moment ist, dass der FreePascal - Linker für den Caanoo/Pandora/N900 leider die falsche EABI - Version in die Unit - Dateien einträgt. Damit kommt dann später der Linker beim erstellen eines eigenen Projektes nicht klar. Am WE werde ich einen neuen Versuch starten.

Thomas
 
Freut mich riesig von dir zu hören :)

Drücke beide Daumen dass es klappt, was immer du vorhast :D
 
Tja, gestern einen neuen Anlauf gewagt und diesmal hat es funktioniert, einen Compiler unter Windows für den Caanoo zu erstellen. Wie üblich, war das erste Programm ein "HelloWorld" :)
Die Ausgabe war:
Code:
root@wiz:/mnt/sd/game/Tests/HelloWorld# ./hw.gpe
Hello World!
Ok, Schritt eins war erfolgreich.

Ein kleines SDL Testprogramm konnte dann kompiliert werden. Leider funktioniert es nicht auf dem Caanoo, folgende Meldung erscheint, wenn es in einer Console gestartet wird:
Code:
./sdltest01.gpe: not found
Ok, ein wenig gegoogelt, leider ist ldd nicht auf dem Caanoo installiert und heraus bekommen, dass mit ld-config es auch gehen soll.
Code:
root@wiz:/mnt/sd/game/Tests/SDLTest01# /lib/ld-linux.so.3 sdltest01.gpe
sdltest01.gpe: error while loading shared libraries: sdltest01.gpe: cannot open shared object file
Ich fühle mich wie unter Windows, bei dem die Meldung auftritt, "Eine DLL konnte nicht geladen werden!" und stehe davor und frage laut "ja, welche denn?"
Tja, keine Ahnung im Moment wie es weiter geht, ich versuche heraus zubekommen, welche Bibliothek er nicht findet. Kann jemand mit einer Pandora testen, ob jemand das angehängte Programm starten kann? Es sollte nur eine Grafik anzeigen und sich nach ca. 2,5 Sekunden beenden.

Gruß
Thomas
 

Attachments

  • SDLTest01.zip
    29.5 KB · Views: 322
Hallo KidPaddle.

Ersteinmal herzlichen Glückwunsch zum 1. Schritt!
Heißt das du könntest nun auch einen Compiler für die Pandora kompilieren,
sodass man direkt auf der Pandora komplilieren könnte?

Würde gerne versuchen wenigstens Schritt 1 auf der Pandora zu sehen :)


Zu deinem (und damit unseren ;) aktuellen Problem:
Habe nun die Daten auf meine Pandora kopiert und ausgeführt..

einmal im Terminal:
Code:
XXX:/media/data/sdltest01$ ./sdltest01
bash: ./sdltest01: No such file or directory

und einmal im Filemanager Thunar der folgende Fehlermeldung ausgibt:
Code:
Failed to execute file "sdltest01".

Failed to execute child process "/media/data/sdltest01/sdltest01" (No such file or directory)

Vielleicht hat es etwas mit dem child-process zu tun. Und wegen den Dateinamen, habe ich nach ersten fehlversuchen testhalber mal umbennant in kleine Buchstaben, mit oder ohne Zahlen..
Bringt alles das selbe Ergebnis. Ich muss aber zusätzlich sagen dass ich ein Linux-Neuling bin, und sollte es notwendig sein vorher spezielle Pakete runter zu laden etc, so habe ich dies nicht gemacht.


P.S. bin heut den ganzen Tag zu Hause, falls du auf die Schnelle Änderungen testen wolltest ;)
Einfach PN-Nachricht schicken.


EDIT: weiteren Befehl ausgetestet:
Code:
XXX:/media/data/sdltest01$ /lib/ld-linux.so.3 sdltest01
sdltest01: error while loading shared libraries: sdltest01: cannot open shared object file: No such file or directory
 
Hi. :)
Vielleicht ein Pfad-Problem?

-bei mir gibts z.B. in der fp.cfg folgenden Abschnitt:
Code:
<i>
</i># JEDI-SDL unit paths
-FuC:\Programme\JEDI-SDL Full\SDL\Pas
-FuC:\Programme\JEDI-SDL Full\SDL_Image\Pas
-FuC:\Programme\JEDI-SDL Full\SDL_Mixer\Pas
-FuC:\Programme\JEDI-SDL Full\SDL_Net\Pas
-FuC:\Programme\JEDI-SDL Full\SDL_ttf\Pas
-FuC:\Programme\JEDI-SDL Full\smpeg\Pas
-FuC:\Programme\JEDI-SDL Full\OpenGL\Pas
-FuC:\Programme\JEDI-SDL Full\ODE\Pas
-FuC:\Programme\JEDI-SDL Full\Newton\Pas
-FuC:\Programme\JEDI-SDL Full\HawkVoice\Pas
-FuC:\Programme\JEDI-SDL Full\Fmod\Pas
(jaa ich weiss, SDL gehört da eigentlich nicht hin..)

In der Entwicklungsumgebung gibt es unter dem Options-Menü bei Directories auch einen Reiter für "Libraries"... Vielleicht da mal einen Pfad zu SDL eintragen? (allerdings ist diese Einstellung dann nur für FP gültig)

Oder sämtliche Units, SDL-Bibliotheken und Quelltexte in ein Verzeichnis kopieren... :huh:

Ich weiss nur dass ich am PC am Anfang auch Probleme mit den SDL-Demos hatte und am Ende waren es irgendwelche Pfad-Geschichten... :confused:??
Kaworu said:
und einmal im Filemanager Thunar der folgende Fehlermeldung ausgibt:
Code:
Failed to execute file "sdltest01".

Failed to execute child process "/media/data/sdltest01/sdltest01" (No such file or directory)

Vielleicht hat es etwas mit dem child-process zu tun.

Vielleich heisst Child-Process einfach nur, dass Thunar ihn versucht hat zu starten? Klingt für mich eher wie eine ungültige Programmdatei oder sowas. :confused:??
 
Back
Top