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 | 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
