Assets from "Dragon Throne Battle battle of red cliffs"

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
DragonError
Posts: 1
Joined: Tue Oct 10, 2017 5:40 pm

Assets from "Dragon Throne Battle battle of red cliffs"

Post by DragonError »

Hello everyone :D
I`m new here and I hope you guys can help.

So my goal ultimatly is to obtain graphical images from good old game called "Dragon Throne Battle battle of red cliffs" released back at 2002. This game doesnt have an extensive community and digging the internet yield no results on how to get the actual sprites from the game.

Here is a link to game data files (they are in fact dll files containing the actual game assests)

I`ve managed to unpack the dll`s down to binary files.

Here is a sample file if you just want to get gist of what the files are

The files seems to be an actual graphical images (hence the header contains the xbm and the biggest ones contain the 800 and 600 in hex).
Strange thing is xbm stands for nothing in this case as the files dont have anything related to xbm format.
I tried to calculate the ammount of bytes per pixel for the biggest file (the sample one) and got that each pixel holds 32 bytes of values which stands for 960000*16 values in total. But the whole file size is about 964864 * 16 meaning that there is 4864*16 loose values.

So I ask you to help me find out what the format actualy is because I`m no good at reverse engineering the stuff I know nothing about. At least an advice would be good.

If the game screenshot would help here it is (I`m not sure what the color pallete the game uses and it is probably very important)

Thanks in advance :D
Last edited by DragonError on Wed Oct 11, 2017 2:22 pm, edited 1 time in total.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Assets from "Dragon Throne Battle battle of red cliffs"

Post by aluigi »

Maybe it's a collection of 40x40 8bit images or something similar.
Take a look at the raw files dumped by this script:

Code: Select all

idstring "xbm\0"
goto 0x14
get DUMMY long
get FILES long
math BASE_OFF = 0x40
goto BASE_OFF
for i = 0 < FILES
    get OFFSET long
    math OFFSET + BASE_OFF

    savepos TMP
    goto OFFSET
    get ZERO short
    get SIZE short
    savepos OFFSET
    log "" OFFSET SIZE
    goto TMP
next i