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.

EA games DBPF compression

Featured Replies

  • Author
  • Localization

StreamThread, posted Sun Sep 10, 2017 11:19 pm (26422)


Hello

I'm unpacked a ".big" archives of MVF 2005 game by EA. Some unpacked files have '0x10BF' bytes at beginning, so looks like a 'firm' EA compression DBPF. Decompression of these files is possible?

The File infos block from ".big" archives not contain a uncompressed sizes of that files. So, I'm tried commands like 'Clog fileName fileOffset compressedSize comressedSize' or 'Clog fileName fileOffset compressedSize 100000' with seted 'comtype DBPF'. How obvious, this give a error because of wrong uncompressed sizes.
  • Author
  • Localization

aluigi, posted Mon Sep 11, 2017 8:49 am (26427)


It's the refpack algorithm which I call dk2 in quickbms becuse the first time it has been reverse engineered was with Dungeon Keeper 2, but don't worry you can call it comtype EA or comtype RefPack too.
The decompressed size is calculated automatically so it's enough to use the following:
Code:
comtype dk2
get SIZE asize
clog "out.dat" 0 SIZE SIZE
comtype dk2_compress performs the recompression in case you are interested in it.
  • Author
  • Localization

StreamThread, posted Mon Sep 11, 2017 2:39 pm (26432)


Thanks =)

So the unpack script looks now:

Code:
#MVP Baseball 2005 *.big 'BIGF' #Electronic Arts 

comtype EA
IDString "BIGF"

get bigfSz long
endian big
get fileCnt long
get dataOffset long

for I = 1 to fileCnt
endian big
get fOffset long
get fSize long
endian little
get fName string

savepos curPos
goto fOffset
get comID short

if comID == 0xFB10
cLog fName fOffset fSize fSize
else
log fName fOffset fSize
endif

goto curPos
next I


And BIGF samples in attach just in case )
  • Author
  • Localization

StreamThread, posted Tue Sep 12, 2017 10:31 pm (26458)


aluigi wrote:
Why not using the existent script?
http://aluigi.org/bms/ea_big4.bms


I'm not found that. And just write a script for self was more interesting :D
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.