Skip to content

Releases: thecybermind/qvmops

v2.1.0

06 Mar 16:14
v2.1.0
60d7a1c

Choose a tag to compare

  • Can now load "version 2" QVM files from ioQuake3 + ioRTCW projects. Currently does not load or output any of the new JTRG segment.

Commits

  • 3c2eb53: add link to stvoy_qagame.qvm.txt to readme (Kevin Masterson)
  • b87da8d: include string.h for linux warning (Kevin Masterson)
  • 10c289f: change include guards to remove __ (Kevin Masterson)
  • 4c0ffa0: disable strncpy warning (Kevin Masterson)
  • dbec9b6: update qvmops to handle qvm "version 2" header from ioquake3+iortcw. currently doesn't output or deal with the jrtg segment but can read it. some parsing code for it locked behind QVMOPS_VER2 define (Kevin Masterson)
  • 60d7a1c: version bump to 2.1.0 (Kevin Masterson)

v2.0.0

14 Jan 14:13
v2.0.0
11d5ae9

Choose a tag to compare

Overhaul in how qvmops functions. It can read .map files (also created by q3asm) and provide symbol information while disassembling the .qvm file. It stores instructions as a sequential list of discrete objects, so that they can reference nearby instructions to output symbols/comments/etc.

Commits

  • 2eedbb6: add example output (Kevin Masterson)
  • bcdd1d9: add qagame.qvm.txt to package (Kevin Masterson)
  • 6e1a937: add qvm/map (Kevin Masterson)
  • 0254b77: updating to include symbol data from .map. splitting out instructions and symbols into separate storage arrays to make referencing nearby instructions easier. output symbol info for enter, leave, call, jump, load, etc (Kevin Masterson)
  • 9c53daf: . (Kevin Masterson)
  • 88df7e5: add data segment back to output file. current output is original qvmops plus the additional comments from symbol map file (Kevin Masterson)
  • e2a1fc7: leave basic comments on most function/jump instructions if no symbols are present (Kevin Masterson)
  • 371cf58: readme (Kevin Masterson)
  • 938a3a2: readme (Kevin Masterson)
  • c737d2f: add link to qagame.qvm.txt (Kevin Masterson)
  • 1e717db: use raw github link for qagame.qvm.txt (Kevin Masterson)
  • 5f76b76: remove LINE comments from symbol table for now. maybe store them in a separate line database that can't be looked up? (Kevin Masterson)
  • bf71fd4: added > in front of target of conditional branch instructions. changed minimum param threshold for lone OP_CONST comment from 100 to 1024 (Kevin Masterson)
  • b3cd9eb: line symbols are stored in a separate list and added to the end of any existing comment (Kevin Masterson)
  • dd871f4: add hex index as well, add stvoy disassembly file to show LINE comments (Kevin Masterson)
  • 9e746c2: remove readme.txt (Kevin Masterson)
  • e1901f3: update readme (Kevin Masterson)
  • 189db90: move version define into qvmops.h (Kevin Masterson)
  • ed598a4: bump to v2.0.0 (Kevin Masterson) #2
  • 2f21223: fix linux error (Kevin Masterson) #2
  • 26102a3: add readme, remove output files from package (Kevin Masterson) #2

v1.1.2

09 Jan 09:40
v1.1.2
b71b47b

Choose a tag to compare

  • Each instruction is now labeled with instruction index AND instruction offset
  • Add more header checks during file loading
  • If a jump OP has a param that is an invalid instruction index, it will show "!" after
  • A "|" character will appear between hex values at the split between the data and lit segments

qvmops.exe - windows
qvmops - linux
qagame.qvm.txt - example output from default Quake 3 baseq3 mod

Commits

  • 66a7e6e: add some comments, and output a "|" in between bytes of the hex-editor view where the split between data segment and lit segment is (Kevin Masterson)
  • 0158320: add output header and version (Kevin Masterson)
  • 8d4e246: updated comments (Kevin Masterson)
  • 6a927e4: added some more checks and output to disasm. added github actions (Kevin Masterson)
  • 6ddf511: bump version (Kevin Masterson) #1
  • e9bb32a: fix (Kevin Masterson) #1
  • d9e8e66: fix (Kevin Masterson) #1

v1.1.0

21 Mar 03:30

Choose a tag to compare

Code segment is now labeled with instruction index rather than instruction offset. Since OP_CALL, OP_JUMP, and branching ops use indexes (generally loaded by OP_CONST if not a function pointer), it can be easier to trace branching and call flow.

  • qvmops.exe - windows
  • qvmops - linux
  • qagame.qvm.txt - example output from default Quake 3 baseq3 mod

windows:

> qvmops.exe qagame.qvm
qagame.qvm.txt written

linux:

> ./qvmops qagame.qvm
qagame.qvm.txt written

v1.0.0

20 Mar 01:02

Choose a tag to compare

Initial GitHub release

  • qvmops.exe - windows
  • qvmops - linux

windows:

> qvmops.exe qagame.qvm
qagame.qvm.txt written

linux:

> ./qvmops qagame.qvm
qagame.qvm.txt written