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: Oct 12, 2017 10:28 PM
Last Visit: Yesterday @ 11:57 PM
Your Age:
What Games do you play:

Send Private Message
Post Statistics
MosesofEgypt has contributed to 364 posts out of 464283 total posts (.08%) in 1,659 days (.22 posts per day).

20 Most recent posts:
Halo CE General Discussion » Wierd problem with scripting Oct 12, 2017 10:28 PM (Total replies: 4)

Not my area of expertise, but I DO know that the "thingy" is an byte order marker. It's purpose is to specify to anything opening the text file that the file is utf16 little endian.
What you should take away from my explanation, is to not save your hsc files with anything other than ANSI, latin-1, or ascii.
Edited by MosesofEgypt on Oct 12, 2017 at 10:28 PM

While that codec is indeed important for compiling xbox adpcm sounds, we're specifically talking about ogg here sparky. Don't want to confuse him when this is his first experience with compiling sounds, so thought I'd clarify that.

It's not very simple. First you'll need to understand how sounds work, and get a crash course in compiling them. There are 3 main "sections" to a sound tag: pitch ranges, permutations, and samples.

Pitch ranges aren't too important since they are only used for a couple things, but they're basically pre-recorded variants of a sound that the game uses in certain instances where the sound changes based on some variable. Like, the warthog has 4 pitch ranges for how hard the engine is working: idling, low rpm, medium rpm, and high rpm. I don't think any of these sounds you'll need to fix will use anything other than the default pitch range though, but it's nice to know about this.

Permutations are different versions of a sound that get chosen to play randomly. Like, the sound of glass breaking has around 10 permutations, this way it usually sounds different each time a piece of glass breaks.

Samples are the actual audio data that's read when a permutation is chosen to play. Sometimes the size of the permutation is too large to fit in one chunk of samples, so tool splits it across multiple chunks of samples and then chains them together.

When Refinery exports a permutation it tries to put together all of the pieces of each permutation into a single audio file, but the only format it cant do it for is ogg. Instead it'll export each piece as a separate ogg file with "__X" on the end, where X is the piece's number. So like, if a permutation named "test" had 3 pieces, they'd export as test__0.ogg, test__1.ogg, and test__2.ogg.

You'll have to load maps containing each messed up sound into Refinery and extract their data(the ogg files) to your data folder. For each tag whose ogg sound you extracted, navigate to the folder they extracted to and open up an audio editing program(I recommend Audacity).

You'll need to piece these ogg samples together yourself in the audio editing program. After you do, save the permutation as a 16bit PCM WAV file to the same folder with the same name as the permutation. So like, after piecing together those test__X.ogg you'd save it as test.wav

After you've done this for all the permutations of one of the sounds, you'll need to remove all the ogg files from the folders(probably move them just in case you need them later). The reason for this is tool will try to import ALL files in the sound folder, even if they're not wav.

After you've done this, open a cmd prompt, cd into the directory with tool.exe, and type:


and it should compile the fixed sound. as an example, if you were trying to fix:

you would type in:
tool sounds "cmt\sounds\sfx\weapons\covenant\focus_carbine\animations\ready" ogg 1

Also, before you compile any sounds, replace the vorbisenc.dll, vorbis.dll, vorbisfile.dll, and ogg.dll in your Halo Custom Edition directory with these ones(in case you never did):

The reason being the ones that shipped with CE are out of date, buggy, and frequently cause tool to crash. If anyone here knows something I forgot to mention, feel free to join in.
Edited by MosesofEgypt on Oct 8, 2017 at 02:11 AM

Here, I added a feature to the tag scanner that allows it to locate bad collision materials and bad sound tags. I haven't pushed the changes, but I did run it over all of cmt's tagset. Here are the results:

coll specific errors:

Bad collision material numbers.
Change the material numbers of these surfaces to be <= 1 or add 4 materials.
bip01 spine1(node #8)
bsp #0
surfaces = [9, 10, 11, 15]
bsp #1
surfaces = [9, 10, 12, 16]

bip01 l forearm(node #25)
bsp #0
surfaces = [0, 1, 4, 6, 8, 9]

Bad collision material numbers.
Change the material numbers of these surfaces to be <= 1 or add 3 materials.
frame hull(node #0)
bsp #0
surfaces = [14, 140]

snd! specific errors:

Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\plasma_pistol\animations\first-person overheated.sound:
Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person melee.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person posing.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person ready.sound:
Bad OGG sample count. Fix by recompiling this sound.

cmt\sounds\sfx\weapons\covenant\shredder\animations\first-person reload.sound:
Bad OGG sample count. Fix by recompiling this sound.

Bad OGG sample count. Fix by recompiling this sound.

Edited by MosesofEgypt on Oct 7, 2017 at 01:51 PM

All I know is that cmt's tags are buggy when used in sapien. Sapien checks for certain things that the game doesn't, and when those things aren't right it freaks out and crashes, whereas the game just chugs along with any potential errors it could cause down the road. I know some of the weapons have broken "ready" animation sfx, and placing them in sapien in any way crashes it. I also know some of their characters(brutes included) have screwed up collision materials and will also crash the editor. I dont know how masterz actually placed the ai, but I do know even he said some of the things he'd place would crash sapien.

If you want to temporarily remove the ai so you can open the scenario you can open the scenario in mozzarilla, scroll to the encounters section, hit "export all" to export the encounters to a file, then delete the encounters from the scenario and save. When you want to put them back, just hit "import all" to import that file back

Sorry you're having so much trouble. Thing is, cmt's tagset is full of bugs that only the creators will really be used to dealing with/know how to deal with. I'll ask FTDSpartan to chime in here since I was helping him with these same things. He's probably figured out some stuff you need to know.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Oct 3, 2017 02:24 AM (Total replies: 75)

That err.yelo is just an extra map. Also, CMT used special tools to build their scenarios and such. You'll not be able to load their scenarios in sapien. I dont have their tools, so dont ask me. Also, I don't have much experience in sapien, but I do know it's very finicky. Others here with more experience might be able to help you.

Best you can hope for is to throw the ai into a different scenario and work with that. Be warned though, CMT's tags aren't masterpieces of craftsmanship, and are likely broken in subtle ways. Trust me, I've had to fix some of them before. If they crash sapien when throwing them into a scenario, it might be an extraction issue, but it might also be something on CMT's end.
Edited by MosesofEgypt on Oct 3, 2017 at 02:27 AM

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Oct 1, 2017 03:13 PM (Total replies: 75)

Refinery v1.5.1 is out with bug fixes and new features. Run the mek installer's update feature to get it.

New in v1.5.1:

* Ability to perfectly rip scripts with automatic indentation.
Yes, seriously. I ripped a10's scripts and recompiled. Played flawlessly.
I might be exaggerating on the "perfectly" bit, but only time will tell.
* Ability to rip hud_message_text tags back to the .hmt text files they were compiled from.
* Fixes to a decent chunk of bugs that cropped up when I moved modules around during the last big refactor.

EDIT: Actually, it seems one of my optimizations broke something. Dont bother with script extraction till i fix this.....
EDIT2: Fixed the bug. Go ahead and update the mek again. Refinery's version number shouldn't change, but reclaimer's will(you wont see it).

To actually rip scripts and hud_message_text to their source files, load Refinery, change it to data extraction mode(click the button), and add the scenario and hud_message_text files to the queue to be extracted. They'll go into the data folder in the appropriate directory for them to be recompiled with tool.

Mozzarilla v1.0.6 is also out with the ability to load multiple dds images as bitmaps all at once(rather than one at a time). Idky I didn't do this in the first place.

Here is an example of ripping a10's mission hud_message_text:

tutorial_introduction_1=Self-Diagnostic Software Enabled
tutorial_looking_1=Look around
tutorial_looking_2=Look around
tutorial_looking_1l=Look around
tutorial_looking_2l=Look around
tutorial_action_1=Use %action to exit the cryo-tube
tutorial_looking_targeted_1=Stand on the red square
tutorial_looking_targeted_2=Target each of the flashing lights
tutorial_looking_targeted_3=Vertical looking is now inverted|nTarget each of the flashing lights
tutorial_looking_choose_1=Vertical looking is now inverted|nLook up and down
tutorial_looking_choose_2=Vertical looking is now inverted|n|nPress %b-button to try it the other way|n|nPress %a-button to leave it like it is
tutorial_looking_choose_3=Vertical looking is now normal|nLook up and down
tutorial_looking_choose_4=Vertical looking is now normal|n|nPress %b-button to try it the other way|n|nPress %a-button to leave it like it is
tutorial_grenade=Use %throw-grenade to throw grenades
hud_shield_1=Energy Shields Charging
hud_shield_2=Energy Shields Charged|n|nPress %a-button to continue
hud_shield_3=Energy Shields Recharging
moving_jump_1=Use %jump to jump over obstacles
moving_crouch_1=Click %crouch to crouch under obstacles
firing_1=Use %primary-trigger to fire your weapon
light_1=Use %integrated-light to use your flashlight
melee_1=Use %use-equipment to break down the door
ladder_1=Look up and move forward to climb ladders
obj_training= Complete training diagnostic
obj_bridge= Find Captain Keyes on the Bridge
obj_escape= Get off the Pillar of Autumn
dia_training= Complete training diagnostic
dia_bridge= Find Captain Keyes on the Bridge
dia_escape= Get off the Pillar of Autumn

Example of ripping a few scripts from svp3_a10:

(script static void fr_regen_update
(set fr_regen_shield (* (unit_get_shield player0_global) 75))
(set fr_regen_health (+ (* (unit_get_health player0_global) 75) 1))
(if (and (>= (unit_get_shield player0_global) 1) (< (unit_get_health player0_global) 0.59))
(unit_set_current_vitality player0_global fr_regen_health fr_regen_shield)
(print "visr turned off")
(pp_set_effect_instance_active mission_pp_index_visr_flare false)
(if fr_battery_depletion_on
(sound_impulse_start "cmt\sounds\sfx\powerups\armor_module\fx\armor_module_visr_off" "none" 1)
(pp_set_effect_instance_active mission_pp_index_visr false)
(if fr_battery_depletion_on
(pp_set_effect_instance_fade mission_pp_index_visr 1 0 0.5)
(set fr_battery_depletion_on false)
(set fr_battery_power_fraction (- fr_battery_power_fraction 0.00000015873))
(set fr_battery_power_fraction (max 0 fr_battery_power_fraction))
(unit_data_set_real player0_global "integrated_light_toggle_power" fr_battery_power_fraction)
(if fr_flashlight_should_be_on
(unit_data_set_real player0_global "driver_power" 1)
(unit_data_set_real player0_global "driver_power" 0)
(unit_data_set_real player0_global "integrated_light_toggle_power" 1)

(script continuous save_1
(if (volume_test_objects "bsp2,1" (players))
(if (volume_test_objects "airlock_1_trigger_2" (players))
(if (volume_test_objects "flank_trigger_1" (players))
(if (volume_test_objects "airlock_1_trigger_2" (players))
(if (volume_test_objects "bsp3,2" (players))
(if (volume_test_objects "airlock_2_trigger_1" (players))
(if (volume_test_objects "knot_trigger_2" (players))
(if (>= (unit_get_shield (player0)) 1)
(sleep 30)
(if (>= (unit_get_shield (player0)) 1)
(if (volume_test_objects "bsp3,4" (players))
(if (volume_test_objects "lifepod_1_trigger_1" (players))
(if (volume_test_objects "motiontracker_1" (players))
(if (volume_test_objects "cryo_search_trigger_1" (players))
(sleep 900)

(script dormant grav_egg
(sleep 300)
(if (= "easy" (game_difficulty_get_real))
(object_create "gravity_skull")
(if (= "impossible" (game_difficulty_get_real))
(object_create "gravity_skull")
(sleep_until (and (unit_has_weapon_readied (player0) "cmt\weapons\spv3\multiplayer\ball\gravity_skull") (< (objects_distance_to_object (player0) "gravity_skull") 2)) 60)
(sleep -1 gravity_engineers)
(device_set_position_immediate "keys" 1)
(sleep 10)
(physics_set_gravity 0.05)

(script static void hacky_save
(if (>= (unit_get_shield (player0)) 1)
(sleep 15)
(if (>= (unit_get_shield (player0)) 1)

I plan to eventually incorporate these ripping abilities into Mozzarilla so you can rip scripts and hud_message_text from the tags themselves rather than whole maps.
Edited by MosesofEgypt on Oct 1, 2017 at 04:25 PM

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 30, 2017 05:20 PM (Total replies: 75)

Can you actually PLAY spv3 with how you have it set up? your folder structure should look like this:


If your folder setup is not like that, it wont be able to locate the spv3 specific bitmaps, loc, and sounds maps in the data_files folder. It will look there first and if it fails to find them it will default to the regular bitmaps, loc, and sounds maps, which WILL be missing tags.

The size of the spv3 bitmaps, loc, and sounds maps are 1,933,915Kb, 668Kb, and 530,612Kb respectively. The non-spv3 versions are 120,653Kb, 383Kb, and 40,741Kb respectively.
Edited by MosesofEgypt on Sep 30, 2017 at 05:23 PM

In case you didn't realize, the update to Refinery is out. Run the updater and rip to your heart's content.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 26, 2017 09:45 PM (Total replies: 75)

Maybe. I DO have a light understanding of the script bytecode AND the source code to the halo script extractor. No plans to right now though. I think I'm gonna slow down on my MEK programming for a while, so anything I do implement from now on will be slower to see the light of day.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 26, 2017 04:28 PM (Total replies: 75)

Refinery v1.4.5 is out. Run the mek installer's update feature to get it.

New in v1.4.5:

* multiple map support
* full open sauce resource map support
* partial halo 2 map support
* ability to switch between ripping tags and ripping data FROM tags.
Data is ripped to the "data" directory.
Bitmaps are ripped to dds.
Sounds save to wav/wma/ogg depending on format.
Xbox adpcm sounds have the option to be
decoded to 16-bit pcm(it's slow though)
* recursive extraction
* reorganized settings menu
* ability to sort tags by path, index_id, and pointer
* lots of bug fixes

First of all, you dont move tags around(unless you know what you're doing), as that is literally THE SOLE CAUSE of dependency issues(as well as deleting tags). You can move the scenario though(including OS ones I think). As for how you actually USE the tags to make a map, I can't find a good tutorial to explain, but I'm sure someone else here can. There's a steep learning curve before you can really start doing anything significant with this engine. Also, quick note, Mozzarilla has a broken dependency scanner in its tools section. Make sure your tags directory is correct before you run it, or it will report every dependency as broken.

Secondly, I'm working on some massive changes to Refinery right now, but they'll take maybe another week or so. A few of those changes involve making all tags rippable from yelo resource maps, which includes spv3. See, spv3 ships with a bitmaps.map, sounds.map, loc.map, -bitmaps.map, -sounds.map, -loc.map. The ones with a dash are the resource maps Refinery should actually be using, as they contain all the bitmaps/sounds/strings the SPv3 maps share.

Even if they are loaded properly though, there are certain tags in the loc.map that wouldnt rip properly because I set it to assume all additional tags in the loc.map would be unicode_string_list tags, but they aren't. I'm fixing that right now.

Also, somehow, some way, whatever compiled the maps managed to screw up some of the path strings slightly, causing Refinery to choke when trying to display them in a hierarchy view. What I mean is that some of the paths had double backslashes in them like this:
"cmt\scenarios\singleplayer\a30\\hud messages"
That's not a valid path, so even if refinery got around to extracting it, it would probably cause issues writing it to the disk. This is fixed now.

So yeah, just be patient and you'll be able to rip the rest of the tags soon enough. Also, these aren't the only changes I've been making. Refinery can now handle multiple maps open at once and you can switch between them and you can now sort tags by their path, pointer, or tag index id.
Edited by MosesofEgypt on Sep 21, 2017 at 02:59 PM

Halo CE Technical / Map Design » error vertex #1 has a bad point Sep 13, 2017 01:32 AM (Total replies: 12)

Quote: --- Original message by: rcghalohell
Refinery for the map, jms exporter for the scene, tool for the rest

You dont use refinery? Then what did you mean by that?

Halo CE Technical / Map Design » error vertex #1 has a bad point Sep 12, 2017 07:04 PM (Total replies: 12)

So it wasn't related to Refinery? I was lurking here in case you guys found a bug for me to fix.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 9, 2017 01:48 PM (Total replies: 75)

Guys, cut this crap out. I dont want your personal feud developing here.
Edited by MosesofEgypt on Sep 9, 2017 at 02:22 PM

Halo CE General Discussion » [RELEASE] Composer Sep 8, 2017 11:17 PM (Total replies: 17)

v1.0.6 is out. A few ui bugs have been fixed, but more importantly you can now add sound tags directly to the playlist without having to put them in a sound_looping tag. They will be treated as the loops of a sound_looping tag. Now go have some fun playing sound\dialog\chief\deathviolent.sound on infinite loop.

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 6, 2017 07:10 PM (Total replies: 75)

Refinery has been updated again with a fix that will enable it to properly extract shader_postprocess_generic tags(visr now works when recompiling b30_evolved)

Also, the MEK installer has been upgraded, so grab the new v1.3.0 from the mek repository. I've modified refinery and the installer so now the installer can update it without you guys having to re-download it from the MEK. You'll need to grab the modified Refinery.py and Mek_Installer.py from the MEK, but after that you'll only need to run the updater to get updates to Refinery.
Edited by MosesofEgypt on Sep 6, 2017 at 07:11 PM

Halo CE General Discussion » [RELEASE] Composer Sep 6, 2017 01:47 PM (Total replies: 17)

No, I found the source code to the codec online licensed under GPL and modified is decoder function to work how i needed it to. Just look in the source, Composer is licensed under GPLv3

Halo CE General Discussion » [BETA RELEASE] Refinery 0.7 Sep 4, 2017 10:11 PM (Total replies: 75)

Refinery and my MEK tools in general have received a few updates. Any OGG sound tags saved with mozz before this might not work properly in sapien, but will be fine ingame. This update will fix that so mozz wont partially break sounds any more. FtdSpartan and I have deduced this has affected some of CMT's sounds, such as for some of the "ready" animations. I guess this is what happens when you're working with bleeding edge technology lol. Again, this only affected ogg sounds, and they'll still work fine ingame.

There are other changes as well, and Refinery is now capable of extracting open sauce maps in a mostly bug free state. Refinery is even capable of extracting CMT's The Silent Cartographer Evolved and having tool recompile it without any noticeable bugs. The only issue I've noticed is that something in the cmt/postprocess/gameplay/visr_nv causes the game to crash if the tag isn't nulled out, so I've still got work to do with it.

If you had previously encountered sound or animation related errors after extracting with Refinery, try it again after running the mek's updater. I've made some changes to Refinery itself(not just my Halo libraries), so you will need to re-download refinery from the mek. You can grab the MEK here:
Edited by MosesofEgypt on Sep 4, 2017 at 10:15 PM

Halo CE General Discussion » [RELEASE] Composer Aug 30, 2017 09:43 PM (Total replies: 17)

v1.0.3 is out with some bug fixes. Currently trying to get a linux setup going so I can get it compiling for android. Has anyone actually tried this out?

Time: Tue October 17, 2017 5:37 AM 281 ms.
A Halo Maps Website