ASH (File Format)

From RGDWiki

ASH is a file format used in the Wii. They're mostly used for the Wii Menu, however can be found in random DOLs, Animal Crossing: City Folk DLC and My Pokémon Ranch. It even is used on Flipnote Studio for the DSi, for sample flipnotes. There is not much documentation on this format, and a decompressor for them originally made by crediar seemed to be made by using disassembled code and recompiled as a Windows executable. The magic number for the format is "ASH0" and might be comparable to the "Yaz0" (SZS File) and "Yay0" formats used for games (SZS files still seem to be used in Nintendo's recent games). We have no idea what "ASH" stands for in this context.

The decompressor works for most ASH files, but it crashes when trying to decompress files for My Pokémon Ranch. It's possible to get the decompressed data for that game by doing a RAM dump of Dolphin, though. We have found an official ASH decompressor in the Wii SDK (in the Software Keyboard library).

Thankfully, someone named conanac made an ASH compressor that was never released until we asked for it, and he recovered it from an old computer. The source code seems to be lost for it, however the compiled executable is available on MarioCube and GBATemp. The program compresses into an .lzp and .lzd, and then a .hfp and .hfd (a data and dictionary file).

Doing some research, and talking to aluigi (the maker of a tool called QuickBMS which extracts all sorts of game archives), we've traced what might be the compression used to an old program by someone named Charles Bloom. aluigi mentioned the format being an ASM->C conversion (whatever that means), and that's what the program seems to do. He said that when he looked at the file format, checking the first few offsets of the file, the data made no sense. We think the ASH format should have more documentation at some point.