Skip to content

snems/BigIndian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

What is this?

A decompiler for reverse engineering qvm files of Quake 3 game.

This is an experimental project; development is currently stopped.

How build and use

Requirements:

sudo apt install libtinyxml-dev

Build decompiler:

cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug && cmake --build build -t BigIndian

Run:

  1. Edit ./config/game.xml

  2. Execute:

./build/BigIndian ./configs/game.xml
  1. See ./full.c
...
int vmMain (int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10, int arg11) 
{
  int tmp1;
  int tmp2;
  int tmp3;
  int tmp4;
  int tmp5;
  stack_14 = stack_2c;                                                            /* Address : 0x1 */
  if (stack_14 >= 0)/* jump to 0x54 */                                            /* Address : 0x5 */
  {
    if (stack_14 <= 0x5)/* jump to 0x54 */                                         /* Address : 0x9 */
    {
      Jump to *(((stack_14 << 0x2) + 0x4));                                         /* Address : 0xd */
      function_0x9d0(stack_30, stack_34);                                           /* Address : 0x1b */
      return 0;                                                                     /* Address : 0x1e */
      return;                                                                       /* Address : 0x20 */
      function_0xac3();                                                             /* Address : 0x22 */
      return 0;                                                                     /* Address : 0x25 */
      return;                                                                       /* Address : 0x27 */
      stack_18 = function_0xbbe();                                                  /* Address : 0x29 */
      return stack_18;                                                              /* Address : 0x2d */
      return;                                                                       /* Address : 0x30 */
      function_0xa16f(stack_30, stack_34, stack_38);                                /* Address : 0x3b */
      return 0;                                                                     /* Address : 0x3e */
      return;                                                                       /* Address : 0x40 */
      stack_1c = function_0xcb();                                                   /* Address : 0x42 */
      return stack_1c;                                                              /* Address : 0x46 */
      return;                                                                       /* Address : 0x49 */
      stack_20 = function_0xdc();                                                   /* Address : 0x4b */
      return stack_20;                                                              /* Address : 0x4f */
      return;                                                                       /* Address : 0x52 */
    }
  }
  function_0x106(0x32c7, stack_2c);                                               /* Address : 0x59 */
  return 0xffffffff;                                                              /* Address : 0x5c */
  return;                                                                         /* Address : 0x5e */
}
...

Tests

Requirements:

sudo apt install catch2

Build tests:

cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug && cmake --build build -t BigIndianTests

Run tests:

./build/BigIndianTests

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages