Skip to content
Neo Mind edited this page Jan 5, 2021 · 10 revisions

Welcome to WARP

The WARP project provides a means to access & modify a 32 bit Windows Application.

To make it as flexible as possible, the tools only provide a framework and requires the user to specify the actions they need by means of Patches or Extensions. (For e.g. The rock* branches provide the Patches & Extensions for RO).

Both are implemented by means of functions written inside JS scripts (ECMA-262). In addition to the standard JS, the tools also provide additional APIs extending it. Also, there are various supporting functions and constants provided as well by means of JS itself.

Due to all these additions, we refer to the language as QJS everywhere in this Wiki.

Almost all the inputs required for the tools are read from YAML files. An API has also been provided to load them from Scripts as well.Refer Warp for further details.

Overview

Further reading

Tools

There are 3 tools provided in the Package. Click each one for more details

  • Main GUI - For an end-user, this is the primary tool you would be using most of the time. It provides the interface for selecting & applying patches or running a specific extension using a loaded app.
  • Console - This is a stripped down version of the above intended for quickly patching an application. It requires an existing Session file.
  • Tester GUI - This one is of interest to a person developing Patches and/or Extensions. It provides a means of testing your code across multiple applications in one go.

Overview

Patches

In the context of WARP, a Patch refers to an entity which sets up changes to be performed on the loaded app when that patch is 'applied'.
Since the changes would not be same for every app, this process is automated by means of an associated function implemented in QJS scripts.
Patches are represented by means of its title, author name, recommendation status & description.
Refer Patch & Extension Guide for further details.

Extensions

Extensions are additional features to the tool implemented by means of QJS functions.
Most often their purpose is to extract some part of the loaded app. They are not available in Console as of now.
For Main GUI they get added to the right side drawer. For Tester GUI they are added into a list to be tested.
Refer Patch & Extension Guide for further details.

Session

Session refers to set of patch selections & user inputs. They are saved as YAML files.
Optionally it could also include Source & Target apps. Refer Session file for further details.

Shortcuts

Sequence Purpose
Alt+W Hide & Show Script Window
Alt+C Load all changed/modified scripts
Alt+S Load all scripts from 'Support'
Alt+P Load all scripts from 'Patches'
Alt+E Load all scripts from 'Extensions'
Alt+A Load all of the 3 above
Ctrl+R Only for Script Window & Tester GUI
Evaluate text written in Script Editor
Tester automatically switches tab to 'Results' when invoked
Ctrl+T Only for Tester GUI
Run test using selected patches/extensions & tester apps
Ctrl+Tab Only for Tester GUI
Switch to the next tab on the right cyclically
Ctrl+Shift+Tab Only for Tester GUI
Switch to the next tab on the left cyclically
Clone this wiki locally