Skip to content

External Tool

PhxGUI

Community Halo Wars tooling for archives, XML conversion, ModManifest.txt, executable patching, and diagnostics.

PhxGUI is an external Halo Wars utility for working with game archives, data files, manifests, and executable patches.

Download

Use the current community release of PhxGUI. Because this is an external tool, New Arcadia documents the workflow but does not maintain the release.

Main Window

PhxGUI has a few persistent settings:

SettingUse
Game VersionChoose Halo Wars: Definitive Edition or Xbox 360. This affects archive and XMB handling.
ERA Expand PathWhere files from dropped .era archives are extracted.
ERA Build OutputWhere rebuilt .era files are written when dropping an .eradef.
Validate Game DataLoads core game data from the expand path and reports errors.
Edit ModManifest.txt for SteamOpens the Steam manifest editor.
Edit ModManifest.txt for WindowsStoreOpens the Windows Store manifest editor.
HW2 Expand PathWork path for Halo Wars 2 package work. The visible UI exists, but HW2 PKG processing is not implemented in PhxGUI.
HW2 Build OutputBuild path for Halo Wars 2 package work. The visible UI exists, but HW2 PKG processing is not implemented in PhxGUI.
MessagesShows operation output, warnings, and errors. Right-click the message area to copy it.

Drag-And-Drop Actions

PhxGUI decides what to do from the file or folder you drop.

Drop thisAction
.eraExpand one or more Halo Wars ERA archives.
.eradefBuild an ERA archive from the definition and nearby extracted files.
.xmbConvert XMB files to editable XML.
FolderRecursively convert XMB files inside the folder to XML.
.exePatch the Halo Wars DE executable for modding support.
.xexDetected, but patching Xbox 360 XEX files is not supported.
ECF fileExpand one or more ECF files.
.ecfdefBuild an ECF file from the definition and nearby extracted files.
Binary data tree fileConvert binary data tree files to XML. These are used by some material/UGX-style data.
.savDecrypt a Halo Wars Windows save/profile file when it is encrypted.
.sav_decryptedDetected, but save re-encryption is not implemented.
.pkg / .pkgdefDetected for Halo Wars 2, but PKG expand/build processing is not implemented in PhxGUI.

PhxGUI accepts groups of the same compatible file type. Mixed drops are usually rejected so it can choose one clear operation.

ERA Archives

Dropping one or more .era files expands them into the ERA Expand Path.

For Halo Wars DE, PhxGUI decrypts archives during expansion and creates a folder for each archive:

text
extracted
  root
  root_update
  sound

It also produces .eradef definition files used by the ERA builder. For loose-file modding, you usually use the extracted folders as reference material and copy only the files you changed into your mod.

Useful flags for expansion:

FlagEffect
Don't overwrite existing filesExisting extracted files are left alone.
Decompress Scaleform filesDecompresses Scaleform files to matching .bin files.
Transform GFX filesConverts .gfx files to matching .swf files.
Ignore non-data filesExtracts only text and XMB-style data files.
Skip VerificationIgnores archive checksum failures. Useful for older or unusual builds.
Verbose OutputAdds more detail to the Messages output and logs.

Building ERA Files

Deprecated workflow

Building .era files is deprecated for normal modding. Use loose archive folders through ModManifest.txt, and use Serina for the runtime features that used to require packaged archive work.

PhxGUI still has legacy support for dropping one .eradef to build an encrypted .era with the same base name. It reads assets beside the .eradef and writes the result to ERA Build Output.

Useful build flag:

FlagEffect
Always build with XML instead of XMBIf the .eradef references an XMB but a matching XML exists on disk, PhxGUI uses the XML file instead.

Beginner workflow

For normal loose-file modding, do not rebuild .era files. Use expanded folders plus ModManifest.txt.

XMB And XML

Dropping .xmb files converts them to editable XML. Dropping a folder searches it recursively and converts every XMB it finds.

Examples:

text
leaders.xml.xmb -> leaders.xml
data\leaders.xmb -> data\leaders.xml

Behavior:

  • If Don't overwrite existing files is enabled, existing XML outputs are skipped.
  • If an output file is read-only, it is skipped.
  • The converter uses the selected game version to pick the correct data size mode.
  • XML-to-XMB is present in the internal converter enum, but is not implemented as a usable drag-and-drop action.

Binary Data Tree Files

PhxGUI can convert binary data tree files to XML. This format is similar in spirit to XMB and is used by some UGX/material data.

Behavior:

  • Dropping a binary data tree file creates an XML version beside it.
  • Existing outputs respect Don't overwrite existing files.
  • XML-to-binary conversion is detected internally but not implemented as a usable workflow.

ECF Files

PhxGUI can expand and rebuild ECF files.

Dropping an ECF file expands it beside the source file and creates an .ecfdef definition. Dropping one .ecfdef rebuilds an ECF using files beside the definition.

Useful flags:

FlagEffect
Don't overwrite existing filesExisting expanded files are left alone during ECF expansion.
Skip VerificationIgnores ECF checksum failures.
Verbose OutputAdds more operation detail.

Executable Patching

Dropping the Halo Wars DE .exe attempts to patch it for modding support.

PhxGUI creates a backup beside the executable before writing changes:

text
xgameFinal_UNTOUCHED.exe

The patcher uses pattern matching rather than only fixed SHA1 offsets. It attempts patches for:

  • ERA digital signature checks;
  • a particle gateway assertion;
  • user profile ticker information.

Limits:

  • Read-only executables are not patched.
  • If Don't overwrite existing files is enabled and the backup already exists, backup creation may fail.
  • .xex files are detected, but Xbox 360 executable patching is not supported.
  • A future game update can still break pattern matching.

ModManifest.txt Editor

PhxGUI can edit the correct ModManifest.txt for Steam or Windows Store.

Common locations:

VersionPath
SteamC:\Users\YourName\AppData\Local\Halo Wars\ModManifest.txt
Windows StoreC:\Users\YourName\AppData\Local\Packages\Microsoft.BulldogThreshold_8wekyb3d8bbwe\LocalState\ModManifest.txt

The editor stores one directory per row. Each directory should be a folder containing Halo Wars-style subfolders such as data, art, or sound.

Example:

text
C:\Users\YourName\Documents\Halo Wars Mods\first_mod\root_update
C:\Users\YourName\Documents\Halo Wars Mods\first_mod\root
C:\Users\YourName\Documents\Halo Wars Mods\first_mod\sharedscenario

Editor behavior:

  • A checked Disabled? row is written with ; at the start.
  • Empty directory rows are ignored when saving.
  • Invalid path characters are rejected when loading.
  • Rows higher in the list are searched first.
  • Open Mod Folder opens the selected row.
  • Open ModManifest Folder opens the folder containing the manifest.

Do not list only a mod parent folder unless that folder itself contains game subfolders. For the per-archive layout, list the archive folders:

text
...\first_mod\root
...\first_mod\sharedscenario

Validate Game Data

Validate Game Data tries to load the core game data from ERA Expand Path. Use it after expanding archives if you want to check whether the extracted data can be read by the tooling.

Output appears in the Messages area and may also be written to PhxGui.log.

Save Files

Dropping an encrypted Halo Wars Windows .sav file decrypts it to a matching decrypted file.

Behavior:

  • Invalid save files are skipped.
  • Already-decrypted save files are skipped.
  • Existing decrypted outputs respect Don't overwrite existing files.
  • Re-encrypting .sav_decrypted files is not implemented.

Flags Reference

FlagUse
Don't overwrite existing filesPrevents conversion/extraction output from replacing existing files where supported.
Decompress Scaleform filesWrites decompressed .bin output for Scaleform files during ERA expansion.
Transform GFX filesConverts .gfx to .swf during ERA expansion.
Ignore non-data filesLimits ERA expansion to text and XMB-style data files.
Separate ERA foldersExpands each ERA into its own subfolder. Current PhxGUI enables this by default.
Always build with XML instead of XMBDuring ERA build, uses matching XML files when the definition references XMB files.
Verbose OutputPrints more detailed operation output. Enabled by default.
Skip VerificationSkips checksum verification for ERA or ECF processing.
Assume Drag n Drop Files are ECFTreats all dropped files as ECF files. This is an advanced fallback for ambiguous extension-less files.

Some internal flags are hidden from the UI because PhxGUI now handles those flows directly.

Not Implemented Or Limited

These file types or directions are visible in the source but should not be treated as finished user workflows:

AreaStatus
Halo Wars 2 .pkg / .pkgdefDetected, but expand/build processing is not implemented.
XML to XMBInternal mode exists, but conversion is not implemented.
Binary data tree XML to binaryInternal mode exists, but conversion is not implemented.
Save re-encryption.sav_decrypted is detected, but encryption is not implemented.
Xbox 360 .xex patchingDetected, but not supported.

First Use

Start with Getting Started. That guide uses PhxGUI to expand root.era, convert leaders.xmb, and load a small loose-file mod through ModManifest.txt.

Built for the Halo Wars modding community.