God of Thunder
Jump to navigation
Jump to search
God of Thunder
God of Thunder is a strategy game, where the player walks between a number of separate screens, typically solving a puzzle before the next screen can be reached.
Tools
The following tools are able to work with this game.
Name | Platform | Group/archives | Levels | Graphics | Music | Sounds | Text | Saves | .exe patch | Notes |
---|---|---|---|---|---|---|---|---|---|---|
Camoto | Linux/Windows | Edit | Edit | Edit | Edit | No | No | No | No | |
Camoto/gamearchive.js | Any | Edit | No | No | No | No | No | No | No | |
Grom PE's unpacker | Windows console | Extract | No | No | Convert | No | No | No | No | |
Wombat | Windows | Extract | No | View | Convert | No | No | No | No |
File formats
The following file formats are used by this game.
Filename | Format | Details |
---|---|---|
gotres.dat | DAT Format (God of Thunder) | Main data file holding most of the other files below |
_g[123].exe | Standard .exe, compressed with LZEXE | Episode-specific code |
actor* | 16×16 8bpp tiles | Frames for creatures/enemies, trailing data unknown but includes tile names |
bossv* | VOC Format | Sound effects |
bpics* face* hampic objects odinpic openback openp* status storypic |
God of Thunder Tileset Format | Various tiles and images |
palette storypal |
VGA Palette | 8-bit (0-255) |
sdat[123] | God of Thunder Level Format | Level screens |
*song song* |
God of Thunder Music Format | Background music is raw OPL, in a slightly different arrangement to other common formats |
speak[123] story[123] |
ASCII text (CRLF) | Various game texts |
Parameters
The game supports a handful of command-line parameters.
Parameter | Purpose |
---|---|
/VERSION | Print game and front end versions |
/GRAPHICS | Skip detection and assume VGA card present |
/NOAL | Disable Adlib detection? |
/NOSB | Disable SoundBlaster support (use PC speaker sound effects) |
/SBTONE | ? |
/FORCESB | Force use of SoundBlaster even if not detected |
/NOJOY | Disable Joystick support |
/VOLSTAGG | Enable cheats |
/HELA | ? |
/RETURN | Skip intro, start at title |
/KEYRETURN | Skip intro and title, start at menu |
/SCORE:n | Set high score to name given by /SAVEGAME |
/SAVEGAME:SAVEGAMx.yyy | Pass to _G[123].EXE to load and play given saved game file |
/EXIT | Show exit screen only |
/LOCKDEMO | Lock until demo - run intro/credits/highscores/demo, ignoring keypresses until the demo starts |
Compression
Some data inside the .exe is compressed with the same LZSS algorithm used in the .DAT file, while others are simply RLE-encoded with this algorithm:
- Read a byte from the input (decompressed) data
- If the byte is zero, finish
-
If the most significant bit is 1:
- Take the lower seven bits and treat this value as the "count"
- Read another byte from the input
- Write that byte "count" times to the output
-
Otherwise the most significant bit is 0:
- Treat the byte as the "count"
- Copy "count" bytes unchanged from the input to the output
- Go back to step 1
Source code
- Source code is available on the official Sourceforge page: https://sourceforge.net/projects/god-of-thunder-1994-dos-game/ (GitHub mirror)
- Inital SDL2 Port (added missing compression routines, merged episodes): https://github.com/SheridanR/god-of-thunder/tree/merge-episodes