[momoko] Momoko 120%

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[momoko] Momoko 120%

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@38d1 = c9</action>
    </script>
    <script state="off">
        <action>maincpu.mb@38d1 = 32</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@263c = 18</action> <!-- escalator -->
        <action>maincpu.mb@2656 = 01</action> <!-- timer -->
    </script>
    <script state="off">
        <action>maincpu.mb@263c = 28</action>
        <action>maincpu.mb@2656 = 12</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="on">
        <action>maincpu.md@23f6 =         28a750cd</action>
        <action>maincpu.mq@a750 = ffffc962cb7e000e</action>
        <!--
        a750 | 0e xx : ld  c,$xx
        a752 | 7e    : ld  a,(hl)
        a753 | cb 62 : bit 4,d
        a755 | c9    : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@a751 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@23f6 =         2862cb7e</action>
        <action>maincpu.mq@a750 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <!-- enable landing check -->
        <action>maincpu.mb@1665 = 00</action>
        <!-- main routine -->
        <action>maincpu.md@11b0 =         c9a6f0cd</action>
        <action>maincpu.mq@a6f0 = 1e3ac02221c02032</action>
        <action>maincpu.mq@a6f8 = 7ec82e022005fec0</action>
        <action>maincpu.mq@a700 = ffffffc977afc8a7</action>
        <!--
        a6f0 | 32 20 c0 : ld  ($c020),a
        a6f3 | 21 22 c0 : ld  hl,$c022
        a6f6 | 3a 1e c0 : ld  a,($c01e)
        a6f9 | fe 05    : cp  $05
        a6fb | 20 02    : jr  nz,$a6ff
        a6fd | 2e c8    : ld  l,$c8
        a6ff | 7e       : ld  a,(hl)
        a700 | a7       : and a
        a701 | c8       : ret z
        a702 | af       : xor a
        a703 | 77       : ld  (hl),a
        a704 | c9       : ret
        -->
        <!-- adjust landing in level 5 -->
        <action>maincpu.md@1a61 =         04a708c3</action>
        <action>maincpu.mq@a708 = 1b3e03301bfe7e35</action>
        <action>maincpu.mq@a710 = ffffffff1a52c377</action>
        <!--
        a708 | 35       : dec (hl)
        a709 | 7e       : ld  a,(hl)
        a70a | fe 1b    : cp  $1b
        a70c | 30 03    : jr  nc,$a70e
        a70e | 3e 1b    : ld  a,$1b
        a710 | 77       : ld  (hl),a
        a711 | c3 52 1a : jp  $1a52
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@1665 =               19</action>
        <action>maincpu.md@11b0 =         c9c02032</action>
        <action>maincpu.mq@a6f0 = ffffffffffffffff</action>
        <action>maincpu.mq@a6f8 = ffffffffffffffff</action>
        <action>maincpu.md@1a61 =         04ee1835</action>
        <action>maincpu.mq@a708 = ffffffffffffffff</action>
        <action>maincpu.mq@a710 = ffffffffffffffff</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@0016 =             a720</action>
        <action>maincpu.mq@a720 = 003ad40432c10021</action>
        <action>maincpu.mq@a728 = 20f7fef62847b8d4</action>
        <action>maincpu.mq@a730 = fe340120fbfe3501</action>
        <action>maincpu.mq@a738 = dffe06187e0320ef</action>
        <action>maincpu.mq@a740 = 18d40632803e0520</action>
        <action>maincpu.mq@a748 = ffffffffffffffda</action>
        <!--
        a720 | 21 00 c1 : ld  hl,$C100  // sound code address
        a723 | 32 04 d4 : ld  ($D404),a // watchdog
        a726 | 3a 00 d4 : ld  a,($D400) // read input
        a729 | b8       : cp  b
        a72a | 47       : ld  b,a
        a72b | 28 f6    : jr  z,$A723
        a72d | fe f7    : cp  $F7
        a72f | 20 01    : jr  nz,$A732
        a731 | 35       : dec (hl)      // decrease code
        a732 | fe fb    : cp  $FB
        a734 | 20 01    : jr  nz,$A737
        a736 | 34       : inc (hl)      // increase code
        a737 | fe ef    : cp  $EF
        a739 | 20 03    : jr  nz,$A73E
        a73b | 7e       : ld  a,(hl)    // play sound
        a73c | 18 06    : jr  $A744
        a73e | fe df    : cp  $DF
        a740 | 20 05    : jr  nz,$A747
        a742 | 3e 80    : ld  a,$80     // stop sound
        a744 | 32 06 d4 : ld  ($D406),a // send sound code
        a747 | 18 da    : jr  $A723
        -->
    </script>
    <script state="run">
        <output format="----- momoko 120 percent sound test mode -----" line="10" align="center" />
        <output format="left : code decrement"                          line="11" align="center" />
        <output format="right : code increment"                         line="12" align="center" />
        <output format="button 1 : play sound"                          line="13" align="center" />
        <output format="button 2 : stop sound"                          line="14" align="center" />
        <output format="----------------------------"                   line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"             line="17" align="center">
            <argument>maincpu.pb@c100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0016 =             1c5a</action>
        <action>maincpu.mq@a720 = ffffffffffffffff</action>
        <action>maincpu.mq@a728 = ffffffffffffffff</action>
        <action>maincpu.mq@a730 = ffffffffffffffff</action>
        <action>maincpu.mq@a738 = ffffffffffffffff</action>
        <action>maincpu.mq@a740 = ffffffffffffffff</action>
        <action>maincpu.mq@a748 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[momoko] Momoko 120% (update)

Post by jman »

Code: Select all

<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="on">
        <action>maincpu.md@23f6 =         28a6f0cd</action>
        <action>maincpu.mq@a6f0 = ffffc962cb7e000e</action>
        <!--
        a6f0 | 0e xx : ld  c,$xx
        a6f2 | 7e    : ld  a,(hl)
        a6f3 | cb 62 : bit 4,d
        a6f5 | c9    : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@a6f1 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@23f6 =         2862cb7e</action>
        <action>maincpu.mq@a6f0 = ffffffffffffffff</action>
    </script>
</cheat>
"bullet speed" : reallocate address.

Code: Select all

<cheat desc="multiple jump">
    <script state="on">
        <!-- enable landing check -->
        <action>maincpu.mb@1665 = 00</action>
        <!-- main routine -->
        <action>maincpu.md@11b0 =         c9a700cd</action>
        <action>maincpu.mq@a700 = 1e3ac02221c02032</action>
        <action>maincpu.mq@a708 = 7ec82e022005fec0</action>
        <action>maincpu.mq@a710 = ffffffc977afc8a7</action>
        <!--
        a700 | 32 20 c0 : ld  ($C020),a
        a703 | 21 22 c0 : ld  hl,$C022
        a706 | 3a 1e c0 : ld  a,($C01E)
        a709 | fe 05    : cp  $05
        a70b | 20 02    : jr  nz,$A70F
        a70d | 2e c8    : ld  l,$C8
        a70f | 7e       : ld  a,(hl)
        a710 | a7       : and a
        a711 | c8       : ret z
        a712 | af       : xor a
        a713 | 77       : ld  (hl),a
        a714 | c9       : ret
        -->
        <!-- adjust landing in level 5 -->
        <action>maincpu.md@1a61 =         04a720c3</action>
        <action>maincpu.mq@a720 = 1b3e03301bfe7e35</action>
        <action>maincpu.mq@a728 = ffffffff1a52c377</action>
        <!--
        a720 | 35       : dec (hl)
        a721 | 7e       : ld  a,(hl)
        a722 | fe 1b    : cp  $1B
        a724 | 30 03    : jr  nc,$A729
        a726 | 3e 1b    : ld  a,$1B
        a728 | 77       : ld  (hl),a
        a729 | c3 52 1a : jp  $1A52
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@1665 =               19</action>
        <action>maincpu.md@11b0 =         c9c02032</action>
        <action>maincpu.mq@a700 = ffffffffffffffff</action>
        <action>maincpu.mq@a708 = ffffffffffffffff</action>
        <action>maincpu.mq@a710 = ffffffffffffffff</action>
        <action>maincpu.md@1a61 =         04ee1835</action>
        <action>maincpu.mq@a720 = ffffffffffffffff</action>
        <action>maincpu.mq@a728 = ffffffffffffffff</action>
    </script>
</cheat>
"multiple jump" : reallocate address.

Code: Select all

<cheat desc="sound test mode">
    <!-- credit sfx (code : 0x41) doesn't stop by sound stop button? -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@0016 =             a730</action>
        <action>maincpu.mq@a730 = 003ad40432c10021</action>
        <action>maincpu.mq@a738 = 20f7fef62847b8d4</action>
        <action>maincpu.mq@a740 = fe340120fbfe3501</action>
        <action>maincpu.mq@a748 = fe0618f03e0420fd</action>
        <action>maincpu.mq@a750 = 787786103e0520fe</action>
        <action>maincpu.mq@a758 = fe06187e0320effe</action>
        <action>maincpu.mq@a760 = d40632803e0520df</action>
        <action>maincpu.mq@a768 = ffffffffffffc918</action>
        <!--
        a730 | 21 00 c1 : ld  hl,$C100  // sound code address
        a733 | 32 04 d4 : ld  ($D404),a // watchdog
        a736 | 3a 00 d4 : ld  a,($D400) // read input
        a739 | b8       : cp  b
        a73a | 47       : ld  b,a
        a73b | 28 f6    : jr  z,$A733
        a73d | fe f7    : cp  $F7
        a73f | 20 01    : jr  nz,$A742
        a741 | 35       : dec (hl)      // decrease code -01
        a742 | fe fb    : cp  $FB
        a744 | 20 01    : jr  nz,$A747
        a746 | 34       : inc (hl)      // increase code +01
        a747 | fe fd    : cp  $FD
        a749 | 20 04    : jr  nz,$A74F
        a74b | 3e f0    : ld  a,$F0     // decrease code -10
        a74d | 18 06    : jr  $A755
        a74f | fe fe    : cp  $FE
        a751 | 20 05    : jr  nz,$A758
        a753 | 3e 10    : ld  a,$10     // increase code +10
        a755 | 86       : add a,(hl)
        a756 | 77       : ld  (hl),a
        a757 | 78       : ld  a,b
        a758 | fe ef    : cp  $EF
        a75a | 20 03    : jr  nz,$A75F
        a75c | 7e       : ld  a,(hl)    // play sound
        a75d | 18 06    : jr  $A765
        a75f | fe df    : cp  $DF
        a761 | 20 05    : jr  nz,$A768
        a763 | 3e 80    : ld  a,$80     // stop sound
        a765 | 32 06 d4 : ld  ($D406),a // send sound code
        a768 | 18 c9    : jr  $A733
        -->
        <!-- stop music and sfx at the same time -->
        <action>audiocpu.mw@063c =             7f00</action>
        <action>audiocpu.mq@7f00 = ffc90ab9cd063fcd</action>
        <!--
        7f00 | cd 3f 06 : call $063F // music
        7f03 | cd b9 0a : call $0AB9 // sfx
        7f06 | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- momoko 120 percent 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@c100</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mw@0016 =             1c5a</action>
        <action> maincpu.mq@a730 = ffffffffffffffff</action>
        <action> maincpu.mq@a738 = ffffffffffffffff</action>
        <action> maincpu.mq@a740 = ffffffffffffffff</action>
        <action> maincpu.mq@a748 = ffffffffffffffff</action>
        <action> maincpu.mq@a750 = ffffffffffffffff</action>
        <action> maincpu.mq@a758 = ffffffffffffffff</action>
        <action> maincpu.mq@a760 = ffffffffffffffff</action>
        <action> maincpu.mq@a768 = ffffffffffffffff</action>
        <action>audiocpu.mw@063c =             063f</action>
        <action>audiocpu.mq@7f00 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. reallocate address. add up/down key (code ±10). fix sfx stop problem except credit sound.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[momoko]+ Momoko 120%

Post by jman »

momoko.xml

Code: Select all

<!-- Momoko 120% (Japanese text) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@38D1 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@38D1 = 32</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@263C = 18</action> <!-- escalator -->
            <action>maincpu.mb@2656 = 01</action> <!-- timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@263C = 28</action>
            <action>maincpu.mb@2656 = 12</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="on">
            <action>maincpu.md@23F6 = 28A6F0CD        </action>
            <action>maincpu.mq@A6F0 = FFFFC962CB7E000E</action>
            <!--
            A6F0 | 0E xx : ld   c,$xx
            A6F2 | 7E    : ld   a,(hl)
            A6F3 | CB 62 : bit  4,d
            A6F5 | C9    : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@A6F1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@23F6 =         2862CB7E</action>
            <action>maincpu.mq@A6F0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <!-- enable landing check -->
            <action>maincpu.mb@1665 = 00</action>
            <!-- main routine -->
            <action>maincpu.md@11B0 = C9A700CD        </action>
            <action>maincpu.mq@A700 = 1E3AC02221C02032</action>
            <action>maincpu.mq@A708 = 7EC82E022005FEC0</action>
            <action>maincpu.mq@A710 = FFFFFFC977AFC8A7</action>
            <!--
            A700 | 32 20 C0 : ld   ($C020),a
            A703 | 21 22 C0 : ld   hl,$C022
            A706 | 3A 1E C0 : ld   a,($C01E)
            A709 | FE 05    : cp   $05
            A70B | 20 02    : jr   nz,$A70F
            A70D | 2E C8    : ld   l,$C8
            A70F | 7E       : ld   a,(hl)
            A710 | A7       : and  a
            A711 | C8       : ret  z
            A712 | AF       : xor  a
            A713 | 77       : ld   (hl),a
            A714 | C9       : ret
            -->
            <!-- adjust landing in level 5 -->
            <action>maincpu.md@1A61 = 04A720C3        </action>
            <action>maincpu.mq@A720 = 1B3E03301BFE7E35</action>
            <action>maincpu.mq@A728 = FFFFFFFF1A52C377</action>
            <!--
            A720 | 35       : dec  (hl)
            A721 | 7E       : ld   a,(hl)
            A722 | FE 1B    : cp   $1B
            A724 | 30 03    : jr   nc,$A729
            A726 | 3E 1B    : ld   a,$1B
            A728 | 77       : ld   (hl),a
            A729 | C3 52 1A : jp   $1A52
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@1665 = 19              </action>
            <action>maincpu.md@11B0 = C9C02032        </action>
            <action>maincpu.mq@A700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A708 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@1A61 = 04EE1835        </action>
            <action>maincpu.mq@A720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A728 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- credit sound (code 0x41) doesn't stop by sound stop button? -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0016 = A730            </action>
            <action>maincpu.mq@A730 = 003AD40432C10021</action>
            <action>maincpu.mq@A738 = 20F7FEF62847B8D4</action>
            <action>maincpu.mq@A740 = FE340120FBFE3501</action>
            <action>maincpu.mq@A748 = FE0618F03E0420FD</action>
            <action>maincpu.mq@A750 = 787786103E0520FE</action>
            <action>maincpu.mq@A758 = FE06187E0320EFFE</action>
            <action>maincpu.mq@A760 = D40632803E0520DF</action>
            <action>maincpu.mq@A768 = FFFFFFFFFFFFC918</action>
            <!--
            A730 | 21 00 C1 : ld   hl,$C100  // sound code address
            A733 | 32 04 D4 : ld   ($D404),a // watchdog
            A736 | 3A 00 D4 : ld   a,($D400) // read input
            A739 | B8       : cp   b
            A73A | 47       : ld   b,a
            A73B | 28 F6    : jr   z,$A733
            A73D | FE F7    : cp   $F7
            A73F | 20 01    : jr   nz,$A742
            A741 | 35       : dec  (hl)      // decrease code -01
            A742 | FE FB    : cp   $FB
            A744 | 20 01    : jr   nz,$A747
            A746 | 34       : inc  (hl)      // increase code +01
            A747 | FE FD    : cp   $FD
            A749 | 20 04    : jr   nz,$A74F
            A74B | 3E F0    : ld   a,$F0     // decrease code -10
            A74D | 18 06    : jr   $A755
            A74F | FE FE    : cp   $FE
            A751 | 20 05    : jr   nz,$A758
            A753 | 3E 10    : ld   a,$10     // increase code +10
            A755 | 86       : add  a,(hl)
            A756 | 77       : ld   (hl),a
            A757 | 78       : ld   a,b
            A758 | FE EF    : cp   $EF
            A75A | 20 03    : jr   nz,$A75F
            A75C | 7E       : ld   a,(hl)    // play sound
            A75D | 18 06    : jr   $A765
            A75F | FE DF    : cp   $DF
            A761 | 20 05    : jr   nz,$A768
            A763 | 3E 80    : ld   a,$80     // stop sound
            A765 | 32 06 D4 : ld   ($D406),a // send sound code
            A768 | 18 C9    : jr   $A733
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.mw@063C = 7F00            </action>
            <action>audiocpu.mq@7F00 = FFC90AB9CD063FCD</action>
            <!--
            7F00 | CD 3F 06 : call $063F // music
            7F03 | CD B9 0A : call $0AB9 // sfx
            7F06 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- momoko 120 percent 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@C100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@0016 = 1C5A            </action>
            <action> maincpu.mq@A730 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A738 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A740 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A748 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A750 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A758 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A760 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A768 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@063C = 063F            </action>
            <action>audiocpu.mq@7F00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
momokoe.xml

Code: Select all

<!-- Momoko 120% (English text) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@38D1 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@38D1 = 32</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@2657 = 18</action> <!-- escalator -->
            <action>maincpu.mb@2671 = 01</action> <!-- timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@2657 = 28</action>
            <action>maincpu.mb@2671 = 12</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="on">
            <action>maincpu.md@2411 = 28A630CD        </action>
            <action>maincpu.mq@A630 = FFFFC962CB7E000E</action>
            <!--
            A630 | 0E xx : ld   c,$xx
            A632 | 7E    : ld   a,(hl)
            A633 | CB 62 : bit  4,d
            A635 | C9    : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@A631 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2411 =         2862CB7E</action>
            <action>maincpu.mq@A630 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <!-- enable landing check -->
            <action>maincpu.mb@1665 = 00</action>
            <!-- main routine -->
            <action>maincpu.md@11B0 = C9A640CD        </action>
            <action>maincpu.mq@A640 = 1E3AC02221C02032</action>
            <action>maincpu.mq@A648 = 7EC82E022005FEC0</action>
            <action>maincpu.mq@A650 = FFFFFFC977AFC8A7</action>
            <!--
            A640 | 32 20 C0 : ld   ($C020),a
            A643 | 21 22 C0 : ld   hl,$C022
            A646 | 3A 1E C0 : ld   a,($C01E)
            A649 | FE 05    : cp   $05
            A64B | 20 02    : jr   nz,$A64F
            A64D | 2E C8    : ld   l,$C8
            A64F | 7E       : ld   a,(hl)
            A650 | A7       : and  a
            A651 | C8       : ret  z
            A652 | AF       : xor  a
            A653 | 77       : ld   (hl),a
            A654 | C9       : ret
            -->
            <!-- adjust landing in level 5 -->
            <action>maincpu.md@1A61 = 04A660C3        </action>
            <action>maincpu.mq@A660 = 1B3E03301BFE7E35</action>
            <action>maincpu.mq@A668 = FFFFFFFF1A52C377</action>
            <!--
            A660 | 35       : dec  (hl)
            A661 | 7E       : ld   a,(hl)
            A662 | FE 1B    : cp   $1B
            A664 | 30 03    : jr   nc,$A669
            A666 | 3E 1B    : ld   a,$1B
            A668 | 77       : ld   (hl),a
            A669 | C3 52 1A : jp   $1A52
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@1665 = 19              </action>
            <action>maincpu.md@11B0 = C9C02032        </action>
            <action>maincpu.mq@A640 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A648 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A650 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@1A61 = 04EE1835        </action>
            <action>maincpu.mq@A660 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A668 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- credit sound (code 0x41) doesn't stop by sound stop button? -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0016 = A670            </action>
            <action>maincpu.mq@A670 = 003AD40432C10021</action>
            <action>maincpu.mq@A678 = 20F7FEF62847B8D4</action>
            <action>maincpu.mq@A680 = FE340120FBFE3501</action>
            <action>maincpu.mq@A688 = FE0618F03E0420FD</action>
            <action>maincpu.mq@A690 = 787786103E0520FE</action>
            <action>maincpu.mq@A698 = FE06187E0320EFFE</action>
            <action>maincpu.mq@A6A0 = D40632803E0520DF</action>
            <action>maincpu.mq@A6A8 = FFFFFFFFFFFFC918</action>
            <!--
            A730 | 21 00 C1 : ld   hl,$C100  // sound code address
            A733 | 32 04 D4 : ld   ($D404),a // watchdog
            A736 | 3A 00 D4 : ld   a,($D400) // read input
            A739 | B8       : cp   b
            A73A | 47       : ld   b,a
            A73B | 28 F6    : jr   z,$A733
            A73D | FE F7    : cp   $F7
            A73F | 20 01    : jr   nz,$A742
            A741 | 35       : dec  (hl)      // decrease code -01
            A742 | FE FB    : cp   $FB
            A744 | 20 01    : jr   nz,$A747
            A746 | 34       : inc  (hl)      // increase code +01
            A747 | FE FD    : cp   $FD
            A749 | 20 04    : jr   nz,$A74F
            A74B | 3E F0    : ld   a,$F0     // decrease code -10
            A74D | 18 06    : jr   $A755
            A74F | FE FE    : cp   $FE
            A751 | 20 05    : jr   nz,$A758
            A753 | 3E 10    : ld   a,$10     // increase code +10
            A755 | 86       : add  a,(hl)
            A756 | 77       : ld   (hl),a
            A757 | 78       : ld   a,b
            A758 | FE EF    : cp   $EF
            A75A | 20 03    : jr   nz,$A75F
            A75C | 7E       : ld   a,(hl)    // play sound
            A75D | 18 06    : jr   $A765
            A75F | FE DF    : cp   $DF
            A761 | 20 05    : jr   nz,$A768
            A763 | 3E 80    : ld   a,$80     // stop sound
            A765 | 32 06 D4 : ld   ($D406),a // send sound code
            A768 | 18 C9    : jr   $A733
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.mw@063C = 7F00            </action>
            <action>audiocpu.mq@7F00 = FFC90AB9CD063FCD</action>
            <!--
            7F00 | CD 3F 06 : call $063F // music
            7F03 | CD B9 0A : call $0AB9 // sfx
            7F06 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- momoko 120 percent 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@C100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@0016 = 1C5A            </action>
            <action> maincpu.mq@A670 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A678 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A680 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A688 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A690 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A698 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A6A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A6A8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@063C = 063F            </action>
            <action>audiocpu.mq@7F00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
momokob.xml

Code: Select all

<!-- Momoko 120% (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@38D1 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@38D1 = 32</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@263C = 18</action> <!-- escalator -->
            <action>maincpu.mb@2656 = 01</action> <!-- timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@263C = 28</action>
            <action>maincpu.mb@2656 = 12</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="on">
            <action>maincpu.md@23F6 = 28A6F0CD        </action>
            <action>maincpu.mq@A6F0 = FFFFC962CB7E000E</action>
            <!--
            A6F0 | 0E xx : ld   c,$xx
            A6F2 | 7E    : ld   a,(hl)
            A6F3 | CB 62 : bit  4,d
            A6F5 | C9    : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@A6F1 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@23F6 =         2862CB7E</action>
            <action>maincpu.mq@A6F0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <!-- enable landing check -->
            <action>maincpu.mb@1665 = 00</action>
            <!-- main routine -->
            <action>maincpu.md@11B0 = C9A700CD        </action>
            <action>maincpu.mq@A700 = 1E3AC02221C02032</action>
            <action>maincpu.mq@A708 = 7EC82E022005FEC0</action>
            <action>maincpu.mq@A710 = FFFFFFC977AFC8A7</action>
            <!--
            A700 | 32 20 C0 : ld   ($C020),a
            A703 | 21 22 C0 : ld   hl,$C022
            A706 | 3A 1E C0 : ld   a,($C01E)
            A709 | FE 05    : cp   $05
            A70B | 20 02    : jr   nz,$A70F
            A70D | 2E C8    : ld   l,$C8
            A70F | 7E       : ld   a,(hl)
            A710 | A7       : and  a
            A711 | C8       : ret  z
            A712 | AF       : xor  a
            A713 | 77       : ld   (hl),a
            A714 | C9       : ret
            -->
            <!-- adjust landing in level 5 -->
            <action>maincpu.md@1A61 = 04A720C3        </action>
            <action>maincpu.mq@A720 = 1B3E03301BFE7E35</action>
            <action>maincpu.mq@A728 = FFFFFFFF1A52C377</action>
            <!--
            A720 | 35       : dec  (hl)
            A721 | 7E       : ld   a,(hl)
            A722 | FE 1B    : cp   $1B
            A724 | 30 03    : jr   nc,$A729
            A726 | 3E 1B    : ld   a,$1B
            A728 | 77       : ld   (hl),a
            A729 | C3 52 1A : jp   $1A52
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@1665 = 19              </action>
            <action>maincpu.md@11B0 = C9C02032        </action>
            <action>maincpu.mq@A700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A708 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@1A61 = 04EE1835        </action>
            <action>maincpu.mq@A720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@A728 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- credit sound (code 0x41) doesn't stop by sound stop button? -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0016 = A730            </action>
            <action>maincpu.mq@A730 = 003AD40432C10021</action>
            <action>maincpu.mq@A738 = 20F7FEF62847B8D4</action>
            <action>maincpu.mq@A740 = FE340120FBFE3501</action>
            <action>maincpu.mq@A748 = FE0618F03E0420FD</action>
            <action>maincpu.mq@A750 = 787786103E0520FE</action>
            <action>maincpu.mq@A758 = FE06187E0320EFFE</action>
            <action>maincpu.mq@A760 = D40632803E0520DF</action>
            <action>maincpu.mq@A768 = FFFFFFFFFFFFC918</action>
            <!--
            A730 | 21 00 C1 : ld   hl,$C100  // sound code address
            A733 | 32 04 D4 : ld   ($D404),a // watchdog
            A736 | 3A 00 D4 : ld   a,($D400) // read input
            A739 | B8       : cp   b
            A73A | 47       : ld   b,a
            A73B | 28 F6    : jr   z,$A733
            A73D | FE F7    : cp   $F7
            A73F | 20 01    : jr   nz,$A742
            A741 | 35       : dec  (hl)      // decrease code -01
            A742 | FE FB    : cp   $FB
            A744 | 20 01    : jr   nz,$A747
            A746 | 34       : inc  (hl)      // increase code +01
            A747 | FE FD    : cp   $FD
            A749 | 20 04    : jr   nz,$A74F
            A74B | 3E F0    : ld   a,$F0     // decrease code -10
            A74D | 18 06    : jr   $A755
            A74F | FE FE    : cp   $FE
            A751 | 20 05    : jr   nz,$A758
            A753 | 3E 10    : ld   a,$10     // increase code +10
            A755 | 86       : add  a,(hl)
            A756 | 77       : ld   (hl),a
            A757 | 78       : ld   a,b
            A758 | FE EF    : cp   $EF
            A75A | 20 03    : jr   nz,$A75F
            A75C | 7E       : ld   a,(hl)    // play sound
            A75D | 18 06    : jr   $A765
            A75F | FE DF    : cp   $DF
            A761 | 20 05    : jr   nz,$A768
            A763 | 3E 80    : ld   a,$80     // stop sound
            A765 | 32 06 D4 : ld   ($D406),a // send sound code
            A768 | 18 C9    : jr   $A733
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.mw@063C = 7F00            </action>
            <action>audiocpu.mq@7F00 = FFC90AB9CD063FCD</action>
            <!--
            7F00 | CD 3F 06 : call $063F // music
            7F03 | CD B9 0A : call $0AB9 // sfx
            7F06 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- momoko 120 percent 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@C100</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@0016 = 1C5A            </action>
            <action> maincpu.mq@A730 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A738 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A740 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A748 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A750 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A758 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A760 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@A768 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@063C = 063F            </action>
            <action>audiocpu.mq@7F00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply