2018-12-03 12:26:02 +01:00
|
|
|
/*****************************************************************************\
|
|
|
|
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
|
|
|
|
This file is licensed under the Snes9x License.
|
|
|
|
For further information, consult the LICENSE file in the root directory.
|
|
|
|
\*****************************************************************************/
|
2009-11-30 09:14:38 +01:00
|
|
|
|
2008-08-06 03:09:59 +02:00
|
|
|
#include "snes9x.h"
|
|
|
|
#include "memmap.h"
|
|
|
|
#include "sdd1.h"
|
|
|
|
#include "display.h"
|
|
|
|
|
|
|
|
|
|
|
|
void S9xSetSDD1MemoryMap (uint32 bank, uint32 value)
|
|
|
|
{
|
2010-01-27 23:08:56 +01:00
|
|
|
bank = 0xc00 + bank * 0x100;
|
|
|
|
value = value * 1024 * 1024;
|
2009-11-30 09:14:38 +01:00
|
|
|
|
2010-01-27 23:08:56 +01:00
|
|
|
for (int c = 0; c < 0x100; c += 16)
|
|
|
|
{
|
|
|
|
uint8 *block = &Memory.ROM[value + (c << 12)];
|
|
|
|
for (int i = c; i < c + 16; i++)
|
|
|
|
Memory.Map[i + bank] = block;
|
|
|
|
}
|
2008-08-06 03:09:59 +02:00
|
|
|
}
|
|
|
|
|
2010-01-27 23:08:56 +01:00
|
|
|
void S9xResetSDD1 (void)
|
2008-08-06 03:09:59 +02:00
|
|
|
{
|
2010-01-27 23:08:56 +01:00
|
|
|
memset(&Memory.FillRAM[0x4800], 0, 4);
|
|
|
|
for (int i = 0; i < 4; i++)
|
2008-08-06 03:09:59 +02:00
|
|
|
{
|
2010-01-27 23:08:56 +01:00
|
|
|
Memory.FillRAM[0x4804 + i] = i;
|
|
|
|
S9xSetSDD1MemoryMap(i, i);
|
2008-08-06 03:09:59 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-01-27 23:08:56 +01:00
|
|
|
void S9xSDD1PostLoadState (void)
|
2008-08-06 03:09:59 +02:00
|
|
|
{
|
2010-01-27 23:08:56 +01:00
|
|
|
for (int i = 0; i < 4; i++)
|
|
|
|
S9xSetSDD1MemoryMap(i, Memory.FillRAM[0x4804 + i]);
|
2008-08-06 03:09:59 +02:00
|
|
|
}
|