GithubHelp home page GithubHelp logo

blarghrad's Introduction

----- ArghRad 3.00T9 by Tim Wright (Argh!) -----

----- TESTING VERSION, DO NOT REDISTRIBUTE -----

Modified from original source code by id Software

This is a project to recover compilable C++ source code for the arghrad Quake 2 lighting utility (arghrad300t9.exe).

The decompiled source code has been merged with the original Quake 2 tools source so it should be fairly readable.

The main tools used were Ghidra, Ida and windbg. The process of creating the initial release took about 4 weeks using my spare time.

Current status / TODO:

  • Lighting is working, including bounce and phong.
  • Supports JPG, TGA, PNG, PCX and WAL. Not supported yet: M32 and M8 formats.
  • The -update flag is not implemented yet.
  • Performance test.
  • Test sunlight, all command args and entity options.

Possible bugs to look for:

  • Almost every line was ported by hand using the decompiler output as a reference point, so there is a good chance of finding a mistake anywhere.
  • The ghidra decompiler likes to omit small patches of code, especially FPU code, so it is likely that some code is missing and needs to be found.
  • Most conditional expressions using the FPU were decompiled by hand so I probably got some wrong.
  • Larger functions are more likely to have bugs because they usually had lower quality decompilation results.

Building on linux:

Depends on g++, gcc, and make.

Build the jpeg support library (only need to do this once):

cd src/libjpeg
make

Build arghrad from the src directory:

make

Clean build from src (this does not rebuild libjpeg):

make clean
make

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.