1942.xml
Code: Select all
<!-- 1942 (Revision B) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E97 = 18</action> <!-- bullet -->
<action>maincpu.mb@30BE = C9</action> <!-- boss -->
<action>maincpu.mb@3329 = C9</action> <!-- enemy -->
<action>maincpu.mb@3350 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3382 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E97 = 38</action>
<action>maincpu.mb@30BE = C0</action>
<action>maincpu.mb@3329 = C0</action>
<action>maincpu.mb@3350 = C0</action>
<action>maincpu.mb@3382 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8A = 3AA8</action>
</script>
<script state="off">
<action>maincpu.mw@2E8A = 38B6</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C68 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C68 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@262B = param</action>
<action>maincpu.mw@2631 = param</action>
</script>
<script state="off">
<action>maincpu.mw@262B = 0180</action>
<action>maincpu.mw@2631 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A31 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A31 = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA3 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA3 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FA = 86</action> <!-- enemy -->
<action>maincpu.mb@3588 = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FA = C6</action>
<action>maincpu.mb@3588 = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3E = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3E = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 007190CD </action>
<action>maincpu.mq@7190 = 306F85003EE0D22A</action>
<action>maincpu.mq@7198 = 0000000000C92401</action>
<!--
7190 | 2A D2 E0 : ld hl,($E0D2)
7193 | 3E xx : ld a,$xx
7195 | 85 : add a,l
7196 | 6F : ld l,a
7197 | 30 01 : jr nc,$719A
7199 | 24 : inc h
719A | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7194 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@7190 = 0000000000000000</action>
<action>maincpu.mq@7198 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@117D = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 71A0 </action>
<action>maincpu.mq@71A0 = E00021C80632023E</action>
<action>maincpu.mq@71A8 = FEF62847B8C0013A</action>
<action>maincpu.mq@71B0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71B8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71C0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71C8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71D0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71D8 = 00000000C918B36A</action>
<!--
71A0 | 3E 02 : ld a,$02 // set rom bank
71A2 | 32 06 C8 : ld ($C806),a
71A5 | 21 00 E0 : ld hl,$E000 // sound code address
71A8 | 3A 01 C0 : ld a,($C001) // read input
71AB | B8 : cp b
71AC | 47 : ld b,a
71AD | 28 F6 : jr z,$71A5
71AF | FE FD : cp $FD
71B1 | 20 01 : jr nz,$71B4
71B3 | 35 : dec (hl) // decrease code -01
71B4 | FE FE : cp $FE
71B6 | 20 01 : jr nz,$71B9
71B8 | 34 : inc (hl) // increase code +01
71B9 | FE FB : cp $FB
71BB | 20 04 : jr nz,$71C1
71BD | 3E F0 : ld a,$F0 // decrease code -10
71BF | 18 06 : jr $71C7
71C1 | FE F7 : cp $F7
71C3 | 20 05 : jr nz,$71CA
71C5 | 3E 10 : ld a,$10 // increase code +10
71C7 | 86 : add a,(hl)
71C8 | 77 : ld (hl),a
71C9 | 78 : ld a,b
71CA | FE EF : cp $EF
71CC | 20 05 : jr nz,$71D3
71CE | 7E : ld a,(hl) // play sound
71CF | 32 00 C8 : ld ($C800),a
71D2 | 78 : ld a,b
71D3 | FE DF : cp $DF
71D5 | 20 03 : jr nz,$71DA
71D7 | CD 6A B3 : call $B36A // stop sound
71DA | 18 C9 : jr $71A5
-->
</script>
<script state="run">
<output format="----- 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@117D = C8 </action>
<action>maincpu.mw@02D8 = 118D </action>
<action>maincpu.mq@71A0 = 0000000000000000</action>
<action>maincpu.mq@71A8 = 0000000000000000</action>
<action>maincpu.mq@71B0 = 0000000000000000</action>
<action>maincpu.mq@71B8 = 0000000000000000</action>
<action>maincpu.mq@71C0 = 0000000000000000</action>
<action>maincpu.mq@71C8 = 0000000000000000</action>
<action>maincpu.mq@71D0 = 0000000000000000</action>
<action>maincpu.mq@71D8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@7137 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@7137 = 28</action>
</script>
</cheat>
</mamecheat>
1942a.xml
Code: Select all
<!-- 1942 (Revision A) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E9B = 18</action> <!-- bullet -->
<action>maincpu.mb@30C2 = C9</action> <!-- boss -->
<action>maincpu.mb@332D = C9</action> <!-- enemy -->
<action>maincpu.mb@3354 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3386 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E9B = 38</action>
<action>maincpu.mb@30C2 = C0</action>
<action>maincpu.mb@332D = C0</action>
<action>maincpu.mb@3354 = C0</action>
<action>maincpu.mb@3386 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8E = 2DF7</action>
</script>
<script state="off">
<action>maincpu.mw@2E8E = 38BA</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C68 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C68 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@262B = param</action>
<action>maincpu.mw@2631 = param</action>
</script>
<script state="off">
<action>maincpu.mw@262B = 0180</action>
<action>maincpu.mw@2631 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A31 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A31 = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA3 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA3 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FE = 86</action> <!-- enemy -->
<action>maincpu.mb@358C = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FE = C6</action>
<action>maincpu.mb@358C = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3E = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3E = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 007180CD </action>
<action>maincpu.mq@7180 = 306F85003EE0D22A</action>
<action>maincpu.mq@7188 = FFFFFFFFFFC92401</action>
<!--
7180 | 2A D2 E0 : ld hl,($E0D2)
7183 | 3E xx : ld a,$xx
7185 | 85 : add a,l
7186 | 6F : ld l,a
7187 | 30 01 : jr nc,$718A
7189 | 24 : inc h
718A | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7184 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@7180 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7188 = 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.mb@117D = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 7190 </action>
<action>maincpu.mq@7190 = E00021C80632023E</action>
<action>maincpu.mq@7198 = FEF62847B8C0013A</action>
<action>maincpu.mq@71A0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71A8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71B0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71B8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71C0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71C8 = FFFFFFFFC918B36A</action>
<!--
7190 | 3E 02 : ld a,$02 // set rom bank
7192 | 32 06 C8 : ld ($C806),a
7195 | 21 00 E0 : ld hl,$E000 // sound code address
7198 | 3A 01 C0 : ld a,($C001) // read input
719B | B8 : cp b
719C | 47 : ld b,a
719D | 28 F6 : jr z,$7195
719F | FE FD : cp $FD
71A1 | 20 01 : jr nz,$71A4
71A3 | 35 : dec (hl) // decrease code -01
71A4 | FE FE : cp $FE
71A6 | 20 01 : jr nz,$71A9
71A8 | 34 : inc (hl) // increase code +01
71A9 | FE FB : cp $FB
71AB | 20 04 : jr nz,$71B1
71AD | 3E F0 : ld a,$F0 // decrease code -10
71AF | 18 06 : jr $71B7
71B1 | FE F7 : cp $F7
71B3 | 20 05 : jr nz,$71BA
71B5 | 3E 10 : ld a,$10 // increase code +10
71B7 | 86 : add a,(hl)
71B8 | 77 : ld (hl),a
71B9 | 78 : ld a,b
71BA | FE EF : cp $EF
71BC | 20 05 : jr nz,$71C3
71BE | 7E : ld a,(hl) // play sound
71BF | 32 00 C8 : ld ($C800),a
71C2 | 78 : ld a,b
71C3 | FE DF : cp $DF
71C5 | 20 03 : jr nz,$71CA
71C7 | CD 6A B3 : call $B36A // stop sound
71CA | 18 C9 : jr $7195
-->
</script>
<script state="run">
<output format="----- 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@117D = C8 </action>
<action>maincpu.mw@02D8 = 118D </action>
<action>maincpu.mq@7190 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7198 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@713B = 18</action>
</script>
<script state="off">
<action>maincpu.mb@713B = 28</action>
</script>
</cheat>
</mamecheat>
1942abl.xml
Code: Select all
<!-- 1942 (Revision A, bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E9B = 18</action> <!-- bullet -->
<action>maincpu.mb@30C2 = C9</action> <!-- boss -->
<action>maincpu.mb@332D = C9</action> <!-- enemy -->
<action>maincpu.mb@3354 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3386 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E9B = 38</action>
<action>maincpu.mb@30C2 = C0</action>
<action>maincpu.mb@332D = C0</action>
<action>maincpu.mb@3354 = C0</action>
<action>maincpu.mb@3386 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8E = 2DF7</action>
</script>
<script state="off">
<action>maincpu.mw@2E8E = 38BA</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C68 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C68 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@262B = param</action>
<action>maincpu.mw@2631 = param</action>
</script>
<script state="off">
<action>maincpu.mw@262B = 0180</action>
<action>maincpu.mw@2631 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A31 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A31 = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA3 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA3 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FE = 86</action> <!-- enemy -->
<action>maincpu.mb@358C = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FE = C6</action>
<action>maincpu.mb@358C = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3E = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3E = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 007180CD </action>
<action>maincpu.mq@7180 = 306F85003EE0D22A</action>
<action>maincpu.mq@7188 = FFFFFFFFFFC92401</action>
<!--
7180 | 2A D2 E0 : ld hl,($E0D2)
7183 | 3E xx : ld a,$xx
7185 | 85 : add a,l
7186 | 6F : ld l,a
7187 | 30 01 : jr nc,$718A
7189 | 24 : inc h
718A | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7184 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@7180 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7188 = 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.mb@117D = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 7190 </action>
<action>maincpu.mq@7190 = E00021C80632023E</action>
<action>maincpu.mq@7198 = FEF62847B8C0013A</action>
<action>maincpu.mq@71A0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71A8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71B0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71B8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71C0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71C8 = FFFFFFFFC918B36A</action>
<!--
7190 | 3E 02 : ld a,$02 // set rom bank
7192 | 32 06 C8 : ld ($C806),a
7195 | 21 00 E0 : ld hl,$E000 // sound code address
7198 | 3A 01 C0 : ld a,($C001) // read input
719B | B8 : cp b
719C | 47 : ld b,a
719D | 28 F6 : jr z,$7195
719F | FE FD : cp $FD
71A1 | 20 01 : jr nz,$71A4
71A3 | 35 : dec (hl) // decrease code -01
71A4 | FE FE : cp $FE
71A6 | 20 01 : jr nz,$71A9
71A8 | 34 : inc (hl) // increase code +01
71A9 | FE FB : cp $FB
71AB | 20 04 : jr nz,$71B1
71AD | 3E F0 : ld a,$F0 // decrease code -10
71AF | 18 06 : jr $71B7
71B1 | FE F7 : cp $F7
71B3 | 20 05 : jr nz,$71BA
71B5 | 3E 10 : ld a,$10 // increase code +10
71B7 | 86 : add a,(hl)
71B8 | 77 : ld (hl),a
71B9 | 78 : ld a,b
71BA | FE EF : cp $EF
71BC | 20 05 : jr nz,$71C3
71BE | 7E : ld a,(hl) // play sound
71BF | 32 00 C8 : ld ($C800),a
71C2 | 78 : ld a,b
71C3 | FE DF : cp $DF
71C5 | 20 03 : jr nz,$71CA
71C7 | CD 6A B3 : call $B36A // stop sound
71CA | 18 C9 : jr $7195
-->
</script>
<script state="run">
<output format="----- 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@117D = C8 </action>
<action>maincpu.mw@02D8 = 118D </action>
<action>maincpu.mq@7190 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7198 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@713B = 18</action>
</script>
<script state="off">
<action>maincpu.mb@713B = 28</action>
</script>
</cheat>
</mamecheat>
1942h.xml
Code: Select all
<!-- Supercharger 1942 -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E9B = 18</action> <!-- bullet -->
<action>maincpu.mb@30C2 = C9</action> <!-- boss -->
<action>maincpu.mb@332D = C9</action> <!-- enemy -->
<action>maincpu.mb@3354 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3386 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E9B = 38</action>
<action>maincpu.mb@30C2 = C0</action>
<action>maincpu.mb@332D = C0</action>
<action>maincpu.mb@3354 = C0</action>
<action>maincpu.mb@3386 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8E = 2DF7</action>
</script>
<script state="off">
<action>maincpu.mw@2E8E = 38BA</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C68 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C68 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@262B = param</action>
<action>maincpu.mw@2631 = param</action>
</script>
<script state="off">
<action>maincpu.mw@262B = 0180</action>
<action>maincpu.mw@2631 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A31 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A31 = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA3 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA3 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FE = 86</action> <!-- enemy -->
<action>maincpu.mb@358C = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FE = C6</action>
<action>maincpu.mb@358C = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3E = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3E = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 007180CD </action>
<action>maincpu.mq@7180 = 306F85003EE0D22A</action>
<action>maincpu.mq@7188 = FFFFFFFFFFC92401</action>
<!--
7180 | 2A D2 E0 : ld hl,($E0D2)
7183 | 3E xx : ld a,$xx
7185 | 85 : add a,l
7186 | 6F : ld l,a
7187 | 30 01 : jr nc,$718A
7189 | 24 : inc h
718A | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7184 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@7180 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7188 = 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.mb@117D = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 7190 </action>
<action>maincpu.mq@7190 = E00021C80632023E</action>
<action>maincpu.mq@7198 = FEF62847B8C0013A</action>
<action>maincpu.mq@71A0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71A8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71B0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71B8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71C0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71C8 = FFFFFFFFC918B36A</action>
<!--
7190 | 3E 02 : ld a,$02 // set rom bank
7192 | 32 06 C8 : ld ($C806),a
7195 | 21 00 E0 : ld hl,$E000 // sound code address
7198 | 3A 01 C0 : ld a,($C001) // read input
719B | B8 : cp b
719C | 47 : ld b,a
719D | 28 F6 : jr z,$7195
719F | FE FD : cp $FD
71A1 | 20 01 : jr nz,$71A4
71A3 | 35 : dec (hl) // decrease code -01
71A4 | FE FE : cp $FE
71A6 | 20 01 : jr nz,$71A9
71A8 | 34 : inc (hl) // increase code +01
71A9 | FE FB : cp $FB
71AB | 20 04 : jr nz,$71B1
71AD | 3E F0 : ld a,$F0 // decrease code -10
71AF | 18 06 : jr $71B7
71B1 | FE F7 : cp $F7
71B3 | 20 05 : jr nz,$71BA
71B5 | 3E 10 : ld a,$10 // increase code +10
71B7 | 86 : add a,(hl)
71B8 | 77 : ld (hl),a
71B9 | 78 : ld a,b
71BA | FE EF : cp $EF
71BC | 20 05 : jr nz,$71C3
71BE | 7E : ld a,(hl) // play sound
71BF | 32 00 C8 : ld ($C800),a
71C2 | 78 : ld a,b
71C3 | FE DF : cp $DF
71C5 | 20 03 : jr nz,$71CA
71C7 | CD 6A B3 : call $B36A // stop sound
71CA | 18 C9 : jr $7195
-->
</script>
<script state="run">
<output format="----- supercharger 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@117D = C8 </action>
<action>maincpu.mw@02D8 = 118D </action>
<action>maincpu.mq@7190 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7198 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@713B = 18</action>
</script>
<script state="off">
<action>maincpu.mb@713B = 28</action>
</script>
</cheat>
</mamecheat>
1942b.xml
Code: Select all
<!-- 1942 (First Version) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E9B = 18</action> <!-- bullet -->
<action>maincpu.mb@30C2 = C9</action> <!-- boss -->
<action>maincpu.mb@332D = C9</action> <!-- enemy -->
<action>maincpu.mb@3354 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3386 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E9B = 38</action>
<action>maincpu.mb@30C2 = C0</action>
<action>maincpu.mb@332D = C0</action>
<action>maincpu.mb@3354 = C0</action>
<action>maincpu.mb@3386 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8E = 2DF7</action>
</script>
<script state="off">
<action>maincpu.mw@2E8E = 38BA</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C68 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C68 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@262B = param</action>
<action>maincpu.mw@2631 = param</action>
</script>
<script state="off">
<action>maincpu.mw@262B = 0180</action>
<action>maincpu.mw@2631 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A31 = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A31 = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA3 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA3 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FE = 86</action> <!-- enemy -->
<action>maincpu.mb@358C = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FE = C6</action>
<action>maincpu.mb@358C = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3E = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3E = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 007180CD </action>
<action>maincpu.mq@7180 = 306F85003EE0D22A</action>
<action>maincpu.mq@7188 = FFFFFFFFFFC92401</action>
<!--
7180 | 2A D2 E0 : ld hl,($E0D2)
7183 | 3E xx : ld a,$xx
7185 | 85 : add a,l
7186 | 6F : ld l,a
7187 | 30 01 : jr nc,$718A
7189 | 24 : inc h
718A | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@7184 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@7180 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7188 = 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.mb@117D = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 7190 </action>
<action>maincpu.mq@7190 = E00021C80632023E</action>
<action>maincpu.mq@7198 = FEF62847B8C0013A</action>
<action>maincpu.mq@71A0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71A8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71B0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71B8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71C0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71C8 = FFFFFFFFC918B36A</action>
<!--
7190 | 3E 02 : ld a,$02 // set rom bank
7192 | 32 06 C8 : ld ($C806),a
7195 | 21 00 E0 : ld hl,$E000 // sound code address
7198 | 3A 01 C0 : ld a,($C001) // read input
719B | B8 : cp b
719C | 47 : ld b,a
719D | 28 F6 : jr z,$7195
719F | FE FD : cp $FD
71A1 | 20 01 : jr nz,$71A4
71A3 | 35 : dec (hl) // decrease code -01
71A4 | FE FE : cp $FE
71A6 | 20 01 : jr nz,$71A9
71A8 | 34 : inc (hl) // increase code +01
71A9 | FE FB : cp $FB
71AB | 20 04 : jr nz,$71B1
71AD | 3E F0 : ld a,$F0 // decrease code -10
71AF | 18 06 : jr $71B7
71B1 | FE F7 : cp $F7
71B3 | 20 05 : jr nz,$71BA
71B5 | 3E 10 : ld a,$10 // increase code +10
71B7 | 86 : add a,(hl)
71B8 | 77 : ld (hl),a
71B9 | 78 : ld a,b
71BA | FE EF : cp $EF
71BC | 20 05 : jr nz,$71C3
71BE | 7E : ld a,(hl) // play sound
71BF | 32 00 C8 : ld ($C800),a
71C2 | 78 : ld a,b
71C3 | FE DF : cp $DF
71C5 | 20 03 : jr nz,$71CA
71C7 | CD 6A B3 : call $B36A // stop sound
71CA | 18 C9 : jr $7195
-->
</script>
<script state="run">
<output format="----- 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@117D = C8 </action>
<action>maincpu.mw@02D8 = 118D </action>
<action>maincpu.mq@7190 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7198 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@713B = 18</action>
</script>
<script state="off">
<action>maincpu.mb@713B = 28</action>
</script>
</cheat>
</mamecheat>
1942w.xml
Code: Select all
<!-- 1942 (Williams Electronics license) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2E99 = 18</action> <!-- bullet -->
<action>maincpu.mb@30C0 = C9</action> <!-- boss -->
<action>maincpu.mb@332B = C9</action> <!-- enemy -->
<action>maincpu.mb@3352 = C9</action> <!-- large enemy -->
<action>maincpu.mb@3384 = C9</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@2E99 = 38</action>
<action>maincpu.mb@30C0 = C0</action>
<action>maincpu.mb@332B = C0</action>
<action>maincpu.mb@3352 = C0</action>
<action>maincpu.mb@3384 = C0</action>
</script>
</cheat>
<cheat desc="no hit - sidefighters">
<script state="on">
<action>maincpu.mw@2E8C = 3AAA</action>
</script>
<script state="off">
<action>maincpu.mw@2E8C = 38B8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1C66 = 21</action>
</script>
<script state="off">
<action>maincpu.mb@1C66 = 06</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0380">03 </item>
<item value="0x0580">04 </item>
<item value="0x0780">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mw@2629 = param</action>
<action>maincpu.mw@262F = param</action>
</script>
<script state="off">
<action>maincpu.mw@2629 = 0180</action>
<action>maincpu.mw@262F = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x06">02 </item>
<item value="0x0c">03 </item>
<item value="0x12">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A2F = param</action>
</script>
<script state="off">
<action>maincpu.mb@2A2F = 06</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@2AA1 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@2AA1 = 06</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@34FC = 86</action> <!-- enemy -->
<action>maincpu.mb@358A = 96</action> <!-- middle enemy -->
</script>
<script state="off">
<action>maincpu.mb@34FC = C6</action>
<action>maincpu.mb@358A = D6</action>
</script>
</cheat>
<cheat desc="easy call sidefighters (test)">
<script state="on">
<action>maincpu.mb@1C3C = CD</action>
</script>
<script state="off">
<action>maincpu.mb@1C3C = C4</action>
</script>
</cheat>
<cheat desc="scroll speed (test)">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@01B0 = 00 </action>
<action>maincpu.md@01B1 = 0071A0CD </action>
<action>maincpu.mq@71A0 = 306F85003EE0D22A</action>
<action>maincpu.mq@71A8 = 0000000000C92401</action>
<!--
71A0 | 2A D2 E0 : ld hl,($E0D2)
71A3 | 3E xx : ld a,$xx
71A5 | 85 : add a,l
71A6 | 6F : ld l,a
71A7 | 30 01 : jr nc,$71AA
71A9 | 24 : inc h
71AA | C9 : ret
-->
</script>
<script state="change">
<action>maincpu.mb@71A4 = param</action>
</script>
<script state="off">
<action>maincpu.mb@01B0 = 2A </action>
<action>maincpu.md@01B1 = 23E0D22A </action>
<action>maincpu.mq@71A0 = 0000000000000000</action>
<action>maincpu.mq@71A8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@1182 = 00 </action> <!-- enable to play sound -->
<action>maincpu.mw@02D8 = 71B0 </action>
<action>maincpu.mq@71B0 = E00021C80632023E</action>
<action>maincpu.mq@71B8 = FEF62847B8C0013A</action>
<action>maincpu.mq@71C0 = 0120FEFE350120FD</action>
<action>maincpu.mq@71C8 = 18F03E0420FBFE34</action>
<action>maincpu.mq@71D0 = 86103E0520F7FE06</action>
<action>maincpu.mq@71D8 = 327E0520EFFE7877</action>
<action>maincpu.mq@71E0 = CD0320DFFE78C800</action>
<action>maincpu.mq@71E8 = 00000000C918B36A</action>
<!--
71B0 | 3E 02 : ld a,$02 // set rom bank
71B2 | 32 06 C8 : ld ($C806),a
71B5 | 21 00 E0 : ld hl,$E000 // sound code address
71B8 | 3A 01 C0 : ld a,($C001) // read input
71BB | B8 : cp b
71BC | 47 : ld b,a
71BD | 28 F6 : jr z,$71B5
71BF | FE FD : cp $FD
71C1 | 20 01 : jr nz,$71C4
71C3 | 35 : dec (hl) // decrease code -01
71C4 | FE FE : cp $FE
71C6 | 20 01 : jr nz,$71C9
71C8 | 34 : inc (hl) // increase code +01
71C9 | FE FB : cp $FB
71CB | 20 04 : jr nz,$71D1
71CD | 3E F0 : ld a,$F0 // decrease code -10
71CF | 18 06 : jr $71D7
71D1 | FE F7 : cp $F7
71D3 | 20 05 : jr nz,$71DA
71D5 | 3E 10 : ld a,$10 // increase code +10
71D7 | 86 : add a,(hl)
71D8 | 77 : ld (hl),a
71D9 | 78 : ld a,b
71DA | FE EF : cp $EF
71DC | 20 05 : jr nz,$71E3
71DE | 7E : ld a,(hl) // play sound
71DF | 32 00 C8 : ld ($C800),a
71E2 | 78 : ld a,b
71E3 | FE DF : cp $DF
71E5 | 20 03 : jr nz,$71EA
71E7 | CD 6A B3 : call $B36A // stop sound
71EA | 18 C9 : jr $71B5
-->
</script>
<script state="run">
<output format="----- 1942 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@E000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@1182 = C8 </action>
<action>maincpu.mw@02D8 = 1192 </action>
<action>maincpu.mq@71B0 = 0000000000000000</action>
<action>maincpu.mq@71B8 = 0000000000000000</action>
<action>maincpu.mq@71C0 = 0000000000000000</action>
<action>maincpu.mq@71C8 = 0000000000000000</action>
<action>maincpu.mq@71D0 = 0000000000000000</action>
<action>maincpu.mq@71D8 = 0000000000000000</action>
<action>maincpu.mq@71E0 = 0000000000000000</action>
<action>maincpu.mq@71E8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip in-game rom error">
<script state="on">
<action>maincpu.mb@7151 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@7151 = 28</action>
</script>
</cheat>
</mamecheat>