On 07/26/13 01:53, Ludwig Nussel wrote:
Dominic Fandrey wrote:
On 25/07/2013 15:25, Ludwig Nussel wrote:
Dominic Fandrey wrote:
On 23/07/2013 01:36, Tim Angus wrote:
On Mon, 22 Jul 2013 14:36:18 -0500 Harley wrote:
It looks like the culprit is the range check (MASK_REG in the new vm)
for OP_STORE4. Commenting out MASK_REG under that case seems to make
UrbanTerror 4.2 load up. I haven't actually tried a real game though.

This is probably indicative of a bug in Urban Terror. We have hacks in sound backends to work around UrT's misuse of the API, but in that case
it's not harmful. Removing a range check would mean compromising
security for the sake of UrT. Hmmm.

Well, given the issue I think that the VM should be fixed rather
than changing ioq3. I build standalone binaries for UT, where I can
remove the alignment enforcement without affecting the general ioq3
packages.

I wonder how much overhead would be produced by reporting unaligned
data access (OP_LOAD* and OP_STORE*) instead of just force-aligning
stuff.

If the analysis by Harley is correct issue is not about alignment. If
removing the mask fixes the issue then UrT tries to write outside it's
allocated memory area. That leads to unpredictable behavior or
crashes in any case.

You can leave the mask in place and just remove the &~3 from the mask
that enforces alignment.

The issue should be reproducible with the interpreter in idq3 as
well as that one always had the masking in OP_STORE4 AFAICS.

Nope, it really is the alignment. Someone on the UT side with access
to the qvm confirmed it and started working on it.

Original Q3 code:
https://github.com/id-Software/Quake-III-Arena/blob/master/code/qcommon/vm_interpreted.c#L449

So try running with +set vm_game 1 +set vm_cgame 1 +set vm_ui 1. That
should show the same issue. Unless the bug is elsewhere and the
OP_STORE4 is just a symptom...
I just downloaded and tried vanilla quake3. It does indeed crashes with those options with urban terror. It was mentioned previously that they had tested with q3 and it worked. Well, I can say that it does indeed work with vm_x86, but doesn't work in interpreted mode. I'd say it's up to them at this point to fix their broken (I believe) UI code.
But someone else
muscled in and locked the thread because:
UrbanTerror is a mod of Q3 and as such it does not have to be
compatible with any other version of the Q3 engine like ioQ3.

That's a sad attitude :-( Didn't they use a fork of ioq3 to make it look
like a standalone game?
Perhaps someone should now post about it not working in Q3 interpreted mode ;)

_______________________________________________
ioquake3 mailing list
ioquake3@lists.ioquake.org
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to