Difference between revisions of "Project X"

From Worms Knowledge Base

Jump to: navigation, search
(Cross-compatibility issues: fix explanation of dirt desync, which was subtly incorrect (though this made no difference most of the time))
m (File formats: Amount of 4-byte to 1-byte booleans is quite mixed, clarify that.)
Line 47: Line 47:
 
The following general information applies to all Project X file formats:
 
The following general information applies to all Project X file formats:
 
* All strings are stored in ASCII and prefixed with an integer determining their length. Thus, there is no postfix or 0-terminator, and Unicode support is missing.
 
* All strings are stored in ASCII and prefixed with an integer determining their length. Thus, there is no postfix or 0-terminator, and Unicode support is missing.
* Most of the boolean values are stored in 4 bytes. The values 0x00000001 and 0x00000000 correspond to true and false, respectively. If a bool requires only 1 byte, the values for true and false are 0x01 and 0x00.
+
* Boolean values are sometimes stored with 1 byte, sometimes with 4 bytes. Values resulting in 0 represent false, all others true.
  
 
== Known issues ==
 
== Known issues ==

Revision as of 22:03, 27 April 2017

(Up to WormKit or Software)
In other languages: English (en) • Deutsch (de) • +/-
This WormKit module is not compatible with the latest W:A update (3.8.1).
icon Project X
Project X screenshot
Developer: Entuser
Latest version: v0.8.0 / 16 August 2011
Supported games: W:A
Supported W:A version: 3.6.31.0
Language: Pascal
License: Freeware
Website: http://px.worms2d.info/

Project X (or PX) is a game editor for Worms Armageddon. The program includes features from The Fiddler, and the ability to create custom scripts, which allow you to control objects and events in the game.

Features

Project X includes a scheme editor, a library editor and a map editor for making map-specific events. The game and the scheme editor can edit existing weapons in the game, and add additional weapons with weapon 'tables'. The program also has full support for adding new sprites to the game.

Online Features

The Project X module itself can be used online if all players have the appropriate version of the .dll file (with the same network protocol). If the version is very old and cannot be used to play, the game will give a warning.

Before the game it checks whether all of the guests have the appropriate version of the .dll file and sends the PX scheme with all the libraries that are attached to it.

How to run

You must have W:A 3.6.31.0 and WormKit or WormKitDS installed. Download and extract the files in the rar file (can be opened with 7-Zip) into your Worms Armageddon directory.

Run the PXUpdater.exe - this is a very important step - otherwise the game will not work. The updater automatically downloads all the latest DLLs, libraries and other up-to-date components. It is recommended to do the update every 2 days at least. The updating is fast and only requires user to press the respective button. Please note that it must be run from the W:A folder.

To create your own schemes, libraries and PX maps, go into the "Editors" directory, and run PXSchemeEd.exe, PXLEdit.exe or MEd.exe respectively. Save the scheme files in your "Worms Armageddon\PXSchemes" directory, the libraries into "Worms Armageddon\Libs", and the maps to the SavedLevels folder as usually.

To run Project X, just start the game as you do usually (WormKit.exe in case of WormKit, WA.exe in case of WormKitDS). The scheme can be selected in the offline multiplayer or online lobby.

File formats

Project X introduces some new file formats to Worms Armageddon. The formats were not officially documented until Pac-Man reverse engineered the formats of version 0.8.0 in January 2014.

  • Project X scheme file (*.pxs)
  • Project X library file (*.pxl)
  • Additionally, the map PNG files generated by the Project X map editor contain additional chunks after the ones of typical PNG images. These have not yet been analyzed.

The following general information applies to all Project X file formats:

  • All strings are stored in ASCII and prefixed with an integer determining their length. Thus, there is no postfix or 0-terminator, and Unicode support is missing.
  • Boolean values are sometimes stored with 1 byte, sometimes with 4 bytes. Values resulting in 0 represent false, all others true.

Known issues

Cross-compatibility issues

Although Project X is said to be compatible with normal players when its features are disabled, still there are a few known issues which may lead to a desynchronization between such players regardless of whether it is "enabled" or "disabled".

  • The colors of the flying dirt from when the Longbow or Mole Bomb hit a longbow arrow or girder are not taken from the pixels in the arrow or girder itself (like standard W:A does), but from the initial state of the map. If, at the beginning of the game, there was no land where the arrow/girder pixels currently are, no dirt will fly, thus causing a desynchronization from clients that are not running Project X (because dirt particles affect the random number seed). In practice this usually happens when an arrow is shot into another arrow, or a Mole Bomb digs through a girder, but it could also happen when an arrow is shot into a girder, or a Mole Bomb digs through a longbow arrow.
  • Unlike standard W:A, large explosions do not erase smaller circles from the soil background. In fact, under Project X the soil background never gets erased at all, whereas in standard W:A it's possible for the entire soil background to be erased. This can cause a desynchronization if <v3.6.22.0 is emulated.
  • Project X changes a floating-point precision flag (probably due to not setting D3DCREATE_FPU_PRESERVE), causing RubberWorm Proportional Blackhole physics to be modified slightly, due to intermediate floating-point results being rounded to single precision. Sooner or later players will be desynchronized, if some are using Project X and others aren't.

Rendering and similar issues

  • On some systems, the automatic extraction and conversion of Gfx.dir sprites may fail and there won't be any sprites visible in the game. The reason is either a folder with restricted access or a Direct3D fail (?). Package can be downloaded manually and extracted into the W:A root.

See also


Personal tools