<mamecheat version="1">

  <cheat desc="Infinite Character Selection Time">
    <script state="run">
      <action>maincpu.pb@FFD7FD=63</action>
    </script>
  </cheat>

  <cheat desc="Select Starting Stage Level">
    <parameter>
      <item value="0x00">1</item>
      <item value="0x01">2</item>
      <item value="0x02">3</item>
      <item value="0x03">4</item>
      <item value="0x04">5</item>
      <item value="0x05">6</item>
      <item value="0x06">7</item>
      <item value="0x07">Demo Stage</item>
    </parameter>
    <script state="run">
      <action condition="(maincpu.pb@FF7341==00)">maincpu.pb@FF7341=param</action>
    </script>
  </cheat>

  <cheat desc=" "/>

  <cheat desc="Infinite Lives PL1">
    <script state="run">
      <action>maincpu.pb@FF72DD=0A</action>
    </script>
  </cheat>

  <cheat desc="Infinite Bombs PL1">
    <script state="run">
      <action>maincpu.pb@FF72E1=08</action>
    </script>
  </cheat>

  <cheat desc="Invincibility PL1">
    <parameter>
      <item value="0x01">Enabled</item>
      <item value="0x02">Disabled</item>
    </parameter>
    <script state="run">
      <action condition="(param==01)">maincpu.pw@FFAE3A=0003</action>
      <action condition="(param==01)">maincpu.pb@FFADEB=40|(maincpu.pb@FFADEB BAND ~40)</action>
      <action condition="(param==02)">maincpu.pw@FFAE3A=0001</action>
      <action condition="(param==02)">maincpu.pb@FFADEB=00|(maincpu.pb@FFADEB BAND ~40)</action>
    </script>
  </cheat>

  <cheat desc="Select Shot PL1">
    <parameter>
      <item value="0x00">Type A Level 1</item>
      <item value="0x01">Type A Level 2</item>
      <item value="0x02">Type A Level 3</item>
      <item value="0x03">Type A Level 4</item>
      <item value="0x04">Type B Level 1</item>
      <item value="0x05">Type B Level 2</item>
      <item value="0x06">Type B Level 3</item>
      <item value="0x07">Type B Level 4</item>
      <item value="0x08">Type C Level 1</item>
      <item value="0x09">Type C Level 2</item>
      <item value="0x0A">Type C Level 3</item>
      <item value="0x0B">Type C Level 4</item>
      <item value="0x0C">Type D Level 1</item>
      <item value="0x0D">Type D Level 2</item>
      <item value="0x0E">Type D Level 3</item>
      <item value="0x0F">Type D Level 4</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@FF730D=param</action>
    </script>
  </cheat>

  <cheat desc="Infinite Reflect Barrier Time PL1">
    <script state="run">
      <action condition="(maincpu.pw@FF9E70 GT 0x10) AND (maincpu.pw@FF9E70 LT 0x20)">maincpu.pw@FF9E70=001F</action>
    </script>
  </cheat>

  <cheat desc="Get Maximum multiplier Now! PL1">
    <script state="on">
      <action>maincpu.pd@FF72E4=49999999</action>
    </script>
  </cheat>

  <cheat desc="Rapid Fire PL1">
    <script state="run">
      <action>maincpu.pb@FFAE30=00|(maincpu.pb@FFAE30 BAND ~10)</action>
    </script>
  </cheat>

  <cheat desc="Quick Charge Shield PL1">
    <script state="run">
      <action condition="(maincpu.pw@FFAE74 GT 0FC0) AND (maincpu.pw@FFAE74 LT 1000)">maincpu.pw@FFAE74=0000</action>
    </script>
  </cheat>

  <cheat desc="Select Character PL1">
    <parameter>
      <item value="0x00">Sinnosuke</item>
      <item value="0x01">Ruby</item>
      <item value="0x02">Isha</item>
      <item value="0x03">Stuck</item>
      <item value="0x04">Stranger (Buggy-Incomplete GFX)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@FF7309=param</action>
    </script>
  </cheat>

  <cheat desc=" "/>

  <cheat desc="Infinite Lives PL2">
    <script state="run">
      <action>maincpu.pb@FF72DF=0A</action>
    </script>
  </cheat>

  <cheat desc="Infinite Bombs PL2">
    <script state="run">
      <action>maincpu.pb@FF72E3=08</action>
    </script>
  </cheat>

  <cheat desc="Invincibility PL2">
    <parameter>
      <item value="0x01">Enabled</item>
      <item value="0x02">Disabled</item>
    </parameter>
    <script state="run">
      <action condition="(param==01)">maincpu.pw@FFAEFB=0003</action>
      <action condition="(param==01)">maincpu.pb@FFAEAB=40|(maincpu.pb@FFAEAB BAND ~40)</action>
      <action condition="(param==02)">maincpu.pw@FFAEFA=0001</action>
      <action condition="(param==02)">maincpu.pb@FFAEFB=00|(maincpu.pb@FFAEFB BAND ~40)</action>
    </script>
  </cheat>

  <cheat desc="Select Shot PL2">
    <parameter>
      <item value="0x00">Type A Level 1</item>
      <item value="0x01">Type A Level 2</item>
      <item value="0x02">Type A Level 3</item>
      <item value="0x03">Type A Level 4</item>
      <item value="0x04">Type B Level 1</item>
      <item value="0x05">Type B Level 2</item>
      <item value="0x06">Type B Level 3</item>
      <item value="0x07">Type B Level 4</item>
      <item value="0x08">Type C Level 1</item>
      <item value="0x09">Type C Level 2</item>
      <item value="0x0A">Type C Level 3</item>
      <item value="0x0B">Type C Level 4</item>
      <item value="0x0C">Type D Level 1</item>
      <item value="0x0D">Type D Level 2</item>
      <item value="0x0E">Type D Level 3</item>
      <item value="0x0F">Type D Level 4</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@FF7315=param</action>
    </script>
  </cheat>

  <cheat desc="Infinite Reflect Barrier Time PL2">
    <script state="run">
      <action condition="(maincpu.pw@FF9FF0 GT 0x10) AND (maincpu.pw@FF9FF0 LT 0x20)">maincpu.pw@FF9FF0=001F</action>
    </script>
  </cheat>

  <cheat desc="Get Maximum multiplier Now! PL2">
    <script state="on">
      <action>maincpu.pd@FF72E8=49999999</action>
    </script>
  </cheat>

  <cheat desc="Rapid Fire PL2">
    <script state="run">
      <action>maincpu.pb@FFAEF0=00|(maincpu.pb@FFAEF0 BAND ~10)</action>
    </script>
  </cheat>

  <cheat desc="Quick Charge Shield PL2">
    <script state="run">
      <action condition="(maincpu.pw@FFAF34 GT 0FC0) AND (maincpu.pw@FFAF34 LT 1000)">maincpu.pw@FFAF34=0000</action>
    </script>
  </cheat>

  <cheat desc="Select Character PL2">
    <parameter>
      <item value="0x00">Sinnosuke</item>
      <item value="0x01">Ruby</item>
      <item value="0x02">Isha</item>
      <item value="0x03">Stuck</item>
      <item value="0x04">Stranger (Buggy-Incomplete GFX)</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@FF7311=param</action>
    </script>
  </cheat>

  <cheat desc=" "/>

  <cheat desc="No Background Music">
    <script state="run">
      <action>audiocpu.pw@F026=0000</action>
    </script>
  </cheat>

  <cheat desc="Select Region"> <comment>This cheat sets the machine region - the effectiveness may vary! You have to enable this ASAP - ON or before the ROM check screen! Or enable + RESET</comment>
    <parameter>
      <item value="0x00">Japan</item>
      <item value="0x02">USA</item>
      <item value="0x04">Euro</item>
      <item value="0x06">Brazil</item>
      <item value="0x08">Hispanic</item>
      <item value="0x0A">Asia</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@FF20B1=param</action>
    </script>
  </cheat>

  <cheat desc="Sound Test">
    <parameter min="1" max="1023" step="1"/>
    <script state="change">
      <action>audiocpu.pw@F015=0000</action>
      <action>audiocpu.pq@F100=00009900000000FF</action>
      <action>audiocpu.pq@F108=0099990000000000</action>
      <action>audiocpu.pq@F110=1000990000000000</action>
      <action>audiocpu.pq@F118=0099990000000000</action>
      <action condition="(param LT 100)">audiocpu.pb@F111=param</action>
      <action>temp0=param/100</action>
      <action condition="(param GE 100)">audiocpu.pb@F110=temp0</action>
      <action condition="(param GE 100)">audiocpu.pb@F111=param-(temp0*100)</action>
      <action>audiocpu.pb@F015=20</action>
    </script>
  </cheat>

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