3

I would like to figure out the data format used by an old DOS game I used to play when I was a kid. That link includes a full download for all the files and it runs fine in DOSBox if you want to try it.

The game's main executable (once you run the installer) is Z#.EXE, which file identifies as "MS-DOS executable, COFF for MS-DOS, DJGPP go32 DOS extender". Binwalk returns nothing interesting besides a few copyright strings - by trying the -X option, it finds a ton of deflate streams which seem bogus. Strings however shows interesting stuff :

stub.h generated from stub.asm by djasm, on Sat Oct  5 20:49:01 1996
The STUB.EXE stub loader is Copyright (C) 1993-1995 DJ Delorie.
...
$Id: stub.asm built 10/05/96 20:49:00 by djasm $
...
go32stub, v 2.00T
...
O2C - v1.0 - RiCO/SPiRiT - Richard Spijkers
...
popr0%d.vg2
popr1%d.vg2
popr2%d.vg2
popr3%d.vg2
popb0%d.vg2
popb1%d.vg2
popb2%d.vg2
popb3%d.vg2
popp0%d.vg2
popp1%d.vg2
popp2%d.vg2
popp3%d.vg2
r01.VG2
r02.VG2
r03.VG2
r04.VG2
r05.VG2
b01.VG2
b02.VG2
b03.VG2
b04.VG2
b05.VG2
p01.VG2
p02.VG2
p03.VG2
p04.VG2
p05.VG2
popg1%d.vg2
popg2%d.vg2
popg3%d.vg2
g01.VG2
g02.VG2
g03.VG2
r401.VG2
r401b.VG2
r402.VG2
r402b.VG2
r403.VG2
r403b.VG2
...
demodisk.vg2
stagecom.vg2
pop.vg2
cursor.vg2
energy.vg2
logo.vg2
readyr.vg2
readye.vg2
readya.vg2
readyd.vg2
readyy.vg2
...
Error loading Song
PANG%02d.LV2
RAIN.SNG
BOSS1.SNG
Error loading level 
The combined level file is corrupt.
...
BUBBLE.PCX
PREVIEW1.PCX
PREVIEW2.PCX
PREVIEW3.PCX
PREVIEW4.PCX
PANG1.PCX
VShI
uLA9
BMBLEV
BMBARS
BMBIG
BMGRAB
PANG%02d.PCX
...
GENERAL.SNG
CREDITS.SNG
...
TITLE.PCX
error loading title screen (TITLE.PCX)
...
BMANIASW.CDF ### the data file
unable to locate data file BMANIASW.CDF.
...
SPLIT.RAW
GUN.RAW
YEAH.RAW
GROUP.RAW
HSTUCK.RAW
BONUS.RAW
SPLITTER.RAW
TICK.RAW
CLOCK.RAW
OHYEAH.RAW
BOSSHIT.RAW
LAUGH.RAW
TRUMPET.RAW
YBIRD.RAW
MENUMOVE.RAW
MENUHIT.RAW
SCORE.RAW
BMANIA.PAL
...
Cannot open CF file.
Unable to locate combined file: 
abnormal program termination.
Unable to read from combined file.
...
man%d.vg2
arrow.vg2
0,1,2,3,4
harp%d.vg2
guna0.vg2
gunb0.vg2
gunc0.vg2
manh%d.vg2
man0.vg2
man4.vg2
manhitg.vg2
manf0.vg2
manf1.vg2
manf2.vg2
manf3.vg2
0,1,2,3
manc%d.vg2
shield.vg2
mans4.vg2
...
rhinoh1.vg2
rhinoh2.vg2
rhinoh3.vg2
rhino1.vg2
rhino2.vg2
rhino3.vg2
rhino4.vg2
rhino5.vg2

The first few suggest that DJGPP was used to compile the file, and then a ton of what looks like filenames follow, with some error strings as well as a reference to BMANIASW.CDF which is either the game's actual data/asset file. The full strings output is here.

On the data file, binwalk finds nothing besides LZMA streams which again seem like false positives. Strings shows very repetitive patterns as well as totally random onee, plus more filenames at the end of the file, so it looks like there is both uncompressed data as well as compressed. The full strings output is here.

Does anyone recognize this type of compression, or could hint at which tools to try next?

  • 1
    If you look a bit closer at those files, you will find that Z#.EXE consists of mainly zeroes – a massive block of more than 1MB. The file you are probably more interested in is BMANIASW.CDF, as this contains at least the graphics (uncompressed), and probably the level designs and sounds as well. – usr2564301 Dec 30 '16 at 10:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.