Forum



griflet am 03.05.2009 22:28 #3068


Um den News-Thread etwas zu entlasten, eröffne ich hiermit einen zur (hoffentlich bald) kommenden Mac OS X-Version von SII.5

hier die letzten Beiträge hierzu:

Zitat von ozzyrocks:
Ok, mit -mtune=prescott geht's.

Jetzt kommt aber das nächste Problem:
~/trunk/version/src/main.cpp:47:30: error: libxml/xmlmemory.h: No such file or directory
~/trunk/version/src/main.cpp:48:27: error: libxml/parser.h: No such file or directory

Der absolute Pfad ist
/usr/include/libxml2/libxml/xmlmemory.h
usw.

make -I/usr/include/libxml2
hat nichts geholfen.

export INCLUDE_PATH=/usr/include/libxml2
auch nicht.

Wie bringe ich denn gcc bei, dass er an diesem Ort suchen soll?


Zitat von griflet:
ich habe in /usr/include, der ort, an dem der ordner "libxml2" liegt (und darin der ordner "libxml") einen link mit namen "libxml" von /usr/include/libxml2/libxml in /usr/include gelegt. dann findet er xmlmemory.h und parser.h
(der befehl ist "sudo ln -s libxml2/libxml libxml", wenn man sich in /usr/include befindet.)


Zitat von griflet:
dann geht's aber nicht mehr weiter:
Code:
sh-3.2# make
[  1%] Built target version
cp: illegal option -- u
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file ... target_directory
make[2]: *** [CMakeFiles/version.h] Error 64
make[1]: *** [CMakeFiles/version.h.dir/all] Error 2
make: *** [all] Error 2
sh-3.2#


Zitat von griflet:
das mit dem "cp -u" habe ich gefunden, diese falsche angabe steht immer in /Users/griflet/s25/trunk/build/CMakeFiles/version.h.dir/build.make. danach sieht's so aus:
Code:
sh-3.2# make
[  1%] Built target version
Failed to read source .svn/entries: No such file or directory
make[2]: *** [CMakeFiles/version.h] Error 1
make[1]: *** [CMakeFiles/version.h.dir/all] Error 2
make: *** [all] Error 2
sh-3.2#


Zitat von griflet:
das mit dem "cp -u" habe ich gefunden, diese falsche angabe steht immer in /Users/griflet/s25/trunk/build/CMakeFiles/version.h.dir/build.make. danach sieht's so aus:
Code:
sh-3.2# make
[  1%] Built target version
Failed to read source .svn/entries: No such file or directory
make[2]: *** [CMakeFiles/version.h] Error 1
make[1]: *** [CMakeFiles/version.h.dir/all] Error 2
make: *** [all] Error 2
sh-3.2#


Zitat von Demophobie:


---
SPQR


ozzyrocks am 04.05.2009 01:01 #3072

tajmahal
Ok, mit der neuen Revision bin ich jetzt weiter gekommen.

Zusätzlich zu den bisherigen "Fixes" musste ich noch folgendes machen:
- Symlinks für sndfile.h und samplerate.h in /usr/include
- Symlink für Verzeichnis GL in /usr/include (das GL aus /System/Library/Frameworks geht nicht, ich habe das aus /opt/local/include genommen)
- in der CMakeLists.txt habe ich die beiden -Werror-Schalter entfernt, weil er wegen Warnungen in iwDemolishBuilding.o nicht kompilieren wollte

Das war, glaube ich, alles. Er ist dann bis 100% durchgelaufen.

Im src-Verzeichnis habe ich jetzt eine ausführbare "s25client". Wenn ich die starte, kommt allerdings folgendes:

Code:

lade "/Users/tobias/.s25rttr/settings.ger": fertig
0 video drivers found!
Video driver couldn't be loaded!


ERROR: Das Spiel konnte nicht gestartet werden
Bus error


Ich habe einfach "cmake.sh" und dann "make" ausgeführt. Muss ich die video drivers extra bauen?

Editiert von ozzyrocks am 04.05.2009 01:06

griflet am 04.05.2009 10:33 #3074


Ha! Genau den Fehler kenne ich, wenn ich es mit der Win-Version und Wine versucht habe. Ich habe damals versucht, das mit den Einstellungen des X-Servers zu lösen, ging aber nicht.

---
SPQR


OLiver am 04.05.2009 11:49 #3075

FloSofts Coding-Sklave
Das bedeutet einfach nur, dass er die Treiber im driver-Ordner nicht findet. Habt ihr das Ganze auch mit der start.sh gestartet und gebaut, dann sollten die Pfade stimmen.

---
Warum heißt der Staatsbürger "Staatsbürger"?
-> Weil er für den Staat bürgt.


ozzyrocks am 04.05.2009 12:28 #3076

tajmahal
Die start.sh kompiliert das Spiel zuerst und startet es dann gleich, richtig?

Mit der start.sh kommt folgende Ausgabe:

Code:

lade "/Users/tobias/.s25rttr/settings.ger": fertig
0 video drivers found!
Video driver couldn't be loaded!


ERROR: Das Spiel konnte nicht gestartet werden
./start.sh: line 66: 35874 Bus error               $CMD $ARGS $BIN


Editiert von ozzyrocks am 04.05.2009 12:31

griflet am 04.05.2009 13:35 #3077


bei mir geht's nicht wirklich weiter. Auch mit den Links, die Du oben beschrieben hast, ozzy, nicht. Neue Version bringt scheinbar auch nicht viel.
Ich starte noch einmal bei Null...
===
EDIT: Hat nichts gebracht...

---
SPQR

Editiert von griflet am 04.05.2009 13:45

ozzyrocks am 04.05.2009 14:39 #3078

tajmahal
Wo hängst du denn, was ist der letzte Fehler?

Die neue Version hat bei mir gebracht, dass der .svn-Fehler weg ist.


ozzyrocks am 04.05.2009 15:54 #3079

tajmahal
@griflet: Welche Mac-OS-Version hast du eigentlich? Ich habe 10.5.6.

@OLiver:
Welche executable soll ich nehmen? Die in build/src oder die in /usr/local/bin?
Wo sucht s25client denn nach dem driver-Verzeichnis und was muss da drin sein?


griflet am 04.05.2009 17:38 #3080


jetzt scheint sich was zu tun. musste den ordner mit den ganzen SDL_*.h-dateien suchen und mit /usr/include/SDL verknüpfen _und_ dann noch die datei SDL_mixer.h suchen, die sich komischer weise nicht in diesem vorigen Ordner befand, und dann in den anderen ordner verknüpfen. Jetzt hat er es bis 100% geschafft und es geht weiter. :-)

...mal sehen wie lange...

---
SPQR


griflet am 04.05.2009 17:42 #3081


Achso:
Zitat von ozzyrocks:
@griflet: Welche Mac-OS-Version hast du eigentlich? Ich habe 10.5.6.

Ebenso. Zudem: Core2Duo 2,16 GHz, 2 GB Ram, ATI X1600 128 G-Ram.

---
SPQR


griflet am 04.05.2009 17:48 #3082


Bei mir sieht's übrigens nun aus wie bei ozzy:
Code:
0 video drivers found!
Video driver couldn't be loaded!


ERROR: Das Spiel konnte nicht gestartet werden
./start.sh: line 66:  2296 Bus error               $CMD $ARGS $BIN
sh-3.2#


---
SPQR


ozzyrocks am 04.05.2009 18:17 #3083

tajmahal
SDL ging bei mir ohne Probleme. Ich hatte allerdings bereits die SDL-Frameworks für Xcode installiert.

Rechner bei mir ist Core 2 Duo @1,86 GHz, 2 GB RAM, GMA 950 (shared).

Und testweise hätte ich noch einen G4 @1,42 GHz, 1 GB RAM, ATi wasweißichwas, falls wir das jemals auf PPC zum laufen kriegen.


FloSoft am 04.05.2009 18:27 #3085

Großmeister
hi postet so warnungen und co ruhig im bug-tracker, dann kann man das genauer verfolgen und beheben (jede warnung ist ein möglicher fehler!)

Code:

0 video drivers found!


da wurde der SDL-"Treiber" nicht kompiliert. Also prüfen ob die SDL-Frameworks installiert sind

---
mfg
Flo



ozzyrocks am 04.05.2009 18:35 #3086

tajmahal
Alles klar, ich wusste nur nicht, wie ihr das Thema Warnungen handhabt. Hätte ja sein können, euch sind Warnungen scheißegal und ihr produziert gerne miserablen Code ;-)

Sollte der SDL-Treiber normalerweise automatisch mitkompiliert werden? Falls ja, warum kriege ich keine Meldung, wenn das nicht passiert? Oder habe ich die übersehen?


griflet am 04.05.2009 19:09 #3087


also SDL ist installiert und müsste auch funktionieren. Jedenfalls meckern andere Programme, die das nutzen, nie. ich habe im Bugtracker folgendes gefunden: https://bugs.launchpad.net/s25rttr/s25client/+bug/370726
libsdl1.2-dev usw. gibt's aber für Darwin/OS X (scheinbar) nicht...

---
SPQR


FloSoft am 04.05.2009 19:10 #3088

Großmeister
naja du musst das SDK installieren, nicht nur die bibliothek an sich

---
mfg
Flo



ozzyrocks am 04.05.2009 21:32 #3089

tajmahal
Das habe ich über MacPorts installiert:
libsdl @1.2.13, Revision 6 (devel, multimedia)
libsdl_mixer @1.2.8, Revision 1 (audio, devel)

Was braucht RTTR denn von SDL außer den Binaries? Eigentlich nur die Header, oder? Die sind bei mir per Symlink unter /usr/include/SDL .


griflet am 04.05.2009 22:52 #3090


ich habe das vorkompilierte Framework von der SDL-Homepage installiert sowie über MacPorts und noch einmal selbst kompiliert. Mehr Möglichkeiten habe ich nicht, es dürfte also drauf sein.

---
SPQR


griflet am 04.05.2009 23:13 #3091


Zitat von griflet:
ich habe das vorkompilierte Framework von der SDL-Homepage installiert sowie über MacPorts und noch einmal selbst kompiliert. Mehr Möglichkeiten habe ich nicht, es dürfte also drauf sein.

===
Edit: Wie gesagt: andere Programme, die SDL benötigen, laufen.

---
SPQR


Demophobie am 05.05.2009 09:26 #3092

Spieltester
Hey,

das hier habt ihr auch beachtet? ../trunk/INSTALL:

"You have to install at least libsdl1.2-dev and libsdl_mixer1.2-dev to
be able to build the SDL video and SDL audio driver module. On not
debian-based systems this dev-packages will be named different."

Wir schaffen das schon noch mit MacOS  :twisted:


ozzyrocks am 05.05.2009 12:27 #3093

tajmahal
Wo gibt es denn libsdl1.2-dev und libsdl_mixer1.2-dev? Auf der SDL-Website nicht. Oder braucht man die SVN-Version von SDL? Die heißt aber auch nicht so.

Könnt ihr nicht was einbauen, dass man sieht, an welcher Stelle was fehlt? Oder habe ich das nur übersehen? Kann man irgendwie sagen, dass er den Video-Treiber separat bauen soll?

Im Moment habe ich die 1.2.13 mit Headern drauf. Was ist denn bei den "-dev"-Paketen noch anders?


~waschbecken am 05.05.2009 13:44 #3094


Moin,

erstmal:  Großes Kino, dass ihr auch eine Mac-Version auf die Beine stellen wollt!  Da meine Programmierkenntnisse sich leider nur auf 100-Zeilen-Java-Applikationen beschränken, wird sich meine Mitarbeit bestenfalls aufs Testen konzentrieren können...

Mich würde noch interessieren, welche Siedler2-Version ihr zur Grundlage für die RTTR-Mac-Version nehmt.  Es gab schließlich eine Mac-Version (meines Wissens ohne Gold-Edition), die hervorragend unter OS 7.6, OS 8 und OS 9 lief... danach aber leider nicht mehr (auch nicht in der Classic-Umgebung).  Basieren eure Tätigkeiten auf dieser Version oder auf der DOS-/Windows-Version?  Anders gefragt: Welche wird man benötigen, um RTTR unter OS X zu spielen?


FloSoft am 05.05.2009 14:10 #3095

Großmeister
hi, naja das macht halt cmake, da kann man halt net so viel einbauen. imho meldet er doch "glfw wird nicht gebaut" "sdl wird nicht gebaut" usw

ansonsten bleibt das bei der Windows/Dos Version da die OS 7... wahrscheinlich anders kodiert oder ausgebaut ist

---
mfg
Flo


Editiert von FloSoft am 05.05.2009 14:15

ozzyrocks am 05.05.2009 14:50 #3096

tajmahal
@~waschbecken:
Man benötigt die DOS-Version. Entweder Gold-Edition oder Vollversion + Mission CD. RTTR basiert ja auf der DOS-Version.

Keine Ahnung, in welchem Format die Dateien in der Mac-OS-Classic-Version vorliegen. Weil es da aber, soweit ich weiß, nie eine Mission-CD gab, kommt das wahrscheinlich sowieso nicht infrage.

@FloSoft: Kann man cmake beibringen, nicht die GNU-Option "cp -u" zu verwenden? Die gibt es beim BSD-cp (und damit beim Mac-OS-X-cp) nämlich nicht. Es ist doof, die immer in der build.make entfernen zu müssen.

Wenn man die cmake.sh ausführt, sagt er: "WARNINGNot building GLFW". Von SDL steht da nichts.


griflet am 07.05.2009 11:27 #3106


Any news?
Ich bin nicht einmal minimal in die Nähe einer Lösung gekommen. Nur, dass der Videotreiber gebaut werden. nach make && make install landen alle Dateien auf meiner Festplatte.

---
SPQR


ozzyrocks am 07.05.2009 11:58 #3107

tajmahal
Habe ich das richtig verstanden? Der Videotreiber wird bei dir gebaut, griflet? Wenn ja, wie hast du das geschafft? Was ist bei dir noch das Problem? "0 video drivers found"?

@FloSoft: Wo sucht RTTR denn nach dem Videotreiber?


griflet am 07.05.2009 12:18 #3108


Code:
sh-3.2# make && make install
[ 50%] Built target videodrv
[100%] Built target videoSDL
[ 50%] Built target videodrv
[100%] Built target videoSDL
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libvideoSDL.dylib
sh-3.2#


das ist doch der videotreiber, oder? Und der wird auch bei dem make && make install im build-Verzeichnis gebaut.
ich lade die libvideoSDL.dylib mal hoch...
http://b5.s3.quickshareit.com/libvideosdlzipcc5a5.zip

---
SPQR

Editiert von griflet am 07.05.2009 12:21

griflet am 07.05.2009 12:37 #3109


ich poste einfach mal alles:
Code:

sh-3.2# ./start.sh
[  1%] Built target version
renewing version to "4819"
[  1%] Built target version.h
Scanning dependencies of target audiodrv
[  2%] Building CXX object driver/src/CMakeFiles/audiodrv.dir/__/__/version.o
Linking CXX static library libaudiodrv.a
/usr/bin/ranlib: file: libaudiodrv.a(AudioInterface.o) has no symbols
[  2%] Built target audiodrv
Scanning dependencies of target videodrv
[  3%] Building CXX object driver/src/CMakeFiles/videodrv.dir/__/__/version.o
Linking CXX static library libvideodrv.a
/usr/bin/ranlib: file: libvideodrv.a(VideoInterface.o) has no symbols
[  3%] Built target videodrv
Scanning dependencies of target videoSDL
[  4%] Building CXX object driver/video/SDL/src/CMakeFiles/videoSDL.dir/__/__/__/__/version.o
Linking CXX shared library libvideoSDL.dylib
../../SDL.so -> SDL/src/libvideoSDL.so
[  4%] Built target videoSDL
[  7%] Built target endian
Scanning dependencies of target audioSDL
[  7%] Building CXX object driver/audio/SDL/src/CMakeFiles/audioSDL.dir/__/__/__/__/version.o
Linking CXX shared library libaudioSDL.dylib
../../SDL.so -> SDL/src/libaudioSDL.so
[  9%] Built target audioSDL
[  9%] Built target mygettext
[ 22%] Built target siedler2
[ 25%] Built target s25util
[ 28%] Built target lobby_c
[ 30%] Built target sound-convert
[ 31%] Built target s25update
Scanning dependencies of target s25client
[ 32%] Building CXX object src/CMakeFiles/s25client.dir/GameFiles.o
[ 33%] Building CXX object src/CMakeFiles/s25client.dir/__/version.o
Linking CXX executable s25client
[ 97%] Built target s25client
[100%] Built target translations
lade "/var/root/.s25rttr/settings.ger": fertig


WARNING: Your Applicationversion has changed - please recheck your settings!

0 video drivers found!
Video driver couldn't be loaded!


ERROR: Das Spiel konnte nicht gestartet werden
./start.sh: line 66:  1361 Bus error               $CMD $ARGS $BIN
sh-3.2#


Vielleicht (und hoffentlich) hilft's...

---
SPQR


ozzyrocks am 07.05.2009 12:47 #3110

tajmahal
Ok, das sagt er bei mir auch. Und die *.dylib-Dateien habe ich auch. Im build-Verzeichnis und in /usr/local/lib .

@FloSoft: Ist libvideoSDL.dylib die Datei, die er eigentlich finden sollte? Wo sucht er die? In /usr/local/lib ist sie bei mir und in /usr/local/share/s25rttr/drivers/video auch.


ozzyrocks am 07.05.2009 13:19 #3111

tajmahal
Ok, nach kurzer Unterhaltung mit FloSoft im IRC habe ich herausgefunden, dass die *.dylib-Dateien eigentlich *.so heißen sollten. Entsprechender symlink führt dazu, dass er den Videotreiber findet.

Danach beschwert er sich aber mehrmals, er hätte keinen AutoreleasePool und würde deshalb  das soeben autoreleaste Objekt einfach leaken. ;-)
Dann kommt der Crash:
Code:
2009-05-07 13:13:43.976 s25client[87669:10b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error (1002) creating CGSWindow'


Ich glaube, so langsam wird's interessant.

Editiert von ozzyrocks am 07.05.2009 13:20

griflet am 07.05.2009 13:26 #3112


link in /usr/local/lib oder s25rttr/drivers/video?

---
SPQR


ozzyrocks am 07.05.2009 13:38 #3113

tajmahal
Im build-Verzeichnis. Also in build/driver/video/SDL/src einen Symlink von libvideoSDL.dylib auf libvideoSDL.so .


griflet am 07.05.2009 14:00 #3114


Hm. Will nicht. Werde nachher weiter testen, muss jetzt leider an die Uni. (Immer kommt dieses Ding dazwischen!)

---
SPQR


griflet am 07.05.2009 16:18 #3116


ne.. findet ihn immer noch nicht...

---
SPQR


ozzyrocks am 07.05.2009 16:38 #3117

tajmahal
Hast du auch mit start.sh gestartet?


griflet am 07.05.2009 16:45 #3118


jep. mit link von ~/s25rttr/build/driver/video/SDL/src/libvideoSDL.dylib auf ~/s25rttr/build/driver/video/SDL/src/libvideoSDL.so... "0 video drivers found!"

---
SPQR


ozzyrocks am 07.05.2009 16:54 #3119

tajmahal
Wie herum hast du den Link jetzt gemacht? Der Build-Prozess erzeugt eine *.dylib-Datei. RTTR erwartet eine *.so-Datei.

ln -s libvideoSDL.dylib libvideoSDL.so

Falls ich mich da vorhin etwas undeutlich ausgedrückt hatte.


griflet am 07.05.2009 17:38 #3120


Genau so. Anders würde er es ja auch nicht machen, da ja keine *.so-Datei vorhanden ist, auf die mal linken könnte.

---
SPQR


ozzyrocks am 07.05.2009 17:47 #3122

tajmahal
Doch, er würde es trotzdem machen. ln ist es egal, ob die Zieldatei existiert oder nicht.

Einfach im Home-Verzeichnis "ln -s asdf qwer" machen. Er wird den Symlink anlegen, auch wenn "asdf" gar nicht existiert.


griflet am 07.05.2009 17:52 #3123


Übrigens ist mir aufgefallen, dass, wenn man start.sh ausführt, ein link "../../SDL.so -> SDL/src/libaudioSDL.so" erstellt wird. diese SDL.so verweist jedoch nicht auf SDL/src/libaudioSDL.so, sondern auf SDL/src/libvideoSDL.dylib. Ist der libaudioSDL.so-Link also unnötig und du hast vielleicht was anderes gemacht, was den Treiber auffindbar gemacht hat?

---
SPQR


ozzyrocks am 07.05.2009 18:11 #3124

tajmahal
Bei mir verweist SDL.so auf libvideoSDL.so (bzw. auf libaudioSDL.so). Der Symlink hat zum "Erfolg" geführt.

(EDIT: dylib und so vertauscht)

Editiert von ozzyrocks am 07.05.2009 18:19

griflet am 07.05.2009 21:15 #3126


okay. habe was (eigentlich) logisches festgestellt: ist libvideoSDL.so auf libvideoSDL.dylib nicht da, zeigt SDL.so auf libvideoSDL.so. ist der link vorhanden, zeigt SDL.so auf libvideoSDL.dylib, da libvideoSDL.so ja auf diese zeigt... trotzdem geht's nicht. :-(

---
SPQR


ozzyrocks am 07.05.2009 22:49 #3127

tajmahal
Das ist ja interessant.
Bei mir sieht es so aus:

in build/driver/video:
Code:
SDL.so@ -> SDL/src/libvideoSDL.so


in build/driver/video/SDL/src:
Code:
libvideoSDL.dylib*
libvideoSDL.so@ -> libvideoSDL.dylib


Deine Beschreibung kann ich bei mir nicht nachvollziehen. Wäre dann zwar ein logisches, gleichzeitig aber auch komisches Verhalten. Wie soll ich denn dann wissen, auf was der Symlink "eingestellt" ist?

bash-Version: 3.2.17(1)-release
ls-Version: keine Ahnung, Dateigröße 72K

Dateisystem: HFS+, case-insensitive

EDIT: gerade noch mal mit Testdateien ausprobiert:

Code:

~/lntest$ ls -l
total 16
-rw-r--r--  1 tobias  staff  0  7 Mai 22:49 asdf
lrwxr-xr-x  1 tobias  staff  4  7 Mai 22:49 qwer@ -> asdf
lrwxr-xr-x  1 tobias  staff  4  7 Mai 22:50 yxcv@ -> qwer
~/lntest$ vi asdf
~/lntest$ cat asdf
Testtext.

~/lntest$ cat qwer
Testtext.

~/lntest$ cat yxcv
Testtext.

~/lntest$


Editiert von ozzyrocks am 07.05.2009 22:55

griflet am 07.05.2009 22:54 #3128


okay. über's Terminal sieht es auch so aus wie bei dir. Ich habe das Info-Fenster des Finders genutzt. der verfolgt scheinbar die links.

---
SPQR


ozzyrocks am 07.05.2009 23:00 #3129

tajmahal
Ah, tatsächlich. Das heißt wenigstens, dass dein Link richtig ist. ;-)

Mir ist auch grad aufgefallen, dass der Finder keine Symlinks erstellt, sondern irgendwelche komischen (HFS(?)-)Aliase.


Rene am 07.05.2009 23:10 #3130


Ich bin auch gerade am kompieren, wie habt ihr das problem mit dem /Users/rene/s25/s25rttr/s-c/src/main.cpp:20:24: error: samplerate.h: No such file or directory
/Users/rene/s25/s25rttr/s-c/src/main.cpp:21:21: error: sndfile.h: No such file or directory

gelöst?


Rene am 07.05.2009 23:17 #3131


Hab schon, habs einfach brutal gelinkt...


griflet am 07.05.2009 23:19 #3132


mal sehen, ob er bei dir den videotreiber findet...

---
SPQR


ozzyrocks am 07.05.2009 23:19 #3133

tajmahal
libsamplerate installieren, am besten über MacPorts. (@griflet: Wie hast du es gemacht?)

Falls das schon geschehen ist:
1. Nach /usr/include gehen.
2. Dort "sudo ln -s /opt/local/include/samplerate.h ." ausführen.
3. Ebenfalls dort "sudo ln -s /opt/local/include/sndfile.h ." ausführen.

EDIT: Mist, zu spät.

Editiert von ozzyrocks am 07.05.2009 23:19

griflet am 07.05.2009 23:22 #3134


@ozzy: hab' den source geladen und selbst kompiliert. scheint funktioniert zu haben...

---
SPQR


Rene am 07.05.2009 23:41 #3135


Also ich hänge gerade an
Code:
[ 30%] Building CXX object s-c/src/CMakeFiles/sound-convert.dir/tempname.o
Linking CXX executable sound-convert
cp: directory ../../RTTR does not exist
make[2]: *** [s-c/src/sound-convert] Error 1
make[1]: *** [s-c/src/CMakeFiles/sound-convert.dir/all] Error 2
make: *** [all] Error 2


Rene


griflet am 07.05.2009 23:45 #3136


wenn der Ordner RTTR im untersten Verzeichnis existiert, einfach ins build-verzeichnis linken: "ln -s ../RTTR RTTR"

---
SPQR


Rene am 07.05.2009 23:51 #3137


k, danke wie genau kompilierst du?
ich habe mit cmake makefiles erstellt, und dann mit start.sh aus dem build verzeichnis kompiliert...
und jetzt hänge ich auch beim videodriver...


griflet am 07.05.2009 23:56 #3138


im build-verzeichnis cmake.sh ausführen, dann die ganzen sachen, die wir hier beschrieben haben, umändern (die "-u"-option bei "cp" entfernen, etc.) und dann mit ./start.sh kompilieren. ich gehe mal davon aus, dass es ozzy auch so macht, nur, dass bei ihm der treiber gefunden wird...

---
SPQR


ozzyrocks am 08.05.2009 00:00 #3139

tajmahal
D.h., er baut ohne Fehler und sagt beim Starten "0 video drivers found"?

Dann geh ins Verzeichnis build/driver/video/SDL/src . Dort sollte eine Datei "libvideoSDL.dylib" sein. Mache in diesem Verzeichnis einen Symlink "libvideoSDL.so -> libvideoSDL.dylib". Danach hat es bei mir funktioniert. (Dasselbe ggf. für den Audiotreiber, aber der ist ja nicht unbedingt nötig und so weit bin ich sowieso noch nicht.)

EDIT:
Das "-u" muss ich auch nach jedem cmake.sh-Durchlauf wieder rausschmeißen.

Ich kompiliere normalerweise mit "make && make install" und führe dann s25client selbst aus. Habs aber auch schon mit start.sh probiert, selbes Ergebnis.

Editiert von ozzyrocks am 08.05.2009 00:02

Rene am 08.05.2009 00:02 #3140


die links habe ich alle erstellt.
Klappt trozdem nicht.
rene@BlackBook-2 ~/s25/s25rttr/build/driver/video/SDL/src $ ls -la
total 136
drwxr-xr-x  8 rene  staff    272 May  7 23:59 .
drwxr-xr-x  6 rene  staff    204 May  7 23:46 ..
drwxr-xr-x  5 rene  staff    170 May  7 23:46 CMakeFiles
-rw-r--r--  1 rene  staff   9889 May  7 23:22 Makefile
lrwxr-xr-x  1 rene  staff     17 May  7 23:59 SDL.so -> libvideoSDL.dylib
-rw-r--r--  1 rene  staff   1807 May  7 23:22 cmake_install.cmake
-rwxr-xr-x  1 root  staff  43300 May  7 23:59 libvideoSDL.dylib
lrwxr-xr-x  1 rene  staff     17 May  7 23:57 libvideoSDL.so -> libvideoSDL.dylib


Rene am 08.05.2009 00:06 #3141


Hat das evt was zu sagen?
/usr/bin/ranlib: file: /usr/local/lib/libvideodrv.a(VideoInterface.o) has no symbols


ozzyrocks am 08.05.2009 00:16 #3142

tajmahal
Das sagt er bei mir auch.

Brauchst du eigentlich auch root-Rechte, damit start.sh richtig ausgeführt wird?

EDIT:
Das geht irgendwie ziemlich langsam über's Forum. Wie wär's mit IRC? Ich heiße dort "tajmahal".

Editiert von ozzyrocks am 08.05.2009 00:18

griflet am 08.05.2009 00:17 #3143


brauche ich nicht. ich mache es immer als normaler benutzer.

---
SPQR


ozzyrocks am 08.05.2009 00:19 #3144

tajmahal
Ich brauche es, weil er das Zeug gleich nach /usr/irgendwas kopieren will. Irgendwas muss also bei dir anders sein. Ich hol mal die neueste Revision vom bzr.


griflet am 08.05.2009 00:21 #3145


sehe gerade das edit und komme in irc

---
SPQR


Rene am 08.05.2009 02:56 #3146


Es leuft. Ich werde morgen build infos posten für die die es gaaaanz eilig haben, und dann ein app package erstellen.
http://renehopf.de/s2osx.png


griflet am 08.05.2009 09:13 #3147


dann hätte ich wohl noch ein paar minuten länger da bleiben sollen ;-)

bin gespannt, wie es nun geklappt hat!

---
SPQR


dasbaum am 08.05.2009 21:31 #3151


für alle die eine .app baun wolln und ein tolles icon brauchen, können ja meine frisch gebackene grafik benutzen; einfach mit img2icns in das gewünschte format konvertiern... :)

http://seromo.dyndns.org/img/siedlericon.png


btw bei mir läuft s25 mittlerweile auch :D

---
Die Dönerbude nebenan hat angerufen. Deine Mutter dreht sich nicht mehr - du sollst mal eben vorbeischaun

Editiert von dasbaum am 08.05.2009 21:31

Malla am 08.05.2009 22:01 #3152


Hast du sowas auch im SVG-Format?


dasbaum am 09.05.2009 02:48 #3153


ne leider nich

---
Die Dönerbude nebenan hat angerufen. Deine Mutter dreht sich nicht mehr - du sollst mal eben vorbeischaun


Rene am 11.05.2009 15:24 #3155


SDL und SDL_mixer installieren
http://www.libsdl.org/download-1.2.php
http://www.libsdl.org/projects/SDL_mixer/
Diese werden während der Laufzeit benötigt.

libsdl
libsdl-framework
libsdl_gfx
libsdl_image
libsdl_mixer
über macports installieren
Diese werden zum Compilieren benötigt.

Es kann sein das etwas davon überflüssig ist, das kann ich aber schlecht testen ohne das zu deinstallieren.

cmake installieren
http://www.cmake.org/cmake/resources/software.html

Jetzt den Quellcode mit bzr branch lp:s25rttr runterladen.
In cmake/local.cmake Die Cflags folgendermaßen anpassen:
-mtune=prescott -O0 -lSDL -lSDLmain  -framework Cocoa -L/opt/local/lib/ -malign-double -ffast-math -mmmx -msse -mfpmath=sse -fomit-frame-pointer
In der datei src/main.cpp nach der zeile
#include "GameManager.h"
Die Zeile
#include <SDL/SDL_main.h>
einfügen.
dann:
cd build
./cmake.sh --prefix=.
das --prefix=. sorgt dafür dass nicht alles nach /usr/local installiert wird.
Als nächstes ./start.sh aufrufen, und entsprechend euer Konfession Beten. :D  Ungläubige wie ich müssen an dieser stelle entweder eine menge links in /usr/local/include setzen, oder dem compiler beibringen wo sich die Dateien befinden die er sucht. Diese können mit locate dateiname.h gesucht werden.
Wenn der compiler dann alles findet, nur noch 2 links setzten:
cd driver/video/SDL/src/
ln -s libvideoSDL.dylib libvideoSDL.so
cd ../../../audio/SDL/src/
ln -s libaudioSDL.dylib libaudioSDL.so

Es kann sein dass ich was vergessen habe, wenn Probleme auftreten einfach posten.

Rene


Rene am 11.05.2009 15:50 #3156

FloSoft am 11.05.2009 18:54 #3157

Großmeister
Wenn einer von euch Mac-Freaks nen richtigen patch erzeugt (für die dateien und die Makefiles) dann kann ichs direkt hochladen

---
mfg
Flo



~macintosh am 11.05.2009 18:55 #3158


Danke an alle, die an der Mac OS X Version arbeiten! Das erste Resultat ist schon einmal ein guter Schritt nach vorne.

Wie sieht es denn momentan mit einer "Univeral Binary"-Version (Intel und PPC-Code) aus?

Wäre es möglich, die benötigten Frameworks und Libraries in das Programmpaket zu integrieren? Dies ist durchaus üblich bei Mac-Programmen.
Es würde die Installation und vorallem die Deinstallation wesentlich vereinfachen, und auch das Ansammeln unnötiger bzw ungewollter Dateien im System verhindern.
Also mehr Übersicht und Kontrolle für den (unerfahrenen) User.

Das wäre für Mac OS X die elegantere, und auch meist praktizierte, Variante.

grüße

Macintosh


Rene am 11.05.2009 20:42 #3159


momentag crasht das noch ziemlich oft mit

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x00000000 in ?? ()
(gdb)

ich glaube das ist osx spezifisch.
wenn ich das replay abspiele crasht es nicht, wenn ich das spiel wieder starte mit 2 spielern crasht es sofort.


OLiver am 11.05.2009 21:13 #3160

FloSofts Coding-Sklave
Das kann auch daran liegen, dass ich momentan das Pathfinding-Zeug z.T. grundlegend umbaue und daher alles etwas instabil ist. Deswegen würde ich den aktuellen Code nicht zum Spielen/Testen verwenden.

---
Warum heißt der Staatsbürger "Staatsbürger"?
-> Weil er für den Staat bürgt.


Demophobie am 11.05.2009 22:04 #3164

Spieltester
Genau Rene, lieber 0.6


Rene am 12.05.2009 02:36 #3165


ääh doofe frage, aber wie komme ich den an den code von 0.6?


Demophobie am 12.05.2009 07:44 #3166

Spieltester
revision 4431. Bei svn gehts mit "svn update -r 4431".
Bazaar muss ja was ähnliches haben.

Oder geht das nicht Flo?

Editiert von Demophobie am 12.05.2009 07:45

Rene am 12.05.2009 13:54 #3167


geht irgentwie nicht mit bzr branch lp:s25rttr -r 4431. Wie kann ich den feststellen welche Version ich habe ohne zu kompilieren? im svn habe ich garkeinen source code von siedler gefunden.
Hab es, aber wie kann ich das alles runterladen? http://bazaar.launchpad.net/%7Eflosoft/s25rttr/trunk/files/4431?start_revid=4431
Ich galube ich hab es jetzt , aber jetzt hängt make bei
Failed to read source .svn/entries: No such file or directory

Editiert von Rene am 12.05.2009 14:07

ozzyrocks am 12.05.2009 14:17 #3168

tajmahal
Dieser Fehler wurde erst kürzlich behoben, deshalb ist er in 0.6 noch drin.

Anscheinend muss man einfach die gewünschte Datei erstellen, sie aber leer lassen.


Rene am 12.05.2009 16:02 #3169


nope.
.svn/entries:1: parser error : Document is empty

^
.svn/entries:1: parser error : Start tag expected, '<' not found

^


ozzyrocks am 12.05.2009 17:05 #3170

tajmahal
Sorry, das hatte ich wohl nicht mehr richtig in Erinnerung.

Das muss anscheinend rein:

Code:
9

dir
4761


Hier ist der entsprechende Bug-Report:
https://bugs.launchpad.net/s25rttr/+bug/370724


FloSoft am 12.05.2009 20:22 #3171

Großmeister
4431 ist als code nicht im bazaar.

---
mfg
Flo



ozzyrocks am 12.05.2009 20:55 #3172

tajmahal
4431 ist aber schon 0.6? Wie kommt man dann an den 0.6-Code?


FloSoft am 13.05.2009 17:23 #3173

Großmeister
gar nicht

---
mfg
Flo



ozzyrocks am 13.05.2009 20:16 #3174

tajmahal
Wer macht dann eine stabile Mac-OS-Version?


FloSoft am 13.05.2009 21:27 #3175

Großmeister
die erste open source revision taugt

---
mfg
Flo



ozzyrocks am 13.05.2009 22:12 #3176

tajmahal
Ok, alles klar.


Rene am 14.05.2009 16:16 #3177

griflet am 14.05.2009 17:06 #3178


Also die aktuelle Revision läuft bei mir ganz anständig und flott. Auch zu Abstürzen, wie ich sie vorher hatte, sind bis jetzt ausgeblieben.

---
SPQR


polagent am 23.06.2009 22:36 #3458


Hey, bin gerade auf diesen threat gestoßen und sehe, dass es irgendwie funktionieren soll, dass man rttr auf nem mac spielt ohne codeweavers games zu benutzen (das stürzte oft ab und aktuelle Versionen liefen gar nicht). Ich kann ein app logo erstellen falls das benötigt wird. Kann mir jemand erklären wie das nun funktionieren soll?  :D


ozzyrocks am 24.06.2009 03:07 #3462

tajmahal
Bis jetzt ist das alles noch etwas provisorisch und mit viel Handarbeit verbunden, ein App-Bundle gibt es noch nicht.

Man muss also den Code selbst von Launchpad herunterladen und ihn dann von Hand kompilieren mit ein paar Anpassungen, die Rene in Post 66 in diesem Thread beschrieben hat.

@FloSoft: Anscheinend gibt es eine Möglichkeit, auf einem Linux-System Mac-OS-Binaries zu erzeugen, man braucht nur den entsprechenden Cross-Compiler (eine von Apple angepasste Version des gcc). Zumindest behaupten das die Entwickler von Open Transport Tycoon (www.openttd.org). Das wäre doch was für die Nightlies.


FloSoft am 24.06.2009 08:24 #3463

Großmeister
http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt

hier hab ich eine anleitung sogar gefunden, werd das die nächsten Tage mal testen.

wenn ich dann iwas benötige (an libs, tests o.ä) kann ich mich ja melden dann (hab hier keinen mac rumstehen. Wär also gut wenn du öfter im chat vorbeischauen könntest ;-)

---
mfg
Flo



polagent am 24.06.2009 08:35 #3464


ok, ich hab keine Ahnung von den Sachen beschrieben im Post 66 und stelle mich lieber zum testen zu Verfügung. Diese Siedler.dmg gepostet im Post 67 fängt aber gut an. Installation schließt sich ab, jedoch kann man die Siedler nicht öffnen.

gruß


FloSoft am 24.06.2009 19:18 #3469

Großmeister
okay cross compiler läuft soweit,

ein archiv mit 32bit >10.4er binaries ist bei den nightlys zu finden, bitte mal testen obs funktioniert.

Evtl kann mir einer ne Anleitung schreiben wie man ne "s25rttr.app" erstellt (mit Logo usw)
dann kann ich das dann auch generieren lassen

---
mfg
Flo



griflet am 24.06.2009 19:33 #3470


da bin ich mal gespannt. *testen geh*

---
SPQR


griflet am 24.06.2009 19:58 #3471


So. Führe ich die "rttr.sh" aus, läd er das Update herunter, will aber nicht starten:
Code:
./rttr.sh: line 17: ./share/s25rttr/RTTR/s25update: cannot execute binary file
./rttr.sh: line 26: ./bin/s25client: cannot execute binary file


Führe ich direkt "s25client" aus, ohne vorher rttr.sh auszuführen (also ohne Update), bekomme ich einen "Bus error"


Fehler #1 könnte damit erklärt werden, dass falsche Daten geladen werden.

#2 mit einer fehlerhaften kompilierung. Bei mir kompiliert er z.B. zur Zeit nicht durch.

---
SPQR


griflet am 24.06.2009 20:02 #3472


zu These 1:

"file" von "s25client" vor Update:
s25client: Mach-O executable i386

"file" nach Update:
s25client: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped


q.e.d.

---
SPQR


FloSoft am 24.06.2009 20:07 #3473

Großmeister
und ohne update?

---
mfg
Flo



polagent am 24.06.2009 21:36 #3476


ich würde ja gerne helfen, kenne mich aber überhaupt nicht mit programmiersprachen aus.
Kann mit der MacOS version nichts anfangen... :) oder gibt es da eine beschreibung wie man das zusammenfriemeln kann?

p.s. Finde Klasse was ihr da macht! :D :clap:


Spike am 24.06.2009 21:56 #3477

Im Ruhestand
Wer findets nich klasse was die hier machen alle? :)

---



polagent am 27.06.2009 15:48 #3530


Das ist eine Seite die auf englisch beschreibt wie man eine .app erstellt:

http://mac.sillydog.org/dev/visual_studio.php

Vielleicht hilft dir das, denn mir sagt das nix ;)


Alex_H am 05.07.2009 16:15 #3665


Hallo, Zusammen.

Coole Sache, was ihr alles hinbekommen habt! :clap:

Ich hab mich heut' auch mal im Compilieren versucht, wollte aber ohne Mac-Ports auskommen.

SDL, SDL_mixer kursieren ja als fertige Os X Frameworks im Netz, libsamplerate und libsndfile gibt's als Mac-Port-freie Version auf http://www.mega-nerd.com (als Code, muss noch compiliert werden, geht aber ohne schwierigkeiten...).

Als Grundlage hab ich die Aktuelle Version mit bzr geladen, und die Anpassungen analog zu Renes Erklährung in Post 66 gemacht, mit ein paar kleinen Änderungen:
- In den main.h's der Beiden Treiber (Audio und Video) habe ich die direkten Pfade in die IHMO von Apple für Frameworks empfohlene Variante (siehe http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/IncludingFrameworks.html#//apple_ref/doc/uid/20002257) geändert, also z.B. "#include <SDL/SDL.h>" und "#include <SDL_mixer/SDL_mixer.h>".

- In der local.cmake die Framework-Direktiven herausgelassen, da die bei mir folgende Fehler erzeugten:
Code:

i686-apple-darwin9-g++-4.0.1: -framework: linker input file unused because linking not done
i686-apple-darwin9-g++-4.0.1: Cocoa: linker input file unused because linking not done

(da hab ich wahrscheinlich irgendwas falsch gemacht  :\ , kann mir da jemand auf die Sprünge helfen? Ich bin mir auch nicht sicher, ob das normal ist, dass er g++ verwedet, sollte der nicht mit cpp arbeiten?)

- In den Frameworks, die ich geladen hatte, habe ich die Includes in SDL_mixer.h ebenfalls auf "#include <SDL/SDL_types.h>" etc. ersetzt, da ich nicht jede Datei einzeln suchen und angeben wollte, und mir irgendjemand mal gesagt hatte, dass das so stimmen würde ;-)

- Das Linken von *.dylib zu *.so hat bei mir nicht so recht geklappt. Ich hab dann den Code mal angesehen, und gelesen, dass bei allen Plattformen außer Windows die Treiber in dem Verzeichnis "FILE_PATHS[46] + DIRECTORY[dt]" (=Treiberverzeichnis) gesucht werden, welches in der files.h auf DATADIR"/driver" zeigt. DATADIR wird auf Nicht-Windows-Systemen auf PREFIX"/share" gelegt - wenn ich beim Compilieren Prefix auf "." setze, würde er also ein "./share"-Verzeichnis erwarten (denke ich), das es bei mir irgendwie nicht gab (unter /usr/local natürlich schon...) - also habe ich kruzerhand den Code in der File.h geändert in:
C++:
  1. #ifndef DATADIR
  2. #    ifdef _WIN32
  3. #        define DATADIR PREFIX
  4. #    else
  5. #        ifdef __APPLE__
  6. #            define DATADIR PREFIX
  7. #        else
  8. #            define DATADIR PREFIX"/share/s25rttr"
  9. #        endif
  10. #    endif
  11. #endif // !DATADIR


Ebenso habe ich die DriverWrapper.cpp in DriverWrapper::LoadDriverList angepasst auf
C++:
  1. #else
  2. #    ifdef __APPLE__
  3.         std::string path = FILE_PATHS[46] + DIRECTORY[dt] + "/" + "*.so;*.dylib";
  4. #    else
  5.         std::string path = FILE_PATHS[46] + DIRECTORY[dt] + "/" + "*.so";
  6. #    endif
  7. #endif // !_WIN32


- In der CMakeLists.txt unter Driver/video musste ich den GLFW-Teil auskommentieren, da er sonst immer mit diversen Fehlern beim Build abbrach (GLFW hatte ich auch installiert) und garnicht bis zu SDL kam

Soweit, so gut... make klappt Fehlerfrei, die Treiber werden auf Anhieb gefunden, nur leider funktioniert's trotzdem nicht...  :(
Wenn ich's starten will, bricht er mit einer NSInternalInconsistencyException ab, Meldung: "Error (1002) creating CGSWindow"

Kann es sein, dass ich da die Falsche SDL-Version verwende?
Ich kann mich erinnern, dieses Problem schoneinmal mit einem FreePascal Programm und SDL auf Mac Os X gehabt zu haben, da war der Fehler, dass die SDLmain-Bibliothek nicht korrekt gebunden wurde - ich schätze, hier wäre der Trick, -LSDLmain in die CFlags einzufügen, die in Post 66 beschrieben - leider generiert das den selben Fehler wie oben bei den Frameworks...

Hab ich so überhaupt eine Chance, ohne MacPorts auszukommen?


griflet am 05.07.2009 16:21 #3666


ich werde heute abend mal testen, wie weit ich komme und meine erfahrungen mitteilen.

---
SPQR


Alex_H am 05.07.2009 17:08 #3668


Noch 'n kleiner Nachtrag:

hatte hier 'nen Klaren Fall von PEBKAC bei mir: Hatte nach Änderung der main.c bzgl. der SDL_main.h vergessen, diese auch zu speichern... jetzt is nix mehr mit Compilieren. make endet bei:
Code:

Linking CXX executable s25client
Undefined symbols:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [src/s25client] Error 1
make[1]: *** [src/CMakeFiles/s25client.dir/all] Error 2
make: *** [all] Error 2


Scheint fast so, als müsste man um ohne MacPorts zu arbeiten die Anwendung tiefer auf Cocoa umstellen um den Anforderungen von Cocoa gerecht zu werden... vielleicht lass ich das dann lieber ;-)...


Alex_H am 05.07.2009 17:29 #3670


auch auf die Gefahr hin, euch jetzt zu nerven ;-), aber schon wieder PEBKAC:
- Onkel Google hat mir gerade gesagt, dass die "Fehler" bzgl. "linker input file unused..." keine Fehler sind, sondern nur die Info, dass g++ einen Befehl bekam der ihm egal war, weil er nicht gelinkt hat gerade - also hab ich's ignoriert und die Zeilen wieder eingefügt...

- Nach einiger Zeit nachdenken bin ich dann glücklicherweise selbst drauf gekommen, dass SDL_main.h nicht funktionieren kann ohne die Bilbiothek, die ich nicht habe, wenn ich die Entwicklungsversion von SDL nicht installiere... also schnell selbst compiliert und

Voilà, es funktioniert, ohne MacPorts (was auch immer das bringen mag, aber ich wollt's mal probieren - ich glaub auch, dass man's dann leicher in ein Bundle bekommt, weil nix in /opt/local oder /usr/local muss) ;-)

Auf jeden Fall danke für die Hilfe!

(EDIT: Rechtschreibfehler etwas reduziert...)

Editiert von Alex_H am 05.07.2009 17:31

griflet am 05.07.2009 17:32 #3671


ich hoffe mal, dass Flo mit diesen Angaben weiter kommt, was die OS X-Binary angeht. Ich muss leider noch etwas an meiner Hausarbeit weiterschreiben. Ablenkung ist da nicht gut. Auch wenn es mir unter den Fingern kribbelt...

---
SPQR


Alex_H am 05.07.2009 17:40 #3673


oh, erinner mich nicht daran, hab morgen auch eigentlich eine Klausur...


griflet am 05.07.2009 17:44 #3674


Ich gehe mal davon aus, dass Du dich nicht so reingehängt hättest, das Spiel zu kompilieren, wenn du _keine_ Klausur gehabt hättest ;-)
Wahrscheinlich ist deine Wohnung/Zimmer schon so sauber gewesen, dass DU dir was anderes suchen musstest. Ich kenne das. Aber das ist jetzt reichlich OT....

---
SPQR


Alex_H am 06.07.2009 22:15 #3692


Wenn's jemand haben will, ich hab jetzt auch mal 'n DMG gemacht. Die Scripts und Zusatzdaten zum erstellen der .Apps (Debug und Normal) hab ich gleich mit 'rein gepackt, sowie die von mir geänderterten Dateien. Bei der Debug-Variante hab ich den Updater nicht eingeschaltet (momentan hat der eh noch keine Funktion bei OsX, oder?)

Die Verzeichnisse S2 und RTTR liegen im Selben verzeichnis wie die Beiden Anwendungen; Treiber liegen unter Siedler 2.app->Contents->MacOs->driver

Die Beiden Frameworks (SDL und SDL_mixer) sind in den Bundles enthalten.

Link: http://www.new-h.de/Siedler2rttr.dmg
Das Icon stammt aus Rene's DMG.

Beim compilieren mit dem Schalter -lSDL hatte die s25client bei mir immer noch eine Referenz auf "/usr/.../libSDL1.2.dylib" (o.ä.), weswegen die nie wirklich lief, und auf Rechnern ohne installierter SDL-Libs in diesem Ordner (obwohl die Frameworks vorhanden waren) immer ein "Bus Error" kam - swoeit ich das im Debugger sah is das die Antwort des Codes in SDLmain auf jede art von Nicht-SDL-Fehler im main-Code.
Ohne -lSDL geht aber auch, wenn die Frameworks installiert sind... die erzeugen im Binary eine Referenz auf "@executable_path/../Frameworks/SDL.framework/Versions/A/SDL", da ist dann ein Framework im App-Bundle ok. -lSDLmain habe ich gelassen (geht auch nocht ohne, man könnte alternativ noch sdlmain.m verwenden (in Codeform), aber das mag g++ nicht).

Zum Compilieren habe ich noch alle Header im /usr/local... von SDL sowie alle Libs außer libSDLmain entfernt... die habe ich auch in die DMG gepackt.

Was aber überhaupt nicht klappen will ist, dass die Daten aus der Originalen S2-Installation konvertiert werden, bisher musste ich immer die Verzeichnisse S2 und RTTR aus vorheriger Windows-Installation übernehmen...

So, ich hoff mal ich hab nix's vergessen.

Editiert von Alex_H am 06.07.2009 22:16

FloSoft am 07.07.2009 09:36 #3694

Großmeister
okay das werd ich mir mal anschaun. du hast aber nicht den neusten code verwendet? ;-)

Wie siehts mit dem sound-converter aus? läuft der? weil den hab ich jetzt nicht gesehen das du da was getan hast. (oder meinst du das mit "dass die Daten aus der Originalen S2-Installation konvertiert werden"?)

Aber das bringt mich evtl schon ein stück weiter. Mal sehen wie man das alles integrieren kann damits funktioniert.

---
mfg
Flo



Alex_H am 07.07.2009 09:59 #3696


Ich hab einfach den Befehl der bei Launchpad stand genommen und die Daten geladen, ich kann heut Abend mal nach der Version schauen, bzw. dann den neuesten Code mal nehmen (wenner's nicht war)

Und mit meinem zugegebenermaßen etwas verhunzten Satz hab ich genau den Sound-Converter gemeint ;-), allerdings fehlen ihm wohl noch ein paar andere Daten, die ich nicht unbedingt ind die Sound-Ecke stellen würde, ich kopier mal die Info's aus dem Debugger hier rein nacher...


Alex_H am 07.07.2009 17:01 #3700


Version.h sagt 5196.

Probier's grad mit 5215


Alex_H am 07.07.2009 17:55 #3701


:clap:
Funktioniert "out of the box" bei mir.

Die Lib-Pfade stimmen bei der s25client:

Code:

Uranus:src Alex$ otool -L s25client
s25client:
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/SDL.framework/Versions/A/SDL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0)
    ...


Bei den Libs auch.

Einziger "Schönheitsfehler" (meiner Meinung nach): Standardmäßig ist als Prefix /usr/local angegeben; ich fin'd Spiele unter OsX sollten nur ihr eigenes Programmbundle bzw. den darüber liegenden Ordner anfassen, und noch ~/.xxxx für private Einstellungen - aber das ist sicher Geschmackssache und lässt sich ja leicht umgehen.

Mein momentanes Bundle sieht so aus (alle Datei unter MacOs/share/... da ich diesmal nur den Prefix geändert hab')... Hat vor und Nachteile; einerseits kann man das Programm so einfach in den Programme-Ordner ziehen, andererseits muss man das Bundle bearbeiten, wenn man die S2-Daten hineinkopieren will.
Code:

Siedler 2 RTTR.app
|____Contents
| |____Frameworks
| | |____SDL.framework
| | |____SDL_mixer.framework
| |____info.plist
| |____MacOs
| | |____dbg.command
| | |____rttr.command
| | |____s25client
| | |____s25update
| | |____share
| | | |____.DS_Store
| | | |____s25rttr
| | | | |____driver
| | | | | |____.DS_Store
| | | | | |____audio
| | | | | | |____.DS_Store
| | | | | | |____libaudioSDL.dylib
| | | | | |____video
| | | | | | |____.DS_Store
| | | | | | |____libvideoSDL.dylib
| | | | |____RTTR
| | | | |____s2
| | |____sound-convert
| | |____test.bmp
| |____PkgInfo
| |____Resources
| | |____icon.icns



FloSoft am 07.07.2009 18:08 #3702

Großmeister
joa meine anpassungen sind noch nicht ganz abgeschlossen, aber es kompiliert nun out of the box auf einem macosx (hab es mir extra auf den pc in mühsamer patch- und frickelarbeit installiert ;)) Werde die nächsten Tage noch einbauen das er ne .app erzeugt und damit dann die nightly-builds wieder laufen lassen.

problem beim sound-convert meiner meinung nach ist das er libsndfile und libsamplerate aus den macports braucht. muss mal schaun ob man aus den abhängigkeiten da nicht auch frameworks erzeugen kann die man dann ins app-bundle mit einfügt (also libogg, libsndfile, libsamplerate) müsste ich halt dann nur entsprechend bauen damit die pfade davon stimmen.

Evtl könnte man einbauen das er einem am Mac sagt man solle die S2-Gold-CD einlegen und er kopiert sich dann die Daten die er braucht in sein app-bundle. dann kann mans einfach rüberziehen. müsste man doch in den rttr.command evtl mit einbauen können über applescript.

Da kenn ich mich nur zu wenig aus, evtl kriegst du das ja hin?

Achso: du kannst den prefix auf "." setzen, evtl sollte man das bei Macos allgemein machen:

in build

"./cmake.sh --prefix=. --enable-debug --arch=macos.local"

--enable-debug natürlich nur wenn man nen debug-build will (im normalfall stört das ja nicht weiter)
--arch kann man weglassen, sollte er automatisch auswählen, wenn "uname -s" auch "Darwin" ausspuckt ;-)

---
mfg
Flo


Editiert von FloSoft am 07.07.2009 18:10

Alex_H am 07.07.2009 18:35 #3703


Für libsndfile und libsamplerate reichen die Code-Distributionen, die lassen sich auch ohne MacPorts compilieren, libogg auch, die hatte ich schon länger, drum isses mir wohl nicht aufgefallen.

Frameworks sollten sich ohne schwierigkeiten aus bestehenden Dylibs machen lassen, hab schon öfter davon gelesen, z.B. http://lists.apple.com/archives/xcode-users/2005/Jul/msg00010.html

Die Idee mit Applescript ist gut, ich versuch mal was zu bauen - rttr.command ist allerdings ein ganz normales Shell-Script mit .command anstatt .sh, damit Mac Os X es ohne die Execute-Berechtigung ausführt (evtl. geht's im Bundle auch ohne, hab ich nicht probiert).

Editiert von Alex_H am 07.07.2009 18:38

Alex_H am 07.07.2009 21:11 #3705


Ok, sollte soweit funktionieren: http://www.new-h.de/s2rttr_mit_kopierer.dmg  (ca. 27mb)
(Die Daten aus dem RTTR-Odner sind mangels Sound-Converter schon mit drinn)

Hab die rttr.command jetzt so:
Code:

#!/bin/bash

DIR=`dirname "$0"`
cd "$DIR"

#...

#Prüfen, ob die S2-Daten kopiert wurden...
RTTR_DEST_DIR="$DIR/share/s25rttr/s2/"
RTTR_TEST_FILE="$DIR/share/s25rttr/s2/DATA/CREDITS.LST"
export RTTR_DEST_DIR="$DIR/share/s25rttr/s2/"
if [ ! -f "$RTTR_TEST_FILE" ] ; then
    #Dateien noch nicht kopiert, Apple Script starten...
    open -W "Siedler 2 RTTR - Kopierer.app"
    
    #Wie man Rückgabewerte aus dem Applescript ausgibt weiß ich nicht, also einfach nochmal testen...
    if [ -f "$RTTR_TEST_FILE" ] ; then
        ./s25client
    fi
else
    ./s25client
fi
export -n RTTR_DEST_DIR

exit $?


und "Siedler 2 RTTR - Kopierer.app" ist ein Apple-Script Bundle mit:
Code:

set userCanceled to false
-- Zielpfad, etwas umständlich, aber auch mit Mac OS 10.4 und abwärts kompatibel...
set destDir to system attribute "RTTR_DEST_DIR"
-- Datei die zur Prüfung des "echten" Ordner dient (evtl. eine, die nur bei der richtigen Version existiert...)
set checkFile to "DATA/CREDITS.LST"

if destDir is equal to "" then
    display dialog "Falscher Parameter. RTTR_DEST_DIR muss gesetzt sein - die Dateien werden jetzt zum Testen nach '/RTTR' kopiert!" with icon 0 buttons {"Abbrechen", "Fortfahren"} default button "Fortfahren" cancel button "Abbrechen"
    set destDir to "/RTTR"
end if

try
    set dialogResult to display dialog "Die Original Siedler 2 Gold - Dateien müssen noch in die Anwendung integriert werden, sonst kann Siedler 2 - RTTR nicht funktionieren. Möchten sie nun einen Ordner aus dem die Dateien kopiert werden können auswählen (z.B. die Siedler 2 Gold - CD)? Ansonsten müssen Sie die Daten manuell in das Programm-Bundle nach 'Contents/MacOs/share/s25rttr/s2' kopieren." buttons {"Nein", "Ja"} default button "Ja" cancel button "Nein" with title "Siedler 2 - RTTR" with icon 1
on error number -128
    set userCanceled to true
end try


if userCanceled then
    -- so geht's nicht...
    display dialog "Siedler 2 - RTTR kann ohne das Original-Spiel 'Siedler 2 Gold' nicht gestartet werden.'" with icon 2 buttons {"OK"} default button "OK"
else if button returned of dialogResult is "Ja" then
    -- ok, kopieren...
    try
        set sourceFolderAS to choose folder with prompt "Ordner mit Siedler 2 - Dateien wählen:"
    on error number -128
        set userCanceled to true
    end try
    if userCanceled then
        -- so geht's nicht...
        display dialog "Siedler 2 - RTTR kann ohne das Original-Spiel 'Siedler 2 Gold' nicht gestartet werden.'" with icon 2 buttons {"OK"} default button "OK"
    else
        set sourceFolder to POSIX path of sourceFolderAS
        -- richtiger Ordner?
        
        set istDa to "nein"
        tell application "Finder"
            if exists (sourceFolder & checkFile) as POSIX file then set istDa to "ja"
        end tell
        
        if istDa = "ja" then
            -- dafür sorgen, dass das Verzeichnis auch existiert...
            try
                do shell script "mkdir -p '" & destDir & "'"
                do shell script "cp -R '" & sourceFolder & "' '" & destDir & "'"
                
                display dialog "Die Dateien wurden kopiert, Siedler 2 - RTTR wird gestartet." buttons {"OK"} with icon 1
            on error msg
                display dialog "Konte die Dateien nicht kopieren - eventuell haben Sie nicht die nötigen Berechtigungen. Bitte öffnen sie das Bundle manuell und kopieren die S2-Gold dateien nach 'Contents/MacOs/share/s25rttr/S2'." buttons {"OK"} with icon 0
            end try
        else
            display dialog "Der Ordner " & sourceFolder & " scheint nicht die nötigen Daten zu enthalten. Wählen sie z.B. das Stammverzeichnis der S2-Gold CD oder einer existierenden Dos-Installation." buttons {"OK"} with icon 2
        end if
    end if
end if


Is aber nicht das gelbe vom Ei, glaub ich... evtl. sollte man ein "echtes" Programm dafür schreiben irgendwann, insbesondere gibt's während des Kopieren's kein Feadback, erst, wenn's fertig ist. Evtl. kann man auch versuchen, den Finder anzuweisen, die Dateien zu kopieren - dann kommt evtl. der Finder-Kopier-Dialog - nur ist dann für die Zeit auch der Finder im Vordergrund.


polagent am 07.07.2009 21:34 #3706


ich sehe hier tut sich was :D... ich verstehe zwar nix aber ich glaub das ist trotzdem gut :)


Alex_H am 07.07.2009 21:45 #3707


Probier's doch einfach mal aus wenn du einen Mac mit OsX (und Intel ;-)) hast - mich würd' mal interessieren, ob das so geht, wie ich mir das vorstelle - bin ja auch kein Informatiker, sondern nur Physik-Student ;-)

Editiert von Alex_H am 07.07.2009 21:46

griflet am 07.07.2009 22:17 #3709


Ich muss sagen: Gute Arbeit! Kompilieren funktioniert ohne Probleme. Fast so wie unsere erste Lösung, nur eben jetzt ohne Veränderungen am Code. Toll! Glückwunsch!

Werde am Wochenende mal versuchen, das Ganze auf meinem alten PPC zu kompilieren. Habe ihn leider nicht hier, sonst würde ich das gleich jetzt testen.

Cheers!

---
SPQR


FloSoft am 08.07.2009 09:42 #3710

Großmeister
naja ppc wird nicht funktionieren, vieles vom code ist nicht endian sicher

und das apple-script funktioniert bei mir iwie nicht, er kann die anwendung nicht starten.

ich bau da evtl das bashscript weiter aus. hab nun eingebaut das er es im terminal startet

---
mfg
Flo


Editiert von FloSoft am 08.07.2009 10:53

OLiver am 08.07.2009 14:36 #3714

FloSofts Coding-Sklave
Naja, theoretisch müsste es schon funktionieren, nur die Savegames und Replays sind noch nicht endian-sicher, d.h. man wird dann keine von anderen LE-Maschinen abspielen/laden können.

---
Warum heißt der Staatsbürger "Staatsbürger"?
-> Weil er für den Staat bürgt.


Alex_H am 08.07.2009 16:50 #3716


Hmmm, mit dem Apple Script ist komisch - hast du die .app aus meinem Bundle mal probiert, bzw. es in den Skript Editor geaden?... aber is letzlich ja auch egal.

Ich war't auf das erste Nightly und probier's dann nochmal...


Alex_H am 08.07.2009 17:47 #3717


Ah, ich seh grad, die gibt's ja schon...

Ich hab's mal Probiert... der Updater kopiert die OGG-Dateien in das Verzeichnis, in dem die s25client.app liegt, ist das so gewollt?

Und mit dem Skript, ich nehme an, dass du OSX 10.4 "Tiger" genommen hast, oder? Ich hab 10.5, da gibt's Probleme mit fertig kompilierten Scripts, ich schau's mir mal an.

Ach ja, und mir fällt 'grad ein, alternativ ist bei Jeder OsX Version auch ein Python interpreter dabei - wär das was? Wenn ihr wollt überleg ich mir da was... (bin kein Freund von Nicht-Terminal Anwendungen, die eines öffnen ;))

Editiert von Alex_H am 08.07.2009 18:06

FloSoft am 08.07.2009 19:30 #3719

Großmeister
oh die musik, jo die is falsch noch XD oops ;-)

ne hab auch 10.5er genommen, nur will das komplette applescript nich, is evtl ein osx86 bug oder so.

aber so ist das auch ganz schön.

terminal geht leider nicht mehr zu danach, aber evtl gar net so verkehrt.

---
mfg
Flo


Editiert von FloSoft am 08.07.2009 19:35

Alex_H am 08.07.2009 19:37 #3720


Was mir noch aufgefallen ist:

In der rttr.command is jetzt
Code:

        cd ../../../
        ./s25client.app/Contents/MacOS/share/s25rttr/RTTR/s25update
        cd s25client.app/Contents/MacOS


beim Updater. Ich glaub's wär besser, das irgendwie so zu lösen:

Code:

        cd share/s25rttr
        ./RTTR/s25update
        cd ../../


(wenn möglich), da man sonst das Bundle nicht umbenennen darf ;-)


FloSoft am 08.07.2009 21:43 #3721

Großmeister
naja der muss halt vom basisverzeichnis aus ausgeführt werden, sonst läd ers sonstwo runter. man darf das bundle nicht umbenennen, sonst erkennt ers nicht mehr.

---
mfg
Flo



Alex_H am 12.07.2009 01:36 #3725


Moin, wahrscheinlich wisst ihr's schon, aber die neueste Version lässt sich unter Mac OS nicht starten (mit LSTS-Update).

Wenn ich die letzte Nightly beim Updaten nicht ins' internet lasse, funktionierts - sonst beschwert er sich, dass ~/.s25rrtr/LSTS nicht existiert.

Ich bastel auch grad an 'ner C/Cocoa Version (ohne XCode / InterfaceBuilder) des AppleScripts für's CD-Kopieren, des Programm soll auch den Updater starten können (geht auch schon, die Ausgaben landen in einer Textbox, sollte dann kein Terminal-Workaround mehr nötig sein). Ich weiß aber ned wie lang's noch dauert, bisses fertig is ;)

Editiert von Alex_H am 12.07.2009 01:39

FloSoft am 12.07.2009 09:07 #3726

Großmeister
okay da hab ich vergessen ihm zu sagen er soll die ordner beim start anlegen (oops)

---
mfg
Flo



polagent am 12.07.2009 10:37 #3727


gibt es nun also eine funktionierende osx app für tiger oder leopard? :)


FloSoft am 12.07.2009 12:15 #3728

Großmeister
joa, 5252 sollte dann wieder korrekt funktionieren. (zumindest auf leopard, obs auf tiger läuft weiß ich nicht)

---
mfg
Flo



polagent am 12.07.2009 15:27 #3731


cool, bin grad am ziehen... Habs schon ewig nicht mehr versucht zu starten, welche Dateien/Ordner müssen denn schon davor aufm rechner sein? Die Installation beinhaltet ja nicht die gfx und die music files stimmts?

Wenn ich versuche das game zu starten poppt das s2rttr symbol unten auf und schließt sich gleich wieder.

Editiert von polagent am 12.07.2009 16:06

ozzyrocks am 13.07.2009 00:09 #3733

tajmahal
PPC oder Intel?
Es geht nur mit Intel.

Leopard oder Tiger?


FloSoft am 13.07.2009 11:23 #3734

Großmeister
nur intel und leopard, tiger habe ihc nicht getestet (da ichs nich hab)

---
mfg
Flo



polagent am 13.07.2009 13:54 #3735


ich hab ein intel macbook mit tiger drauf


FloSoft am 13.07.2009 21:52 #3739

Großmeister
kannste ja mal testen obs dort auch funktioniert, oder ob ich beim kompilieren was definieren muss damit er 10.4 kompatibel ist

---
mfg
Flo



polagent am 13.07.2009 23:35 #3741


wie soll ich das machen? Wenn ich es versuche zu öffnen kommt das beschriebene Problem.
Würde gerne helfen, musst mir nur beschreiben wie...


FloSoft am 14.07.2009 17:09 #3742

Großmeister
öffne maln terminal und geh in den pfad wo die s25client.app liegt und geb ein

open -W s25client.app

und sag mir was da passiert, oder komm mal in irc, dann könn mer ggf mal ne ssh-session machen

---
mfg
Flo



polagent am 19.07.2009 22:23 #3752


:!: :) :!:

ich resümiere mal wie es unter Tiger funktioniert:

- neuste rttr nightly für OSX ziehen
- siedler 2 cd einlegen oder die Ordner DATA und GFX in den folgenden Pfad kopieren:
  s25client.app/Contents/MacOS/share/s25rttr/S2
- Terminal öffnen
- den Pfad zur s25client.app angeben (mit cd pfad/name/usw)
- diesen Befehl eingeben: s25client.app/Contents/MacOS/rttr.command interminal
- Vieln spaß!

Auf englisch:

How to run settler2 on OSX Tiger:

- download the newest rttr nightly OSX Game
- insert the settler 2 gold cd or copy the DATA and GFX folder into:
  s25client.app/Contents/MacOS/share/s25rttr/S2
- Open Terminal
- go to the path of your s25client.app (using the cmd: cd pathname/and/so/on)
- use the following cmd to run the game:
  s25client.app/Contents/MacOS/rttr.command interminal
- Have fun!


Soniyx am 26.07.2009 15:22 #3766


Bin per Zufall auf dieses Projekt gestossen.
Habe mir die aktuelle Nightly-Build geladen und die Spieledaten an den entsprechenden Ort kopiert. Wenn ich das Spiel jedoch dann starten will, erscheint im Dock kurz das Programm-Symbol und verschwindet nach einer Sekunde ohne Fehlermeldung wieder.
Habe ich da etwas übersehen?

Habe Mac OS X 10.5.7 auf einem Macbook (Intel GMA X3100 Grafik).

Editiert von Soniyx am 26.07.2009 15:24

polagent am 26.07.2009 16:32 #3767


wenn du mal den post davor lesen würdest, hättes du dir und mir die zeit gespaart eine nachricht hier reinzuschreiben.

Lese dir doch mal den Post Nr. 135 durch...


Soniyx am 26.07.2009 17:23 #3768


Da du ja Tiger nutzt, bin ich davon ausgegangen, das für mich nicht relevant ist, da ich Leopard nutze.
Ich habe es aber jetzt dennoch mal probiert und das ist das Ergebnis:
Code:
Macbook:s25rttr_20090726 sebastian$ s25client.app/Contents/MacOS/rttr.command interminal
Downloading file "put your S2-Installation in here" to "./s25client.app/Contents/MacOS/share/s25rttr/S2":   nan% - ok
dyld: Library not loaded: @executable_path/../Frameworks/SDL.framework/Versions/A/SDL
  Referenced from: /Users/sebastian/Desktop/s25rttr_20090726/s25client.app/Contents/MacOS/./bin/s25client
  Reason: image not found
s25client.app/Contents/MacOS/rttr.command: line 63:  6738 Trace/BPT trap          ./bin/s25client


Und mit dem Tipp von FloSoft (open -W s25client.app) bekomme ich dieses Ergebnis:
Code:
Macbook:s25rttr_20090726 sebastian$ open -W s25client.app
Unable to block on application (GetProcessPID() returned 4294966696)


Es öffnet sich ein neues Befehlsfenster:
Code:
Macbook:~ sebastian$ /tmp/rttr.command
dyld: Library not loaded: @executable_path/../Frameworks/SDL.framework/Versions/A/SDL
  Referenced from: /Users/sebastian/Desktop/s25rttr_20090726/s25client.app/Contents/MacOS/./bin/s25client
  Reason: image not found
/Users/sebastian/Desktop/s25rttr_20090726/s25client.app/Contents/MacOS/rttr.command: line 63:  6782 Trace/BPT trap          ./bin/s25client



polagent am 26.07.2009 17:30 #3769


ok, dann such mal den flosoft im irc auf, der kann dir da mehr helfen ;)
klick einfach auf chat auf der rttr seite...


FloSoft am 27.07.2009 15:15 #3771

Großmeister
hi überprüfe mal ob du einen s25client.app/Frameworks/SDL.framework/Versions/A Ordner hast in dem eine dylib "SDL" liegt. ggf fehlt dir sonst das SDL-Framework (warum auch immer)

---
mfg
Flo



Soniyx am 27.07.2009 15:44 #3772


bei mir liegt diese Datei in s25client.app/Contents/Frameworks/SDL.framework/SDL
und ich habe es so belassen, wie ich es runtergeladen habe :|

Werde mal die Ordner Versions/A/ anlegen, da diese nicht vorhanden sind und diese SDL dorthin kopieren.

Edit: Auch dann geht diese Fehlermeldung nicht weg.
Was mich jeodch an der Meldung wundert:
Code:
  Referenced from: /Users/sebastian/Desktop/s25rttr_20090726/s25client.app/Contents/MacOS/./bin/s25client
Wo kommt der Punkt zwischen MacOS und bin her? Ist das ein Fehler oder muss diese Meldung wirklich so aussehen?

Editiert von Soniyx am 27.07.2009 15:47

FloSoft am 27.07.2009 20:13 #3779

Großmeister
jo is okay, ein a/./b wird als a/b interpretiert, das . referenziert ja auf a zurück

---
mfg
Flo



Soniyx am 27.07.2009 21:12 #3782


Ok, ich dachte, das es daran liegen könnte. Morgen werde ich mal im IRC vorbei schauen.


polagent am 27.07.2009 21:14 #3783


hey soniyx, poste mal wenn du herausfindest wie es unter leopard geht, damit alle was davon haben ;)

gruß
polagent


FloSoft am 28.07.2009 11:49 #3786

Großmeister
unter leopard sollte eig ein direktes doppelklicken funktionieren.

Habt ihr das Programm unter Windows entpackt? Weil ja anscheinend die Symbolischen Links in den Frameworks fehlen, oder hat da mein Build-Script nen Fehler.

Wenn ich wieder daheim bin bring ich das MacOs wieder zum laufen und teste es dann da nochmals

---
mfg
Flo



Alex_H am 28.07.2009 12:14 #3788


Eine mögliche Ursache (hab's auf die Schnelle nur Sporadisch getestet, konnte aber den Fehler reproduzieren):

Die s25client verweist auf @executable_path/../Frameworks/SDL.framework/Versions/A/SDL
Code:

Uranus:bin Alex$ otool -L s25client
s25client:
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/SDL.framework/Versions/A/SDL (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 11.0.0)
    /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.2)
    /usr/lib/libiconv.2.dylib (compatibility version 5.0.0, current version 5.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.10)


und das gibt's ja nun nicht, da in SDL.Framework nur SDL ist. Zweites Problem ist aber der bin-Ordner im MacOs-Verzeichnis: @executable_path zeit auf den Pfad der s25client, ../Frameworks dann auf s25client.app/Contents/MacOs/Frameworks...

In OsX is halt normalerweise alles im MacOS-Ordner ;)

Einfacher Workaround:
Den Frameworks-Ordner aus der Bundle in den MacOs-Ordner kopieren und den Verzeichnisbaum Versions/A usw. erstellen, dann sollte es klappen (und hat es bei mir auch)
Alternative: Das SDL und das SDL_mixer Framework aus dem Netz laden und irgendwo in /System/Library/Frameworks oder /Library/Frameworks kopieren - zwar nicht "the Mac way" für ein Spiel, aber funktioniert.
(bei mir waren die da auch, drumm hab ich's bisher nicht bemerkt, hüstel ;))

Editiert von Alex_H am 28.07.2009 12:15

Soniyx am 28.07.2009 15:44 #3789


Genau das war dann auch der Fehler. Nachdem der Frameworksordner im MacOS-Odner ist, lässt sich das Spiel auch starten.


~polagent am 03.08.2009 00:52 #3801


Kann das jemand in der nightly mal ändern? Ich krieg das an meinem anderen mac mit leopard auch nicht mit diesen erklärungen hin...

danke!
polagent


Soniyx am 03.08.2009 08:30 #3802


Ich finde auch, das das Compiler-Script angepasst werden könnte. Ich muss andauernd diesen Ordner verschieben, da dort immer die Video- und Audio-Librarys aktualisiert werden.
Und mache nie den Fehler, das Programm umzubenennen, dann bekommst du richtige Probleme, wie ich eben festgestellt habe.

Ich erkläre dir kurz, was du machen musst:

1. Öffne den Ordner des Spiels
2. gehe in Contents/Frameworks/SDL.framework
3. Erstelle dort einen neuen Ordner mit dem Namen Versions
4. In diesem Ordner erstelst du noch einen Unterordner mit Namen A
5. Verschiebe die Datei SDL aus Contents/SDL.framework/ in den neu erstellten Ordner
6. zum Schluss verschiebst du den gesamten Ordner Frameworks in den Ordner MacOS


Beim nächsten Start wird der Ordner Frameworks wieder erstellt, da dieser in dem Script so vorgesehen war.
Praktisch gesehen müsstest du jeden Tag diese Schritte machen, wenn du die Nightly jeden Tag startest.


~polagent am 03.08.2009 09:27 #3803


danke für die schnelle antwort!

Punkt 6. hat bei mir gefehlt ;)


Soniyx am 03.08.2009 14:39 #3804


nun ergibt sich bei mir ein neues Problem, wo ich die Lösung noch nicht gefunden habe:

Mit der letzten Build kann ich das Spiel nur 1mal starten, danach bekomme ich im Terminal folgende Meldung:
Code:
Macbook:~ sebastian$ /tmp/rttr.command
-bash: /tmp/rttr.command: No such file or directory

Was kann ich dagegen tun?


ozzyrocks am 03.08.2009 14:43 #3805

tajmahal
Das kommt bei mir auch ab und zu. Wenn ich es dann einfach noch mal starte, geht es.


Soniyx am 07.08.2009 05:19 #3809


Ich bekomme die Meldung nur noch und alles was ich probiert habe, funktioniert nicht. Habe diese Datei mal im angegeben Ordner erstellt, aber beim Start wird diese Datei einfach gelöscht. Danach findet das Programm diese Datei nicht mehr.

Überhaupt wird diese Datei nicht mehr in das entsprechende Verzeichnis kopiert. :(


Soniyx am 07.08.2009 11:10 #3810


Ich habe den Fehler gefunden:
Irgendwo in meinem Nutzeraccount auf dem Mac ist ein Fehler, weshalb ich das Spiel nicht starten kann. Ich habe einen neuen Account erstellt mit dem ich das Spiel ohne Probleme starten konnte.
Was kann diesen Fehler auslösen?


FloSoft am 07.08.2009 16:45 #3811

Großmeister
evtl sind deine terminals putt? oder ka

---
mfg
Flo



Soniyx am 07.08.2009 18:19 #3812


Hab mir mal alles angeschaut und das Problem liess sich dann zum Schluss beim Terminal selber finden. Da das Programm bei anderen Nutzern auf meinem Mac funktioniert, kann die App selber nicht kaputt sein, sondern muss es an den Enstellungen davon liegen,
Ein Versuch, die "Preferences" zu löschen hat das Problem beseitigt. Irgendwas muss diese Datei bei mir zerschossen haben.
Diese Datei befindet sich hier: ~/Library/Preferences/com.apple.Terminal.plist


~polagent am 07.08.2009 21:22 #3813


hm, kann jmd mal posten wenn es eine funktionierende osx version gibt? Ständig diese codes eingeben mit dem risiko dass das spiel eh abstürzt, halten mich noch vom spielen ab. Vor allem wenn man mal mit freunden spielen will die keine ahnung haben wie es laufen soll.


griflet am 07.08.2009 21:54 #3814


also ich muss sagen, dass ich keine probleme habe. war aber auch bei den ganzen anderen versuchen des kompilierens dabei, vielleicht liegt es dann an den bibliotheken, die ich zusätzlich aufm rechner habe.

---
SPQR


griflet am 18.08.2009 18:18 #3907


Ich habe herausgefunden, wie man das Spiel schneller starten kann (da ja manchmal das Terminal "-bash: /tmp/rttr.command: No such file or directory" meldet):
Das Terminal nicht beenden, sondern einfach noch einmal s25client.app ausführen, dann läuft es! Weiß der Geier warum...

---
SPQR


MasterandCommander am 05.10.2009 02:36 #4030


Would using Dosbox work for s25?


FloSoft am 05.10.2009 08:46 #4031

Großmeister
Hi,
no dosbox would not work. S25 is a native MacOSX application (or native Linux x86/amd64 or native Windows Application, depends on the version you have downloaded)

DosBox can only load 16bit DOS Applications.

You can also use Crossover Games or another Windows Emulator, but the performance is mostly poor on these

---
mfg
Flo



MasterandCommander am 05.10.2009 18:13 #4034


So... if it's native, it will work on OS X directly?

If so, that's OK for me... I'm running OS X.


griflet am 05.10.2009 18:42 #4035


Not on 10.6.x. It crashes with 'bus error' again... :-(

---
SPQR


FloSoft am 05.10.2009 20:46 #4036

Großmeister
Zitat von griflet:
Not on 10.6.x. It crashes with 'bus error' again... :-(

perhaps you have to rebuild the samplerate and sndfile library again, but they will not needed anymore now (rev5598)

---
mfg
Flo



MasterandCommander am 05.10.2009 21:29 #4037


Works on Tiger though, right?


Alex_H am 05.10.2009 22:12 #4038


Well, it did at least on Leopard ;-)

Ich hab den Starter, den ich mal als AppelScript-Bundle gebastelt hatte, als OsX-Binary neu geschrieben, wer Interesse hatt: http://www.new-h.de/Test.app.zip
In das Bundle unter Test.app/Contents/MacOs muss die s25client.app 'rein, der Code liegt ebenfalls dort. Das Programm ruft den Updater auf, zeigt dessen Ausgaben ohne Terminal an, und kopiert eventuell noch die Dateien von der Siedler-CD (oder sonst wo). Außerdem werden die Frameworks an die benötigten Stellen kopiert - und letztenendes Siedler gestartet ;-)

(Engl.: Some time ago we discussed a little AppelScript-Applet that would assist the user in copying the Settler II Gold Datafiles into RTTR's Bundle - here's the AppleScript-Free version. If someone likes to use it: download the above zip-File, copy one of the latest nightly builds into it's bundle, to Contents/MacOs/s25client.app and start it. Any sourcecode is included in this directory, too.)

Zu 10.6.x: Wenn die SDL-Bibliotheken am richtigen Platz liegen, kommt er wohl bis zum Laden der Playlist, und stürzt dann in Playlist::Load(std::string const&) ab:
Code:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libstdc++.6.dylib                 0x9245389f std::locale::_Impl::_M_remove_reference() + 15
1   s25client                         0x00293def Playlist::Load(std::string const&) + 739 (MusicPlayer.cpp:111)
2   ???                               0xbfffeb00 0 + 3221220096
3   ???                               0xff0ae9ff 0 + 4278905343


Mit gdb lande ich in Zeile 103 von MusicPlayer.cpp, vielleicht hilft euch das.


Pechente am 08.10.2009 13:36 #4047


Also bei mir steht dann im Terminal
Code:
dyld: Library not loaded: @executable_path/../Frameworks/SDL.framework/Versions/A/SDL
  Referenced from: /Users/{username}/Downloads/s25rttr_20091005/s25client.app/Contents/MacOS/./bin/s25client
  Reason: image not found
/Users/{username}/Downloads/s25rttr_20091005/s25client.app/Contents/MacOS/rttr.command: line 63:  1111 Trace/BPT trap          ./bin/s25client


Freue mich aber schon wenn eine gut und unkompliziert funktionierende Mac Version fertig ist ;)


Alex_H am 08.10.2009 13:52 #4048


Ich glaub' das kommt wiedermal daher, dass das SDL-Framework nicht an der "richtigen" stelle ist - schau mal auf Seite 15 ganz unten in diesem Thread.


Pechente am 09.10.2009 13:30 #4053


Ah danke. Nachdem die Dateien richtig verschoben wurden konnte ich das Spiel zwar starten, allerdings hing es sich gleich beim Splash Screen auf, noch bevor ich überhaupt die Maus nutzen konnte. Nach ein wenig rumprobieren funktionierte es immer noch nicht und ich hab alle Schritte nochmal von vorne durchgeführt. Jetzt stürzt das Spiel sofort nach dem Start ab, nichtmal das Terminal öffnet sich. Ich nutze OSX 10.6.

Wo ist denn bei den aktuellen Nightly Builds die OSX Version? Ich würde das Ganze gerne nochmal mit einer aktuellen Version versuchen in der Hoffnung, dass es mit dieser funktioniert.

Editiert von Pechente am 09.10.2009 13:31

Soniyx am 14.10.2009 11:03 #4078


Zitat von Pechente:
Ah danke. Nachdem die Dateien richtig verschoben wurden konnte ich das Spiel zwar starten, allerdings hing es sich gleich beim Splash Screen auf, noch bevor ich überhaupt die Maus nutzen konnte. Nach ein wenig rumprobieren funktionierte es immer noch nicht und ich hab alle Schritte nochmal von vorne durchgeführt. Jetzt stürzt das Spiel sofort nach dem Start ab, nichtmal das Terminal öffnet sich. Ich nutze OSX 10.6.

Wo ist denn bei den aktuellen Nightly Builds die OSX Version? Ich würde das Ganze gerne nochmal mit einer aktuellen Version versuchen in der Hoffnung, dass es mit dieser funktioniert.

Bei mir hängt es auch sofort beim Splash-Screen. Im Terminal wird als letzte Datei sound.scs ausgeführt, danach kann ich das Spiel nur noch zum Absturz zwingen, da es das von selber nicht macht.
Ich nutze derzeit 10.6.1.


Pechente am 15.10.2009 23:52 #4080


So ist es. Leider auch mit dem aktuellen Nightly Build. Habs eben nochmal versucht. Unter 10.6 scheint das Spiel also selbst mit den empfohlenen Modifikationen definitiv nicht zu laufen.


MasterandCommander am 16.10.2009 02:36 #4082


If I'm running Settlers II Gold edition from a Dosbox configuration, what are the step by step things needed to run the client?

Looking at the read me, there's no instructions really for Mac OS X.


Pechente am 16.10.2009 13:54 #4083


Do you know how DosBox works using Windows? On Mac OSX it works just the same way with the only difference that you type in your Mac OSX locations for the files which are (unlike the Dos locations) case sensitiv. For example, my configuration to start the settlers 2 looks like this:

Code:
keyb gr

mount d /Volumes/Windows/S2/S2

mount c /Volumes/Windows/S2/S2

C:

S2


and yeah, I have the cd and the installed game in the same folder, thats why I mount this folder for both C: and D: :D

Oh and, keyb gr switches to the german keyboard layout, so you may want to ignore this command.

Editiert von Pechente am 16.10.2009 13:57

griflet am 16.10.2009 19:54 #4085


isn't there a program called "boxer"? It is DosBox, but you can start the win-exe-files by dropping them on the boxer-icon.

Edit: http://boxer.washboardabs.net/

---
SPQR

Editiert von griflet am 16.10.2009 19:56

Spike am 16.10.2009 20:39 #4086

Im Ruhestand
Zitat:
isn't there a program called "boxer"? It is DosBox, but you can start the win-exe-files by dropping them on the boxer-icon.

Edit: http://boxer.washboardabs.net/[/quote]

I've got a file calling "dbgl.jar" and with that "Programm" I can set the folder and everything I need to play a game (easyiest way is mounting the folder and setting the .exe^^)


---



MasterandCommander am 17.10.2009 17:05 #4087


Yeah I realize how to run Settlers II Gold Edition from Dosbox, but what about the R.T.T.R. client?

Every time I double click on it, it attempts to run, then cancels.

It's in the same folder as S2.exe. What gives?


Pechente am 29.11.2009 19:04 #4211


Ich finde es ja schön, dass an einer OSX Version gearbeitet wird, aber wieso wird damit so viel "Werbung" gemacht, wenn diese Version nach wie vor nicht funktioniert? Das Spiel hängt sich unter Snow Leopard beim Splashscreen auf. Das ist der exakt gleiche Fehler wie er von Anfang an bestand.

Ich verstehe auch nicht wieso die aktuellen Nightly Builds immer noch falsch zusammengestellt sind (Frameworks Ordner, nicht im MacOS Ordner, Unterordner fehlerhaft etc.).

Editiert von Pechente am 29.11.2009 19:07

griflet am 22.02.2010 13:12 #4827


Moin,
besteht die Möglichkeit, dass man das Spiel unter 10.6.X wieder zum laufen bringen kann? Bei mir sieht es so aus, dass man bis zum Startscreen kommt und sich das ganze dann aufhängt. Das Terminal zeigt das an:
Code:

Last login: Mon Feb 22 12:50:33 on ttys000
/tmp/rttr.command
macbookpro:~ griflet$ /tmp/rttr.command
lade "/Users/griflet/.s25rttr/CONFIG.INI": fertig (0ms)
1 video drivers found!
1 audio drivers found!
Failed loading glXSwapIntervalSGI: dlsym(0x8fe46cd4, _glXSwapIntervalSGI): symbol not found
schreibe "/Users/griflet/.s25rttr/CONFIG.INI": fertig

Starte das Spiel
lade "./share/s25rttr/S2/GFX/PALETTE/PAL5.BBM": fertig (25ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL6.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL7.BBM": fertig (0ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI0.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI1.BBM": fertig (0ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI8.BBM": fertig (0ms)
lade "./share/s25rttr/RTTR/COLORS.ACT": fertig (0ms)
lade "./share/s25rttr/RTTR/LSTS/splash.bmp": fertig (22ms)
lade "./share/s25rttr/S2/DATA/RESOURCE.DAT": fertig (291ms)
lade "./share/s25rttr/S2/DATA/IO/IO.DAT": fertig (77ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP013.LBM": fertig (85ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP015.LBM": fertig (66ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP666.LBM": fertig (79ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP667.LBM": fertig (48ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP801.LBM": fertig (46ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP802.LBM": fertig (48ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP803.LBM": fertig (48ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP804.LBM": fertig (52ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP805.LBM": fertig (45ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP806.LBM": fertig (44ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP810.LBM": fertig (54ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP811.LBM": fertig (45ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP895.LBM": fertig (42ms)
lade "./share/s25rttr/S2/GFX/PICS/SETUP896.LBM": fertig (38ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/AFRICA.LBM": fertig (42ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/AUSTRA.LBM": fertig (42ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/EUROPE.LBM": fertig (48ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/GREEN.LBM": fertig (46ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/JAPAN.LBM": fertig (46ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/NAMERICA.LBM": fertig (46ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/NASIA.LBM": fertig (45ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/SAMERICA.LBM": fertig (47ms)
lade "./share/s25rttr/S2/GFX/PICS/MISSION/SASIA.LBM": fertig (50ms)
Starting samplerate conversionInput file: "./share/s25rttr/S2/DATA/SOUNDDAT/SOUND.LST"
Output file: "/Users/griflet/.s25rttr/LSTS/SOUND.LST"
using Script: "./share/s25rttr/RTTR/sound.scs"

...und dann hängt es.

Ideen?

---
SPQR


FloSoft am 22.02.2010 21:39 #4844

Großmeister
lass dir von einem windows oder linux-user die generierte SOUND.LST schicken, und leg sie dann nach

/Users/griflet/.s25rttr/LSTS/

evtl funzt es dann. Da scheint der samplerate-converter wohl hängen zu bleiben

---
mfg
Flo



FloSoft am 22.02.2010 21:40 #4845

Großmeister
Zitat von Pechente:
Ich finde es ja schön, dass an einer OSX Version gearbeitet wird, aber wieso wird damit so viel "Werbung" gemacht, wenn diese Version nach wie vor nicht funktioniert? Das Spiel hängt sich unter Snow Leopard beim Splashscreen auf. Das ist der exakt gleiche Fehler wie er von Anfang an bestand.

Ich verstehe auch nicht wieso die aktuellen Nightly Builds immer noch falsch zusammengestellt sind (Frameworks Ordner, nicht im MacOS Ordner, Unterordner fehlerhaft etc.).

das Problem ist: ich hab kein lauffähiges MacOS hier (hab keinen Mac) und kann das ganze nicht testen. Das es überhaupt "einigermaßen" funktioniert (nach etwas friemelarbeit) kann man als glücklichen umstand titulieren

---
mfg
Flo



Pechente am 05.03.2010 07:21 #4961


Habe dir diesbezüglich auch schonmal eine Mail geschrieben und eine vergleichbare Antwort erhalten ;) Nunja, OS X auf einem PC zu installieren ist in Deutschland vollkommen legal, da Apples EULA Formfehler hat. Snow Leopard kostet 25-29¤und im Internet findet man viele Möglichkeiten ein EFI zu simulieren. Ansonsten kann man es auch einfach in einer virtuellen Maschine laufen lassen, so hätte man zumindest mal die Möglichkeit ein OS X Release zu testen.


~waschbecken am 05.03.2010 18:58 #4965


moin,

ich habe auch mal versucht die aktuelle nightly und Mac OS 10.5.8 zum Laufen zu bringen.  Offenbar offenbar habe ich eine veraltete Library irgendeiner Art.  Das Programm startet nicht und stürzt ab.  Der Fehlerbericht sagt folgendes:

Code:
Process:         s25update [3376]
Path:            ./s25client.app/Contents/MacOS/share/s25rttr/RTTR/s25update
Identifier:      s25update
Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  bash [3372]

Interval Since Last Report:          4421394 sec
Crashes Since Last Report:           13
Per-App Interval Since Last Report:  0 sec
Per-App Crashes Since Last Report:   2

Date/Time:       2010-03-05 18:46:47.944 +0100
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  3B87BB48-117F-426F-AF6B-86E515927DD7

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread:  0

Dyld Error Message:
  Library not loaded: /usr/lib/libcurl.4.dylib
  Referenced from: /Applications/./s25client.app/Contents/MacOS/share/s25rttr/RTTR/s25update
  Reason: Incompatible library version: s25update requires version 6.0.0 or later, but libcurl.4.dylib provides version 5.0.0




Wenn jemand diesen Fehler zu interpretieren weiß und mir sagen kann, woher ich eine "libcurl.4.dylib" Version 6.0.0 oder neuer hernehmen kann wäre ich sehr dankbar...

Gruß,
Martin


FloSoft am 06.03.2010 10:16 #4972

Großmeister
hmm ich werds mal mit leopard testen, tiger kann ich leider nicht testen, das krieg ich hier nicht zum laufen, unter snow leopard gehts einwandfrei

---
mfg
Flo


Editiert von FloSoft am 06.03.2010 10:17

Pechente am 06.03.2010 15:41 #4975


Endlich eine Version, die unter OS X funktioniert. Vielen Dank! ;)

Ein Problem gibt es dennoch. Das Spiel funktioniert noch nicht "Out of the box". So wie das SDL Framework im Moment im Paket der .app liegt, kann das Spiel nicht darauf zurückgreifen und startet nicht. Wenn ich allerdings das SDL Framework in /Library/Frameworks packe, funktioniert alles.

Edit: Einfacher Weg das Problem zu beheben: Momentan befindet sich der SDL.framework-Ordner im Spieleverzeichnis in /Contents/MacOS/Frameworks/SDL.framework. Wenn man den Ordner nach /Contents/MacOS/Frameworks verschiebt, klappt auch alles perfekt :)

Edit 2: Ich habe außerdem keinen Sound. Das SDL_mixer.framework-Verzeichnis im Paket des Spiels ist vollkommen leer und es wird beim Start des Clients auch nichts runtergeladen. Ich habe das Framework einfach selbst dareingepackt und jetzt geht alles. Trotzdem sollte es ja eigentlich standardmäßig dabei sein ;)

Editiert von Pechente am 06.03.2010 16:26

FloSoft am 08.03.2010 21:03 #4994

Großmeister
ach ist das ein doppelt gemoppelter ordner? dann wird das natürlich geändert :)

[edit]
habs nun auch geändert
[/edit]

---
mfg
Flo


Editiert von FloSoft am 08.03.2010 21:06

internetzel am 13.03.2010 22:08 #5001


Hallo,

toll, dass es jetzt auch für PPC kompilierter nightly builds gibt!

Auf meinem PowerBook G4 unter Mac OS X 10.5.8 funktionieren sie allerdings leider nicht:
Mit einigen Fehlermeldungen bezüglich malloc stürzt s25client beim Starten ab. Die folgende ist die erste dieser Meldungen und die anderen sind ähnliche aber erfolgen beim Laden anderer Dateien:
"./share/s25rttr/S2/DATA/RESOURCE.DAT": s25client(17718,0xa03cb820) malloc: *** error for object 0xbb6ef0: incorrect checksum for freed object - object was probably modified after being freed.

Die folgenden Nightly Builds habe ich ausprobiert:
09.03.2010
25.02.2010

Ich hoffe, jemand weiß, was da vorgeht. Konnte durch Suchen im Internet nichts Brauchbares zu solchen Fehlermeldungen finden.

Gruß,
Tobias


FloSoft am 13.03.2010 22:15 #5003

Großmeister
Zitat von internetzel:
Hallo,

toll, dass es jetzt auch für PPC kompilierter nightly builds gibt!

Auf meinem PowerBook G4 unter Mac OS X 10.5.8 funktionieren sie allerdings leider nicht:
Mit einigen Fehlermeldungen bezüglich malloc stürzt s25client beim Starten ab. Die folgende ist die erste dieser Meldungen und die anderen sind ähnliche aber erfolgen beim Laden anderer Dateien:
"./share/s25rttr/S2/DATA/RESOURCE.DAT": s25client(17718,0xa03cb820) malloc: *** error for object 0xbb6ef0: incorrect checksum for freed object - object was probably modified after being freed.

Die folgenden Nightly Builds habe ich ausprobiert:
09.03.2010
25.02.2010

Ich hoffe, jemand weiß, was da vorgeht. Konnte durch Suchen im Internet nichts Brauchbares zu solchen Fehlermeldungen finden.

Gruß,
Tobias

naja ppc-build schön und gut, es kann gut sein das diese nicht funktionieren ;-) sind ungetestet mangels fehlendem ppc mac.

Wenn du mit einem Terminal mal mit

Code:

cd s25client.app/Contents/MacOS
gdb bin/s25client
r


das Programm im debugger startest, und sobald es crasht

Code:

bt


in der konsole eingibst, wüsste ich genauer wo es hakt.

---
mfg
Flo



internetzel am 15.03.2010 19:40 #5007


Hallo Flo,

Habe ein paar Mal s25client mit gdb gestartet. Der erste Fehler tritt immer beim Laden von Resource.dat auf, der Absturz erfolgt aber an verschiedenen Stellen und teilweise erst nach dem Laden aller Dateien (wobei bei vielen die bereits beschriebene Fehlermeldung ausgegeben wird). Gemeinsam ist aber allen Fehlern, dass sie immer in der (System-?)Routine "tiny_malloc_from_free_list()". Durch Suche bei Google kam heraus, dass vor allem auch beim Chromium-Projekt solche Fehler auftraten, aber keine Lösung dafür gefunden werden konnte; der Fehler trat dann einfach ab einer bestimmten Version fast nicht mehr auf, und. Hört sich nicht gut an für mich...

Im Folgenden zwei Beispiele, einmal ein gdb log und einmal der report von Apple Crash reporter:

GDB:
  1. Program received signal EXC_BAD_ACCESS, Could not access memory.
  2. Reason: KERN_INVALID_ADDRESS at address: 0x565657f0
  3. 0x927d6b20 in tiny_malloc_from_free_list ()
  4. (gdb) bt
  5. #0  0x927d6b20 in tiny_malloc_from_free_list ()
  6. #1  0x927d042c in szone_malloc ()
  7. #2  0x927d0310 in malloc_zone_malloc ()
  8. #3  0x927d0270 in malloc ()
  9. #4  0x95d300d0 in operator new ()
  10. #5  0x0015cbbc in ListDir ()
  11. #6  0x0016489c in Loader::LoadSounds ()
  12. #7  0x00162ff0 in Loader::LoadFilesAtStart ()
  13. #8  0x0011a084 in GameManager::StartMenu ()
  14. #9  0x0011a5e4 in GameManager::Start ()
  15. #10 0x001655d8 in SDL_main ()
  16. #11 0x000140c4 in -[SDLMain applicationDidFinishLaunching:] ()
  17. #12 0x95a8a688 in _nsnote_callback ()
  18. #13 0x9331243c in _CFXNotificationPostNotification ()
  19. #14 0x95a87dc4 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
  20. #15 0x904b0858 in -[NSApplication _postDidFinishNotification] ()
  21. #16 0x904b0770 in -[NSApplication _sendFinishLaunchingNotification] ()
  22. #17 0x90438114 in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
  23. #18 0x9043794c in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
  24. #19 0x95aab008 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
  25. #20 0x95aaaddc in _NSAppleEventManagerGenericHandler ()
  26. #21 0x961c0ce4 in aeDispatchAppleEvent ()
  27. #22 0x961c0bec in dispatchEventAndSendReply ()
  28. #23 0x961c09f0 in aeProcessAppleEvent ()
  29. #24 0x92b7a410 in AEProcessAppleEvent ()
  30. #25 0x90435478 in _DPSNextEvent ()
  31. #26 0x90434c00 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
  32. #27 0x9042e8a0 in -[NSApplication run] ()
  33. #28 0x00013e18 in CustomApplicationMain ()
  34. #29 0x00014438 in main ()


report:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000081818180
Crashed Thread:  0

Thread 0 Crashed:
0   libSystem.B.dylib                 0x927d6cf4 tiny_malloc_from_free_list + 548
1   libSystem.B.dylib                 0x927d0428 szone_malloc + 200
2   libSystem.B.dylib                 0x927d030c malloc_zone_malloc + 112
3   libSystem.B.dylib                 0x927d026c malloc + 64
4   libstdc++.6.dylib                 0x95d300cc operator new(unsigned long) + 112
5   s25client                         0x0006e528 glAllocator(unsigned short, unsigned short, libsiedler2::ArchivItem const*) + 2056
6   s25client                         0x0023f484 libsiedler2::loader::LoadType(unsigned short, __sFILE*, libsiedler2::ArchivItem_Palette const*, libsiedler2::ArchivItem**) + 548
7   s25client                         0x0023af90 libsiedler2::ArchivItem_Font::load(__sFILE*, libsiedler2::ArchivItem_Palette const*) + 224
8   s25client                         0x0023f44c libsiedler2::loader::LoadType(unsigned short, __sFILE*, libsiedler2::ArchivItem_Palette const*, libsiedler2::ArchivItem**) + 492
9   s25client                         0x00242ac0 libsiedler2::loader::LoadDATIDX(char const*, libsiedler2::ArchivItem_Palette const*, libsiedler2::ArchivInfo*) + 560
10  s25client                         0x00234800 libsiedler2::Load(char const*, libsiedler2::ArchivInfo*, libsiedler2::ArchivItem_Palette const*) + 528
11  s25client                         0x0015d594 Loader::LoadFile(char const*, libsiedler2::ArchivItem_Palette const*, libsiedler2::ArchivInfo*) + 308
12  s25client                         0x001617b0 Loader::LoadFile(char const*, libsiedler2::ArchivItem_Palette const*, bool) + 8448
13  s25client                         0x001627f0 Loader::LoadFilesFromArray(unsigned int, unsigned int const*, bool) + 3680
14  s25client                         0x00162fdc Loader::LoadFilesAtStart() + 44
15  s25client                         0x0011a080 GameManager::StartMenu() + 32
16  s25client                         0x0011a5e0 GameManager::Start() + 512
17  s25client                         0x001655d4 SDL_main + 900
18  s25client                         0x000140c0 -[SDLMain applicationDidFinishLaunching:] + 132
19  com.apple.Foundation              0x95a8a684 _nsnote_callback + 196
20  com.apple.CoreFoundation          0x93312438 _CFXNotificationPostNotification + 920
21  com.apple.Foundation              0x95a87dc0 -[NSNotificationCenter postNotificationName:object:userInfo:] + 88
22  com.apple.AppKit                  0x904b0854 -[NSApplication _postDidFinishNotification] + 108
23  com.apple.AppKit                  0x904b076c -[NSApplication _sendFinishLaunchingNotification] + 80
24  com.apple.AppKit                  0x90438110 -[NSApplication(NSAppleEventHandling) _handleAEOpen:] + 260
25  com.apple.AppKit                  0x90437948 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 88
26  com.apple.Foundation              0x95aab004 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 480
27  com.apple.Foundation              0x95aaadd8 _NSAppleEventManagerGenericHandler + 236
28  com.apple.AE                      0x961c0ce0 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned long, unsigned char*) + 164
29  com.apple.AE                      0x961c0be8 dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 40
30  com.apple.AE                      0x961c09ec aeProcessAppleEvent + 212
31  com.apple.HIToolbox               0x92b7a40c AEProcessAppleEvent + 52
32  com.apple.AppKit                  0x90435474 _DPSNextEvent + 1156
33  com.apple.AppKit                  0x90434bfc -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 112
34  com.apple.AppKit                  0x9042e89c -[NSApplication run] + 744
35  s25client                         0x00013e14 CustomApplicationMain + 564
36  s25client                         0x00014434 main + 372
37  s25client                         0x00012a6c _start + 744
38  s25client                         0x0001277c start + 44


Gruß,
Tobias

P.S.: Könntest du mal versuchen, das Ganze auch für 10.4+ zu kompilieren?


Shen Long am 16.03.2010 02:36 #5008


Probiers mal selber ^^
Glaube unser Flo hat nur Leopard (Welche Version das auch immer ist.)

---
mfg Shen Long
Tuxer mit Leib und Seele
__________________________
"Linux will nicht die Weltherrschaft, aber schön wärs schon." Linus Torvalds
PS: Sorry for my bad English


internetzel am 16.03.2010 07:05 #5009


Hallo Shen Long,

Sollte kein Problem sein; unter 10.6 sollte man problemlos auch für 10.4 kompilieren können. Über Xcode-SDKs stehen nämlich alle Systembibliotheken verschiedener Mac OS X-Versionen zur Verfügung. Im optimalen Falle ist das eine Sache von ein paar Klicks, für eine andere Version von Mac OS X zu kompilieren, deshalb meine Frage.
Wenn ich selber kompilieren möchte, müsste ich dann die Sourcen mit bazaar auschecken?

Gruß,
Tobias


griflet am 16.03.2010 09:42 #5010


ich glaube das problem hierbei ist, dass xcode das kann, RTTR jedoch nicht mit xcode kompiliert wird und das das eben nicht kann.

---
SPQR


Pechente am 16.03.2010 11:58 #5011


Würde es denn einen großen Umstand machen mit Xcode zu kompilieren? Die aktuellen Builds sind zwar schon ganz gut, aber lange noch nicht perfekt. Zum Beispiel startet das Spiel bei mir immer erst beim zweiten Versuch. Beim ersten Versuch gibt die Konsole nur

Code:
/tmp/rttr.command
e179163008:~ pechente$ /tmp/rttr.command
-bash: /tmp/rttr.command: No such file or directory
e179163008:~ pechente$


aus.


griflet am 16.03.2010 12:50 #5012


Das habe ich mir auch schon überlegt, leider kenne ich mich da nicht sonderlich gut aus. Der Vorteil wäre dann auch, wenn man es unter Xcode kompilierbar gemacht hat, dass man die wunderbaren anderen Werkzeuge von Apple zur Hand hätte, um die Performance des Spieles zu verbessern und es komfortabel auch für's iPhone und den iPod touch zu verarbeiten wäre (sofern der Prozessor des Gerätes das mitmacht...)

---
SPQR


Alex_H am 16.03.2010 13:25 #5013


Hmmm, theoretisch sollte das sogar automatisch gehen, hat aber nicht funktioniert bei mir ;-)

Aber im Prinzip is ein compilieren für 10.4 auch auf der Kommandozeile möglich, nachdem man ihm den SDK-Framework-Pfad ja sowieso per Hand einfüttern muss, wenn ich mich nicht irre - auf lange Sicht einfacher wärs aber mit XCode - zumal der auch immer schön richtige Bundles erzeugt...

Apropos compilieren: Hat's einer von euch geschafft, das unter 10.6 zu compilieren? - ich muss gestehen, ich hab die neuesten Versionen nicht probiert, aber hatte vorher einige Schwierigkeiten mit der 32-64-Bit-Geschichte unter 10.6...


Pechente am 16.03.2010 14:10 #5014


Zitat von griflet:
Das habe ich mir auch schon überlegt, leider kenne ich mich da nicht sonderlich gut aus. Der Vorteil wäre dann auch, wenn man es unter Xcode kompilierbar gemacht hat, dass man die wunderbaren anderen Werkzeuge von Apple zur Hand hätte, um die Performance des Spieles zu verbessern und es komfortabel auch für's iPhone und den iPod touch zu verarbeiten wäre (sofern der Prozessor des Gerätes das mitmacht...)


Naja, ein iPhone-Build ist wohl ausgeschlossen, da man ja Dateien des Originalspieles benötigt.


griflet am 16.03.2010 14:14 #5015


Zitat von Pechente:
Naja, ein iPhone-Build ist wohl ausgeschlossen, da man ja Dateien des Originalspieles benötigt.


Irgendwie könnte das gehen, es gibt ja auch Programme, mit denen man Dateien auf das iPhone/den iPod ziehen kann. Außerdem bezweifle ich eh, dass die heutigen iPod/iPhone-Generationen dem Prozessorhunger des Spieles gewachsen sind.

---
SPQR


internetzel am 18.03.2010 22:46 #5022


So, jetzt hab ichs unter 10.4 kompiliert.
Musste allerdings in gettext.cpp in Zeile 234 das nur für Win32 vorgesehene "const" aktivieren, da es sonst einen Fehler beim Kompilieren gibt, dass "const char**" nicht in "char**" konvertiert werden kann.

Was die Ausführung der bisherigen nightly builds unter 10.4 verhindert, ist letztendlich die Tatsache, dass libSDLmain.a gegen das 10.5-SDK gelinkt wurde. Wird sie gegen das 10.4u-SDK gelinkt, funktioniert s25client auch unter 10.4. Dies könnte auch während des Build automatisiert geschehen, mit SDLMain.m und SDLMain.h aus SDL_devel (statt der fertigen libSDLmain.a) im Ordner "macos".
Code:

gcc -c -o SDLMain.o SDLMain.m -I {PATH_TO_SDL_HEADERS} -isysroot {PATH_TO_SDK}
ar r libSDLMain.a SDLMain.o
ranlib libSDLMain.a

Außerdem ist offensichtlich SDL_mixer in den aktuellsten Versionen so gelinkt, dass unter 10.4 nicht dagegen gelinkt werden kann; der Linker findet die enthaltenen mikmod- und smpeg-Frameworks nicht. SDL_mixer 1.2.1x muss für 10.4 neu kompiliert oder aber die Binärdatei (per install_name_tool) verändert werden, wobei ich mich für das Letztere entschieden habe. SDL_mixer 1.2.8 funktioniert unter 10.4 ohne Probleme.


internetzel am 19.03.2010 06:54 #5024


Unter 10.4 tritt die Exception jetzt immer an derselben Stelle während des Ladens von s25client auf. Es folgen die Konsolenausgabe und der Apple Crash report.
output:
s25rttr_20100309/s25client.app/Contents/MacOS tousa$ bin/s25client
lade "/Users/tousa/.s25rttr/CONFIG.INI": fertig (0ms)
1 video drivers found!
2010-03-19 06:40:58.667 s25client[18295] invalid drawable
1 audio drivers found!
Failed loading glXSwapIntervalSGI: dlcompat: Symbol "_glXSwapIntervalSGI" not found
schreibe "/Users/tousa/.s25rttr/CONFIG.INI": fertig

Starte das Spiel
lade "./share/s25rttr/S2/GFX/PALETTE/PAL5.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL6.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL7.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI0.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI1.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI8.BBM": fertig (1ms)
lade "./share/s25rttr/RTTR/COLORS.ACT": fertig (20ms)
lade "./share/s25rttr/RTTR/LSTS/splash.bmp": fertig (202ms)
lade "./share/s25rttr/S2/DATA/RESOURCE.DAT": s25client(18295,0xa000ed88) malloc: *** error for object 0x1b68ef0: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug
s25client(18295,0xa000ed88) malloc: *** set a breakpoint in szone_error to debug
s25client(18295,0xa000ed88) malloc: *** error for object 0x1b6b750: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug
s25client(18295,0xa000ed88) malloc: *** set a breakpoint in szone_error to debug
s25client(18295,0xa000ed88) malloc: *** error for object 0x1b70fe0: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug
s25client(18295,0xa000ed88) malloc: *** set a breakpoint in szone_error to debug
s25client(18295,0xa000ed88) malloc: *** error for object 0x1b80350: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug
s25client(18295,0xa000ed88) malloc: *** set a breakpoint in szone_error to debug
fertig (26359ms)
Segmentation fault

log:
Date/Time:      2010-03-19 06:41:26.445 +0100
OS Version:     10.4.11 (Build 8S165)
Report Version: 4

Command: s25client
Path:    bin/s25client
Parent:  bash [6555]

Version: ??? (???)

PID:    18295
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_INVALID_ADDRESS (0x0001) at 0xaaaaaab2

Thread 0 Crashed:
0   libSystem.B.dylib             0x90003628 szone_malloc + 240
1   libSystem.B.dylib             0x90003200 malloc + 632
2   libstdc++.6.dylib             0x94c99350 operator new(unsigned long) + 116
3   libstdc++.6.dylib             0x94c99434 operator new[](unsigned long) + 16
4   s25client                     0x001ee21c libsiedler2::ArchivInfo::alloc(unsigned long) + 44 (ArchivInfo.cpp:120)
5   s25client                     0x001ee284 libsiedler2::ArchivInfo::ArchivInfo[not-in-charge](libsiedler2::ArchivInfo const&) + 68 (ArchivInfo.h:55)
6   s25client                     0x002227e8 std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> const&) + 88
7   s25client                     0x00222a4c std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> > >::insert_unique(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, libsiedler2::ArchivInfo> const&) + 316
8   s25client                     0x0012a510 Loader::LoadFile(char const*, libsiedler2::ArchivItem_Palette const*, bool) + 1344
9   s25client                     0x0012d110 Loader::LoadFilesFromArray(unsigned, unsigned const*, bool) + 3680
10  s25client                     0x0012d8f0 Loader::LoadFilesAtStart() + 48
11  s25client                     0x000f5794 GameManager::StartMenu() + 36 (GameManager.cpp:247)
12  s25client                     0x000f5cf4 GameManager::Start() + 516 (GameManager.cpp:122)
13  s25client                     0x0012eec8 SDL_main + 904 (main.cpp:184)
14  s25client                     0x001eda9c -[SDLMain applicationDidFinishLaunching:] + 136
15  com.apple.Foundation          0x92bf5e1c _nsnote_callback + 180
16  com.apple.CoreFoundation      0x90805ec0 __CFXNotificationPost + 368
17  com.apple.CoreFoundation      0x907fdf20 _CFXNotificationPostNotification + 684
18  com.apple.Foundation          0x92be0224 -[NSNotificationCenter postNotificationName:object:userInfo:] + 92
19  com.apple.AppKit              0x937a3be8 -[NSApplication _postDidFinishNotification] + 112
20  com.apple.AppKit              0x937a3ad4 -[NSApplication _sendFinishLaunchingNotification] + 92
21  com.apple.AppKit              0x937a361c -[NSApplication(NSAppleEventHandling) _handleAEOpen:] + 264
22  com.apple.AppKit              0x937a31c4 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 92
23  com.apple.Foundation          0x92bf6e28 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 380
24  com.apple.Foundation          0x92bf6c88 _NSAppleEventManagerGenericHandler + 92
25  com.apple.AE                  0x91500960 aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned long, unsigned char*) + 208
26  com.apple.AE                  0x915007fc dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 44
27  com.apple.AE                  0x91500654 aeProcessAppleEvent + 284
28  com.apple.HIToolbox           0x932bf2e0 AEProcessAppleEvent + 60
29  com.apple.AppKit              0x937a190c _DPSNextEvent + 856
30  com.apple.AppKit              0x937a13f8 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 116
31  com.apple.AppKit              0x9379d93c -[NSApplication run] + 472
32  s25client                     0x001ed7f0 CustomApplicationMain + 568
33  s25client                     0x001ede10 main + 376
34  s25client                     0x000043cc _start + 760
35  s25client                     0x000040d0 start + 48

Habe das Ganze übrigens als universal binary (ppc und i386), gelinkt gegen das 10.5-SDK, SDL 1.2.14 und SDL_mixer 1.2.11, erstellen lassen. Meine Maschine die mit 10.4.11 läuft unerstützt übrigens kein hardwarebeschleunigtes OpenGL - ich kann damit also nur auf prinzipielle Lauffähigkeit unter 10.4 testen.

Gruß,
Tobias


Pechente am 21.03.2010 18:33 #5030


Was mir noch negativ auffällt ist, dass das Spiel eigentlich gar nicht auf einem MacBook spielbar ist, wenn man keine Maus angeschlossen hat, da unter einer bestimmten Konfiguration kein "Right-Click-Drag" möglich ist um sich auf der Karte zu bewegen. Ich weiß, dass das mit den Pfeiltasten auch geht, aber das finde ich einfach nicht flüssig genug und manchmal zu langsam.

Ein einfacher Weg dieses Problem zu beheben wäre, dass ihr die Bewegung durch die Karte auch mittels Scrolling erlaubt. Apples Eingabegeräte wie die Mäuse und die Trackpads haben schon seit ein paar Generationen gar kein Problem damit nach rechts und links genau so gut zu scrollen wie nach oben und unten. Es wäre daher praktisch die Bewegung durch die Karte auch per Scrolling zu erlauben (bitte auch die Option dies zu invertieren). Ich bin kein Profi im Programmieren, aber ich denke dieses Feature dürfte nicht allzu schwer zu integrieren sein :)


Pechente am 22.03.2010 13:08 #5032


Hab den Wunsch auch mal im Bugtracker hinzugefügt (#543779), ich hoffe das kann schnell umgesetzt werden :)


internetzel am 24.03.2010 19:37 #5040


Hallo Flo,

hier noch einmal ein output von gdb, wo dann auch die Variablenwerte teilweise sichtbar sind. Ich hoffe, du findest mal Zeit, das zu untersuchen. Der Absturz scheint im Konstruktor der Klassen für die Resourcen aufzutreten!?
output:
Starte das Spiel
lade "./share/s25rttr/S2/GFX/PALETTE/PAL5.BBM": fertig (4ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL6.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PAL7.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI0.BBM": fertig (1ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI1.BBM": fertig (2ms)
lade "./share/s25rttr/S2/GFX/PALETTE/PALETTI8.BBM": fertig (1ms)
lade "./share/s25rttr/RTTR/COLORS.ACT": fertig (1ms)
lade "./share/s25rttr/RTTR/LSTS/splash.bmp": fertig (179ms)
lade "./share/s25rttr/S2/DATA/RESOURCE.DAT":
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xaaaaaab2
0x90003628 in szone_malloc ()
(gdb) bt
#0  0x90003628 in szone_malloc ()
#1  0x90003200 in malloc ()
#2  0x94c99350 in operator new ()
#3  0x94c99434 in operator new[] ()
#4  0x001fdb74 in libsiedler2::baseArchivItem_Bitmap_Player::load (this=0x1966cd0, file=0xa000db8c, palette=0x20a1200) at /Volumes/Programme/s25rttr/libsiedler2/src/ArchivItem_Bitmap_Player.cpp:184
#5  0x0020c16c in libsiedler2::loader::LoadType (bobtype=4, file=0xa000db8c, palette=0x20a1200, item=0x20a7888) at /Volumes/Programme/s25rttr/libsiedler2/src/LoadType.cpp:90
#6  0x001f8484 in libsiedler2::ArchivItem_Font::load (this=0x20a7400, file=0xa000db8c, palette=0x20a1200) at /Volumes/Programme/s25rttr/libsiedler2/src/ArchivItem_Font.cpp:120
#7  0x0020c0f0 in libsiedler2::loader::LoadType (bobtype=3, file=0xa000db8c, palette=0x20a1200, item=0x1966840) at /Volumes/Programme/s25rttr/libsiedler2/src/LoadType.cpp:83
#8  0x0020ca44 in libsiedler2::loader::LoadDATIDX (file=<value temporarily unavailable, due to optimizations>, palette=0x20a1200, items=0x19667b4) at /Volumes/Programme/s25rttr/libsiedler2/src/LoadDATIDX.cpp:125
#9  0x001f94a4 in libsiedler2::Load (file=0x196675c "./share/s25rttr/S2/DATA/RESOURCE.DAT", items=0x19667b4, palette=0x20a1200) at /Volumes/Programme/s25rttr/libsiedler2/src/libsiedler2.cpp:320
#10 0x00127c78 in Loader::LoadFile (this=<value temporarily unavailable, due to optimizations>, pfad=<value temporarily unavailable, due to optimizations>, palette=0x20a1200, archiv=0x19667b4) at /Volumes/Programme/s25rttr/src/Loader.cpp:571
#11 0x0012be94 in Loader::LoadFile (this=0x5391f8, pfad=0x213c38 "./share/s25rttr/S2/DATA/RESOURCE.DAT", palette=0x20a1200, load_always=<value temporarily unavailable, due to optimizations>) at /Volumes/Programme/s25rttr/src/Loader.cpp:527
#12 0x0012ced0 in Loader::LoadFilesFromArray (this=0x5391f8, files_count=33, files=<value temporarily unavailable, due to optimizations>, load_always=true) at /Volumes/Programme/s25rttr/src/Loader.cpp:140
#13 0x0012d6b0 in Loader::LoadFilesAtStart (this=0x5391f8) at /Volumes/Programme/s25rttr/src/Loader.cpp:86
#14 0x000f5554 in GameManager::StartMenu (this=<value temporarily unavailable, due to optimizations>) at /Volumes/Programme/s25rttr/src/GameManager.cpp:247
#15 0x000f5ab4 in GameManager::Start (this=0x59ad50) at /Volumes/Programme/s25rttr/src/GameManager.cpp:122
#16 0x0012ec88 in SDL_main (argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>) at /Volumes/Programme/s25rttr/src/main.cpp:184
#17 0x001ed85c in -[SDLMain applicationDidFinishLaunching:] () at bits/basic_string.h:227
#18 0x92bf5e1c in _nsnote_callback ()
#19 0x90805ec0 in __CFXNotificationPost ()
#20 0x907fdf20 in _CFXNotificationPostNotification ()
#21 0x92be0224 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#22 0x937a3be8 in -[NSApplication _postDidFinishNotification] ()
#23 0x937a3ad4 in -[NSApplication _sendFinishLaunchingNotification] ()
#24 0x937a361c in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
#25 0x937a31c4 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#26 0x92bf6e28 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#27 0x92bf6c88 in _NSAppleEventManagerGenericHandler ()
#28 0x91500960 in aeDispatchAppleEvent ()
#29 0x915007fc in dispatchEventAndSendReply ()
#30 0x91500654 in aeProcessAppleEvent ()
#31 0x932bf2e0 in AEProcessAppleEvent ()
#32 0x937a190c in _DPSNextEvent ()
#33 0x937a13f8 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#34 0x9379d93c in -[NSApplication run] ()
#35 0x001ed5b0 in CustomApplicationMain () at bits/basic_string.h:227
#36 0x001edbd0 in main () at bits/basic_string.h:227


Gruß,
Tobias


FloSoft am 24.03.2010 20:12 #5041

Großmeister
meld dich am besten mal im chat bei mir, dann können wir drüber genauer sprechen.

---
mfg
Flo



~karolherbst am 23.04.2010 19:26 #5229


naja, ich habe mich auch irgendwann mal damit beschäftigt und festgestellt, dass das am Font-Management liegt. Lädt man keine Fonts startet das Spiel wunderbar und man ist im Hauptmenü. Leider
stürzt das Spiel ab, sobald man ein Spiel starten will oder so.

Ich werde mich wahrscheinlich auch etwas hier bemühen, da ich die letzte Zeit mich in C++ schlau gemacht habe und einen PPC Mac besitze. Was mich jedoch stört (oder ich bekomm es einfach nicht hin)
ist, dass ich es nicht hinbekomme die Source zu aktualisieren, wenn ich s25rttr kompiliert habe, habe nämlich keine Lust jedesmal über ne halbe Stunde zu warten bis das Ding fertig kompiliert ist.

Grüße

karolherbst


FloSoft am 25.04.2010 19:33 #5250

Großmeister
Zitat von karolherbst:

Ich werde mich wahrscheinlich auch etwas hier bemühen, da ich die letzte Zeit mich in C++ schlau gemacht habe und einen PPC Mac besitze. Was mich jedoch stört (oder ich bekomm es einfach nicht hin)
ist, dass ich es nicht hinbekomme die Source zu aktualisieren, wenn ich s25rttr kompiliert habe, habe nämlich keine Lust jedesmal über ne halbe Stunde zu warten bis das Ding fertig kompiliert ist.


dann nimm ccache ;-)

---
mfg
Flo



Pechente am 23.10.2010 13:49 #6085


Macht ihr die Macversion eigentlich auch noch etwas mehr Mac-like? Fenster in Siedler zu schließen mit CMD+W wäre toll. Außerdem
funktioniert der Fenstermodus bei mir nicht. Egal was ich auswähle, sobald ich das Spiel im Fenster laufen lasse hat es immer eine
Auflösung von 800x600, außerdem führt ein Ändern der Grafiksettings zu folgendem Bug:
http://www.abload.de/img/bildschirmfoto2010-10-1too.png. Eine Exposéintegration wäre auch schön ;)

Nichts davon muss dringend behoben werden, aber zumindest bei Major-Builds solltet ihr sowas im Griff haben :)


griflet am 23.10.2010 18:53 #6090


Das mit dem Schließen der Fenster dürfte wohl nicht möglich sein, da die Fenster im Spiel (wenn du die meinst) keine Fenster der OS X-Oberfläche sind, sondern programminterne
Fenster. Außerdem lassen die sich doch recht schnell mit control+Mausklick (also der "rechten Maustaste") schließen...

---
SPQR


Pechente am 23.10.2010 19:05 #6092


Und Programmintern lassen sich keine mehrtastigen Shortcuts festlegen, oder wie? Naja, wichtiger wär mir auch irgendein Weg das
Spiel zu minimieren, somit ist mir die Exposéintegration wichtiger :)


griflet am 23.10.2010 19:08 #6093


doch, lassen sich bestimmt, nur eben nicht command+w!

zu dem graphikproblem fällt mir nur ein, dass du vielleicht mal sdl updaten könntest, wenn du das noch nicht gemacht haben solltest.

---
SPQR


Pechente am 23.10.2010 19:32 #6094


SDL hab ich schon geupdated, das hilft leider nicht :)

Warum lässt sich CMD+W nicht festlegen? Soweit ich sehen kann, sind alle Mac OS X Shortcuts in RTTR doch sowieso "ausgehebelt".
Beispiel: Ich mach das Chatfenster auf, drücke CMD+W und im Chat steht "W". Genau so ist es mit CMD+Q, was ja eigentlich jedes
Programm beenden sollte.


ozzyrocks am 02.11.2010 02:11 #6141

tajmahal
Was genau ist das Problem mit dem Scrollen beim MacBook? Ich benutze, wenn ich keine Maus angeschlossen habe, den ganz normalen Zwei-Finger-
Rechtsklick und halte dann die Maustaste (mit dem Daumen). Dann kann ich wahlweise mit einem oder zwei Fingern scrollen. Nichtsdestotrotz wäre es
natürlich schön, wenn man einfach auch per Scrollfunktion der Maus / des Trackpads scrollen könnte.

CMD+Q sollte sich eigentlich irgendwie mittels SDL abfangen und an das Spiel weiterreichen lassen. Das sollte dann dort einen "Wollen Sie das Spiel
wirklich komplett beenden? (Nicht ins Hauptmenü, sondern zum OS.)"-Dialog oder so in der Art aufrufen.


ozzyrocks am 02.11.2010 22:47 #6145

tajmahal
Was genau ist das Problem mit dem Scrollen beim MacBook? Ich benutze, wenn ich keine Maus angeschlossen habe, den ganz normalen Zwei-Finger-
Rechtsklick und halte dann die Maustaste (mit dem Daumen). Dann kann ich wahlweise mit einem oder zwei Fingern scrollen. Nichtsdestotrotz wäre es
natürlich schön, wenn man einfach auch per Scrollfunktion der Maus / des Trackpads scrollen könnte.

CMD+Q sollte sich eigentlich irgendwie mittels SDL abfangen und an das Spiel weiterreichen lassen. Das sollte dann dort einen "Wollen Sie das Spiel
wirklich komplett beenden? (Nicht ins Hauptmenü, sondern zum OS.)"-Dialog oder so in der Art aufrufen.


Pechente am 25.02.2011 19:50 #6869


Wird die Mac-Version eigtl getestet? Es gibt viele nervige Bugs, z.B. kann ich immer noch nicht die Fenstergröße verstellen ohne dass das Menü
falsch gerendert wird, versuche ich im Spiel die Fenstergröße zu ändern, schmiert das Programm völlig ab…


FloSoft am 26.02.2011 13:29 #6881

Großmeister
hi, naja - die mac version wird nicht getestet, da mir kein mac zur verfügung steht, wir hoffen einfach das sich die version genauso verhält wie die linux bzw windows version.

---
mfg
Flo



Pechente am 26.02.2011 20:14 #6883


Warum installierst du nicht einfach Snow Leopard in ner virtuellen Maschine? Das kostet nur 25€ und lässt sich in ner VM völlig legal installieren.


NastX am 02.03.2011 14:27 #6884


Virtuelle Maschine heißt ja auch nicht dass man da Grafikbeschleunigung hat - die dieses Spiel dringend benötigt^^
Außerdem erstmal wollen die 25€ auszugeben. Allein so um damit was zu testen finde ich das n bissl teuer. Viel
sinnvoller würde ich das finden, wenn ein Mac User das Maintaining annimmt.

---
>> Du programmierst doch auch Perl, wie wärs denn mit einem
>> Verbesserungsvorschlag (kürzer, speicherschonender, gleiche
>> Funktionalität, ...)?

Kein Perl.


Pechente am 03.03.2011 00:34 #6891


Der muss aber erstmal gefunden werden ;) Ich würds ja gerne tun, hab allerdings absolut keine Ahnung von sowas.

Ich hab evtl ne Snow Leopard Lizenz übrig, würde glaub ich für mein Anliegen mehr bringen als ne "normale" Spende :D Mal sehen ob ich die
hergeben kann :P


FloSoft am 04.03.2011 11:55 #6900

Großmeister
naja das Problem ist eigentlich:

MacOS-X auf nicht Apple-Hardware ist laut AGBs von Apple nicht erlaubt (...)
d.h auf VMWare darf das eigentlich nicht verwendet werden.

Weiterhin fehlt da drin dann wirklich die Grafikbeschleunigung um vernünftig testen zu können.
Außerdem braucht man natürlich dafür auch Zeit ;-)

Ansonsten: ich denke das es nicht so problematisch ist mit dem "maintainen" - wenn du alle Bugs, die dir in der MacOS-Variante auffallen immer schön in den Bugtracker einträgst, sollte das eig schon behoben werden.

Schließlich gibt es ja Varianten *hust* MacOSX mit Grafikbeschleunigung auch auf nicht Apple-Hardware zu benutzen.

---
mfg
Flo



~MrWiggles am 05.03.2011 08:31 #6905


Die 25 € Preis für Leopard, ist nur ein Upgrade-Preis von der OSX Version vor Leopard. Leopard selbst noch
etwas
kosten 100 USD.

Bitte entschuldigen Sie die Sprache unbeholfen in diesem Beitrag, wie es war aus dem Englischen ins Deutsche
übersetzt, mit Google Translate.


Pechente am 06.03.2011 14:30 #6930


Apples EULA hat in Deutschland keine Gültigkeit, du darfst das OS installieren wo du willst, solange du nichts an der Software veränderst. Das
macht das Aufsetzen eines Hackintosh etwas schwieriger, aber in ner virtuellen Maschine hat man in der Regel keine Probleme, außer eben
technische, z.B wie du sagtest mit der Grafikbeschleunigung.

Ja, laut Apple Website kostet 29€ die Upgradeversion, allerdings gibt es keine Vollversion (nur Familylizenz) und auf der Packung steht auch
nichts davon, dass es sich nur um ein Upgrade handelt und auch softwareseitig erhält man eine Vollversion. Somit hat man für 29€ sowohl
rechtlich als auch technisch eine Vollversion ;)


~Dan am 23.10.2011 12:26 #8777


Zitat von FloSoft:

hi, naja - die mac version wird nicht getestet, da mir kein mac zur verfügung steht, wir hoffen einfach das sich die version genauso verhält wie die linux
bzw windows version.


Hi FloSoft

genial was ihr mit RTTR erreicht habt. bin als alter S2 Fan auf euch aufmerksam geworden und bin begeistert von RTTR.
Leider nutze ich ein Mac book Pro mit Mac OS Lion und habe auch das Problem, dass ich das Spielfenster nicht vergrößern kann. Es führt zum direkten
Spielabsturz und das Spiel wird geschlossen.
Somit ist es am mac leider kaum spielbar!

Habt ihr einen Tip oder Mitstreiter, der sich dem mac problem annehmen kann?

Wäre klasse. Besten Dank
Daniel


Shen Long am 24.10.2011 01:43 #8780


Ich bin zwar auch kein Macler, aber zur Übergangszeit wäre es evtl hilfreich die Config-Datei zu bearbeiten. Ich
meinedie wurde hier im Forum irgendwo schonmal lokalisiert.

---
mfg Shen Long
Tuxer mit Leib und Seele
__________________________
"Linux will nicht die Weltherrschaft, aber schön wärs schon." Linus Torvalds
PS: Sorry for my bad English


internetzel am 02.02.2012 23:46 #9475


Habe nun das Spiel unter Mac OS X PPC zum Laufen gebracht!
Siehe dazu folgenden Bug-Eintrag:
https://bugs.launchpad.net/s25rttr/+bug/912427

Die Probleme mit PPC waren zunächst einmal, weil nicht überall korrekt auf Endianness geachtet wurde (PowerPC
arbeitet Big Endian, Intel arbeitet Little Endian).

Ich hoffe, mein Patch wird bald ins Repository übernommen.


Spike am 02.02.2012 23:49 #9476

Im Ruhestand
coole sache, hoffe ich auch!

---



NastX am 03.02.2012 17:29 #9477


Joar der Patch macht nun leider bloß spielen unter Windows und Linux unmöglich xD

---
>> Du programmierst doch auch Perl, wie wärs denn mit einem
>> Verbesserungsvorschlag (kürzer, speicherschonender, gleiche
>> Funktionalität, ...)?

Kein Perl.


internetzel am 03.02.2012 18:01 #9479


Vermutlich liegt es nicht am Betriebssystem, sondern am CPU-Typ: unter PowerPC-Linux würde es vermutlich
funktionieren.

Ich kann leider nur mit PowerPC-CPU (Big-Endian) testen - jemand mit Little-Endian-CPU (z.B. x86) muss es nun
dort wieder zum Laufen bringen, danach kann ich testen, ob es bei mir auch noch läuft.


internetzel am 05.02.2012 10:44 #9484


Super, jetzt läuft die nightly auch auf Mac OS X PowerPC - aber ob es nach den ganzen Jahren überhaupt noch
andere außer mit gibt, die RttR noch auf dieser Plattform spielen?


FloSoft am 05.02.2012 11:14 #9486

Großmeister
vermutlich gibt es nicht mehr viele mit einem g3 oder g4 mac :/ aber ich lass den support nun mal aktiv (die apple-universal enthält nun auch den ppc-part)

---
mfg
Flo



griflet am 05.02.2012 15:23 #9487


Zitat von FloSoft:

vermutlich gibt es nicht mehr viele mit einem g3 oder g4 mac :/ aber ich lass den support nun mal aktiv (die apple-universal enthält nun auch den ppc-part)


Das würde ich nicht sagen. Die Halbwertszeit von Macs ist bedeutend länger als die von PCs.

---
SPQR


FloSoft am 05.02.2012 16:24 #9488

Großmeister
joa nur die einstellung der user stimmt meist nicht mit der halbwertszeit überein - die meisten appleianer holen sich halt immer das neuste vom neuen :)

---
mfg
Flo



griflet am 05.02.2012 17:10 #9489


das sind auch nur die, die sich in den vergangenen fünf jahren einen mac angeschafft haben, um "in" zu sein. das sind mitläufer, keine überzeugten apple-user ;)

---
SPQR


FloSoft am 05.02.2012 20:10 #9490

Großmeister
das ist nur leider die mehrzahl der user :/

---
mfg
Flo



Pechente am 21.03.2013 17:50 #11211


Leider funktioniert die OS X Version seit einigen Nightlys nicht mehr und das schon seit mehreren Monaten. Hier ist ein Video des auftretenden
Grafikfehlers:

http://youtu.be/v7s99dnFXeo

Als ich den Bug zuerst bemerkte, dachte ich dass mein aufgesetzter Hackintosh vermutlich einfach noch ein paar Grafikprobleme hätte, die ich
noch nicht aus dem Weg räumen konnte. Mittlerweile weiß ich aber, dass meine Grafiktreiber stabil funktionieren und habe den gleichen Bug
auch auf einem "richtigen" Mac exakt so reproduzieren können. Das Problem scheint also an der Plattform zu hängen und nicht der
verwendeten Grafikkarte / Treiber.

Edit: Ok, falls jemand das gleiche Problem hat, hift eine komplette Reinstallation des Spieles. Irgendwie sind beim Umzug des Spieles von
einem
anderen System die Siedler 2 Daten beschädigt worden und bei meiner zweiten Testmaschine hab ich die Daten gleich mitgenommen. Eine
komplette Neuinstallation hat das Problem aber wieder behoben.

Editiert von Pechente am 21.03.2013 18:05

griflet am 21.03.2013 18:37 #11212


Meine Nightlies funktionierten bisher immer prima, bis auf den Sound, der bei dir zu funktionieren scheint... Komisch! Ich muss da bei Gelegenheit mal nachforschen, an was es liegen
könnte – vielleicht auch an den S2-Dateien.

---
SPQR


Pechente am 21.03.2013 21:37 #11213


Meinen Edit nicht mehr gelesen? :D Es waren in der Tat die korrupten S2-Files.


griflet am 21.03.2013 21:51 #11214


Doch doch. Mir ist bei deinem Video nur aufgefallen, dass bei dir der Ton wunderbar funktioniert, was bei mit nicht der Fall ist.

---
SPQR




Feel free to post in English!

Antwort schreiben

Username:
Security code:
Text:

   
  Convert smilies like :), ;) etc. into small graphics?
  Convert WWW-addresses into clickable links?
  Soll Boardcode in ihrer Nachricht aktiviert werden?