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.

lzovl -> Reverse LZ format

Featured Replies

  • Author
  • Localization

aluigi, posted Fri Sep 05, 2014 3:22 pm (384)


dsdecmp contains various algorithms and quickbms already implements most of them.
You can check them in goldensun.c, luminousarc.c and nintendo.c

The list of comtypes should be the following:
lz77wii
lz77wii_raw10
lz77wii_raw11
lz77wii_raw20
lz77wii_raw30
lz77wii_raw40
goldensun
luminousarc

It's not clear in that pmo files where the compressed data starts.
  • Author
  • Localization

chrrox, posted Fri Sep 05, 2014 9:37 pm (391)


its this format
https://code.google.com/p/dsdecmp/sourc ... s/LZOvl.cs


Code:
            #region Format description
            // Overlay LZ compression is basically just LZ-0x10 compression.
            // however the order if reading is reversed: the compression starts at the end of the file.
            // Assuming we start reading at the end towards the beginning, the format is:
            /*
             * u32 extraSize; // decompressed data size = file length (including header) this value
             * u8 headerSize;
             * u24 compressedLength; // can be less than file size (w/o header). If so, the rest of the file is uncompressed.
             *                       // may also be the file size
             * u8[headerSize-8] padding; // 0xFF-s
             *
             * 0x10-like-compressed data follows (without the usual 4-byte header).
             * The only difference is that 2 should be added to the DISP value in compressed blocks
             * to get the proper value.
             * the u32 and u24 are read most significant byte first.
             * if extraSize is 0, there is no headerSize, decompressedLength or padding.
             * the data starts immediately, and is uncompressed.
             *
             * arm9.bin has 3 extra u32 values at the 'start' (ie: end of the file),
             * which may be ignored. (and are ignored here) These 12 bytes also should not
             * be included in the computation of the output size.
             */
            #endregion


this looks like the lz-0x10
https://code.google.com/p/dsdecmp/sourc ... ro/LZ10.cs
  • Author
  • Localization

aluigi, posted Sun Sep 07, 2014 6:35 am (396)


ok, basically it works from the end to the beginning of the compressed data.

The code of dsdecmp has been updated from the last time I checked it for quickbms, what I don't understand is why lz10.cs differs so much than the old code.
  • Author
  • Localization

chrrox, posted Sun Sep 07, 2014 11:20 am (405)


Yes it seems to be reverse compression.
Do yo think its possible to add this to quickbms?
  • Author
  • Localization

aluigi, posted Sun Sep 07, 2014 4:47 pm (408)


yes, it's in my TODO list.

My doubt now is about the other algoritms because I know that they work in quickbms so I would avoid to re-porting the dsdecmp code again to match the current code.
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.