Halomods Community Portal: Assembly - Blam Research Tool - Halomods Community Portal

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

3rd Gen
Assembly - Blam Research Tool

#1 User is offline   Xerax 

  • Double Faggot
  • PipPipPip
  • Group: Members
  • Joined: 07-May 11
  • LocationLondon, UK

Posted 11 March 2013 - 12:23 AM

Posted Image

Posted Image

After eight months of development, we are proud to announce the first stable release of Assembly, a 100% open-source Blam/Halo research tool and map editor. It enables users to both research how the Halo games work and also share creative modifications that are made. Assembly was built from the ground up with four goals in mind:

  • Flexibility - Assembly is capable of seamlessly opening and editing .map, .mapinfo, and .blf files from Halo 2: Vista, Halo 3, Halo 3: ODST, Halo: Reach, and Halo 4, with support for more games coming soon.
  • Speed - Spend more time modding and less time waiting for trivial tasks to complete. Even the largest tags load extremely quickly with invisible fields enabled, and search and autocomplete features throughout the program allow you to find what you need quickly
  • Usability - We built Assembly using Windows Presentation Foundation and utilized modern UI design concepts. Thus, assembly is both easy to use and easy to look at.
  • Customizability - Don't like the default blue look? Select from one of four different UI themes. Don't like how the View Value As tool is laid out? Make your own meta editor plugin for it. Almost everything in Assembly can be customized in some way. Not to mention that the source code is freely available on GitHub to give you even more control.


Supported Features:

  • Beta versions of games are supported
  • Patch compatibility from Alteration and Ascension
  • Patches can contain name, author, description, and target map information
  • Voxel converter for creating custom Halo 4 loading screens
  • Plugin generator
  • Plugin editor with syntax highlighting code completion
  • Plugin converter for converting Ascension and Alteration plugins to the new format
  • Add support for other similar builds on the fly with XML
  • "Xbox Memory" sidebar for controlling your console and taking screenshots
  • Automatic update system


Maps:

  • Tagnames decrypted for all games
  • StringIDs decrypted for all games
  • BlamScript decompilation for Reach (soon to be all games)
  • Locale viewing and editing, with special characters (e.g. button icons) replaced with XML tags
  • Meta data viewing, editing, and searching
  • Meta data "View Value as" window


BLF:

  • Extract existing images
  • Inject new images


MapInfo:

  • Edit map ID
  • Edit map internal name
  • Edit map external name and description



Screenshots:

Spoiler


Assembly was brought to you by:

  • AMD
  • Xerax
  • Thunder/Dovahkiin
  • Lord Zedd
  • DeadCanadian
  • SnipeStyle
  • gabe_k


With special thanks to:

  • Xenomega (Xenon.7/Detox)
  • Kornman00
  • CLK
  • DarkShallFall
  • Prey
  • Shade45
  • Anthony
  • KingDingDan
  • XenonDev
  • Gravemind


Finally, we also want to thank all who have been a part of research in the Halo scene over the past decade. Without your work, none of this would have been possible.

Here's to the next ten years.

Download from SourceForge
Get the Source Code

#2 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 11 March 2013 - 02:51 AM

I don't think there's a way for me to comment on source files on github, at least not without being a repo member, so I'll just reply here.

From Reach retail and later, they started to use more bits for the index portion (and presumably, less bits for the bucket index portion) of the string_id handle. So assuming the lower 16bits of the handle are the index bits is no longer applicable. I added support for these setups to BlamLib (keep in mind, it's GPLv3'd). Each StringId contains a Description handle which, as the name implies, describes the handle itself. Each game platform's engine string_id definitions in BlamLib then have a definition element for a StringIdDesc (see H4X's definitions for an example)

I mention this because I don't see any such support in your project's StringId code.

Also, you may want to check out auto implemented properties if you have never heard of them :)/>

#3 User is offline   AMD 

  • Newbie
  • Pip
  • Group: Members
  • Joined: 12-November 11

Posted 11 March 2013 - 11:47 AM

View Postkornman00, on 11 March 2013 - 02:51 AM, said:

I don't think there's a way for me to comment on source files on github, at least not without being a repo member, so I'll just reply here.

From Reach retail and later, they started to use more bits for the index portion (and presumably, less bits for the bucket index portion) of the string_id handle. So assuming the lower 16bits of the handle are the index bits is no longer applicable. I added support for these setups to BlamLib (keep in mind, it's GPLv3'd). Each StringId contains a Description handle which, as the name implies, describes the handle itself. Each game platform's engine string_id definitions in BlamLib then have a definition element for a StringIdDesc (see H4X's definitions for an example)

I mention this because I don't see any such support in your project's StringId code.

Also, you may want to check out auto implemented properties if you have never heard of them :)/>/>


Thanks for the feedback! I'll look into fixing that.

And yes, I have heard of auto-implemented properties but I really don't use them as much as I should be...

#4 User is offline   kornman00 

  • SourceGuy 2.0
  • Group: Administrators
  • Joined: 15-November 01


Users Awards

Posted 11 March 2013 - 12:29 PM

You mention that you're supporting script decompiling. Are you aware that 343i changed the language frontend for H4 from something LISP-like to a syntax more along the lines of a C/BASIC-like? Some things to keep in mind is that they also added support for defining object instance functions. IE, a static function can be marked as usable on an object instance, allowing the use of an implicitly defined 'this' reference.

#5 User is offline   SnipeStyle 

  • Newbie
  • Pip
  • Group: Members
  • Joined: 11-March 13

Posted 11 March 2013 - 08:06 PM

View Postkornman00, on 11 March 2013 - 12:29 PM, said:

You mention that you're supporting script decompiling. Are you aware that 343i changed the language frontend for H4 from something LISP-like to a syntax more along the lines of a C/BASIC-like? Some things to keep in mind is that they also added support for defining object instance functions. IE, a static function can be marked as usable on an object instance, allowing the use of an implicitly defined 'this' reference.

Yeah, we recently discovered those changes. Fortunately 343 forgot to remove the .hsc-files from the maps, so finding the correct options in the hsdt class didnt take that long. Now the only thing left to do is to find out the purpose of the last unknown reflexive and then we should able to add support for H4 (only Reach is supported atm).

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic