Posted October 12, 2020 (edited) Tex Mod is the second public release proof of concept tool from SeT. The process is still slightly complicated; however, due to how much I've seen people wanting custom textures. I decided to rush the build. BACK THINGS UP, USE AT YOUR OWN RISK. The program is still incomplete, things will get easier with time. I also can't guarantee it will work as intended every time. As of now this is a slightly more advanced example. Some things still required hex editing, though minimal. Let's go over how to use it: EDIT: Update has enabled "load from dds" and fixed some minor bugs. making a lot of this null. You can now just load the ipak, bind the imeta, and overwrite the original texture if you desire. Note** overwriting a texture means you'll need to rebuilt every imeta that uses that texture. Since the file size might change. This will be addressed in the next update open the ipak that holds the texture (alphabetical split at "p") bind the imeta for the level find the texture you wish to replace. Click "load from DDS" (Click save to dds for a reference texture to edit) load custom texture build the imeta (since there may be more mip maps and such, or changes in dimensions) Save the changes Our final result. Sorry for the rushed tutorial. I had like 30 mins to make these screenshots, build the project, upload, and fix post. for custom template textures follow original tutorial: Spoiler For this example I will be using both Tex Mod and SMI together. You can use SuP if you prefer instead. You will also need a hex editor, and a graphics design program SMI: Nvidia photoshop plugin for dds: https://developer.nvidia.com/nvidia-texture-tools-exporter For this example, we're going to be creating a custom texture for the cryotube in a10, Since it's one of the first things you see. I'm going to load up the a10.s3dpak with SMI (see above for usage/download), select the cryotube template, and extract the template (either recursive, or regular. I did recursive to have the working folder) We're going to navigate to the extracted folder, and find the .tpl file inside. We're going to need to hex edit this file to adjust the referenced textures at the top of the file, there is a list of dependencies. Since there are offsets in the file, we cant change the names length; however, we can change some characters to give it a unique name. This will save us from over writing the original. This makes it so only this one map gets the custom textures, and it also lets you be able to revert to the original if desired (also over writing textures is still broken for some reason, but don't mind that) Here, we're changing "a10_cryo_capsule" to "a10_cryo_capsulf" (It's usually nicer if the texture is numbered, cause you can just add one; however, not the case here) We're going to save our changes to the file, and inject the template into the s3dpak (non-recursive) Next we're going save and close SMI, and open Tex Mod open the ipak containing the file. (ipak1/ipak2 are alphabetical split at "p") ***NOTE: The Ipak is HUGE, it will take some time to load, and save the file. It has to decompress, parse on load, and recompile, and recompress on save. This will be threaded once I git good at python.*** one the file loads, we're going to bind the imeta to the ipak for the level. In this case, a10: Once that is done, you'll see the items that will be rebuilt to the imeta checked. Everything else isn't in this level. I'm going to double click the texture I wish to edit, and it will populate the data on the right. We can confirm the right name is loaded, and click "save to dds" I'm going to rename the texture to the new name I gave it, and save it to the folder i saved the template to earlier (just to keep it more clean, and keep all project files together.) Taking note of the "type" when I save. This is dxt5. Next I'm going to load the texture in any editor of choice. Sadly I'm stuck with paint.net since I cant seem to find my photoshop stuff. I make a pretty simple edit here, just overlay a slightly transparent red. Then I save the texture, making sure to save it as the type I extracted it as. In this case DXT5. Going back to tex mod I go to edit>import DDS and import the edited file The new file shows up at the bottom, and the imeta checkbox is automatically checked. Next I will build the modified imeta, and finally save my changes with file>save as (Again this will take some time, for me it takes ~min with 8 cores and 16gb ram. The file is huge, and it has to recompress. I am working on threading the compression) Our final result: THERE IS STILL A LOT OF WORK NEEDED TO GET THIS WORKING RIGHT. Please please post bugs, this has been a long time coming, and a few months of work. I want to get this working perfectly. There are a few ui bugs here and there that need to be fixed, but I wont have much time to dedicate to it this week coming. Hopefully this should give people some time to play with it, and I can get an idea what direction to take things before I dump too much work into "my way" and have to move back on some progress. The final source hasn't been pushed to the github repo yet. tex_mod.rar Edited October 13, 2020 by Zatarita load from dds update s3anyboy, Vuthakral, Takka and 2 others like this Specifications: S3dpak - format - Imeta/ipak - format - Fmeta - format Programs: H2a-inflate - SuP Share this post Link to post Share on other sites
Posted October 12, 2020 Whew. That's a lot of work if I wanted to AI upscale a single texture. I'd be more than happy to do the texture work but maybe not the rest of it. Also curious if 343 modified the Blam engine in any way to accept the newer BC7 format. And if it's the same as Halo 1 where the game apparently carries the uncompressed textures. "You're nothing but a thing to me." -Tucker933 2016 "Mine's not huge, but neither are my hands, so it's a real good fit." -Badga666 2017 "It's not incest until it's in." -Caesar 2017 "Poison dart frogs aren't poisonous. Mankind is a poison and the dart frogs are the cure." -Somewhere on the internet "I felt left out so I added myself to your signature." -Pfhunkie 2020 "English isn't my primary language. It's also the only language I know." -ShikuTeshi ???? "In the quiet the silence is louder." -My Sister 2021 Share this post Link to post Share on other sites
Posted October 12, 2020 21 minutes ago, ShikuTeshi said: Whew. That's a lot of work if I wanted to AI upscale a single texture. I'd be more than happy to do the texture work but maybe not the rest of it. Also curious if 343 modified the Blam engine in any way to accept the newer BC7 format. And if it's the same as Halo 1 where the game apparently carries the uncompressed textures. It'll get easier once I figure out what's wrong with overwriting textures. It's just tough now cause we need to create a new texture and link it to the template. Once I fix over writing it should be just load, import, save Imeta, save ipak. As far as newer textures, I only see support for: Dxt1/3/5, argb/xrgb8888 (meaning light maps need to be covered from 16 bit), ati1/ati2, and ai88(greyscale) Specifications: S3dpak - format - Imeta/ipak - format - Fmeta - format Programs: H2a-inflate - SuP Share this post Link to post Share on other sites
Posted October 12, 2020 Neat. Looking forward to it. I guess a good question is if you've tried importing an uncompressed texture? It's definitely not an ideal option in any means but I don't think it would hurt that badly if possible. I'll probably follow Skyrim modding logic and not compress normals if it ever gets to that point. "You're nothing but a thing to me." -Tucker933 2016 "Mine's not huge, but neither are my hands, so it's a real good fit." -Badga666 2017 "It's not incest until it's in." -Caesar 2017 "Poison dart frogs aren't poisonous. Mankind is a poison and the dart frogs are the cure." -Somewhere on the internet "I felt left out so I added myself to your signature." -Pfhunkie 2020 "English isn't my primary language. It's also the only language I know." -ShikuTeshi ???? "In the quiet the silence is louder." -My Sister 2021 Share this post Link to post Share on other sites
Posted October 12, 2020 What do you mean by uncompressed? The Texture its self is just a headless dds. If you're talking about block compression it does support argb8888 which doesn't have block compression. The ipak is compressed with zlib, so you COULD compress with 0 compression level. Which would basically look uncompressed with some bloat Specifications: S3dpak - format - Imeta/ipak - format - Fmeta - format Programs: H2a-inflate - SuP Share this post Link to post Share on other sites
Posted October 12, 2020 Just not using any level of DXT or otherwise. And I can't explicitly say due to ToS at this time but I can probably alleviate compression elements. I forgot people mentioned that most texture data in MCC has been modernized and kept it it's own shared file. Sherry and Moses (I think he's left the modding scene?) would have the best information on this since they did pull said uncompressed textures out of Halo PC. I don't know how that works but I imagine the engine just compresses and delivers the textures itself hence the reason it retained the uncompressed versions. I was just hoping that the method wasn't changed in MCC and they just moved them to a new file 'zip' like archive and the uncompressed data is in there somewhere. "You're nothing but a thing to me." -Tucker933 2016 "Mine's not huge, but neither are my hands, so it's a real good fit." -Badga666 2017 "It's not incest until it's in." -Caesar 2017 "Poison dart frogs aren't poisonous. Mankind is a poison and the dart frogs are the cure." -Somewhere on the internet "I felt left out so I added myself to your signature." -Pfhunkie 2020 "English isn't my primary language. It's also the only language I know." -ShikuTeshi ???? "In the quiet the silence is louder." -My Sister 2021 Share this post Link to post Share on other sites
Posted October 12, 2020 I don't think I understand. It's possible they convert the dds textures to easier to use formats, but these textures are uncompressed. If you add the right header to the file you get texture, no extra tweaking needed. As far as compression goes, they already have the formatting applied. It's not just raw rbga channels like a bitmap (except argb/xrgb.) Specifications: S3dpak - format - Imeta/ipak - format - Fmeta - format Programs: H2a-inflate - SuP Share this post Link to post Share on other sites
Posted October 13, 2020 Hm. I guess I'll understand after I play with it then. "You're nothing but a thing to me." -Tucker933 2016 "Mine's not huge, but neither are my hands, so it's a real good fit." -Badga666 2017 "It's not incest until it's in." -Caesar 2017 "Poison dart frogs aren't poisonous. Mankind is a poison and the dart frogs are the cure." -Somewhere on the internet "I felt left out so I added myself to your signature." -Pfhunkie 2020 "English isn't my primary language. It's also the only language I know." -ShikuTeshi ???? "In the quiet the silence is louder." -My Sister 2021 Share this post Link to post Share on other sites
Posted October 13, 2020 And here I thought from the title this may have been an update to the long-abandoned "Halo Texmod" project by SSO Really psyched to see modding to any extent of the HD graphics engine side of Halo CEA. I've always hoped to be able to go in and restore a lot of the lost artistry of the original game. || My YouTube Channel || Gamebanana || Steam Community Profile || Share this post Link to post Share on other sites
Posted October 13, 2020 (edited) UPDATE: Fixed load from dds. May still be slightly buggy. (see original post for updated example. Thank you s3 for letting me use your golden gun) This should maintain bump maps and such for the texture that otherwise wouldn't be referenced correctly with a new texture name. Fixed crash on canceling save/load Fixed export function to actually let you designate a location and name. Fixed autofilling file name known bugs: Old data still wont clear when you load new data. For some reason it wont clear the list. Edited October 13, 2020 by Zatarita Takka and ShikuTeshi like this Specifications: S3dpak - format - Imeta/ipak - format - Fmeta - format Programs: H2a-inflate - SuP Share this post Link to post Share on other sites