diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 127 |
1 files changed, 127 insertions, 0 deletions
@@ -0,0 +1,127 @@ +Name of this project: icculus.org/quake3 +URL: http://www.icculus.org/quake3 +Hello and welcome to the Quake 3 source repository on icculus.org +I'll be your maintainer, zakk@icculus.org, please send all your patches to +the bugzilla: https://bugzilla.icculus.org, or join the mailing list +(quake3-subscribe@icculus.org) and submit your patch there. +Best case scenario is you subscribe to the ml, submit your patch to +bugzilla, and then post the url to the mailing list. + +If you're too lazy for either method, then I would rather +you e-mailed your patches to me directly than not at all. + +The intent of this is to give people a baseline Quake 3. +Bug fixes, SDL port, OpenAL, security, etc. +Extra graphics and sound will be accepted as long as they are entirely +optional and off by default. + +The map editor isn't included, get a modern copy from here: +http://www.qeradiant.com/ + +The id software readme has been renamed to id-readme.txt +so as to prevent confusion. + +Refer to the web-site for updated status, enjoy! + +Compiling (Under Windows) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Run Space Visual Dot Net 2040 Extra Entropy Edition under your BeOS emulator. +Open the quake3.vcproj file in the win32 directory. +Build. +Copy the resultant Quake3.exe to your quake 3 directory, make a backup if you want to keep +your original. + +Copy the resultant dlls to your baseq3 directory, backup etc. + +Run, enjoy! + + +Compiling (Under Linux) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. If not already there, change to the directory containing this readme +2. Run 'make' + +For distro maintainers, you can set some make variables: + OPTIMIZE - use this for custom CFLAGS + DEFAULT_BASEDIR - extra path to search for baseq3 and such + BUILD_SERVER - build the 'q3ded' server binary (1 = build it, default = 1) + BUILD_CLIENT - build the 'quake3' client binary (1 = build it, default = 1) + +Installing under Linux +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Set the COPYDIR variable in the shell to be where you installed +Quake 3 to. By default it will be /usr/local/games/quake3 if you +haven't set it. + +Then run "make copyfiles", beware that this will overwrite any binaries +installed previously, even official id ones. + +Using shared libraries instead of qvm +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +To make quake3 prefer shared libraries instead of qvm run it with +the following parameters: ++set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0 + +Using Demo Data Files +~~~~~~~~~~~~~~~~~~~~~ +you only need demoq3/pak0.pk3 from the demo installer. The qvm files inside +pak0.pk3 will not work, you have to use the native shared libraries from this +project. To do so copy or link ui*.so, qagame*.so, cgame*.so from baseq3 to +demoq3 and run quake3 with the parameters described above. + +64bit mods +~~~~~~~~~~ +To compile working(!) shared libraries for 64bit mods the vmMain and +dllEntry functions as well as the syscall pointer have to be changed +to accept and return long instead of int. + +Compiling under windows using MinGW +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +It is possible to compile ioQ3 using the MinGW (Minimalist GNU for Windows) +toolset. It's a little more involved than compiling for linux; steps are as +follows: + +1. Download and install MinGW and MSys from http://www.mingw.org/. +2. Download and install the DirectX 9 SDK from + http://msdn.microsoft.com/directx/. Previous versions of the SDK will + probably work, but they have not been tested. +3. Find the following in DXSDK/Include/dinput.h... + + } DIDEVICEINSTANCEW, *LPDIDEVICEINSTANCEW; + #ifdef UNICODE + typedef DIDEVICEINSTANCEW DIDEVICEINSTANCE; + typedef LPDIDEVICEINSTANCEW LPDIDEVICEINSTANCE; + #else + typedef DIDEVICEINSTANCEA DIDEVICEINSTANCE; + typedef LPDIDEVICEINSTANCEA LPDIDEVICEINSTANCE; + #endif // UNICODE + + typedef const DIDEVICEINSTANCEA *LPCDIDEVICEINSTANCEA; + typedef const DIDEVICEINSTANCEW *LPCDIDEVICEINSTANCEW; + > #ifdef UNICODE + > typedef DIDEVICEINSTANCEW DIDEVICEINSTANCE; + > typedef LPCDIDEVICEINSTANCEW LPCDIDEVICEINSTANCE; + > #else + > typedef DIDEVICEINSTANCEA DIDEVICEINSTANCE; + > typedef LPCDIDEVICEINSTANCEA LPCDIDEVICEINSTANCE; + > #endif // UNICODE + typedef const DIDEVICEINSTANCE *LPCDIDEVICEINSTANCE; + + ...and comment out/remove the duplicated code marked by '>'. + +4. If you didn't install the DirectX SDK in C:\DXSDK\, edit DXSDK_DIR in + code/unix/Makefile to reflect the new location. +5. Perform the usual precompilation sacrificial ritual. +6. Open an MSys terminal, and follow the instructions for compiling on Linux. +7. Steal underpants +8. ???? +9. Profit! + +Creating mods compatible with Q3 1.32b +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you're using this package to create mods for the last official release of +Q3, it is necessary to pass the commandline option '-vq3' to your invocation +of q3asm. This is because by default q3asm outputs an updated qvm format that +is necessary to fix a bug involving the optimising pass of the x86 vm JIT +compiler. See http://www.quakesrc.org/forums/viewtopic.php?t=5665 (if it still +exists when you read this) for more details. |