-
-
Notifications
You must be signed in to change notification settings - Fork 55
Home
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 QJS scripts (ES7+). 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 (a nod to how Qt refers to the underlying engine).
Almost all the inputs required for the tools are read from YAML files and there is a Warp.LoadYaml function provided to load YAML files in scripts as well.
Refer Warp object for further details.
There are 3 tools provided in the Package. Click each one for more details
-
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.
-
This is a stripped down version of the above intended for quickly patching an application. It works from the command line/terminal and requires an existing [Session File].
-
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.
A patch is a mechanism by which the WARP tool specifies changes to be done in an Exe.
Since the changes would not be same for every app, this process is automated by means of an associated function implemented in QJS scripts.
Refer the Patch guide for further details.
An extension adds on to the Main GUI's capabilities to more than just a mere patcher. Aside from the internal extensions, these are implemented by means of an associated QJS function.
Refer the Extension guide for further details.
A session refers to a set of patch selections & user inputs. They are saved as YAML files. Optionally it could also include Source & Target app filenames.
Refer Session File for further details.
These are all the shortcuts available in the GUIs.
Sequence | Available in | Purpose |
---|---|---|
Alt+W | Main GUI | Hide/Show Script Window |
Alt+C |
Main GUI Test Bench |
Load all changed/modified scripts |
Alt+S |
Main GUI Test Bench |
Load all scripts from 'Support' |
Alt+P |
Main GUI Test Bench |
Load all scripts from 'Patches' |
Alt+E |
Main GUI Test Bench |
Load all scripts from 'Extensions' |
Alt+A |
Main GUI Test Bench |
Load all of the 3 above |
Ctrl+R |
Script Window Test Bench |
Evaluate text written in Script Editor. Test Bench automatically switches tab to Results tab when invoked. |
Ctrl+T | Test Bench | Run test using selected patches/extensions & tester apps |
Ctrl+Tab | Test Bench | Switch to the next tab on the right cyclically |
Ctrl+Shift+Tab | Test Bench | Switch to the next tab on the left cyclically |
Ctrl+Q |
Main GUI Test Bench |
Interrupts loading of session files and existing test runs (for Test Bench). If an Input dialog is open, it is automatically cancelled. |