Trouble running ioq3-source mod on vanilla Q3

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.

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?

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:

2 Likes

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.

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.

1 Like

Yes what Chomenor said :slight_smile:

The -vq3 option should only go to q3asm.

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

2 Likes