Page 1 of 1

[rougien] Rougien

Posted: Sun Apr 13, 2025 2:13 pm
by jman
rougien.xml

Code: Select all

<!-- Rougien -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.md@2550 = 009990CD        </action>
            <action>maincpu.mq@9990 = 9521DD03FEC15A3A</action>
            <action>maincpu.mq@9998 = FFC9C19F21DDC0C1</action>
            <!--
            9990 | 3A 5A C1    : ld   a,($C15A) // check current scene
            9993 | FE 03       : cp   $03
            9995 | DD 21 95 C1 : ld   ix,$C195
            9999 | C0          : ret  nz
            999A | DD 21 9F C1 : ld   ix,$C19F
            999E | C9          : ret
            -->
            <action>maincpu.mb@2C2B = 00</action> <!-- wall (scene 3) -->
            <action>maincpu.mb@2C43 = 18</action> <!-- wall (scene 3) -->
        </script>
        <script state="off">
            <action>maincpu.md@2550 = C19021DD        </action>
            <action>maincpu.mq@9990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9998 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@2C2B = 04              </action>
            <action>maincpu.mb@2C43 = 28              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@28F0 = 01</action>
            <action>maincpu.mb@28FF = 03</action>
        </script>
        <script state="off">
            <action>maincpu.mb@28F0 = 14</action>
            <action>maincpu.mb@28FF = 72</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <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.md@2B28 = 2399AFCD        </action> <!-- y position -->
            <action>maincpu.md@2B2D = FD99B6CD        </action> <!-- x position -->
            <action>maincpu.mq@99A0 = F2003E0828A77A5F</action>
            <action>maincpu.mq@99A8 = CDC97B5744ED99AC</action>
            <action>maincpu.mq@99B0 = A0CDC90472FD99A0</action>
            <action>maincpu.mq@99B8 = FFFFFFC90572FD99</action>
            <!--
            99A0 | 5F       : ld   e,a        // speed calculation routine
            99A1 | 7A       : ld   a,d
            99A2 | A7       : and  a
            99A3 | 28 08    : jr   z,$99AD
            99A5 | 3E xx    : ld   a,$xx
            99A7 | F2 AC 99 : jp   p,$99AC
            99AA | ED 44    : neg
            99AC | 57       : ld   d,a
            99AD | 7B       : ld   a,e
            99AE | C9       : ret
            99AF | CD A0 99 : call $99A0      // y position
            99B2 | FD 72 04 : ld   (iy+$04),d
            99B5 | C9       : ret
            99B6 | CD A0 99 : call $99A0      // x position
            99B9 | FD 72 05 : ld   (iy+$05),d
            99BC | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@99A6 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2B28 = 230472FD        </action>
            <action>maincpu.md@2B2D = FD0572FD        </action>
            <action>maincpu.mq@9AA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9AA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9AB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9AB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x1A-0x1C) by sound stop button -->
        <!-- code 0x1D causes the game freeze -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@176B = C9              </action> <!-- sample play routine stopper -->
            <action>maincpu.mb@2D4D = C9              </action> <!-- sound stop routine stopper -->
            <action>maincpu.mb@30EF = C9              </action> <!-- sample play routine stopper -->
            <action>maincpu.mb@32F7 = C9              </action> <!-- sample play routine stopper -->
            <action>maincpu.mb@8A87 = 00              </action> <!-- disable sound code check -->
            <action>maincpu.mw@2D3A = 99C0            </action>
            <action>maincpu.mq@99C0 = 47B8E8003AC00021</action>
            <action>maincpu.mq@99C8 = FE35012004FEF928</action>
            <action>maincpu.mq@99D0 = 042008FE34012002</action>
            <action>maincpu.mq@99D8 = 052001FE0618F03E</action>
            <action>maincpu.mq@99E0 = 2010FE787786103E</action>
            <action>maincpu.mq@99E8 = DFCD05201AFE7E23</action>
            <action>maincpu.mq@99F0 = CD05201BFE221830</action>
            <action>maincpu.mq@99F8 = 05201CFE1918175A</action>
            <action>maincpu.mq@9A00 = C7CDD9101832E7CD</action>
            <action>maincpu.mq@9A08 = 052020FE0918D914</action>
            <action>maincpu.mq@9A10 = FFAC18D92D3FCDD9</action>
            <!--
            99C0 | 21 00 C0 : ld   hl,$C000  // sound code address
            99C3 | 3A 00 E8 : ld   a,($E800) // read input
            99C6 | B8       : cp   b
            99C7 | 47       : ld   b,a
            99C8 | 28 F9    : jr   z,$99C3
            99CA | FE 04    : cp   $04
            99CC | 20 01    : jr   nz,$99CF
            99CE | 35       : dec  (hl)      // decrease code -01
            99CF | FE 02    : cp   $02
            99D1 | 20 01    : jr   nz,$99D4
            99D3 | 34       : inc  (hl)      // increase code +01
            99D4 | FE 08    : cp   $08
            99D6 | 20 04    : jr   nz,$99DC
            99D8 | 3E F0    : ld   a,$F0     // decrease code -10
            99DA | 18 06    : jr   $99E2
            99DC | FE 01    : cp   $01
            99DE | 20 05    : jr   nz,$99E5
            99E0 | 3E 10    : ld   a,$10     // increase code +10
            99E2 | 86       : add  a,(hl)
            99E3 | 77       : ld   (hl),a
            99E4 | 78       : ld   a,b
            99E5 | FE 10    : cp   $10
            99E7 | 20 23    : jr   nz,$9A0C
            99E9 | 7E       : ld   a,(hl)    // play sound
            99EA | FE 1A    : cp   $1A
            99EC | 20 05    : jr   nz,$99F3
            99EE | CD DF 30 : call $30DF     // voice "rougien"
            99F1 | 18 22    : jr   $9A15
            99F3 | FE 1B    : cp   $1B
            99F5 | 20 05    : jr   nz,$99FC
            99F7 | CD 5A 17 : call $175A     // voice cry
            99FA | 18 19    : jr   $9A15
            99FC | FE 1C    : cp   $1C
            99FE | 20 05    : jr   nz,$9A05
            9A00 | CD E7 32 : call $32E7     // voice laugh
            9A03 | 18 10    : jr   $9A15
            9A05 | D9       : exx
            9A06 | CD C7 14 : call $14C7     // other sounds
            9A09 | D9       : exx
            9A0A | 18 09    : jr   $9A15
            9A0C | FE 20    : cp   $20
            9A0E | 20 05    : jr   nz,$9A15
            9A10 | D9       : exx            // stop sound
            9A11 | CD 3F 2D : call $2D3F
            9A14 | D9       : exx
            9A15 | 18 AC    : jr   $99C3
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : stop sound"                line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@176B = 32              </action>
            <action>maincpu.mb@2D4D = 21              </action>
            <action>maincpu.mb@30EF = 3E              </action>
            <action>maincpu.mb@32F7 = 3E              </action>
            <action>maincpu.mb@8A87 = C8              </action>
            <action>maincpu.mw@2D3A = 960A            </action>
            <action>maincpu.mq@99C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@99F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9A00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9A08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9A10 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : You can't stop samples (0x1A-0x1C) by sound stop button. Code 0x1D causes the game freeze