[pinbo] Pinbo

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: 862
Joined: Tue Dec 01, 2020 1:24 pm

[pinbo] Pinbo

Post by jman »

Code: Select all

<cheat desc="keep a ball">
    <script state="on">
        <action>maincpu.mq@756c = 129502a91095e7a9</action>
        <action>maincpu.mq@7574 = a26002e1d002839d</action>
        <!--
        756c | a9 e7    : lda #$e7
        756e | 95 10    : sta $10,x
        7570 | a9 02    : lda #$02
        7572 | 95 12    : sta $12,x
        7574 | 9d 83 02 : sta $0283,x
        7577 | d0 e1    : bne $755a
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@756c = 10009d02009d00a9</action>
        <action>maincpu.mq@7574 = a26002839d02039d</action>
    </script>
</cheat>

<cheat desc="no hit - flipper">
    <script state="on">
        <action>maincpu.mb@8e74 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8e74 = a9</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@b57e =         6eff404c</action>
        <action>maincpu.mq@bf40 = 8184808600a001a2</action>
        <action>maincpu.mq@bf48 = f4f081c5a81804ad</action>
        <action>maincpu.mq@bf50 = d001c9ca01d002c9</action>
        <action>maincpu.mq@bf58 = 4c8a04d020c9e801</action>
        <action>maincpu.mq@bf60 = 00a905d010c9ff68</action>
        <action>maincpu.mq@bf68 = bbbbff444c18008d</action>
        <!--
        ff40 | a2 01    : ldx #$01  // initialize sound value
        ff42 | a0 00    : ldy #$00  // initialize input value
        ff44 | 86 80    : stx $80
        ff46 | 84 81    : sty $81
        ff48 | ad 04 18 : lda $1804 // read input
        ff4b | a8       : tay
        ff4c | c5 81    : cmp $81
        ff4e | f0 f4    : beq $ff44
        ff50 | c9 02    : cmp #$02
        ff52 | d0 01    : bne $ff55
        ff54 | ca       : dex       // decrease code
        ff55 | c9 01    : cmp #$01
        ff57 | d0 01    : bne $ff5a
        ff59 | e8       : inx       // increase code
        ff5a | c9 20    : cmp #$20
        ff5c | d0 04    : bne $ff62
        ff5e | 8a       : txa       // play sound
        ff5f | 4c 68 ff : jmp $ff68
        ff62 | c9 10    : cmp #$10
        ff64 | d0 05    : bne $ff6b
        ff66 | a9 00    : lda #$00  // stop sound
        ff68 | 8d 00 18 : sta $1800 // send sound code
        ff6b | 4c 44 ff : jmp $ff44
        -->
    </script>
    <script state="run">
        <output format="----- pinbo sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code"               line="11" align="center" />
        <output format="right : increase code"              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@0080</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@b57e =         6e20ea58</action>
        <action>maincpu.mq@bf40 = bbbbbbbbbbbbbbbb</action>
        <action>maincpu.mq@bf48 = bbbbbbbbbbbbbbbb</action>
        <action>maincpu.mq@bf50 = bbbbbbbbbbbbbbbb</action>
        <action>maincpu.mq@bf58 = bbbbbbbbbbbbbbbb</action>
        <action>maincpu.mq@bf60 = bbbbbbbbbbbbbbbb</action>
        <action>maincpu.mq@bf68 = bbbbbbbbbbbbbbbb</action>
    </script>
</cheat>
"no hit - flipper" means "flipper doesn't be eaten by monster" but it requires more test.
jman
Posts: 862
Joined: Tue Dec 01, 2020 1:24 pm

[pinbo]+ Pinbo

Post by jman »

pinbo.xml

Code: Select all

<!-- Pinbo (set 1) -->
<mamecheat version="1">

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.mq@756C = 129502A91095E7A9</action>
            <action>maincpu.mq@7574 = A260EAE1D002839D</action>
            <!--
            756C | A9 E7    : lda #$e7
            756E | 95 10    : sta $10, x
            7570 | A9 02    : lda #$02
            7572 | 95 12    : sta $12, x
            7574 | 9D 83 02 : sta $0283, x
            7577 | D0 E1    : bne $755a
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@756C = 10009D02009D00A9</action>
            <action>maincpu.mq@7574 = A26002839D02039D</action>
        </script>
    </cheat>

    <cheat desc="no hit - flipper">
        <script state="on">
            <action>maincpu.mb@8E74 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8E74 = A9</action>
        </script>
    </cheat>

    <cheat desc="ball rises by button 1 + 2">
        <script state="on">
            <action>maincpu.mw@77B5 = 3F20            </action>
            <action>maincpu.mq@3F20 = A5169054E077F520</action>
            <action>maincpu.mq@3F28 = A50ED030C9302939</action>
            <action>maincpu.mq@3F30 = A906F030C930293A</action>
            <action>maincpu.mq@3F38 = FFFF6012951095F0</action>
            <!--
            3F20 | 20 F5 77 : jsr $77f5
            3F23 | E0 54    : cpx #$54   // ball or others?
            3F25 | 90 16    : bcc $3f3d
            3F27 | A5 39    : lda $39    // button check
            3F29 | 29 30    : and #$30
            3F2B | C9 30    : cmp #$30
            3F2D | D0 0E    : bne $3f3d
            3F2F | A5 3A    : lda $3a    // button check
            3F31 | 29 30    : and #$30
            3F33 | C9 30    : cmp #$30
            3F35 | F0 06    : beq $3f3d
            3F37 | A9 F0    : lda #$f0
            3F39 | 95 10    : sta $10, x
            3F3B | 95 12    : sta $12, x
            3F3D | 60       : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@77B5 = 77F5            </action>
            <action>maincpu.mq@3F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F38 = 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@B568 = 3F40            </action>
            <action>maincpu.mq@3F40 = F081C51804AD8185</action>
            <action>maincpu.mq@3F48 = 01D002C980A6A8F7</action>
            <action>maincpu.mq@3F50 = 08C9E801D001C9CA</action>
            <action>maincpu.mq@3F58 = 98AA10E9388A06D0</action>
            <action>maincpu.mq@3F60 = 1069188A06D004C9</action>
            <action>maincpu.mq@3F68 = 06F020C9808698AA</action>
            <action>maincpu.mq@3F70 = 008E00A205D010C9</action>
            <action>maincpu.mq@3F78 = FFFFFFFF3F404C18</action>
            <!--
            3F40 | 85 81    : sta $81
            3F42 | AD 04 18 : lda $1804 // read input
            3F45 | C5 81    : cmp $81
            3F47 | F0 F7    : beq $3f40
            3F49 | A8       : tay
            3F4A | A6 80    : ldx $80
            3F4C | C9 02    : cmp #$02
            3F4E | D0 01    : bne $3f51
            3F50 | CA       : dex       // decrease code -01
            3F51 | C9 01    : cmp #$01
            3F53 | D0 01    : bne $3f56
            3F55 | E8       : inx       // increase code +01
            3F56 | C9 08    : cmp #$08
            3F58 | D0 06    : bne $3f60
            3F5A | 8A       : txa       // decrease code -10
            3F5B | 38       : sec
            3F5C | E9 10    : sbc #$10
            3F5E | AA       : tax
            3F5F | 98       : tya
            3F60 | C9 04    : cmp #$04
            3F62 | D0 06    : bne $3f6a
            3F64 | 8A       : txa       // increase code +10
            3F65 | 18       : clc
            3F66 | 69 10    : adc #$10
            3F68 | AA       : tax
            3F69 | 98       : tya
            3F6A | 86 80    : stx $80
            3F6C | C9 20    : cmp #$20
            3F6E | F0 06    : beq $3f76 // play sound
            3F70 | C9 10    : cmp #$10
            3F72 | D0 05    : bne $3f79
            3F74 | A2 00    : ldx #$00  // stop sound
            3F76 | 8E 00 18 : stx $1800 // send sound code
            3F79 | 4C 40 3F : jmp $3f40
            -->
        </script>
        <script state="run">
            <output format="----- pinbo sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@B568 = 6181            </action>
            <action>maincpu.mq@3F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
pinboa.xml

Code: Select all

<!-- Pinbo (set 2) -->
<mamecheat version="1">

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.mq@75B7 = 129502A91095E7A9</action>
            <action>maincpu.mq@75BF = A260EAE1D002839D</action>
            <!--
            756C | A9 E7    : lda #$e7
            756E | 95 10    : sta $10, x
            7570 | A9 02    : lda #$02
            7572 | 95 12    : sta $12, x
            7574 | 9D 83 02 : sta $0283, x
            7577 | D0 E1    : bne $75a5
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@75B7 = 10009D02009D00A9</action>
            <action>maincpu.mq@75BF = A26002839D02039D</action>
        </script>
    </cheat>

    <cheat desc="no hit - flipper">
        <script state="on">
            <action>maincpu.mb@8EAB = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8EAB = A9</action>
        </script>
    </cheat>

    <cheat desc="ball rises by button 1 + 2">
        <script state="on">
            <action>maincpu.mw@7800 = 3F20            </action>
            <action>maincpu.mq@3F20 = A5169054E0784020</action>
            <action>maincpu.mq@3F28 = A50ED030C9302939</action>
            <action>maincpu.mq@3F30 = A906F030C930293A</action>
            <action>maincpu.mq@3F38 = FFFF6012951095F0</action>
            <!--
            3F20 | 20 40 78 : jsr $7840
            3F23 | E0 54    : cpx #$54   // ball or others?
            3F25 | 90 16    : bcc $3f3d
            3F27 | A5 39    : lda $39    // button check
            3F29 | 29 30    : and #$30
            3F2B | C9 30    : cmp #$30
            3F2D | D0 0E    : bne $3f3d
            3F2F | A5 3A    : lda $3a    // button check
            3F31 | 29 30    : and #$30
            3F33 | C9 30    : cmp #$30
            3F35 | F0 06    : beq $3f3d
            3F37 | A9 F0    : lda #$f0
            3F39 | 95 10    : sta $10, x
            3F3B | 95 12    : sta $12, x
            3F3D | 60       : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7800 = 7840            </action>
            <action>maincpu.mq@3F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F38 = 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@B555 = 3F40            </action>
            <action>maincpu.mq@3F40 = F081C51804AD8185</action>
            <action>maincpu.mq@3F48 = 01D002C980A6A8F7</action>
            <action>maincpu.mq@3F50 = 08C9E801D001C9CA</action>
            <action>maincpu.mq@3F58 = 98AA10E9388A06D0</action>
            <action>maincpu.mq@3F60 = 1069188A06D004C9</action>
            <action>maincpu.mq@3F68 = 06F020C9808698AA</action>
            <action>maincpu.mq@3F70 = 008E00A205D010C9</action>
            <action>maincpu.mq@3F78 = FFFFFFFF3F404C18</action>
            <!--
            3F40 | 85 81    : sta $81
            3F42 | AD 04 18 : lda $1804 // read input
            3F45 | C5 81    : cmp $81
            3F47 | F0 F7    : beq $3f40
            3F49 | A8       : tay
            3F4A | A6 80    : ldx $80
            3F4C | C9 02    : cmp #$02
            3F4E | D0 01    : bne $3f51
            3F50 | CA       : dex       // decrease code -01
            3F51 | C9 01    : cmp #$01
            3F53 | D0 01    : bne $3f56
            3F55 | E8       : inx       // increase code +01
            3F56 | C9 08    : cmp #$08
            3F58 | D0 06    : bne $3f60
            3F5A | 8A       : txa       // decrease code -10
            3F5B | 38       : sec
            3F5C | E9 10    : sbc #$10
            3F5E | AA       : tax
            3F5F | 98       : tya
            3F60 | C9 04    : cmp #$04
            3F62 | D0 06    : bne $3f6a
            3F64 | 8A       : txa       // increase code +10
            3F65 | 18       : clc
            3F66 | 69 10    : adc #$10
            3F68 | AA       : tax
            3F69 | 98       : tya
            3F6A | 86 80    : stx $80
            3F6C | C9 20    : cmp #$20
            3F6E | F0 06    : beq $3f76 // play sound
            3F70 | C9 10    : cmp #$10
            3F72 | D0 05    : bne $3f79
            3F74 | A2 00    : ldx #$00  // stop sound
            3F76 | 8E 00 18 : stx $1800 // send sound code
            3F79 | 4C 40 3F : jmp $3f40
            -->
        </script>
        <script state="run">
            <output format="----- pinbo sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@B555 = 6181            </action>
            <action>maincpu.mq@3F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
pinbos.xml

Code: Select all

<!-- Pinbo (bootleg) -->
<mamecheat version="1">

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.mq@75B7 = 129502A91095E7A9</action>
            <action>maincpu.mq@75BF = A260EAE1D002839D</action>
            <!--
            756C | A9 E7    : lda #$e7
            756E | 95 10    : sta $10, x
            7570 | A9 02    : lda #$02
            7572 | 95 12    : sta $12, x
            7574 | 9D 83 02 : sta $0283, x
            7577 | D0 E1    : bne $75a5
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@75B7 = 10009D02009D00A9</action>
            <action>maincpu.mq@75BF = A26002839D02039D</action>
        </script>
    </cheat>

    <cheat desc="no hit - flipper">
        <script state="on">
            <action>maincpu.mb@8EAB = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8EAB = A9</action>
        </script>
    </cheat>

    <cheat desc="ball rises by button 1 + 2">
        <script state="on">
            <action>maincpu.mw@7800 = 3F20            </action>
            <action>maincpu.mq@3F20 = A5169054E0784020</action>
            <action>maincpu.mq@3F28 = A50ED030C9302939</action>
            <action>maincpu.mq@3F30 = A906F030C930293A</action>
            <action>maincpu.mq@3F38 = FFFF6012951095F0</action>
            <!--
            3F20 | 20 40 78 : jsr $7840
            3F23 | E0 54    : cpx #$54   // ball or others?
            3F25 | 90 16    : bcc $3f3d
            3F27 | A5 39    : lda $39    // button check
            3F29 | 29 30    : and #$30
            3F2B | C9 30    : cmp #$30
            3F2D | D0 0E    : bne $3f3d
            3F2F | A5 3A    : lda $3a    // button check
            3F31 | 29 30    : and #$30
            3F33 | C9 30    : cmp #$30
            3F35 | F0 06    : beq $3f3d
            3F37 | A9 F0    : lda #$f0
            3F39 | 95 10    : sta $10, x
            3F3B | 95 12    : sta $12, x
            3F3D | 60       : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@7800 = 7840            </action>
            <action>maincpu.mq@3F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F38 = 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@B555 = 3F40            </action>
            <action>maincpu.mq@3F40 = F081C51804AD8185</action>
            <action>maincpu.mq@3F48 = 01D002C980A6A8F7</action>
            <action>maincpu.mq@3F50 = 08C9E801D001C9CA</action>
            <action>maincpu.mq@3F58 = 98AA10E9388A06D0</action>
            <action>maincpu.mq@3F60 = 1069188A06D004C9</action>
            <action>maincpu.mq@3F68 = 06F020C9808698AA</action>
            <action>maincpu.mq@3F70 = 008E00A205D010C9</action>
            <action>maincpu.mq@3F78 = FFFFFFFF3F404C18</action>
            <!--
            3F40 | 85 81    : sta $81
            3F42 | AD 04 18 : lda $1804 // read input
            3F45 | C5 81    : cmp $81
            3F47 | F0 F7    : beq $3f40
            3F49 | A8       : tay
            3F4A | A6 80    : ldx $80
            3F4C | C9 02    : cmp #$02
            3F4E | D0 01    : bne $3f51
            3F50 | CA       : dex       // decrease code -01
            3F51 | C9 01    : cmp #$01
            3F53 | D0 01    : bne $3f56
            3F55 | E8       : inx       // increase code +01
            3F56 | C9 08    : cmp #$08
            3F58 | D0 06    : bne $3f60
            3F5A | 8A       : txa       // decrease code -10
            3F5B | 38       : sec
            3F5C | E9 10    : sbc #$10
            3F5E | AA       : tax
            3F5F | 98       : tya
            3F60 | C9 04    : cmp #$04
            3F62 | D0 06    : bne $3f6a
            3F64 | 8A       : txa       // increase code +10
            3F65 | 18       : clc
            3F66 | 69 10    : adc #$10
            3F68 | AA       : tax
            3F69 | 98       : tya
            3F6A | 86 80    : stx $80
            3F6C | C9 20    : cmp #$20
            3F6E | F0 06    : beq $3f76 // play sound
            3F70 | C9 10    : cmp #$10
            3F72 | D0 05    : bne $3f79
            3F74 | A2 00    : ldx #$00  // stop sound
            3F76 | 8E 00 18 : stx $1800 // send sound code
            3F79 | 4C 40 3F : jmp $3f40
            -->
        </script>
        <script state="run">
            <output format="----- pinbo sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@B555 = 6181            </action>
            <action>maincpu.mq@3F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "ball rises by button 1 + 2" : Added new.
  • "sound test mode" : Added up/down key to increase/decrease code ±10.
Post Reply