This project contains 60 maps (levels or mazes) for the Sokoban game. The
maps have been extracted from the binary file of a Sokoban implementation
for DOS called pusher. The pushermaps.c is the automated map extractor.
There is a couple of screenshots of pusher.exe running in DOSBox.
Type make to build the map extractor and run it. The extractor will
parse the pusher.exe file, extract the maps and print them to the
standard output. For example:
*************************************
Maze: 1
File offset: 148C, DS:00FC, table offset: 0000
Size X: 22
Size Y: 11
End: 14BD
Length: 50
XXXXX
X X
X* X
XXX *XXX
X * * X
XXX X XXX X XXXXXX
X X XXX XXXXXXX ..X
X * * ..X
XXXXX XXXX X@XXXX ..X
X XXX XXXXXX
XXXXXXXX
*************************************
Maze: 2
File offset: 14BE, DS:012E, table offset: 0032
Size X: 14
Size Y: 10
End: 14E8
Length: 43
XXXXXXXXXXXX
X.. X XXX
X.. X * * X
X.. X*XXXX X
X.. @ XX X
X.. X X * XX
XXXXXX XX* * X
X * * * * X
X X X
XXXXXXXXXXXX
*************************************
and so on.
In the ./maps subdirectory there are two files:
sokoban-maps-60-plain.txtwith the maps in the plain text form.sokoban-maps-60-compressed.txtwith the maps in the compressed from as they are in thepusher.exefile.
The maps are compressed by a Huffman-like method explained at the beginning
of the pushermaps.c file.
In the ./disasm subdirectory there is a file called pusher.lst containing
a disassembled listing of the pusher.exe executable.
You can run pusher.exe via DOSBox:
DOSBox -exit pusher.exe
Tested on Windows 7 and Mac OSX 10.7.4 with DOSBox 0.74.

