After 22 years of the game crashing when Scorpion's Pack Fatality is performed on the subway, I've fixed it!
The way this breaks down is that there is a memory resource conflict, essentially. The video here explains it some: https://www.youtube.com/watch?v=gJXKfSpJTVQ
The code modification in the cheat, which I tested and is working as far as I can tell, modified the memory addresses that the game writes to on some assets for the subway stage, and the light flickering routine. There is also some custom code written for the memory "clear-out" routine that occurs between rounds to include these new memory addresses.
Happy Hacking!
Drew
Code: Select all
<cheat desc="Stop Game reset with pack fatality in subway">
<comment>This causes the game to not crash when Scorpion's Pack Fatality is performed on the Subway stage</comment>
<script state="run">
<action>maincpu.mw@002BE18=DE90</action>
<action>maincpu.mw@002BE48=DEF0</action>
<action>maincpu.mw@002BEBC=DEF0</action>
<action>maincpu.mw@002BECE=DEF0</action>
<action>maincpu.mw@002BF1E=DE90</action>
<action>maincpu.mw@002C086=DEF0</action>
<action>maincpu.mw@002C0B8=DEF0</action>
<action>maincpu.mw@002C0BE=DE90</action>
<action>maincpu.mw@002C0E2=DEF0</action>
<action>maincpu.mw@002C0F2=DE90</action>
<action>maincpu.mw@002CCD2=C080</action>
<action>maincpu.mw@002CCD4=1200</action>
<action>maincpu.mw@002CCD6=FFE0</action>
<action>maincpu.mw@00C0240=0781</action>
<action>maincpu.mw@00C0242=DBD0</action>
<action>maincpu.mw@00C0244=0105</action>
<action>maincpu.mw@00C0246=0781</action>
<action>maincpu.mw@00C0248=DE90</action>
<action>maincpu.mw@00C024A=0105</action>
<action>maincpu.mw@00C024C=0781</action>
<action>maincpu.mw@00C024E=DEF0</action>
<action>maincpu.mw@00C0250=0105</action>
<action>maincpu.mw@00C0252=C080</action>
<action>maincpu.mw@00C0254=66C0</action>
<action>maincpu.mw@00C0256=FF96</action>
</script>
<script state="off">
<action>maincpu.mw@002BE18=DB90</action>
<action>maincpu.mw@002BE48=DBF0</action>
<action>maincpu.mw@002BEBC=DBF0</action>
<action>maincpu.mw@002BECE=DBF0</action>
<action>maincpu.mw@002BF1E=DB90</action>
<action>maincpu.mw@002C086=DBF0</action>
<action>maincpu.mw@002C0B8=DBF0</action>
<action>maincpu.mw@002C0BE=DB90</action>
<action>maincpu.mw@002C0E2=DBF0</action>
<action>maincpu.mw@002C0F2=DB90</action>
<action>maincpu.mw@002CCD2=0781</action>
<action>maincpu.mw@002CCD4=DBD0</action>
<action>maincpu.mw@002CCD6=0105</action>
<action>maincpu.mw@00C0240=FFFF</action>
<action>maincpu.mw@00C0242=FFFF</action>
<action>maincpu.mw@00C0244=FFFF</action>
<action>maincpu.mw@00C0246=FFFF</action>
<action>maincpu.mw@00C0248=FFFF</action>
<action>maincpu.mw@00C024A=FFFF</action>
<action>maincpu.mw@00C024C=FFFF</action>
<action>maincpu.mw@00C024E=FFFF</action>
<action>maincpu.mw@00C0250=FFFF</action>
<action>maincpu.mw@00C0252=FFFF</action>
<action>maincpu.mw@00C0254=FFFF</action>
<action>maincpu.mw@00C0256=FFFF</action>
</script>
</cheat>