SuperTuxKart SVN-Version

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • SuperTuxKart SVN-Version

    Hallo Forum,

    erstmal möchte ich mich vorstellen. Ich gehöre zum Forum von
    Games4Mac das SuperTuxKart 0.2 auf den Mac portiert hat. Wir arbeiten zur Zeit
    an der SVN-Version des Spiels. Dies soll in der Zukunft die Version 0.3 werden.
    Wir haben sogar einen SuperTuxKart-Entwickler der uns tatkräftig unterstützt.
    Zur Zeit haben wir massive Probleme mit der SDL.

    So, jetzt erstmal allgemeine Infos:

    OpenSource-Forum von G4M:

    community.games4mac.de/index.php?showforum=51

    SuperTuxKart Development Team:

    supertuxkart.berlios.de/

    Forumsbeiträge von den OS X-Portierer von SuperTuxKart:

    community.games4mac.de/index.php?showtopic=16281

    SuperTuxKart 0.2 benötigte die PLIB für Sound und Bildschirmdarstellung.
    Das Portieren hatte funktioniert und SuperTuxKart steht zum Download bereit:

    download.games4mac.de/

    Die SVN-Version mit der wir Probleme haben benutzt die SDL zur Bildschirmdarstellung.

    Zitat der Portierung:

    ------------------------------------------------------------------------------------------------------------

    @hiker hat uns einen Patch für die PLIB geschickt, mit der wir vielleicht STK ohne
    X11 kompilieren können.

    Ich habe als erstes die gepatchte "pwMacOSX.cxx" in das Verzeichnis

    "plib-1.8.4/src/pw/" kopiert und damit die alte "pwMacOSX.cxx" überschrieben

    Installationsort der PLIB: "/usr/lib"

    Bauen der PLIB:

    1.) ./configure --prefix=/usr/lib ---------> OK

    2.) make -------------> OK

    3.) make install ----------> PLIB wurde in "/usr/lib" installiert

    Bauen der SVN-Version von SuperTuxKart:

    1.) svn co svn://svn.berlios.de/supertuxkart/trunk/ ---------> OK

    2.) ./autogen.sh

    Running autoconf

    ======================================
    Now you are ready to run './configure'
    ======================================

    3.) Die SVN-Version (Später Version 0.3) benötigt SDL. Also SDL installieren:

    sudo port install libsdl ---------> OK

    4.) Dadurch das die SDL (Macports-Version) nicht gefunden wird von Configure
    müssen wir durch:

    export LDFLAGS=-L." -L/opt/local/lib"

    dies mitteilen

    3.) ./configure ----------> OK

    Ausgabe: -------------------------------------------------------------

    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating data/Makefile
    config.status: creating fonts/Makefile
    config.status: creating images/Makefile
    config.status: creating models/Makefile
    config.status: creating mods/Makefile
    config.status: creating src/Makefile
    config.status: creating wavs/Makefile
    config.status: creating wavs/radio/Makefile
    config.status: creating wavs/tintagel/Makefile
    config.status: creating models/herrings/Makefile
    config.status: executing depfiles commands

    Summary of optional components:
    ===============================
    You DO NOT have OpenAL. You DO NOT have freealut.
    Install OpenAL, freealut and mikmod for better sound!

    ----------------------------------------------------------------------------------

    Wir verzichten auf OpenAL & Co. Es reicht uns erstmal wenn die SVN-Version
    läuft. Na dann mal ne Runde:

    4.) make

    ----> Super! ohne Fehler <------

    Wir starten STK direkt aus dem src-Verzeichnis:

    5.) cd src

    6.) ./supertuxkart

    ---------- Ausgabe: -----------------------------------------------------------------------------

    InitTranslations
    Data files will be fetched from: '..'

    Config file version '0' is too old.
    The following changes have been applied in the current SuperTuxKart version:
    - Single window menu, old status display,new keyboard style settings were removed
    - Key bindings were changed, please check the settings. All existing values were discarded.
    2007-03-20 15:31:08.587 supertuxkart[12006] *** _NSAutoreleaseNoPool(): Object 0x29cb840 of class NSMutableParagraphStyle autoreleased with no pool in place - just leaking
    2007-03-20 15:31:08.588 supertuxkart[12006] *** _NSAutoreleaseNoPool(): Object 0x2b36200 of class NSCFDictionary autoreleased with no pool in place - just leaking
    2007-03-20 15:31:08.591 supertuxkart[12006] *** _NSAutoreleaseNoPool(): Object 0x29161f0 of class NSCFNumber autoreleased with no pool in place - just leaking
    2007-03-20 15:31:08.591 supertuxkart[12006] *** _NSAutoreleaseNoPool(): Object 0x2988380 of class NSCFNumber autoreleased with no pool in place - just leaking

    ...


    2007-03-20 15:32:58.004 supertuxkart[12020] *** _NSAutoreleaseNoPool(): Object 0x2b06710 of class _NSThemeWidget autoreleased with no pool in place - just leaking
    2007-03-20 15:32:58.005 supertuxkart[12020] *** _NSAutoreleaseNoPool(): Object 0x2b06680 of class NSCFString autoreleased with no pool in place - just leaking
    2007-03-20 15:32:58.006 supertuxkart[12020] *** _NSAutoreleaseNoPool(): Object 0x299fb70 of class NSException autoreleased with no pool in place - just leaking
    2007-03-20 15:32:58.006 supertuxkart[12020] *** Uncaught exception: <NSInternalInconsistencyException> Error (1002) creating CGSWindow
    Trace/BPT trap

    ----------------------------------------------------------------------------------------------------

    Kompilieren der SVN-Version ist kein Problem. Das starten funktioniert nicht
    siehe oben. Wir können mit diesen Fehlermeldungen nichts anfangen. Wir glauben es
    liegt an SDL.

    Wir haben bisher mehrere SDL-Versionen probiert:

    SDL-Versionen:

    1.) Binary Version 1.2.9-1001 von Fink
    2.) Latest Version 1.2.11-2 von Fink
    3.) Macport-Version

    Bei allen SDL-Versionen erscheinen die gleichen Fehlermeldungen beim starten
    von SuperTuxKart.

    Kennt Ihr diese Fehler????

    Dann haben wir noch ein AppleScript-Problem:

    Wir benutzen folgendes Script damit der User die Auflösung des Spieles einstellen
    kann. Das Problem ist, dass AppleScript keine Relativen Pfade unterstützt.
    Wir brauchen aber relative Pfade damit wir ein APP-Bundle erstellen können das
    überall startbar im Dateisystem ist.

    Unser Script:

    --------------------------------main.scpt---------------------------------------------------------
    set thelist to choose from list {"640x480", "800x600", "1024x768", "1152x864", "1280x960"} with prompt "Wähle die Auflösung in der du SuperTuxKart spielen möchtest" OK button name "Los gehts" cancel button name "Abbrechen und Skript bearbeiten"
    set resolution to item 1 of thelist as text
    do shell script "#!/bin/sh
    open -a X11
    cd ../../../supertuxkart/bin
    ./supertuxkart -s " & resolution
    do shell script "killall X11"
    ------------------------------------------------------------------------------------------------------

    Komischerweise ist der Standardpfad von dem Script immer root (/). Und dadurch
    nutzt ein "cd ../../../supertuxkart/bin" nichts.

    Hat jemand eine Idee??????

    [Blockierte Grafik: http://community.games4mac.de/index.php?act=Attach&type=post&id=2054]
  • RE: SuperTuxKart SVN-Version

    Hallo,

    man merkt, daß Du aus der Linux-Ecke kommst.

    In MacOS X sind die Userverzeichnisse etwas anders "aufgehängt" als in Linux.

    set this_path to "/Users/username" wäre eine Möglichkeit


    Applescriptbefehl: "path to" in eine Variable einlesen und mit "Posix path" in Unix-konformer-Schreibweise umwandeln (wegen : / Unterschied)

    .....
    path to me -- path to the script executable
    path to current user folder -- current user's home directory
    path to startup disk -- speaks for itself
    path to preferences -- user's preferences folder

    Stöber mal etwas im Bereich Applescript hier, das war schon mal ein Thema.
    Ich sitze gerade an ´ner Dose.

    Du kommst ja mit cd ~ ins Homeverzeichnis.... im Terminal
    also: do shell script "cd ~; ls -l" z.B.

    Also ein Teil Deiner Probleme sind die falschen Pfade.
    Die _NSAutorelease... - Meldungen betreffen fehlerhafte Speicherallocierungen und Freigaben (kein pool angelegt), da kann Dir Tom sicher helfen :-).
    Dann findet er nicht die passende/aktuelle Config-Datei, setzt diverse Einstellungen auf alte Werte.
    Dein Binding ist nicht korrekt, weshalb alle Werte gelöscht werden.
    Demzufolge bekommst Du wohl "am Ende" auch mit "NSInternalInconsistencyException" ein Konsistenzproblem.

    Ich denke, dass da einige Folgefehler entstanden sind. Da ich aber natürlich den Code nicht kenne....

    developer.apple.com/technotes/tn2002/tn2065.html
    docs.info.apple.com/article.ht…leScript/2.1/de/as21.html
    docs.info.apple.com/article.ht…eScript/2.1/de/as175.html
  • RE: Auch ein Cover gehört zu einer Portierung

    Ja, bei der Speicherverwaltung kann ich dir helfen, allerdings noch nicht.

    Zum einen gibt es hier einen Artikel von mir:
    macentwicklerwelt.net/doku.php?id=wiki:speicherverwaltung

    Zum anderen verweise ich auf
    <Werbeeinblendung>
    Rodewig/Nem, Objective-C und Cocoa, 2. Auflage 2007
    S. 132 ff.
    </Werbeeinblendung>
    Um es kurzzu machen: Sobald du in Objective-C reinkommst, benötigst du einen ARP, weil dir sonst das Dingen kräftig um die Ohren fliegt.

    Ich weiß jetzt nicht, was du mit portieren genau meinst. Du musst jedenfalls nicht nur dafür sorgen, dass der ARP angelegt wird, sondern auch regelmäßig weggeschmissen wird. Standardmäßig geschieht dies in der Event-Loop. Jedenfalls muss es sozusagen auf oberster Ebene des Call-Stacks geschehen. Die darüber liegenden Ebenen haben dann keinen ARP und dürfen letztlich keinen Objective-C-Code enthalten.

    BTW: Es ist klar, dass das ein schönes Programm mit schöner Graphik ist. Kay betreibt dieses Forum jedeoch kostenlos. Es wäre nett, wenn du nur Graphiken anlegst, die zum Verständnis deiner Problematik notwendig sind.

    BTW 2: OS X 10.4.9 ist aktuell.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: SuperTuxKart SVN-Version

    Vielen Dank für die Antworten.

    Irgendwie habe ich noch ein Problem mit dem Pfadwechsel:

    QUELLTEXT--------------------------------------------------------------------------------------------

    set thelist to choose from list {"640x480", "800x600", "1024x768", "1152x864", "1280x960"} with prompt "Wähle die Auflösung in der du SuperTuxKart spielen möchtest" OK button name "Los gehts" cancel button name "Abbrechen und Skript bearbeiten"
    set resolution to item 1 of thelist as text
    set mypath to path to me as string
    set a to POSIX path of mypath as string
    display dialog mypath
    display dialog a
    set Skript to "cd " & a
    do shell script Skript
    do shell script "#!/bin/sh
    open -a X11
    cd supertuxkart/STK/bin
    ./supertuxkart -s " & resolution
    do shell script "killall X11"
    ---------------------------------------------------------------------------------------------------------

    1.) display dialog mypath
    Ausgabe:
    "Tiger:Users:christian:Desktop:SuperTuxKart.app:" <--------- OK

    2.) display dialog a
    Ausgabe:
    "/Users/christian/Desktop/SuperTuxKart.app/" <------------- OK

    3.) set Skript to "cd " & a <-------------- Eigentlich sollte das Script in das
    Verzeichnis "/Users/christian/Desktop/SuperTuxKart.app/" wechseln.
    Hat irgendwie nicht funktioniert.

    Fehlermeldung:

    sh: line 3: cd: supertuxkart/STK/bin: No such file or directory
    sh: line 4: ./supertuxkart: No such file or directory

    Was habe ich falsch gemacht?

    Gruß,
    Christian
  • RE: SuperTuxKart SVN-Version

    Mal ein Tip, der Dir den Unterschied von Mac und Linux verdeutlicht :-):

    Mach mal das Terminal auf und probier einfach diesen Befehl dort (der mit dem cd).
    Ich denke, da fehlt etwas.
    Nun dazu die Mac-typische Methode:

    Schreib ins Terminal Dein "cd " und dann gehst Du im Finder auf die Datei/den Ordner Deiner Wahl und dragst diese/diesen ins Terminalfenster, dann stimmt der Pfad in jedem Fall.

    Dann machst Du ein paar Anführungzeichen drum rum und kopierst das ins Applescript.

    Es sind ja fast immer Schraipfühlehr, wie z.B. ein vergessenes "/" oder Ähnliches.

    Faul aber effektiv, so mein Eindruck.


    Probier mal ;)
  • RE: SuperTuxKart SVN-Version

    So, der Wechsel in das Verzeichnis funktioniert. Er startet STK nicht und gibt keine
    Fehlermeldung aus:

    Script:

    ----------------------------------------------
    set thelist to choose from list {"640x480", "800x600", "1024x768", "1152x864", "1280x960"} with prompt "Wähle die Auflösung in der du SuperTuxKart spielen möchtest" OK button name "Los gehts" cancel button name "Abbrechen und Skript bearbeiten"
    set resolution to item 1 of thelist as text
    set mypath to path to me as string
    set a to POSIX path of mypath as string
    set b to a & "supertuxkart/STK/bin" as string
    display dialog mypath
    display dialog b
    set f to quoted form of b as string
    display dialog f
    set chverz to "cd " & f
    set startx11 to "open -a X11"
    set stkbin to "./supertuxkart -s "
    set stkbinquoted to quoted form of stkbin as string
    display dialog chverz
    display dialog startx11
    display dialog stkbin
    display dialog stkbinquoted
    do shell script startx11
    do shell script chverz
    stkbinquoted & resolution
    do shell script "killall X11"
    -----------------------------------------

    Das Problem mit dem Verz-Wechsel war das fehlende Quoting.
    Aber irgendwie versteckt sich noch ein Fehler. Wie gesagt, der Verz-Wechsel funzt
    aber der Aufruf zum starten von STK ist noch falsch.

    Was mache ich beim Aufruf falsch???????

    Gruß,
    Christian
  • RE: SuperTuxKart SVN-Version

    Hi xeno74,

    habt Ihr Euch einmal das SDL Init für OS X angesehen und dies genutzt? Da werden so einige andere Sachen gesetzt, die bei der Standard Linux Init nicht gemacht werden (müssen), z.B. Auto Release Pool usw.

    Zum AppleScript

    IMHO (ohne das jetzt genau zu testen) liegt der Fehler darin, daß Du nicht ein Skript erzeugst und das ausführst, sondern jeder Befehl ein eigenes Shell Skript ist.
    Das heißt, daß Dein erstes "cd" zwar klappt, aber das Skript an der Stelle beendet ist und diese Umgebung somit nicht mehr für die nächsten Schritte gültig ist.

    Und im Allgemeinen könnte es ja sein, daß der User bereits GIMP o.ä. laufen läßt und in der Mittagspause ne Runde zocken möchte.
    So ein User wäre sicherlich schwer beeindruckt, wenn ein Startscript ihm nach dem Spiel gleich brutal alle X-Sessions killen würde... ;)
    --
    Wer ist dieser Root und warum gehören ihm alle meine Dateien??

    SIDplay5 for macOS on GitHub
  • RE: SuperTuxKart SVN-Version

    Hier mal unter vorbehalt eine etwas gekürzte Form ohne Funktionsgarantie von Deinem:

    "set mypath to path to me as string
    set a to POSIX path of mypath as string
    set b to a & "supertuxkart/STK/bin" as string
    display dialog mypath
    display dialog b
    set f to quoted form of b as string
    display dialog f
    set chverz to "cd " & f
    set startx11 to "open -a X11"
    "
    und

    "do shell script startx11"

    hier:

    do shell script "open –a X11" ----- Und das findet er?
    set mypath to path to me as string
    do shell script “cd “ & quoted form of POSIX path of mypath & “/supertux/STK/bin; ./supertuxkart -s " ----- müßte "cd /Users/username/supertux/STK/bin;./supertuxkart -s" ergeben


    oder zur Kontrolle

    do shell script "open –a X11"
    set mypath to path to me as string
    set ich_will_sehen to “cd “ & quoted form of POSIX path of mypath & “/supertux/STK/bin;./supertuxkart -s ”
    display dialog ich_will_sehen
    do shell script quoted form of ich_will_sehen

    Woher kommt resolution?


    Ich kann das aber zur Zeit nicht testen, da ich an der Dose sitze.

    Wie würdest Du denn im Terminal hintereinanderweg die Befehlskette schreiben?
    Kannst Du die mal posten, dann kriegen wir schon entsprechendes hin?
  • RE: SuperTuxKart SVN-Version

    Danke Danke Danke Danke =) =)

    Geschafft!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    ------------------------------------------------------------------------------------
    set thelist to choose from list {"640x480", "800x600", "1024x768", "1152x864", "1280x960"} with prompt "Wähle die Auflösung in der du SuperTuxKart spielen möchtest" OK button name "Los gehts" cancel button name "Abbrechen und Skript bearbeiten"
    set resolution to item 1 of thelist as text
    set mypath to path to me as string
    set a to POSIX path of mypath as string
    set b to a & "supertuxkart/STK/bin" as string
    set f to quoted form of b as string
    set chverz to "cd " & f
    set startx11 to "open -a X11"
    do shell script startx11
    set ergebnis to do shell script chverz & ";./supertuxkart -s " & resolution
    do shell script "killall X11"
    -----------------------------------------------------------------------------------
    ";" hat gefehlt. Das Script hat vorher wie thomas13 geschrieben hat ein Kommando
    daraus gemacht.
    STK startet jetzt sogar vom DMG aus. Ich kann es überall hinkopieren. Es startet
    immer.
    Nochmals Danke :]
  • RE: SuperTuxKart SVN-Version


    do shell script "killall X11"


    Nochmals deutlicher: Das kann nicht Euer Ernst sein.
    GIMP, OpenOffice u.a. schließen ohne Warnung, wenn Ihr so was macht.

    Wenn Ihr schon umbedingt den X-Server wieder schließen wollt (warum auch immer), dann wenigstens Anwenderfreundlich mit Apple Script (tell App X11....).
    Dann wird wenigsten nachgefragt.

    Danke,
    Alex
    --
    Wer ist dieser Root und warum gehören ihm alle meine Dateien??

    SIDplay5 for macOS on GitHub
  • RE: SuperTuxKart SVN-Version

    So ich habe diesen Fehler gleich gefixt:

    QUELLTEXT -------------------------------------------------------------

    set thelist to choose from list {"640x480", "800x600", "1024x768", "1152x864", "1280x960"} with prompt "Wähle die Auflösung in der du SuperTuxKart spielen möchtest" OK button name "Los gehts" cancel button name "Abbrechen und Skript bearbeiten"
    set resolution to item 1 of thelist as text
    set mypath to path to me as string
    set a to POSIX path of mypath as string
    set b to a & "supertuxkart/STK/bin" as string
    set f to quoted form of b as string
    set chverz to "cd " & f
    set startx11 to "open -a X11"
    do shell script startx11
    set ergebnis to do shell script chverz & ";./supertuxkart -s " & resolution
    tell application "X11" to quit
    ------------------------------------------------------------------------------

    X11.app fragt nochmal nach ob es wirklich geschlossen werden soll