Paintball 2 forgatás OSX -en

 ( Ashyw | 2007. november 20., kedd - 16:27 )

Van ez a játék:
http://digitalpaint.planetquake.gamespy.com/news.php

Quake 2 engines paintball.

Van Linux/Windows x86 bináris, de nekem meg OSX -em van, ráadásul PPC gépen.
Nem baj, leforgatom. Előbb-utóbb csak sikerül...:)
Szóval letöltöttem a forrást, kicsomagoltam. Gondoltam belenézek a makefile -ba:


# Check OS type.
OSTYPE := $(shell uname -s)

# This nice line comes from the linux kernel makefile
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)

ifneq ($(OSTYPE),Linux)
ifneq ($(OSTYPE),FreeBSD)
$(error OS $(OSTYPE) is currently not supported)
endif
endif

ifneq ($(ARCH),x86_64)
ifneq ($(ARCH),i386)
ifneq ($(ARCH),ppc)
$(error arch $(ARCH) is currently not supported)
endif
endif
endif
[...]

Hát ez így nem lessz jó, gondoltam, darwin nem támogatott, akkor (teljesen spontán jött:D, mert az óvodában hallottam, hogy az osxben is bsd vér folyik):


# Check OS type.
OSTYPE :=FreeBSD

# This nice line comes from the linux kernel makefile
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)

ifneq ($(OSTYPE),Linux)
ifneq ($(OSTYPE),FreeBSD)
$(error OS $(OSTYPE) is currently not supported)
endif
endif

ifneq ($(ARCH),x86_64)
ifneq ($(ARCH),i386)
ifneq ($(ARCH),ppc)
ifneq ($(ARCH),Power Macintosh)
$(error arch $(ARCH) is currently not supported)
endif
endif
endif
endif

rendben, cd oda, make.


molnar-gyulas-mac-mini-2:~/Desktop/paintball2 baa$ make

Set to YES or NO at the top of this file the possible options to build by the makefile.
By default, it will build paintball2 and glx renderer.

Possible targets:

>> Add VERBOSE=YES to a verbose compilation output, defaults to NO
>> make release
>> make debug
>> make install (paintball2 home dir).
>> make install_root (required when was built with DATADIR/LIBDIR
options enabled, you must gain root privileges).
>> make clean (clean objects).
>> make clean_bin (clean executables).
>> make distclean (clean objects, executables and modified files).
>> make bz2 (create a tar.bz2 package with the full release distribution).

hát akkor


molnar-gyulas-mac-mini-2:~/Desktop/paintball2 baa$ sudo make install
Copying files to your home dir
......
[...]
......
Done

Jaj ne, gondoltam, akkor most mindent behányt a home mappámba...? Az mire jó? Hm... Akkor


molnar-gyulas-mac-mini-2:~/Desktop/paintball2 baa$ make release
make: *** No rule to make target `relase'. Stop.

Google azt mondja, hogy ez a make relase meg valami freebsd specifikus dolog... Mindegy, nem értek hozzá (gondolom látszik:))

Szóval a kérdés az lenne, hogy mégis hogyan kezdjek hozzá akkor ehhez az egészhez?
Tudom, hogy le leszek szólva, de ezt már tényleg csak végső elkeseredésemben "csináltam össze"...

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Virtuális paintball... beszarok! :-D
Nem mintha a paintball már nem eleve egy virtualizáció volna... :-D

Ave, Saabi.
ps: sajnos a fordításhoz nem tudok hozzászólni.

elsőre a szabványos, q2 adatszerkezetére jellemző felépítést látok az adatcsomagokban. ezt esetleg egy jake2 nem nyelné le? tudniillik azt átadnád egy java értelmezőnek és csá. nem kéne fordítanod semmit sem, az egész úgy platformfüggetlen ahogy van.
--
senki földjén, senki fia

Nem, nem úgy néz ki, itt a mapok .bsp kiterjesztésben vannak, ennek meg .pak kell, a q2 és a paintball2 forrásainak könyvtárszerkezete is csak részben hasonló...:'(

erről beszélek, ha kibontasz egy pak-ot akkor ezt kapod eredményül.

--
senki földjén, senki fia

make release -t elirtad

az ARCH egyebkent lehet,hogy maskor is elokerul (pl ifdef) ezert lehet hogy jobb volna ppc-re forceolni

Köszi. Na forceoltam, így már csinál valamit, nemsoká' jelentkezem:)

Hát...


molnar-gyulas-mac-mini-2:~/Desktop/paintball2 baa$ sudo make release
make targets BUILDDIR=build_release CFLAGS="-I/usr/local/include -I/usr/X11R6/include -Dstricmp=strcasecmp -D_inline= -DSleep=usleep -DGAME_NAME='\"game.so\"' -DPAINTBALL2_VERSION='\"2.0\"' -DBUILD_VERSION='\"17\"' -Wno-pointer-sign -D_THREAD_SAFE -DC_ONLY -DC_ONLY -O2 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
cc -I/usr/local/include -I/usr/X11R6/include -Dstricmp=strcasecmp -D_inline= -DSleep=usleep -DGAME_NAME='"game.so"' -DPAINTBALL2_VERSION='"2.0"' -DBUILD_VERSION='"17"' -Wno-pointer-sign -D_THREAD_SAFE -DC_ONLY -DC_ONLY -O2 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations -o build_release/a3d/q2a3d.o -c a3d/q2a3d.c
In file included from a3d/../client/sound.h:21,
from a3d/../client/client.h:36,
from a3d/q2a3d.c:1:
a3d/../client/../a3d/a3d.h:27:21: error: Windows.h: No such file or directory
In file included from a3d/../client/sound.h:21,
from a3d/../client/client.h:36,
from a3d/q2a3d.c:1:
a3d/../client/../a3d/a3d.h:46: error: parse error before 'HINSTANCE'
a3d/../client/../a3d/a3d.h:46: warning: no semicolon at end of struct or union
a3d/../client/../a3d/a3d.h:49: warning: data definition has no type or storage class
a3d/../client/../a3d/a3d.h:51: error: parse error before 'a3d'
a3d/../client/../a3d/a3d.h:51: warning: data definition has no type or storage class
a3d/q2a3d.c:8: error: parse error before 'a3d'
a3d/q2a3d.c:8: warning: data definition has no type or storage class
a3d/q2a3d.c: In function 'S_Q2A3DPCMStream':
a3d/q2a3d.c:12: error: request for member 'A3D_PCMStream' in something not a structure or union
a3d/q2a3d.c: In function 'S_Q2A3DCloseLibrary':
a3d/q2a3d.c:16: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:21: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:23: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:25: error: request for member 'A3D_OggStreamStart' in something not a structure or union
a3d/q2a3d.c:26: error: request for member 'A3D_OggStreamStop' in something not a structure or union
a3d/q2a3d.c:27: error: request for member 'A3D_PCMStream' in something not a structure or union
a3d/q2a3d.c:28: error: request for member 'A3D_Update' in something not a structure or union
a3d/q2a3d.c:29: error: request for member 'Init_A3D' in something not a structure or union
a3d/q2a3d.c:30: error: request for member 'A3D_Shutdown' in something not a structure or union
a3d/q2a3d.c:31: error: request for member 'A3D_cachefile' in something not a structure or union
a3d/q2a3d.c:32: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:33: error: request for member 'A3D_UpdateSound' in something not a structure or union
a3d/q2a3d.c:34: error: request for member 'A3D_StopSound' in something not a structure or union
a3d/q2a3d.c:35: error: request for member 'A3D_SetEnv' in something not a structure or union
a3d/q2a3d.c: In function 'S_Q2A3DInit':
a3d/q2a3d.c:48: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:50: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:52: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:68: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:83: error: request for member 'A3D_OggStreamStart' in something not a structure or union
a3d/q2a3d.c:83: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:84: error: request for member 'A3D_OggStreamStop' in something not a structure or union
a3d/q2a3d.c:84: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:85: error: request for member 'A3D_PCMStream' in something not a structure or union
a3d/q2a3d.c:85: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:86: error: request for member 'A3D_Update' in something not a structure or union
a3d/q2a3d.c:86: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:87: error: request for member 'Init_A3D' in something not a structure or union
a3d/q2a3d.c:87: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:88: error: request for member 'A3D_Shutdown' in something not a structure or union
a3d/q2a3d.c:88: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:89: error: request for member 'A3D_cachefile' in something not a structure or union
a3d/q2a3d.c:89: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:90: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:90: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:91: error: request for member 'A3D_UpdateSound' in something not a structure or union
a3d/q2a3d.c:91: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:92: error: request for member 'A3D_StopSound' in something not a structure or union
a3d/q2a3d.c:92: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:93: error: request for member 'A3D_SetEnv' in something not a structure or union
a3d/q2a3d.c:93: error: request for member 'reflib' in something not a structure or union
a3d/q2a3d.c:94: error: request for member 'A3D_OggStreamStart' in something not a structure or union
a3d/q2a3d.c:94: error: request for member 'A3D_OggStreamStop' in something not a structure or union
a3d/q2a3d.c:94: error: request for member 'A3D_PCMStream' in something not a structure or union
a3d/q2a3d.c:95: error: request for member 'A3D_Update' in something not a structure or union
a3d/q2a3d.c:95: error: request for member 'Init_A3D' in something not a structure or union
a3d/q2a3d.c:95: error: request for member 'A3D_Shutdown' in something not a structure or union
a3d/q2a3d.c:96: error: request for member 'A3D_cachefile' in something not a structure or union
a3d/q2a3d.c:96: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:96: error: request for member 'A3D_UpdateSound' in something not a structure or union
a3d/q2a3d.c:97: error: request for member 'A3D_StopSound' in something not a structure or union
a3d/q2a3d.c:97: error: request for member 'A3D_SetEnv' in something not a structure or union
a3d/q2a3d.c:123: error: request for member 'Init_A3D' in something not a structure or union
a3d/q2a3d.c: In function 'S_Q2A3DStartSound':
a3d/q2a3d.c:226: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:231: error: request for member 'A3D_cachefile' in something not a structure or union
a3d/q2a3d.c:237: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:241: error: request for member 'A3D_cachefile' in something not a structure or union
a3d/q2a3d.c:248: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c:257: error: request for member 'A3D_StartSound' in something not a structure or union
a3d/q2a3d.c: In function 'S_Q2A3DUpdate':
a3d/q2a3d.c:328: error: request for member 'A3D_Update' in something not a structure or union
a3d/q2a3d.c:366: error: request for member 'A3D_StopSound' in something not a structure or union
a3d/q2a3d.c:379: error: request for member 'A3D_UpdateSound' in something not a structure or union
a3d/q2a3d.c:392: error: request for member 'A3D_StopSound' in something not a structure or union
a3d/q2a3d.c: In function 'S_Q2A3DStopAllSounds':
a3d/q2a3d.c:413: error: request for member 'A3D_OggStreamStop' in something not a structure or union
a3d/q2a3d.c:416: error: request for member 'A3D_StopSound' in something not a structure or union
make[1]: *** [build_release/a3d/q2a3d.o] Error 1
make: *** [release] Error 2

Google azt mondja ez a q2a3d valami OpenAL implementáció a q2 engine -be... Felraktam az Open AL -t is... de semmi nem változott:(