Author: Mikero
All Mikero tools 'behave', install, and operate in an identical manner. You are strongly advised to read the General Readme once.
General inspection and play tool by Mikero
Originally designed to assist with Flashpoint : Elite for the xbox and developed as such by Mikero and Hoz. We have become rather fond of the name, even though it is a much more capable tool than simply handling Xbox files.
Appreciation to Ofpec, Planck. Hoz, Jahve, Raedor, Phaeden, Q, Kegs, and many others, for support and encouragement in both using and testing this tool.
Eliteness accommodates unique features found in almost all BI engines:
Eliteness does not work with the VBS1 & 2 engines.
This tool has no association with Bohemia Interactive and no approval, warranty, implied use, or permission has been given by them. Nor is that ever likely to be the case. Use this tool at own risk. If thru using this tool, your mother in law drops down dead or your wife runs off with your secretary, well hell. Sue me.
A no nonsense auto installer saving you sweat and tears.
Do not run this, or any tool from bis, as administrator.
'Admin' is not what you think it is, it is an alias for 'Microsoft Office Use only'.
Consider yourself warned.
Grab the self installers for these here
This exe like all other pbo tools comes with it is own, no-brainer, self installer. You are advised to use it.
Many tools interact with each other and need common registry settings and common file locations to do so.
If you choose to roll your own:
This is a multi-purpose tool for all engine varieties as noted above.
When decoding, the dll determines the engine type the file is intended for.
When creating files and exporting, the engine type intended is arbitrary. For this reason you need to set the target engine in the options panel. On installation the default is Arma.
Use the options panel in the gui to explicitly MAKE pbo's, or, raPified (binarised) files for a given engine. Settings are preserved on exit.
Config.bin (eg) Rapification for Armed Assault and Elite.
Binarised files for Armed Assault and Elite use a newer method of raPification. To convert a config.cpp (eg) to a config.bin for THESE engines, the tool must explicitly know which method to use since nothing in the text file (mission.sqm eg) tells it which way to encode.
The type of raPification is implicitly defined in the options panel, via the engine selection. Eg, Selecting resistance, will binarise using the older encoding.
The type of raPification can be explicitly defined in the text file concerned by stating
#define _ARMA_
// or
#define _XBOX_ [withSignature]
// or
#define _OFP_
Without the define, text files are assumed to be for Arma.
This means no files from and for Arma require any modification but you are advised to state it explicitly. We don't know when bis will change the target output format again. There are no performance losses doing this or any incompatibility issues with other tools or the bis engine itself.
All debinned files insert one of the above defines automatically, and as a future convenience for you.
Mission,pars, header.bins and other files intended for the Xbox (and unique to the xbox) require correct signatures inserted into them by this tool.
The macro
#define XBOX withSignature
// or
#pragma XBOX withSignature
is required in the mission.par text file and similarly the header.bin text file for this to take place automatically.
Any file derapified by this tool automatically has the above #defines inserted, as appropriate.
To cater for the various engines available, certain features are enabled / disabled according to selection.
For instance, since file signatures are only applicable to Elite, the options dealing with this (verification or creation) are only enabled when Elite is selected as the engine.
The drop down engine selection has particular significance when creating pbo's. or creating rapified files.
Elite pbo's cannot, for instance, be compressed. All {{ofp}} files can, and only some Arma files. Let the dll decide, but setting the correct engine type.
Creating and extracting pbo's can, naturally, be a dangerous process, simply because it creates files. Normally, you would want to be asked first. The option exists to turn this confirmation off, if you find it annoying.
Similar comment
When displaying the contents of an fxy file, the result is stored in NameOfFxy.txt, adjacent to NameOfFxy.fxy
As a convenience, this file can remain there (or moved) for future reference.
Since these devices are read only, and since, filling the explorer tree can take some time, normally, cd drives are not shown in the
navigation window.
When creating a pbo...
None of the following options affect the external files.
Thumbs.db however is never installed in a pbo.
No file is inspected or altered. The pbo creates a mirror of files in the target folder (except for thumbs.db)
When creating pbo's, this application can check the syntax of description.ext, config.cpp, and mission.sqm rvmat files for errors before making the pbo.
Alternatively, you can manually check these files via the right click in the file window.
config.cpp, and mission.sqm and all rvmat files can be installed in the pbo as binarised. This can significantly improve engine load times, to say nothing of the implicit error free state of successfully binarised text.
Eliteness automatically assigns the correct prefix in the pbo header, when appropriate.
When enabled, files are compressed inside the pbo. The exception list provides for typical file extensions (such as jpg) that have no benefit in doing so and only increase engine load times.
Note that the dll itself decides whether files are worthy of compression.
lzss compression has been deprecated by Bis (actually, they've just plain forgot it is still in the engine). This compression method offers you a mild form of protection against extraction. most other tools throw their hands in the air if encountered.
The application is aware of specific file extensions that are (or might be) in rap format.
Examples:
Right clicking, or, double clicking on these files types (among others) allows the option of decoding them.
When attempting to open these types of files as text (the default 'action' when double clicking), the application automatically checks first if, in fact, it contains raPified content and treats them appropriately.
Prior to release 2.28 of eliteness, lack of semicolons at end of line was 'acceptable'. The {{ofp}} engine (versus arma) accepts an 'assumed' semicolon where end of line is reached.
Due to the pernickedness of Arma, and the fact that it is 'not a good idea' anyway, the default for arma, is to scream if these items are missing.
Description.ext is notorious for the following:
titles[] =
{
0, $STRD_DX02v01;
13, $STRD_DX02v01a
};
The semicolon is not rapifiable (which is one reason why desc.ext cannot be binarised)
The default for this is to allow the semicolon to pass thru unchecked. Not a good idea, but too many desc files have this structure and would cause lint to scream a little too much.
This is the default for Arma and Elite selection, so the the #define _ARMA_ macro is not required (but it is good practice anyway to state it)
An Arma pbo contains an MD5 checksum signature at the end of the file.
This signature does nothing more (or less) than verify the integrity of the pbo.
It is ignored by the arma engine and need not be present at all!
However, this same signature is used to generate the bikey used for MP play.
The bikey is generated from a combination of an author's private key and the pbo's MD5 checksum.
Enabling the above check, causes a bikey for THIS 'unique' pbo, to be generated.
Be aware, that if you choose to generate a bikey at all:
No two pbos can ever have identical MD5 checksums due to timestamps.
If you recreate your pbo, even with, identical data, you need , a new bikey.
Note that the separate tool ExtractPbo and MakePbo can make un-datestamped pbo's avoiding the above issue.
The following functionality is a feature of the accompanying DLL. The Eliteness tool exposes these features.
thumbs.db
[.txt] or PboPrefix.txt
Eliteness attempts to maintain compatibility with other tools trying to wrestle with unique features of Armed Assault.
is an inconvenient and early attempt by kegetys and myself to wrestle the xbox to the floor.
The much more power packed .txt replaces it.
The dll will accept either of these files.
In essence, an arma/elite pbo uses the resistance header to contain file prefix information. The prefix is used for other addons to access this one.
The following comments apply when the full features of the dll are employed to automate the process of creating binarised missions and addons. To create plain vanilla pbo's with no special handling (eg just like any other pbo tool) simply select do nothing, in the options panel.
description.ext
config.cpp
confg.cpp.txt
Following comments apply only if "AutoRap Keep Text" option selected. Otherwise this file is treated 'normally'.
config.bin
mission.sqm
mission.sqm.txt
mission.bin
*.rvmat
The most powerful feature of the dll, and consequently Eliteness, is it is ability to discover bad file references in your files (plural).
This feature will, indeed, save you hours of agony, start/ check /crash, fix, start/ check/ crash..........
The dll will simply not permit a pbo to be created if a file is missing in ANY reference. This includes references in wrps, references in bisurf, rvmat, p3d's, in fact any file included in the pbo of ANY type is examined for external file references. Mission.sqm and desc.ext as well. In fact, any file.
The same can be said for any syntax errors. the dll goes out of it is way to prevent a bad pbo being created.
The 'key' to success however is that you must have established a 'p' drive. The drive must contain the extracted contents of the engine. A useful utility called arma2p (or arma3p) will do this for you.
The reason for this requirement is files in the engine cannot be "anywhere" on the windows os. they ALL are relative to the linux root folder /. and to achieve that, you require a p:\ drive to emulate it.
Quite frankly, if you have not established a p: drive, you simply are not serious. You don't need, and my tools are not, useful to you. Live with your crash to desktops until you bite the bullet.
Eliteness is a one stop shop for examining bis files. Separate utilities such as DeP3d will create files. With the exception of making pbo's, Eliteness is not in the same game. It is an inspection tool to check results.
Sundry extras is my attempt at documenting the added goodies to eliteness as time permits.
Despite the above comments about non-creation. the dertm panel within Eliteness is full featured and equivalent to it is external namesake.
You can drag and drop any p3d, rtm or skeleton text file onto that panel as appropriate, or simply use its browse buttons.
DeRtm analyses and displays the contents of any binarised, or unbinarised rtm. Up to and including Arma3.
As an added feature it can export binarised rtm back to plain jane.
Be aware that for this to happen, the dll requires an appropriate skeleton to work with. This is almost inevitably ofp2_manskeleton. Animated destructions require their own unique skeleton for their own unique p3d.
In all cases, you can provide A skeleton from any binarised soldier p3d eg, or, text equivalent of model.cfg (the file name is not important providing it contains the appropriate skeleton.cfg)
As stated the 'appropriate' skeleton is almost always ofp2_manskeleton, obtainable in any human p3d.
The top panel shows:
This is a tree of unique instances of the land_xx class. Each instance refers to an identically named p3d, but with different positon data (obviously) for each one.
To look at the specific data of each instance, click on the land_xx of interest.
Shows one of each unique geolod map= property that the wrp uses.