[xmvsf] Debug DIPs

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
User avatar
Pugsy
Posts: 3675
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 15 times
Contact:

[xmvsf] Debug DIPs

Post by Pugsy »

Some interesting research has been done about CSP2 debug dips, and a pull request has been made on the MAME git:-

https://github.com/mamedev/mame/pull/11540

With info here:-

https://sudden-desu.net/entry/cps2-debu ... -love-them

I was a little bored so decided to convert the info into cheats, probably a wasted effort if they get added to MAME....but this game appears to need a cheat to enable the DIPs so I just went a little further.

Code: Select all

  <cheat desc="Enable DEBUG DIP Functions"> <comment>This must be enabled to use the following DEBUG DIP switches and functions</comment>
    <script state="on">
      <action>temp0=maincpu.mw@00C0</action>
      <action>temp1=maincpu.oq@0C20</action>
      <action>temp2=maincpu.oq@0C28</action>
      <action>temp3=maincpu.oq@0C30</action>
      <action>maincpu.mw@00C0=FFFF</action>
      <action>maincpu.oq@0C20=4E711B7C00FFD424</action>
      <action>maincpu.oq@0C28=4E711B7C00FFD425</action>
      <action>maincpu.oq@0C30=4E711B7C00FFD426</action>
    </script>
    <script state="off">
      <action>maincpu.mw@00C0=temp0</action>
      <action>maincpu.oq@0C20=temp1</action>
      <action>maincpu.oq@0C28=temp2</action>
      <action>maincpu.oq@0C30=temp3</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:1 - Display grid overlay and some values">
    <script state="on">
      <action>temp0=0C2D,temp1=01</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:2 - Flip the screen vertically">
    <script state="on">
      <action>temp0=0C2D,temp1=02</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:3 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=04</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:4 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=08</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:5 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=10</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:6 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=20</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:7 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=40</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 1:8 - Unknown">
    <script state="on">
      <action>temp0=0C2D,temp1=80</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:1 - Infinite Energy Both Players">
    <script state="on">
      <action>temp0=0C25,temp1=01</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:2 - Show hit boxes">
    <script state="on">
      <action>temp0=0C25,temp1=02</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:3 - Disable Round Timer">
    <script state="on">
      <action>temp0=0C25,temp1=04</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:4 - Unknown">
    <script state="on">
      <action>temp0=0C25,temp1=08</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:5 - Unknown">
    <script state="on">
      <action>temp0=0C25,temp1=10</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:6 - Unknown">
    <script state="on">
      <action>temp0=0C25,temp1=20</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:7 - Slower speed">
    <script state="on">
      <action>temp0=0C25,temp1=40</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 2:8 - Slowest speed">
    <script state="on">
      <action>temp0=0C25,temp1=80</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:1 - Fast speed">
    <script state="on">
      <action>temp0=0C35,temp1=01</action>
    </script>		
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:2 - Partial Invincibility"> <comment>most attacks do no damage, but some do; unclear exactly how this works</comment>
    <script state="on">
      <action>temp0=0C35,temp1=02</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:3 - Unknown">
    <script state="on">
      <action>temp0=0C35,temp1=04</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:4 - Stop">
    <script state="on">
      <action>temp0=0C35,temp1=08</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:5 - Monitor 1"> <comment>Only during gameplay, needs to be set before gameplay begins</comment>
    <script state="on">
      <action>temp0=0C35,temp1=10</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:6 - Unknown">
    <script state="on">
      <action>temp0=0C35,temp1=20</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:7 - Monitor 2"> <comment>Only during gameplay, needs to be set before gameplay begins</comment>
    <script state="on">
      <action>temp0=0C35,temp1=40</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG DIP 3:8 - Unknown">
    <script state="on">
      <action>temp0=0C35,temp1=80</action>
    </script>
    <script state="run">
      <action>maincpu.ob@temp0=00|(maincpu.ob@temp0 BAND ~temp1)</action>
    </script>
    <script state="off">
      <action>maincpu.ob@temp0=temp1|(maincpu.ob@temp0 BAND ~00)</action>
    </script>
  </cheat>
  <cheat desc="DEBUG - Enable Secret Test Menu (Press F2)">
<comment>Note: You may have to reset with F3 before F2 will work.
See https://sudden-desu.net/entry/cps2-debug-switches-and-the-games-that-love-them 
for more information about how to use this Secret Test Menu.</comment>
    <script state="run">
      <action>maincpu.ow@83110=4E71</action>
    </script>
    <script state="off">
      <action>maincpu.ow@83110=6706</action>
    </script>
  </cheat>
Pugsy

Servicing your cheating needs since 1985 8)

Grab the latest cheat collection:
MAME 0.264 XML cheat collection (3 APRIL 2024) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/SxsQUJoT#jBdz6GLm_ ... QzFGSMms2c (ZIP Archive 3.8 MB)
Post Reply