Direct Draw Image (.ddj)ΒΆ

This format is very simple. The whole file looks like this:

struct DDJ
{
    Header header;
    DDS dds_image;
}

The header is:

// Size = 20 bytes
struct Header
{
    char[12] magic;
    int unknown1;
    int unknown2;
}

Since the header does not contain useful information, you can just skip the first 20 bytes and load the remaining bytes as a Direct Draw Surface.