mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 06:10:03 -06:00
move TCM shit to CP15.cpp. closer to the real thing (for example now DMA can't access TCM, etc).
the code is shit. I would use templates if only it fucking worked without requiring the function body to be included in a .h.
This commit is contained in:
33
ARM.h
33
ARM.h
@ -21,6 +21,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "NDS.h"
|
||||
#include "CP15.h"
|
||||
|
||||
// lame
|
||||
#define C_S(x) x
|
||||
@ -87,8 +88,8 @@ public:
|
||||
// TODO eventually: on ARM9, THUMB opcodes are prefetched with 32bit reads
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
val = NDS::ARM9Read16(addr);
|
||||
if (!CP15::HandleCodeRead16(addr, &val))
|
||||
val = NDS::ARM9Read16(addr);
|
||||
}
|
||||
else
|
||||
val = NDS::ARM7Read16(addr);
|
||||
@ -102,8 +103,8 @@ public:
|
||||
u32 val;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
val = NDS::ARM9Read32(addr);
|
||||
if (!CP15::HandleCodeRead32(addr, &val))
|
||||
val = NDS::ARM9Read32(addr);
|
||||
}
|
||||
else
|
||||
val = NDS::ARM7Read32(addr);
|
||||
@ -118,8 +119,8 @@ public:
|
||||
u8 val;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
val = NDS::ARM9Read8(addr);
|
||||
if (!CP15::HandleDataRead8(addr, &val, forceuser))
|
||||
val = NDS::ARM9Read8(addr);
|
||||
}
|
||||
else
|
||||
val = NDS::ARM7Read8(addr);
|
||||
@ -134,8 +135,8 @@ public:
|
||||
addr &= ~1;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
val = NDS::ARM9Read16(addr);
|
||||
if (!CP15::HandleDataRead16(addr, &val, forceuser))
|
||||
val = NDS::ARM9Read16(addr);
|
||||
}
|
||||
else
|
||||
val = NDS::ARM7Read16(addr);
|
||||
@ -150,8 +151,8 @@ public:
|
||||
addr &= ~3;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
val = NDS::ARM9Read32(addr);
|
||||
if (!CP15::HandleDataRead32(addr, &val, forceuser))
|
||||
val = NDS::ARM9Read32(addr);
|
||||
}
|
||||
else
|
||||
val = NDS::ARM7Read32(addr);
|
||||
@ -164,8 +165,8 @@ public:
|
||||
{
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
NDS::ARM9Write8(addr, val);
|
||||
if (!CP15::HandleDataWrite8(addr, val, forceuser))
|
||||
NDS::ARM9Write8(addr, val);
|
||||
}
|
||||
else
|
||||
NDS::ARM7Write8(addr, val);
|
||||
@ -178,8 +179,8 @@ public:
|
||||
addr &= ~1;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
NDS::ARM9Write16(addr, val);
|
||||
if (!CP15::HandleDataWrite16(addr, val, forceuser))
|
||||
NDS::ARM9Write16(addr, val);
|
||||
}
|
||||
else
|
||||
NDS::ARM7Write16(addr, val);
|
||||
@ -192,8 +193,8 @@ public:
|
||||
addr &= ~3;
|
||||
if (!Num)
|
||||
{
|
||||
// TODO: PU shit
|
||||
NDS::ARM9Write32(addr, val);
|
||||
if (!CP15::HandleDataWrite32(addr, val, forceuser))
|
||||
NDS::ARM9Write32(addr, val);
|
||||
}
|
||||
else
|
||||
NDS::ARM7Write32(addr, val);
|
||||
|
Reference in New Issue
Block a user