RSP: get RSP_LH_DMEM and RSP_LW_DMEM to handle end of memory roll over
This commit is contained in:
parent
cfc63532dd
commit
f8f9688386
|
@ -166,14 +166,8 @@ void RSP_LH_DMEM(uint32_t Addr, uint16_t * Value)
|
||||||
{
|
{
|
||||||
if ((Addr & 0x1) != 0)
|
if ((Addr & 0x1) != 0)
|
||||||
{
|
{
|
||||||
if (Addr > 0xFFE)
|
*Value = *(uint8_t *)(RSPInfo.DMEM + (((Addr + 0) & 0xFFF) ^ 3)) << 8;
|
||||||
{
|
*Value += *(uint8_t *)(RSPInfo.DMEM + (((Addr + 1) & 0xFFF) ^ 3)) << 0;
|
||||||
DisplayError("There is a problem with:\nRSP_LH_DMEM");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Addr &= 0xFFF;
|
|
||||||
*Value = *(uint8_t *)(RSPInfo.DMEM + ((Addr + 0) ^ 3)) << 8;
|
|
||||||
*Value += *(uint8_t *)(RSPInfo.DMEM + ((Addr + 1) ^ 3)) << 0;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
*Value = *(uint16_t *)(RSPInfo.DMEM + ((Addr ^ 2) & 0xFFF));
|
*Value = *(uint16_t *)(RSPInfo.DMEM + ((Addr ^ 2) & 0xFFF));
|
||||||
|
@ -301,16 +295,10 @@ void RSP_LW_DMEM(uint32_t Addr, uint32_t * Value)
|
||||||
{
|
{
|
||||||
if ((Addr & 0x3) != 0)
|
if ((Addr & 0x3) != 0)
|
||||||
{
|
{
|
||||||
Addr &= 0xFFF;
|
*Value = *(uint8_t *)(RSPInfo.DMEM + (((Addr + 0) & 0xFFF) ^ 3)) << 24;
|
||||||
if (Addr > 0xFFC)
|
*Value += *(uint8_t *)(RSPInfo.DMEM + (((Addr + 1) & 0xFFF) ^ 3)) << 16;
|
||||||
{
|
*Value += *(uint8_t *)(RSPInfo.DMEM + (((Addr + 2) & 0xFFF) ^ 3)) << 8;
|
||||||
DisplayError("There is a problem with:\nRSP_LW_DMEM");
|
*Value += *(uint8_t *)(RSPInfo.DMEM + (((Addr + 3) & 0xFFF) ^ 3)) << 0;
|
||||||
return;
|
|
||||||
}
|
|
||||||
*Value = *(uint8_t *)(RSPInfo.DMEM + ((Addr + 0) ^ 3)) << 24;
|
|
||||||
*Value += *(uint8_t *)(RSPInfo.DMEM + ((Addr + 1) ^ 3)) << 16;
|
|
||||||
*Value += *(uint8_t *)(RSPInfo.DMEM + ((Addr + 2) ^ 3)) << 8;
|
|
||||||
*Value += *(uint8_t *)(RSPInfo.DMEM + ((Addr + 3) ^ 3)) << 0;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
*Value = *(uint32_t *)(RSPInfo.DMEM + (Addr & 0xFFF));
|
*Value = *(uint32_t *)(RSPInfo.DMEM + (Addr & 0xFFF));
|
||||||
|
|
Loading…
Reference in New Issue