pbaction.xml
Code: Select all
<!-- Pinball Action (set 1) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.mq@40A9 = F50736DD0377DD3D</action>
<action>maincpu.mq@40B1 = 0000000000311AC3</action>
<!--
40A9 | 3D : dec a
40AA | DD 77 03 : ld (ix+$03),a // set y position
40AD | DD 36 07 F5 : ld (ix+$07),$F5 // set y speed
40B1 | C3 1A 31 : jp $311A
-->
</script>
<script state="off">
<action>maincpu.mq@40A9 = CDE52BB6CBC00621</action>
<action>maincpu.mq@40B1 = 4ECBE12D35CD1023</action>
</script>
</cheat>
<cheat desc="ball speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@31E0 = 199CC0CD </action> <!-- y-position -->
<action>maincpu.md@3250 = 199CC5CD </action> <!-- x-position -->
<action>maincpu.mq@9CC0 = 0166DD03180366DD</action>
<action>maincpu.mq@9CC8 = F00816A77AC8B37A</action>
<action>maincpu.mq@9CD0 = 0000000000C9F816</action>
<!--
9CC0 | DD 66 03 : ld h,(ix+$03) // y position
9CC3 | 18 03 : jr $9CC8
9CC5 | DD 66 01 : ld h,(ix+$01) // x position
9CC8 | 7A : ld a,d
9CC9 | B3 : or e
9CCA | C8 : ret z
9CCB | 7A : ld a,d
9CCC | A7 : and a
9CCD | 16 xx : ld d,$xx
9CCF | F0 : ret p
9CD0 | 16 xx : ld d,$xx
9CD2 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@9CCE = param</action>
<action>maincpu.mb@9CD1 = -param</action>
</script>
<script state="off">
<action>maincpu.md@31E0 = 190366DD </action>
<action>maincpu.md@3250 = 190166DD </action>
<action>maincpu.mq@9CC0 = 0000000000000000</action>
<action>maincpu.mq@9CC8 = 0000000000000000</action>
<action>maincpu.mq@9CD0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.md@31B0 = CB9CE0CD </action>
<action>maincpu.mq@9CE0 = 5EDDE6003AC07021</action>
<action>maincpu.mq@9CE8 = 20A77E0B2847CB07</action>
<action>maincpu.mq@9CF0 = C90777DDF83E3409</action>
<action>maincpu.md@9CF8 = 00000000C97B77AF</action>
<!--
9CE0 | 21 70 C0 : ld hl,$C070
9CE3 | 3A 00 E6 : ld a,($E600)
9CE6 | DD 5E 07 : ld e,(ix+$07)
9CE9 | CB 47 : bit 0,a
9CEB | 28 0B : jr z,$9CF8
9CED | 7E : ld a,(hl)
9CEE | A7 : and a
9CEF | 20 09 : jr nz,$9CFA
9CF1 | 34 : inc (hl)
9CF2 | 3E F8 : ld a,$F8
9CF4 | DD 77 07 : ld (ix+$07),a
9CF7 | C9 : ret
9CF8 | AF : xor a
9CF9 | 77 : ld (hl),a
9CFA | 7B : ld a,e
9CFB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@31B0 = CB077EDD </action>
<action>maincpu.mq@9CE0 = 0000000000000000</action>
<action>maincpu.mq@9CE8 = 0000000000000000</action>
<action>maincpu.mq@9CF0 = 0000000000000000</action>
<action>maincpu.mq@9CF8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@1674 = 019D00C3 </action>
<action>maincpu.mq@9D00 = 47B8E6003AC10021</action>
<action>maincpu.mq@9D08 = FE35012008FEF928</action>
<action>maincpu.mq@9D10 = 032001FE34012010</action>
<action>maincpu.mq@9D18 = 3E052004FE06187E</action>
<action>maincpu.mq@9D20 = 0000DD18E8003201</action>
<!--
9D00 | 21 00 C1 : ld hl,$C100 // sound code address
9D03 | 3A 00 E6 : ld a,($E600) // read input
9D06 | B8 : cp b
9D07 | 47 : ld b,a
9D08 | 28 F9 : jr z,$9D03
9D0A | FE 08 : cp $08
9D0C | 20 01 : jr nz,$9D0F
9D0E | 35 : dec (hl) // decrease code -01
9D0F | FE 10 : cp $10
9D11 | 20 01 : jr nz,$9D14
9D13 | 34 : inc (hl) // increase code +01
9D14 | FE 01 : cp $01
9D16 | 20 03 : jr nz,$9D1B
9D18 | 7E : ld a,(hl) // play sound
9D19 | 18 06 : jr $9D21
9D1B | FE 04 : cp $04
9D1D | 20 05 : jr nz,$9D24
9D1F | 3E 01 : ld a,$01 // stop sound
9D21 | 32 00 E8 : ld ($E800),a // send sound code
9D24 | 18 DD : jr $9D03
-->
</script>
<script state="run">
<output format="----- pinball action sound test mode -----" line="10" align="center" />
<output format="button 1 : decrease code" line="11" align="center" />
<output format="button 2 : increase code" line="12" align="center" />
<output format="button 3 : play sound" line="13" align="center" />
<output format="button 4 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@1674 = 01D04021 </action>
<action>maincpu.mq@9D00 = 0000000000000000</action>
<action>maincpu.mq@9D08 = 0000000000000000</action>
<action>maincpu.mq@9D10 = 0000000000000000</action>
<action>maincpu.mq@9D18 = 0000000000000000</action>
<action>maincpu.mq@9D20 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
pbaction2.xml
Code: Select all
<!-- Pinball Action (set 2, encrypted) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.oq@40A5 = FFFF36DDFF77DD3D</action>
<action>maincpu.mq@40A5 = F507FFFF03FFFFFF</action>
<action>maincpu.oq@40AD = 0000000000FFFFC3</action>
<action>maincpu.mq@40AD = FFFFFFFFFF3116FF</action>
<!--
40A5 | 3D : dec a
40A6 | DD 77 03 : ld (ix+$03),a // set y position
40A9 | DD 36 07 F5 : ld (ix+$07),$F5 // set y speed
40AD | C3 16 31 : jp $3116
-->
</script>
<script state="off">
<action>maincpu.oq@40A5 = CDE52BB6CBC80E21</action>
<action>maincpu.mq@40A5 = 4D4D231E4BC00629</action>
<action>maincpu.oq@40AD = 4ECBE12D1DCD1804</action>
<action>maincpu.mq@40AD = 66E3C92D35C51024</action>
</script>
</cheat>
<cheat desc="ball speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.od@31DC = 19FFFFCD </action> <!-- y-position -->
<action>maincpu.md@31DC = FF9CC0FF </action>
<action>maincpu.od@324C = 19FFFFCD </action> <!-- x-position -->
<action>maincpu.md@324C = FF9CC5FF </action>
<action>maincpu.mq@9CC0 = 0166DD03180366DD</action>
<action>maincpu.mq@9CC8 = F00816A77AC8B37A</action>
<action>maincpu.mq@9CD0 = 0000000000C9F816</action>
<!--
9CC0 | DD 66 03 : ld h,(ix+$03) // y position
9CC3 | 18 03 : jr $9CC8
9CC5 | DD 66 01 : ld h,(ix+$01) // x position
9CC8 | 7A : ld a,d
9CC9 | B3 : or e
9CCA | C8 : ret z
9CCB | 7A : ld a,d
9CCC | A7 : and a
9CCD | 16 xx : ld d,$xx
9CCF | F0 : ret p
9CD0 | 16 xx : ld d,$xx
9CD2 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@9CCE = param</action>
<action>maincpu.mb@9CD1 = -param</action>
</script>
<script state="off">
<action>maincpu.od@31DC = 190B66DD </action>
<action>maincpu.md@31DC = 91034ED5 </action>
<action>maincpu.od@324C = 192166DD </action>
<action>maincpu.md@324C = 3901E6FD </action>
<action>maincpu.mq@9CC0 = 0000000000000000</action>
<action>maincpu.mq@9CC8 = 0000000000000000</action>
<action>maincpu.mq@9CD0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.od@31AC = CBFFFFCD </action>
<action>maincpu.md@31AC = FF9CE0FF </action>
<action>maincpu.mq@9CE0 = 5EDDE6003AC07021</action>
<action>maincpu.mq@9CE8 = 20A77E0B2847CB07</action>
<action>maincpu.mq@9CF0 = C90777DDF83E3409</action>
<action>maincpu.md@9CF8 = 00000000C97B77AF</action>
<!--
9CE0 | 21 70 C0 : ld hl,$C070
9CE3 | 3A 00 E6 : ld a,($E600)
9CE6 | DD 5E 07 : ld e,(ix+$07)
9CE9 | CB 47 : bit 0,a
9CEB | 28 0B : jr z,$9CF8
9CED | 7E : ld a,(hl)
9CEE | A7 : and a
9CEF | 20 09 : jr nz,$9CFA
9CF1 | 34 : inc (hl)
9CF2 | 3E F8 : ld a,$F8
9CF4 | DD 77 07 : ld (ix+$07),a
9CF7 | C9 : ret
9CF8 | AF : xor a
9CF9 | 77 : ld (hl),a
9CFA | 7B : ld a,e
9CFB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@31AC = CB0F7EDD </action>
<action>maincpu.md@31AC = C307FED5 </action>
<action>maincpu.mq@9CE0 = 0000000000000000</action>
<action>maincpu.mq@9CE8 = 0000000000000000</action>
<action>maincpu.mq@9CF0 = 0000000000000000</action>
<action>maincpu.mq@9CF8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.od@1675 = 01FFFFC3 </action>
<action>maincpu.md@1675 = FF9D00FF </action>
<action>maincpu.mq@9D00 = 47B8E6003AC10021</action>
<action>maincpu.mq@9D08 = FE35012008FEF928</action>
<action>maincpu.mq@9D10 = 032001FE34012010</action>
<action>maincpu.mq@9D18 = 3E052004FE06187E</action>
<action>maincpu.mq@9D20 = 0000DD18E8003201</action>
<!--
9D00 | 21 00 C1 : ld hl,$C100 // sound code address
9D03 | 3A 00 E6 : ld a,($E600) // read input
9D06 | B8 : cp b
9D07 | 47 : ld b,a
9D08 | 28 F9 : jr z,$9D03
9D0A | FE 08 : cp $08
9D0C | 20 01 : jr nz,$9D0F
9D0E | 35 : dec (hl) // decrease code -01
9D0F | FE 10 : cp $10
9D11 | 20 01 : jr nz,$9D14
9D13 | 34 : inc (hl) // increase code +01
9D14 | FE 01 : cp $01
9D16 | 20 03 : jr nz,$9D1B
9D18 | 7E : ld a,(hl) // play sound
9D19 | 18 06 : jr $9D21
9D1B | FE 04 : cp $04
9D1D | 20 05 : jr nz,$9D24
9D1F | 3E 01 : ld a,$01 // stop sound
9D21 | 32 00 E8 : ld ($E800),a // send sound code
9D24 | 18 DD : jr $9D03
-->
</script>
<script state="run">
<output format="----- pinball action sound test mode -----" line="10" align="center" />
<output format="button 1 : decrease code" line="11" align="center" />
<output format="button 2 : increase code" line="12" align="center" />
<output format="button 3 : play sound" line="13" align="center" />
<output format="button 4 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@1675 = 01D04021 </action>
<action>maincpu.md@1675 = 01D04021 </action>
<action>maincpu.mq@9D00 = 0000000000000000</action>
<action>maincpu.mq@9D08 = 0000000000000000</action>
<action>maincpu.mq@9D10 = 0000000000000000</action>
<action>maincpu.mq@9D18 = 0000000000000000</action>
<action>maincpu.mq@9D20 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
pbaction3.xml
Code: Select all
<!-- Pinball Action (set 3, encrypted) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.oq@40A5 = FFFF36DDFF77DD3D</action>
<action>maincpu.mq@40A5 = F507FFFF03FFFFFF</action>
<action>maincpu.oq@40AD = 0000000000FFFFC3</action>
<action>maincpu.mq@40AD = FFFFFFFFFF3116FF</action>
<!--
40A5 | 3D : dec a
40A6 | DD 77 03 : ld (ix+$03),a // set y position
40A9 | DD 36 07 F5 : ld (ix+$07),$F5 // set y speed
40AD | C3 16 31 : jp $3116
-->
</script>
<script state="off">
<action>maincpu.oq@40A5 = CDE52BB6CBC80E21</action>
<action>maincpu.mq@40A5 = 4D4D231E4BC00629</action>
<action>maincpu.oq@40AD = 4ECBE12D1DCD1804</action>
<action>maincpu.mq@40AD = 66E3C92D35C51024</action>
</script>
</cheat>
<cheat desc="ball speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.od@31DC = 19FFFFCD </action> <!-- y-position -->
<action>maincpu.md@31DC = FF9CC0FF </action>
<action>maincpu.od@324C = 19FFFFCD </action> <!-- x-position -->
<action>maincpu.md@324C = FF9CC5FF </action>
<action>maincpu.mq@9CC0 = 0166DD03180366DD</action>
<action>maincpu.mq@9CC8 = F00816A77AC8B37A</action>
<action>maincpu.mq@9CD0 = 0000000000C9F816</action>
<!--
9CC0 | DD 66 03 : ld h,(ix+$03) // y position
9CC3 | 18 03 : jr $9CC8
9CC5 | DD 66 01 : ld h,(ix+$01) // x position
9CC8 | 7A : ld a,d
9CC9 | B3 : or e
9CCA | C8 : ret z
9CCB | 7A : ld a,d
9CCC | A7 : and a
9CCD | 16 xx : ld d,$xx
9CCF | F0 : ret p
9CD0 | 16 xx : ld d,$xx
9CD2 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@9CCE = param</action>
<action>maincpu.mb@9CD1 = -param</action>
</script>
<script state="off">
<action>maincpu.od@31DC = 190B66DD </action>
<action>maincpu.md@31DC = 91034ED5 </action>
<action>maincpu.od@324C = 192166DD </action>
<action>maincpu.md@324C = 3901E6FD </action>
<action>maincpu.mq@9CC0 = 0000000000000000</action>
<action>maincpu.mq@9CC8 = 0000000000000000</action>
<action>maincpu.mq@9CD0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.od@31AC = CBFFFFCD </action>
<action>maincpu.md@31AC = FF9CE0FF </action>
<action>maincpu.mq@9CE0 = 5EDDE6003AC07021</action>
<action>maincpu.mq@9CE8 = 20A77E0B2847CB07</action>
<action>maincpu.mq@9CF0 = C90777DDF83E3409</action>
<action>maincpu.md@9CF8 = 00000000C97B77AF</action>
<!--
9CE0 | 21 70 C0 : ld hl,$C070
9CE3 | 3A 00 E6 : ld a,($E600)
9CE6 | DD 5E 07 : ld e,(ix+$07)
9CE9 | CB 47 : bit 0,a
9CEB | 28 0B : jr z,$9CF8
9CED | 7E : ld a,(hl)
9CEE | A7 : and a
9CEF | 20 09 : jr nz,$9CFA
9CF1 | 34 : inc (hl)
9CF2 | 3E F8 : ld a,$F8
9CF4 | DD 77 07 : ld (ix+$07),a
9CF7 | C9 : ret
9CF8 | AF : xor a
9CF9 | 77 : ld (hl),a
9CFA | 7B : ld a,e
9CFB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@31AC = CB0F7EDD </action>
<action>maincpu.md@31AC = C307FED5 </action>
<action>maincpu.mq@9CE0 = 0000000000000000</action>
<action>maincpu.mq@9CE8 = 0000000000000000</action>
<action>maincpu.mq@9CF0 = 0000000000000000</action>
<action>maincpu.mq@9CF8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.od@1675 = 01FFFFC3 </action>
<action>maincpu.md@1675 = FF9D00FF </action>
<action>maincpu.mq@9D00 = 47B8E6003AC10021</action>
<action>maincpu.mq@9D08 = FE35012008FEF928</action>
<action>maincpu.mq@9D10 = 032001FE34012010</action>
<action>maincpu.mq@9D18 = 3E052004FE06187E</action>
<action>maincpu.mq@9D20 = 0000DD18E8003201</action>
<!--
9D00 | 21 00 C1 : ld hl,$C100 // sound code address
9D03 | 3A 00 E6 : ld a,($E600) // read input
9D06 | B8 : cp b
9D07 | 47 : ld b,a
9D08 | 28 F9 : jr z,$9D03
9D0A | FE 08 : cp $08
9D0C | 20 01 : jr nz,$9D0F
9D0E | 35 : dec (hl) // decrease code -01
9D0F | FE 10 : cp $10
9D11 | 20 01 : jr nz,$9D14
9D13 | 34 : inc (hl) // increase code +01
9D14 | FE 01 : cp $01
9D16 | 20 03 : jr nz,$9D1B
9D18 | 7E : ld a,(hl) // play sound
9D19 | 18 06 : jr $9D21
9D1B | FE 04 : cp $04
9D1D | 20 05 : jr nz,$9D24
9D1F | 3E 01 : ld a,$01 // stop sound
9D21 | 32 00 E8 : ld ($E800),a // send sound code
9D24 | 18 DD : jr $9D03
-->
</script>
<script state="run">
<output format="----- pinball action sound test mode -----" line="10" align="center" />
<output format="button 1 : decrease code" line="11" align="center" />
<output format="button 2 : increase code" line="12" align="center" />
<output format="button 3 : play sound" line="13" align="center" />
<output format="button 4 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@1675 = 01D04021 </action>
<action>maincpu.md@1675 = 01D04021 </action>
<action>maincpu.mq@9D00 = 0000000000000000</action>
<action>maincpu.mq@9D08 = 0000000000000000</action>
<action>maincpu.mq@9D10 = 0000000000000000</action>
<action>maincpu.mq@9D18 = 0000000000000000</action>
<action>maincpu.mq@9D20 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
pbaction4.xml
Code: Select all
<!-- Pinball Action (set 4, encrypted) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.oq@40A5 = FFFF36DDFF77DD3D</action>
<action>maincpu.mq@40A5 = F507FFFF03FFFFFF</action>
<action>maincpu.oq@40AD = 0000000000FFFFC3</action>
<action>maincpu.mq@40AD = FFFFFFFFFF3116FF</action>
<!--
40A5 | 3D : dec a
40A6 | DD 77 03 : ld (ix+$03),a // set y position
40A9 | DD 36 07 F5 : ld (ix+$07),$F5 // set y speed
40AD | C3 16 31 : jp $3116
-->
</script>
<script state="off">
<action>maincpu.oq@40A5 = CDE52BB6CBC80E21</action>
<action>maincpu.mq@40A5 = 4D4D231E4BC00629</action>
<action>maincpu.oq@40AD = 4ECBE12D1DCD1804</action>
<action>maincpu.mq@40AD = 66E3C92D35C51024</action>
</script>
</cheat>
<cheat desc="ball speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.od@31DC = 19FFFFCD </action> <!-- y-position -->
<action>maincpu.md@31DC = FF9CC0FF </action>
<action>maincpu.od@324C = 19FFFFCD </action> <!-- x-position -->
<action>maincpu.md@324C = FF9CC5FF </action>
<action>maincpu.mq@9CC0 = 0166DD03180366DD</action>
<action>maincpu.mq@9CC8 = F00816A77AC8B37A</action>
<action>maincpu.mq@9CD0 = 0000000000C9F816</action>
<!--
9CC0 | DD 66 03 : ld h,(ix+$03) // y position
9CC3 | 18 03 : jr $9CC8
9CC5 | DD 66 01 : ld h,(ix+$01) // x position
9CC8 | 7A : ld a,d
9CC9 | B3 : or e
9CCA | C8 : ret z
9CCB | 7A : ld a,d
9CCC | A7 : and a
9CCD | 16 xx : ld d,$xx
9CCF | F0 : ret p
9CD0 | 16 xx : ld d,$xx
9CD2 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@9CCE = param</action>
<action>maincpu.mb@9CD1 = -param</action>
</script>
<script state="off">
<action>maincpu.od@31DC = 190B66DD </action>
<action>maincpu.md@31DC = 91034ED5 </action>
<action>maincpu.od@324C = 192166DD </action>
<action>maincpu.md@324C = 3901E6FD </action>
<action>maincpu.mq@9CC0 = 0000000000000000</action>
<action>maincpu.mq@9CC8 = 0000000000000000</action>
<action>maincpu.mq@9CD0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.od@31AC = CBFFFFCD </action>
<action>maincpu.md@31AC = FF9CE0FF </action>
<action>maincpu.mq@9CE0 = 5EDDE6003AC07021</action>
<action>maincpu.mq@9CE8 = 20A77E0B2847CB07</action>
<action>maincpu.mq@9CF0 = C90777DDF83E3409</action>
<action>maincpu.md@9CF8 = 00000000C97B77AF</action>
<!--
9CE0 | 21 70 C0 : ld hl,$C070
9CE3 | 3A 00 E6 : ld a,($E600)
9CE6 | DD 5E 07 : ld e,(ix+$07)
9CE9 | CB 47 : bit 0,a
9CEB | 28 0B : jr z,$9CF8
9CED | 7E : ld a,(hl)
9CEE | A7 : and a
9CEF | 20 09 : jr nz,$9CFA
9CF1 | 34 : inc (hl)
9CF2 | 3E F8 : ld a,$F8
9CF4 | DD 77 07 : ld (ix+$07),a
9CF7 | C9 : ret
9CF8 | AF : xor a
9CF9 | 77 : ld (hl),a
9CFA | 7B : ld a,e
9CFB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.od@31AC = CB0F7EDD </action>
<action>maincpu.md@31AC = C307FED5 </action>
<action>maincpu.mq@9CE0 = 0000000000000000</action>
<action>maincpu.mq@9CE8 = 0000000000000000</action>
<action>maincpu.mq@9CF0 = 0000000000000000</action>
<action>maincpu.mq@9CF8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.od@1675 = 01FFFFC3 </action>
<action>maincpu.md@1675 = FF9D00FF </action>
<action>maincpu.mq@9D00 = 47B8E6003AC10021</action>
<action>maincpu.mq@9D08 = FE35012008FEF928</action>
<action>maincpu.mq@9D10 = 032001FE34012010</action>
<action>maincpu.mq@9D18 = 3E052004FE06187E</action>
<action>maincpu.mq@9D20 = 0000DD18E8003201</action>
<!--
9D00 | 21 00 C1 : ld hl,$C100 // sound code address
9D03 | 3A 00 E6 : ld a,($E600) // read input
9D06 | B8 : cp b
9D07 | 47 : ld b,a
9D08 | 28 F9 : jr z,$9D03
9D0A | FE 08 : cp $08
9D0C | 20 01 : jr nz,$9D0F
9D0E | 35 : dec (hl) // decrease code -01
9D0F | FE 10 : cp $10
9D11 | 20 01 : jr nz,$9D14
9D13 | 34 : inc (hl) // increase code +01
9D14 | FE 01 : cp $01
9D16 | 20 03 : jr nz,$9D1B
9D18 | 7E : ld a,(hl) // play sound
9D19 | 18 06 : jr $9D21
9D1B | FE 04 : cp $04
9D1D | 20 05 : jr nz,$9D24
9D1F | 3E 01 : ld a,$01 // stop sound
9D21 | 32 00 E8 : ld ($E800),a // send sound code
9D24 | 18 DD : jr $9D03
-->
</script>
<script state="run">
<output format="----- pinball action sound test mode -----" line="10" align="center" />
<output format="button 1 : decrease code" line="11" align="center" />
<output format="button 2 : increase code" line="12" align="center" />
<output format="button 3 : play sound" line="13" align="center" />
<output format="button 4 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.od@1675 = 01D04021 </action>
<action>maincpu.md@1675 = 01D04021 </action>
<action>maincpu.mq@9D00 = 0000000000000000</action>
<action>maincpu.mq@9D08 = 0000000000000000</action>
<action>maincpu.mq@9D10 = 0000000000000000</action>
<action>maincpu.mq@9D18 = 0000000000000000</action>
<action>maincpu.mq@9D20 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
pbactiont.xml
Code: Select all
<!-- Pinball Action (Tecfri license) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.mq@40A5 = F50736DD0377DD3D</action>
<action>maincpu.mq@40AD = 00000000003116C3</action>
<!--
40A5 | 3D : dec a
40A6 | DD 77 03 : ld (ix+$03),a // set y position
40A9 | DD 36 07 F5 : ld (ix+$07),$F5 // set y speed
40AD | C3 16 31 : jp $3116
-->
</script>
<script state="off">
<action>maincpu.mq@40A5 = CDE52BB6CBC00621</action>
<action>maincpu.mq@40AD = 4ECBE12D35CD1024</action>
</script>
</cheat>
<cheat desc="ball speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@31DC = 19A000CD </action> <!-- y-position -->
<action>maincpu.md@324C = 19A005CD </action> <!-- x-position -->
<action>maincpu.mq@A000 = 0166DD03180366DD</action>
<action>maincpu.mq@A008 = F00816A77AC8B37A</action>
<action>maincpu.mq@A010 = 0000000000C9F816</action>
<!--
A000 | DD 66 03 : ld h,(ix+$03) // y position
A003 | 18 03 : jr $A008
A005 | DD 66 01 : ld h,(ix+$01) // x position
A008 | 7A : ld a,d
A009 | B3 : or e
A00A | C8 : ret z
A00B | 7A : ld a,d
A00C | A7 : and a
A00D | 16 xx : ld d,$xx
A00F | F0 : ret p
A010 | 16 xx : ld d,$xx
A012 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@A00E = param</action>
<action>maincpu.mb@A011 = -param</action>
</script>
<script state="off">
<action>maincpu.md@31DC = 190366DD </action>
<action>maincpu.md@324C = 190166DD </action>
<action>maincpu.mq@A000 = 0000000000000000</action>
<action>maincpu.mq@A008 = 0000000000000000</action>
<action>maincpu.mq@A010 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.md@31AC = CBA020CD </action>
<action>maincpu.mq@A020 = 5EDDE6003AC07021</action>
<action>maincpu.mq@A028 = 20A77E0B2847CB07</action>
<action>maincpu.mq@A030 = C90777DDF83E3409</action>
<action>maincpu.md@A038 = 00000000C97B77AF</action>
<!--
A020 | 21 70 C0 : ld hl,$C070
A023 | 3A 00 E6 : ld a,($E600)
A026 | DD 5E 07 : ld e,(ix+$07)
A029 | CB 47 : bit 0,a
A02B | 28 0B : jr z,$A038
A02D | 7E : ld a,(hl)
A02E | A7 : and a
A02F | 20 09 : jr nz,$A03A
A031 | 34 : inc (hl)
A032 | 3E F8 : ld a,$F8
A034 | DD 77 07 : ld (ix+$07),a
A037 | C9 : ret
A038 | AF : xor a
A039 | 77 : ld (hl),a
A03A | 7B : ld a,e
A03B | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@31AC = CB077EDD </action>
<action>maincpu.mq@A020 = 0000000000000000</action>
<action>maincpu.mq@A028 = 0000000000000000</action>
<action>maincpu.mq@A030 = 0000000000000000</action>
<action>maincpu.mq@A038 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@1675 = 01A040C3 </action>
<action>maincpu.mq@A040 = 47B8E6003AC10021</action>
<action>maincpu.mq@A048 = FE35012008FEF928</action>
<action>maincpu.mq@A050 = 032001FE34012010</action>
<action>maincpu.mq@A058 = 3E052004FE06187E</action>
<action>maincpu.mq@A060 = 0000DD18E8003201</action>
<!--
A040 | 21 00 C1 : ld hl,$C100 // sound code address
A043 | 3A 00 E6 : ld a,($E600) // read input
A046 | B8 : cp b
A047 | 47 : ld b,a
A048 | 28 F9 : jr z,$A043
A04A | FE 08 : cp $08
A04C | 20 01 : jr nz,$A04F
A04E | 35 : dec (hl) // decrease code -01
A04F | FE 10 : cp $10
A051 | 20 01 : jr nz,$A054
A053 | 34 : inc (hl) // increase code +01
A054 | FE 01 : cp $01
A056 | 20 03 : jr nz,$A05B
A058 | 7E : ld a,(hl) // play sound
A059 | 18 06 : jr $A061
A05B | FE 04 : cp $04
A05D | 20 05 : jr nz,$A064
A05F | 3E 01 : ld a,$01 // stop sound
A061 | 32 00 E8 : ld ($E800),a // send sound code
A064 | 18 DD : jr $A043
-->
</script>
<script state="run">
<output format="----- pinball action sound test mode -----" line="10" align="center" />
<output format="button 1 : decrease code" line="11" align="center" />
<output format="button 2 : increase code" line="12" align="center" />
<output format="button 3 : play sound" line="13" align="center" />
<output format="button 4 : stop sound" line="14" align="center" />
<output format="----------------------------" line="15" align="center" />
<output format="<< sound code %02X >>" line="17" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@1675 = 01D04021 </action>
<action>maincpu.mq@A040 = 0000000000000000</action>
<action>maincpu.mq@A048 = 0000000000000000</action>
<action>maincpu.mq@A050 = 0000000000000000</action>
<action>maincpu.mq@A058 = 0000000000000000</action>
<action>maincpu.mq@A060 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>