dangar.xml
Code: Select all
<!-- Ufo Robo Dangar (4/09/1987) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@4643 = A10A</action> <!-- wave -->
<action>maincpu.mw@4674 = A10A</action> <!-- bullet -->
<action>maincpu.mw@9EF7 = A10A</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mw@4643 = A08D</action>
<action>maincpu.mw@4674 = A08D</action>
<action>maincpu.mw@9EF7 = A093</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E1B = 00</action>
<action>maincpu.mb@482A = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1E1B = 20</action>
<action>maincpu.mb@482A = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@2027 = BE20 </action> <!-- single fighter -->
<action>maincpu.mw@2092 = BE20 </action> <!-- twin fighter 2 -->
<action>maincpu.mw@20FE = BE20 </action> <!-- twin fighter 2 (formation) -->
<action>maincpu.mw@217E = BE20 </action> <!-- twin fighter 3 -->
<action>maincpu.mw@21EA = BE20 </action> <!-- twin fighter 3 (formation) -->
<action>maincpu.mw@23C6 = BE20 </action> <!-- robot (formation) -->
<action>maincpu.mw@2493 = BE20 </action> <!-- robot -->
<action>maincpu.mw@283A = BE20 </action> <!-- ufo 1 -->
<action>maincpu.mw@2889 = BE20 </action> <!-- ufo 1 (formation) -->
<action>maincpu.mw@2935 = BE20 </action> <!-- ufo 2 -->
<action>maincpu.mw@2984 = BE20 </action> <!-- ufo 2 (formation) -->
<action>maincpu.mw@2A1E = BE20 </action> <!-- ufo 3 -->
<action>maincpu.mw@2A7B = BE20 </action> <!-- ufo 3 (formation) -->
<action>maincpu.mq@BE20 = 02200106B7E4003A</action>
<action>maincpu.mq@BE28 = 10C12C4FCDC50006</action>
<action>maincpu.mq@BE30 = FFFFFFFFFFFFC9F9</action>
<!--
BE20 | 3A 00 E4 : ld a,($E400) // check auto move flag
BE23 | B7 : or a
BE24 | 06 01 : ld b,$01
BE26 | 20 02 : jr nz,$BE2A
BE28 | 06 xx : ld b,$xx
BE2A | C5 : push bc
BE2B | CD 4F 2C : call $2C4F
BE2E | C1 : pop bc
BE2F | 10 F9 : djnz $BE2A
BE31 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@BE29 = param</action>
</script>
<script state="off">
<action>maincpu.mw@2027 = 2C4F </action>
<action>maincpu.mw@2092 = 2C4F </action>
<action>maincpu.mw@20FE = 2C4F </action>
<action>maincpu.mw@217E = 2C4F </action>
<action>maincpu.mw@21EA = 2C4F </action>
<action>maincpu.mw@23C6 = 2C4F </action>
<action>maincpu.mw@2493 = 2C4F </action>
<action>maincpu.mw@283A = 2C4F </action>
<action>maincpu.mw@2889 = 2C4F </action>
<action>maincpu.mw@2935 = 2C4F </action>
<action>maincpu.mw@2984 = 2C4F </action>
<action>maincpu.mw@2A1E = 2C4F </action>
<action>maincpu.mw@2A7B = 2C4F </action>
<action>maincpu.mq@BE20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
</script>
<script state="off">
<action>maincpu.mb@1077F = 04</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@4719 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4719 = 17</action>
</script>
</cheat>
<cheat desc="infinite formation attack">
<script state="on">
<action>maincpu.md@25B4 = 35BE80CD </action>
<action>maincpu.mq@BE80 = FFFFFFC934C0B77E</action>
<!--
BE80 | 7E : ld a,(hl)
BE81 | B7 : or a
BE82 | C0 : ret nz
BE83 | 34 : inc (hl)
BE84 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@25B4 = 35C8B77E </action>
<action>maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@0AEA = BE40 </action>
<action>maincpu.mq@BE40 = 2847B800DBE10021</action>
<action>maincpu.mq@BE48 = F7FE350120FBFEFA</action>
<action>maincpu.mq@BE50 = 3E0420FDFE340120</action>
<action>maincpu.mq@BE58 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@BE60 = 0320EFFE78778610</action>
<action>maincpu.mq@BE68 = 3E0420DFFE06187E</action>
<action>maincpu.mq@BE70 = FFFFFFCE1845D33F</action>
<!--
BE40 | 21 00 E1 : ld hl,$E100 // sound code address
BE43 | DB 00 : in a,($00) // read input
BE45 | B8 : cp b
BE46 | 47 : ld b,a
BE47 | 28 FA : jr z,$BE43
BE49 | FE FB : cp $FB
BE4B | 20 01 : jr nz,$BE4E
BE4D | 35 : dec (hl) // decrease code -01
BE4E | FE F7 : cp $F7
BE50 | 20 01 : jr nz,$BE53
BE52 | 34 : inc (hl) // increase code +01
BE53 | FE FD : cp $FD
BE55 | 20 04 : jr nz,$BE5B
BE57 | 3E F0 : ld a,$F0 // decrease code -10
BE59 | 18 06 : jr $BE61
BE5B | FE FE : cp $FE
BE5D | 20 05 : jr nz,$BE64
BE5F | 3E 10 : ld a,$10 // increase code +10
BE61 | 86 : add a,(hl)
BE62 | 77 : ld (hl),a
BE63 | 78 : ld a,b
BE64 | FE EF : cp $EF
BE66 | 20 03 : jr nz,$BE6B
BE68 | 7E : ld a,(hl) // play sound
BE69 | 18 06 : jr $BE71
BE6B | FE DF : cp $DF
BE6D | 20 04 : jr nz,$BE73
BE6F | 3E 3F : ld a,$3F // stop sound
BE71 | D3 45 : out ($45),a // send sound code
BE73 | 18 CE : jr $BE43
-->
</script>
<script state="run">
<output format="----- ufo robo dangar 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@E100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0AEA = 0A29 </action>
<action>maincpu.mq@BE40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B3 = 02E3</action>
</script>
<script state="off">
<action>maincpu.mw@01B3 = 01B8</action>
</script>
</cheat>
</mamecheat>
dangara.xml
Code: Select all
<!-- Ufo Robo Dangar (12/1/1986) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@4643 = A10A</action> <!-- wave -->
<action>maincpu.mw@4674 = A10A</action> <!-- bullet -->
<action>maincpu.mw@9EF7 = A10A</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mw@4643 = A08D</action>
<action>maincpu.mw@4673 = A08D</action>
<action>maincpu.mw@9EF7 = A093</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E1B = 00</action>
<action>maincpu.mb@482A = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1E1B = 20</action>
<action>maincpu.mb@482A = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@2027 = BE20 </action> <!-- single fighter -->
<action>maincpu.mw@2093 = BE20 </action> <!-- twin fighter 2 -->
<action>maincpu.mw@20FF = BE20 </action> <!-- twin fighter 2 (formation) -->
<action>maincpu.mw@217E = BE20 </action> <!-- twin fighter 3 -->
<action>maincpu.mw@21EA = BE20 </action> <!-- twin fighter 3 (formation) -->
<action>maincpu.mw@23C6 = BE20 </action> <!-- robot (formation) -->
<action>maincpu.mw@2493 = BE20 </action> <!-- robot -->
<action>maincpu.mw@283A = BE20 </action> <!-- ufo 1 -->
<action>maincpu.mw@2889 = BE20 </action> <!-- ufo 1 (formation) -->
<action>maincpu.mw@2935 = BE20 </action> <!-- ufo 2 -->
<action>maincpu.mw@2984 = BE20 </action> <!-- ufo 2 (formation) -->
<action>maincpu.mw@2A1E = BE20 </action> <!-- ufo 3 -->
<action>maincpu.mw@2A7B = BE20 </action> <!-- ufo 3 (formation) -->
<action>maincpu.mq@BE20 = 02200106B7E4003A</action>
<action>maincpu.mq@BE28 = 10C12C4FCDC50006</action>
<action>maincpu.mq@BE30 = FFFFFFFFFFFFC9F9</action>
<!--
BE20 | 3A 00 E4 : ld a,($E400) // check auto move flag
BE23 | B7 : or a
BE24 | 06 01 : ld b,$01
BE26 | 20 02 : jr nz,$BE2A
BE28 | 06 xx : ld b,$xx
BE2A | C5 : push bc
BE2B | CD 4F 2C : call $2C4F
BE2E | C1 : pop bc
BE2F | 10 F9 : djnz $BE2A
BE31 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@BE29 = param</action>
</script>
<script state="off">
<action>maincpu.mw@2027 = 2C4F </action>
<action>maincpu.mw@2093 = 2C4F </action>
<action>maincpu.mw@20FF = 2C4F </action>
<action>maincpu.mw@217E = 2C4F </action>
<action>maincpu.mw@21EA = 2C4F </action>
<action>maincpu.mw@23C6 = 2C4F </action>
<action>maincpu.mw@2493 = 2C4F </action>
<action>maincpu.mw@283A = 2C4F </action>
<action>maincpu.mw@2889 = 2C4F </action>
<action>maincpu.mw@2935 = 2C4F </action>
<action>maincpu.mw@2984 = 2C4F </action>
<action>maincpu.mw@2A1E = 2C4F </action>
<action>maincpu.mw@2A7B = 2C4F </action>
<action>maincpu.mq@BE20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
</script>
<script state="off">
<action>maincpu.mb@1077F = 04</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@4719 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4719 = 17</action>
</script>
</cheat>
<cheat desc="infinite formation attack">
<script state="on">
<action>maincpu.md@25B4 = 35BB80CD </action>
<action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
<!--
BB80 | 7E : ld a,(hl)
BB81 | B7 : or a
BB82 | C0 : ret nz
BB83 | 34 : inc (hl)
BB84 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@25B4 = 35C8B77E </action>
<action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@0AEA = BE40 </action>
<action>maincpu.mq@BE40 = 2847B800DBE10021</action>
<action>maincpu.mq@BE48 = F7FE350120FBFEFA</action>
<action>maincpu.mq@BE50 = 3E0420FDFE340120</action>
<action>maincpu.mq@BE58 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@BE60 = 0320EFFE78778610</action>
<action>maincpu.mq@BE68 = 3E0420DFFE06187E</action>
<action>maincpu.mq@BE70 = FFFFFFCE1845D33F</action>
<!--
BE40 | 21 00 E1 : ld hl,$E100 // sound code address
BE43 | DB 00 : in a,($00) // read input
BE45 | B8 : cp b
BE46 | 47 : ld b,a
BE47 | 28 FA : jr z,$BE43
BE49 | FE FB : cp $FB
BE4B | 20 01 : jr nz,$BE4E
BE4D | 35 : dec (hl) // decrease code -01
BE4E | FE F7 : cp $F7
BE50 | 20 01 : jr nz,$BE53
BE52 | 34 : inc (hl) // increase code +01
BE53 | FE FD : cp $FD
BE55 | 20 04 : jr nz,$BE5B
BE57 | 3E F0 : ld a,$F0 // decrease code -10
BE59 | 18 06 : jr $BE61
BE5B | FE FE : cp $FE
BE5D | 20 05 : jr nz,$BE64
BE5F | 3E 10 : ld a,$10 // increase code +10
BE61 | 86 : add a,(hl)
BE62 | 77 : ld (hl),a
BE63 | 78 : ld a,b
BE64 | FE EF : cp $EF
BE66 | 20 03 : jr nz,$BE6B
BE68 | 7E : ld a,(hl) // play sound
BE69 | 18 06 : jr $BE71
BE6B | FE DF : cp $DF
BE6D | 20 04 : jr nz,$BE73
BE6F | 3E 3F : ld a,$3F // stop sound
BE71 | D3 45 : out ($45),a // send sound code
BE73 | 18 CE : jr $BE43
-->
</script>
<script state="run">
<output format="----- ufo robo dangar 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@E100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0AEA = 0A29 </action>
<action>maincpu.mq@BE40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B3 = 02E3</action>
</script>
<script state="off">
<action>maincpu.mw@01B3 = 01B8</action>
</script>
</cheat>
</mamecheat>
dangarj.xml
Code: Select all
<!-- Ufo Robo Dangar (9/26/1986, Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@428E = 9D42</action> <!-- wave -->
<action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
<action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mw@428E = 9CC5</action>
<action>maincpu.mw@42BF = 9CC5</action>
<action>maincpu.mw@9B2F = 9CCB</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1A8D = 00</action>
<action>maincpu.mb@4475 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1A8D = 20</action>
<action>maincpu.mb@4475 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@1C8D = BB20 </action> <!-- single fighter -->
<action>maincpu.mw@1CF8 = BB20 </action> <!-- twin fighter 2 -->
<action>maincpu.mw@1D64 = BB20 </action> <!-- twin fighter 2 (formation) -->
<action>maincpu.mw@1DE3 = BB20 </action> <!-- twin fighter 3 -->
<action>maincpu.mw@1E4F = BB20 </action> <!-- twin fighter 3 (formation) -->
<action>maincpu.mw@202B = BB20 </action> <!-- robot (formation) -->
<action>maincpu.mw@20F8 = BB20 </action> <!-- robot -->
<action>maincpu.mw@249F = BB20 </action> <!-- ufo 1 -->
<action>maincpu.mw@24EE = BB20 </action> <!-- ufo 1 (formation) -->
<action>maincpu.mw@259A = BB20 </action> <!-- ufo 2 -->
<action>maincpu.mw@25E9 = BB20 </action> <!-- ufo 2 (formation) -->
<action>maincpu.mw@2683 = BB20 </action> <!-- ufo 3 -->
<action>maincpu.mw@26E0 = BB20 </action> <!-- ufo 3 (formation) -->
<action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
<action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
<!--
BB20 | 3A FD E3 : ld a,($E3FD) // check auto move flag
BB23 | B7 : or a
BB24 | 06 01 : ld b,$01
BB26 | 20 02 : jr nz,$BB2A
BB28 | 06 xx : ld b,$xx
BB2A | C5 : push bc
BB2B | CD 9A 28 : call $289A
BB2E | C1 : pop bc
BB2F | 10 F9 : djnz $BB2A
BB31 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@BB29 = param</action>
</script>
<script state="off">
<action>maincpu.mw@1C8D = 289A </action>
<action>maincpu.mw@1CF8 = 289A </action>
<action>maincpu.mw@1D64 = 289A </action>
<action>maincpu.mw@1DE3 = 289A </action>
<action>maincpu.mw@1E4F = 289A </action>
<action>maincpu.mw@202B = 289A </action>
<action>maincpu.mw@20F8 = 289A </action>
<action>maincpu.mw@249F = 289A </action>
<action>maincpu.mw@24EE = 289A </action>
<action>maincpu.mw@259A = 289A </action>
<action>maincpu.mw@25E9 = 289A </action>
<action>maincpu.mw@2683 = 289A </action>
<action>maincpu.mw@26E0 = 289A </action>
<action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
</script>
<script state="off">
<action>maincpu.mb@1077F = 04</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@4364 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4364 = 17</action>
</script>
</cheat>
<cheat desc="infinite formation attack">
<script state="on">
<action>maincpu.md@2219 = 35BB80CD </action>
<action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
<!--
BB80 | 7E : ld a,(hl)
BB81 | B7 : or a
BB82 | C0 : ret nz
BB83 | 34 : inc (hl)
BB84 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@2219 = 35C8B77E </action>
<action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@0968 = BB40 </action>
<action>maincpu.mq@BB40 = 2847B800DBE10021</action>
<action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
<action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
<action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@BB60 = 0320EFFE78778610</action>
<action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
<action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
<!--
BB40 | 21 00 E1 : ld hl,$E100 // sound code address
BB43 | DB 00 : in a,($00) // read input
BB45 | B8 : cp b
BB46 | 47 : ld b,a
BB47 | 28 FA : jr z,$BB43
BB49 | FE FB : cp $FB
BB4B | 20 01 : jr nz,$BB4E
BB4D | 35 : dec (hl) // decrease code -01
BB4E | FE F7 : cp $F7
BB50 | 20 01 : jr nz,$BB53
BB52 | 34 : inc (hl) // increase code +01
BB53 | FE FD : cp $FD
BB55 | 20 04 : jr nz,$BB5B
BB57 | 3E F0 : ld a,$F0 // decrease code -10
BB59 | 18 06 : jr $BB61
BB5B | FE FE : cp $FE
BB5D | 20 05 : jr nz,$BB64
BB5F | 3E 10 : ld a,$10 // increase code +10
BB61 | 86 : add a,(hl)
BB62 | 77 : ld (hl),a
BB63 | 78 : ld a,b
BB64 | FE EF : cp $EF
BB66 | 20 03 : jr nz,$BB6B
BB68 | 7E : ld a,(hl) // play sound
BB69 | 18 06 : jr $BB71
BB6B | FE DF : cp $DF
BB6D | 20 04 : jr nz,$BB73
BB6F | 3E 3F : ld a,$3F // stop sound
BB71 | D3 45 : out ($45),a // send sound code
BB73 | 18 CE : jr $BB43
-->
</script>
<script state="run">
<output format="----- ufo robo dangar 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@E100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0968 = 08A7 </action>
<action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0179 = 02A9</action>
</script>
<script state="off">
<action>maincpu.mw@0179 = 017E</action>
</script>
</cheat>
</mamecheat>
dangarb.xml
Code: Select all
<!-- Ufo Robo Dangar (9/26/1986, bootleg set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@428E = 9D42</action> <!-- wave -->
<action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
<action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mw@428E = 9CC5</action>
<action>maincpu.mw@42BF = 9CC5</action>
<action>maincpu.mw@9B2F = 9CCB</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1A8D = 00</action>
<action>maincpu.mb@4475 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1A8D = 20</action>
<action>maincpu.mb@4475 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@1C8D = BB20 </action> <!-- single fighter -->
<action>maincpu.mw@1CF8 = BB20 </action> <!-- twin fighter 2 -->
<action>maincpu.mw@1D64 = BB20 </action> <!-- twin fighter 2 (formation) -->
<action>maincpu.mw@1DE3 = BB20 </action> <!-- twin fighter 3 -->
<action>maincpu.mw@1E4F = BB20 </action> <!-- twin fighter 3 (formation) -->
<action>maincpu.mw@202B = BB20 </action> <!-- robot (formation) -->
<action>maincpu.mw@20F8 = BB20 </action> <!-- robot -->
<action>maincpu.mw@249F = BB20 </action> <!-- ufo 1 -->
<action>maincpu.mw@24EE = BB20 </action> <!-- ufo 1 (formation) -->
<action>maincpu.mw@259A = BB20 </action> <!-- ufo 2 -->
<action>maincpu.mw@25E9 = BB20 </action> <!-- ufo 2 (formation) -->
<action>maincpu.mw@2683 = BB20 </action> <!-- ufo 3 -->
<action>maincpu.mw@26E0 = BB20 </action> <!-- ufo 3 (formation) -->
<action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
<action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
<!--
BB20 | 3A FD E3 : ld a,($E3FD) // check auto move flag
BB23 | B7 : or a
BB24 | 06 01 : ld b,$01
BB26 | 20 02 : jr nz,$BB2A
BB28 | 06 xx : ld b,$xx
BB2A | C5 : push bc
BB2B | CD 9A 28 : call $289A
BB2E | C1 : pop bc
BB2F | 10 F9 : djnz $BB2A
BB31 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@BB29 = param</action>
</script>
<script state="off">
<action>maincpu.mw@1C8D = 289A </action>
<action>maincpu.mw@1CF8 = 289A </action>
<action>maincpu.mw@1D64 = 289A </action>
<action>maincpu.mw@1DE3 = 289A </action>
<action>maincpu.mw@1E4F = 289A </action>
<action>maincpu.mw@202B = 289A </action>
<action>maincpu.mw@20F8 = 289A </action>
<action>maincpu.mw@249F = 289A </action>
<action>maincpu.mw@24EE = 289A </action>
<action>maincpu.mw@259A = 289A </action>
<action>maincpu.mw@25E9 = 289A </action>
<action>maincpu.mw@2683 = 289A </action>
<action>maincpu.mw@26E0 = 289A </action>
<action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
</script>
<script state="off">
<action>maincpu.mb@1077F = 04</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@4364 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4364 = 17</action>
</script>
</cheat>
<cheat desc="infinite formation attack">
<script state="on">
<action>maincpu.md@2219 = 35BB80CD </action>
<action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
<!--
BB80 | 7E : ld a,(hl)
BB81 | B7 : or a
BB82 | C0 : ret nz
BB83 | 34 : inc (hl)
BB84 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@2219 = 35C8B77E </action>
<action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@0968 = BB40 </action>
<action>maincpu.mq@BB40 = 2847B800DBE10021</action>
<action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
<action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
<action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@BB60 = 0320EFFE78778610</action>
<action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
<action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
<!--
BB40 | 21 00 E1 : ld hl,$E100 // sound code address
BB43 | DB 00 : in a,($00) // read input
BB45 | B8 : cp b
BB46 | 47 : ld b,a
BB47 | 28 FA : jr z,$BB43
BB49 | FE FB : cp $FB
BB4B | 20 01 : jr nz,$BB4E
BB4D | 35 : dec (hl) // decrease code -01
BB4E | FE F7 : cp $F7
BB50 | 20 01 : jr nz,$BB53
BB52 | 34 : inc (hl) // increase code +01
BB53 | FE FD : cp $FD
BB55 | 20 04 : jr nz,$BB5B
BB57 | 3E F0 : ld a,$F0 // decrease code -10
BB59 | 18 06 : jr $BB61
BB5B | FE FE : cp $FE
BB5D | 20 05 : jr nz,$BB64
BB5F | 3E 10 : ld a,$10 // increase code +10
BB61 | 86 : add a,(hl)
BB62 | 77 : ld (hl),a
BB63 | 78 : ld a,b
BB64 | FE EF : cp $EF
BB66 | 20 03 : jr nz,$BB6B
BB68 | 7E : ld a,(hl) // play sound
BB69 | 18 06 : jr $BB71
BB6B | FE DF : cp $DF
BB6D | 20 04 : jr nz,$BB73
BB6F | 3E 3F : ld a,$3F // stop sound
BB71 | D3 45 : out ($45),a // send sound code
BB73 | 18 CE : jr $BB43
-->
</script>
<script state="run">
<output format="----- ufo robo dangar 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@E100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0968 = 08A7 </action>
<action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0179 = 02A9</action>
</script>
<script state="off">
<action>maincpu.mw@0179 = 017E</action>
</script>
</cheat>
</mamecheat>
dangarbt.xml
Code: Select all
<!-- Ufo Robo Dangar (9/26/1986, bootleg set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@428E = 9D42</action> <!-- wave -->
<action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
<action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mw@428E = 9CC5</action>
<action>maincpu.mw@42BF = 9CC5</action>
<action>maincpu.mw@9B2F = 9CCB</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1A8D = 00</action>
<action>maincpu.mb@4475 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@1A8D = 20</action>
<action>maincpu.mb@4475 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@1C8D = BB20 </action> <!-- single fighter -->
<action>maincpu.mw@1CF8 = BB20 </action> <!-- twin fighter 2 -->
<action>maincpu.mw@1D64 = BB20 </action> <!-- twin fighter 2 (formation) -->
<action>maincpu.mw@1DE3 = BB20 </action> <!-- twin fighter 3 -->
<action>maincpu.mw@1E4F = BB20 </action> <!-- twin fighter 3 (formation) -->
<action>maincpu.mw@202B = BB20 </action> <!-- robot (formation) -->
<action>maincpu.mw@20F8 = BB20 </action> <!-- robot -->
<action>maincpu.mw@249F = BB20 </action> <!-- ufo 1 -->
<action>maincpu.mw@24EE = BB20 </action> <!-- ufo 1 (formation) -->
<action>maincpu.mw@259A = BB20 </action> <!-- ufo 2 -->
<action>maincpu.mw@25E9 = BB20 </action> <!-- ufo 2 (formation) -->
<action>maincpu.mw@2683 = BB20 </action> <!-- ufo 3 -->
<action>maincpu.mw@26E0 = BB20 </action> <!-- ufo 3 (formation) -->
<action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
<action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
<!--
BB20 | 3A FD E3 : ld a,($E3FD) // check auto move flag
BB23 | B7 : or a
BB24 | 06 01 : ld b,$01
BB26 | 20 02 : jr nz,$BB2A
BB28 | 06 xx : ld b,$xx
BB2A | C5 : push bc
BB2B | CD 9A 28 : call $289A
BB2E | C1 : pop bc
BB2F | 10 F9 : djnz $BB2A
BB31 | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@BB29 = param</action>
</script>
<script state="off">
<action>maincpu.mw@1C8D = 289A </action>
<action>maincpu.mw@1CF8 = 289A </action>
<action>maincpu.mw@1D64 = 289A </action>
<action>maincpu.mw@1DE3 = 289A </action>
<action>maincpu.mw@1E4F = 289A </action>
<action>maincpu.mw@202B = 289A </action>
<action>maincpu.mw@20F8 = 289A </action>
<action>maincpu.mw@249F = 289A </action>
<action>maincpu.mw@24EE = 289A </action>
<action>maincpu.mw@259A = 289A </action>
<action>maincpu.mw@25E9 = 289A </action>
<action>maincpu.mw@2683 = 289A </action>
<action>maincpu.mw@26E0 = 289A </action>
<action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
</script>
<script state="off">
<action>maincpu.mb@1077F = 04</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@4364 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4364 = 17</action>
</script>
</cheat>
<cheat desc="infinite formation attack">
<script state="on">
<action>maincpu.md@2219 = 35BB80CD </action>
<action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
<!--
BB80 | 7E : ld a,(hl)
BB81 | B7 : or a
BB82 | C0 : ret nz
BB83 | 34 : inc (hl)
BB84 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.md@2219 = 35C8B77E </action>
<action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set ram/rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@0968 = BB40 </action>
<action>maincpu.mq@BB40 = 2847B800DBE10021</action>
<action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
<action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
<action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
<action>maincpu.mq@BB60 = 0320EFFE78778610</action>
<action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
<action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
<!--
BB40 | 21 00 E1 : ld hl,$E100 // sound code address
BB43 | DB 00 : in a,($00) // read input
BB45 | B8 : cp b
BB46 | 47 : ld b,a
BB47 | 28 FA : jr z,$BB43
BB49 | FE FB : cp $FB
BB4B | 20 01 : jr nz,$BB4E
BB4D | 35 : dec (hl) // decrease code -01
BB4E | FE F7 : cp $F7
BB50 | 20 01 : jr nz,$BB53
BB52 | 34 : inc (hl) // increase code +01
BB53 | FE FD : cp $FD
BB55 | 20 04 : jr nz,$BB5B
BB57 | 3E F0 : ld a,$F0 // decrease code -10
BB59 | 18 06 : jr $BB61
BB5B | FE FE : cp $FE
BB5D | 20 05 : jr nz,$BB64
BB5F | 3E 10 : ld a,$10 // increase code +10
BB61 | 86 : add a,(hl)
BB62 | 77 : ld (hl),a
BB63 | 78 : ld a,b
BB64 | FE EF : cp $EF
BB66 | 20 03 : jr nz,$BB6B
BB68 | 7E : ld a,(hl) // play sound
BB69 | 18 06 : jr $BB71
BB6B | FE DF : cp $DF
BB6D | 20 04 : jr nz,$BB73
BB6F | 3E 3F : ld a,$3F // stop sound
BB71 | D3 45 : out ($45),a // send sound code
BB73 | 18 CE : jr $BB43
-->
</script>
<script state="run">
<output format="----- ufo robo dangar 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@E100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@0968 = 08A7 </action>
<action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0179 = 02A9</action>
</script>
<script state="off">
<action>maincpu.mw@0179 = 017E</action>
</script>
</cheat>
</mamecheat>
"player speed" : Fixed speed change in formation attack.