20130313
[gdash.git] / README
blob176370036ef7409f967a443a1cac1e9ae99cb500
1 GDash
2 -----
3 An Emerald Mine-like game for GTK+.
4 See http://code.google.com/p/gdash/ .
6 Compiling
7 ---------
8 Compiling the game goes the usual way. After uncompressing, you can
9 use the 'configure' script to detect libraries and create makefiles,
10 then use 'make' and maybe 'make install', if needed:
12         ./configure [parameters]
13         make
14         make install
16 The game uses the glib library. For compiling, headers and development
17 libraries are also needed from the glib package.
18 The program comes in two versions, the GTK+-based 'gdash', which has
19 a cave editor, too. The other one is the SDL-based 'sdash', which is
20 very similar to the original C64 game, and has joystick support, and
21 a very nice fullscreen support.
22 Sound support can also be enabled, if SDL is available. (It is enabled
23 by default.)
24 The switches to control the libraries are:
26         --with-gtk and --without-gtk, to compile or to skip the menu-driven
27         gdash version.
28         
29         --with-sdl and --without-sdl, to control the build of the sdl
30         version. 
32 For example, if you do not have GTK+, and plan to build only the C64-like
33 sdash, you can use:
35         ./configure --without-gtk
36         make
38 Remember that glib is needed in either case. Also, some icons and
39 pictures are inlined in the executables. The include/ directory comes
40 with these .h files readily generated, but if you change one of the .png
41 files, the gdk-pixbuf-csource application is needed to regenerate them,
42 which is part of the GTK+ development package.
44 To build the Windows installer, you can use MinGW and the Msys environment.
45 Type 'make gdash.nsi' in the shell, and open the resulting 'gdash.nsi' file
46 in NSIS.
50 util/any2gdash
51 --------------
52 You can use the any2gdash tool to convert caves found in snapshot files.
53 This tool extracts information, and creates a binary file,
54 which is similar to the internal format of an engine found in the snapshot.
56 Currently it loads BD1, BD2, PLCK, 1stB and CrLi snapshots.
57 Using these internal formats is important for now, as the GDash
58 engine is not completed yet. A later version can interpret some bytes
59 from the file, which some older one did not; yet it is not necessary to
60 import a game again for this.
61 Also these internal formats are subject to change, as I'm going on with
62 development, so converting all your games is somewhat discouraged for now.
63 In turn, conversions are very useful to test the engine and compatibility.
64 So treat the converted games as a way to test GDash and help me with
65 describing any problem you may find.
68 BDCFF files
69 -----------
70 Default values for cave properties are sometimes changed, as the file format
71 evolves. Some properties might change if a caveset is loaded,
72 which was saved with an older version. You can use the 'Remove all unknown
73 tags' option in the editor menu to get rid of older or unknown options.
75 Importing may not be complete and correct for all games and engines.
76 There may be some unplayable caves, as older games had no precise timing.
78 As the game is sometimes changed, highscores may be lost due to the changing
79 checksums generated.
84 Themes
85 ------
86 The game also supports themes. You can use the installed png file as a
87 template. Cells can have any arbitrary size, not necessarily 16x16 pixels.
88 However, they must be squares, and the image must have an alpha channel.
89 If the image has only a small number of colours (fully saturated red for
90 foreground colour 1, fully saturated green for amoeba...), the game will use
91 original C64 colours, different ones for every cave. Whether the png file is
92 interpreted as a true colour image or one with C64 colours, depends on the
93 colour values used, and is autodetected. An image file with only #000000,
94 #00FF00 and the like is taken as a C64 theme.
96 For C64 themes, the meaning of colors are these:
97 - Transparent: you should use it everywhere where there is no drawing.
98 - Black 0x000000: background color.
99 - Red 0xff0000: foreground color 1.
100 - Purple 0xff00ff: foreground color 2.
101 - Yellow 0xffff00: foreground color 3.
102 - Green 0x00ff00: amoeba.
103 - Blue 0x0000ff: slime.
104 - Cyan 0x00ffff: used internally for the editor, will be converted to black
105   pixels around arrows.
106 - White 0xffffff: for the editor; will the color of arrows.