Page 1 of 1

Robotron 2084 Blue Label cheats / game mods

Posted: Sun Jun 21, 2020 1:00 pm
by scott_tunstall
I've produced some more cheats for Robotron (Blue Label), derived from my reverse engineering work at www.seanriddle.com/robomame.asm

*** FOUND PROTECTION RESET, NOW DISABLED ***

The cheats allow you to customise the game somewhat. You must enable the "Disable protection" cheat before enabling any other of my cheats.


I've played up to level 34 with these cheats with no ill effect. I had to disable robotron's protection for some of the cheats, so if you find your Robotron resets, please drop me a line (scott.tunstall@ntlworld.com) with the wave # and approximately how long the wave was playing for, so I can find the protection code responsible and disable it.


Here's the cheats:

Code: Select all

  
  <cheat desc="Disable protection (required for all except invincibility and infinite lives)">
    <script state="run">
    <!-- Overwrite protection code with  NOPs or BRA -->
      <action>maincpu.mq@15c84=1212121212121212</action> 
      <action>maincpu.mq@15c8c=1212121212121212</action>
      <action>maincpu.md@15c94=12121212</action>
      <action>maincpu.mw@15c98=1212</action>

      <action>maincpu.mq@16153=1212121212121212</action> 
      <action>maincpu.mq@1615B=1212121212121212</action> 
      <action>maincpu.mq@16163=1212121212121212</action> 
      <action>maincpu.md@1616b=12121212</action> 

      <action>maincpu.mw@11AFF=201E</action> 

      <action>maincpu.mq@D71c=1212121212121212</action> 
      <action>maincpu.mq@D724=1212121212121212</action> 
      <action>maincpu.mw@D72c=1212</action> 

      <action>maincpu.mq@DE33=1212121212121212</action> 
      <action>maincpu.mq@DE3B=1212121212121212</action>
      <action>maincpu.mq@DE43=1212121212121212</action>
    </script>
  </cheat>



  <cheat desc="Electrodes cannot be destroyed by player">
    <script state="on">
      <action>temp0 = maincpu.md@13476</action>
      <action>temp1 = maincpu.md@1347A</action>
    </script>
    <script state="run">
      <action>maincpu.md@13476=12121212</action>
      <action>maincpu.md@1347A=12121212</action>
    </script>
    <script state="off">
      <action>maincpu.md@13476 = temp0</action>
      <action>maincpu.md@1347A = temp1</action>
    </script>
  </cheat>


  <cheat desc="Play as a woman">
    <script state="run">
      <action>maincpu.mb@12fe8 = DD</action>
      <action>maincpu.md@135eb = 040e055f</action>
      <action>maincpu.md@135ef = 040e0597</action>
      <action>maincpu.md@135f3 = 040e05cf</action>
      <action>maincpu.md@135f7 = 040E0607</action>
      <action>maincpu.md@135FB = 040E063F</action>
      <action>maincpu.md@135FF = 040E0677</action> 
      <action>maincpu.md@13603 = 040e06af</action>
      <action>maincpu.md@13607 = 040E06E7</action>
      <action>maincpu.md@1360b = 040E071F</action> 
      <action>maincpu.md@1360f = 040E0757</action> 
      <action>maincpu.md@13613 = 040E078F</action>
      <action>maincpu.md@13617 = 040E07C7</action>
      <action>maincpu.md@13617 = 040E07C7</action> 
      <action>maincpu.mw@12C1 = 07FF</action>
      <action>maincpu.mw@12C4 = 033A</action>  
    </script>
  </cheat>

  <cheat desc="Everyone to rescue is a daddy">
    <script state="run">
      <action>maincpu.mw@102B6 = 07FF</action>
      <action>maincpu.mw@102B9 = 033A</action> 
      <action>maincpu.mw@102C1 = 07FF</action>
      <action>maincpu.mw@102C4 = 033A</action> 
      <action>maincpu.mw@102CC = 07FF</action>
      <action>maincpu.mw@102CF = 033A</action> 
    </script>
  </cheat>

  <cheat desc="Everyone to rescue is a mommy">
    <script state="run">
      <action>maincpu.mw@102B6 = 052F</action>
      <action>maincpu.mw@102B9 = 0335</action> 
      <action>maincpu.mw@102C1 = 052F</action>
      <action>maincpu.mw@102C4 = 0335</action> 
      <action>maincpu.mw@102CC = 052F</action>
      <action>maincpu.mw@102CF = 0335</action> 
    </script>
  </cheat>

  <cheat desc="Everyone to rescue is a mikey">
    <script state="run">
      <action>maincpu.mw@102B6 = 0B3B</action>
      <action>maincpu.mw@102B9 = 0330</action> 
      <action>maincpu.mw@102C1 = 0B3B</action>
      <action>maincpu.mw@102C4 = 0330</action> 
      <action>maincpu.mw@102CC = 0B3B</action>
      <action>maincpu.mw@102CF = 0330</action> 
    </script>
  </cheat>


  <cheat desc="Hulks always chase player">
    <script state="on">
      <action>temp0 = maincpu.md@1010D</action>
      <action>temp1 = maincpu.mw@10111</action>
    </script>
    <script state="run">
      <action>maincpu.mb@1010D=12</action>   <!-- Overwrite hulk target logic with NOPs-->
      <action>maincpu.mb@1010E=12</action>			
      <action>maincpu.mb@1010F=12</action>			
      <action>maincpu.mb@10110=12</action>			
      <action>maincpu.mb@10111=12</action>			
      <action>maincpu.mb@10112=12</action>			
    </script>	
    <script state="off">
      <action> maincpu.md@1010D = temp0</action>
      <action>maincpu.mw@10111 = temp1</action>
    </script>

  </cheat>

  <cheat desc="Spheroids will keep dropping until killed">
    <script state="on">
      <action>temp0 = maincpu.md@11205</action>
    </script>
    <script state="run">
      <action>maincpu.md@11205=12121212</action>  <!-- Overwrite spheroid drop code -->
    </script>
    <script state="off">
      <action>maincpu.md@11205 = temp0</action>
    </script>
  </cheat>

  <cheat desc="Spheroids drop tanks"> 
    <comment>Don't use this with the "spheroids will keep dropping until killed" cheat enabled - it will crash the game</comment>
    <script state="on">
      <action>temp0 = maincpu.mw@11203 </action>
    </script>
    <script state="run">
      <action>maincpu.mw@11203=4CAC</action>  <!-- Overwrite spheroid drop code to call SPAWN_TANK -->
    </script>
    <script state="off">
      <action>maincpu.mw@11203 = temp0 </action>
    </script>
  </cheat>


  <cheat desc="Spheroids won't spawn anything">
    <script state="on">
      <action>temp0 = maincpu.md@111C3 </action>
    </script>
    <script state="run">
      <action>maincpu.md@111C3=12121212</action>  <!-- Overwrite drop countdown with NOPs -->
    </script>
    <script state="off">
      <action>maincpu.mw@111C3 = temp0 </action>
    </script>
  </cheat>


  <cheat desc="Spheroids drop tanks or enforcers">
    <script state="on">
      <action>temp0 = maincpu.mq@11b09 </action>
      <action>temp1 = maincpu.md@11b11 </action>
      <action>temp2 = maincpu.mw@11b15 </action>
      <action>temp3 = maincpu.mw@11203 </action>
    </script>
    <script state="run">
      <action>maincpu.mw@11b09=8602</action>    <!-- Overwrite redundant brain protection code to spawn tanks/enforcers-->
      <action>maincpu.mb@11b0b=BD</action>
      <action>maincpu.mw@11b0c=D03F</action>
      <action>maincpu.mw@11b0e=8101</action>
      <action>maincpu.md@11b10=10273198</action>
      <action>maincpu.mb@11b14=7E</action>
      <action>maincpu.mw@11b15=1354</action>
      <action>maincpu.mw@11203=1B09</action>
    </script>
    <script state="off">
      <action>maincpu.mq@11b09 = temp0 </action>
      <action>maincpu.md@11b11 = temp1 </action>
      <action>maincpu.mw@11b15 = temp2</action>
      <action>maincpu.mw@11203 = temp3 </action>
    </script>
  </cheat>

  <cheat desc="Enforcers do not shoot">
    <script state="on">
      <action>temp0 = maincpu.mw@113A6</action>
    </script>
    <script state="run">
      <action>maincpu.mw@113A6=2005</action>
    </script>
    <script state="off">
      <action>maincpu.mw@113A6 = temp0 </action>
    </script>
  </cheat>


  <cheat desc="Max of 5 enforcers on screen at one time">
    <script state="on">
      <action>temp0 = maincpu.mb@111f9</action>
    </script>
    <script state="run">
      <action>maincpu.mb@111f9=05</action>  <!-- Set hard coded enforcer limit -->
    </script>
    <script state="off">
      <action>maincpu.mb@111f9 = temp0</action>
    </script>

  </cheat>

  <cheat desc="Max of 10 enforcers on screen at one time">
    <script state="on">
      <action>temp0 = maincpu.mb@111f9</action>
    </script>
    <script state="run">
      <action>maincpu.mb@111f9=0A</action>  <!-- Set hard coded enforcer limit -->
    </script>
    <script state="off">
      <action>maincpu.mb@111f9 = temp0</action>
    </script>
  </cheat>

  <cheat desc="Max of 15 enforcers on screen at one time">
    <script state="on">
      <action>temp0 = maincpu.mb@111f9</action>
    </script>
    <script state="run">
      <action>maincpu.mb@111f9=0F</action>  <!-- Set hard coded enforcer limit -->
    </script>
    <script state="off">
      <action>maincpu.mb@111f9 = temp0</action>
    </script>
  </cheat>

  <cheat desc="Max of 20 enforcers on screen at one time (are you NUTS?)">
    <script state="on">
      <action>temp0 = maincpu.mb@111f9</action>
    </script>
    <script state="run">
      <action>maincpu.mb@111f9=14</action>  <!-- Set hard coded enforcer limit  -->
    </script>
    <script state="off">
      <action>maincpu.mb@111f9 = temp0</action>
    </script>
  </cheat>

  <cheat desc="Replace Spheroids with Brains">
    <script state="on">
      <action>temp0 = maincpu.mb@11168</action> <!-- inject RTS into INITIALISE_ALL_SPHEROIDS -->
      <action>temp1 = maincpu.mb@11AF9</action>
      <action>temp2 = maincpu.md@11AFA</action>
      <action>temp3 = maincpu.mw@11AFE</action>
    </script>
    <script state="run">
      <action>maincpu.mb@11168=39</action> <!-- rewrite brain handler to read spheroid count -->
      <action>maincpu.mb@11AF9=BB</action>
      <action>maincpu.mw@11AFA=BE6F</action>
      <action>maincpu.mw@11AFC=3402</action>
      <action>maincpu.mw@11AFE=2755</action>
    </script>
    <script state="off">
      <action>maincpu.mb@11168 = temp0</action>
      <action>maincpu.mb@11AF9 = temp1</action>
      <action>maincpu.md@11AFA = temp2</action>
      <action>maincpu.mw@11AFE = temp3</action>
    </script>	
  </cheat>

  <!-- There's a bug where Tanks stop firing after 20 shells fired, this fixes it -->
  <cheat desc="Fix tank shell bug">
    <script state="on">
      <action>temp0 = maincpu.md@11B01</action>
      <action>temp1 = maincpu.md@11B05</action>
      <action>temp2 = maincpu.mb@14fbb</action>
      <action>temp3 = maincpu.mw@14fbc</action>
    </script>
    <script state="run">
      <action>maincpu.mw@11B01=0AF1</action>
      <action>maincpu.mb@11B03=BD</action>
      <action>maincpu.mw@11B04=D075</action>
      <action>maincpu.mb@11B06=7E</action>
      <action>maincpu.mw@11B07=D063</action>

      <action>maincpu.mb@14fbb=7E</action>
      <action>maincpu.mw@14fbc=1B01</action>
    </script>
    <script state="off">
      <action>maincpu.md@11B01 = temp0</action>
      <action>maincpu.md@11B05 = temp1</action>
      <action>maincpu.mb@14fbb = temp2</action>
      <action>maincpu.mw@14fbc= temp3</action>
    </script>
  </cheat>


  <cheat desc="No hulks">
    <script state="on">
      <action>temp0 = maincpu.pb@0BE6D</action>
      <action>temp1 = maincpu.mb@1016D</action>
      <action>temp2 = maincpu.mw@1016E</action>
    </script>
    <script state="run">
      <action>maincpu.pb@0BE6D=0</action>
      <action>maincpu.mb@1016D=12</action>
      <action>maincpu.mw@1016E=8600</action>
    </script>	
    <script state="off">
      <action>maincpu.pb@0BE6D = temp0</action>
      <action>maincpu.mb@1016D = temp1</action>
      <action>maincpu.mw@1016E = temp2</action>
    </script>
  </cheat>

  <cheat desc="No spheroids">
    <script state="on">
      <action>temp0 = maincpu.pb@0BE6F</action>
    </script>
    <script state="run">
      <action>maincpu.pb@0BE6F=0</action>
    </script>	
    <script state="off">
      <action>maincpu.pb@0BE6F = temp0</action>
    </script>
  </cheat>

  <cheat desc="Brains can't shoot cruise missiles">
    <script state="on">
      <action>temp0 = maincpu.mb@11C96</action>
      <action>temp1 = maincpu.mw@11C97</action>
    </script>
    <script state="run">
      <action>maincpu.mb@11C96=12</action>  <!-- Overwrite code with NOPs-->
      <action>maincpu.mw@11C97=1212</action>
    </script>	
    <script state="off">
      <action>maincpu.mb@11C96 = temp0</action>
      <action>maincpu.mw@11C97 = temp1</action>
    </script>
  </cheat>

Re: Robotron 2084 Blue Label cheats

Posted: Tue Jun 23, 2020 12:21 am
by scott_tunstall
Have added an update as some users were experiencing game resets.

Re: Robotron 2084 Blue Label cheats

Posted: Fri Jun 26, 2020 11:17 am
by scott_tunstall
Have added more cheats for you all. Have fun!

Re: Robotron 2084 Blue Label cheats / game mods

Posted: Mon Jul 13, 2020 4:05 pm
by scott_tunstall
Hi,

I've created a new cheat that, I think, changes the gameplay to be more like Smash TV. Spheroids will now drop 5 GRUNTs at a time (until 15 or mor e GRUNTs are on screen), and loiter until destroyed.

You need to use my "disable protection" cheat before you enable this one . BTW my disable protection cheat disables all of Robotron's protection and will allow anyone to create game code modifying cheats. It does not patch the ROM checksum code, however.

The ROM space for the Easter Egg code that displays Larry and Eugene's names has been repurposed for this cheat, so the easter egg will no longer work.

Finally, this cheat is subject to change as feedback indicates it makes the game too hard - I'll probably slow down the GRUNT movement to compensate - but you can have fun with it seeing how long you last. Any feedback or suggestions welcome.


Code: Select all

  <cheat desc="Spheroids drop 5 GRUNTs (EXPERIMENTAL)">
  <script state="run">
      <action>maincpu.md@11205=12121212</action>  <!-- Overwrite spheroid drop code -->

    <!-- Overwrite Easter egg code with our code-->
    <action>maincpu.mb@d368=39</action>
    <action>maincpu.mb@d369=39</action>
    <action>maincpu.mq@d36A=3476B6BE68810F22</action>
    <action>maincpu.mq@d372=361F1286053402BD</action>
    <action>maincpu.mq@d37A=D07B2729CC4063ED</action>
    <action>maincpu.mq@d382=02ED8814A62AE62C</action>
    <action>maincpu.mq@d38A=A70AE70CED04B6BE</action>
    <action>maincpu.mq@d392=5CBDD042A78813CC</action>
    <action>maincpu.mq@d39A=3A76ED089F8B7CBE</action>
    <action>maincpu.mq@d3A2=686AE426D2350235</action>
    <action>maincpu.mb@d3AA=F6</action>
    <action>maincpu.mw@11203=d36A</action>

  </script>
  </cheat>

Re: Robotron 2084 Blue Label cheats / game mods

Posted: Sat Jul 02, 2022 4:45 pm
by Pugsy
Thanks, added