- add note about 64bit mods and the demo

- fix mod functions for 64bit
This commit is contained in:
Ludwig Nussel 2005-08-30 22:38:59 +00:00
parent 54d65a0ead
commit 1b62818a09
5 changed files with 27 additions and 6 deletions

View file

@ -28,10 +28,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "cg_local.h" #include "cg_local.h"
static long (QDECL *syscall)( int arg, ... ) = (long (QDECL *)( int, ...))-1; static long (QDECL *syscall)( long arg, ... ) = (long (QDECL *)( long, ...))-1;
void dllEntry( long (QDECL *syscallptr)( int arg,... ) ) { void dllEntry( long (QDECL *syscallptr)( long arg,... ) ) {
syscall = syscallptr; syscall = syscallptr;
} }

View file

@ -28,10 +28,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#error "Do not use in VM build" #error "Do not use in VM build"
#endif #endif
static int (QDECL *syscall)( int arg, ... ) = (int (QDECL *)( int, ...))-1; static long (QDECL *syscall)( long arg, ... ) = (long (QDECL *)( long, ...))-1;
void dllEntry( int (QDECL *syscallptr)( int arg,... ) ) { void dllEntry( long (QDECL *syscallptr)( long arg,... ) ) {
syscall = syscallptr; syscall = syscallptr;
} }

View file

@ -716,8 +716,10 @@ long QDECL VM_Call( vm_t *vm, long callnum, ... ) {
args[4], args[5], args[6], args[7], args[4], args[5], args[6], args[7],
args[8], args[9], args[10], args[11], args[8], args[9], args[10], args[11],
args[12], args[13], args[14], args[15]); args[12], args[13], args[14], args[15]);
#if defined(HAVE_VM_COMPILED)
} else if ( vm->compiled ) { } else if ( vm->compiled ) {
r = VM_CallCompiled( vm, &callnum ); r = VM_CallCompiled( vm, &callnum );
#endif
} else { } else {
struct { struct {
int callnum; int callnum;

View file

@ -28,9 +28,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#error "Do not use in VM build" #error "Do not use in VM build"
#endif #endif
static int (QDECL *syscall)( int arg, ... ) = (int (QDECL *)( int, ...))-1; static long (QDECL *syscall)( long arg, ... ) = (long (QDECL *)( long, ...))-1;
void dllEntry( int (QDECL *syscallptr)( int arg,... ) ) { void dllEntry( long (QDECL *syscallptr)( long arg,... ) ) {
syscall = syscallptr; syscall = syscallptr;
} }

View file

@ -12,3 +12,22 @@ http://www.qeradiant.com/
cd code/unix && make cd code/unix && make
Refer to the web-site for updated status, enjoy! Refer to the web-site for updated status, enjoy!
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.