Page 1 of 1

[momoko] Momoko 120%

Posted: Tue Dec 07, 2021 10:06 am
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>

[momoko] Momoko 120% (update)

Posted: Sun Nov 06, 2022 10:07 am
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.

[momoko]+ Momoko 120%

Posted: Thu Feb 22, 2024 9:20 am
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>