Mole Mania/Notes: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 7: Line 7:
RAM address <tt>C0A0</tt> determines if the game is run on SGB or not. The leftmost bit is 1 if played on a SGB, and 0 otherwise. The other bits are uninitialized and don't matter.
RAM address <tt>C0A0</tt> determines if the game is run on SGB or not. The leftmost bit is 1 if played on a SGB, and 0 otherwise. The other bits are uninitialized and don't matter.


===Link function===
===VS. Mode===


On the file select screen, when playing on a regular Game Boy, there is a multiplayer option via the link cable. When playing on a Super Game Boy, this option is missing, since it lacks a Link Cable port. ''This option is also missing when playing on a Super Game Boy 2, since Mole Mania does not distinguish between a Super Game Boy or Super Game Boy 2, making multiplayer impossible on a Super Game Boy 2.''
On the file select screen, when playing on a regular Game Boy, there is a multiplayer option via the link cable. When playing on a Super Game Boy, this option is missing, since it lacks a Link Cable port. ''This option is also missing when playing on a Super Game Boy 2, since Mole Mania does not distinguish between a Super Game Boy or Super Game Boy 2, making multiplayer impossible on a Super Game Boy 2.''


There is ASM code at <tt>8:4128</tt> that checks if the game is being run on a Super Game Boy, and displays the link option if not run on a Super Game Boy. This is only graphical and the code that actually lets the user select the multiplayer mode is located elsewhere.
There is ASM code at <tt>8:4128</tt> that checks if the game is being run on a Super Game Boy, and displays the VS. Mode option if not run on a Super Game Boy. If run on a Super Game Boy, only the Quest Mode screen is shown. This is purely graphical. If hacked to remove the SGB check, the palettes are glitchy because they're not designed for SGB.


TODO: Find the code that allows choosing of the multiplayer mode, based on whether the game is run on a SGB or not.
ASM code at <tt>8:4593</tt> does another SGB check, this time to determine if VS. Mode is selectable. If run on a Super Game Boy, Quest Mode is automatically selected. If run on any other Game Boy, Quest Mode is not automatically selected; instead there is an option to choose Quest Mode or VS. Mode.
 
ASM code at <tt>8:42E2</tt> does another SGB check if the player presses B while Quest Mode is selected. If run on a Super Game Boy, pressing B does nothing. If run on any other Game Boy, pressing B exits to the screen where Quest Mode or VS. Mode can be selected.
 
ASM code at <tt>8:4263</tt> does another SGB check if the player presses Down while choosing between Quest Mode and VS. Mode. If run on a Super Game Boy, pressing Down does nothing. If run on any other Game Boy, pressing Down moves the cursor to VS. Mode. (This check is redundant due to the check at <tt>8:4593</tt>.)
 
If these checks are hacked so that VS. Mode is accessible on SGB, the palette for the initial VS. Mode screen (where the player can choose the level are glitched due to not being designed for SGB. Other screens are less glitchy and use a single palette.


===Music tempo and pitch===
===Music tempo and pitch===
A Super Game Boy normally runs games too quickly, so Mole Mania compensates for that. If it is being run on a Super Game Boy, the music pitch and tempo are lowered -- the result is that the music sounds the same on a Super Game Boy as it does on a regular Game Boy. Again, this does not take Super Game Boy 2 into account, so the music is actually ''slow and flat'' on a Super Game Boy 2. The same thing happens on an emulator that ignores the extra speed of a Super Game Boy.
A Super Game Boy normally runs games too quickly, so Mole Mania compensates for that. If it is being run on a Super Game Boy, the music pitch and tempo are lowered -- the result is that the music sounds the same on a Super Game Boy as it does on a regular Game Boy. Again, this does not take Super Game Boy 2 into account, so the music is actually ''slow and flat'' on a Super Game Boy 2. The same thing happens on an emulator that ignores the extra speed of a Super Game Boy.


* ASM code is located at B:4030 (on the title screen, file select screen, cutscenes, and the level select screen) or 7:4030 (in a level) to lower the music tempo if run on a Super Game Boy.
* ASM code is located at <tt>B:4030</tt> (on the title screen, file select screen, cutscenes, and the level select screen) or <tt>7:4030</tt> (in a level) to lower the music tempo if run on a Super Game Boy.
* ASM code is located at B:459F (on the title screen, file select screen, cutscenes, and the level select screen) or 7:459F (in a level) to lower the music pitch if run on a Super Game Boy.
* ASM code is located at <tt>B:459F</tt> (on the title screen, file select screen, cutscenes, and the level select screen) or <tt>7:459F</tt> (in a level) to lower the music pitch if run on a Super Game Boy.

Revision as of 17:53, 23 February 2020

Chip tiny.png The following article is a Notes Page for Mole Mania.

SGB functionality

Mole Mania has a couple of differences when played on SGB, apart from the typical border and color palettes.

RAM address C0A0 determines if the game is run on SGB or not. The leftmost bit is 1 if played on a SGB, and 0 otherwise. The other bits are uninitialized and don't matter.

VS. Mode

On the file select screen, when playing on a regular Game Boy, there is a multiplayer option via the link cable. When playing on a Super Game Boy, this option is missing, since it lacks a Link Cable port. This option is also missing when playing on a Super Game Boy 2, since Mole Mania does not distinguish between a Super Game Boy or Super Game Boy 2, making multiplayer impossible on a Super Game Boy 2.

There is ASM code at 8:4128 that checks if the game is being run on a Super Game Boy, and displays the VS. Mode option if not run on a Super Game Boy. If run on a Super Game Boy, only the Quest Mode screen is shown. This is purely graphical. If hacked to remove the SGB check, the palettes are glitchy because they're not designed for SGB.

ASM code at 8:4593 does another SGB check, this time to determine if VS. Mode is selectable. If run on a Super Game Boy, Quest Mode is automatically selected. If run on any other Game Boy, Quest Mode is not automatically selected; instead there is an option to choose Quest Mode or VS. Mode.

ASM code at 8:42E2 does another SGB check if the player presses B while Quest Mode is selected. If run on a Super Game Boy, pressing B does nothing. If run on any other Game Boy, pressing B exits to the screen where Quest Mode or VS. Mode can be selected.

ASM code at 8:4263 does another SGB check if the player presses Down while choosing between Quest Mode and VS. Mode. If run on a Super Game Boy, pressing Down does nothing. If run on any other Game Boy, pressing Down moves the cursor to VS. Mode. (This check is redundant due to the check at 8:4593.)

If these checks are hacked so that VS. Mode is accessible on SGB, the palette for the initial VS. Mode screen (where the player can choose the level are glitched due to not being designed for SGB. Other screens are less glitchy and use a single palette.

Music tempo and pitch

A Super Game Boy normally runs games too quickly, so Mole Mania compensates for that. If it is being run on a Super Game Boy, the music pitch and tempo are lowered -- the result is that the music sounds the same on a Super Game Boy as it does on a regular Game Boy. Again, this does not take Super Game Boy 2 into account, so the music is actually slow and flat on a Super Game Boy 2. The same thing happens on an emulator that ignores the extra speed of a Super Game Boy.

  • ASM code is located at B:4030 (on the title screen, file select screen, cutscenes, and the level select screen) or 7:4030 (in a level) to lower the music tempo if run on a Super Game Boy.
  • ASM code is located at B:459F (on the title screen, file select screen, cutscenes, and the level select screen) or 7:459F (in a level) to lower the music pitch if run on a Super Game Boy.