workaround for sameboy only exposing RAM
This commit is contained in:
parent
fe98aab910
commit
3ff13783fa
|
@ -401,7 +401,20 @@ static int rcheevos_parse(const char* json)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Achievement memory accesses are 0-based, regardless of where the memory is accessed by the
|
||||||
|
* emulated code. As such, address 0 should always be accessible and serves as an indicator that
|
||||||
|
* other addresses will also be accessible. Individual achievements will be "Unsupported" if
|
||||||
|
* they contain addresses that cannot be resolved. This check gives the user immediate feedback
|
||||||
|
* if the core they're trying to use will disable all achievements as "Unsupported".
|
||||||
|
*/
|
||||||
if (!rcheevos_patch_address(0, rcheevos_locals.patchdata.console_id))
|
if (!rcheevos_patch_address(0, rcheevos_locals.patchdata.console_id))
|
||||||
|
{
|
||||||
|
/* Special case: the sameboy core exposes the RAM at $8000, but not the ROM at $0000. NES and
|
||||||
|
* Gameboy achievements do attempt to map the entire bus, and it's unlikely that an achievement
|
||||||
|
* will reference the ROM data, so if the RAM is still present, allow the core to load. If any
|
||||||
|
* achievements do reference the ROM data, they'll be marked "Unsupported" individually.
|
||||||
|
*/
|
||||||
|
if (!rcheevos_patch_address(0x8000, rcheevos_locals.patchdata.console_id))
|
||||||
{
|
{
|
||||||
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core\n");
|
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core\n");
|
||||||
|
|
||||||
|
@ -410,6 +423,7 @@ static int rcheevos_parse(const char* json)
|
||||||
|
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate memory. */
|
/* Allocate memory. */
|
||||||
rcheevos_locals.core = (rcheevos_cheevo_t*)
|
rcheevos_locals.core = (rcheevos_cheevo_t*)
|
||||||
|
|
Loading…
Reference in New Issue