parent
eade36456c
commit
2e539b3c47
Binary file not shown.
|
@ -294,7 +294,7 @@ GPGX_EX void gpgx_clear_sram(void)
|
||||||
if (sram.on)
|
if (sram.on)
|
||||||
memset(sram.sram, 0xff, 0x10000);
|
memset(sram.sram, 0xff, 0x10000);
|
||||||
|
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
// clear and format bram
|
// clear and format bram
|
||||||
memset(scd.bram, 0, 0x2000);
|
memset(scd.bram, 0, 0x2000);
|
||||||
|
@ -331,7 +331,7 @@ GPGX_EX void* gpgx_get_sram(int *size)
|
||||||
*size = saveramsize();
|
*size = saveramsize();
|
||||||
return sram.sram;
|
return sram.sram;
|
||||||
}
|
}
|
||||||
else if (cdd.loaded && scd.cartridge.id)
|
else if (system_hw == SYSTEM_MCD && scd.cartridge.id)
|
||||||
{
|
{
|
||||||
int sz = scd.cartridge.mask + 1;
|
int sz = scd.cartridge.mask + 1;
|
||||||
memcpy(tempsram, scd.cartridge.area, sz);
|
memcpy(tempsram, scd.cartridge.area, sz);
|
||||||
|
@ -339,16 +339,11 @@ GPGX_EX void* gpgx_get_sram(int *size)
|
||||||
*size = sz + 0x2000;
|
*size = sz + 0x2000;
|
||||||
return tempsram;
|
return tempsram;
|
||||||
}
|
}
|
||||||
else if (cdd.loaded)
|
else if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*size = 0x2000;
|
*size = 0x2000;
|
||||||
return scd.bram;
|
return scd.bram;
|
||||||
}
|
}
|
||||||
else if (scd.cartridge.id)
|
|
||||||
{
|
|
||||||
*size = scd.cartridge.mask + 1;
|
|
||||||
return scd.cartridge.area;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*size = 0;
|
*size = 0;
|
||||||
|
@ -365,7 +360,7 @@ GPGX_EX int gpgx_put_sram(const uint8 *data, int size)
|
||||||
memcpy(sram.sram, data, size);
|
memcpy(sram.sram, data, size);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (cdd.loaded && scd.cartridge.id)
|
else if (system_hw == SYSTEM_MCD && scd.cartridge.id)
|
||||||
{
|
{
|
||||||
int sz = scd.cartridge.mask + 1;
|
int sz = scd.cartridge.mask + 1;
|
||||||
if (size != sz + 0x2000)
|
if (size != sz + 0x2000)
|
||||||
|
@ -374,21 +369,13 @@ GPGX_EX int gpgx_put_sram(const uint8 *data, int size)
|
||||||
memcpy(scd.bram, data + sz, 0x2000);
|
memcpy(scd.bram, data + sz, 0x2000);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (cdd.loaded)
|
else if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
if (size != 0x2000)
|
if (size != 0x2000)
|
||||||
return 0;
|
return 0;
|
||||||
memcpy(scd.bram, data, size);
|
memcpy(scd.bram, data, size);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (scd.cartridge.id)
|
|
||||||
{
|
|
||||||
int sz = scd.cartridge.mask + 1;
|
|
||||||
if (size != sz)
|
|
||||||
return 0;
|
|
||||||
memcpy(scd.cartridge.area, data, size);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (size != 0)
|
if (size != 0)
|
||||||
|
@ -512,10 +499,10 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 2:
|
case 2:
|
||||||
if (!cdd.loaded)
|
if (system_hw != SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = ext.md_cart.rom;
|
*area = cart.rom;
|
||||||
*size = ext.md_cart.romsize;
|
*size = cart.romsize;
|
||||||
if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
|
if ((system_hw & SYSTEM_PBC) == SYSTEM_MD)
|
||||||
{
|
{
|
||||||
return "MD CART";
|
return "MD CART";
|
||||||
|
@ -533,7 +520,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 3:
|
case 3:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.bootrom;
|
*area = scd.bootrom;
|
||||||
*size = 0x20000;
|
*size = 0x20000;
|
||||||
|
@ -541,7 +528,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 4:
|
case 4:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.prg_ram;
|
*area = scd.prg_ram;
|
||||||
*size = 0x80000;
|
*size = 0x80000;
|
||||||
|
@ -549,7 +536,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 5:
|
case 5:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.word_ram[0];
|
*area = scd.word_ram[0];
|
||||||
*size = 0x20000;
|
*size = 0x20000;
|
||||||
|
@ -557,7 +544,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 6:
|
case 6:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.word_ram[1];
|
*area = scd.word_ram[1];
|
||||||
*size = 0x20000;
|
*size = 0x20000;
|
||||||
|
@ -565,7 +552,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 7:
|
case 7:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.word_ram_2M;
|
*area = scd.word_ram_2M;
|
||||||
*size = 0x40000;
|
*size = 0x40000;
|
||||||
|
@ -573,7 +560,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
case 8:
|
case 8:
|
||||||
if (cdd.loaded)
|
if (system_hw == SYSTEM_MCD)
|
||||||
{
|
{
|
||||||
*area = scd.bram;
|
*area = scd.bram;
|
||||||
*size = 0x2000;
|
*size = 0x2000;
|
||||||
|
@ -589,7 +576,7 @@ GPGX_EX const char* gpgx_get_memdom(int which, void **area, int *size)
|
||||||
}
|
}
|
||||||
else if (system_bios & (SYSTEM_SMS | SYSTEM_GG))
|
else if (system_bios & (SYSTEM_SMS | SYSTEM_GG))
|
||||||
{
|
{
|
||||||
*area = &ext.md_cart.rom[0x400000];
|
*area = &cart.rom[0x400000];
|
||||||
*size = sms_cart_bootrom_size();
|
*size = sms_cart_bootrom_size();
|
||||||
return "BOOT ROM";
|
return "BOOT ROM";
|
||||||
}
|
}
|
||||||
|
@ -759,7 +746,7 @@ void CDLog68k(uint addr, uint flags)
|
||||||
|
|
||||||
//apply memory map to process rom address
|
//apply memory map to process rom address
|
||||||
unsigned char* block64k = m68k.memory_map[((addr)>>16)&0xff].base;
|
unsigned char* block64k = m68k.memory_map[((addr)>>16)&0xff].base;
|
||||||
|
|
||||||
//outside the ROM range. complex mapping logic/accessories; not sure how to handle any of this
|
//outside the ROM range. complex mapping logic/accessories; not sure how to handle any of this
|
||||||
if(block64k < cart.rom || block64k >= cart.rom + cart.romsize)
|
if(block64k < cart.rom || block64k >= cart.rom + cart.romsize)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue