QCVM(1)

πŸ“¦ version 0.3.5+git20251116, in ubuntu resolute, ubuntu stonking

QCVM(1) πŸ’– the standalone QuakeC VM binary executor

okay bestie, buckle up, this is qcvm from the Programmer's Manual section 1 β€” she's a whole icon and she runs QuakeC VM binaries, no cap. ✨


✨ NAME ✨

qcvm β€” a standalone QuakeC VM binary executor 🫢


🌸 SYNOPSIS 🌸

qcvm [options] [parameters] program-file

πŸ’… DESCRIPTION πŸ’…

so qcvm is literally an executor for QuakeC VM binary files β€” the ones you get out of a QC compiler like gmqcc(1) or fteqcc. she comes with a small set of builtin functions, and by default she runs the main() function if there is one. 😌

and because debugging is a whole lifestyle, there are also some options that are genuinely useful for debugging. periodt. πŸ’–


πŸ‘‘ OPTIONS πŸ‘‘

there are 2 types of options, bestie: options for the executor, and parameter options which add parameters that get passed to the main function when it executes. two flavors, both iconic. πŸŽ€

  • -h, --help β€” show a usage message and dip. ✌️
  • -trace β€” trace the execution. every single instruction gets printed to stdout before it runs. it's giving surveillance but make it helpful. πŸ‘€
  • -profile β€” do some profiling. ngl this one is currently not really implemented, but the option is available nonetheless. she's there, she's just not doing much. πŸ’€
  • -info β€” print info from the program's header instead of executing. no running, just receipts. 🧾
  • -disasm β€” disassemble the program by function instead of executing.
  • -disasm-func function β€” search for and disassemble the given function. πŸ•΅οΈ
  • -printdefs β€” list all entries from the program's defs-section. effectively that's listing all the global variables of the program. this option disables execution. 🚫
  • -printfields β€” list all entries from the program's fields-section, so like all the entity-fields declared in the program. this option disables execution. 🚫
  • -printfuns β€” list functions and some info about their parameters. this option disables execution. with a verbosity level of 1, builtin numbers are printed. with a verbosity of 2, the function's sizes are printed as well β€” and that takes a little longer since the size is found by searching for a DONE instruction in the code. πŸ”
  • -v β€” increase verbosity level. can be used multiple times, so stack her up. πŸ“ˆ
  • -vector 'x y z' β€” append a vector parameter to be passed to main().
  • -float number β€” append a float parameter to be passed to main().
  • -string 'text' β€” append a string parameter to be passed to main().

πŸ¦‹ BUILTINS πŸ¦‹

these are the builtin functions that are available, and yes we're going through all of them, no skipping: 🌈

  • 1) void print(string...) = #1; β€” print the passed strings to stdout. at most 8 strings are allowed, so don't get greedy. πŸ™ˆ
  • 2) string ftos(float) = #2; β€” convert a float to a string. ✨
  • 3) entity spawn() = #3; β€” spawn an entity. 🌱
  • 4) void remove(entity) = #4; β€” remove an entity. bye bestie πŸ‘‹
  • 5) string vtos(vector) = #5; β€” convert a vector to a string.
  • 6) void error(string...) = #6; β€” print strings to stdout and then exit with an error. limited to 8 arguments. it's giving dramatic exit and honestly? valid. 😭
  • 7) float vlen(vector) = #7; β€” get the length of a vector.
  • 8) string etos(entity) = #8; β€” get the entity ID as a string.
  • 9) float stof(string) = #9; β€” convert a string to a float.
  • 10) string strcat(string, string) = #10; β€” concatenate two strings, returning a tempstring. 🧡
  • 11) float strcmp(string, string) = #11; β€” compare two strings. returns the same as the corresponding C functions.
  • 12) float strncmp(string, string, float) = #11; β€” compare two strings. returns the same as the corresponding C functions.
  • 12) vector normalize(vector) = #12; β€” normalize a vector so its length is 1.
  • 13) float sqrt(float) = #13; β€” get a value's square root. πŸ“

πŸ”₯ SEE ALSO πŸ”₯

gmqcc(1) β€” go read her too, she's the compiler bestie. 🫢


πŸ’œ AUTHOR πŸ’œ

see <http://graphitemaster.github.com/gmqcc>. πŸ’Œ


⭐ BUGS ⭐

please report bugs on <http://github.com/graphitemaster/gmqcc/issues>, or see <http://graphitemaster.github.com/gmqcc> on how to contact us. they want to hear from you, fr fr. πŸ›


ngl if something's acting cursed, that's the place to go. don't suffer in silence, bestie. πŸ’…

and that's the whole page, mwah. πŸ’‹ this one's from Debian, dated January 31, 2013, and she's filed under QCVM(1). iconic since day one. πŸŽ€βœ¨πŸ‘‘

πŸ“¦ where this page comes from