Allow me to introduce Eschaton 0.8:
Screenshot:
Click for larger
A big thanks to all of my beta testers. You've been an invaluable resource in tracking down bugs and errors.
Download: Mediafire
Edit: Updated to 0.8.1 which fixes some issues with dependency swapping, reflexives and BSP replacement.
Edit: Updated to 0.8.2 which fixes the problem with reading xbox maps. Xbox maps can be opened and expanded but not rebuilt.
YouTube Video Tutorials:
Here is a quick overview of the new features:
Read Me:New Features wrote:
- External tag extraction:
The ability to extract tags to folders on the desktop or elsewhere.- External tag loading:
The ability to load externally extracted tags into memory. They will appear in the extracted meta section and can be treated just like any other tags that were extracted.- Cross-version importation:
A check when importing bitmap and/or sound tags from one version of Halo to another. An option is presented to internalize those tags to avoid the appearance of corrupted tags. For example, if importing from full version into demo/trial, one would select the full version bitmaps and sounds which would then be internalized while importing the tags.- Tag renaming:
In an expanded map, selecting a tag will create an expanded tag control. One of the options on this control is the ability to rename a tag. Simply enter the new name and press the "change" button to enact the name change.- Referencing tag viewer:
Similar to a reference swapper, this control shows all tags that reference the selected tag. Double clicking on those tags will select those tags.- Tag deletion:
An expanded tag can be deleted from the expanded tag control. Certain essential tags cannot be deleted.- Reference swapper:
A minor UI update has been made to the reference swapper, removing the need to type in tag classes and instead select them from a drop down menu. Expanded tags also have a reference swapper which acts in an identical fashion except for the use of offsets instead of location data displayed. In a normal reference swapper the location information is the address within the map of the reference. In the expanded tag reference swapper it is the offset relative to the start of the tag.- SBSP replacement:
A major bug fix has made this feature more reliable and combined with the option to null out implicit references to DOBC and deca tag, all SBSPs should work provided the spawn points are valid.- Remove unreferenced tags:
This option has been added during rebuild. If selected, the rebuilt map will only contain tags that are referenced by map essential tags and their dependencies. Unreferenced tags will not be included in the rebuild.
Read Me wrote:Eschaton 0.8
©2009 Altimit01
Contents:
1.0 Preferences
1.1 General Preferences
1.2 Plugins Preferences
2.0 Interface
2.1 Windows
2.2 Open, Open and Expand, Expand, Load, Load Recursive
2.3 Extract, Recursively Extract, External
2.4 Find Tag
3.0 Meta Editing Features
3.1 Bitmasks
3.2 Colors
3.3 Enumerations
3.4 Floating Point Numbers
3.5 Indexes
3.6 Integers
3.7 Strings
3.8 Tag References
4.0 Special Tag Editing Controls
4.1 Bitm: Bitmaps
4.2 Mod2: Models
4.3 Scnr: Scenario
4.4 Snd!: Sounds
4.5 Ustr: Unicode Strings
5.0 Expanded Tag Editing Controls
5.1 Tag Renaming
5.2 Referencing Tag Viewer
5.3 Tag Deletion
6.0 Reference Swapper
7.0 Rebuilding
7.1 Internalization
7.2 SBSP Replacement
7.3 Indexed Tags
7.4 References not in Target Version
1.0 Preferences
The preferences information is stored in the Data folder in preferences.xml. There are two tabs that cover different settings for Eschaton. When a major change in the preferences is applied, the maps folders will all collapse so as not to have left over UI elements from a previous preference setting. When the apply button is pressed the current preferences will be saved and the window will close. Closing the window without applying will not save those preferences.
1.1 General Preferences
The general preferences cover the main editing features of Eschaton. The meta folders option determines whether to organize the tags of a map by class or by name. If organized by class then like tags such as vehicles will be in one folder together. If organized by name then tags related to each other will be in the same folders. Organize by name splits tags by their name path so a tag called "levels\test\bloodgulch" would be in the test folder in the levels folder and be named bloodgulch.class where class is the tag class of that tag.
Explicit bitmap is an option that has Eschaton designate one bitmaps.map file to be used for all editing. Otherwise, Eschaton will check in the folder a target map is in for bitmaps.map and if there isn't one will ask to be directed towards one.
The meta editor style determines the main editing interface of Eschaton. Scrolling controls array the different editing controls on a scrollable surface so everything is visible at once. If the order controls by offset box is checked then those controls will appear in the order they are in the tag. With the box unchecked those controls will appear in the order they are in the plugin. Classic controls uses a split window with a hierarchical listbox for navigating what to edit on the left and the related editing control to the right.
1.2 Plugin Preferences
The most notable feature of the plugin preferences is the folder access order option. Every folder full of plugins in the plugins folder should appear in this list. Drag the folders into the order which you want Eschaton to search for plugins. When editing a meta, Eschaton will search through each plugin folder in order trying to find a plugin that applies to that meta. Since plugin folders can have both Entity style and HMT style plugins in them, it is necessary to specify which plugin to use if both are encountered when searching for an appropriate plugin. The show hidden feature for Entity style plugins enables hidden features that might not be properly documented or understood.
2.0 Interface
By default Eschaton should open with one window. The maps folder refers to map files that have been opened using the open and expand option. The maps (read/write only) folder contains the maps and tags that can be edited normally. The extracted tags folder contains information on tags that have been extracted for the purposes of rebuilding.
2.1 Windows
Each window is a self contained editing environment. Maps and tags expanded and extracted are tied to the window that was involved in those processes. It's possible to remove maps from the window by selecting the close map option from the file menu. This will free up space in memory and for windows users who can only access a file once it makes it possible to open and expand a map that's already open.
2.2 Open, Open and Expand, Expand, Load, Load Recursive
Open is the command that should be used for normal editing. It loads information about a map into memory and makes it possible to meta edit. Open and Expand loads all of the map data into memory and will take some time. Meta editing is not currently supported for expanded maps. The purpose of expanded maps are for rebuilding. Normally opened maps have in their information control the option to expand them. The Load and Load Recursive options are to open tags that have been externally extracted and load them in to the extracted tag section.
2.3 Extract, Recursively Extract, External
The extract and recursively extract options take all the data for the target tag and load them into memory. This allows them to be imported into expanded maps. The recursive option recursively extracts all dependent tags related to the original so that all necessary files will be present when imported. It is also possible to extract tags externally saving them as files either singly or recursively.
2.4 Find Tag
The tag search option uses a linear string search through tag classes and tag names trying to find any tags that match the input string. It works for all maps in all windows. There is an option to search for all terms, otherwise it will add results that satisfy any term. Double clicking on a result closes the search window and opens the target tag. The search only covers tags in maps.
3.0 Meta Editing Features
This section covers the basic editing features of Eschaton. Above the editing features, is the option to load a new plugin without having to alter preferences. Keep in mind this does not save what plugin was in use and changing to a new tag will load the default plugin for your preferences.
3.1 Bitmasks
Bitmasks contain multiple binary options. Checking a box enables the listed option and unchecking a box disables the option. The map is edited as soon as a box is checked or unchecked.
3.2 Colors
Colors are data structures that describe color information. Colors may or may not have an associated alpha channel that can be edited. Edits made via sliders, or color picker options are applied immediately.
3.3 Enumerations
Also called Enums and IDs, these integer data types have special meanings related to each integer value. Simply choose the desired option from the drop down menu and the map will updated with the correct value automatically.
3.4 Floating Point Numbers
Called Floats, Singles and Doubles, these data structures store decimal numbers. When editing, it is necessary to press enter in the edit field for the map to be updated.
3.5 Indexes
These are special integer data types that reference instances (chunks) of other reflexives. Changes are made as soon as an option is chosen from the drop down menu.
3.6 Integers
Basic integer values. When editing, it is necessary to press enter in the edit field for the map to be updated.
3.7 Strings
Strings are data structures for characters. The add null button adds a null character to the editing. In order to apply the edit press enter in the edit field.
3.8 Tag References
Known as dependencies and loneIDs, these data types reference other tags that the target tag relies upon. Changes are made automatically upon changing the dependent tag but not the dependent tag class.
4.0 Special Tag Editing Controls
This covers editing controls specific to certain tags.
4.1 Bitm: Bitmaps
The bitmap control has options for viewing, exporting and importing bitmaps. Bitmap tags can have multiple images within them. Cubemaps have six different faces. Each image will have mipmaps of different resolutions. For volume textures there are different layer images in differing amounts for each mip level. Load preview loads the image and if available the associated alpha mask. The extract and inject functions write directdraw surface (.dds) files and have the option to write bitmap data as new bitmaps in the bitmaps.map file. Export and import allow for exporting to any image file type but is otherwise the same without the option to inject as new bitmap data.
4.2 Mod2: Models
The model control allows for viewing of models, submodels, bones and attachment points. It is read only.
4.3 Scnr: Scenario
The scenario editor allows for editing of spawn points. Most maps won't be visible by default but sufficient zooming out (right along scroll bar) of the Z-axis will put the map into view. It is necessary to load the map data by pressing the load button. Editing of coordinates is performed through the object interface.
4.4 Snd!: Sounds
Sounds are organized into pitch ranges and permutations. For each pitch range there is the option to export a single permutation and all permutations. Ogg vorbis files need to use the vorbis codec which can be gotten from http://vorbis.com/.
4.5 Ustr: Unicode Strings
Unicode strings are used by the game for displaying messages. Select the message from the list on top and edit it in the edit field below. As with other interfaces it is necessary to press enter to apply changes.
5.0 Expanded Tag Editing Controls
This covers editing specific to tags from expanded maps.
5.1 Tag Renaming
This control allows for the renaming of tags in expanded maps. Changes made will not take place unless the map has been rebuilt.
5.2 Referencing Tag Viewer
This control functions similar to a reference swapper. All tags that have the selected tag as a reference will be shown. Double clicking on one of those tags selects them and opens them as the new tag for editing.
5.3 Tag Deletion
This option allows for the deletion of any non-essential tags.
6.0 Reference Swapper
This control lists all dependent tags for the target tag. Selecting a dependent tag updates the editing control on the bottom. It's possible to change the tag class and the tag name to a new dependent. Changes are applied after pressing the swap button. Double clicking a dependent tag opens that tag as the new target tag.
7.0 Rebuilding
The rebuild process is very straight forward. Open and expand the target map. Extract or recursively extract tags that are to be imported or load tags that were externally extracted. In the rebuild control for the expanded map select the tags to be added from the listbox using the check boxes. By checking the do not import duplicates box, duplicate tags will not be imported. If the box is unchecked then duplicate tags will have a "+" appended to the end of their name. The rebuild button compiles the map and saves it as a new file. An option during rebuilding is to remove unreferenced tags. This means the rebuild will only include map essential tags and their dependencies and remove any dangling tags that are not depended on by anything.
7.1 Internalization
On expanded maps, it is possible to internalize bitmap and sound tags. Switch to the data internalize tab and select which tags to internalize. It is necessary to compile a new map using the rebuild button.
7.2 SBSP Replacement
An extracted SBSP tag cannot normally be imported due to the special way that Halo handles these tags. However, it is possible to replace the existing SBSP tag and import all other dependent tags. Similar to importing a tag, in the BSP selection tab select the BSP to be replaced and what to replace it with. Then press the Replace BSP button. Import and internalize other tags as normal. The map must be rebuilt. The rebuilt map should now have a new BSP. Please note: only SBSPs that have been recursively extracted are allowed to be imported. SBSPs that have implicit references to DOBC and deca tags are sometimes unplayable, so an option to remove the implicit references has been implemented.
7.3 Indexed Tags
CE maps utilize a feature known as tag indexing. Certain common tags are stored in an external file to decrease the data size of the map file. The tag index still maintains references to these tags but they do not exist within the map. When extracting a tag that is dependent on these non-existant tags, Eschaton will prompt to either replace those tags with actual tags from other map files or ignore those references.
7.4 References not in Target Version
When importing tags from one version to another, references to external data such as bitmaps and sounds will be broken. Eschaton will prompt with an option to internalize the data for tags being imported into a map from another version.