Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

[SOLVED] Disney Infinity 2.0 main DAT archive

Featured Replies

  • Author
  • Localization

AlphaTwentyThree, posted Thu Jun 09, 2022 2:23 pm (71915)


Hello!

I've just stumbled upon a non-standard ZIP file in the above game (for PS Vita). All files are in a file of 3gb and the identifier looks like zip. However, when opened with 7zip it only shows a very small portion (or the first ZIP block?). Here's the first and last 1mb of the file: https://1fichier.com/?ay430mpn3u9zy0lfr5a4
Thanks for your help!

EDIT: Working script below!
  • Author
  • Localization

AlphaTwentyThree, posted Thu Jun 09, 2022 4:59 pm (71918)


ah sorry, accidentally posted in wrong section - please move to "Game archives"
  • Author
  • Localization

DKDave, posted Thu Jun 09, 2022 11:42 pm (71923)


I think the issue is that there are many different files in that 3GB archive, so there must be a mater file table elsewhere. For example, if you look at offset 0xeec77 in your last 1mb file - that is the start of a normal zip file. If you save the data from that point to the end, it will open as a normal zip.

Similarly, in your first 1mb file, the first part is a zip file from 0 - 0x3c173.
  • Author
  • Localization

AlphaTwentyThree, posted Fri Jun 10, 2022 8:45 pm (71941)


Hm, maybe that strange ManifestFile.dat? Attached.
  • Author
  • Localization

DKDave, posted Sat Jun 11, 2022 10:28 am (71961)


AlphaTwentyThree wrote:
Hm, maybe that strange ManifestFile.dat? Attached.


Yeah, that contains the file offsets in decimal form. Looks like 3 values per entry: first entry is -1257310739 which is probably some CRC/filename hash, then you've got file offset (0), and file size (246131), which corresponds to the first file in the archive.

And the final file in the archive should be at offset 0xce1b97e7 with a size of 0x11389.
  • Author
  • Localization

AlphaTwentyThree, posted Sat Jun 11, 2022 10:33 am (71962)


Ok, thanks. Is there a command that directly lets me read the values correctly or do I need to make a converter function?
  • Author
  • Localization

DKDave, posted Sat Jun 11, 2022 10:38 am (71963)


AlphaTwentyThree wrote:
Ok, thanks. Is there a command that directly lets me read the values correctly or do I need to make a converter function?


I did a QuickBMS script to read them - not sure if it works properly as I don't have the archive, but you can give it a try. It may fail when it gets to the negative values for the offsets, as you don't often get file table info in this format!

Just a couple of things before using it. In order to make sure the script works properly, add a comma after the final value in the manifest file - it's just a standard text file. And also replace "archive" with your archive name in my script.

  • Author
  • Localization

AlphaTwentyThree, posted Sat Jun 11, 2022 12:00 pm (71964)


ah, just a simple operation, you could have told that in the first place. ;)

Here's a working script that somehow still crashes at the end of the TOC. It extracts all the contents of the main archive though. I've added a type identifier portion for convenience.
Code:
# game: Disney Infinity 2.0
# file: MasterFile.dat/ManifestFile.dat
# script type: extractor
#
# (c) 2022-06-11 by AlphaTwentyThree of ZenHax
# (with contribution: DKDave of ZenHax)
# script for QuickBMS http://quickbms.aluigi.org

open FDSE ManifestFile.dat 0
open FDSE MasterFile.dat 1
get TOC_SIZE asize 0
goto 1 0

For i = 0
   getCT HASH string 0x2c
   getCT OFFSET string 0x2c
   getCT SIZE string 0x2c
   math HASH = HASH
   math OFFSET = OFFSET
   math SIZE = SIZE
   savepos TEMP
   
   goto OFFSET 1
   getDstring TEST 4 1
   if TEST == "FSB5"
      set EXT "fsb"
   elif TEST == "KB2i"
      set EXT "bik"
   elif TEST == "RIFF"
      set EXT "fev"
   elif TEST == "NAME"
      set EXT "nam"
   elif TEST == "SMAP"
      set EXT "map"
   else
      goto OFFSET 1
      getDstring TEST 3 1
      if TEST == "DLG"
         set EXT "dlg"
      else
         goto OFFSET 1
         getDstring TEST 2 1
         if TEST == "PK"
            set EXT "zip"
         endif
      endif
   endif
   string FNAME P "%EXT%\%HASH%.%EXT%"
   log FNAME OFFSET SIZE 1
   goto TEMP 0
   if TEMP == TOC_SIZE
      cleanexit
   endif
next i
  • Author
  • Localization

DKDave, posted Sat Jun 11, 2022 4:56 pm (71966)


Wasn't sure if it would work, but luckily it seems to :-)
  • Author
  • Localization

AlphaTwentyThree, posted Sun Jun 12, 2022 8:48 am (71978)


Yeah, thanks for your input :D
Always nice to work together to solve a problem. :)
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.