mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-12-27 19:51:48 +01:00
[Core/MD] fixed regression introduced with first version of SF-001 mapper
This commit is contained in:
parent
e8b72612b4
commit
00b0cc6d71
@ -180,6 +180,7 @@ static const md_entry_t rom_database[] =
|
|||||||
/* Thunderbolt II (uses 16-bits reads) */
|
/* Thunderbolt II (uses 16-bits reads) */
|
||||||
{0x0000,0x1585,0x40,0x40,{{0x55,0x0f,0xaa,0xf0},{0xffffff,0xffffff,0xffffff,0xffffff},{0x400000,0x400002,0x400004,0x400006},0,0,NULL,NULL,default_regs_r_16,NULL}},
|
{0x0000,0x1585,0x40,0x40,{{0x55,0x0f,0xaa,0xf0},{0xffffff,0xffffff,0xffffff,0xffffff},{0x400000,0x400002,0x400004,0x400006},0,0,NULL,NULL,default_regs_r_16,NULL}},
|
||||||
|
|
||||||
|
|
||||||
/* Chaoji Puke - Super Poker (correct ROM dump, original release is an overdump) */
|
/* Chaoji Puke - Super Poker (correct ROM dump, original release is an overdump) */
|
||||||
{0xffff,0xd7b0,0x40,0x40,{{0x55,0x0f,0xaa,0xf0},{0xffffff,0xffffff,0xffffff,0xffffff},{0x400000,0x400002,0x400004,0x400006},0,0,NULL,NULL,default_regs_r,NULL}},
|
{0xffff,0xd7b0,0x40,0x40,{{0x55,0x0f,0xaa,0xf0},{0xffffff,0xffffff,0xffffff,0xffffff},{0x400000,0x400002,0x400004,0x400006},0,0,NULL,NULL,default_regs_r,NULL}},
|
||||||
/* Super Bubble Bobble */
|
/* Super Bubble Bobble */
|
||||||
@ -569,18 +570,18 @@ void md_cart_init(void)
|
|||||||
if (strstr(rominfo.consoletype,"SEGA SSF"))
|
if (strstr(rominfo.consoletype,"SEGA SSF"))
|
||||||
{
|
{
|
||||||
/* Everdrive extended SSF mapper */
|
/* Everdrive extended SSF mapper */
|
||||||
cart.hw.bankshift = 1;
|
|
||||||
|
|
||||||
/* specific !TIME handler */
|
|
||||||
cart.hw.time_w = mapper_512k_w;
|
cart.hw.time_w = mapper_512k_w;
|
||||||
|
|
||||||
|
/* cartridge ROM mapping is reinitialized on /VRES */
|
||||||
|
cart.hw.bankshift = 1;
|
||||||
}
|
}
|
||||||
else if (strstr(rominfo.domestic,"SUPER STREET FIGHTER2"))
|
else if (strstr(rominfo.domestic,"SUPER STREET FIGHTER2"))
|
||||||
{
|
{
|
||||||
/* SSF2 mapper */
|
/* SSF2 mapper */
|
||||||
cart.hw.bankshift = 1;
|
|
||||||
|
|
||||||
/* specific !TIME handler */
|
|
||||||
cart.hw.time_w = mapper_ssf2_w;
|
cart.hw.time_w = mapper_ssf2_w;
|
||||||
|
|
||||||
|
/* cartridge ROM mapping is reinitialized on /VRES */
|
||||||
|
cart.hw.bankshift = 1;
|
||||||
}
|
}
|
||||||
else if (strstr(rominfo.product,"T-5740"))
|
else if (strstr(rominfo.product,"T-5740"))
|
||||||
{
|
{
|
||||||
@ -605,6 +606,18 @@ void md_cart_init(void)
|
|||||||
|
|
||||||
/* no !TIME handler */
|
/* no !TIME handler */
|
||||||
cart.hw.time_w = m68k_unused_8_w;
|
cart.hw.time_w = m68k_unused_8_w;
|
||||||
|
|
||||||
|
/* cartridge ROM is mapped to $3C0000-$3FFFFF on reset */
|
||||||
|
for (i=0x3c; i<0x40; i++)
|
||||||
|
{
|
||||||
|
m68k.memory_map[i].base = cart.rom + (i << 16);
|
||||||
|
m68k.memory_map[i].read8 = NULL;
|
||||||
|
m68k.memory_map[i].read16 = NULL;
|
||||||
|
m68k.memory_map[i].write8 = m68k_unused_8_w;
|
||||||
|
m68k.memory_map[i].write16 = m68k_unused_16_w;
|
||||||
|
zbank_memory_map[i].read = NULL;
|
||||||
|
zbank_memory_map[i].write = m68k_unused_8_w;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (strstr(rominfo.ROMType,"SF") && strstr(rominfo.product,"002"))
|
else if (strstr(rominfo.ROMType,"SF") && strstr(rominfo.product,"002"))
|
||||||
{
|
{
|
||||||
@ -627,13 +640,13 @@ void md_cart_init(void)
|
|||||||
cart.hw.time_r = mapper_sf004_r;
|
cart.hw.time_r = mapper_sf004_r;
|
||||||
cart.hw.time_w = m68k_unused_8_w;
|
cart.hw.time_w = m68k_unused_8_w;
|
||||||
|
|
||||||
/* first 256K ROM bank is initially mirrored into $000000-$1FFFFF */
|
/* first 256K ROM bank is mirrored into $000000-$1FFFFF on reset */
|
||||||
for (i=0x00; i<0x20; i++)
|
for (i=0x00; i<0x20; i++)
|
||||||
{
|
{
|
||||||
m68k.memory_map[i].base = cart.rom + ((i & 0x03) << 16);
|
m68k.memory_map[i].base = cart.rom + ((i & 0x03) << 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 32K static RAM is mapped to $200000-$2FFFFF (disabled on startup) */
|
/* 32K static RAM mapped to $200000-$2FFFFF is disabled on reset */
|
||||||
for (i=0x20; i<0x30; i++)
|
for (i=0x20; i<0x30; i++)
|
||||||
{
|
{
|
||||||
m68k.memory_map[i].base = sram.sram;
|
m68k.memory_map[i].base = sram.sram;
|
||||||
@ -929,7 +942,6 @@ static void mapper_512k_w(uint32 address, uint32 data)
|
|||||||
/* 512K ROM paging */
|
/* 512K ROM paging */
|
||||||
uint8 *src = cart.rom + (data << 19);
|
uint8 *src = cart.rom + (data << 19);
|
||||||
|
|
||||||
|
|
||||||
/* cartridge area ($000000-$3FFFFF) is divided into 8 x 512K banks */
|
/* cartridge area ($000000-$3FFFFF) is divided into 8 x 512K banks */
|
||||||
address = (address << 2) & 0x38;
|
address = (address << 2) & 0x38;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user