Thanks for the reply again!
When I compile with "BUILD_GAME_SO=1 and BUILD_GAME_QVM=0" qvms don't get
built, which I'm guessing is the point of the second option. The compilation
completes without any errors.
However when I run the Game:
./ioq3ded.ppc64 +set fs_game Mod +set sv_pure 0 +set vm_game 0 +set vm_cgame 0
+set vm_ui 0 +set dedicated 1 +exec something_112_respwn.cfg
The Game crashes right away. I placed the log at the end of this email.
I have several questions that I would really like some help with.
Regarding LCC compiler you kindly mentioned before:
* I couldn't find a version of it on linux. How is it being used on linux when
it is a Windows-only compiler?
* If LCC compiler is available on Linux, where can I download it? Because I am
thinking maybe the LCC compiler settings might have a problem.
Regarding the compilation of QVM files:
* I have noticed from the compilation log that they are compiled as C++ files,
and C files:
cpp: code/game/ai_main.c:2712 Could not find include file <sys/time.h>
make[2]: *** [build/release-linux-ppc64/baseq3/game/ai_main.asm] Error 1
Why is that?
In qcommon/q_shared.h, I've also written in below:
* What does this quote mean?
* time.h is included inside q_shared.h, and q_shared.h is included inside
ai_main.c. Therefore, shouldn't this allow me to use the time library?
ioquake3 general questions:
The main reason I need to solve this current problem is the following. I need a
high precision time measuring tool, such as time.h.
I am sure ioquake3 requires such tools as well, to regulate frames...etc.
* Is there a time tool I can use inside ioquake3 without the need to add
something new from the outside such as time.h?
I really appreciate this! I really need to be able to use the time library
inside ai_main.c very badly.
--------------Q_SHARED.H
/**********************************************************************
VM Considerations
The VM can not use the standard system headers because we aren't really
using the compiler they were meant for. We use bg_lib.h which contains
prototypes for the functions we define for our own use in bg_lib.c.
When writing mods, please add needed headers HERE, do not start including
stuff like <stdio.h> in the various .c files that make up each of the VMs
since you will be including system headers files can will have issues.
Remember, if you use a C library function that is not defined in bg_lib.c,
you will have to add your own version for support in the VM.
**********************************************************************/
#ifdef Q3_VM
#include "../game/bg_lib.h"
typedef int intptr_t;
#else
//#include <assert.h>
#include <math.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <limits.h>
--------------Q_SHARED.H
--------------RUNNING THE GAME WITH BUILD_GAME_SO=1 and BUILD_GAME_QVM=0
----------------------
rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/Best201202231123_True_final/ioquake3dev_clean/build/release-linux-ppc64[10075]%
./ioq3ded.ppc64 +set fs_game Mod +set sv_pure 0 +set vm_game 0 +set vm_cgame 0
+set vm_ui 0 +set dedicated 1 +exec something_112_respwn.cfg
ioq3 linux-ppc Jun 19 2012
----- FS_Startup -----
Current search path:
/home7/yasir/.q3a/Mod
./Mod
/home7/yasir/.q3a/baseq3
./baseq3/pak8.pk3 (9 files)
./baseq3/pak7.pk3 (4 files)
./baseq3/pak6.pk3 (64 files)
./baseq3/pak5.pk3 (7 files)
./baseq3/pak4.pk3 (272 files)
./baseq3/pak3.pk3 (4 files)
./baseq3/pak2.pk3 (148 files)
./baseq3/pak1.pk3 (26 files)
./baseq3/pak0.pk3 (3539 files)
./baseq3
----------------------
4073 files in pk3 files
execing default.cfg
execing q3config_server.cfg
execing autoexec.cfg
Hunk_Clear: reset the hunk ok
Altivec support is disabled
--- Common Initialization Complete ---
IP: 127.0.0.1
IP: 133.9.80.16
IP6: ::1
IP6: fe80::20d:60ff:fe4d:c88a%eth0
Opening IP socket:
0.0.0.0:27960
execing something_112_respwn.cfg
------ Server Initialization ------
Server: q3dm1
Hunk_Clear: reset the hunk ok
----- FS_Startup -----
Current search path:
/home7/yasir/.q3a/Mod
./Mod
/home7/yasir/.q3a/baseq3
./baseq3/pak8.pk3 (9 files)
./baseq3/pak7.pk3 (4 files)
./baseq3/pak6.pk3 (64 files)
./baseq3/pak5.pk3 (7 files)
./baseq3/pak4.pk3 (272 files)
./baseq3/pak3.pk3 (4 files)
./baseq3/pak2.pk3 (148 files)
./baseq3/pak1.pk3 (26 files)
./baseq3/pak0.pk3 (3539 files)
./baseq3
----------------------
8146 files in pk3 files
Loading dll file qagame.
Sys_LoadDll(/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/Best201202231123_True_final/ioquake3dev_clean/build/release-linux-ppc64/Mod/qagameppc.so)...
Sys_LoadDll(/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/Best201202231123_True_final/ioquake3dev_clean/build/release-linux-ppc64/Mod/qagameppc.so)
failed:
"/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/Best201202231123_True_final/ioquake3dev_clean/build/release-linux-ppc64/Mod/qagameppc.so:
undefined symbol: Com_Quit_f"
Sys_LoadDll(/home7/yasir/.q3a/Mod/qagameppc.so)...
Sys_LoadDll(/home7/yasir/.q3a/Mod/qagameppc.so) failed:
"/home7/yasir/.q3a/Mod/qagameppc.so: cannot open shared object file: No such
file or directory"
Sys_LoadDll(./Mod/qagameppc.so)...
Sys_LoadDll(./Mod/qagameppc.so) failed:
"./Mod/qagameppc.so: undefined symbol: Com_Quit_f"
Sys_LoadDll(qagame) failed to load library
Failed to load dll, looking for qvm.
Loading vm file vm/qagame.qvm...
VM file qagame compiled to 820564 bytes of code (0xf1ac8000 - 0xf1b90554)
compilation took 0.090661 seconds
qagame loaded in 2683840 bytes on the hunk
------- Game Initialization -------
gamename: baseq3
gamedate: Sep 30 2002
------------------------------------------------------------
InitGame:
\capturelimit\8\g_maxGameClients\0\sv_floodProtect\1\sv_maxPing\0\sv_minPing\0\sv_maxRate\0\sv_minRate\0\sv_maxclients\112\sv_hostname\noname\timelimit\0\fraglimit\20\dmflags\0\version\ioq3
linux-ppc Jun 19
2012\g_gametype\0\protocol\68\mapname\q3dm1\sv_privateClients\0\sv_allowDownload\0\gamename\baseq3\g_needpass\0
0 teams with 0 entities
12 items registered
-----------------------------------
------- BotLib Initialization -------
loaded weapons.c
loaded items.c
loaded syn.c
loaded rnd.c
loaded match.c
loaded rchat.c
------------ Map Loading ------------
trying to load maps/q3dm1.aas
loaded maps/q3dm1.aas
found 18 level items
-------------------------------------
32 bots parsed
35 arenas parsed
********************
ERROR: Cvar_Update: handle out of range
********************
----- Server Shutdown (Server crashed: Cvar_Update: handle out of range) -----
==== ShutdownGame ====
ShutdownGame:
------------------------------------------------------------
AAS shutdown.
recursive error after: Cvar_Update: handle out of range
------------------
>________________________________
> From: Ben Noordhuis <[email protected]>
>To: Yasir I. Al-Dosary - zgzg2020™ <[email protected]>
>Cc: Primary ioquake3 Discussion/Development list <[email protected]>
>Sent: Monday, June 18, 2012 9:47 PM
>Subject: Re: [ioquake3] Programming question
>
>On Mon, Jun 18, 2012 at 8:46 AM, Yasir I. Al-Dosary - zgzg2020™
><[email protected]> wrote:
>> Thank you for the quick response!
>>
>> "The files in game/ and cgame/ don't have access to system headers.
>> They're compiled to bytecode with the bundled lcc."
>>
>> Ok! So, what can I do to make it work? (or what shall I ask my admin to do?)
>
>Try compiling to native shared objects.
>
>Off the top of my head, set BUILD_GAME_SO=1 and BUILD_GAME_QVM=0 in
>your Makefile.local and run the game with `+set vm_game 0 +set
>vm_cgame 0 +set vm_ui 0` (you may have to add `+set sv_pure 0` as
>well.)
>
>
>
_______________________________________________
ioquake3 mailing list
[email protected]
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.