Monster Bash Saved Game Format

From ModdingWiki
Jump to navigation Jump to search
Monster Bash Saved Game Format
Format typeSaved game
Save locationsReturned to level start
Elements savedLives, Level, Difficulty, Score
Games

In Monster Bash, you can save at any time, however, only minimal information (lives, level, difficulty, score) is actually stored in the save game, so when restoring, you'll always start at the beginning of the level.

To prevent "exploits" like racking up scores/lives by saving, restoring and repeating, the game does not save the current state, but the state you had when entering the current level. Hint: make use of that in case you've been using up almost all lives in a level and haven't saved yet.

Also, it's notable that saved games contain a checksum in an attempt to prevent tampering/cheating.

Information from the first episode:

File format

The files SAVE0.MB[123] to SAVE9.MB[123].

Save game structure

Offset Data type Description
0x00 SINT16LE number of lives (initially 3)
0x02 SINT16LE level (1 = starting level, 10 = boss level)
0x04 INT16LE difficulty (0 = hard, 1 = medium, 2 = easy)
0x06 SINT32LE score
0x0A SINT32LE checksum

The checksum

The checksum is computed by adding up all the bytes before it, treating them SINT8 (i.e. subtracting 0x100 from values above 0x7f), and multiplying by seven.

In particular, it does not detect swapping bytes, and it is always divisible by seven.

Glitches in Monster Bash 1

  • Number of lives:
    • If high, Johnnies will be drawn outside the info box (Enter key).
    • If very high, opening the info box will virtually hang the game for rendering all those Johnnies.
    • If negative, no Johnnies appear in the info box, and when you die, the game prints GAME OVER yet you can continue.
  • Level number:
    • Level -32768 is a black screen with glitchy info box.
    • Level -256 quits with Null pointer assignment.
    • Level 0 will silently go back to the title screen.
    • Level 11 to 32767 will quit the game cleanly.
  • Difficulty level:
    • Random glitches :)
    • Skill 3: no health bar, only 1 HP, massive glitches when moving.
    • Skill 255: no health bar, game crash ("NULL FAIL").
    • Skill 4354: super-hard mode (health bar indicates skill 0, but you have only 1 HP).
    • Skill 32767: no health bar, only 1 HP, game hangs when shooting.
    • Skill -32768: behaves just like skill 0.
  • Score:
    • Values over 2147483647 show as negative and can't enter the high score list (i.e. it uses a signed integer type).

Glitches in Monster Bash 3

  • Difficulty level:
    • Random glitches :)
    • Skill 4354: god mode (health bar indicates skill 0, but you are virtually invincible).

Example

 0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......

This savegame encodes:

  • lives: 4
  • level: 2
  • difficulty: easy
  • score: 0x000062d4 = 25300
  • checksum: 0x000001b2 = 7 * (0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4-0x100 + 0x62 + 0x00 + 0x00)

Credits

This file format was reverse engineered by DivVerent. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)