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="<< sound code %02X >>" 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="<< sound code %02X >>" 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="<< sound code %02X >>" 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>