Shadows of the Damned: Hella Remastered

Shadows of the Damned: Hella Remastered

データを表示:
Modding support
Edit: Modding tools now updated, requires the VFS file be unpacked and deleted first.

Use this tool to unpack the vfs by dragging the data.vfs onto it. Then delete the data.vfs file as the game will not load the new files unless you do so.
https://github.com/LinkOFF7/GameReverseScripts/blob/main/sotd_hella_remastered_vfs3_extract.py

For creating mods, use UPK Explorer: https://www.nexusmods.com/site/mods/587
For installing them, most mods will use TFC Installer: https://www.nexusmods.com/site/mods/588

For editing Coalesced files, use MECoalescedConvert: https://github.com/cmrazek/MECoalescedConvert

Special thanks to FrancisLouis, LinkOFF7, Lyall and Weez for figuring out how to access Shadows of the Damned: Hella Remastered package files and what compression method they used.
最近の変更はWastelander121が行いました; 2024年11月8日 14時33分
< >
16-30 / 53 のコメントを表示
Lyall 2024年11月2日 18時10分 
2
There is a python script for extracting "data.vfs" here[github.com].
Lyall の投稿を引用:
There is a python script for extracting "data.vfs" here[github.com].
Thanks. Got the files extracted. Looks like we need to do some work on our side to make it compatible. We'll add support asap.
Weez 2024年11月2日 22時46分 
Lyall の投稿を引用:
There is a python script for extracting "data.vfs" here[github.com].

Nice work. Just a note, the folder structure is actually hierarchical. This is what I've gathered so far - just need to figure out the hash/crc calculation for repacking to viable. Any ideas?

struct header_t { char magic[4]; int32_t version; int32_t folder_count; }; struct folder_info_t { int32_t unk1; // rolling hash? int32_t id; int32_t parent; int32_t first_child; int32_t unk2; int32_t file_start; int32_t file_count; }; struct file_info_t { int64_t offset; int64_t size; int64_t size2; // one is likely inflated size, but no entries are compressed int32_t hash; // not CRC32/64, not sure what it is int32_t id; int32_t folder_id; int32_t flags; };
Weez 2024年11月2日 22時48分 
Wastelander121 の投稿を引用:
Lyall の投稿を引用:
There is a python script for extracting "data.vfs" here[github.com].
Thanks. Got the files extracted. Looks like we need to do some work on our side to make it compatible. We'll add support asap.

Yeah, I ran into a similar issue. Validated my unpacker with the png files - they have fixed starting/ending byte sequences. Is it a modified package format or just a less common compression algorithm like Oodle?
最近の変更はWeezが行いました; 2024年11月2日 22時49分
I just extracted the files and attempted to run the game without the .vfs file. It worked.

I tried opening up coalesced_int.bin in gearsofwarsofwar2editor2, which I've used to read other UE3 coalesced files, but it unfortunately didn't work. I also tried using UPK Explorer to open up an .xxx file, and it gave me an error.

The files must have changed formats somehow since the original release as I can use the aforementioned programs to open the PS3 version's files.
最近の変更はSireEvalishが行いました; 2024年11月3日 0時36分
Weez 2024年11月3日 0時33分 
SireEvalish の投稿を引用:
I just extracted the files and attempted to run the game without the .vfs file. It worked.
lol, that simplifies things. Thanks for the heads up.
I tried renaming the intro logo video, but it looks like it's actually done in real time so it had no effect.
Weez 2024年11月3日 2時18分 
SireEvalish の投稿を引用:
The files must have changed formats somehow since the original release as I can use the aforementioned programs to open the PS3 version's files.

Just opened it up in 010. It's a utf-16 string table, that seems to follow the following format:
struct entry { local int string_size; int32 first; if (first >= 0) { int32 second; string_size = second; } else string_size = first; wchar_t str[string_size * -1]; };

That is, if the first value is negative, it denotes string length. If not, a second value will appear which will. Not sure what the semantics of the additional value are. Can you dump the inis from the PS3 version for reference?
最近の変更はWeezが行いました; 2024年11月3日 2時23分
I uploaded to mediafire. Just add /file/ukawe8ipst9ndj0/ to the end of mediafire dot com.

That's all the coalesced_XXX.bin files from the PS3 version. Someone should correct me, but I believe coalesced_int.bin is the master, or at least that's the one I've played with when modding other UE3 PS3 games. I use gearsofwar2editor2 to open the files and see the actual values.

I also noticed that many files in the PC version are larger than their PS3 counterparts. I wouldn't be surprised if they did some upscaling.
最近の変更はSireEvalishが行いました; 2024年11月3日 3時28分
Weez 2024年11月3日 4時23分 
Thanks, that cleared things up.

Grammar wise, it's basically
magic (str_length u16_string block_size?)*
which yields
[..\..\FishGame\Config\FishGHMEngine.ini] [Engine.GHMMemoryTrackerConfig] miRemainingMemoryBudget=10 maTrackedClassesName=StaticMesh maTrackedClassesBudget=20000 maTrackedClassesName=StaticMeshActor maTrackedClassesBudget=450 maTrackedClassesName=StaticMeshComponent maTrackedClassesBudget=15000

Anything with a block_size is either a file or section definition. Block size refers to the number sections when appearing in a file def, and the number of key/value pairs when appearing in a section definition. I think all file names are relative paths, so discerning them should be easy - anything that starts with a period should suffice but one will want to verify that.

Anything else is processed with the next element as a key-value pair.

I'm working on a laptop with only a C++ IDE atm, and will be out most of the day. If I get a moment, I'll dump it to .ini - but as to avoid INI parsing, a simple GUI editor might be preferable for actual editing. That is, unless config files located in "FishGame\Config\" take precedence over coalesced ones. You're familiar with UE3; Is that a thing?

Anyways, if someone has a moment and the means to build a quick GUI app, that'd be great. Otherwise I can take a stab at it as time allows this week.
最近の変更はWeezが行いました; 2024年11月3日 4時45分
Weez の投稿を引用:
That is, unless config files located in "FishGame\Config\" take precedence over coalesced ones. You're familiar with UE3; Is that a thing?

Only sometimes. This does not appear to be one of those.

Directly editing the ini files also isn't that hard, to be honest. Most of it can be ignored. We just need a way to either directly edit the coalesced file or a way to extract the ini, edit it, then repack it into coalesced.
最近の変更はSireEvalishが行いました; 2024年11月3日 4時35分
+1, would be great
Weez の投稿を引用:
Yeah, I ran into a similar issue. Validated my unpacker with the png files - they have fixed starting/ending byte sequences. Is it a modified package format or just a less common compression algorithm like Oodle?

It's most likely Oodle. We need to assign the Oodle version manually on our end. Fortunately, we've had support for Oodle for a while. We'll try and get it done for the next UPKEx update. Should be in 1-2 weeks.

Edit: It's not Oodle. It appears to be a custom compression method we don't support...
最近の変更はWastelander121が行いました; 2024年11月3日 8時30分
Weez 2024年11月3日 12時01分 
Wastelander121 の投稿を引用:
Edit: It's not Oodle. It appears to be a custom compression method we don't support...

I noticed non-mangled strings in some of the .xxx headers. Is the header valid and the body just not deflating with the indicated compression algorithm? If so, encryption is a likely consideration.

Either way, I'd try posting on Gildor's forums. Provided with unpacked examples, I'm sure someone might be able to provide further clarification at the very least.
最近の変更はWeezが行いました; 2024年11月3日 12時01分
It uses ZStd. No other UE3 game does. Looking into it.
< >
16-30 / 53 のコメントを表示
ページ毎: 1530 50