A Community discussion forum for Halo Custom Edition, Halo 2 Vista, Portal and Halo Machinima

Home  Search Register  Login Member ListRecent Posts
Viewing User Profile for: MosesofEgypt
About Contact
Joined: Apr 3, 2013 04:12 PM
Last Post: Yesterday @ 02:56 PM
Last Visit: Yesterday @ 11:03 PM
Your Age:
What Games do you play:

Send Private Message
Post Statistics
MosesofEgypt has contributed to 425 posts out of 465241 total posts (.09%) in 1,754 days (.24 posts per day).

20 Most recent posts:
Halo CE General Discussion » Bitmap Tag Offsets and Structure Yesterday @ 02:56 PM (Total replies: 3)

LOL, that was actually pretty good. Yeah, the bitmaps, sounds, and models ones are completely blank and are a reminder to me to elaborate on those specific tags. I DID specify which whitepapers you should look at though, and the bitmaps and sounds ones were not listed lol.

Also, don't worry too much about the yelo maps. The resource caches the yelo maps use are literally exactly the same format as the bitmaps.map, sounds.map, and loc.map. The only things to worry about with yelo maps are that there are new types of tags in the non-resource maps, and the cheape.map is compressed and appended to the end of the map file.

Halo CE General Discussion » Bitmap Tag Offsets and Structure Yesterday @ 01:39 PM (Total replies: 3)

Look in the "notes" folder of the MEK. If you haven't downloaded the mek, you can grab the relevant odt documents here:

These are very incomplete, but they explain just enough to answer your questions. The
"Constants, Enumerators, and Structures" file is what you want to look at, as I've heavily commented all of the fields in the structures, including the bitmap structs.

The "Mapfiles" one is also heavily incomplete, but the bottom contains a section describing all the differences people should care about between metadata and tagdata. Everything explained in it is taken directly from Refinery's ripping routines.

If you have any specific questions about structures, skim through my reclaimer library first.

Additionally, there is a description of the jms model file type, and a definition extractor to extract very verbose descriptions of the tag structures. They aren't in any specific language, but you should be able to figure them out. They are pulled directly from reclaimer's definitions, but they have all the macros removed and have offsets explicitly defined for each field. Here's an example of what they look like.
# bitmap

{ Struct, size:48, entries:17, bitmap
{ UEnum32, offset:0, size:4, bitm_id
bitm }
{ UInt16, offset:4, size:2, width }
{ UInt16, offset:6, size:2, height }
{ UInt16, offset:8, size:2, depth }
{ SEnum16, offset:10, size:2, type
texture_2d }
{ SEnum16, offset:12, size:2, format
a8 }
{ Bool16, offset:14, size:2, flags
{ mask:0x1, power_of_2_dim }
{ mask:0x2, compressed }
{ mask:0x4, palletized }
{ mask:0x8, swizzled }
{ mask:0x10, linear }
{ mask:0x20, v16u16 }
{ mask:0x40, unknown }
{ mask:0x80, prefer_low_detail }
{ mask:0x100, data_in_resource_map }
{ UInt16, offset:16, size:2, registration_point_x }
{ UInt16, offset:18, size:2, registration_point_y }
{ UInt16, offset:20, size:2, mipmaps }
{ FlUInt16, offset:22, size:2, pixels }
{ UInt32, offset:24, size:4, pixels_offset }
{ UInt32, offset:28, size:4, pixels_meta_size }
{ UInt32, offset:32, size:4, bitmap_id_unknown1 }
{ UInt32, offset:36, size:4, bitmap_data_pointer }
{ UInt32, offset:40, size:4, bitmap_id_unknown2 }
{ UInt32, offset:44, size:4, base_address }

EDIT: The bitmap flag is easy to find in its struct, but the sound one is in a general struct. To avoid confusion, i'm just going to paste it in here:
typedef struct RawdataRef {
SInt32 size;
/* This flag is used to determine if the rawdata is in a Halo PC
** or Halo CE resource map rather than the map this RawdataRef
** struct is in. It appears that this flag is ONLY used to
** specify if a sound permutations samples/mouth data is stored
** in the resource map. Bitmaps use a different flag to specify
** this while font, hud_message_text, and unicode_string_list
** tags assume the data is in the same map as the RawdataRef.*/
Bool32 data_in_resource_map : 1; // only used inside a map

UInt32 raw_pointer; /* only used inside a map.
** should only be used if pointer == 0 */
UInt32 pointer; /* only used inside a map(uses magic).
** if pointer == 0, use raw_pointer instead.*/
UInt32 id; // only used inside a map(purpose unknown).
} RawdataRef; // struct size == 20 bytes

Edited by MosesofEgypt on Jan 19, 2018 at 01:43 PM

Halo CE General Discussion » My Halo Dropbox folder Jan 17, 2018 12:37 AM (Total replies: 2)

Yeah, and there's also a txt file explaining what is not fixed.

Halo CE General Discussion » My Halo Dropbox folder Jan 16, 2018 02:19 PM (Total replies: 2)

So this is a folder I like to keep my Halo related files and backups in. It contains:
  • A zip of all the "refined" replacement tags for fixing a lot of the Halo PC porting bugs and removing compression from a lot of bitmaps.

  • A zip of all the hmt source files that Halo 1's hud_message_text tags were compiled from.

  • A zip of all properly indented and perfectly extracted Halo 1 hsc script source files.

  • A zip of a backup of the ui/editor tags folder that sapien needs to run.

  • A zip of the MEK installer with installation instructions and python installers.

  • A zip of a pre-installed copy of the MEK. This is one of my backups, and it still requires python to be installed, AND it is installed portably, so if it doesn't work for you then try actually installing the MEK. If it DOES work for you though, it should be super simple to get it running AND it has the bitmap accelerators pre-compiled for Python3.5 running on 64bit AMD processors.

  • Two zips of tags for my tank vehicle, Sophia 3rd. One is pc tags, the other is xbox tags.

  • A rar backup of the shadowrun prototype that masterz released.

  • A zip backup of my Halo music player, Composer.

The folder also contains a copy of the unreleased "Custom Edition's Finest" for xbox. This is the project that got me so heavily invested in making Halo related tools, and I am really sad to have to release it like this. It was going to be a collection of multiplayer and singleplayer maps we hand-picked from those that the Custom Edition community created. We never got around to balancing things or finishing everything, so there are a lot of unfinished aspects to the maps.

The level geometry itself is great though. We had Delta Ruins, Snowtorn Cove, Portent, Requiem, and Anxiety all ported perfectly. The weapons, and bipeds are mainly what needed a lot of work. For example, Anxiety contains my fixed flamethrower that works on xbox, but the other maps flamethrowers are the original broken ones.

Maridia is the only map that is completely done. It's actually really fun. None of the maps work properly on netplay though. As soon as someone dies, the xbox's desync. We never figured out the reason, but I think I narrowed it down to something with the biped or animation tags.

Also, we had a way of putting as many maps on xbox as we wanted through redirecting the xdemos.xbe string in the halo.xbe to point to another halo.xbe. This allowed us to make multiple maps folders which could be switched between by clicking a "Next" button on the main menu. It would basically load up the pointed to xbe, which would have its own maps folder specified by changing some strings in the xbe. I have included the editor(and its source code) used to modify the xbes to point to each other in a chain.

Have fun.

Edited by MosesofEgypt on Jan 16, 2018 at 03:55 PM

Halo CE General Discussion » Sounds being wierd...(repost) Jan 16, 2018 01:57 PM (Total replies: 10)

I've made changes to all of my installer's parts and processes. If you can't get the MEK working by following the instructions, then I have yet more things to fix.......

Anyway, here's a link to all the scripts extracted with Refinery.

Also, here's a link to a pre-installed copy of the mek. The bitmap accelerator modules have also been compiled for Python 3.5 running on 64bit AMD processors(since that's what I'm running). This is the most recent copy, as it's one of my backups.

Edited by MosesofEgypt on Jan 16, 2018 at 01:58 PM

Halo CE General Discussion » Sounds being wierd...(repost) Jan 15, 2018 05:25 PM (Total replies: 10)

Or open the map in refinery and either rip all the scripts with automatic indention(pretty sure z-team's is all un-indented), or just view the ones you want.

Halo CE General Discussion » Sounds being wierd...(repost) Jan 15, 2018 01:12 AM (Total replies: 10)

Yep, and if you'd like the ability to test the music outside of the game, boy howdy do I have a shameless plug for you!

I plan to be releasing this as an Android app soon for anyone interested in it. Tl; dr it's a music player that plays sound and sound_looping files exactly how you'd hear them played ingame(except for crossfading).

Halo CE General Discussion » Is there a limit for map's size? Jan 14, 2018 02:07 PM (Total replies: 12)

Yeah, except I just did binary search using tool, and found that the max value a verts x, y, or z coordinate can have is 150,000. This means the box is 300,000 x 300,000 x 300,000. Tested with regular tool and os_tool. So much for your king! :P

Also, at that distance, you only have about 2 decimal places of precision in your fractional part. Considering that master chief is 70 units tall, that gives you precision of maybe a tenth of an inch if you account for matrix transform rounding.

Edited by MosesofEgypt on Jan 14, 2018 at 02:34 PM

Halo CE General Discussion » Is there a limit for map's size? Jan 14, 2018 01:43 PM (Total replies: 12)

It might actually be completely arbitrary. The max value for a float before you lose precision in the ones place is 16777215, but the actual max value that a float can represent is 3.402823 * 10^38(though floats do have a special set of values to represent infinity). The limit is going to be whatever the developer thought would be the point where too much precision would be lost to display vertices nicely.

Here's a nice little video I took 5 years ago to show what happens when a vertex loses too much of its precision in its lower decimal places from floating point errors.

It's kinda captivating actually. But yeah, I don't believe we'll be able to find the hard limit without trial and error. Probably best to use a binary search method to find it. Binary search is basically "make map, double its size till it wont compile, resize it to be between the biggest that will work and smallest that wont work, repeat until you converge on some value. Binary search is actually an extremely efficient search method, so this won't take but like, 5-10 minutes if you're fast maybe?.
Edited by MosesofEgypt on Jan 14, 2018 at 01:45 PM

Halo CE Technical / Map Design » HEK Installation Questions. Jan 12, 2018 12:47 PM (Total replies: 2)

If you would sign back into Discord I'd be able to help you, but you haven't been on for 3 days. I know I can get the issue fixed, as it's probably that you're trying to run the program on the wrong directory or something.

I actually implemented 3d texture viewing in mozzarilla as slices rather than guerilla's "everything at once separated by blue". There's a depth slider that allows you to scroll through the texture, one depth slice at a time. Also, mozzarilla can import a 3d texture saved as a dds file, so that's an option too :D

Halo CE General Discussion » SP MOD Announcement Jan 8, 2018 09:43 PM (Total replies: 9)

As much as I disagree with your generally pompous attitude, I can't deny that you have some seriously good skill modelling levels. Is this level based on a real life location, someone else's concept art, or is it entirely your own creation? Cause I really like the look of it.

Halo CE General Discussion » BSP Portalling Jan 8, 2018 07:05 PM (Total replies: 12)

If you'd like some protips on portals, I've got one that I don't think most people know. I know from my own experience portalling maridia that portals are stored as a convex, co-planer, polygon. Tool (usually) only splits portals into pieces if they aren't co-planer or are concave(sometimes it goofs though and splits them anyway). If you can manage to make your portals flat and convex, you can put up to 128 vertices in each portal. You can only have 512 portal planes(exact and regular) for an entire bsp tag, and each time tool chops a portal it uses another. If every triangle in all your portals gets chopped into its own portal, you'll only have a max of 512 triangles of portal geometry! Again, this applies to both regular and exact portals.

Here's maridia if you'd like to take a look. I used only exact portals on it.
Edited by MosesofEgypt on Jan 8, 2018 at 07:23 PM

Halo CE General Discussion » [RELEASE] Pool v1.0.0 Jan 7, 2018 07:27 PM (Total replies: 2)

I have been face-on-desk bored while waiting for this company to finally get back to me about employment(spoiler alert: I GOT THE PROGRAMMING JOB!). To curb the boredom, I've spent the last week and a half writing a new "tool" for the MEK. I know I said I was done making whole new MEK tools, but gosh dangit I was going stir crazy not starting any big projects while I waited. Decided to make something I could knock out in a week or two.

Figured I'd just paste the readme that's built into Pool into here. Also, keep in mind that I know lots of people hate Tool++. I do too. Don't go in thinking this is that until you've read what it does and how it works. If you like regular cmdline tool you'll love this. If you like tool++ you'll still love this. Read the SMART-ASSIST section.
                        WHAT IS POOL
So first off, what is Pool and why should I use it? Pool is a wrapper
for tool.exe that allows you to batch process tool commands, run up to
64 tool commands in parallel, run tool on directories other than the
one it resides in, and more. Pool also allows you to save the list of
commands you've typed in to text files and load them up for later use.
Pool will load up whatever commands were typed in when it was closed.
Pool can do more, but it is basically an ease-of-use upgrade for tool.

To use Pool at all, you first need to select the tool.exe to use.
Pool will try to detect your copies of tool when it loads if none
have been added. To add one, go to "File->Add Tool" and browse to
the tool.exe you want to use. To switch tools, click the menu to
the left of "Help". It will show you all tools it knows about.

Now you're all set, and you can just type commands into this text
box like you would normally when running tool in the command line.
A couple useful examples can be viewed by going to "File->Open"
and opening one of the text files in the command lists folder.

Just enter commands like you would for running Tool in command line.
Once you've typed them in, hit "Process all" or "Process selected".
Lines starting with a or a / are considered disabled(they are
basically comments), and are ignored when processing. Lines that
begin with a # are considered directives and do special things.
For example, #cwd allows you to set the current working directory,
#k and #c make cmd windows stay open or close(respectively) when
the command finishes processing, and #w tells Pool to wait until
all commands currently processing are finished before continuing.
Combine #k with #w and you can pause processing at certain spots.

Commands currently processing will be surrounded in yellow, failed
commands will be surrounded in red, and finished ones in green.
Because Tool doesn't actually report any error information when it
returns, the only failures Pool can detect are mis-typed commands.
Go to "Help->Commands and Directives" to view an explaination of
each command, each directive, and each of their arguments.
(NOTE: As of right now, most of the help is blank. Sorry!)

I personally prefer to type commands and parameters in rather than
using a GUI(like a file browser) to do it for me. There are others
like me, but there are also people who want/need the help. To make
everyone happy, I've come up with a smart-assist system that works
through the use of right-clicking. Right-click an empty line and a
menu will pop up that allows you to paste in a template for any
command or directive. Right-click a command to get a description
of it and what its arguments are. Right-click an argument to view
a description of the argument and/or bring up a GUI to edit it.
Smart-assist can be turned off at any time in the Settings menu.
Right-click the <scenario> argument of build-cache-file and a
browser will appear, letting you select the scenario to use.

If you don't like the text color scheme or the commands that appear
in the right-click menu, you can change them through the File menu.
The color scheme and menu options will be opened in notepad, and
will both be applied as soon as you save and close the text files.

No, not at all lmao. I was REALLY bored and decided that it'd be
fun to add another tool(lul) to the MEK that sort-of replaces one
of Bungie's original hek programs. I'm not insane enough to write
an actual REPLACEMENT for tool.exe, so this is good enough for me.

This is what some of the help info boxes that pop up when you right-click a command or argument look like(they've been tweaked since these were taken):

Pool comes with the MEK. If you already have the MEK, run the updater and check "Download up-to-date MEK" before you hit Update. When it downloads it should tell your installer is out of date. Close it and run it again(it was updated), keep force-reinstall checked, and finish updating. If you don't know what the MEK is or need a copy of it, look to this thread: forum.halomaps.org/index.cfm?page=topic&topicID=50076
Edited by MosesofEgypt on Jan 8, 2018 at 08:06 PM

Halo CE Technical / Map Design » MEK or HEK? Jan 6, 2018 04:09 PM (Total replies: 7)

Check your halomaps inbox.

Halo CE Technical / Map Design » MEK or HEK? Jan 6, 2018 01:46 AM (Total replies: 7)

From what I understand, people tweak the truth all the time when getting the student licensed version. I personally haven't, so I can't say much more lol. Someone's working on a model exporter for blender, but I don't think it's 100% finished just yet. No information on an animation exporter though.

Quote: Also, is it absolutely necessary to have a 3D modeling program?

No. It's entirely possible to never model or texture or animate anything new and make tons of changes. You can still place AI, scenery, weapons, tweak vehicle, weapon, and character settings, or w/e. You can even download/rip tags other people have made and use models and animations from them if you don't want to make new ones. Gotta say though, some of the best moments are when you finally get that thing working ingame that you made yourself, even if it's not super pretty. Just do what you want and branch out to other things when you want.

Quote: Also, what exactly is recursive exporting?

Tags can reference other tags. A scenario references item_collections, which can reference weapons, which can reference a model, which can reference shaders, which can reference other shaders and bitmaps. Recursive extraction means to extract everything that a tag references, whether directly or through a referenced tag.

Quote: the map editor

That's a stupid joke that I got in on which I actually removed from the MEK the day before you posted that comment.

Sorry about the late reply, #lifestuff.

Halo CE General Discussion » [RELEASE]: New Mombasa Beta Jan 4, 2018 09:15 AM (Total replies: 131)

Quote: --- Original message by: lolslayer
pls update pls

Halo CE General Discussion » HCEA .map files (as opposed to .s3dpak) Jan 4, 2018 12:40 AM (Total replies: 22)

If it were possible, it'd be a HSOWA situation.

Halo CE Technical / Map Design » MEK or HEK? Jan 3, 2018 09:34 PM (Total replies: 7)

Easier would be option A, but BETTER would be option B. Start off making a simple box map and getting it playable ingame. Managing to accomplish this means you know how to:

  • Use 3ds Max to create a sealed level with shaders, export it to jms files, and compile it to a structure_scenario_bsp tag.

  • Create and populate a scenario file with sapien.

  • Edit tags with guerilla(like placing a sky in the scenario).

  • Run lightmaps to get your level geometry lit and visible.

  • Compile a map using tool.

  • Debug any errors you come across getting to this point.

While this seems like a lot, the good thing is that each step is kinda isolated from the others and can be approached as a stepping stone. Even more good news is that gearbox already created a tutorial to help users do exactly this, though they make a more complicated level than a simple box map(it's a box with hills and special shaders!). You can find that tutorial here:


Once you can do that, start doing option C so you can get a feel or what each tag is and what they do. Mozzarilla currently doesn't have very many tooltips to help explain things, but a special someone is working on fixing that.

Quote: should I use the refined campaign maps you released as a starting point

I actually recommend extracting the Halo PC maps and just pasting in my replacement tags. Here's a link to them as well as a list of things that still need to be fixed. The bitmaps are the same ones you'll find in the refined campaign, meaning they are the full quality, uncompressed, 32bit source textures.

Quote: should install the 64-bit version

Install the 64-bit version. The 32bit one will run out of memory trying to extract from SPV3's massive data file maps.

Quote: I should install HEK Plus first

HEK+ isn't needed. Get rid of dat crap lol.

Quote: I have GMax installed for 3d modeling, but will that be enough?

It's been a VERY long time since I've used GMAX, but I'm pretty sure it can run all of TheGhost's exporter scripts, which will allow you to make the same quality of assets as a 3ds Max user. Granted, newer versions of 3ds Max will have more tools and allow you to do things more easily, so it's really up to you to decide. 3ds Max student editions are easy to get from what I hear, so take a look into it.
Edited by MosesofEgypt on Jan 3, 2018 at 11:06 PM

Halo CE Technical / Map Design » MEK or HEK? Jan 3, 2018 03:45 PM (Total replies: 7)

Think of the MEK as an extension of the HEK. Yes, the MEK can do some things alone without requiring the HEK at all, but the MEK is not a 100% replacement for the HEK. The MEK is not specifically intended for beginners since you need to be familiar with modding Halo in the first place, but I DO try to make things as intuitive as possible.

Here's a breakdown of the HEK:
    tool: Compiles assets(wav audio, tiff images, jms models, etc) into tags(sounds,
bitmaps, models, etc), and tags into mapfiles.

sapien: If you've played Halo 3 or higher, this is basically Forge. Put things into
the map, set up AI encounters, etc.

guerilla: Allows creating and editing all tags that make up maps. Some things are
easier/necessary to create/edit by using sapien(or recompiling asset tags with
tool), but you can edit nearly everything in a tag with guerilla.

hek+: Not a part of the HEK, but it's been around so long that people couldn't care less.
Hek+ enables you to extract tags from compiled maps.

blitzkrieg: Allows you to export 3d models from 3DS Max 8 to jms files and animations
to jma/jmo/jmr/jmm files. These can then be compiled into tags with tool.

Here's a breakdown of the parts of the MEK you will be interested in:
    mozzarilla: Essentially a replacement for guerilla with tons of extra features to help.
Mozzarilla is able to work with regular halo tags, well as open sauce ones, and has
a highly customizable configuration. It allows you to work with multiple sets of tags
directories, find broken/missing tags, export pieces of tags and put them into other
tags, make bitmaps tags directly from dds files, and much much more. The only thing
I can think of that mozzarilla can't do that guerilla can is preview sounds.

refinery: A complete replacement for hek+. I wrote this for a few reasons;
1: Hek+ corrupts lots of little things in certain tags when extracting.
2: Hek+ is VERY vulnerable to map protection.
3: Hek+ doesn't(to my knowledge) work well with xbox maps.
4: Hek+ doesn't know how to extract open sauce tags.

Refinery addresses all these issues and more. It can also extract certain data to
non-tag assets(textures, sounds, scripts, etc) from any map it can load as well as
halo 2 vista. Refinery is able to extract tags from halo 1 xbox/pc/ce/pc demo maps,
as well as stubbs the zombie pc/xbox maps and the shadowrun alpha.

pool: Guess what guys? I'm almost done with a nice little wrapper for tool that isn't
hot garbage like tool++. I'll get into details later when I make the release thread,
but just know that this makes it much easier to use tool. There are things in it that
everyone can appreciate and will like, from super users like me to users who just want
the ability to select a filepath through a browser instead of having to type it in.

Full disclosure: I did NOT make these next two, I merely modified them. The actual author
of these is TheGhost(with various edits contributed by other programmers over the years).

gbx-xbox-model_importer_v4.0.0: Allows importing gbxmodel and xbox model tags into 3ds Max
(will work in any version of 3ds Max after Max7 I believe). This version has various
stability fixes over the older ones and fixes a few bugs(such as importing shaders
correctly). This is also the only version that can import xbox model tags.

animation_importer_v1.0.6: Allows importing animations from a model_animations tag onto
a model in 3ds Max(will work in any version of 3ds Max after Max7 I believe). This
version can now use model_animations_yelo tags instead of just model_animations, can
use xbox models when prompted for one instead of just gbxmodels, and has a bug fix
to allow it to read all animations in the tag if there are more than 255.

The MEK also includes a few converters to do things like turning model_collision tags into
gbxmodel tags for easily importing them into 3dsMax with the gbx-xbox-model_importer, and
xbox models/stubbs models into gbxmodels. For a rundown on what's in it, just download and
install it and take a look at the readme. It will detail what's what.

Tl;dr The MEK 99.999% replaces guerilla and hek+ and replaces a couple features of tool, but you can't make a map with only 51% of a toolkit. You still need the HEK, but think of the MEK as having a power drill in your belt of hand-operated tools.
Edited by MosesofEgypt on Jan 3, 2018 at 07:08 PM

Time: Sat January 20, 2018 12:01 AM 469 ms.
A Halo Maps Website