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

Home  Search Register  Login Member ListRecent Posts
  
 
»Forums Index »Halo Custom Edition (Bungie/Gearbox) »Halo CE General Discussion »Anyone who uses the MEK(expecially Mozzarilla) should run its updater

Author Topic: Anyone who uses the MEK(expecially Mozzarilla) should run its updater (14 messages, Page 1 of 1)
Moderators: Dennis

MosesofEgypt
Joined: Apr 3, 2013


Posted: Aug 15, 2017 02:19 PM    Msg. 1 of 14       
I found and fixed a pretty serious bug with one of my libraries. This bug would manifest if you used "duplicate" on an array of reflexives and then edited something in that reflexive that relies on some neighboring data. The bug was that the duplicates were still using their original parent nodes as parents, rather than the new a cloned parent, so internal hierarchy was broken when seeking from leaf nodes toward the root. This made it so if a child node needed to set some data in its parent(like a reflexive describing how many entries it contains) it would set it in the original parent rather than the clone.

I know the above wont make much sense to most of you, but trust me that it's a pretty serious issue. The issue wont manifest under most conditions(I can't explain it here), but it can still cause tags to become corrupted in certain cases. Unless you've encountered it corrupting a tag yourself, it's highly unlikely that you have been making corrupted tags because of it(its so stupidly unlikely they'd load if they were corrupt).

The MEK installer's upgrade function SHOULD be fixed now. Dont forget to tick the "force reinstall" button before hitting upgrade.

If it doesn't say it downloaded and installed at least supyr_struct 0.9.15, you might need to download and install it manually. I have explained why this might occur before and how to manually install, so I'm going to copy+paste that below:

Quote: This issue seems to be occurring for lots of people for some reason, so I figured it's time to tell everyone what's going on and how to manually fix this.

Python has a package manager called Pip, and the MEK_Installer calls on it to look for the packages that my library depends on. For some reason(I think it might be due to a version naming convention), Pip is using an old version of some of the libraries, even when there are new versions available. Pip's job is more or less to find those packages, download them, and install them to python's site-packages folder so python apps can find and use them.

Here are steps to manually download the newest versions and install them. It's not hard or complicated.

1: Locate your python installation folder and in it go to "Lib\site-packages\"(mine is "C:\Python35\Lib\site-packages"). If you've already run the MEK_Installer and it completed you should see at least these 4 folders in there: binilla, mozzarilla, reclaimer, supyr_struct.

2: Delete those 4 folders and any folders that look like them, but with a bunch of other crap on the end(like binilla-2017.4.17.dist-info)

3: Download the most up to date versions of each of those 4 from my Bitbucket repositories:
Binilla: https://bitbucket.org/Moses_of_Egypt/binilla/downloads/
Mozzarilla: https://bitbucket.org/Moses_of_Egypt/mozzarilla/downloads/
Reclaimer: https://bitbucket.org/Moses_of_Egypt/reclaimer/downloads/
Supyr Struct: https://bitbucket.org/Moses_of_Egypt/supyr_struct/downloads/

4: Unzip them to the site-packages folder and make sure to rename them to binilla, mozzarilla, reclaimer, and supyr_struct.

Edited by MosesofEgypt on Aug 15, 2017 at 02:21 PM


Spartan314
Joined: Aug 21, 2010

Former biped rigger & FP animator


Posted: Aug 17, 2017 04:35 AM    Msg. 2 of 14       
I don't use Mozz but I can still appreciate you for putting your effort into something like this
Kudos


MosesofEgypt
Joined: Apr 3, 2013


Posted: Aug 18, 2017 11:27 PM    Msg. 3 of 14       
Thanks. Also, I just tried another fix to the mek installer. Its current version is 1.2.3, and it is now set to automatically ignore cached versions of my libraries, so it will always try to fetch the newest version. Hopefully this FINALLY fixes the upgrade issues.

EDIT: Or not..... Now I gotta figure out what the heck is going on...

EDIT2: SCRATCH THAT I FIGURED IT OUT FINALLY!!!111!!! God was that annoying. Apparently pip doesnt like .egg files, so I have to upload updates now as .whl files. Jesus was that an annoying and unsatisfying reason for it not working.
Edited by MosesofEgypt on Aug 19, 2017 at 12:04 AM


DaLode
Joined: Oct 4, 2014

Ho ho hooooly doodle!


Posted: Aug 19, 2017 06:47 AM    Msg. 4 of 14       
Always annoying when you need to switch to whale files instead of egg files.
A programmer's woe.


DeadHamster
Joined: Jun 8, 2014


Posted: Aug 19, 2017 04:40 PM    Msg. 5 of 14       
Forces users to install python to make pushing out updates easier.

User's cant update due to bugs with Python.


MosesofEgypt
Joined: Apr 3, 2013


Posted: Aug 19, 2017 05:28 PM    Msg. 6 of 14       
Actually it wasnt a bug with python, it was me not understanding that pip cant work with egg files, and that I'd have to upload them as wheel files. It's a stupid reason I know, but that's why. Also, it's not like python is required for JUST the updates, it's required for anything in the toolkit :p


DeadHamster
Joined: Jun 8, 2014


Posted: Aug 19, 2017 05:30 PM    Msg. 7 of 14       
Yeah I'm just being a negative nancy. Love the toolkit, hate having to install anything on my PC. Just joking around is all.


sparky
Joined: Jun 27, 2009

Death does not bring you any closer to God.


Posted: Aug 20, 2017 05:04 PM    Msg. 8 of 14       
Quote: --- Original message by: DeadHamster
hate having to install anything on my PC

Do you prefer portable versions of applications?
Edited by sparky on Aug 20, 2017 at 05:05 PM


FtDSpartn
Joined: May 1, 2009

Thank you.


Posted: Aug 20, 2017 07:12 PM    Msg. 9 of 14       
I'm having a problem extracting tags from SPV3 A10 using Refinery. The errors all appear to involve bitmaps, so I guess this might be because Refinery doesn't support ripping from Yelo resource maps yet (according to the refinery readme)? I did go through the steps in the OP.

(Edit: actually was extracting from A05?)

https://pastebin.com/XFLAeALK

I've tried extracting from A10 and this error occurs when I load the map as well, looks like a case of doubled slashes in the path.

https://pastebin.com/ErsCCBvu
Edited by FtDSpartn on Aug 20, 2017 at 07:18 PM


MosesofEgypt
Joined: Apr 3, 2013


Posted: Aug 20, 2017 08:56 PM    Msg. 10 of 14       
I was able to extract all but 2 of the tags by just renaming the -sounds.map, -loc.map, and -bitmaps.map to remove the dash. Refinery will use them as the default caches, which actually works out just fine it seems lol. I doubt those resource maps will actually work properly for non-spv3 maps though. If there isnt a bitmaps.map, sounds.map, and loc.map in the folder with the map you're trying to extract, refinery will ask you to select them, which you could do instead of renaming them.

Btw, the reason refinery couldn't extract those 2 is because it uses a hard-coded mapping to determine which promotion sound each sound tag points to in the sounds resource map. since cmt uses their own resource map, this mapping is wrong. I'm gonna push out an update to refinery to address a couple bugs, so grab it in about an hour from here: https://bitbucket.org/Moses_of_Egypt/mek/downloads/

Also, grab the new installer and run it when you do, as it works now and I'll be pushing out a small tweak to the reclaimer library.
Edited by MosesofEgypt on Aug 21, 2017 at 02:47 AM


OrangeJuice
Joined: Jan 29, 2009

discord was killing the forums anyways


Posted: Aug 20, 2017 09:28 PM    Msg. 11 of 14       
I always keep a few 128gb thumbdrives in my bag loaded with programs, and little batch-files and scripting I make myself xD

I also dislike installing stuff unless they're like . . . fully fleshed out programs that do more than one thing. Funny thing to agree on
Edited by OrangeJuice on Aug 20, 2017 at 09:28 PM


FtDSpartn
Joined: May 1, 2009

Thank you.


Posted: Aug 21, 2017 12:36 AM    Msg. 12 of 14       
Quote: --- Original message by: MosesofEgypt

I was able to extract all but 2 of the tags by just renaming the -sounds.map, -loc.map, and -bitmaps.map to remove the dash. Refinery will use them as the default caches, which actually works out just fine it seems lol. I doubt those resource maps will actually work properly for non-spv3 maps though. If there isnt a bitmaps.map, sounds.map, and loc.map in the folder with the map you're trying to extract, refinery will ask you to select them, which you could do instead of renaming them.

Btw, the reason refinery couldn't extract those 2 is because it uses a hard-coded mapping to determine which promotion sound each sound tag points to which in the sounds resource map. since cmt uses their own resource map, this mapping is wrong. I'm gonna push out an update to refinery to address a couple bugs, so grab it in about an hour from here: https://bitbucket.org/Moses_of_Egypt/mek/downloads/

Also, grab the new installer and run it when you do, as it works now and I'll be pushing out a small tweak to the reclaimer library.
Edited by MosesofEgypt on Aug 20, 2017 at 08:58 PM


I feel like I'm missing something obvious, but now I'm getting this error. (I selected the cache files manually.)

Error ocurred while extracting 'levels\test\entropy\bitmaps\vanity.bitmap'
Traceback (most recent call last):
File "D:\Games\Halo\Halo CE\Modding Tools\Moses Editing Kit\refinery_core\main.py", line 1677, in start_extraction
meta = self.get_meta(tag_id, True)
File "D:\Games\Halo\Halo CE\Modding Tools\Moses Editing Kit\refinery_core\main.py", line 1872, in get_meta
self.inject_rawdata(h_block[0], tag_cls, tag_index_ref)
File "D:\Games\Halo\Halo CE\Modding Tools\Moses Editing Kit\refinery_core\main.py", line 1882, in inject_rawdata
self, meta, tag_cls, tag_index_ref)
File "D:\Games\Halo\Halo CE\Modding Tools\Moses Editing Kit\refinery_core\halo1_functions.py", line 40, in inject_rawdata
pixel_data.seek(bitmap.pixels_offset)
AttributeError: 'NoneType' object has no attribute 'seek'

Error ocurred while extracting 'postprocess\bitmaps\static.bitmap'


This error shows when I load the map after selecting the cache files.
Loading bitmaps.map...
Traceback (most recent call last):
File "D:\Games\Halo\Halo CE\Modding Tools\Moses Editing Kit\refinery_core\main.py", line 888, in _load_all_resource_maps
bitmap_data = PeekableMmap(f.fileno(), 0)
OSError: [WinError 8] Not enough storage is available to process this command


MosesofEgypt
Joined: Apr 3, 2013


Posted: Aug 21, 2017 01:04 AM    Msg. 13 of 14       
Well poop, can't do anything about that. Its saying it cant load the bitmaps.map as a memory mapped file. That is an issue with your system resources, and is causing both of those errors. Kinda weird though since a memory map doesnt actually copy the file into memory, but rather treats it like a paging file(the same way halo treats a map file as a section of ram).

I can't help you other than to point you here and say to maybe ease up on your system resources?
https://stackoverflow.com/questions/507853/system-error-code-8-not-enough-storage-is-available-to-process-this-command


FtDSpartn
Joined: May 1, 2009

Thank you.


Posted: Aug 21, 2017 01:20 AM    Msg. 14 of 14       
Welp, it looks like mine was set to ~20000 (and I've never changed it myself). I have plenty of spare memory though, so I'm not sure. I'll look around some more tomorrow and see if I can't get it to work.

Thanks for the help though!

Edit: Turns out I was using a 32-bit version of Python, and the number was too large for it to support in the bitmaps cache file. Downloading and installing the 64-bit version fixed it.
Edited by FtDSpartn on Aug 23, 2017 at 04:09 PM

 

 
Previous Older Thread    Next newer Thread





Time: Tue September 26, 2017 7:15 AM 469 ms.
A Halo Maps Website