mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
- add note about 64bit mods and the demo
- fix mod functions for 64bit
This commit is contained in:
parent
54d65a0ead
commit
1b62818a09
5 changed files with 27 additions and 6 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue