Gildor's Forums

Author Topic: Dead By Daylight  (Read 11076 times)
Tgames
Newbie
*
Posts: 9


View Profile
Re: Dead By Daylight
« Reply #60 on: September 09, 2020, 03:29 »

Paks of the Windows Store build are way different than the Steam paks one. (since 4.2.0 was not the case before)

With Steam build it works with UModel.
But with Windows Store build (GRDK) i have this error :

Code:
assertion failed: !bIndexIsFrozen

FPakVFS::ReadDirectory: PakVer=0.0 <- RegisterGameFile: C:\Games\DeadByDaylightWindows\DeadByDaylight\Content/Paks/pakchunk0-WinAnvil.pak <- ScanGameDirectory <- ReadDir <- ScanGameDirectory <- appSetRootDirectory: dir=C:\Games\DeadByDaylightWindows\DeadByDaylight\Content <- Main: umodel_build=1387

It seems devs put more protections on GRDK than Steam for paks.

And the Unreal Engine used is 4.25.1 (it's written in properties of the exe).

If it's needed, i've put more paks from Windows Store build as example there :

https://zenhax.com/viewtopic.php?f=9&t=1005&p=58578#p58578

I can't use steam packs on Windows Store build, files are different (20% of them).

And of course EAC will kick me if i try. If the exe itself is able to read them (i don't think).
« Last Edit: September 09, 2020, 03:32 by Tgames » Logged
frutto
Newbie
*
Posts: 8


View Profile
Re: Dead By Daylight
« Reply #61 on: September 09, 2020, 03:37 »

It seems, that the easiest solution is to use steam packs. As you said you have got them and extraction works fine. I can't understand, what did you mean about "Windows Store build" and "Steam build".
« Last Edit: September 09, 2020, 03:40 by frutto » Logged
Tgames
Newbie
*
Posts: 9


View Profile
Re: Dead By Daylight
« Reply #62 on: September 09, 2020, 03:46 »

It seems, that the easiest solution is to use steam packs. As you said you have got them and extraction works fine. I can't understand, what did you mean about "Windows Store build" and "Steam build".

I don't play on Steam, i play on Windows Store.
Steam and Windows Store are two separated platforms on Dead By Daylight.

One use Steam and the other one use Xbox Compagnon.
Logged
frutto
Newbie
*
Posts: 8


View Profile
Re: Dead By Daylight
« Reply #63 on: September 09, 2020, 03:49 »

Yes of course and they works (Steam Paks) fine with Umodel and QuickBMS (unreal_tournament_4_0.4.25).
So, why did you said you have them? or am I misunderstanding something?
« Last Edit: September 09, 2020, 03:52 by frutto » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7814



View Profile WWW
Re: Dead By Daylight
« Reply #64 on: September 09, 2020, 10:17 »

I don't play this game AT ALL, so I won't support neither Steam not Windows Store versions  Grin
Logged
Tgames
Newbie
*
Posts: 9


View Profile
Re: Dead By Daylight
« Reply #65 on: September 09, 2020, 10:54 »

I don't play this game AT ALL, so I won't support neither Steam not Windows Store versions  Grin

 grin XD

Can you take a look on the paks as example i've put ?
I've posted more of them here : https://zenhax.com/viewtopic.php?f=9&t=1005&start=1580#p58578

Just to know if it's really full custom or just differences over a normal Unreal Engine 4.25.1 pak.
It will be really cool if you support it anyway  Grin.

Thanks Smiley.
« Last Edit: September 09, 2020, 10:56 by Tgames » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7814



View Profile WWW
Re: Dead By Daylight
« Reply #66 on: September 09, 2020, 12:53 »

So, I looked at these files. They are really using thing called "frozen pak index", it's not a custom format or bug in UModel. This feature existed only in UE4.25 and was removed in 4.26 (engine will crash with a message "rebuild pak files, we won't load them" if it will try loading it). Even more - this feature is explicitly disabled in UE4.25 when building pak for PC, so it SHOULDN'T appear in any PC game.

Some details about what is it. Pak files (like almost everything else in Unreal) has complex data structure, and object loader does a lot of CPU work parsing it. "Frozen index" is intended to load data without any parsing, it's just a single memory block with special code constructions intended to use it without additional fuss for programmers. These constructions are very platform-depending, and if programmer will change data layout a little bit - they will STOP working. So:
  • these constrictions are dangerous for developer
  • they're not compatible between 32-bit and 64-bit engine builds
  • there's a LOT of mess for me if I'll try to implement this.

So - sorry, it is not worth supporting this in UModel. ABSOLUTELY not worth. I'm really happy that it was disabled for PC and that it was removed in next engine version. I think DBD programmers has hacked engine a bit to use it, or may be they used pre-release 4.25 so it wasn't disabled yet.

As you can see, the game gets updates from time to time, so just expect next update will eliminate "frozen index" use.

Good things: I'm now warned about new constructions in the engine, as the same tech could be used in the future for other things, not for pak files.
Bad things: yes, this could be used for engine assets which UModel loads, what could make my life much more complicated, or what will break compatibility with newer games. However, UE4.26 is intended to be the latest UE4 version, so may be UModel will keep compatibility with all UE4 versions ...
Logged
Tgames
Newbie
*
Posts: 9


View Profile
Re: Dead By Daylight
« Reply #67 on: September 09, 2020, 13:02 »

Thanks for your answer and the full analyse of the paks Gildor.

I understand it not worth supporting it on UModel.

But can you (if you have time and want), just tell me what lines i need to mod on this BMS Script to extract my paks ?

If it's not a custom structure but a "mod" of a normal pak 4.25.1. This BMS Script who extract 4.25 paks can be maybe modded to allow us to at least extract paks and then open the uasset/uexp on Umodel ?

It will be very cool if you can help me on that.

Because uasset/uexp on the paks are supported by Umodel already.

Script in in file join.

* unreal_tournament_4_0.4.25.bms (9.36 KB - downloaded 15 times.)
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7814



View Profile WWW
Re: Dead By Daylight
« Reply #68 on: September 09, 2020, 13:15 »

It is complex for C++ coding, and TOO complex for coding in BMS. For instance: let's see at simple data structure
Code:
String A;
String B;
int Data;
how it will be stored in Unreal, it's layout on disk will be:
Code:
// String A
uint32 StringA.NumBytes
char StringA.Text[NumBytesA]
// String B
uint32 StringB.NumBytes
char StringB.Text[NumBytesB]
// Data
int32 Data

For the tech used in "frozen index" (not exact representation, but similar to it):
Code:
// String A
uint32 A.OffsetToString
uint32 A.NumBytes
// String B
uint32 B.OffsetToString
uint32 B.NumBytes
// Data
int32 Data
// String A (again)
WideChar StringA.Text[NumBytesA] <- pointed by A.OffsetToString = sizeof(uint32)x2 + sizeof(uint32)x2 + sizeof(int32) = fields between OffsetToString and string itself
// String B (again)
WideChar StringB.Text[NumBytesB] <- pointed by B.OffsetToString

If data structures will include arrays (in case of Pak file - arrays of string), you'll have the same mess with arrays, etc.
Logged
Tgames
Newbie
*
Posts: 9


View Profile
Re: Dead By Daylight
« Reply #69 on: September 09, 2020, 13:22 »

Ah ok it seems hard indeed :/

I think they will stay with this structure for months because GRDK is not classed as PC Platform in Unreal Engine.
At worst they will update Unreal Engine to 4.26 for GRDK in 6 months but it will be a long wait.
This update to Unreal Engine 4.25.1 is recent with this new update so i don't think they will update again Unreal Engine soon.

So there is no way to extract them, even with a custom C++ code (probably it will require lot of time to made one) ?

My need are not to reinject files, but extract all files of all paks to play unpacked (i have something to play unpacked on DBD).
But sadly it seems with this new update they killed the possibility to extract files on Windows Store build :/.

Thanks for your answers Gildor.
« Last Edit: September 09, 2020, 13:24 by Tgames » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7814



View Profile WWW
Re: Dead By Daylight
« Reply #70 on: September 09, 2020, 13:26 »

So there is no way to extract them, even with a custom C++ code (probably it will require lot of time to made one) ?
Yes, too much work.
Logged
spiritovod
Full Member
***
Posts: 215


View Profile
Re: Dead By Daylight
« Reply #71 on: September 09, 2020, 14:54 »

@Gildor: I believe that structure was supposed to be cross-platform compatible with ARM (for god knows why reason), but since it's not top priority, Epic disabled it to avoid devs questions and complains until they'll properly implement it (or will not implement). Considering that the DBD has mobile version on the same engine version, it's quite understandable.
I'm just praising they're not going to push something like BuildPatchServices to masses. I saw latest mobile Lineage pak, it contains mixed references to pre-build assets and streamable assets, and you need additional data from binary to actually stream something (pak is not self-contained). This is so fabulous (not). Though unity is using streamable assets for a few years now (in some mobile projects only).
« Last Edit: September 09, 2020, 14:57 by spiritovod » Logged
Skemooo
Newbie
*
Posts: 7


View Profile
Re: Dead By Daylight
« Reply #72 on: October 01, 2020, 19:17 »

@Gildor  All the Texture files from latest Public Test Build seem to have artifacts  However if we zoomout in UEviewer proper textures are visible as seen in screenshot below These artifacts prevail in final exported file too.. I tried exporting in all the formats Umodel allows me to do and the artifacts prevail..  This issue isnt there in the last version of game files.. and Unreal Engine version they are using is 4.25 for this build.

Is there anything you can do to help address this?

here is a link to the pak chunk containing few of assets. Ive uploaded 2 pakchunks if bandwidth is a constraint for you the smallest pakchunk I could find was around 400MB.

Pak Chunk Link: https://drive.google.com/drive/folders/1aIKHNq19XSFAEvEUCSH0UZJyVtPELJ3-?usp=sharing
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7814



View Profile WWW
Re: Dead By Daylight
« Reply #73 on: October 01, 2020, 20:25 »

Fixed in build 1401.

This is UE4.26 feature, so I think this game has at least partial upgrade to 4.26.
Logged
TheGoldSaw
Newbie
*
Posts: 1


View Profile
Re: Dead By Daylight
« Reply #74 on: October 08, 2020, 23:46 »

Hi everyone, i hope y'all doing great.
So we have a problem on umodel for Dead by Daylight (MOBILE).
So i have the AES key and the pak files. But when i try to open some models i get an error.
I tried to open models on different UE4 models but the same error occurs.
I would like you guys to help me if you can, i would really apreaciate it. I will drop a link with the pak file the aes key and the error i got. Thanks again and have a good day!
AES key:0x299BB5D348F021E966134382D676758F02726DF38F47DD96BE191AFC464DBC82
ERROR: assertion failed: Ar.Tell() == SkipOffset

UTexture2D::Serialize4 <- UTexture2D::Serialize <- LoadObject: Texture2D'iconFavors_tornBlueprint_lg.iconFavors_tornBlueprint_lg', pos=FAD, ver=517/0 (unversioned), game=ue4.22 <- UObject::EndLoad <- LoadWholePackage: /Game/UI/FavorsAssets/Yemen/iconFavors_tornBlueprint_lg.uasset <- CUmodelApp::ShowPackageUI <- Main: umodel_build=1401

Drive for the pak files: https://drive.google.com/file/d/1r05XTgr6690-3b3Ekjd9dopgKiINgax6/view?usp=sharing

Logged
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS