Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I was browsing through how to mod a game (Urban Terror, a Quake 3 mod). I found that it can be done by editing .qvm files in the game. Under the file named zpak000.pk3. That file contains other files named

ui.qvm
qagame.qvm
cgame.qvm

But I can't find a way in which I can edit these files.

share|improve this question

3 Answers 3

You create qvm files using the c-compiler in the Quake SDK.

You can't edit QVM files.

(You could technically modify them using a hex editor, in the same way that you can modify other compiled programs, but this is not useful for your purposes.)

share|improve this answer
    
U know urban terror is a mod of quacke 3. And from where can i get that The modded sdk ? –  kritya Jul 22 '11 at 16:16
1  
You don't need a "modded" SDK. Urban terror uses the SDK that ID Software provides. You can't edit the QVM files that the Urban Terror modders produced, as I've already said. –  Olhovsky Jul 22 '11 at 18:16
3  
To clarify on Olhovsky's comment: to modify Urban Terror, you'll probably need to get your hands on the source code that the devs used to compile the QVMs. That probably means contacting them and asking for it, unless they've released it. –  Gregory Avery-Weir Jul 22 '11 at 20:00
    
Thanks Gregory, that's correct. –  Olhovsky Jul 24 '11 at 17:19

Edit them with a hex editor downloaded somewhere from the 'net.

share|improve this answer

Well, never heared about google :) ?

Look at game-deception it explains how to modificate a qvm (' after it has been compiled '). It just over-compile the certain lines / commands. The only problem ( for you ) is, that you have to work with opcodes ( / assembler ). Well, here's the tutorial made by the great macpunk : http://www.gamedeception.net/threads/19198-Runtime-QVM-Modification

vmHeader_t *hook_VM_LoadQVM( vm_t *vm, qboolean alloc )

{

vmHeader_t *ret = orig_VM_LoadQVM(vm, alloc);

if(!strcmp(vm->name, "cgame")

{

    vm->instructionPointers[0x0FF5E7] = 0x00; //0x00 is the opcode of whatever you want the instruction to be

}

return ret;
}

You need to Quake3 Engine SDK for the structs.

share|improve this answer
    
You'll have to use an QVM dissambler -> gamedeception.net/threads/18107-QVMDisas-py –  Techie Feb 3 '13 at 10:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.