[libretro] fixed cheat support regression introduced in previous commit

This commit is contained in:
ekeeke 2022-10-23 21:49:11 +02:00
parent 98b5c60355
commit 90bb356a17
2 changed files with 27 additions and 21 deletions

Binary file not shown.

View File

@ -2243,34 +2243,40 @@ static void apply_cheats(void)
{ {
if (cheatlist[i].enable) if (cheatlist[i].enable)
{ {
if (cheatlist[i].address < cart.romsize) /* detect Work RAM patch */
if (cheatlist[i].address >= 0xFF0000)
{ {
/* detect Work RAM patch */ /* add RAM patch */
if (cheatlist[i].address >= 0xFF0000) cheatIndexes[maxRAMcheats++] = i;
}
/* check if Mega-CD game is running */
else if ((system_hw == SYSTEM_MCD) && !scd.cartridge.boot)
{
/* detect PRG-RAM patch (Sub-CPU side) */
if (cheatlist[i].address < 0x80000)
{ {
/* add RAM patch */ /* add RAM patch */
cheatIndexes[maxRAMcheats++] = i;
}
/* detect Word-RAM patch (Main-CPU side)*/
else if ((cheatlist[i].address >= 0x200000) && (cheatlist[i].address < 0x240000))
{
/* add RAM patch */
cheatIndexes[maxRAMcheats++] = i; cheatIndexes[maxRAMcheats++] = i;
} }
}
/* check if Mega-CD game is running */ /* detect cartridge ROM patch */
else if ((system_hw == SYSTEM_MCD) && !scd.cartridge.boot) else if (cheatlist[i].address < cart.romsize)
{
if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
{ {
/* detect PRG-RAM patch (Sub-CPU side) */ /* patch ROM data */
if (cheatlist[i].address < 0x80000) cheatlist[i].old = *(uint16_t *)(cart.rom + (cheatlist[i].address & 0xFFFFFE));
{ *(uint16_t *)(cart.rom + (cheatlist[i].address & 0xFFFFFE)) = cheatlist[i].data;
/* add RAM patch */
cheatIndexes[maxRAMcheats++] = i;
}
/* detect Word-RAM patch (Main-CPU side)*/
else if ((cheatlist[i].address >= 0x200000) && (cheatlist[i].address < 0x240000))
{
/* add RAM patch */
cheatIndexes[maxRAMcheats++] = i;
}
} }
/* detect cartridge ROM patch */
else else
{ {
/* add ROM patch */ /* add ROM patch */