Page 1 of 1

[makaimur] Ghosts'n Goblins/Makai-Mura

Posted: Tue Dec 22, 2020 3:51 pm
by jman

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@8f74 = d6</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8f74 = d4</action>
    </script>
</cheat>

<cheat desc="attack speed up">
    <script state="on">
        <action>maincpu.mb@8f70 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8f70 = 0e</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@9c6b =  param</action> <!-- lance, torch, axe, cross : right -->
        <action>maincpu.mb@9c6f = -param</action> <!-- lance, torch, axe, cross : left -->
        <action>maincpu.mb@9c77 =  param</action> <!-- knife : right -->
        <action>maincpu.mb@9c7b = -param</action> <!-- knife : left -->
    </script>
    <script state="off">
        <action>maincpu.mb@9c6b = 04</action>
        <action>maincpu.mb@9c6f = fb</action>
        <action>maincpu.mb@9c77 = 05</action>
        <action>maincpu.mb@9c7b = fa</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <!-- in jumping -->
        <action>maincpu.mw@8f22 =             fe70</action>
        <action>maincpu.mq@fe70 = d64c53d44bc52027</action>
        <action>maincpu.mq@fe78 = 126f14cc0440ed0b</action>
        <action>maincpu.mq@fe80 = cc0080ed07d64cc4</action>
        <action>maincpu.mq@fe88 = 03e71e7e93be1212</action>
        <!--
        fe70 | d6 4c    : ldb  $4c
        fe72 | 53       : comb
        fe73 | d4 4b    : andb $4b
        fe75 | c5 20    : bitb #$20
        fe77 | 27 12    : beq  $fe8b
        fe79 | 6f 14    : clr  -c,x
        fe7b | cc 04 40 : ldd  #$0440
        fe7e | ed 0b    : std  $b,x
        fe80 | cc 00 80 : ldd  #$0080
        fe83 | ed 07    : std  7,x
        fe85 | d6 4c    : ldb  $4c
        fe87 | c4 03    : andb #$3
        fe89 | e7 1e    : stb  -2,x
        fe8b | 7e 93 be : jmp  $93be
        -->
        <!-- in falling -->
        <action>maincpu.mw@8fd1 =             fe90</action>
        <action>maincpu.mq@fe90 = d64c53d44bc52027</action>
        <action>maincpu.mq@fe98 = 037e8fd37e9049ff</action>
        <!--
        fe90 | d6 4c    : ldb  $4c
        fe92 | 53       : comb
        fe93 | d4 4b    : andb $4b
        fe95 | c5 20    : bitb #$20
        fe97 | 27 03    : beq  $fe9c
        fe99 | 7e 8f d3 : jmp  $8fd3
        fe9c | 7e 90 49 : jmp  $9049
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@8f22 =             93be</action>
        <action>maincpu.mq@fe70 = ffffffffffffffff</action>
        <action>maincpu.mq@fe78 = ffffffffffffffff</action>
        <action>maincpu.mq@fe80 = ffffffffffffffff</action>
        <action>maincpu.mq@fe88 = ffffffffffffffff</action>
        <action>maincpu.mw@8fd1 =             9049</action>
        <action>maincpu.mq@fe90 = ffffffffffffffff</action>
        <action>maincpu.mq@fe98 = ffffffffffffffff</action>
    </script>
</cheat>

[makaimur] update

Posted: Sun Jun 12, 2022 5:06 am
by jman
Random maintenance.

Code: Select all

<cheat desc="bullet speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0480">02       </item>
        <item value="0x0880">03       </item>
        <item value="0x0c80">04       </item>
        <item value="0x1080">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@9c6b =  param</action> <!-- lance, torch, axe, cross : right -->
        <action>maincpu.mw@9c6f = -param</action> <!-- lance, torch, axe, cross : left -->
        <action>maincpu.mw@9c77 =  param</action> <!-- knife : right -->
        <action>maincpu.mw@9c7b = -param</action> <!-- knife : left -->
    </script>
    <script state="off">
        <action>maincpu.mw@9c6b = 0430</action>
        <action>maincpu.mw@9c6f = fbd0</action>
        <action>maincpu.mw@9c77 = 05a0</action>
        <action>maincpu.mw@9c7b = fa60</action>
    </script>
</cheat>
"bullet speed" : adjust item value in parameter and change memory size from "byte" to "word".

Code: Select all

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.md@8f16 =         bdfe70ce</action>
        <action>maincpu.mq@fe70 = d64c53d44bc52027</action>
        <action>maincpu.mq@fe78 = 15cc0100ed13cc04</action>
        <action>maincpu.mq@fe80 = 40ed0bcc0080ed07</action>
        <action>maincpu.mq@fe88 = d64cc403e71eec13</action>
        <action>maincpu.mq@fe90 = 4839ffffffffffff</action>
        <!--
        fe70 | d6 4c    : LDB  $4C
        fe72 | 53       : COMB
        fe73 | d4 4b    : ANDB $4B
        fe75 | c5 20    : BITB #$20
        fe77 | 27 15    : BEQ  $FE8E
        fe79 | cc 01 00 : LDD  #$0100
        fe7c | ed 13    : STD  -$D,X
        fe7e | cc 04 40 : LDD  #$0440
        fe81 | ed 0b    : STD  $B,X
        fe83 | cc 00 80 : LDD  #$0080
        fe86 | ed 07    : STD  $7,X
        fe88 | d6 4c    : LDB  $4C
        fe8a | c4 03    : ANDB #$03
        fe8c | e7 1e    : STB  -$2,X
        fe8e | ec 13    : LDD  -$D,X
        fe90 | 48       : ASLA
        fe91 | 39       : RTS
        -->
    </script>
    <script state="off">
        <action>maincpu.md@8f16 =         ec1348ce</action>
        <action>maincpu.mq@fe70 = ffffffffffffffff</action>
        <action>maincpu.mq@fe78 = ffffffffffffffff</action>
        <action>maincpu.mq@fe80 = ffffffffffffffff</action>
        <action>maincpu.mq@fe88 = ffffffffffffffff</action>
        <action>maincpu.mq@fe90 = ffffffffffffffff</action>
    </script>
</cheat>
"multiple jump" : clean up. new code reduces size.

Code: Select all

<cheat desc="bullet range">
    <parameter>
        <item value="0x05">01 (short)</item>
        <item value="0x35">02        </item>
        <item value="0x65">03        </item>
        <item value="0x95">04        </item>
        <item value="0xc5">05 (long) </item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@9c45 = param</action> <!-- torch -->
        <action>maincpu.mb@9c46 = param</action> <!-- lance -->
        <action>maincpu.mb@9c47 = param</action> <!-- axe -->
        <action>maincpu.mb@9c48 = param</action> <!-- cross -->
        <action>maincpu.mb@9c49 = param</action> <!-- knife -->
    </script>
    <script state="off">
        <action>maincpu.mb@9c45 = 30</action>
        <action>maincpu.mb@9c46 = c0</action>
        <action>maincpu.mb@9c47 = 30</action>
        <action>maincpu.mb@9c48 = 30</action>
        <action>maincpu.mb@9c49 = c5</action>
    </script>
</cheat>

<cheat desc="short hit mark">
    <script state="on">
        <action>maincpu.mb@9bf7 = 01</action> <!-- object -->
        <action>maincpu.mb@9c11 = 01</action> <!-- enemy -->
        <action>maincpu.mb@9d05 = 01</action> <!-- knife/cross -->
    </script>
    <script state="off">
        <action>maincpu.mb@9bf7 = 0f</action>
        <action>maincpu.mb@9c11 = 08</action>
        <action>maincpu.mb@9d05 = 0f</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@6874 =             1212</action> <!-- disable next sequence at boot -->
        <action>maincpu.md@6150 =         7efea012</action>
        <action>maincpu.mq@fea0 = 1cef978196469181</action>
        <action>maincpu.mq@fea8 = 27f8d68081022601</action>
        <action>maincpu.mq@feb0 = 5a810126015c8104</action>
        <action>maincpu.mq@feb8 = 2602c01081082602</action>
        <action>maincpu.mq@fec0 = cb10d78081102602</action>
        <action>maincpu.mq@fec8 = 200681202605c63f</action>
        <action>maincpu.mq@fed0 = f73a0020cdffffff</action>
        <!--
        fea0 | 1c ef    : ANDCC #$EF  // enable interrupt
        fea2 | 97 81    : STA   $81
        fea4 | 96 46    : LDA   $46   // read input
        fea6 | 91 81    : CMPA  $81
        fea8 | 27 f8    : BEQ   $FEA2
        feaa | d6 80    : LDB   $80
        feac | 81 02    : CMPA  #$02
        feae | 26 01    : BNE   $FEB1
        feb0 | 5a       : DECB        // decrease code -01
        feb1 | 81 01    : CMPA  #$01
        feb3 | 26 01    : BNE   $FEB6
        feb5 | 5c       : INCB        // increase code +01
        feb6 | 81 04    : CMPA  #$04
        feb8 | 26 02    : BNE   $FEBC
        feba | c0 10    : SUBB  #$10  // decrease code -10
        febc | 81 08    : CMPA  #$08
        febe | 26 02    : BNE   $FEC2
        fec0 | cb 10    : ADDB  #$10  // increase code +10
        fec2 | d7 80    : STB   $80
        fec4 | 81 10    : CMPA  #$10
        fec6 | 26 02    : BNE   $FECA
        fec8 | 20 06    : BRA   $FED0 // play sound
        feca | 81 20    : CMPA  #$20
        fecc | 26 05    : BNE   $FED3
        fece | c6 3f    : LDB   #$3F  // stop sound
        fed0 | f7 3a 00 : STB   $3A00 // send sound code
        fed3 | 20 cd    : BRA   $FEA2
        -->
        <!-- stop sfx and music at the same time -->
        <action>audiocpu.mw@3c1c =             56d0</action>
        <action>audiocpu.mq@56d0 = bacd02c3cd02cccd</action>
        <action>audiocpu.mq@56d8 = c902b1cd01a0cd02</action>
        <!--
        56d0 | cd cc 02 : call $02CC
        56d3 | cd c3 02 : call $02C3
        56d6 | cd ba 02 : call $02BA
        56d9 | cd a0 01 : call $01A0
        56dc | cd b1 02 : call $02B1
        56df | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- makaimura sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code -01"               line="11" align="center" />
        <output format="right : increase code +01"              line="12" align="center" />
        <output format="down : decrease code -10"               line="13" align="center" />
        <output format="up : increase code +10"                 line="14" align="center" />
        <output format="button 1 : play sound"                  line="15" align="center" />
        <output format="button 2 : stop sound"                  line="16" align="center" />
        <output format="----------------------------"           line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"     line="19" align="center"  >
            <argument>maincpu.pb@0080</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mw@6874 =             0c05</action>
        <action> maincpu.md@6150 =         1cef201f</action>
        <action> maincpu.mq@fea0 = ffffffffffffffff</action>
        <action> maincpu.mq@fea8 = ffffffffffffffff</action>
        <action> maincpu.mq@feb0 = ffffffffffffffff</action>
        <action> maincpu.mq@feb8 = ffffffffffffffff</action>
        <action> maincpu.mq@fec0 = ffffffffffffffff</action>
        <action> maincpu.mq@fec8 = ffffffffffffffff</action>
        <action> maincpu.mq@fed0 = ffffffffffffffff</action>
        <action>audiocpu.mw@3c1c =             02b1</action>
        <action>audiocpu.mq@56d0 = ffffffffffffffff</action>
        <action>audiocpu.mq@56d8 = ffffffffffffffff</action>
    </script>
</cheat>
"bullet range", "short hit mark", "sound test mode" : add new.

BTW "skip ram/rom checks" in official database based on 0.221 has problems.

Code: Select all

<cheat desc="Skip RAM/ROM Checks"> <comment>Also allows a quicker start-up, if enabled during the bootup sequence enable and then reset. It's better to use together with Pre-Enable</comment>
  <script state="on">
    <action>temp0 =maincpu.mw@6000</action>
  </script>
  <script state="run">
    <action>maincpu.mw@6000=207B</action>
  </script>
  <script state="off">
    <action>maincpu.mw@6000=temp0 </action>
  </script>
</cheat>
This code jumps to strange address with invalid opcode then crashes the game. And I don't find any ram/rom check routine at boot. Also comment is old because "pre-enable" no longer supports in current cheat engine.

Code: Select all

<cheat desc="quick boot">
    <script state="on">
        <action>maincpu.mb@688b = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@688b = b4</action>
    </script>
</cheat>
I don't know original code poster's intention. But the above code may have the same effect.

[gng]+ Ghosts'n Goblins/Makai-Mura

Posted: Sat Jun 08, 2024 10:23 am
by jman
gng.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F13F = 20</action> <!-- enemy -->
            <action>maincpu.mb@F573 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F13F = 22</action>
            <action>maincpu.mb@F573 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@911D = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@911D = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@9119 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9119 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9E11 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9E15 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9E1D =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9E21 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9E11 = 0430</action>
            <action>maincpu.mw@9E15 = FBD0</action>
            <action>maincpu.mw@9E1D = 05A0</action>
            <action>maincpu.mw@9E21 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9DEB = param</action> <!-- torch -->
            <action>maincpu.mb@9DEC = param</action> <!-- lance -->
            <action>maincpu.mb@9DED = param</action> <!-- axe -->
            <action>maincpu.mb@9DEE = param</action> <!-- cross -->
            <action>maincpu.mb@9DEF = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DEB = 30</action>
            <action>maincpu.mb@9DEC = C0</action>
            <action>maincpu.mb@9DED = 30</action>
            <action>maincpu.mb@9DEE = 30</action>
            <action>maincpu.mb@9DEF = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7973 = 58              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@90BF = BDFF20CE        </action>
            <action>maincpu.mq@FF20 = 964C43944B852027</action>
            <action>maincpu.mq@FF28 = 11CC0100ED13CE95</action>
            <action>maincpu.mq@FF30 = 5FBD91A1964C8403</action>
            <action>maincpu.mq@FF38 = A71EEC134839FFFF</action>
            <!--
            FF20 | 96 4C    : LDA    $4C    // jump button check
            FF22 | 43       : COMA
            FF23 | 94 4B    : ANDA   $4B
            FF25 | 85 20    : BITA   #$20
            FF27 | 27 11    : BEQ    $FF3A
            FF29 | CC 01 00 : LDD    #$0100 // initialize status
            FF2C | ED 13    : STD    -$D,X
            FF2E | CE 95 5F : LDU    #$955F // initialize parameter
            FF31 | BD 91 A1 : JSR    $91A1
            FF34 | 96 4C    : LDA    $4C
            FF36 | 84 03    : ANDA   #$03   // set direction
            FF38 | A7 1E    : STA    -$2,X
            FF3A | EC 13    : LDD    -$D,X
            FF3C | 48       : ASLA
            FF3D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7973 = 15              </action>
            <action>maincpu.md@90BF = EC1348CE        </action>
            <action>maincpu.mq@FF20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9EAB = 01</action> <!-- object -->
            <action>maincpu.mb@9DB7 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9EAB = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9EAB = 0F</action>
            <action>maincpu.mb@9DB7 = 08</action>
            <action>maincpu.mb@9EAB = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@ED2D = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@ED2D = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFF4012        </action>
            <action>maincpu.mq@FF40 = 1CEF978196469181</action>
            <action>maincpu.mq@FF48 = 27F8D68081022601</action>
            <action>maincpu.mq@FF50 = 5A810126015C8104</action>
            <action>maincpu.mq@FF58 = 2602C01081082602</action>
            <action>maincpu.mq@FF60 = CB10D78081102706</action>
            <action>maincpu.mq@FF68 = 81202605C63FF73A</action>
            <action>maincpu.mq@FF70 = 0020CFFFFFFFFFFF</action>
            <!--
            FF40 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FF42 | 97 81    : STA    $81
            FF44 | 96 46    : LDA    $46   // read input
            FF46 | 91 81    : CMPA   $81
            FF48 | 27 F8    : BEQ    $FF42
            FF4A | D6 80    : LDB    $80
            FF4C | 81 02    : CMPA   #$02
            FF4E | 26 01    : BNE    $FF51
            FF50 | 5A       : DECB         // decrease code -01
            FF51 | 81 01    : CMPA   #$01
            FF53 | 26 01    : BNE    $FF56
            FF55 | 5C       : INCB         // increase code +01
            FF56 | 81 04    : CMPA   #$04
            FF58 | 26 02    : BNE    $FF5C
            FF5A | C0 10    : SUBB   #$10  // decrease code -10
            FF5C | 81 08    : CMPA   #$08
            FF5E | 26 02    : BNE    $FF62
            FF60 | CB 10    : ADDB   #$10  // increase code +10
            FF62 | D7 80    : STB    $80
            FF64 | 81 10    : CMPA   #$10
            FF66 | 27 06    : BEQ    $FF6E // play sound
            FF68 | 81 20    : CMPA   #$20
            FF6A | 26 05    : BNE    $FF71
            FF6C | C6 3F    : LDB    #$3F  // stop sound
            FF6E | F7 3A 00 : STB    $3A00
            FF71 | 20 CF    : BRA    $FF42
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FF40 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF48 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF50 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF58 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF60 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF68 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF70 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 54FF</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
gnga.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F06C = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4A0 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F06C = 22</action>
            <action>maincpu.mb@F4A0 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8F80 = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F80 = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F7C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F7C = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C77 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C7B = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C83 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C87 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C77 = 0430</action>
            <action>maincpu.mw@9C7B = FBD0</action>
            <action>maincpu.mw@9C83 = 05A0</action>
            <action>maincpu.mw@9C87 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C51 = param</action> <!-- torch -->
            <action>maincpu.mb@9C52 = param</action> <!-- lance -->
            <action>maincpu.mb@9C53 = param</action> <!-- axe -->
            <action>maincpu.mb@9C54 = param</action> <!-- cross -->
            <action>maincpu.mb@9C55 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C51 = 30</action>
            <action>maincpu.mb@9C52 = C0</action>
            <action>maincpu.mb@9C53 = 30</action>
            <action>maincpu.mb@9C54 = 45</action>
            <action>maincpu.mb@9C55 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77D6 = BB              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F22 = BDFE50CE        </action>
            <action>maincpu.mq@FE50 = 964C43944B852027</action>
            <action>maincpu.mq@FE58 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE60 = C2BD9004964C8403</action>
            <action>maincpu.mq@FE68 = A71EEC134839FFFF</action>
            <!--
            FE50 | 96 4C    : LDA    $4C    // jump button check
            FE52 | 43       : COMA
            FE53 | 94 4B    : ANDA   $4B
            FE55 | 85 20    : BITA   #$20
            FE57 | 27 11    : BEQ    $FE6A
            FE59 | CC 01 00 : LDD    #$0100 // initialize status
            FE5C | ED 13    : STD    -$D,X
            FE5E | CE 93 C2 : LDU    #$93C2 // initialize parameter
            FE61 | BD 90 04 : JSR    $9004
            FE64 | 96 4C    : LDA    $4C
            FE66 | 84 03    : ANDA   #$03   // set direction
            FE68 | A7 1E    : STA    -$2,X
            FE6A | EC 13    : LDD    -$D,X
            FE6C | 48       : ASLA
            FE6D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77D6 = 6D              </action>
            <action>maincpu.md@8F22 = EC1348CE        </action>
            <action>maincpu.mq@FE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9C03 = 01</action> <!-- object -->
            <action>maincpu.mb@9C1D = 01</action> <!-- enemy -->
            <action>maincpu.mb@9D11 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C03 = 0F</action>
            <action>maincpu.mb@9C1D = 08</action>
            <action>maincpu.mb@9D11 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC56 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC56 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFE7012        </action>
            <action>maincpu.mq@FE70 = 1CEF978196469181</action>
            <action>maincpu.mq@FE78 = 27F8D68081022601</action>
            <action>maincpu.mq@FE80 = 5A810126015C8104</action>
            <action>maincpu.mq@FE88 = 2602C01081082602</action>
            <action>maincpu.mq@FE90 = CB10D78081102706</action>
            <action>maincpu.mq@FE98 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEA0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE70 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE72 | 97 81    : STA    $81
            FE74 | 96 46    : LDA    $46   // read input
            FE76 | 91 81    : CMPA   $81
            FE78 | 27 F8    : BEQ    $FE72
            FE7A | D6 80    : LDB    $80
            FE7C | 81 02    : CMPA   #$02
            FE7E | 26 01    : BNE    $FE81
            FE80 | 5A       : DECB         // decrease code -01
            FE81 | 81 01    : CMPA   #$01
            FE83 | 26 01    : BNE    $FE86
            FE85 | 5C       : INCB         // increase code +01
            FE86 | 81 04    : CMPA   #$04
            FE88 | 26 02    : BNE    $FE8C
            FE8A | C0 10    : SUBB   #$10  // decrease code -10
            FE8C | 81 08    : CMPA   #$08
            FE8E | 26 02    : BNE    $FE92
            FE90 | CB 10    : ADDB   #$10  // increase code +10
            FE92 | D7 80    : STB    $80
            FE94 | 81 10    : CMPA   #$10
            FE96 | 27 06    : BEQ    $FE9E // play sound
            FE98 | 81 20    : CMPA   #$20
            FE9A | 26 05    : BNE    $FEA1
            FE9C | C6 3F    : LDB    #$3F  // stop sound
            FE9E | F7 3A 00 : STB    $3A00
            FEA1 | 20 CF    : BRA    $FE72
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- makaimura sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"              line="11" align="center" />
            <output format="right : increase code +01"             line="12" align="center" />
            <output format="down : decrease code -10"              line="13" align="center" />
            <output format="up : increase code +10"                line="14" align="center" />
            <output format="button 1 : play sound"                 line="15" align="center" />
            <output format="button 2 : stop sound"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 54FF</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
gngbl.xml

Code: Select all

<!-- Ghosts'n Goblins (bootleg with Cross) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F13F = 20</action> <!-- enemy -->
            <action>maincpu.mb@F573 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F13F = 22</action>
            <action>maincpu.mb@F573 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@911D = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@911D = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@9119 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9119 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9E11 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9E15 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9E1D =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9E21 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9E11 = 0430</action>
            <action>maincpu.mw@9E15 = FBD0</action>
            <action>maincpu.mw@9E1D = 05A0</action>
            <action>maincpu.mw@9E21 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9DEB = param</action> <!-- torch -->
            <action>maincpu.mb@9DEC = param</action> <!-- lance -->
            <action>maincpu.mb@9DED = param</action> <!-- axe -->
            <action>maincpu.mb@9DEE = param</action> <!-- cross -->
            <action>maincpu.mb@9DEF = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DEB = 30</action>
            <action>maincpu.mb@9DEC = C0</action>
            <action>maincpu.mb@9DED = 30</action>
            <action>maincpu.mb@9DEE = 30</action>
            <action>maincpu.mb@9DEF = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7973 = 58              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@90BF = BDFF20CE        </action>
            <action>maincpu.mq@FF20 = 964C43944B852027</action>
            <action>maincpu.mq@FF28 = 11CC0100ED13CE95</action>
            <action>maincpu.mq@FF30 = 5FBD91A1964C8403</action>
            <action>maincpu.mq@FF38 = A71EEC134839FFFF</action>
            <!--
            FF20 | 96 4C    : LDA    $4C    // jump button check
            FF22 | 43       : COMA
            FF23 | 94 4B    : ANDA   $4B
            FF25 | 85 20    : BITA   #$20
            FF27 | 27 11    : BEQ    $FF3A
            FF29 | CC 01 00 : LDD    #$0100 // initialize status
            FF2C | ED 13    : STD    -$D,X
            FF2E | CE 95 5F : LDU    #$955F // initialize parameter
            FF31 | BD 91 A1 : JSR    $91A1
            FF34 | 96 4C    : LDA    $4C
            FF36 | 84 03    : ANDA   #$03   // set direction
            FF38 | A7 1E    : STA    -$2,X
            FF3A | EC 13    : LDD    -$D,X
            FF3C | 48       : ASLA
            FF3D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7973 = 15              </action>
            <action>maincpu.md@90BF = EC1348CE        </action>
            <action>maincpu.mq@FF20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9EAB = 01</action> <!-- object -->
            <action>maincpu.mb@9DB7 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9EAB = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9EAB = 0F</action>
            <action>maincpu.mb@9DB7 = 08</action>
            <action>maincpu.mb@9EAB = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@ED2D = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@ED2D = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFF4012        </action>
            <action>maincpu.mq@FF40 = 1CEF978196469181</action>
            <action>maincpu.mq@FF48 = 27F8D68081022601</action>
            <action>maincpu.mq@FF50 = 5A810126015C8104</action>
            <action>maincpu.mq@FF58 = 2602C01081082602</action>
            <action>maincpu.mq@FF60 = CB10D78081102706</action>
            <action>maincpu.mq@FF68 = 81202605C63FF73A</action>
            <action>maincpu.mq@FF70 = 0020CFFFFFFFFFFF</action>
            <!--
            FF40 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FF42 | 97 81    : STA    $81
            FF44 | 96 46    : LDA    $46   // read input
            FF46 | 91 81    : CMPA   $81
            FF48 | 27 F8    : BEQ    $FF42
            FF4A | D6 80    : LDB    $80
            FF4C | 81 02    : CMPA   #$02
            FF4E | 26 01    : BNE    $FF51
            FF50 | 5A       : DECB         // decrease code -01
            FF51 | 81 01    : CMPA   #$01
            FF53 | 26 01    : BNE    $FF56
            FF55 | 5C       : INCB         // increase code +01
            FF56 | 81 04    : CMPA   #$04
            FF58 | 26 02    : BNE    $FF5C
            FF5A | C0 10    : SUBB   #$10  // decrease code -10
            FF5C | 81 08    : CMPA   #$08
            FF5E | 26 02    : BNE    $FF62
            FF60 | CB 10    : ADDB   #$10  // increase code +10
            FF62 | D7 80    : STB    $80
            FF64 | 81 10    : CMPA   #$10
            FF66 | 27 06    : BEQ    $FF6E // play sound
            FF68 | 81 20    : CMPA   #$20
            FF6A | 26 05    : BNE    $FF71
            FF6C | C6 3F    : LDB    #$3F  // stop sound
            FF6E | F7 3A 00 : STB    $3A00
            FF71 | 20 CF    : BRA    $FF42
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 54D0            </action>
            <action>audiocpu.mq@54D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@54D8 = C902B1CD01A0CD02</action>
            <!--
            54D0 | CD CC 02 : call $02CC
            54D3 | CD C3 02 : call $02C3
            54D6 | CD BA 02 : call $02BA
            54D9 | CD A0 01 : call $01A0
            54DC | CD B1 02 : call $02B1
            54DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FF40 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF48 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF50 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF58 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF60 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF68 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF70 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02CC            </action>
            <action>audiocpu.mq@54D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@54D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 54FF</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
gngprot.xml

Code: Select all

<!-- Ghosts'n Goblins (prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@EE7B = 20</action> <!-- enemy -->
            <action>maincpu.mb@F166 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@EE7B = 22</action>
            <action>maincpu.mb@F166 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8E9C = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8E9C = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8E98 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8E98 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9B78 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9B7C = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9B84 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9B88 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9B78 = 0430</action>
            <action>maincpu.mw@9B7C = FBD0</action>
            <action>maincpu.mw@9B84 = 05A0</action>
            <action>maincpu.mw@9B88 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9B52 = param</action> <!-- torch -->
            <action>maincpu.mb@9B53 = param</action> <!-- lance -->
            <action>maincpu.mb@9B54 = param</action> <!-- axe -->
            <action>maincpu.mb@9B55 = param</action> <!-- cross -->
            <action>maincpu.mb@9B56 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9B52 = 30</action>
            <action>maincpu.mb@9B53 = C0</action>
            <action>maincpu.mb@9B54 = 30</action>
            <action>maincpu.mb@9B55 = 30</action>
            <action>maincpu.mb@9B56 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7593 = 78              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8E40 = BDFB00CE        </action>
            <action>maincpu.mq@FB00 = 964C43944B852027</action>
            <action>maincpu.mq@FB08 = 11CC0200ED13CE92</action>
            <action>maincpu.mq@FB10 = D4BD8F18964C8403</action>
            <action>maincpu.mq@FB18 = A71EEC134839FFFF</action>
            <!--
            FB00 | 96 4C    : LDA    $4C    // jump button check
            FB02 | 43       : COMA
            FB03 | 94 4B    : ANDA   $4B
            FB05 | 85 20    : BITA   #$20
            FB07 | 27 11    : BEQ    $FB1A
            FB09 | CC 02 00 : LDD    #$0200 // initialize status
            FB0C | ED 13    : STD    -$D,X
            FB0E | CE 92 D4 : LDU    #$92D4 // initialize parameter
            FB11 | BD 8F 18 : JSR    $8F18
            FB14 | 96 4C    : LDA    $4C
            FB16 | 84 03    : ANDA   #$03   // set direction
            FB18 | A7 1E    : STA    -$2,X
            FB1A | EC 13    : LDD    -$D,X
            FB1C | 48       : ASLA
            FB1D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7593 = 35              </action>
            <action>maincpu.md@8E40 = EC1348CE        </action>
            <action>maincpu.mq@FB00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9B04 = 01</action> <!-- object -->
            <action>maincpu.mb@9B1E = 01</action> <!-- enemy -->
            <action>maincpu.mb@9C12 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9B04 = 0F</action>
            <action>maincpu.mb@9b1E = 08</action>
            <action>maincpu.mb@9C12 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EA95 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EA95 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@6865 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@6150 = 7EFB2012        </action>
            <action>maincpu.mq@FB20 = 1CEF978196469181</action>
            <action>maincpu.mq@FB28 = 27F8D68081022601</action>
            <action>maincpu.mq@FB30 = 5A810126015C8104</action>
            <action>maincpu.mq@FB38 = 2602C01081082602</action>
            <action>maincpu.mq@FB40 = CB10D78081102706</action>
            <action>maincpu.mq@FB48 = 81202605C63FF73A</action>
            <action>maincpu.mq@FB50 = 0020CFFFFFFFFFFF</action>
            <!--
            FB20 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FB22 | 97 81    : STA    $81
            FB24 | 96 46    : LDA    $46   // read input
            FB26 | 91 81    : CMPA   $81
            FB28 | 27 F8    : BEQ    $FB22
            FB2A | D6 80    : LDB    $80
            FB2C | 81 02    : CMPA   #$02
            FB2E | 26 01    : BNE    $FB31
            FB30 | 5A       : DECB         // decrease code -01
            FB31 | 81 01    : CMPA   #$01
            FB33 | 26 01    : BNE    $FB36
            FB35 | 5C       : INCB         // increase code +01
            FB36 | 81 04    : CMPA   #$04
            FB38 | 26 02    : BNE    $FB3C
            FB3A | C0 10    : SUBB   #$10  // decrease code -10
            FB3C | 81 08    : CMPA   #$08
            FB3E | 26 02    : BNE    $FB42
            FB40 | CB 10    : ADDB   #$10  // increase code +10
            FB42 | D7 80    : STB    $80
            FB44 | 81 10    : CMPA   #$10
            FB46 | 27 06    : BEQ    $FB4E // play sound
            FB48 | 81 20    : CMPA   #$20
            FB4A | 26 05    : BNE    $FB51
            FB4C | C6 3F    : LDB    #$3F  // stop sound
            FB4E | F7 3A 00 : STB    $3A00
            FB51 | 20 CF    : BRA    $FB22
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 54D0            </action>
            <action>audiocpu.mq@54D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@54D8 = C902B1CD01A0CD02</action>
            <!--
            54D0 | CD CC 02 : call $02CC
            54D3 | CD C3 02 : call $02C3
            54D6 | CD BA 02 : call $02BA
            54D9 | CD A0 01 : call $01A0
            54DC | CD B1 02 : call $02B1
            54DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6865 = 0C              </action>
            <action> maincpu.md@6150 = 1CEF201F        </action>
            <action> maincpu.mq@FB20 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB28 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB30 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB38 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB40 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB48 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FB50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02CC            </action>
            <action>audiocpu.mq@54D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@54D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@687C = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@687C = B4</action>
        </script>
    </cheat>

</mamecheat>
gngblita.xml

Code: Select all

<!-- Ghosts'n Goblins (Italian bootleg, harder) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F14C = 20</action> <!-- enemy -->
            <action>maincpu.mb@F580 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F14C = 22</action>
            <action>maincpu.mb@F580 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@912A = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@912A = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@9126 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9126 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9E1E =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9E22 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9E2A =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9E2E = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9E1E = 0430</action>
            <action>maincpu.mw@9E22 = FBD0</action>
            <action>maincpu.mw@9E2A = 05A0</action>
            <action>maincpu.mw@9E2E = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9DF8 = param</action> <!-- torch -->
            <action>maincpu.mb@9DF9 = param</action> <!-- lance -->
            <action>maincpu.mb@9DFA = param</action> <!-- axe -->
            <action>maincpu.mb@9DFB = param</action> <!-- cross -->
            <action>maincpu.mb@9DFC = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DF8 = 30</action>
            <action>maincpu.mb@9DF9 = C0</action>
            <action>maincpu.mb@9DFA = 30</action>
            <action>maincpu.mb@9DFB = 30</action>
            <action>maincpu.mb@9DFC = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7980 = 5D              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@90CC = BDFF40CE        </action>
            <action>maincpu.mq@FF40 = 964C43944B852027</action>
            <action>maincpu.mq@FF48 = 11CC0100ED13CE95</action>
            <action>maincpu.mq@FF50 = 6CBD91AE964C8403</action>
            <action>maincpu.mq@FF58 = A71EEC134839FFFF</action>
            <!--
            FF40 | 96 4C    : LDA    $4C    // jump button check
            FF42 | 43       : COMA
            FF43 | 94 4B    : ANDA   $4B
            FF45 | 85 20    : BITA   #$20
            FF47 | 27 11    : BEQ    $FE8A
            FF49 | CC 01 00 : LDD    #$0100 // initialize status
            FF4C | ED 13    : STD    -$D,X
            FF4E | CE 95 6C : LDU    #$956C // initialize parameter
            FF51 | BD 91 AE : JSR    $91AE
            FF54 | 96 4C    : LDA    $4C
            FF56 | 84 03    : ANDA   #$03   // set direction
            FF58 | A7 1E    : STA    -$2,X
            FF5A | EC 13    : LDD    -$D,X
            FF5C | 48       : ASLA
            FF5D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7980 = 17              </action>
            <action>maincpu.md@90CC = EC1348CE        </action>
            <action>maincpu.mq@FF40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF58 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9DAA = 01</action> <!-- object -->
            <action>maincpu.mb@9DC4 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9EB8 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DAA = 0F</action>
            <action>maincpu.mb@9DC4 = 08</action>
            <action>maincpu.mb@9EB8 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@ED3A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@ED3A = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFF6012        </action>
            <action>maincpu.mq@FF60 = 1CEF978196469181</action>
            <action>maincpu.mq@FF68 = 27F8D68081022601</action>
            <action>maincpu.mq@FF70 = 5A810126015C8104</action>
            <action>maincpu.mq@FF78 = 2602C01081082602</action>
            <action>maincpu.mq@FF80 = CB10D78081102706</action>
            <action>maincpu.mq@FF88 = 81202605C63FF73A</action>
            <action>maincpu.mq@FF90 = 0020CFFFFFFFFFFF</action>
            <!--
            FF60 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FF62 | 97 81    : STA    $81
            FF64 | 96 46    : LDA    $46   // read input
            FF66 | 91 81    : CMPA   $81
            FF68 | 27 F8    : BEQ    $FF62
            FF6A | D6 80    : LDB    $80
            FF6C | 81 02    : CMPA   #$02
            FF6E | 26 01    : BNE    $FF71
            FF70 | 5A       : DECB         // decrease code -01
            FF71 | 81 01    : CMPA   #$01
            FF73 | 26 01    : BNE    $FF76
            FF75 | 5C       : INCB         // increase code +01
            FF76 | 81 04    : CMPA   #$04
            FF78 | 26 02    : BNE    $FF7C
            FF7A | C0 10    : SUBB   #$10  // decrease code -10
            FF7C | 81 08    : CMPA   #$08
            FF7E | 26 02    : BNE    $FF82
            FF80 | CB 10    : ADDB   #$10  // increase code +10
            FF82 | D7 80    : STB    $80
            FF84 | 81 10    : CMPA   #$10
            FF86 | 27 06    : BEQ    $FF8E // play sound
            FF88 | 81 20    : CMPA   #$20
            FF8A | 26 05    : BNE    $FF91
            FF8C | C6 3F    : LDB    #$3F  // stop sound
            FF8E | F7 3A 00 : STB    $3A00
            FF91 | 20 CF    : BRA    $FF62
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FF60 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF68 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF70 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF78 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@6897 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6897 = B4</action>
        </script>
    </cheat>

</mamecheat>

[gng]+ Ghosts'n Goblins/Makai-Mura

Posted: Sat Jun 08, 2024 10:25 am
by jman
gngc.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F14C = 20</action> <!-- enemy -->
            <action>maincpu.mb@F580 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F14C = 22</action>
            <action>maincpu.mb@F580 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@912A = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@912A = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@9126 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9126 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9E1E =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9E22 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9E2A =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9E2E = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9E1E = 0430</action>
            <action>maincpu.mw@9E22 = FBD0</action>
            <action>maincpu.mw@9E2A = 05A0</action>
            <action>maincpu.mw@9E2E = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9DF8 = param</action> <!-- torch -->
            <action>maincpu.mb@9DF9 = param</action> <!-- lance -->
            <action>maincpu.mb@9DFA = param</action> <!-- axe -->
            <action>maincpu.mb@9DFB = param</action> <!-- cross -->
            <action>maincpu.mb@9DFC = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DF8 = 30</action>
            <action>maincpu.mb@9DF9 = C0</action>
            <action>maincpu.mb@9DFA = 30</action>
            <action>maincpu.mb@9DFB = 30</action>
            <action>maincpu.mb@9DFC = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7980 = 5D              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@90CC = BDFF20CE        </action>
            <action>maincpu.mq@FF20 = 964C43944B852027</action>
            <action>maincpu.mq@FF28 = 11CC0100ED13CE95</action>
            <action>maincpu.mq@FF30 = 6CBD91AE964C8403</action>
            <action>maincpu.mq@FF38 = A71EEC134839FFFF</action>
            <!--
            FF20 | 96 4C    : LDA    $4C    // jump button check
            FF22 | 43       : COMA
            FF23 | 94 4B    : ANDA   $4B
            FF25 | 85 20    : BITA   #$20
            FF27 | 27 11    : BEQ    $FF3A
            FF29 | CC 01 00 : LDD    #$0100 // initialize status
            FF2C | ED 13    : STD    -$D,X
            FF2E | CE 95 6C : LDU    #$956C // initialize parameter
            FF31 | BD 91 AE : JSR    $91AE
            FF34 | 96 4C    : LDA    $4C
            FF36 | 84 03    : ANDA   #$03   // set direction
            FF38 | A7 1E    : STA    -$2,X
            FF3A | EC 13    : LDD    -$D,X
            FF3C | 48       : ASLA
            FF3D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7980 = 17              </action>
            <action>maincpu.md@90CC = EC1348CE        </action>
            <action>maincpu.mq@FF20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9DAA = 01</action> <!-- object -->
            <action>maincpu.mb@9DC4 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9EB8 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DAA = 0F</action>
            <action>maincpu.mb@9DC4 = 08</action>
            <action>maincpu.mb@9EB8 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@ED3A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@ED3A = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFF4012        </action>
            <action>maincpu.mq@FF40 = 1CEF978196469181</action>
            <action>maincpu.mq@FF48 = 27F8D68081022601</action>
            <action>maincpu.mq@FF50 = 5A810126015C8104</action>
            <action>maincpu.mq@FF58 = 2602C01081082602</action>
            <action>maincpu.mq@FF60 = CB10D78081102706</action>
            <action>maincpu.mq@FF68 = 81202605C63FF73A</action>
            <action>maincpu.mq@FF70 = 0020CFFFFFFFFFFF</action>
            <!--
            FF40 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FF42 | 97 81    : STA    $81
            FF44 | 96 46    : LDA    $46   // read input
            FF46 | 91 81    : CMPA   $81
            FF48 | 27 F8    : BEQ    $FF42
            FF4A | D6 80    : LDB    $80
            FF4C | 81 02    : CMPA   #$02
            FF4E | 26 01    : BNE    $FF51
            FF50 | 5A       : DECB         // decrease code -01
            FF51 | 81 01    : CMPA   #$01
            FF53 | 26 01    : BNE    $FF56
            FF55 | 5C       : INCB         // increase code +01
            FF56 | 81 04    : CMPA   #$04
            FF58 | 26 02    : BNE    $FF5C
            FF5A | C0 10    : SUBB   #$10  // decrease code -10
            FF5C | 81 08    : CMPA   #$08
            FF5E | 26 02    : BNE    $FF62
            FF60 | CB 10    : ADDB   #$10  // increase code +10
            FF62 | D7 80    : STB    $80
            FF64 | 81 10    : CMPA   #$10
            FF66 | 27 06    : BEQ    $FF6E // play sound
            FF68 | 81 20    : CMPA   #$20
            FF6A | 26 05    : BNE    $FF71
            FF6C | C6 3F    : LDB    #$3F  // stop sound
            FF6E | F7 3A 00 : STB    $3A00
            FF71 | 20 CF    : BRA    $FF42
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FF40 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF48 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF50 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF58 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF60 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF68 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF70 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 54FF</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
gngt.xml

Code: Select all

<!-- Ghosts'n Goblins (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F15F = 20</action> <!-- enemy -->
            <action>maincpu.mb@F593 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F15F = 22</action>
            <action>maincpu.mb@F593 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@912D = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@912D = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@9129 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9129 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9E21 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9E25 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9E2D =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9E31 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9E21 = 0430</action>
            <action>maincpu.mw@9E25 = FBD0</action>
            <action>maincpu.mw@9E2D = 05A0</action>
            <action>maincpu.mw@9E31 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9DFB = param</action> <!-- torch -->
            <action>maincpu.mb@9DFC = param</action> <!-- lance -->
            <action>maincpu.mb@9DFD = param</action> <!-- axe -->
            <action>maincpu.mb@9DFE = param</action> <!-- cross -->
            <action>maincpu.mb@9DFF = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DFB = 30</action>
            <action>maincpu.mb@9DFC = C0</action>
            <action>maincpu.mb@9DFD = 30</action>
            <action>maincpu.mb@9DFE = 30</action>
            <action>maincpu.mb@9DFF = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@7983 = 68              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@90CF = BDFF40CE        </action>
            <action>maincpu.mq@FF40 = 964C43944B852027</action>
            <action>maincpu.mq@FF48 = 11CC0100ED13CE95</action>
            <action>maincpu.mq@FF50 = 6FBD91B1964C8403</action>
            <action>maincpu.mq@FF58 = A71EEC134839FFFF</action>
            <!--
            FF40 | 96 4C    : LDA    $4C    // jump button check
            FF42 | 43       : COMA
            FF43 | 94 4B    : ANDA   $4B
            FF45 | 85 20    : BITA   #$20
            FF47 | 27 11    : BEQ    $FF5A
            FF49 | CC 01 00 : LDD    #$0100 // initialize status
            FF4C | ED 13    : STD    -$D,X
            FF4E | CE 95 6F : LDU    #$956F // initialize parameter
            FF51 | BD 91 B1 : JSR    $91B1
            FF54 | 96 4C    : LDA    $4C
            FF56 | 84 03    : ANDA   #$03   // set direction
            FF58 | A7 1E    : STA    -$2,X
            FF5A | EC 13    : LDD    -$D,X
            FF5C | 48       : ASLA
            FF5D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@7983 = 1A              </action>
            <action>maincpu.md@90CF = EC1348CE        </action>
            <action>maincpu.mq@FF40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF58 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9DAD = 01</action> <!-- object -->
            <action>maincpu.mb@9DC7 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9EBB = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9DAD = 0F</action>
            <action>maincpu.mb@9DC7 = 08</action>
            <action>maincpu.mb@9EBB = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@ED3D = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@ED3D = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFF6012        </action>
            <action>maincpu.mq@FF60 = 1CEF978196469181</action>
            <action>maincpu.mq@FF68 = 27F8D68081022601</action>
            <action>maincpu.mq@FF70 = 5A810126015C8104</action>
            <action>maincpu.mq@FF78 = 2602C01081082602</action>
            <action>maincpu.mq@FF80 = CB10D78081102706</action>
            <action>maincpu.mq@FF88 = 81202605C63FF73A</action>
            <action>maincpu.mq@FF90 = 0020CFFFFFFFFFFF</action>
            <!--
            FF60 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FF62 | 97 81    : STA    $81
            FF64 | 96 46    : LDA    $46   // read input
            FF66 | 91 81    : CMPA   $81
            FF68 | 27 F8    : BEQ    $FF62
            FF6A | D6 80    : LDB    $80
            FF6C | 81 02    : CMPA   #$02
            FF6E | 26 01    : BNE    $FF71
            FF70 | 5A       : DECB         // decrease code -01
            FF71 | 81 01    : CMPA   #$01
            FF73 | 26 01    : BNE    $FF76
            FF75 | 5C       : INCB         // increase code +01
            FF76 | 81 04    : CMPA   #$04
            FF78 | 26 02    : BNE    $FF7C
            FF7A | C0 10    : SUBB   #$10  // decrease code -10
            FF7C | 81 08    : CMPA   #$08
            FF7E | 26 02    : BNE    $FF82
            FF80 | CB 10    : ADDB   #$10  // increase code +10
            FF82 | D7 80    : STB    $80
            FF84 | 81 10    : CMPA   #$10
            FF86 | 27 06    : BEQ    $FF8E // play sound
            FF88 | 81 20    : CMPA   #$20
            FF8A | 26 05    : BNE    $FF91
            FF8C | C6 3F    : LDB    #$3F  // stop sound
            FF8E | F7 3A 00 : STB    $3A00
            FF91 | 20 CF    : BRA    $FF62
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- ghosts'n goblins sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FF60 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF68 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF70 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF78 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 5515</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
makaimur.xml

Code: Select all

<!-- Makaimura (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F095 = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4CF = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F095 = 22</action>
            <action>maincpu.mb@F4CF = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8F74 = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F74 = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F70 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F70 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C6B =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C6F = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C77 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C7B = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C6B = 0430</action>
            <action>maincpu.mw@9C6F = FBD0</action>
            <action>maincpu.mw@9C77 = 05A0</action>
            <action>maincpu.mw@9C7B = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C45 = param</action> <!-- torch -->
            <action>maincpu.mb@9C46 = param</action> <!-- lance -->
            <action>maincpu.mb@9C47 = param</action> <!-- axe -->
            <action>maincpu.mb@9C48 = param</action> <!-- cross -->
            <action>maincpu.mb@9C49 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C45 = 30</action>
            <action>maincpu.mb@9C46 = C0</action>
            <action>maincpu.mb@9C47 = 30</action>
            <action>maincpu.mb@9C48 = 30</action>
            <action>maincpu.mb@9C49 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77CA = AF              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F16 = BDFE70CE        </action>
            <action>maincpu.mq@FE70 = 964C43944B852027</action>
            <action>maincpu.mq@FE78 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE80 = B6BD8FF8964C8403</action>
            <action>maincpu.mq@FE88 = A71EEC134839FFFF</action>
            <!--
            FE70 | 96 4C    : LDA    $4C    // jump button check
            FE72 | 43       : COMA
            FE73 | 94 4B    : ANDA   $4B
            FE75 | 85 20    : BITA   #$20
            FE77 | 27 11    : BEQ    $FE8A
            FE79 | CC 01 00 : LDD    #$0100 // initialize status
            FE7C | ED 13    : STD    -$D,X
            FE7E | CE 93 B6 : LDU    #$93B6 // initialize parameter
            FE81 | BD 8F F8 : JSR    $8FF8
            FE84 | 96 4C    : LDA    $4C
            FE86 | 84 03    : ANDA   #$03   // set direction
            FE88 | A7 1E    : STA    -$2,X
            FE8A | EC 13    : LDD    -$D,X
            FE8C | 48       : ASLA
            FE8D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77CA = 61              </action>
            <action>maincpu.md@8F16 = EC1348CE        </action>
            <action>maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9BF7 = 01</action> <!-- object -->
            <action>maincpu.mb@9C11 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9D05 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9BF7 = 0F</action>
            <action>maincpu.mb@9C11 = 08</action>
            <action>maincpu.mb@9D05 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC69 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC69 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@6874 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@6150 = 7EFE9012        </action>
            <action>maincpu.mq@FE90 = 1CEF978196469181</action>
            <action>maincpu.mq@FE98 = 27F8D68081022601</action>
            <action>maincpu.mq@FEA0 = 5A810126015C8104</action>
            <action>maincpu.mq@FEA8 = 2602C01081082602</action>
            <action>maincpu.mq@FEB0 = CB10D78081102706</action>
            <action>maincpu.mq@FEB8 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEC0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE90 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE92 | 97 81    : STA    $81
            FE94 | 96 46    : LDA    $46   // read input
            FE96 | 91 81    : CMPA   $81
            FE98 | 27 F8    : BEQ    $FE92
            FE9A | D6 80    : LDB    $80
            FE9C | 81 02    : CMPA   #$02
            FE9E | 26 01    : BNE    $FEA1
            FEA0 | 5A       : DECB         // decrease code -01
            FEA1 | 81 01    : CMPA   #$01
            FEA3 | 26 01    : BNE    $FEA6
            FEA5 | 5C       : INCB         // increase code +01
            FEA6 | 81 04    : CMPA   #$04
            FEA8 | 26 02    : BNE    $FEAC
            FEAA | C0 10    : SUBB   #$10  // decrease code -10
            FEAC | 81 08    : CMPA   #$08
            FEAE | 26 02    : BNE    $FEB2
            FEB0 | CB 10    : ADDB   #$10  // increase code +10
            FEB2 | D7 80    : STB    $80
            FEB4 | 81 10    : CMPA   #$10
            FEB6 | 27 06    : BEQ    $FEBE // play sound
            FEB8 | 81 20    : CMPA   #$20
            FEBA | 26 05    : BNE    $FEC1
            FEBC | C6 3F    : LDB    #$3F  // stop sound
            FEBE | F7 3A 00 : STB    $3A00
            FEC1 | 20 CF    : BRA    $FE92
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- makaimura sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"              line="11" align="center" />
            <output format="right : increase code +01"             line="12" align="center" />
            <output format="down : decrease code -10"              line="13" align="center" />
            <output format="up : increase code +10"                line="14" align="center" />
            <output format="button 1 : play sound"                 line="15" align="center" />
            <output format="button 2 : stop sound"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6874 = 0C              </action>
            <action> maincpu.md@6150 = 1CEF201F        </action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEB8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mb@688B = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@688B = B4</action>
        </script>
    </cheat>

</mamecheat>
makaimurb.xml

Code: Select all

<!-- Makaimura (Japan Revision B) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F077 = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4AB = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F077 = 22</action>
            <action>maincpu.mb@F4AB = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8F70 = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F70 = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F6C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F6C = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C64 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C68 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C70 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C74 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C64 = 0430</action>
            <action>maincpu.mw@9C68 = FBD0</action>
            <action>maincpu.mw@9C70 = 05A0</action>
            <action>maincpu.mw@9C74 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C3E = param</action> <!-- torch -->
            <action>maincpu.mb@9C3F = param</action> <!-- lance -->
            <action>maincpu.mb@9C40 = param</action> <!-- axe -->
            <action>maincpu.mb@9C41 = param</action> <!-- cross -->
            <action>maincpu.mb@9C42 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C3E = 30</action>
            <action>maincpu.mb@9C3F = C0</action>
            <action>maincpu.mb@9C40 = 30</action>
            <action>maincpu.mb@9C41 = 30</action>
            <action>maincpu.mb@9C42 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77C6 = AB              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F12 = BDFE50CE        </action>
            <action>maincpu.mq@FE50 = 964C43944B852027</action>
            <action>maincpu.mq@FE58 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE60 = B2BD8FF4964C8403</action>
            <action>maincpu.mq@FE68 = A71EEC134839FFFF</action>
            <!--
            FE50 | 96 4C    : LDA    $4C    // jump button check
            FE52 | 43       : COMA
            FE53 | 94 4B    : ANDA   $4B
            FE55 | 85 20    : BITA   #$20
            FE57 | 27 11    : BEQ    $FE6A
            FE59 | CC 01 00 : LDD    #$0100 // initialize status
            FE5C | ED 13    : STD    -$D,X
            FE5E | CE 93 B2 : LDU    #$93B2 // initialize parameter
            FE61 | BD 8F F4 : JSR    $8FF4
            FE64 | 96 4C    : LDA    $4C
            FE66 | 84 03    : ANDA   #$03   // set direction
            FE68 | A7 1E    : STA    -$2,X
            FE6A | EC 13    : LDD    -$D,X
            FE6C | 48       : ASLA
            FE6D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77C6 = 68              </action>
            <action>maincpu.md@8F12 = EC1348CE        </action>
            <action>maincpu.mq@FE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9BF0 = 01</action> <!-- object -->
            <action>maincpu.mb@9C0A = 01</action> <!-- enemy -->
            <action>maincpu.mb@9CFE = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9BF0 = 0F</action>
            <action>maincpu.mb@9C0A = 08</action>
            <action>maincpu.mb@9CFE = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC55 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC55 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFE7012        </action>
            <action>maincpu.mq@FE70 = 1CEF978196469181</action>
            <action>maincpu.mq@FE78 = 27F8D68081022601</action>
            <action>maincpu.mq@FE80 = 5A810126015C8104</action>
            <action>maincpu.mq@FE88 = 2602C01081082602</action>
            <action>maincpu.mq@FE90 = CB10D78081102706</action>
            <action>maincpu.mq@FE98 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEA0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE70 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE72 | 97 81    : STA    $81
            FE74 | 96 46    : LDA    $46   // read input
            FE76 | 91 81    : CMPA   $81
            FE78 | 27 F8    : BEQ    $FE72
            FE7A | D6 80    : LDB    $80
            FE7C | 81 02    : CMPA   #$02
            FE7E | 26 01    : BNE    $FE81
            FE80 | 5A       : DECB         // decrease code -01
            FE81 | 81 01    : CMPA   #$01
            FE83 | 26 01    : BNE    $FE86
            FE85 | 5C       : INCB         // increase code +01
            FE86 | 81 04    : CMPA   #$04
            FE88 | 26 02    : BNE    $FE8C
            FE8A | C0 10    : SUBB   #$10  // decrease code -10
            FE8C | 81 08    : CMPA   #$08
            FE8E | 26 02    : BNE    $FE92
            FE90 | CB 10    : ADDB   #$10  // increase code +10
            FE92 | D7 80    : STB    $80
            FE94 | 81 10    : CMPA   #$10
            FE96 | 27 06    : BEQ    $FE9E // play sound
            FE98 | 81 20    : CMPA   #$20
            FE9A | 26 05    : BNE    $FEA1
            FE9C | C6 3F    : LDB    #$3F  // stop sound
            FE9E | F7 3A 00 : STB    $3A00
            FEA1 | 20 CF    : BRA    $FE72
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- makaimura sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"              line="11" align="center" />
            <output format="right : increase code +01"             line="12" align="center" />
            <output format="down : decrease code -10"              line="13" align="center" />
            <output format="up : increase code +10"                line="14" align="center" />
            <output format="button 1 : play sound"                 line="15" align="center" />
            <output format="button 2 : stop sound"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 553A</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
makaimurc.xml

Code: Select all

<!-- Makaimura (Japan Revision C) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F084 = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4B8 = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F084 = 22</action>
            <action>maincpu.mb@F4B8 = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8F7D = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F7D = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F79 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F79 = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C71 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C75 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C7D =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C81 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C71 = 0430</action>
            <action>maincpu.mw@9C75 = FBD0</action>
            <action>maincpu.mw@9C7D = 05A0</action>
            <action>maincpu.mw@9C81 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C4B = param</action> <!-- torch -->
            <action>maincpu.mb@9C4C = param</action> <!-- lance -->
            <action>maincpu.mb@9C4D = param</action> <!-- axe -->
            <action>maincpu.mb@9C4E = param</action> <!-- cross -->
            <action>maincpu.mb@9C4F = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C4B = 30</action>
            <action>maincpu.mb@9C4C = C0</action>
            <action>maincpu.mb@9C4D = 30</action>
            <action>maincpu.mb@9C4E = 30</action>
            <action>maincpu.mb@9C4F = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77D3 = 72              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F1F = BDFE60CE        </action>
            <action>maincpu.mq@FE60 = 964C43944B852027</action>
            <action>maincpu.mq@FE68 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE70 = BFBD9001964C8403</action>
            <action>maincpu.mq@FE78 = A71EEC134839FFFF</action>
            <!--
            FE60 | 96 4C    : LDA    $4C    // jump button check
            FE62 | 43       : COMA
            FE63 | 94 4B    : ANDA   $4B
            FE65 | 85 20    : BITA   #$20
            FE67 | 27 11    : BEQ    $FE7A
            FE69 | CC 01 00 : LDD    #$0100 // initialize status
            FE6C | ED 13    : STD    -$D,X
            FE6E | CE 93 BF : LDU    #$93BF // initialize parameter
            FE71 | BD 90 01 : JSR    $9001
            FE74 | 96 4C    : LDA    $4C
            FE76 | 84 03    : ANDA   #$03   // set direction
            FE78 | A7 1E    : STA    -$2,X
            FE7A | EC 13    : LDD    -$D,X
            FE7C | 48       : ASLA
            FE7D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77D3 = 6A              </action>
            <action>maincpu.md@8F1F = EC1348CE        </action>
            <action>maincpu.mq@FE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9BFD = 01</action> <!-- object -->
            <action>maincpu.mb@9C17 = 01</action> <!-- enemy -->
            <action>maincpu.mb@9D0B = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9BFD = 0F</action>
            <action>maincpu.mb@9C17 = 08</action>
            <action>maincpu.mb@9D0B = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC62 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC62 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFE8012        </action>
            <action>maincpu.mq@FE80 = 1CEF978196469181</action>
            <action>maincpu.mq@FE88 = 27F8D68081022601</action>
            <action>maincpu.mq@FE90 = 5A810126015C8104</action>
            <action>maincpu.mq@FE98 = 2602C01081082602</action>
            <action>maincpu.mq@FEA0 = CB10D78081102706</action>
            <action>maincpu.mq@FEA8 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEB0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE80 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE82 | 97 81    : STA    $81
            FE84 | 96 46    : LDA    $46   // read input
            FE86 | 91 81    : CMPA   $81
            FE88 | 27 F8    : BEQ    $FE82
            FE8A | D6 80    : LDB    $80
            FE8C | 81 02    : CMPA   #$02
            FE8E | 26 01    : BNE    $FE91
            FE90 | 5A       : DECB         // decrease code -01
            FE91 | 81 01    : CMPA   #$01
            FE93 | 26 01    : BNE    $FE96
            FE95 | 5C       : INCB         // increase code +01
            FE96 | 81 04    : CMPA   #$04
            FE98 | 26 02    : BNE    $FE9C
            FE9A | C0 10    : SUBB   #$10  // decrease code -10
            FE9C | 81 08    : CMPA   #$08
            FE9E | 26 02    : BNE    $FEA2
            FEA0 | CB 10    : ADDB   #$10  // increase code +10
            FEA2 | D7 80    : STB    $80
            FEA4 | 81 10    : CMPA   #$10
            FEA6 | 27 06    : BEQ    $FEAE // play sound
            FEA8 | 81 20    : CMPA   #$20
            FEAA | 26 05    : BNE    $FEB1
            FEAC | C6 3F    : LDB    #$3F  // stop sound
            FEAE | F7 3A 00 : STB    $3A00
            FEB1 | 20 CF    : BRA    $FE82
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- makaimura sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"              line="11" align="center" />
            <output format="right : increase code +01"             line="12" align="center" />
            <output format="down : decrease code -10"              line="13" align="center" />
            <output format="up : increase code +10"                line="14" align="center" />
            <output format="button 1 : play sound"                 line="15" align="center" />
            <output format="button 2 : stop sound"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 553A</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>

[gng]+ Ghosts'n Goblins/Makai-Mura

Posted: Sat Jun 08, 2024 10:26 am
by jman
makaimurg.xml

Code: Select all

<!-- Makaimura (Japan Revision G) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F09B = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4CF = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F09B = 22</action>
            <action>maincpu.mb@F4CF = 22</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8F80 = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F80 = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F7C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F7C = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C77 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C7B = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C83 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C87 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C77 = 0430</action>
            <action>maincpu.mw@9C7B = FBD0</action>
            <action>maincpu.mw@9C83 = 05A0</action>
            <action>maincpu.mw@9C87 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C51 = param</action> <!-- torch -->
            <action>maincpu.mb@9C52 = param</action> <!-- lance -->
            <action>maincpu.mb@9C53 = param</action> <!-- axe -->
            <action>maincpu.mb@9C54 = param</action> <!-- cross -->
            <action>maincpu.mb@9C55 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C51 = 30</action>
            <action>maincpu.mb@9C52 = C0</action>
            <action>maincpu.mb@9C53 = 30</action>
            <action>maincpu.mb@9C54 = 30</action>
            <action>maincpu.mb@9C55 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77D6 = B3              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F22 = BDFE70CE        </action>
            <action>maincpu.mq@FE70 = 964C43944B852027</action>
            <action>maincpu.mq@FE78 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE80 = C2BD9004964C8403</action>
            <action>maincpu.mq@FE88 = A71EEC134839FFFF</action>
            <!--
            FE70 | 96 4C    : LDA    $4C    // jump button check
            FE72 | 43       : COMA
            FE73 | 94 4B    : ANDA   $4B
            FE75 | 85 20    : BITA   #$20
            FE77 | 27 11    : BEQ    $FE8A
            FE79 | CC 01 00 : LDD    #$0100 // initialize status
            FE7C | ED 13    : STD    -$D,X
            FE7E | CE 93 C2 : LDU    #$93C2 // initialize parameter
            FE81 | BD 90 04 : JSR    $9004
            FE84 | 96 4C    : LDA    $4C
            FE86 | 84 03    : ANDA   #$03   // set direction
            FE88 | A7 1E    : STA    -$2,X
            FE8A | EC 13    : LDD    -$D,X
            FE8C | 48       : ASLA
            FE8D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77D6 = 6D              </action>
            <action>maincpu.md@8F22 = EC1348CE        </action>
            <action>maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9C03 = 01</action> <!-- object -->
            <action>maincpu.mb@9C1D = 01</action> <!-- enemy -->
            <action>maincpu.mb@9D11 = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C03 = 0F</action>
            <action>maincpu.mb@9C1D = 08</action>
            <action>maincpu.mb@9D11 = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC75 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC75 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFE9012        </action>
            <action>maincpu.mq@FE90 = 1CEF978196469181</action>
            <action>maincpu.mq@FE98 = 27F8D68081022601</action>
            <action>maincpu.mq@FEA0 = 5A810126015C8104</action>
            <action>maincpu.mq@FEA8 = 2602C01081082602</action>
            <action>maincpu.mq@FEB0 = CB10D78081102706</action>
            <action>maincpu.mq@FEB8 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEC0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE90 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE92 | 97 81    : STA    $81
            FE94 | 96 46    : LDA    $46   // read input
            FE96 | 91 81    : CMPA   $81
            FE98 | 27 F8    : BEQ    $FE92
            FE9A | D6 80    : LDB    $80
            FE9C | 81 02    : CMPA   #$02
            FE9E | 26 01    : BNE    $FEA1
            FEA0 | 5A       : DECB         // decrease code -01
            FEA1 | 81 01    : CMPA   #$01
            FEA3 | 26 01    : BNE    $FEA6
            FEA5 | 5C       : INCB         // increase code +01
            FEA6 | 81 04    : CMPA   #$04
            FEA8 | 26 02    : BNE    $FEAC
            FEAA | C0 10    : SUBB   #$10  // decrease code -10
            FEAC | 81 08    : CMPA   #$08
            FEAE | 26 02    : BNE    $FEB2
            FEB0 | CB 10    : ADDB   #$10  // increase code +10
            FEB2 | D7 80    : STB    $80
            FEB4 | 81 10    : CMPA   #$10
            FEB6 | 27 06    : BEQ    $FEBE // play sound
            FEB8 | 81 20    : CMPA   #$20
            FEBA | 26 05    : BNE    $FEC1
            FEBC | C6 3F    : LDB    #$3F  // stop sound
            FEBE | F7 3A 00 : STB    $3A00
            FEC1 | 20 CF    : BRA    $FE92
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- makaimura sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"              line="11" align="center" />
            <output format="right : increase code +01"             line="12" align="center" />
            <output format="down : decrease code -10"              line="13" align="center" />
            <output format="up : increase code +10"                line="14" align="center" />
            <output format="button 1 : play sound"                 line="15" align="center" />
            <output format="button 2 : stop sound"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEB8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 553A</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>
"multiple jump" : Fixed jump sound in multiple jump.

[gng]+ Ghosts'n Goblins/Makai-Mura

Posted: Tue Dec 10, 2024 10:22 am
by jman
In 0.272, makaimurba was added. It seems to be based on makaimurb so that conversion will be easy.

makaimurba.xml

Code: Select all

<!-- Makaimura (Japan Revision B, alt GFX) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@F077 = 20</action> <!-- enemy -->
            <action>maincpu.mb@F4AB = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@F077 = 22</action>
            <action>maincpu.mb@F4AB = 22</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@8F70 = D6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F70 = D4</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mb@8F6C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8F6C = 0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0480">02       </item>
            <item value="0x0880">03       </item>
            <item value="0x0c80">04       </item>
            <item value="0x1080">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@9C64 =  param</action> <!-- lance, torch, axe, cross : right -->
            <action>maincpu.mw@9C68 = -param</action> <!-- lance, torch, axe, cross : left -->
            <action>maincpu.mw@9C70 =  param</action> <!-- knife : right -->
            <action>maincpu.mw@9C74 = -param</action> <!-- knife : left -->
        </script>
        <script state="off">
            <action>maincpu.mw@9C64 = 0430</action>
            <action>maincpu.mw@9C68 = FBD0</action>
            <action>maincpu.mw@9C70 = 05A0</action>
            <action>maincpu.mw@9C74 = FA60</action>
        </script>
    </cheat>

    <cheat desc="bullet range">
        <parameter>
            <item value="0x05">01 (short)</item>
            <item value="0x35">02        </item>
            <item value="0x65">03        </item>
            <item value="0x95">04        </item>
            <item value="0xc5">05 (long) </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@9C3E = param</action> <!-- torch -->
            <action>maincpu.mb@9C3F = param</action> <!-- lance -->
            <action>maincpu.mb@9C40 = param</action> <!-- axe -->
            <action>maincpu.mb@9C41 = param</action> <!-- cross -->
            <action>maincpu.mb@9C42 = param</action> <!-- knife -->
        </script>
        <script state="off">
            <action>maincpu.mb@9C3E = 30</action>
            <action>maincpu.mb@9C3F = C0</action>
            <action>maincpu.mb@9C40 = 30</action>
            <action>maincpu.mb@9C41 = 30</action>
            <action>maincpu.mb@9C42 = C5</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mb@77C6 = AB              </action> <!-- enable jump sound in multiple jump -->
            <action>maincpu.md@8F12 = BDFE50CE        </action>
            <action>maincpu.mq@FE50 = 964C43944B852027</action>
            <action>maincpu.mq@FE58 = 11CC0100ED13CE93</action>
            <action>maincpu.mq@FE60 = B2BD8FF4964C8403</action>
            <action>maincpu.mq@FE68 = A71EEC134839FFFF</action>
            <!--
            FE50 | 96 4C    : LDA    $4C    // jump button check
            FE52 | 43       : COMA
            FE53 | 94 4B    : ANDA   $4B
            FE55 | 85 20    : BITA   #$20
            FE57 | 27 11    : BEQ    $FE6A
            FE59 | CC 01 00 : LDD    #$0100 // initialize state
            FE5C | ED 13    : STD    -$D,X
            FE5E | CE 93 B2 : LDU    #$93B2 // initialize parameters
            FE61 | BD 8F F4 : JSR    $8FF4
            FE64 | 96 4C    : LDA    $4C
            FE66 | 84 03    : ANDA   #$03   // set direction
            FE68 | A7 1E    : STA    -$2,X
            FE6A | EC 13    : LDD    -$D,X
            FE6C | 48       : ASLA
            FE6D | 39       : RTS
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@77C6 = 68              </action>
            <action>maincpu.md@8F12 = EC1348CE        </action>
            <action>maincpu.mq@FE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FE68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@9BF0 = 01</action> <!-- object -->
            <action>maincpu.mb@9C0A = 01</action> <!-- enemy -->
            <action>maincpu.mb@9CFE = 01</action> <!-- knife/cross -->
        </script>
        <script state="off">
            <action>maincpu.mb@9BF0 = 0F</action>
            <action>maincpu.mb@9C0A = 08</action>
            <action>maincpu.mb@9CFE = 0F</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x1f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@EC55 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@EC55 = 3F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6880 = 96              </action> <!-- disable next sequence at boot -->
            <action>maincpu.md@615C = 7EFE7012        </action>
            <action>maincpu.mq@FE70 = 1CEF978196469181</action>
            <action>maincpu.mq@FE78 = 27F8D68081022601</action>
            <action>maincpu.mq@FE80 = 5A810126015C8104</action>
            <action>maincpu.mq@FE88 = 2602C01081082602</action>
            <action>maincpu.mq@FE90 = CB10D78081102706</action>
            <action>maincpu.mq@FE98 = 81202605C63FF73A</action>
            <action>maincpu.mq@FEA0 = 0020CFFFFFFFFFFF</action>
            <!--
            FE70 | 1C EF    : ANDCC  #$EF  // enable interrupt
            FE72 | 97 81    : STA    $81
            FE74 | 96 46    : LDA    $46   // read input
            FE76 | 91 81    : CMPA   $81
            FE78 | 27 F8    : BEQ    $FE72
            FE7A | D6 80    : LDB    $80
            FE7C | 81 02    : CMPA   #$02
            FE7E | 26 01    : BNE    $FE81
            FE80 | 5A       : DECB         // decrease code -01
            FE81 | 81 01    : CMPA   #$01
            FE83 | 26 01    : BNE    $FE86
            FE85 | 5C       : INCB         // increase code +01
            FE86 | 81 04    : CMPA   #$04
            FE88 | 26 02    : BNE    $FE8C
            FE8A | C0 10    : SUBB   #$10  // decrease code -10
            FE8C | 81 08    : CMPA   #$08
            FE8E | 26 02    : BNE    $FE92
            FE90 | CB 10    : ADDB   #$10  // increase code +10
            FE92 | D7 80    : STB    $80
            FE94 | 81 10    : CMPA   #$10
            FE96 | 27 06    : BEQ    $FE9E // play sound
            FE98 | 81 20    : CMPA   #$20
            FE9A | 26 05    : BNE    $FEA1
            FE9C | C6 3F    : LDB    #$3F  // stop sound
            FE9E | F7 3A 00 : STB    $3A00
            FEA1 | 20 CF    : BRA    $FE72
            -->
            <!-- stop sfx and music at the same time -->
            <action>audiocpu.mw@3C1C = 56D0            </action>
            <action>audiocpu.mq@56D0 = BACD02C3CD02CCCD</action>
            <action>audiocpu.mq@56D8 = C902B1CD01A0CD02</action>
            <!--
            56D0 | CD CC 02 : call $02CC
            56D3 | CD C3 02 : call $02C3
            56D6 | CD BA 02 : call $02BA
            56D9 | CD A0 01 : call $01A0
            56DC | CD B1 02 : call $02B1
            56DF | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@6880 = 0C              </action>
            <action> maincpu.md@615C = 1CEF201F        </action>
            <action> maincpu.mq@FE70 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE78 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FE98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@FEA0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@3C1C = 02B1            </action>
            <action>audiocpu.mq@56D0 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@56D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@607B = 607D</action> <!-- skip ram/rom check -->
            <action>maincpu.mw@6896 = 0001</action> <!-- skip wait -->
        </script>
        <script state="off">
            <action>maincpu.mw@607B = 553A</action>
            <action>maincpu.mw@6896 = 00B4</action>
        </script>
    </cheat>

</mamecheat>

[gng]+ Ghosts'n Goblins/Makai-Mura

Posted: Tue Dec 10, 2024 10:37 am
by jman
"easy level finish" : Added new. You can finish current level when you press start button (player 1 : 1P start button, player 2 : 2P start button).

gng.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 1) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@724F = FF80            </action>
            <action>maincpu.mq@FF80 = 9627260696428401</action>
            <action>maincpu.mq@FF88 = 2004964284022717</action>
            <action>maincpu.mq@FF90 = 860297088601B705</action>
            <action>maincpu.mq@FF98 = 2096728105270B81</action>
            <action>maincpu.mq@FFA0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FFA8 = 72A19673810327F3</action>
            <action>maincpu.mq@FFB0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FF80 | 96 27    : LDA    $27   // check player
            FF82 | 26 06    : BNE    $FF8A
            FF84 | 96 42    : LDA    $42
            FF86 | 84 01    : ANDA   #$01  // check 1P start button
            FF88 | 20 04    : BRA    $FF8E
            FF8A | 96 42    : LDA    $42
            FF8C | 84 02    : ANDA   #$02  // check 2P start button
            FF8E | 27 17    : BEQ    $FFA7
            FF90 | 86 02    : LDA    #$02
            FF92 | 97 08    : STA    $08
            FF94 | 86 01    : LDA    #$01
            FF96 | B7 05 20 : STA    $0520
            FF99 | 96 72    : LDA    $72
            FF9B | 81 05    : CMPA   #$05
            FF9D | 27 0B    : BEQ    $FFAA
            FF9F | 81 06    : CMPA   #$06
            FFA1 | 27 0D    : BEQ    $FFB0
            FFA3 | 86 06    : LDA    #$06
            FFA5 | 97 0B    : STA    $0B
            FFA7 | 7E 72 A1 : JMP    $72A1
            FFAA | 96 73    : LDA    $73   // level 6
            FFAC | 81 03    : CMPA   #$03  // check cross(shield)
            FFAE | 27 F3    : BEQ    $FFA3
            FFB0 | 4F       : CLRA         // level 7
            FFB1 | 20 F2    : BRA    $FFA5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@704F = 72A1            </action>
            <action>maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gnga.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 2) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@70A1 = FEB0            </action>
            <action>maincpu.mq@FEB0 = 9627260696428401</action>
            <action>maincpu.mq@FEB8 = 2004964284022717</action>
            <action>maincpu.mq@FEC0 = 860297088601B705</action>
            <action>maincpu.mq@FEC8 = 2096728105270B81</action>
            <action>maincpu.mq@FED0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FED8 = 70F39673810327F3</action>
            <action>maincpu.mq@FEE0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FEB0 | 96 27    : LDA    $27   // check player
            FEB2 | 26 06    : BNE    $FEBA
            FEB4 | 96 42    : LDA    $42
            FEB6 | 84 01    : ANDA   #$01  // check 1P start button
            FEB8 | 20 04    : BRA    $FEBE
            FEBA | 96 42    : LDA    $42
            FEBC | 84 02    : ANDA   #$02  // check 2P start button
            FEBE | 27 17    : BEQ    $FED7
            FEC0 | 86 02    : LDA    #$02
            FEC2 | 97 08    : STA    $08
            FEC4 | 86 01    : LDA    #$01
            FEC6 | B7 05 20 : STA    $0520
            FEC9 | 96 72    : LDA    $72
            FECB | 81 05    : CMPA   #$05
            FECD | 27 0B    : BEQ    $FEDA
            FECF | 81 06    : CMPA   #$06
            FED1 | 27 0D    : BEQ    $FEE0
            FED3 | 86 06    : LDA    #$06
            FED5 | 97 0B    : STA    $0B
            FED7 | 7E 70 F3 : JMP    $70F3
            FEDA | 96 73    : LDA    $73   // level 6
            FEDC | 81 03    : CMPA   #$03  // check cross(shield)
            FEDE | 27 F3    : BEQ    $FED3
            FEE0 | 4F       : CLRA         // level 7
            FEE1 | 20 F2    : BRA    $FED5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@70A1 = 70F3            </action>
            <action>maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gngbl.xml

Code: Select all

<!-- Ghosts'n Goblins (bootleg with Cross) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@724F = FF80            </action>
            <action>maincpu.mq@FF80 = 9627260696428401</action>
            <action>maincpu.mq@FF88 = 2004964284022717</action>
            <action>maincpu.mq@FF90 = 860297088601B705</action>
            <action>maincpu.mq@FF98 = 2096728105270B81</action>
            <action>maincpu.mq@FFA0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FFA8 = 72A19673810327F3</action>
            <action>maincpu.mq@FFB0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FF80 | 96 27    : LDA    $27   // check player
            FF82 | 26 06    : BNE    $FF8A
            FF84 | 96 42    : LDA    $42
            FF86 | 84 01    : ANDA   #$01  // check 1P start button
            FF88 | 20 04    : BRA    $FF8E
            FF8A | 96 42    : LDA    $42
            FF8C | 84 02    : ANDA   #$02  // check 2P start button
            FF8E | 27 17    : BEQ    $FFA7
            FF90 | 86 02    : LDA    #$02
            FF92 | 97 08    : STA    $08
            FF94 | 86 01    : LDA    #$01
            FF96 | B7 05 20 : STA    $0520
            FF99 | 96 72    : LDA    $72
            FF9B | 81 05    : CMPA   #$05
            FF9D | 27 0B    : BEQ    $FFAA
            FF9F | 81 06    : CMPA   #$06
            FFA1 | 27 0D    : BEQ    $FFB0
            FFA3 | 86 06    : LDA    #$06
            FFA5 | 97 0B    : STA    $0B
            FFA7 | 7E 72 A1 : JMP    $72A1
            FFAA | 96 73    : LDA    $73   // level 6
            FFAC | 81 03    : CMPA   #$03  // check cross(shield)
            FFAE | 27 F3    : BEQ    $FFA3
            FFB0 | 4F       : CLRA         // level 7
            FFB1 | 20 F2    : BRA    $FFA5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@724F = 72A1            </action>
            <action>maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gngprot.xml

Code: Select all

<!-- Ghosts'n Goblins (prototype) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@6FEA = FB60            </action>
            <action>maincpu.mq@FB60 = 9627260696428401</action>
            <action>maincpu.mq@FB68 = 2004964284022717</action>
            <action>maincpu.mq@FB70 = 860297088601B705</action>
            <action>maincpu.mq@FB78 = 2096728105270B81</action>
            <action>maincpu.mq@FB80 = 06270D8606970B7E</action>
            <action>maincpu.mq@FB88 = 70389673810327F3</action>
            <action>maincpu.mq@FB90 = 4F20F2FFFFFFFFFF</action>
            <!--
            FB60 | 96 27    : LDA    $27   // check player
            FB62 | 26 06    : BNE    $FB6A
            FB64 | 96 42    : LDA    $42
            FB66 | 84 01    : ANDA   #$01  // check 1P start button
            FB68 | 20 04    : BRA    $FB6E
            FB6A | 96 42    : LDA    $42
            FB6C | 84 02    : ANDA   #$02  // check 2P start button
            FB6E | 27 17    : BEQ    $FB87
            FB70 | 86 02    : LDA    #$02
            FB72 | 97 08    : STA    $08
            FB74 | 86 01    : LDA    #$01
            FB76 | B7 05 20 : STA    $0520
            FB79 | 96 72    : LDA    $72
            FB7B | 81 05    : CMPA   #$05
            FB7D | 27 0B    : BEQ    $FB8A
            FB7F | 81 06    : CMPA   #$06
            FB81 | 27 0D    : BEQ    $FB90
            FB83 | 86 06    : LDA    #$06
            FB85 | 97 0B    : STA    $0B
            FB87 | 7E 70 38 : JMP    $7038
            FB8A | 96 73    : LDA    $73   // level 6
            FB8C | 81 03    : CMPA   #$03  // check cross(shield)
            FB8E | 27 F3    : BEQ    $FB83
            FB90 | 4F       : CLRA         // level 7
            FB91 | 20 F2    : BRA    $FB85
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@6FEA = 7038            </action>
            <action>maincpu.mq@FB60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FB90 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gngblita.xml

Code: Select all

<!-- Ghosts'n Goblins (Italian bootleg, harder) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@7251 = FFA0            </action>
            <action>maincpu.mq@FFA0 = 9627260696428401</action>
            <action>maincpu.mq@FFA8 = 2004964284022717</action>
            <action>maincpu.mq@FFB0 = 860297088601B705</action>
            <action>maincpu.mq@FFB8 = 2096728105270B81</action>
            <action>maincpu.mq@FFC0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FFC8 = 72A39673810327F3</action>
            <action>maincpu.mq@FFD0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FFA0 | 96 27    : LDA    $27   // check player
            FFA2 | 26 06    : BNE    $FFAA
            FFA4 | 96 42    : LDA    $42
            FFA6 | 84 01    : ANDA   #$01  // check 1P start button
            FFA8 | 20 04    : BRA    $FFAE
            FFAA | 96 42    : LDA    $42
            FFAC | 84 02    : ANDA   #$02  // check 2P start button
            FFAE | 27 17    : BEQ    $FFC7
            FF90 | 86 02    : LDA    #$02
            FFB2 | 97 08    : STA    $08
            FFB4 | 86 01    : LDA    #$01
            FFB6 | B7 05 20 : STA    $0520
            FFB9 | 96 72    : LDA    $72
            FFBB | 81 05    : CMPA   #$05
            FFBD | 27 0B    : BEQ    $FFCA
            FFBF | 81 06    : CMPA   #$06
            FFC1 | 27 0D    : BEQ    $FFD0
            FFC3 | 86 06    : LDA    #$06
            FFC5 | 97 0B    : STA    $0B
            FFC7 | 7E 72 A3 : JMP    $72A3
            FFCA | 96 73    : LDA    $73   // level 6
            FFCC | 81 03    : CMPA   #$03  // check cross(shield)
            FFCE | 27 F3    : BEQ    $FFC3
            FFD0 | 4F       : CLRA         // level 7
            FFD1 | 20 F2    : BRA    $FFC5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7251 = 72A3            </action>
            <action>maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gngc.xml

Code: Select all

<!-- Ghosts'n Goblins (World? set 3) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@7251 = FF80            </action>
            <action>maincpu.mq@FF80 = 9627260696428401</action>
            <action>maincpu.mq@FF88 = 2004964284022717</action>
            <action>maincpu.mq@FF90 = 860297088601B705</action>
            <action>maincpu.mq@FF98 = 2096728105270B81</action>
            <action>maincpu.mq@FFA0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FFA8 = 72A39673810327F3</action>
            <action>maincpu.mq@FFB0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FF80 | 96 27    : LDA    $27   // check player
            FF82 | 26 06    : BNE    $FF8A
            FF84 | 96 42    : LDA    $42
            FF86 | 84 01    : ANDA   #$01  // check 1P start button
            FF88 | 20 04    : BRA    $FF8E
            FF8A | 96 42    : LDA    $42
            FF8C | 84 02    : ANDA   #$02  // check 2P start button
            FF8E | 27 17    : BEQ    $FFA7
            FF90 | 86 02    : LDA    #$02
            FF92 | 97 08    : STA    $08
            FF94 | 86 01    : LDA    #$01
            FF96 | B7 05 20 : STA    $0520
            FF99 | 96 72    : LDA    $72
            FF9B | 81 05    : CMPA   #$05
            FF9D | 27 0B    : BEQ    $FFAA
            FF9F | 81 06    : CMPA   #$06
            FFA1 | 27 0D    : BEQ    $FFB0
            FFA3 | 86 06    : LDA    #$06
            FFA5 | 97 0B    : STA    $0B
            FFA7 | 7E 72 A3 : JMP    $72A3
            FFAA | 96 73    : LDA    $73   // level 6
            FFAC | 81 03    : CMPA   #$03  // check cross(shield)
            FFAE | 27 F3    : BEQ    $FFA3
            FFB0 | 4F       : CLRA         // level 7
            FFB1 | 20 F2    : BRA    $FFA5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7251 = 72A3            </action>
            <action>maincpu.mq@FF80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gngt.xml

Code: Select all

<!-- Ghosts'n Goblins (US) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@7258 = FFA0            </action>
            <action>maincpu.mq@FFA0 = 9627260696428401</action>
            <action>maincpu.mq@FFA8 = 2004964284022717</action>
            <action>maincpu.mq@FFB0 = 860297088601B705</action>
            <action>maincpu.mq@FFB8 = 2096728105270B81</action>
            <action>maincpu.mq@FFC0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FFC8 = 72AA9673810327F3</action>
            <action>maincpu.mq@FFD0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FFA0 | 96 27    : LDA    $27   // check player
            FFA2 | 26 06    : BNE    $FFAA
            FFA4 | 96 42    : LDA    $42
            FFA6 | 84 01    : ANDA   #$01  // check 1P start button
            FFA8 | 20 04    : BRA    $FFAE
            FFAA | 96 42    : LDA    $42
            FFAC | 84 02    : ANDA   #$02  // check 2P start button
            FFAE | 27 17    : BEQ    $FFC7
            FFB0 | 86 02    : LDA    #$02
            FFB2 | 97 08    : STA    $08
            FFB4 | 86 01    : LDA    #$01
            FFB6 | B7 05 20 : STA    $0520
            FFB9 | 96 72    : LDA    $72
            FFBB | 81 05    : CMPA   #$05
            FFBD | 27 0B    : BEQ    $FFCA
            FFBF | 81 06    : CMPA   #$06
            FFC1 | 27 0D    : BEQ    $FFD0
            FFC3 | 86 06    : LDA    #$06
            FFC5 | 97 0B    : STA    $0B
            FFC7 | 7E 72 AA : JMP    $72AA
            FFCA | 96 73    : LDA    $73   // level 6
            FFCC | 81 03    : CMPA   #$03  // check cross(shield)
            FFCE | 27 F3    : BEQ    $FFC3
            FFD0 | 4F       : CLRA         // level 7
            FFD1 | 20 F2    : BRA    $FFC5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7258 = 72AA            </action>
            <action>maincpu.mq@FFA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFD0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
makaimur.xml

Code: Select all

<!-- Makaimura (Japan) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@7095 = FED0            </action>
            <action>maincpu.mq@FED0 = 9627260696428401</action>
            <action>maincpu.mq@FED8 = 2004964284022717</action>
            <action>maincpu.mq@FEE0 = 860297088601B705</action>
            <action>maincpu.mq@FEE8 = 2096728105270B81</action>
            <action>maincpu.mq@FEF0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FEF8 = 70E79673810327F3</action>
            <action>maincpu.mq@FF00 = 4F20F2FFFFFFFFFF</action>
            <!--
            FED0 | 96 27    : LDA    $27   // check player
            FED2 | 26 06    : BNE    $FEDA
            FED4 | 96 42    : LDA    $42
            FED6 | 84 01    : ANDA   #$01  // check 1P start button
            FED8 | 20 04    : BRA    $FEDE
            FEDA | 96 42    : LDA    $42
            FEDC | 84 02    : ANDA   #$02  // check 2P start button
            FEDE | 27 17    : BEQ    $FEF7
            FEE0 | 86 02    : LDA    #$02
            FEE2 | 97 08    : STA    $08
            FEE4 | 86 01    : LDA    #$01
            FEE6 | B7 05 20 : STA    $0520
            FEE9 | 96 72    : LDA    $72
            FEEB | 81 05    : CMPA   #$05
            FEED | 27 0B    : BEQ    $FEFA
            FEEF | 81 06    : CMPA   #$06
            FEF1 | 27 0D    : BEQ    $FF00
            FEF3 | 86 06    : LDA    #$06
            FEF5 | 97 0B    : STA    $0B
            FEF7 | 7E 70 E7 : JMP    $70E7
            FEFA | 96 73    : LDA    $73   // level 6
            FEFC | 81 03    : CMPA   #$03  // check cross(shield)
            FEFE | 27 F3    : BEQ    $FEF3
            FF00 | 4F       : CLRA         // level 7
            FF01 | 20 F2    : BRA    $FEF5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7095 = 70E7            </action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
makaimurb.xml

Code: Select all

<!-- Makaimura (Japan Revision B) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@709C = FEB0            </action>
            <action>maincpu.mq@FEB0 = 9627260696428401</action>
            <action>maincpu.mq@FEB8 = 2004964284022717</action>
            <action>maincpu.mq@FEC0 = 860297088601B705</action>
            <action>maincpu.mq@FEC8 = 2096728105270B81</action>
            <action>maincpu.mq@FED0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FED8 = 70EE9673810327F3</action>
            <action>maincpu.mq@FEE0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FEB0 | 96 27    : LDA    $27   // check player
            FEB2 | 26 06    : BNE    $FEBA
            FEB4 | 96 42    : LDA    $42
            FEB6 | 84 01    : ANDA   #$01  // check 1P start button
            FEB8 | 20 04    : BRA    $FEBE
            FEBA | 96 42    : LDA    $42
            FEBC | 84 02    : ANDA   #$02  // check 2P start button
            FEBE | 27 17    : BEQ    $FED7
            FEC0 | 86 02    : LDA    #$02
            FEC2 | 97 08    : STA    $08
            FEC4 | 86 01    : LDA    #$01
            FEC6 | B7 05 20 : STA    $0520
            FEC9 | 96 72    : LDA    $72
            FECB | 81 05    : CMPA   #$05
            FECD | 27 0B    : BEQ    $FEDA
            FECF | 81 06    : CMPA   #$06
            FED1 | 27 0D    : BEQ    $FEE0
            FED3 | 86 06    : LDA    #$06
            FED5 | 97 0B    : STA    $0B
            FED7 | 7E 70 EE : JMP    $70EE
            FEDA | 96 73    : LDA    $73   // level 6
            FEDC | 81 03    : CMPA   #$03  // check cross(shield)
            FEDE | 27 F3    : BEQ    $FED3
            FEE0 | 4F       : CLRA         // level 7
            FEE1 | 20 F2    : BRA    $FED5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@709C = 70EE            </action>
            <action>maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
makaimurba.xml

Code: Select all

<!-- Makaimura (Japan Revision B, alt GFX) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@709C = FEB0            </action>
            <action>maincpu.mq@FEB0 = 9627260696428401</action>
            <action>maincpu.mq@FEB8 = 2004964284022717</action>
            <action>maincpu.mq@FEC0 = 860297088601B705</action>
            <action>maincpu.mq@FEC8 = 2096728105270B81</action>
            <action>maincpu.mq@FED0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FED8 = 70EE9673810327F3</action>
            <action>maincpu.mq@FEE0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FEB0 | 96 27    : LDA    $27   // check player
            FEB2 | 26 06    : BNE    $FEBA
            FEB4 | 96 42    : LDA    $42
            FEB6 | 84 01    : ANDA   #$01  // check 1P start button
            FEB8 | 20 04    : BRA    $FEBE
            FEBA | 96 42    : LDA    $42
            FEBC | 84 02    : ANDA   #$02  // check 2P start button
            FEBE | 27 17    : BEQ    $FED7
            FEC0 | 86 02    : LDA    #$02
            FEC2 | 97 08    : STA    $08
            FEC4 | 86 01    : LDA    #$01
            FEC6 | B7 05 20 : STA    $0520
            FEC9 | 96 72    : LDA    $72
            FECB | 81 05    : CMPA   #$05
            FECD | 27 0B    : BEQ    $FEDA
            FECF | 81 06    : CMPA   #$06
            FED1 | 27 0D    : BEQ    $FEE0
            FED3 | 86 06    : LDA    #$06
            FED5 | 97 0B    : STA    $0B
            FED7 | 7E 70 EE : JMP    $70EE
            FEDA | 96 73    : LDA    $73   // level 6
            FEDC | 81 03    : CMPA   #$03  // check cross(shield)
            FEDE | 27 F3    : BEQ    $FED3
            FEE0 | 4F       : CLRA         // level 7
            FEE1 | 20 F2    : BRA    $FED5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@709C = 70EE            </action>
            <action>maincpu.mq@FEB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
makaimurc.xml

Code: Select all

<!-- Makaimura (Japan Revision C) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@709E = FEC0            </action>
            <action>maincpu.mq@FEC0 = 9627260696428401</action>
            <action>maincpu.mq@FEC8 = 2004964284022717</action>
            <action>maincpu.mq@FED0 = 860297088601B705</action>
            <action>maincpu.mq@FED8 = 2096728105270B81</action>
            <action>maincpu.mq@FEE0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FEE8 = 70F09673810327F3</action>
            <action>maincpu.mq@FEF0 = 4F20F2FFFFFFFFFF</action>
            <!--
            FEC0 | 96 27    : LDA    $27   // check player
            FEC2 | 26 06    : BNE    $FECA
            FEC4 | 96 42    : LDA    $42
            FEC6 | 84 01    : ANDA   #$01  // check 1P start button
            FEC8 | 20 04    : BRA    $FECE
            FECA | 96 42    : LDA    $42
            FECC | 84 02    : ANDA   #$02  // check 2P start button
            FECE | 27 17    : BEQ    $FEE7
            FED0 | 86 02    : LDA    #$02
            FED2 | 97 08    : STA    $08
            FED4 | 86 01    : LDA    #$01
            FED6 | B7 05 20 : STA    $0520
            FED9 | 96 72    : LDA    $72
            FEDB | 81 05    : CMPA   #$05
            FEDD | 27 0B    : BEQ    $FEEA
            FEDF | 81 06    : CMPA   #$06
            FEE1 | 27 0D    : BEQ    $FEF0
            FEE3 | 86 06    : LDA    #$06
            FEE5 | 97 0B    : STA    $0B
            FEE7 | 7E 70 F0 : JMP    $70F0
            FEEA | 96 73    : LDA    $73   // level 6
            FEEC | 81 03    : CMPA   #$03  // check cross(shield)
            FEEE | 27 F3    : BEQ    $FEE3
            FEF0 | 4F       : CLRA         // level 7
            FEF1 | 20 F2    : BRA    $FEE5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@709E = 70F0            </action>
            <action>maincpu.mq@FEC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
makaimurg.xml

Code: Select all

<!-- Makaimura (Japan Revision G) -->
<mamecheat version="1">

    <cheat desc="easy level finish">
        <comment>press start button to finish current level</comment>
        <script state="on">
            <action>maincpu.mw@70A1 = FED0            </action>
            <action>maincpu.mq@FED0 = 9627260696428401</action>
            <action>maincpu.mq@FED8 = 2004964284022717</action>
            <action>maincpu.mq@FEE0 = 860297088601B705</action>
            <action>maincpu.mq@FEE8 = 2096728105270B81</action>
            <action>maincpu.mq@FEF0 = 06270D8606970B7E</action>
            <action>maincpu.mq@FEF8 = 70F39673810327F3</action>
            <action>maincpu.mq@FF00 = 4F20F2FFFFFFFFFF</action>
            <!--
            FED0 | 96 27    : LDA    $27   // check player
            FED2 | 26 06    : BNE    $FEDA
            FED4 | 96 42    : LDA    $42
            FED6 | 84 01    : ANDA   #$01  // check 1P start button
            FED8 | 20 04    : BRA    $FEDE
            FEDA | 96 42    : LDA    $42
            FEDC | 84 02    : ANDA   #$02  // check 2P start button
            FEDE | 27 17    : BEQ    $FEF7
            FEE0 | 86 02    : LDA    #$02
            FEE2 | 97 08    : STA    $08
            FEE4 | 86 01    : LDA    #$01
            FEE6 | B7 05 20 : STA    $0520
            FEE9 | 96 72    : LDA    $72
            FEEB | 81 05    : CMPA   #$05
            FEED | 27 0B    : BEQ    $FEFA
            FEEF | 81 06    : CMPA   #$06
            FEF1 | 27 0D    : BEQ    $FF00
            FEF3 | 86 06    : LDA    #$06
            FEF5 | 97 0B    : STA    $0B
            FEF7 | 7E 70 F3 : JMP    $70F3
            FEFA | 96 73    : LDA    $73   // level 6
            FEFC | 81 03    : CMPA   #$03  // check cross(shield)
            FEFE | 27 F3    : BEQ    $FEF3
            FF00 | 4F       : CLRA         // level 7
            FF01 | 20 F2    : BRA    $FEF5
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@70A1 = 70F3            </action>
            <action>maincpu.mq@FED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FEF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FF00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>