pow.xml
Code: Select all
<!-- P.O.W. - Prisoners of War (US version 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@10180 = 60</action> <!-- attack -->
<action>maincpu.mb@10758 = 60</action> <!-- knife -->
<action>maincpu.mb@10B7E = 60</action> <!-- bomb -->
<action>maincpu.mb@10FC0 = 60</action> <!-- tank -->
<action>maincpu.mb@11464 = 60</action> <!-- crane -->
</script>
<script state="off">
<action>maincpu.mb@10180 = 6E</action>
<action>maincpu.mb@10758 = 6E</action>
<action>maincpu.mb@10B7E = 6E</action>
<action>maincpu.mb@10FC0 = 6E</action>
<action>maincpu.mb@11464 = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@147C = 6D</action> <!-- punch -->
<action>maincpu.mb@1494 = 6D</action> <!-- kick -->
</script>
<script state="off">
<action>maincpu.mb@147C = 66</action>
<action>maincpu.mb@1494 = 66</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mq@014D8 = 4EB9000193C06E00</action>
<action>maincpu.mq@193C0 = 024300FFB1FC0004</action>
<action>maincpu.mq@193C8 = 00606E0A0C2800FF</action>
<action>maincpu.mq@193D0 = 002466024243B642</action>
<action>maincpu.mq@193D8 = 4E75FFFFFFFFFFFF</action>
<!--
193C0 | 0243 00FF : andi.w #$ff, D3
193C4 | B1FC 0004 0060 : cmpa.l #$40060, A0 // check player or others
193CA | 6E0A : bgt $193d6
193CC | 0C28 00FF 0024 : cmpi.b #-$1, ($24,A0) // check jump flag
193D2 | 6602 : bne $193d6
193D4 | 4243 : clr.w D3
193D6 | B642 : cmp.w D2, D3
193D8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@014D8 = 024300FFB6426E00</action>
<action>maincpu.mq@193C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- 0x3a : boot jingle, 0x43 - 0x71 : music, 0x78 - 0xbf : sfx, 0xc0 - 0xd5 : sample -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@004BE = 4EF9000193E04A39</action>
<action>maincpu.mq@193E0 = 41F90004000043F9</action>
<action>maincpu.mq@193E8 = 0008000042101200</action>
<action>maincpu.mq@193F0 = 10290001B20067F6</action>
<action>maincpu.mq@193F8 = 0C0000FB66025310</action>
<action>maincpu.mq@19400 = 0C0000F766025210</action>
<action>maincpu.mq@19408 = 0C0000FD66040410</action>
<action>maincpu.mq@19410 = 00100C0000FE6604</action>
<action>maincpu.mq@19418 = 061000100C0000EF</action>
<action>maincpu.mq@19420 = 660212900C0000DF</action>
<action>maincpu.mq@19428 = 6602421160C0FFFF</action>
<!--
193E0 | 41F9 0004 0000 : lea $40000.l, A0 // sound code address
193E6 | 43F9 0008 0000 : lea $80000.l, A1 // sound latch address
193EC | 4210 : clr.b (A0) // initialize sound code
193EE | 1200 : move.b D0, D1
193F0 | 1029 0001 : move.b ($1,A1), D0 // read input ($80001)
193F4 | B200 : cmp.b D0, D1
193F6 | 67F6 : beq $193ee
193F8 | 0C00 00FB : cmpi.b #-$5, D0
193FC | 6602 : bne $19400
193FE | 5310 : subq.b #1, (A0) // decrease code -01
19400 | 0C00 00F7 : cmpi.b #-$9, D0
19404 | 6602 : bne $19408
19406 | 5210 : addq.b #1, (A0) // increase code +01
19408 | 0C00 00FD : cmpi.b #-$3, D0
1940C | 6604 : bne $19412
1940E | 0410 0010 : subi.b #$10, (A0) // decrease code -10
19412 | 0C00 00FE : cmpi.b #-$2, D0
19416 | 6604 : bne $1941c
19418 | 0610 0010 : addi.b #$10, (A0) // increase code +10
1941C | 0C00 00EF : cmpi.b #-$11, D0
19420 | 6602 : bne $19424
19422 | 1290 : move.b (A0), (A1) // play sound
19424 | 0C00 00DF : cmpi.b #-$21, D0
19428 | 6602 : bne $1942c
1942A | 4211 : clr.b (A1) // stop sound
1942C | 60C0 : bra $193ee
-->
<action>soundcpu.md@0827 = 00E0D0CD </action>
<action>soundcpu.mq@E0D0 = 80D30F20A7F8003A</action>
<action>soundcpu.mq@E0D8 = CD80D3803E0091CD</action>
<action>soundcpu.mq@E0E0 = 32AF470000C30091</action>
<action>soundcpu.mq@E0E8 = 78F12732013EF115</action>
<action>soundcpu.mq@E0F0 = FFFFFFFFFFFFFFC9</action>
<!--
E0D0 | 3A 00 F8 : ld a,($F800) // read sound code from maincpu
E0D3 | A7 : and a
E0D4 | 20 0F : jr nz,$E0E5
E0D6 | D3 80 : out ($80),a // reset sample
E0D8 | CD 91 00 : call $0091
E0DB | 3E 80 : ld a,$80 // enable sample
E0DD | D3 80 : out ($80),a
E0DF | CD 91 00 : call $0091
E0E2 | C3 00 00 : jp $0000 // reset soundcpu
E0E5 | 47 : ld b,a
E0E6 | AF : xor a // initialize sound flags
E0E7 | 32 15 F1 : ld ($F115),a
E0EA | 3E 01 : ld a,$01
E0EC | 32 27 F1 : ld ($F127),a
E0EF | 78 : ld a,b
E0F0 | C9 : ret
-->
</script>
<script state="run">
<output format="----- p.o.w. 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@40000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@004be = 4A39000E00004A39</action>
<action> maincpu.mq@193E0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193E8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19400 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19408 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19410 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19418 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19420 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19428 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.md@00827 = 00F8003A </action>
<action>soundcpu.mq@0E0D0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0D8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0F0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action> maincpu.mw@045E = 0460</action> <!-- skip test -->
<action> maincpu.mw@0470 = 57B8</action> <!-- skip result -->
<action>soundcpu.mw@0B76 = 5A18</action>
</script>
<script state="off">
<action> maincpu.mw@045E = 61B2</action>
<action> maincpu.mw@0470 = 57BA</action>
<action>soundcpu.mw@0B76 = 013E</action>
</script>
</cheat>
</mamecheat>
powa.xml
Code: Select all
<!-- P.O.W. - Prisoners of War (US version 1, mask ROM sprites) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@10180 = 60</action> <!-- attack -->
<action>maincpu.mb@10758 = 60</action> <!-- knife -->
<action>maincpu.mb@10B7E = 60</action> <!-- bomb -->
<action>maincpu.mb@10FC0 = 60</action> <!-- tank -->
<action>maincpu.mb@11464 = 60</action> <!-- crane -->
</script>
<script state="off">
<action>maincpu.mb@10180 = 6E</action>
<action>maincpu.mb@10758 = 6E</action>
<action>maincpu.mb@10B7E = 6E</action>
<action>maincpu.mb@10FC0 = 6E</action>
<action>maincpu.mb@11464 = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@147C = 6D</action> <!-- punch -->
<action>maincpu.mb@1494 = 6D</action> <!-- kick -->
</script>
<script state="off">
<action>maincpu.mb@147C = 66</action>
<action>maincpu.mb@1494 = 66</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mq@014D8 = 4EB9000193C06E00</action>
<action>maincpu.mq@193C0 = 024300FFB1FC0004</action>
<action>maincpu.mq@193C8 = 00606E0A0C2800FF</action>
<action>maincpu.mq@193D0 = 002466024243B642</action>
<action>maincpu.mq@193D8 = 4E75FFFFFFFFFFFF</action>
<!--
193C0 | 0243 00FF : andi.w #$ff, D3
193C4 | B1FC 0004 0060 : cmpa.l #$40060, A0 // check player or others
193CA | 6E0A : bgt $193d6
193CC | 0C28 00FF 0024 : cmpi.b #-$1, ($24,A0) // check jump flag
193D2 | 6602 : bne $193d6
193D4 | 4243 : clr.w D3
193D6 | B642 : cmp.w D2, D3
193D8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@014D8 = 024300FFB6426E00</action>
<action>maincpu.mq@193C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- 0x3a : boot jingle, 0x43 - 0x71 : music, 0x78 - 0xbf : sfx, 0xc0 - 0xd5 : sample -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@004BE = 4EF9000193E04A39</action>
<action>maincpu.mq@193E0 = 41F90004000043F9</action>
<action>maincpu.mq@193E8 = 0008000042101200</action>
<action>maincpu.mq@193F0 = 10290001B20067F6</action>
<action>maincpu.mq@193F8 = 0C0000FB66025310</action>
<action>maincpu.mq@19400 = 0C0000F766025210</action>
<action>maincpu.mq@19408 = 0C0000FD66040410</action>
<action>maincpu.mq@19410 = 00100C0000FE6604</action>
<action>maincpu.mq@19418 = 061000100C0000EF</action>
<action>maincpu.mq@19420 = 660212900C0000DF</action>
<action>maincpu.mq@19428 = 6602421160C0FFFF</action>
<!--
193E0 | 41F9 0004 0000 : lea $40000.l, A0 // sound code address
193E6 | 43F9 0008 0000 : lea $80000.l, A1 // sound latch address
193EC | 4210 : clr.b (A0) // initialize sound code
193EE | 1200 : move.b D0, D1
193F0 | 1029 0001 : move.b ($1,A1), D0 // read input ($80001)
193F4 | B200 : cmp.b D0, D1
193F6 | 67F6 : beq $193ee
193F8 | 0C00 00FB : cmpi.b #-$5, D0
193FC | 6602 : bne $19400
193FE | 5310 : subq.b #1, (A0) // decrease code -01
19400 | 0C00 00F7 : cmpi.b #-$9, D0
19404 | 6602 : bne $19408
19406 | 5210 : addq.b #1, (A0) // increase code +01
19408 | 0C00 00FD : cmpi.b #-$3, D0
1940C | 6604 : bne $19412
1940E | 0410 0010 : subi.b #$10, (A0) // decrease code -10
19412 | 0C00 00FE : cmpi.b #-$2, D0
19416 | 6604 : bne $1941c
19418 | 0610 0010 : addi.b #$10, (A0) // increase code +10
1941C | 0C00 00EF : cmpi.b #-$11, D0
19420 | 6602 : bne $19424
19422 | 1290 : move.b (A0), (A1) // play sound
19424 | 0C00 00DF : cmpi.b #-$21, D0
19428 | 6602 : bne $1942c
1942A | 4211 : clr.b (A1) // stop sound
1942C | 60C0 : bra $193ee
-->
<action>soundcpu.md@0827 = 00E0D0CD </action>
<action>soundcpu.mq@E0D0 = 80D30F20A7F8003A</action>
<action>soundcpu.mq@E0D8 = CD80D3803E0091CD</action>
<action>soundcpu.mq@E0E0 = 32AF470000C30091</action>
<action>soundcpu.mq@E0E8 = 78F12732013EF115</action>
<action>soundcpu.mq@E0F0 = FFFFFFFFFFFFFFC9</action>
<!--
E0D0 | 3A 00 F8 : ld a,($F800) // read sound code from maincpu
E0D3 | A7 : and a
E0D4 | 20 0F : jr nz,$E0E5
E0D6 | D3 80 : out ($80),a // reset sample
E0D8 | CD 91 00 : call $0091
E0DB | 3E 80 : ld a,$80 // enable sample
E0DD | D3 80 : out ($80),a
E0DF | CD 91 00 : call $0091
E0E2 | C3 00 00 : jp $0000 // reset soundcpu
E0E5 | 47 : ld b,a
E0E6 | AF : xor a // initialize sound flags
E0E7 | 32 15 F1 : ld ($F115),a
E0EA | 3E 01 : ld a,$01
E0EC | 32 27 F1 : ld ($F127),a
E0EF | 78 : ld a,b
E0F0 | C9 : ret
-->
</script>
<script state="run">
<output format="----- p.o.w. 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@40000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@004BE = 4A39000E00004A39</action>
<action> maincpu.mq@193E0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193E8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19400 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19408 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19410 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19418 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19420 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19428 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.md@00827 = 00F8003A </action>
<action>soundcpu.mq@0E0D0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0D8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0F0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action> maincpu.mw@045E = 0460</action> <!-- skip test -->
<action> maincpu.mw@0470 = 57B8</action> <!-- skip result -->
<action>soundcpu.mw@0B76 = 5A18</action>
</script>
<script state="off">
<action> maincpu.mw@045E = 61B2</action>
<action> maincpu.mw@0470 = 57BA</action>
<action>soundcpu.mw@0B76 = 013E</action>
</script>
</cheat>
</mamecheat>
powj.xml
Code: Select all
<!-- Datsugoku - Prisoners of War (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@101B6 = 60</action> <!-- attack -->
<action>maincpu.mb@1078E = 60</action> <!-- knife -->
<action>maincpu.mb@10BB4 = 60</action> <!-- bomb -->
<action>maincpu.mb@10FF6 = 60</action> <!-- tank -->
<action>maincpu.mb@1149A = 60</action> <!-- crane -->
</script>
<script state="off">
<action>maincpu.mb@101B6 = 6E</action>
<action>maincpu.mb@1078E = 6E</action>
<action>maincpu.mb@10BB4 = 6E</action>
<action>maincpu.mb@10FF6 = 6E</action>
<action>maincpu.mb@1149A = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@0147C = 6D</action> <!-- punch -->
<action>maincpu.mb@01494 = 6D</action> <!-- kick -->
</script>
<script state="off">
<action>maincpu.mb@0147C = 66</action>
<action>maincpu.mb@01494 = 66</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mq@014D8 = 4EB9000194106E00</action>
<action>maincpu.mq@19410 = 024300FFB1FC0004</action>
<action>maincpu.mq@19418 = 00606E0A0C2800FF</action>
<action>maincpu.mq@19420 = 002466024243B642</action>
<action>maincpu.mq@19428 = 4E75FFFFFFFFFFFF</action>
<!--
19410 | 0243 00FF : andi.w #$ff, D3
19414 | B1FC 0004 0060 : cmpa.l #$40060, A0 // check player or others
1941A | 6E0A : bgt $19426
1941C | 0C28 00FF 0024 : cmpi.b #-$1, ($24,A0) // check jump flag
19422 | 6602 : bne $19426
19424 | 4243 : clr.w D3
19426 | B642 : cmp.w D2, D3
19428 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@014D8 = 024300FFB6426E00</action>
<action>maincpu.mq@19410 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@19418 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@19420 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@19428 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- 0x3a : boot jingle, 0x43 - 0x71 : music, 0x78 - 0xbf : sfx, 0xc0 - 0xd5 : sample -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@004BE = 4EF9000194304A39</action>
<action>maincpu.mq@19430 = 41F90004000043F9</action>
<action>maincpu.mq@19438 = 0008000042101200</action>
<action>maincpu.mq@19440 = 10290001B20067F6</action>
<action>maincpu.mq@19448 = 0C0000FB66025310</action>
<action>maincpu.mq@19450 = 0C0000F766025210</action>
<action>maincpu.mq@19458 = 0C0000FD66040410</action>
<action>maincpu.mq@19460 = 00100C0000FE6604</action>
<action>maincpu.mq@19468 = 061000100C0000EF</action>
<action>maincpu.mq@19470 = 660212900C0000DF</action>
<action>maincpu.mq@19478 = 6602421160C0FFFF</action>
<!--
19430 | 41F9 0004 0000 : lea $40000.l, A0 // sound code address
19436 | 43F9 0008 0000 : lea $80000.l, A1 // sound latch address
1943C | 4210 : clr.b (A0) // initialize sound code
1943E | 1200 : move.b D0, D1
19440 | 1029 0001 : move.b ($1,A1), D0 // read input ($80001)
19444 | B200 : cmp.b D0, D1
19446 | 67F6 : beq $1943e
19448 | 0C00 00FB : cmpi.b #-$5, D0
1944C | 6602 : bne $19450
1944E | 5310 : subq.b #1, (A0) // decrease code -01
19450 | 0C00 00F7 : cmpi.b #-$9, D0
19454 | 6602 : bne $19458
19456 | 5210 : addq.b #1, (A0) // increase code +01
19458 | 0C00 00FD : cmpi.b #-$3, D0
1945C | 6604 : bne $19462
1945E | 0410 0010 : subi.b #$10, (A0) // decrease code -10
19462 | 0C00 00FE : cmpi.b #-$2, D0
19466 | 6604 : bne $1946c
19468 | 0610 0010 : addi.b #$10, (A0) // increase code +10
1946C | 0C00 00EF : cmpi.b #-$11, D0
19470 | 6602 : bne $19474
19472 | 1290 : move.b (A0), (A1) // play sound
19474 | 0C00 00DF : cmpi.b #-$21, D0
19478 | 6602 : bne $1947c
1947A | 4211 : clr.b (A1) // stop sound
1947C | 60C0 : bra $1943e
-->
<action>soundcpu.md@0827 = 00E0D0CD </action>
<action>soundcpu.mq@E0D0 = 80D30F20A7F8003A</action>
<action>soundcpu.mq@E0D8 = CD80D3803E0091CD</action>
<action>soundcpu.mq@E0E0 = 32AF470000C30091</action>
<action>soundcpu.mq@E0E8 = 78F12732013EF115</action>
<action>soundcpu.mq@E0F0 = FFFFFFFFFFFFFFC9</action>
<!--
E0D0 | 3A 00 F8 : ld a,($F800) // read sound code from maincpu
E0D3 | A7 : and a
E0D4 | 20 0F : jr nz,$E0E5
E0D6 | D3 80 : out ($80),a // reset sample
E0D8 | CD 91 00 : call $0091
E0DB | 3E 80 : ld a,$80 // enable sample
E0DD | D3 80 : out ($80),a
E0DF | CD 91 00 : call $0091
E0E2 | C3 00 00 : jp $0000 // reset soundcpu
E0E5 | 47 : ld b,a
E0E6 | AF : xor a // initialize sound flags
E0E7 | 32 15 F1 : ld ($F115),a
E0EA | 3E 01 : ld a,$01
E0EC | 32 27 F1 : ld ($F127),a
E0EF | 78 : ld a,b
E0F0 | C9 : ret
-->
</script>
<script state="run">
<output format="----- datsugoku 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@40000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@004BE = 4A39000E00004A39</action>
<action> maincpu.mq@19430 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19438 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19440 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19448 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19450 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19458 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19460 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19468 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19470 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19478 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.md@00827 = 00F8003A </action>
<action>soundcpu.mq@0E0D0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0D8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0F0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action> maincpu.mw@045E = 0460</action> <!-- skip test -->
<action> maincpu.mw@0470 = 57CE</action> <!-- skip result -->
<action>soundcpu.mw@0B76 = 5A18</action>
</script>
<script state="off">
<action> maincpu.mw@045E = 61E6</action>
<action> maincpu.mw@0470 = 57D0</action>
<action>soundcpu.mw@0B76 = 013E</action>
</script>
</cheat>
</mamecheat>
powb.xml
Code: Select all
<!-- P.O.W. - Prisoners of War (bootleg of US version 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@10180 = 60</action> <!-- attack -->
<action>maincpu.mb@10758 = 60</action> <!-- knife -->
<action>maincpu.mb@10B7E = 60</action> <!-- bomb -->
<action>maincpu.mb@10FC0 = 60</action> <!-- tank -->
<action>maincpu.mb@11464 = 60</action> <!-- crane -->
</script>
<script state="off">
<action>maincpu.mb@10180 = 6E</action>
<action>maincpu.mb@10758 = 6E</action>
<action>maincpu.mb@10B7E = 6E</action>
<action>maincpu.mb@10FC0 = 6E</action>
<action>maincpu.mb@11464 = 6E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@147C = 6D</action> <!-- punch -->
<action>maincpu.mb@1494 = 6D</action> <!-- kick -->
</script>
<script state="off">
<action>maincpu.mb@147C = 66</action>
<action>maincpu.mb@1494 = 66</action>
</script>
</cheat>
<cheat desc="action speed up">
<script state="on">
<action>maincpu.mq@014D8 = 4EB9000193C06E00</action>
<action>maincpu.mq@193C0 = 024300FFB1FC0004</action>
<action>maincpu.mq@193C8 = 00606E0A0C2800FF</action>
<action>maincpu.mq@193D0 = 002466024243B642</action>
<action>maincpu.mq@193D8 = 4E75FFFFFFFFFFFF</action>
<!--
193C0 | 0243 00FF : andi.w #$ff, D3
193C4 | B1FC 0004 0060 : cmpa.l #$40060, A0 // check player or others
193CA | 6E0A : bgt $193d6
193CC | 0C28 00FF 0024 : cmpi.b #-$1, ($24,A0) // check jump flag
193D2 | 6602 : bne $193d6
193D4 | 4243 : clr.w D3
193D6 | B642 : cmp.w D2, D3
193D8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@014D8 = 024300FFB6426E00</action>
<action>maincpu.mq@193C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@193D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- 0x3a : boot jingle, 0x43 - 0x71 : music, 0x78 - 0xbf : sfx, 0xc0 - 0xd5 : sample -->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@004BE = 4EF9000193E04A39</action>
<action>maincpu.mq@193E0 = 41F90004000043F9</action>
<action>maincpu.mq@193E8 = 0008000042101200</action>
<action>maincpu.mq@193F0 = 10290001B20067F6</action>
<action>maincpu.mq@193F8 = 0C0000FB66025310</action>
<action>maincpu.mq@19400 = 0C0000F766025210</action>
<action>maincpu.mq@19408 = 0C0000FD66040410</action>
<action>maincpu.mq@19410 = 00100C0000FE6604</action>
<action>maincpu.mq@19418 = 061000100C0000EF</action>
<action>maincpu.mq@19420 = 660212900C0000DF</action>
<action>maincpu.mq@19428 = 6602421160C0FFFF</action>
<!--
193E0 | 41F9 0004 0000 : lea $40000.l, A0 // sound code address
193E6 | 43F9 0008 0000 : lea $80000.l, A1 // sound latch address
193EC | 4210 : clr.b (A0) // initialize sound code
193EE | 1200 : move.b D0, D1
193F0 | 1029 0001 : move.b ($1,A1), D0 // read input ($80001)
193F4 | B200 : cmp.b D0, D1
193F6 | 67F6 : beq $193ee
193F8 | 0C00 00FB : cmpi.b #-$5, D0
193FC | 6602 : bne $19400
193FE | 5310 : subq.b #1, (A0) // decrease code -01
19400 | 0C00 00F7 : cmpi.b #-$9, D0
19404 | 6602 : bne $19408
19406 | 5210 : addq.b #1, (A0) // increase code +01
19408 | 0C00 00FD : cmpi.b #-$3, D0
1940C | 6604 : bne $19412
1940E | 0410 0010 : subi.b #$10, (A0) // decrease code -10
19412 | 0C00 00FE : cmpi.b #-$2, D0
19416 | 6604 : bne $1941c
19418 | 0610 0010 : addi.b #$10, (A0) // increase code +10
1941C | 0C00 00EF : cmpi.b #-$11, D0
19420 | 6602 : bne $19424
19422 | 1290 : move.b (A0), (A1) // play sound
19424 | 0C00 00DF : cmpi.b #-$21, D0
19428 | 6602 : bne $1942c
1942A | 4211 : clr.b (A1) // stop sound
1942C | 60C0 : bra $193ee
-->
<action>soundcpu.md@0827 = 00E0D0CD </action>
<action>soundcpu.mq@E0D0 = 80D30F20A7F8003A</action>
<action>soundcpu.mq@E0D8 = CD80D3803E0091CD</action>
<action>soundcpu.mq@E0E0 = 32AF470000C30091</action>
<action>soundcpu.mq@E0E8 = 78F12732013EF115</action>
<action>soundcpu.mq@E0F0 = FFFFFFFFFFFFFFC9</action>
<!--
E0D0 | 3A 00 F8 : ld a,($F800) // read sound code from maincpu
E0D3 | A7 : and a
E0D4 | 20 0F : jr nz,$E0E5
E0D6 | D3 80 : out ($80),a // reset sample
E0D8 | CD 91 00 : call $0091
E0DB | 3E 80 : ld a,$80 // enable sample
E0DD | D3 80 : out ($80),a
E0DF | CD 91 00 : call $0091
E0E2 | C3 00 00 : jp $0000 // reset soundcpu
E0E5 | 47 : ld b,a
E0E6 | AF : xor a // initialize sound flags
E0E7 | 32 15 F1 : ld ($F115),a
E0EA | 3E 01 : ld a,$01
E0EC | 32 27 F1 : ld ($F127),a
E0EF | 78 : ld a,b
E0F0 | C9 : ret
-->
</script>
<script state="run">
<output format="----- p.o.w. 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@40000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@004BE = 4A39000E00004A39</action>
<action> maincpu.mq@193E0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193E8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@193F8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19400 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19408 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19410 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19418 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19420 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@19428 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.md@00827 = 00F8003A </action>
<action>soundcpu.mq@0E0D0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0D8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E0 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0E8 = FFFFFFFFFFFFFFFF</action>
<action>soundcpu.mq@0E0F0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action> maincpu.mw@045E = 0460</action> <!-- skip test -->
<action> maincpu.mw@0470 = 57B8</action> <!-- skip result -->
<action>soundcpu.mw@0B76 = 5A18</action>
</script>
<script state="off">
<action> maincpu.mw@045E = 61B2</action>
<action> maincpu.mw@0470 = 57BA</action>
<action>soundcpu.mw@0B76 = 013E</action>
</script>
</cheat>
</mamecheat>
sound test mode : Improved routine for sound cpu. Now you can stop "all" sound (music, sfx and sample) by sound stop button.