Resource icon

Cue's GBA/DS compressors 1.4

A group of command line tools compiled for windows (run them for usage) and GPL source code (C language and looks to be trivial to recompile for other C supporting operating systems) that supports decompression and compression of

LZ as seen on the GBA and DS
Type 10 (standard GBA and early DS) VRAM and WRAM safe versions. Also an optimised version.
Type 11 - seen on the DS
Type 40 - seen in Golden Sun and newer games
binary compression (BLZ) - the custom type of compression used by the DS binaries and overlays.
LZE - used in the later luminous arc titles.
RLE
Huffman (4 and 8 bit flavours).

*** WARNING ***
---------------
You need the NDS ROM to update the ARM9 size in the ARM9 file:
- get the ARM9 load address (offset 0x0028)
- get the ARM9 autoload (offset 0x0070)
- the offset is the previous dword value @ autoload
- change the sizes in the 1st/2nd/6rd dwords pointed by the offset:
+ 1st: ARM9 decompressed size + 0x18
+ 2nd: ARM9 decompressed size
+ 6rd: ARM9 compressed size (0 if ARM9 is uncompressed)
(do not forget update all values with the load address)

load = *(int *)ROM[0x0028];
auto = *(int *)ROM[0x0070] - load;
offset = *(int *)ARM9[auto - 1*4] - load;
*(int *)ARM9[offset+0*4] = load + ARM9_size - 0x18
*(int *)ARM9[offset+1*4] = load + ARM9_size
*(int *)ARM9[offset+5*4] = load + ARM9_decompressed_size (0 if decompressed)
General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://www.instagram.com/reel/C6rI8eXgDxd/?igsh=MWYybHY2YXoyM3I2cQ==