Rune Central

The Official Rune Quake Message Board
It is currently Sun Dec 22, 2024 5:17 am

All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: poq 1.2 error...
PostPosted: Sat Jul 22, 2006 9:46 am 
Offline
User avatar

Joined: Mon Mar 10, 2003 8:29 am
Posts: 106
Location: Tennessee
I was able to up-date my RuneQW server to 1.2 with no problems, but POQ is not working, I keep getting an error...

Code:
ADDRESS    3143(array)entity 0  3145(i)  0.0         3163(?]
   strman.qc : allocate_string_size
     team.qc : change_teamplay
    world.qc : StartFrame
<NO FUNCTION>
assignment to world entity
Host_Error: Program error

***********************************
ERROR: Host_Error: Program error

Press Enter to exit
***********************************


I am not sure whats doing it, but I am going back to v1.1 for now.

_________________
Image
Craving for Fragging? Visit: MSM Servers Status


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jul 22, 2006 2:24 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Make sure you are using the /O2 in the command line for the compiler.

See http://forums.runecentral.com/viewtopic.php?t=950 for more details.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Jul 22, 2006 2:51 pm 
Offline
User avatar

Joined: Mon Mar 10, 2003 8:29 am
Posts: 106
Location: Tennessee
I fogot all about that. I had a old BAT file already set up in my old runequake-1.1 directory. All is working good now. Thanks.

_________________
Image
Craving for Fragging? Visit: MSM Servers Status


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jul 31, 2006 3:53 am 
Offline

Joined: Sat Feb 18, 2006 1:27 pm
Posts: 33
Location: Bristol, UK
What does /O2 do ?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jul 31, 2006 12:48 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Code:
QCCX 1.0 Optimizations:
        /Ot     eliminate temps
        /Oi     shorten ifs
        /Op     non-vector parms
        /Oc     eliminate constant defs/names
        /Od     eliminate duplicate defs
        /Os     hash lookup in CopyString
        /O2     use all optimizations

FRIKQCC 2.5 Optimizations:
        /Ot     eliminate temps
        /Oi     shorten ifs
        /Op     non-vector parms
        /Oc     eliminate constant defs/names
        /Od     eliminate duplicate defs
        /Os     hash lookup in CopyString
        /Ol     eliminate local, static and immediate names
        /On     eliminate unneeded function names
        /Of     strip filenames
        /Ou     remove unreferenced variable defs/names
        /O2     use all optimizations

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Aug 04, 2006 8:46 pm 
Offline

Joined: Sat Feb 18, 2006 1:27 pm
Posts: 33
Location: Bristol, UK
There must be some really evil qccx hackery in RuneQuake for it to require optimizations...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Aug 04, 2006 10:51 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Lardarse wrote:
There must be some really evil qccx hackery in RuneQuake for it to require optimizations...


More specifically the /Oi (shorten ifs) optimization is required. Without the optimization, checking IFNOT on a negative integer returns true. For example,
Code:
if (!%-666)
will always be true unless the /Oi optimization is used.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Aug 05, 2006 1:06 am 
Offline
zop.runequake.com
User avatar

Joined: Fri May 02, 2003 8:46 am
Posts: 343
Location: Palm Desert, CA
EVIL? Of course it's evil. How else would het get all the babes?

_________________
a random mod server: zop.runequake.com


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Aug 05, 2006 1:09 pm 
Offline

Joined: Sat Feb 18, 2006 1:27 pm
Posts: 33
Location: Bristol, UK
Slot Zero wrote:
More specifically the /Oi (shorten ifs) optimization is required. Without the optimization, checking IFNOT on a negative integer returns true.

Thanks for the clarification. I guess that's curtains to RQuake ever running in DP, then...

Zop wrote:
EVIL? Of course it's evil. How else would het get all the babes?

That might explain why me and RockeyGuy are still single...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Aug 05, 2006 5:07 pm 
Offline
User avatar

Joined: Sat Jun 19, 2004 3:42 pm
Posts: 158
Location: Croatia
Lardarse wrote:
That might explain why me and RockeyGuy are still single...

don't speak for me and get your lazy ass to work.

_________________
RocketGuy


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sat Aug 05, 2006 5:14 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Yeah, LardArse!

Quit pestering the CEO of RuneQuake and all around QuakeC god almighty and write some code, dammit! :D :D


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Aug 07, 2006 7:47 pm 
Offline

Joined: Sat Feb 18, 2006 1:27 pm
Posts: 33
Location: Bristol, UK
Well... I can't even begin to attempt to modify something that I don't completely understand.

The truth is that there are some fairly evil hacks in RuneQuake, and therefore in RQuake as well. QuakeC wasn't designed to use integers, and it needs a fairly heavily modified compiler to make it happen. It also hase some fairly funky string manipulation stuff which is even more evil...

That's not to say that evil is wrong, though. Slot (and others) has put a lot of work into making RuneQuake what it is today. It's just not the way that I am used to coding for Quake. It's like spending a year learning English the way that we speak it over here, and then moving to America. It's very different to what you know.

In the same way, working on RQuake is very different to what I know. I often have to look at the code a few times, asking myself "wtf is he trynig to do here?" just because it's not obvious to me; but people like Slot and RocketGuy (and others, I'd assume) can quite easily tell what's going on.

So why would I want to be trying to wade my way through this? Well... it's been mentioned a few times that it won' run in DarkPlaces. To get it to run, a lot of this hackery would have to be removed. I'm not going to try to convert the main development of RQuake to be DP only. But what I am planning of doing, is to branch off development, and work seperately on it. This isn't something that will be done quickly; but eventually, It could be a very interesting side project...

But I can't do any of that while I don't understand anything that's going on in what we have right now...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Aug 07, 2006 10:49 pm 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
Here is what I'd recommend maybe to understand what/how Rune Quake is doing.

I believe Rune Quake 0.6 is the last version that will run on DarkPlaces.

You could take RuneQuake 0.6 and Rune Quake 1.0, run ExamDiff. Then take Rune Quake 1.0 (RQuake's parent) and RQuake 1.2 and run Exam Diff and at least get an idea of what changes occurred.

At least it would be an interesting learning experience.

Does DarkPlaces have the ability to manipulate strings and have a manner that it could support vote-map and other vote-options?

DarkPlaces has a lot of advanced stuff, but those are some of the things that make Rune Quake an elite mod, and Rune Quake has long been the "go to" mod for great code because of how solid and debugged it is.

At least comparing the sources identified above and reading Slot's changelogs might give you a better idea of what is going on.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 1:41 am 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Currently Rune Quake is compatible with Quake, but I might be able to whip up an evil potion so that Rune Quake could be compatible with Dark Places. It might take a lot of evil trickery, but I'll give it a shot. Now, if I could only find some eye of newt and toe of frog.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 3:48 am 
Offline

Joined: Sun Mar 09, 2003 10:47 pm
Posts: 1612
Location: Ohio
DarkPlaces has some interesting FRIK_FILE string manipulation capabilities, Lardarse linked me this:

http://wiki.quakesrc.org/index.php/FRIK_FILE

Quote:
FRIK_FILE

FRIK_FILE is the name given to the httpUpdated QuakeC File Access Tutorial by FrikaC. It's provides the same functionality as QSG_FILE but with updated and corrected builtin numbers to solve some incompatibilities. Engines that support this extension know the following builtins/constants:

builtin definitions:
float(string s) stof = #81;
float(string filename, float mode) fopen = #110;
void(float handle) fclose = #111;
string(float handle) fgets = #112;
void(float handle, string s) fputs = #113;
float (string s) strlen = #114;
string(string s1, string s2) strcat = #115;
string(string s, float start, float length) substring = #116;
vector(string s) stov = #117;
string(string s) strzone = #118;
void(string s) strunzone = #119;

Tonik: I suggest renaming the strcat function to stradd to avoid confusion with the strcat in C. The strcat in C modifies the first argument; the one in FRIK_FILE does not.
Sajt: You can do that yourself in your defs.qc/dpextensions.qc/whatever you use... also, please delete these messages once you've read this one :P
Tonik: Sure. But what I ask for is to replace strcat with stradd here in this Wiki and wherever else the extension is published. FrikaC, what will you say?
Sajt: Well, I wouldn't recommend it.. you can't expect QC versions of functions to be functionally identical (otherwise you might have to change fopen because it uses FILE_* constants instead of "wt", "rb", etc strings...) Oh well, my discussion here is done :)

ZQ_QC_STRINGS is a less supported subset of this extension.

constant definitions:
float ?FILE_READ = 0;
float ?FILE_APPEND = 1;
float ?FILE_WRITE = 2;

This extension adds a new cvar: "?pr_zone_min_strings" (default: 64 (64 kb), min: 64 (64 kb), max 8192 (8 mb)).

NOTE: You may want to set ?pr_zone_min_strings in the worldspawn function if 64 kb is not enough string zone space.

Last edited on May 16, 2006 by FrikaC


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 4:38 am 
Offline

Joined: Mon May 02, 2005 4:41 am
Posts: 18
AFAIK, the main problem with RuneQuake is that it violates the interface between QC and the engine. Any engine that validates the calls from QC will refuse to proceed, my engines won't run RuneQuake either.

There are e.g. references to negative edicts and this is of course invalid. Any accesses from QC to the internal memory of the engine is strictly forbidden and will, if not caught, just lead to a crash.

RuneQuake 0.6 seems OK in this respect; it's the later versions that don't work.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 1:00 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
I could prevent Rune Quake from crashing in Dark Places (and other engines), but while the mod would run, some of its functionality would be limited. This isn't anything strange though, the same thing is true for a mod written specifically for Dark Places.

When I started using qccx internals, and perhaps this still holds true today, ProQuake was the most popular engine to use for running a server. So my goal has always been to maintain support for ProQuake and of course the standard Quake engine.

If you're using a QSG compliant engine, and I think Dark Places is, it might not be that difficult to restore functionality in Rune Quake. For example, strlen(), strcat(), stof(), substring() which are QC functions in RQ are all built-ins in a QSG compliant engine. The strzone() and strunzone() built-ins could replace my allocate_string() function. Finally, I'm sure you could use the file manipulation built-ins for data storage across the levels, if there is not yet an easier way.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 2:30 pm 
Offline

Joined: Sat Feb 18, 2006 1:27 pm
Posts: 33
Location: Bristol, UK
That's why I wish to branch development, instead of restrict the mod. And yes, the opposite is true as well.

I assume that all the qccx-ness is in internal.qc

Do you think you could explain (here or elsewhere) why the mod makes extensive use of integers?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 3:41 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Lardarse wrote:
Do you think you could explain (here or elsewhere) why the mod makes extensive use of integers?


Integers are the not the reason why Dark Places doesn't work. Integers are just a feature of the compiler and will work fine with Dark Places. The problem is that internal.qc will use the features of qccx to peek into the internals of the engine. It expects certain portions of the engine code to exist, and when it does not, you run into problems. Keep in mind, qccx was developed before the engine source was released, so there was never any possiblity of a conflict.

After version 0.5.3 of Rune Quake, I decided I wanted to add more features to Rune Quake that couldn't be done unless I either modified the engine or used the internal.qc project of qccx. If I modified the engine, then all server ops would have to use my engine, and at the time, proquake was still being updated on a somewhat regular basis. I didn't want people to miss out on server updates, so I went the other way instead. While this route would still cause complications with heavily modified servers, such as Dark Places, it would still allow some flexibilty. Besides, it was very rewarding writing code in QC that had only been done in the engine.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Aug 08, 2006 4:30 pm 
Offline
Site Admin
User avatar

Joined: Fri Mar 07, 2003 7:41 pm
Posts: 1258
Location: New Jersey, USA
Spitfire wrote:
I fogot all about that. I had a old BAT file already set up in my old runequake-1.1 directory. All is working good now. Thanks.


I've managed to fix the optimization requirement so you shouldn't run into this problem again in future releases.

_________________
Slot Zero
Image


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 46 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group