Quake3World.com Forums
     Programming Discussion
        Compiling vm files gives bizarre results on mod; .dll works

Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC

Print view Previous topic | Next topic 
Topic Starter Topic: Compiling vm files gives bizarre results on mod; .dll works

Insane Quaker
Insane Quaker
Joined: 16 Sep 2010
Posts: 389
PostPosted: 02-10-2019 11:01 PM           Profile Send private message  E-mail  Edit post Reply with quote

Hello again! I'm almost ready to release the next version of my mod - thanks to the help of Chomenor and ToKu over on the ioquake3 forums, I was able to resolve a problem with entity flag transmission. On my compiled .dlls the code runs perfectly fine with no issues. However, I went to do the .qvm compiling as I usually do, and for the previous three versions of my mod it has worked without problem. This time, however, the output .vm files are exhibiting very strange anomalies when I run them. This isn't a comprehensive list, but among those problems:

- A green-colored aura I use for a power-up shader never shows up in the .vm game, but works fine with the .dll's. I checked my files and can confirm that it is indeed not due to missing shaders.

- Homing rockets travel normally when other players aren't present with the .dll game. With the .vm compiled version, they disappear out of existence if they can't find someone.

- A sound file that plays just fine on the menu with the .dll's does not play with the .vm's. Again, the sound file is present and in the right directory, the game simply just doesn't play it.

- Storage Capsule client-side messages are played out-of-order in the .vm, but in the correct order in the .dll.

As you can see from the examples, the problem affects all three components of the source code (server, client, and the UI)

I'm not looking to specifically fix the above issues as they are symptoms of a much bigger problem, which is that the .vm compilers / makefile, for whatever reason, are seemingly modifying the behavior of the code. Whatever the .vm's / makefile put out should logically work exactly the same as the .dll's, and up to this point they have without fail. I have not made any changes to the makefile / lcc since the last release.

I cloned the last GitHub commit I performed right before version 0.3's release and compiled the .vm's on it, and it exhibits the same issue, so I can confirm that it isn't because of code I put in since then. I also made sure to exclude my directories from antivirus tracking so they don't get flagged as false positives. I had all three "vm_" cvars set to 2, and I changed them to 1 temporarily to see if that would fix it, but it doesn't change anything. I have tried making both 32-bit and 64-bit .vm's; both have the same problem.

Has anyone had experience with lcc or makefiles producing unexpectedly different results from the .dll's? If so, why does it do this, and what did you do to resolve it? Thanks for any help in advance! Using Cygwin on Windows 10.


Quake3World.com | Forum Index | Programming Discussion

Post new topic Reply to topic

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group