spihsp is a Susie plugin package for Hot Soup Processor 2 and 3.
- axdpm.spi: DPM archive (*.dpm) unpacker, supports HSP 3.22 or older.
- axdpm33.spi: DPM archive (*.dpm) unpacker, supports HSP 3.3 or later.
- axdpmex.spi: Same as axdpm.spi, but this one supports in-EXE archive.
- axdpmex33.spi: Same as axdpm33.spi, but this one supports in-EXE archive.
Susie is an old-school picture viewer for Windows, which can load additional formats by adding Susie plugins (*.spi). In Japan, Susie plugin is often used for decoding custom image formats inside a game.
There are several picture viewers that supports Susie plugin. For example:
- Susie
- Linar
- picture effecter
- stereophotomaker
- vix
- A to B converter
- ACDSee (commercial)
My favorite is Linar for browsing, and AtoB Converter for batch conversion.
- axdpm can decrypt only archives that do not specify the encryption key by
chdpm
. (because it is hard to determine the encryption key 100% automatically, and axdpm does not have an interface for specifying encryption key. FYI, decryption routine is exactly identical to the regular decoding.)- In such case, you may want to use a HSP decompiler to get the encryption key. Try HSPdeco and search
chdpm
from the decompiled source code.
- In such case, you may want to use a HSP decompiler to get the encryption key. Try HSPdeco and search
- HSP file decryption routine uses two 8 bit encryption keys. Therefore, possible key combinations are only 65,536 patterns. In fact, you can try brute force decoding even if you cannot get the encryption key. A bundled tool
dpmatt
is a simple implementation of that. - If target EXE is compressed by a packer (e.g. UPX), axdpm will fail at archive detection. Please unpack the EXE by hand beforehand (see the following section for details).
- UNDPM32.DLL is a DPM unpacker library that respects Common Archiver Project API. axdpm.spi can work without it.
- Any use of the software is entirely at your own risk.
If target EXE is compressed by a packer, you need to unpack the EXE by hand.
- Open the target EXE in a hex editor (e.g. Hex Workshop).
- Search for "DPMX" from the tail of file. Then, cut the "DPMX" itself, and the part after it. (Note that the removed DPMX section is needed a little later. So please save it to somewhere.)
- Unpack the modified EXE by using unpacker tool. (e.g. UPX can be unpacked by UPX)
- Reopen the unpacked EXE in a hex editor, and recover the preserved DPMX section into the tail of file.
For details of the checksum, see hspsum.cpp in source code package.