<mamecheat version="1">

  <cheat desc="Infinite Lives">
    <script state="run">
      <action>maincpu.pb@9820=06</action>
    </script>
  </cheat>

  <cheat desc="Invincibility">
    <script state="on">
      <action>temp0 =sub.mb@06E4</action>
    </script>
    <script state="run">
      <action>sub.mb@06E4=18</action>
    </script>
    <script state="off">
      <action>sub.mb@06E4=temp0 </action>
    </script>
  </cheat>

  <cheat desc="Select Starting Stage"> <comment>Note the game crashes after Stage 255</comment>
    <parameter min="1" max="256" step="1"/>
    <script state="on">
      <action>temp0 =maincpu.mb@3C2D</action>
      <action>temp1 =maincpu.md@0185</action>
      <action>temp2 =maincpu.md@3C21</action>
      <action>temp3 =maincpu.md@3C25</action>
      <action>temp4 =maincpu.md@3C29</action>
      <action>temp5 =maincpu.md@3C2E</action>
      <action>temp6 =maincpu.mb@3C32</action>
    </script>
    <script state="run">
      <action>maincpu.mb@3C2D=(param-1)</action>
      <action>maincpu.md@0185=003C21CD|(maincpu.md@0185 BAND ~00FFFFFF)</action>
      <action>maincpu.md@3C21=FE98213A</action> <!-- 0185 CD 21 3C  call $3C21 (changed from ld   hl,$9821) -->
      <action>maincpu.md@3C25=21042800</action> <!-- 3C21 3A 21 98  ld   a,($9821)  / 3C24 FE 00     cp   $00 -->
      <action>maincpu.md@3C29=3EC99821</action> <!-- 3C26 28 04     jr   z,$3C2C    / 3C28 21 21 98  ld   hl,$9821 -->
      <action>maincpu.md@3C2E=18982132</action> <!-- 3C2B C9        ret             / 3C2C 3E xx     ld   a,$xx -->
      <action>maincpu.mb@3C32=F5</action> <!-- 3C2E 32 21 98  ld   ($9821),a  / 3C31 18 F5     jr   $3C28 -->
    </script>
    <script state="off">
      <action>maincpu.mb@3C2D=temp0 </action>
      <action>maincpu.md@0185=temp1 </action>
      <action>maincpu.md@3C21=temp2 </action>
      <action>maincpu.md@3C25=temp3 </action>
      <action>maincpu.md@3C29=temp4 </action>
      <action>maincpu.md@3C2E=temp5 </action>
      <action>maincpu.mb@3C32=temp6 </action>
    </script>
  </cheat>

  <cheat desc="Fast Shoot">
    <script state="on">
      <action>temp0 =sub.mb@070D</action>
    </script>
    <script state="run">
      <action>sub.mb@070D=0D</action>
    </script>
    <script state="off">
      <action>sub.mb@070D=temp0 </action>
    </script>
  </cheat>

  <cheat desc="Perfect Challenge Stages">
    <script state="run">
      <action>maincpu.pb@9288=28</action>
    </script>
  </cheat>

  <cheat desc="All Challenge Stages">
    <script state="run">
      <action>maincpu.pb@9825=00</action>
    </script>
  </cheat>

  <cheat desc="No Challenge Stages">
    <script state="run">
      <action>maincpu.pb@9825=01</action>
    </script>
  </cheat>

  <cheat desc="Aliens don't fire">
    <script state="run">
      <action>maincpu.pd@9368=00000000</action>
      <action>maincpu.pd@936C=00000000</action>
    </script>
  </cheat>

  <cheat desc="Auto Fire"> <comment>Turn it OFF on the Name Entry screen</comment>
    <script state="run">
      <action>sub2.pw@99B6=0000|(sub2.pw@99B6 BAND ~1515)</action>
    </script>
  </cheat>

  <cheat desc=" "/>

  <cheat desc="Sound Test">
    <parameter min="1" max="23" step="1"/>
    <script state="change">
      <action>maincpu.pb@temp1=00</action>
      <action condition="(param==17)">maincpu.pb@9AB9=01</action>
      <action condition="(param LT 17)">temp0=9AA0+param</action>
      <action condition="(param LT 17)">maincpu.pb@temp0=01</action>
      <action>temp1=9AA0+param</action>
    </script>
  </cheat>

</mamecheat>
<!-- Cheat file downloaded from http://www.mamecheat.co.uk, see cheat.txt for list of contributors. -->
