Page 1 of 2

[HELP] Luigi's Mansion 3 .DATA file

Posted: Sat Oct 26, 2019 3:35 pm
by devomako
Hoping someone can help me extract some stuff from this format, searching online hasn't brought in any results haha

Basically from what I can tell everything from looking at sizes and the names, every separate part of the game has a .DATA file and they contain all the parts for those areas, the programming (i assume), the models, textures, etc (minus the sound since that's a wwiseaudio thing) however I can't seem to get a grasp on the format itself since there's no reference of .DATA stuff online

If someone can look into it and help me with this it'd be great, here's the global .DATA file that I assume has stuff in it for base level stuff like UI, Luigi's stuff, etc
https://drive.google.com/open?id=1wJkkG ... pdLNcJhWaf

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 5:17 am
by deschamps12
Did you need new keys to extract the xci for this? Trying to take a look at it but can't seem to extract. Will let you know if I get anything from the DATA file though

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 6:55 am
by devomako
I got my keys from the /hbg/ discord since if I need something quick it's easier then dumping my own and those seemed to work fine, so I assume since those are probs newest firmware then that might be the reason? I'm not sure though

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 9:33 am
by Demonslayerx8
From what I can tell, the .data is compressed, the .dict file that's alongside them is the file location in the .data, which also tells the size of the file, offset location, and folder path? Seems to be hashed from a quick glance at the files from my dump.

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 2:47 pm
by AdventureT
I have extracted the global.data file with offzip and got an file called 0adfc330.sdb which contains model data. I'm currently trying to extract it with hex2obj/advanced mesh reaper...

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 2:59 pm
by DKDave
Have you got the .dict file as well? There are a few thousand files in that .data archive by the look of it.

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 3:08 pm
by devomako

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 3:28 pm
by AdventureT
I now have gotten the mesh although it seems not correct.

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 7:44 pm
by gilsongbj
I found this on the internet. I don't know if it will help you

https://gist.github.com/RoadrunnerWMC/f ... 6ee73eaa9f

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Sun Oct 27, 2019 10:10 pm
by Demonslayerx8
that is for Dark Moon, that will most likely not help for us lol

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Mon Oct 28, 2019 12:30 am
by DKDave
You can use this QuickBMS script to extract and decompress the data - not sure yet how the filenames/folders are stored in the first table in the .DICT file so there's no proper filenames yet.


# Luigi's Mansion 3 - .dict extract
# By Dave, 2019
# Needs to be in same folder as global.dict, global.data, global.debug and global.nxpc

ComType zlib

Goto 0x0c
Get ENTRIES2 byte
Get ENTRIES1 byte
Get ENTRIES3 byte

XMath FILE_TABLE "(ENTRIES1 * 0x18) + 0x10"
XMath TEXT_TABLE "FILE_TABLE + (ENTRIES2 * 0x10)"

# Open data files

Goto TEXT_TABLE

For A = 1 to ENTRIES3

Get JUNK byte
Get DATA_FILE String
Open FDDE DATA_FILE A

Next A


# Read file table entries

Goto FILE_TABLE

For A = 1 to ENTRIES2

Get OFFSET Long
Get SIZE Long
Get ZSIZE Long
Get JUNK Byte
Get JUNK Byte
Get SOURCE Byte
Math SOURCE + 1
Get JUNK Byte
Set FILENAME "LM3_"
String FILENAME + A

If SIZE <> 0
Clog FILENAME OFFSET ZSIZE SIZE SOURCE
Endif

Next A

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Mon Oct 28, 2019 2:18 am
by Über Winfrey
DKDave wrote: Mon Oct 28, 2019 12:30 am You can use this QuickBMS script to extract and decompress the data - not sure yet how the filenames/folders are stored in the first table in the .DICT file so there's no proper filenames yet.


# Luigi's Mansion 3 - .dict extract
# By Dave, 2019
# Needs to be in same folder as global.dict, global.data, global.debug and global.nxpc

ComType zlib

Goto 0x0c
Get ENTRIES2 byte
Get ENTRIES1 byte
Get ENTRIES3 byte

XMath FILE_TABLE "(ENTRIES1 * 0x18) + 0x10"
XMath TEXT_TABLE "FILE_TABLE + (ENTRIES2 * 0x10)"

# Open data files

Goto TEXT_TABLE

For A = 1 to ENTRIES3

Get JUNK byte
Get DATA_FILE String
Open FDDE DATA_FILE A

Next A


# Read file table entries

Goto FILE_TABLE

For A = 1 to ENTRIES2

Get OFFSET Long
Get SIZE Long
Get ZSIZE Long
Get JUNK Byte
Get JUNK Byte
Get SOURCE Byte
Math SOURCE + 1
Get JUNK Byte
Set FILENAME "LM3_"
String FILENAME + A

If SIZE <> 0
Clog FILENAME OFFSET ZSIZE SIZE SOURCE
Endif

Next A
does the debug and nxpc files dump separately or are they inside a file, cause I'm not seeing a single instance of those two files in the game except for the reference in .dict

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Mon Oct 28, 2019 11:16 am
by Demonslayerx8
same with me, I only got .data and .dict from unpacking the romfs.

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Mon Oct 28, 2019 5:46 pm
by DKDave
I just dumped the files in .DICT order.

If you add the line: Print "Source: %SOURCE%" after the Clog line, you can see which archive the files are from (1=.data, 2=.debug, 3=.nxpc)

So, files 59, 60 and 61 are from .nxpc, which looks to be about 500 MB of data.

Re: [HELP] Luigi's Mansion 3 .DATA file

Posted: Wed Oct 30, 2019 1:16 am
by Demonslayerx8
well I added it, but still no luck on getting those missing files..