Trouble running ioq3-source mod on vanilla Q3


#1

Hello!

I’ve been hard at work on my Quake 3 mod “Uber Arena” (github page: https://github.com/EmeraldTiger/Uber-Arena), and I’m almost ready for a new release, except for this error message that I keep receiving whenever I go to try and run the mod in vanilla Q3:

vm/ui.qvm has bad header

I’m using the ioquake3 codebase for my mod (https://github.com/ioquake/ioq3), and from what I have been told, mods made using this codebase should be compatible with standard Quake 3 as well (I used it because someone mentioned how it contains a lot of bugfixes and clean-up work on the original code; before I was using the standard Quake 3 source code)

I looked on Google and found a few posts on it, but nothing that really helped me, as nothing I see seems to be in the context of running an ioq3 mod on vanilla Q3. Supposedly reinstalling a fresh copy of the 1.32 release is supposed to fix it, but I just tried that and it doesn’t do anything for me at all. I changed the “vm_” variables to 1 and 2, and that didn’t fix it either. I compiled my .qvm files using Cygwin with both 32-bit and 64-bit settings, and both sets of output .qvm files share the same issue. The same message appears whether I go through the mod menu through vanilla Q3 or using a shortcut with “fs_game uberarena”. This only happens with standard Quake 3, btw - it works fine if running in ioquake3. Using Windows 10.


#2

I think the vm compiling tools included in ioquake3 might produce an output format that is only compatible with ioquake3. You could try using the tools included in the original Quake 3 source release and that should work on both the original quake 3 and ioquake3. Does anybody know if there are settings for the ioquake3 vm compiler that produce the original qvm format?


#3

I ran into the same problem when developing a quake 3 mod of my own. If you are using the q3asm from ioquake, you should add the -vq3 option to its command line arguments. I found this information in the ioquake3 readme on github:


#4

Oh huh, didn’t even see that part, thanks so much for pointing it out! I must be misunderstanding something though because when I add that option to the cmd arguments on Cygwin the compiler says “unrecognized command line option -vq3”. This is after changing to the proper directory, and if I leave out the -vq3 option it compiles fine. I also use the option BUILD_MISSIONPACK=0 and it interprets that fine.

Here are several of my attempts to make it work:
make ARCH=x86 BUILD_MISSIONPACK=0 -vq3
make ARCH=x86 BUILD_MISSIONPACK=0 vq3
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS="-vq3"
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS=“vq3”
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS=’-vq3’
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS=‘vq3’
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS=-vq3
make ARCH=x86 BUILD_MISSIONPACK=0 CFLAGS=vq3

My apologies in advance if I’m missing something obvious - I’m not used to using the command line too much apart from basic ops like cd and make. Using Cygwin.


#5

If you edit the ioquake3 makefile, you can replace all the instances of this string:

$(Q)$(Q3ASM) -o $@

with

$(Q)$(Q3ASM) -vq3 -o $@

That should insert the vq3 argument for all the calls to the q3asm utility specifically.


#6

Yes what Chomenor said :slight_smile:

The -vq3 option should only go to q3asm.


#7

Thanks so much guys! Works like a charm and now I have just released a new update! :slight_smile: