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:
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.