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.

Lumines II/LIVE!/Puzzle Fusion PC .dat files

Featured Replies

  • Author
  • Localization

HIKARUfw, posted Sat Apr 13, 2019 6:45 pm (46890)


New member here.
I've been wanting to examine Lumines II (PSP), but i realized the files are compressed.
I'm not sure what the compression method is, but its most prominent feature is the presence of a "repeating byte" that acts as a "flag" of some sorts.
Lumines LIVE! (XBOX360) and Lumines Puzzle Fusion (PC) also seem to use this compression method.
Please note that the flag can be of a different value, most of the times being FE, but can also be FA, 5C, 9B...

Thanks in advance. Hopefully i'm doing this right and not missing things.
  • Author
  • Localization

HIKARUfw, posted Sun Apr 28, 2019 12:52 pm (47391)


Some updates. I think i figured out how the compression works. At the beginning of the files inside the .dat, there's three headers, all of them taking 4 bytes. One is the uncompressed size. Immediately after is the compressed size. And finally, the "flag" value used in the compressed data.
How the "flag" works is this: when the "flag" byte is inserted into the data, immediately after there is a byte with "how many bytes should be rewinded" to reach an "aim", then followed by a value that shows how much the "aim" byte is repeated.
  • Author
  • Localization

HIKARUfw, posted Sun Apr 28, 2019 11:28 pm (47414)


UPDATE 2: The "second flag byte" does not actually aim for a specific byte, it aims for a section of bytes, which is then repeated. If the third byte's value (repeat) is lower than the second byte, only the segment determined by the former repeats, starting from the first byte of the segment. If the third byte's value is higher than the second byte, the section determined by the latter repeats, completely or partially.
Here's a crudely drawn picture crudely explaining how the thing works.
Image

I've tried to manually decompress one of the files (not the one linked in the first post), only to obtain partial success.
Image

On another note, if the "flag" value is mentioned twice in a row, both don't function as flags; the code stays as it is.
Oh, and can someone please move this to the Game Archive category? Thanks
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.