<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DivVerent</id>
	<title>ModdingWiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://moddingwiki.shikadi.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DivVerent"/>
	<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/wiki/Special:Contributions/DivVerent"/>
	<updated>2026-05-14T05:01:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6893</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6893"/>
		<updated>2016-07-12T21:17:26Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB[123] to SAVE9.MB[123].&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||SINT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||SINT16LE||level (1 = starting level, 10 = boss level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||SINT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||SINT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The checksum ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Glitches in Monster Bash 1 ==&lt;br /&gt;
&lt;br /&gt;
* Number of lives:&lt;br /&gt;
** If high, Johnnies will be drawn outside the info box (Enter key).&lt;br /&gt;
** If very high, opening the info box will virtually hang the game for rendering all those Johnnies.&lt;br /&gt;
** If negative, no Johnnies appear in the info box, and when you die, the game prints GAME OVER yet you can continue.&lt;br /&gt;
* Level number:&lt;br /&gt;
** Level -32768 is a black screen with glitchy info box.&lt;br /&gt;
** Level -256 quits with Null pointer assignment.&lt;br /&gt;
** Level 0 will silently go back to the title screen.&lt;br /&gt;
** Level 11 to 32767 will quit the game cleanly.&lt;br /&gt;
* Difficulty level:&lt;br /&gt;
** Random glitches :)&lt;br /&gt;
** Skill 3: no health bar, only 1 HP, massive glitches when moving.&lt;br /&gt;
** Skill 255: no health bar, game crash (&amp;quot;NULL FAIL&amp;quot;).&lt;br /&gt;
** Skill 4354: super-hard mode (health bar indicates skill 0, but you have only 1 HP).&lt;br /&gt;
** Skill 32767: no health bar, only 1 HP, game hangs when shooting.&lt;br /&gt;
** Skill -32768: behaves just like skill 0.&lt;br /&gt;
* Score:&lt;br /&gt;
** Values over 2147483647 show as negative and can&#039;t enter the high score list (i.e. it uses a signed integer type).&lt;br /&gt;
&lt;br /&gt;
== Glitches in Monster Bash 3 ==&lt;br /&gt;
&lt;br /&gt;
* Difficulty level:&lt;br /&gt;
** Random glitches :)&lt;br /&gt;
** Skill 4354: god mode (health bar indicates skill 0, but you are virtually invincible).&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * (0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4-0x100 + 0x62 + 0x00 + 0x00)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6892</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6892"/>
		<updated>2016-07-12T17:40:42Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||SINT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||SINT16LE||level (1 = starting level, 10 = boss level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||SINT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||SINT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|Any differences to the other two episodes?}}&lt;br /&gt;
&lt;br /&gt;
== The checksum ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Glitches ==&lt;br /&gt;
&lt;br /&gt;
* Number of lives:&lt;br /&gt;
** If high, Johnnies will be drawn outside the info box (Enter key).&lt;br /&gt;
** If very high, opening the info box will virtually hang the game for rendering all those Johnnies.&lt;br /&gt;
** If negative, no Johnnies appear in the info box, and when you die, the game prints GAME OVER yet you can continue.&lt;br /&gt;
* Level number:&lt;br /&gt;
** Level -32768 is a black screen with glitchy info box.&lt;br /&gt;
** Level -256 quits with Null pointer assignment.&lt;br /&gt;
** Level 0 will silently go back to the title screen.&lt;br /&gt;
** Level 11 to 32767 will quit the game cleanly.&lt;br /&gt;
* Difficulty level:&lt;br /&gt;
** Random glitches :)&lt;br /&gt;
** Skill 3: no health bar, only 1 HP, massive glitches when moving.&lt;br /&gt;
** Skill 255: no health bar, game crash (&amp;quot;NULL FAIL&amp;quot;).&lt;br /&gt;
** Skill 4354: super-hard mode (health bar indicates skill 0, but you have only 1 HP).&lt;br /&gt;
** Skill 32767: no health bar, only 1 HP, game hangs when shooting.&lt;br /&gt;
** Skill -32768: behaves just like skill 0.&lt;br /&gt;
* Score:&lt;br /&gt;
** Values over 2147483647 show as negative and can&#039;t enter the high score list (i.e. it uses a signed integer type).&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * (0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4-0x100 + 0x62 + 0x00 + 0x00)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6891</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6891"/>
		<updated>2016-07-12T14:02:38Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||SINT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||SINT16LE||level (1 = starting level, 10 = boss level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||SINT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||SINT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|Any differences to the other two episodes?}}&lt;br /&gt;
&lt;br /&gt;
== The checksum ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Glitches ==&lt;br /&gt;
&lt;br /&gt;
* Number of lives:&lt;br /&gt;
** If high, Johnnies will be drawn outside the info box (Enter key).&lt;br /&gt;
** If very high, opening the info box will virtually hang the game for rendering all those Johnnies.&lt;br /&gt;
** If negative, no Johnnies appear in the info box, and when you die, the game prints GAME OVER yet you can continue.&lt;br /&gt;
* Level number:&lt;br /&gt;
** Level -32768 is a black screen with glitchy info box.&lt;br /&gt;
** Level -256 quits with Null pointer assignment.&lt;br /&gt;
** Level 0 will silently go back to the title screen.&lt;br /&gt;
** Level 11 to 32767 will quit the game cleanly.&lt;br /&gt;
* Difficulty level:&lt;br /&gt;
** Random glitches :)&lt;br /&gt;
** Skill 3: no health bar, only 1 HP, massive glitches when moving.&lt;br /&gt;
** Skill 255: no health bar, game crash (&amp;quot;NULL FAIL&amp;quot;).&lt;br /&gt;
** Skill 4354: super-hard mode (health bar indicates skill 0, but you have only 1 HP).&lt;br /&gt;
** Skill 32767: no health bar, only 1 HP, game hangs when shooting.&lt;br /&gt;
** Skill -32768: behaves just like skill 0.&lt;br /&gt;
* Score:&lt;br /&gt;
** Values over 2147483648 show as negative and can&#039;t enter the high score list (i.e. it uses a signed integer type).&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * (0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4-0x100 + 0x62 + 0x00 + 0x00)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6890</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6890"/>
		<updated>2016-07-12T13:36:13Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||SINT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||INT16LE||level (1 = starting level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||INT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||INT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|What happens if values are out of range?}}&lt;br /&gt;
{{TODO|Are the integers treated as signed or unsigned?}}&lt;br /&gt;
{{TODO|Any differences to the other two episodes?}}&lt;br /&gt;
&lt;br /&gt;
== The checksum ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Glitches ==&lt;br /&gt;
&lt;br /&gt;
* Number of lives:&lt;br /&gt;
** If high, Johnnies will be drawn outside the info box (Enter key).&lt;br /&gt;
** If very high, opening the info box will virtually hang the game for rendering all those Johnnies.&lt;br /&gt;
** If negative, no Johnnies appear in the info box, and when you die, the game prints GAME OVER yet you can continue.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * (0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4-0x100 + 0x62 + 0x00 + 0x00)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6881</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6881"/>
		<updated>2016-07-10T13:55:35Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||INT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||INT16LE||level (1 = starting level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||INT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||INT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|What happens if values are out of range?}}&lt;br /&gt;
{{TODO|Are the integers treated as signed or unsigned?}}&lt;br /&gt;
{{TODO|Any differences to the other two episodes?}}&lt;br /&gt;
&lt;br /&gt;
== The checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum is computed by adding up all the bytes before it, taking the least significant byte of that, and multiplying by seven.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * ((0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4 + 0x62 + 0x00 + 0x00) &amp;amp; 0xFF)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6880</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6880"/>
		<updated>2016-07-10T13:32:33Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||INT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||INT16LE||level (1 = starting level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||INT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||INT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|What happens if values are out of range?}}&lt;br /&gt;
{{TODO|Are the integers treated as signed or unsigned?}}&lt;br /&gt;
{{TODO|Any differences to the other two episodes?}}&lt;br /&gt;
&lt;br /&gt;
== The Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum is computed by adding up all the bytes before it, taking the least significant byte of that, and multiplying by seven.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * ((0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4 + 0x62 + 0x00 + 0x00) &amp;amp; 0xFF)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash&amp;diff=6879</id>
		<title>Monster Bash</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash&amp;diff=6879"/>
		<updated>2016-07-10T13:31:44Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NeedMoreInfo}}&lt;br /&gt;
{{Game Infobox&lt;br /&gt;
 | Levels = Some&lt;br /&gt;
 | Tiles = Edit&lt;br /&gt;
 | Sprites = No&lt;br /&gt;
 | Fullscreen = Edit&lt;br /&gt;
 | Sound = Edit&lt;br /&gt;
 | Music = Edit&lt;br /&gt;
 | Text = Edit&lt;br /&gt;
 | Story = No&lt;br /&gt;
 | Interface = No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{{BeginFileFormatTools|Type=game}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Camoto]]&lt;br /&gt;
| Platform = Linux/Windows&lt;br /&gt;
| grp = Edit&lt;br /&gt;
| map = Partial&lt;br /&gt;
| gfx = Edit&lt;br /&gt;
| mus = Edit&lt;br /&gt;
| sfx = Replace&lt;br /&gt;
| txt = Replace&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{FileFormatTool&lt;br /&gt;
| Name = [[Wombat]]&lt;br /&gt;
| Platform = Window GUI&lt;br /&gt;
| grp = Extract&lt;br /&gt;
| map = View&lt;br /&gt;
| gfx = View&lt;br /&gt;
| mus = Extract&lt;br /&gt;
| sfx = Extract&lt;br /&gt;
| txt = Extract&lt;br /&gt;
| sav = No&lt;br /&gt;
| exe = No&lt;br /&gt;
}}&lt;br /&gt;
{{EndFileFormatTools}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BeginGameFileList}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = bash[123].dat&lt;br /&gt;
 | Format = [[DAT Format (Monster Bash)]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Archive file storing most of the game data files&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = bash[12].bin&lt;br /&gt;
 | Format = [[B800 Text]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Text-mode exit screen&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = mb[123]_d[123].bin&lt;br /&gt;
 | Format = ?&lt;br /&gt;
 | KnownFormat = No&lt;br /&gt;
 | Desc = {{TODO|Unknown}}&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.imf&lt;br /&gt;
 | Format = [[IMF Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Background music&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.spr&lt;br /&gt;
 | Format = [[Monster Bash Sprite Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Creature animations&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.mif&amp;lt;br/&amp;gt;*.mbg&amp;lt;br/&amp;gt;*.mfg&amp;lt;br/&amp;gt;*.msp&amp;lt;br/&amp;gt;*.sgl&lt;br /&gt;
 | Format = [[Monster Bash Level Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Game levels&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.pal&lt;br /&gt;
 | Format = [[EGA Palette]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Colours to use&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.snd&lt;br /&gt;
 | Format = [[Inverse Frequency Sound format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = PC-speaker sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.tbg&amp;lt;br/&amp;gt;*.tfg&amp;lt;br/&amp;gt;*.tbn&amp;lt;br/&amp;gt;*.pbg&amp;lt;br/&amp;gt;*.pfg&amp;lt;br/&amp;gt;*.pbn&lt;br /&gt;
 | Format = [[Monster Bash Tileset Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Tiles used for drawing each level&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = *.txt&lt;br /&gt;
 | Format = ASCII text (DOS/CRLF)&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Hint text and other info&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = digi\*.voc&lt;br /&gt;
 | Format = [[VOC Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Digitised sound effects&lt;br /&gt;
}}&lt;br /&gt;
{{GameFile&lt;br /&gt;
 | Name = save?.mb[123]&lt;br /&gt;
 | Format = [[Monster Bash Saved Game Format]]&lt;br /&gt;
 | KnownFormat = Yes&lt;br /&gt;
 | Desc = Saved game&lt;br /&gt;
}}&lt;br /&gt;
{{EndGameFileList}}&lt;br /&gt;
&lt;br /&gt;
Be aware that many of the filename extensions above are fake, as described in [[DAT Format (Monster Bash)]].  This is because the .dat file stores multiple files with the same name (differing in only a special &amp;quot;type code&amp;quot;), so these extensions are used to make it easier to refer to files.&lt;br /&gt;
&lt;br /&gt;
=== bash[123].exe ===&lt;br /&gt;
&lt;br /&gt;
Some game data is stored in the .exe file:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=3|Offset !!rowspan=2| Description&lt;br /&gt;
|-&lt;br /&gt;
! bash1.exe !! bash2.exe !! bash3.exe&lt;br /&gt;
|-&lt;br /&gt;
| 0x19C12 || ? || ? || style=&amp;quot;background: #CCFFCC;&amp;quot; | Font as series of 1-bpp images (8x8 mask then 8x8 char)&lt;br /&gt;
|-&lt;br /&gt;
| 0x243F2 || ? || ? || style=&amp;quot;background: #CCFFCC;&amp;quot; | Window borders? Two 1bpp images (16x254 mask then 16x254 image)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://cnub.org/WikiDefault.aspx?Page=Monster%20Bash Monster Bash page on Gerald Lindsly&#039;s wiki] (game engine programmer)&lt;br /&gt;
&lt;br /&gt;
[[Category:Apogee]]&lt;br /&gt;
[[Category:Sidescroller]]&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
	<entry>
		<id>https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6878</id>
		<title>Monster Bash Saved Game Format</title>
		<link rel="alternate" type="text/html" href="https://moddingwiki.shikadi.net/w/index.php?title=Monster_Bash_Saved_Game_Format&amp;diff=6878"/>
		<updated>2016-07-10T13:29:35Z</updated>

		<summary type="html">&lt;p&gt;DivVerent: Created page with &amp;quot;{{Playerdata Infobox  | Savegame = Yes  | Where = Start  | Elements = Lives, Level, Difficulty, Score  | Games =    {{Game|Monster Bash}} }}  In Monster Bash, you can save at...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Playerdata Infobox&lt;br /&gt;
 | Savegame = Yes&lt;br /&gt;
 | Where = Start&lt;br /&gt;
 | Elements = Lives, Level, Difficulty, Score&lt;br /&gt;
 | Games =&lt;br /&gt;
   {{Game|Monster Bash}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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&#039;ll always start at the beginning of the level.&lt;br /&gt;
&lt;br /&gt;
To prevent &amp;quot;exploits&amp;quot; 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&#039;ve been using up almost all lives in a level and haven&#039;t saved yet.&lt;br /&gt;
&lt;br /&gt;
Also, it&#039;s notable that saved games contain a checksum in an attempt to prevent tampering/cheating.&lt;br /&gt;
&lt;br /&gt;
Information from the first episode:&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
&lt;br /&gt;
The files SAVE0.MB1 to SAVE9.MB1.&lt;br /&gt;
&lt;br /&gt;
== Save game structure ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Offset!!Data type!!Description&lt;br /&gt;
|-&lt;br /&gt;
|0x00||INT16LE||number of lives (initially 3)&lt;br /&gt;
|-&lt;br /&gt;
|0x02||INT16LE||level (1 = starting level)&lt;br /&gt;
|-&lt;br /&gt;
|0x04||INT16LE||difficulty (0 = hard, 1 = medium, 2 = easy)&lt;br /&gt;
|-&lt;br /&gt;
|0x06||INT32LE||score&lt;br /&gt;
|-&lt;br /&gt;
|0x0A||INT32LE||checksum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{TODO|What happens if values are out of range?}}&lt;br /&gt;
{{TODO|Are the integers treated as signed or unsigned?}}&lt;br /&gt;
&lt;br /&gt;
== The Checksum ==&lt;br /&gt;
&lt;br /&gt;
The checksum is computed by adding up all the bytes before it, taking the least significant byte of that, and multiplying by seven.&lt;br /&gt;
&lt;br /&gt;
In particular, it does not detect swapping bytes, and it is always divisible by seven.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
  0000000: 0400 0200 0200 d462 0000 b201 0000       .......b......&lt;br /&gt;
&lt;br /&gt;
This savegame encodes:&lt;br /&gt;
&lt;br /&gt;
* lives: 4&lt;br /&gt;
* level: 2&lt;br /&gt;
* difficulty: easy&lt;br /&gt;
* score: 0x000062d4 = 25300&lt;br /&gt;
* checksum: 0x000001b2 = 7 * ((0x04 + 0x00 + 0x02 + 0x00 + 0x02 + 0x00 + 0xd4 + 0x62 + 0x00 + 0x00) &amp;amp; 0xFF)&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This file format was reverse engineered by [[User:DivVerent|DivVerent]].  If you find this information helpful in a project you&#039;re working on, please give credit where credit is due.  (A link back to this wiki would be nice too!)&lt;/div&gt;</summary>
		<author><name>DivVerent</name></author>
	</entry>
</feed>