Page 1 of 1

[pinbo] Pinbo

Posted: Tue Jul 27, 2021 9:47 am
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.

[pinbo]+ Pinbo

Posted: Thu May 02, 2024 2:53 pm
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.