bugfixes related to mmap usage for ROM

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@867 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2010-01-27 15:16:25 +00:00
parent 1f1ff763e6
commit a736af3ecf
6 changed files with 38 additions and 24 deletions

View file

@ -203,20 +203,17 @@ static void carthw_realtec_reset(void)
void carthw_realtec_startup(void)
{
void *tmp;
int i;
elprintf(EL_STATUS, "Realtec mapper startup");
// allocate additional bank for boot code
// (we know those ROMs have aligned size)
tmp = realloc(Pico.rom, Pico.romsize + M68K_BANK_SIZE);
if (tmp == NULL)
{
i = PicoCartResize(Pico.romsize + M68K_BANK_SIZE);
if (i != 0) {
elprintf(EL_STATUS, "OOM");
return;
}
Pico.rom = tmp;
// create bank for boot code
for (i = 0; i < M68K_BANK_SIZE; i += 0x2000)
@ -487,18 +484,16 @@ static void carthw_prot_lk3_mem_setup(void)
void carthw_prot_lk3_startup(void)
{
void *tmp;
int ret;
elprintf(EL_STATUS, "lk3 prot emu startup");
// allocate space for bank0 backup
tmp = realloc(Pico.rom, Pico.romsize + 0x8000);
if (tmp == NULL)
{
ret = PicoCartResize(Pico.romsize + 0x8000);
if (ret != 0) {
elprintf(EL_STATUS, "OOM");
return;
}
Pico.rom = tmp;
memcpy(Pico.rom + Pico.romsize, Pico.rom, 0x8000);
PicoCartMemSetup = carthw_prot_lk3_mem_setup;

View file

@ -115,20 +115,17 @@ static void PicoSVPExit(void)
void PicoSVPStartup(void)
{
void *tmp;
int ret;
elprintf(EL_STATUS, "SVP startup");
tmp = realloc(Pico.rom, 0x200000 + sizeof(*svp));
if (tmp == NULL)
{
ret = PicoCartResize(Pico.romsize + sizeof(*svp));
if (ret != 0) {
elprintf(EL_STATUS|EL_SVP, "OOM for SVP data");
return;
}
//PicoOpt &= ~0x20000;
Pico.rom = tmp;
svp = (void *) ((char *)tmp + 0x200000);
svp = (void *) ((char *)Pico.rom + Pico.romsize);
memset(svp, 0, sizeof(*svp));
// init SVP compiler
@ -156,4 +153,3 @@ void PicoSVPStartup(void)
PicoAHW |= PAHW_SVP;
}