September 19, 2018, 08:12
bigger smaller reset 800px Wide width Full width Reset * *

Gildor's Forums

  Homepage Facebook Donate
Welcome, Guest. Please login or register.
Did you miss your activation email?


Login with username, password and session length
« previous next »
Pages: [1] Print
Author Topic: Kingdom Hearts 0.2 Birth By Sleep ~ A fragmentary Passage ~  (Read 1741 times)
13thVessel
Newbie
*
Posts: 4


View Profile
« on: December 19, 2017, 00:41 »

Hi there!
I've been working a lot of time with some friends to get the files of this game, one of my friends made a .pak unpacker for it and now we got the files.
The thing is that we tried to open models and stuff but we're only able to see some of them and without textures.
I guess Square Enix is using a custom version of UE4 and I'd like to know if you could help adding support for this game.





As you can see, models are displayed but without textures, also when I open a texture file it isn't shown properly, I don't know if this issue is due to the way the game loads them or if is just that the tool can't display it correctly.
I'm gonna let you here a link with these concrete files so you can check them out.

https://mega.nz/#!nVEmnLoL!UW9AXQZh2GpfW3uYuljnaYKUN9ZdBOKAur8uh2AR0TQ

I don't know if this will help but I noticed that It works better when I choose UE4.12 as the version of the game. Please let me know if you need anything else.
Thanks a lot for the amazing job here, this tool is awesome.
13thVessel~

EDIT: I added another texture file that shows what almost all textures show, nothing.
It says: *** Failed to upload mip 6 of texture o_dw306_0n00 in format 0x8DBD: error 0x501
« Last Edit: December 19, 2017, 01:53 by 13thVessel » Logged
Gildor
Administrator
Hero Member
*****
Posts: 6783



View Profile WWW
« Reply #1 on: December 19, 2017, 02:44 »

Hi.

Why textures are not mapped? Check umodel's log, you'll see a lot of messages looking like this:
Code:
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarC'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarC was not found
This means that uasset has a reference to package MI_dw_dis_FarC (with full path name), but it is not found. I think this is because your pak extractor loses file names, everything has numeric names in your example archive. By the way, why custom pak extractor?

Regarding bad R8G8B8A8 texture, I have no idea. Was that a PC platform?
Logged
13thVessel
Newbie
*
Posts: 4


View Profile
« Reply #2 on: December 19, 2017, 03:06 »

Here it is:

Found 5 game files (5 skipped)
Loading package: 8680.upk Ver: 504/0 Engine: 0 [Unversioned] Names: 48 Exports: 3 Imports: 16 Game: 10000C0
Loaded in 0 sec, 4 allocs, 0.00 MBytes serialized in 0 calls.
Loading StaticMesh4 SM_dw_Ter_GroundFractureA from package 8680.upk
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarC'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarC was not found
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarA'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarA was not found
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarI2'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarI2 was not found
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarH'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarH was not found
WARNING: Import(MaterialInstanceConstant'MI_cd_Pro_LampB'): package /Game/Maps/dw/uasset/Materials/MI_cd_Pro_LampB was not found
WARNING: Import(MaterialInstanceConstant'MI_dw_dis_FarD'): package /Game/Maps/dw/uasset/Materials/MI_dw_dis_FarD was not found
WARNING: IntProperty "UStaticMesh4::LightMapResolution" was not found
WARNING: IntProperty "UStaticMesh4::LightMapCoordinateIndex" was not found
WARNING: StructProperty "UStaticMesh4::ExtendedBounds" was not found
WARNING: Unknown class "BodySetup" for object "BodySetup_38"
WARNING: Unknown class "NavCollision" for object "NavCollision_159"
Loaded in 0.008 sec, 28 allocs, 0.94 MBytes serialized in 104 calls.

I really don't know, the thing is that this is a PS4 game and we had to create our own .pak extractor because we weren't able to find one able to extract this concrete .pak
We're having a lot of troubbles trying to extract the whole .pak with names.
Do you think you can help with this?
Thanks a lot!
Logged
Gildor
Administrator
Hero Member
*****
Posts: 6783



View Profile WWW
« Reply #3 on: December 19, 2017, 03:21 »

Without uasset names, it is insane to use extracted assets. You should focus on extraction of full file names. However it is possible that the game using a kind of Starcraft MPQ (no idea if you familiar with this) - that archive saved file name hashes instead of real names, so nobody was able to extract these archives before someone fetched a file list using game code monitoring. Original UE4 pak always has name table (directory, or "index"), either encrypted or not, but developers may protect things using for example MPQ-like tech in custom pak format.

PS4 probably has custom texture formats, even uncompressed ones. At least previous consoles generation used texture swizzling.
Logged
13thVessel
Newbie
*
Posts: 4


View Profile
« Reply #4 on: December 19, 2017, 03:44 »

I understand, thanks a lot for this useful information.
The thing is that we managed to extract it with names but sometimes they're not the real names or they are just on the wrong route.
I'll tell this to my partners and see if we can manage to extract it with it's correct names.

I have a link for the .pak in question, If you have time and want to take a look at it I'd be very grateful

About texture swizzling we were talking about it and we thought the same.
Thanks again!
« Last Edit: December 20, 2017, 04:06 by 13thVessel » Logged
fimo
Newbie
*
Posts: 21


View Profile
« Reply #5 on: December 20, 2017, 21:53 »

Hi! Do you know where I can get the game files?
Logged
chrrox
Silver Sponsor
Full Member
**
Posts: 205


View Profile
« Reply #6 on: February 04, 2018, 02:59 »

here is a bms script to convert these textures to ps4 sdk format.
use umodel to export the textures with the -dds option.
then run this quickbms script on them to convert them to ps4 sdk format.

Code:
get NAME basename
string NAME += _fixed
string NAME += .gnf
goto 0xC
get HEIGHT long
get WIDTH long
get SIZE long
set SIZE2 SIZE
math SIZE2 + 0x30
goto 0x54
getdstring TYPE 4
set MEMORY_FILE binary "\x47\x4E\x46\x20\x28\x00\x00\x00\x02\x01\x00\x00\x30\x00\x10\x00\x00\x00\x00\x00\x01\x00\x50\x92\xFF\xC3\xFF\x70\xAC\x0F\xD0\xA4\x01\xE0\x7F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00"
math WIDTH - 1
math WIDTH + 0xC000
math HEIGHT - 1
math HEIGHT > 2
math HEIGHT + 0x7000
print "%HEIGHT%"
putVarChr MEMORY_FILE 0X1A HEIGHT short
putVarChr MEMORY_FILE 0x18 WIDTH short
putVarChr MEMORY_FILE 0xC SIZE2 long
putVarChr MEMORY_FILE 0x2C SIZE long
if TYPE == "DXT1"
putVarChr MEMORY_FILE 0x16 0x30 BYTE
putVarChr MEMORY_FILE 0x17 0x92 BYTE
elif TYPE == "DXT5"
putVarChr MEMORY_FILE 0x16 0x50 BYTE
putVarChr MEMORY_FILE 0x17 0x92 BYTE
elif TYPE == "ATI2"
putVarChr MEMORY_FILE 0x16 0x70 BYTE
putVarChr MEMORY_FILE 0x17 0x92 BYTE
endif

append
log MEMORY_FILE 0x80 SIZE
append

log NAME 0 SIZE2 MEMORY_FILE
« Last Edit: March 04, 2018, 02:18 by chrrox » Logged
13thVessel
Newbie
*
Posts: 4


View Profile
« Reply #7 on: February 04, 2018, 23:14 »

Thanks a lot chrrox, it was really helpful!
Logged
Pages: [1] Print 
« previous next »
Jump to:  

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