mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
some dma improvements
no idea if anything needs this, shouldn't hurt either
This commit is contained in:
parent
7feeb88062
commit
0c7d1ba332
5 changed files with 156 additions and 148 deletions
|
@ -91,23 +91,20 @@ static void PicoSVPLine(void)
|
|||
}
|
||||
|
||||
|
||||
static int PicoSVPDma(unsigned int source, int len, unsigned short **srcp, unsigned short **limitp)
|
||||
static int PicoSVPDma(unsigned int source, int len, unsigned short **base, unsigned int *mask)
|
||||
{
|
||||
if (source < Pico.romsize) // Rom
|
||||
{
|
||||
source -= 2;
|
||||
*srcp = (unsigned short *)(Pico.rom + (source&~1));
|
||||
*limitp = (unsigned short *)(Pico.rom + Pico.romsize);
|
||||
return 1;
|
||||
*base = (unsigned short *)(Pico.rom + (source & 0xfe0000));
|
||||
*mask = 0x1ffff;
|
||||
return source - 2;
|
||||
}
|
||||
else if ((source & 0xfe0000) == 0x300000)
|
||||
{
|
||||
elprintf(EL_VDPDMA|EL_SVP, "SVP DmaSlow from %06x, len=%i", source, len);
|
||||
source &= 0x1fffe;
|
||||
source -= 2;
|
||||
*srcp = (unsigned short *)(svp->dram + source);
|
||||
*limitp = (unsigned short *)(svp->dram + sizeof(svp->dram));
|
||||
return 1;
|
||||
*base = (unsigned short *)svp->dram;
|
||||
*mask = 0x1ffff;
|
||||
return source - 2;
|
||||
}
|
||||
else
|
||||
elprintf(EL_VDPDMA|EL_SVP|EL_ANOMALY, "SVP FIXME unhandled DmaSlow from %06x, len=%i", source, len);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue