If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Neo Bomberman

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Neo Bomberman

Developer: Hudson Soft
Publisher: Hudson Soft
Platform: Arcade (Neo Geo)
Released internationally: May 17, 1997


CodeIcon.png This game has unused code.
GraphicsIcon.png This game has unused graphics.
DebugIcon.png This game has debugging material.
SoundtestIcon.png This game has a hidden sound test.
LevelSelectIcon.png This game has a hidden level select.


BugsIcon.png This game has a bugs page

Hmmm...
To do:
Finish documenting the Unused Content.

Neo Bomberman is Bomberman's fourth arcade outing, notable for being very similar to Super Bomberman 4. It's also well known among fans for being very rushed, with unused levels, boss phases, characters and a metric-ton of unused graphics all suggesting that the game was originally intended to be much more complex.

Sub-Pages

Read about notable bugs and errors in this game.
Bugs
NeoLouie3.gif
Unused Graphics
You're telling me that Pretty Bomber would have been playable?!

Debug DIPs

As a side note, unlike many Neo-Geo games, Neo Bomberman does not use the developer soft DIPs. Setting them will have no effect on anything in the game.

Debugging Monitor

Neobomberman debugmonitor example1.pngNeobomberman debugmonitor example2.png

There is a RAM viewer left over in the game code, labeled "DEBUGING MONITOR Ver 1.00". It's unclear how it was meant to be accessed, but there is evidence it was always enabled in the game loop and could be turned on and off with a button input.

Use the following MAME cheat to enable this:

  <cheat desc="Display Debug Monitor">
    <comment>P2 Button 4 to activate; cycle address with P2 Button 2 and 3</comment>
    <script state="on">
      <action>temp9=maincpu.md@9f6</action>
      <action>maincpu.md@9f6=000002e6</action>
      <action>temp0=maincpu.md@02e6</action>
      <action>temp1=maincpu.md@02ea</action>
      <action>temp2=maincpu.md@02ee</action>
      <action>temp3=maincpu.mw@02f2</action>
      <action>maincpu.md@02e6=4eb90003</action>
      <action>maincpu.md@02ea=a6ea4eb9</action>
      <action>maincpu.md@02ee=00000b5a</action>
      <action>maincpu.mw@02f2=4e75</action>
    </script>
    <script state="off">
      <action>maincpu.md@9f6=temp9</action>
      <action>maincpu.md@02e6=temp0</action>
      <action>maincpu.md@02ea=temp1</action>
      <action>maincpu.md@02ee=temp2</action>
      <action>maincpu.mw@02f2=temp3</action>
    </script>
  </cheat>

Note that this cannot be accessed during the eyecatch or title screen. Also note that it overwrites some of the ASCII text for the English system menu text, though the system menu remains otherwise functional.

Sound Test

Neobomberman soundtest.png

Fully functional, though there are not really any clues as to how it was originally accessed. The below MAME cheat manipulates the game's unique call stack to jump to the unused code:

<cheat desc="Show Sound Test">
  <comment>Set this in game or at the pre-game screens; does not work on title screen/in eyecatch mode</comment>
  <script state="on">
    <action>maincpu.pd@100080=00012a9c</action>
    <action>maincpu.pd@100084=00100100</action>
  </script>
</cheat>

Debug Mode

Neobomberman debugmenu example1.pngNeobomberman debugmenu example2.png

Also fully functional, with a level select and gameplay options. Like with the other pieces of disabled code in the game, there's no way to tell how the menu was meant to be called, and as such the call stack is abused to jump to it.

Either of the following MAME cheats can be used to access the menu. The first one works like the Sound Test code and must be set each time through the MAME cheat menu, which has the least impact on the code:

<cheat desc="Show Debug Menu">
  <comment>P1 Button 4 to confirm selection; use this only inside a level or you will not spawn!</comment>
  <script state="on">
    <action>maincpu.pd@100080=00012b92</action>
  </script>
</cheat>

The second cheat modifies the code so that the menu will appear whenever you press P1 Start + P2 Start, useful for playing with the menu enabled. Note that this code hijacks the Pause functionality in the AES version, so if you're playing the console version and want to use Pause, do not use this version of the code.

<cheat desc="Debug Menu (P1+P2 Start)">
  <comment>Press P1 Start + P2 Start to bring up the debug menu; P1 Button 4 to confirm selection; use this only inside a level or you will not spawn!</comment>
  <script state="on">
    <action>temp0=maincpu.md@0a59</action>
    <action>maincpu.md@0a59=050c0000</action>
    <action>temp1=maincpu.md@0a5d</action>
    <action>maincpu.md@0a5d=05670000</action>
    <action>temp8=maincpu.md@0a61</action>
    <action>maincpu.md@0a61=2e600000</action>
    <action>temp9=maincpu.mb@0a65</action>
    <action>maincpu.mb@0a65=62</action>
    <action>temp2=maincpu.md@a8e</action>
    <action>maincpu.md@a8e=23fc0001</action>
    <action>temp3=maincpu.md@a92</action>
    <action>maincpu.md@a92=2b920010</action>
    <action>temp4=maincpu.md@a96</action>
    <action>maincpu.md@a96=00804e75</action>
  </script>
  <script state="off">
    <action>maincpu.mb@0a59=temp0</action>
    <action>maincpu.mw@0a5d=temp1</action>
    <action>maincpu.mw@0a61=temp8</action>
    <action>maincpu.mb@0a65=temp9</action>
    <action>maincpu.md@a8e=temp2</action>
    <action>maincpu.md@a92=temp3</action>
    <action>maincpu.md@a96=temp4</action>
  </script>
</cheat>

Both of these codes must be used while already inside a level, for reasons explained here.

GUIDE

Neobomberman guide.png

There is a disabled subroutine that does not have a clear purpose. It displays the word "GUIDE", counts down a value, and then jumps to the single-player intro scene. There's no indication of how it was meant to be called and thus no context to guess at what it might have been used for.

To see it for yourself, enable the following MAME cheat and press P1 Start + P2 Start:

<cheat desc="Unknown GUIDE Function">
  <comment>Activate by pressing P1 Start + P2 Start</comment>
  <script state="on">
    <action>temp0=maincpu.md@0a59</action>
    <action>maincpu.md@0a59=050c0000</action>
    <action>temp1=maincpu.md@0a5d</action>
    <action>maincpu.md@0a5d=05670000</action>
    <action>temp8=maincpu.md@0a61</action>
    <action>maincpu.md@0a61=2e600000</action>
    <action>temp9=maincpu.mb@0a65</action>
    <action>maincpu.mb@0a65=62</action>
    <action>temp2=maincpu.md@a8e</action>
    <action>maincpu.md@a8e=23fc0000</action>
    <action>temp3=maincpu.md@a92</action>
    <action>maincpu.md@a92=6fde0010</action>
    <action>temp4=maincpu.md@a96</action>
    <action>maincpu.md@a96=00804e75</action>
  </script>
  <script state="off">
    <action>maincpu.mb@0a59=temp0</action>
    <action>maincpu.mw@0a5d=temp1</action>
    <action>maincpu.mw@0a61=temp8</action>
    <action>maincpu.mb@0a65=temp9</action>
    <action>maincpu.md@a8e=temp2</action>
    <action>maincpu.md@a92=temp3</action>
    <action>maincpu.md@a96=temp4</action>
  </script>
</cheat>
(Source: sudden-desu)

Unused Stages

Normal Game

Every world after the second one has 8 stages. However, worlds 1 and 2 were supposed to have 8 stages as well.

1-6 1-7 2-7
Neo16.png Neo17.png Neo27.png

Battle Game

An unused battle stage (internally known as Stage 2) can be found as well. It uses conveyor belts and has two variants. NeoBattle1.png NeoBattle2.png

(Source: Ragey)