mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2025-01-14 20:29:32 +01:00
[Core/MD] added emulation of "Micro Machines USA" on-board TMSS bypass logic hardware (fixes lockout when TMSS Boot ROM is enabled)
This commit is contained in:
parent
bb8f3b3113
commit
bc8d1ae2b2
@ -55,6 +55,7 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke)
|
|||||||
* added support for some new unlicensed games with copy protection (Thunderbolt II, Tom Clown, Chaoji Puke / Super Poker, Rock Heaven, Rock World)
|
* added support for some new unlicensed games with copy protection (Thunderbolt II, Tom Clown, Chaoji Puke / Super Poker, Rock Heaven, Rock World)
|
||||||
* added support for Everdrive extended SSF mapper
|
* added support for Everdrive extended SSF mapper
|
||||||
* added (very basic) emulation of Flashkit MD hardware
|
* added (very basic) emulation of Flashkit MD hardware
|
||||||
|
* added emulation of Micro Machines USA on-board TMSS bypass logic hardware
|
||||||
* improved console region auto-detection for a few PAL-only games (The Smurfs Travel the World & Williams Arcade's Greatest Hits)
|
* improved console region auto-detection for a few PAL-only games (The Smurfs Travel the World & Williams Arcade's Greatest Hits)
|
||||||
* improved I2C EEPROM boards emulation accuracy
|
* improved I2C EEPROM boards emulation accuracy
|
||||||
* improved SVP memory handlers accuracy (fixes Virtua Racing debug mode)
|
* improved SVP memory handlers accuracy (fixes Virtua Racing debug mode)
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.7 MiB After Width: | Height: | Size: 3.7 MiB |
Binary file not shown.
Before Width: | Height: | Size: 3.9 MiB After Width: | Height: | Size: 3.9 MiB |
@ -2,7 +2,7 @@
|
|||||||
* Genesis Plus
|
* Genesis Plus
|
||||||
* Mega Drive cartridge hardware support
|
* Mega Drive cartridge hardware support
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX)
|
* Copyright (C) 2007-2021 Eke-Eke (Genesis Plus GX)
|
||||||
*
|
*
|
||||||
* Many cartridge protections were initially documented by Haze
|
* Many cartridge protections were initially documented by Haze
|
||||||
* (http://haze.mameworld.info/)
|
* (http://haze.mameworld.info/)
|
||||||
@ -79,6 +79,7 @@ static void mapper_256k_multi_w(uint32 address, uint32 data);
|
|||||||
static void mapper_wd1601_w(uint32 address, uint32 data);
|
static void mapper_wd1601_w(uint32 address, uint32 data);
|
||||||
static uint32 mapper_64k_radica_r(uint32 address);
|
static uint32 mapper_64k_radica_r(uint32 address);
|
||||||
static uint32 mapper_128k_radica_r(uint32 address);
|
static uint32 mapper_128k_radica_r(uint32 address);
|
||||||
|
static void mapper_sr16v1_w(uint32 address, uint32 data);
|
||||||
static void default_time_w(uint32 address, uint32 data);
|
static void default_time_w(uint32 address, uint32 data);
|
||||||
static void default_regs_w(uint32 address, uint32 data);
|
static void default_regs_w(uint32 address, uint32 data);
|
||||||
static uint32 default_regs_r(uint32 address);
|
static uint32 default_regs_r(uint32 address);
|
||||||
@ -737,6 +738,11 @@ void md_cart_init(void)
|
|||||||
zbank_memory_map[i].write = mapper_smw_64_w;
|
zbank_memory_map[i].write = mapper_smw_64_w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ((*(uint16 *)(cart.rom + 0x04) == 0x0000) && (*(uint16 *)(cart.rom + 0x06) == 0x0104) && (rominfo.checksum == 0x31fc))
|
||||||
|
{
|
||||||
|
/* Micro Machines (USA) custom TMSS bypass logic */
|
||||||
|
m68k.memory_map[0xa1].write8 = mapper_sr16v1_w;
|
||||||
|
}
|
||||||
else if (cart.romsize > 0x400000)
|
else if (cart.romsize > 0x400000)
|
||||||
{
|
{
|
||||||
/* assume linear ROM mapping by default (max. 10MB) */
|
/* assume linear ROM mapping by default (max. 10MB) */
|
||||||
@ -1897,6 +1903,29 @@ static uint32 mapper_128k_radica_r(uint32 address)
|
|||||||
return 0xffff;
|
return 0xffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Custom logic (ST 16S25HB1 PAL) used in Micro Machines US cartridge (SR16V1.1 board)
|
||||||
|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
/VRES is asserted after write access to 0xA14101 (TMSS bank-shift register)
|
||||||
|
with D0=1 (cartridge ROM access enabled instead of TMSS Boot ROM) being detected
|
||||||
|
*/
|
||||||
|
static void mapper_sr16v1_w(uint32 address, uint32 data)
|
||||||
|
{
|
||||||
|
/* 0xA10000-0xA1FFFF address range is mapped to I/O and Control registers */
|
||||||
|
ctrl_io_write_byte(address, data);
|
||||||
|
|
||||||
|
/* cartridge uses /LWR, /AS and VA1-VA18 (only VA8-VA17 required to decode access to TMSS bank-shift register) */
|
||||||
|
if ((address & 0xff01) == 0x4101)
|
||||||
|
{
|
||||||
|
/* cartridge ROM is enabled when D0=1 */
|
||||||
|
if (data & 0x01)
|
||||||
|
{
|
||||||
|
gen_reset(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************
|
/************************************************************
|
||||||
default !TIME signal handler
|
default !TIME signal handler
|
||||||
*************************************************************/
|
*************************************************************/
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Genesis Plus
|
* Genesis Plus
|
||||||
* Mega Drive cartridge hardware support
|
* Mega Drive cartridge hardware support
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007-2020 Eke-Eke (Genesis Plus GX)
|
* Copyright (C) 2007-2021 Eke-Eke (Genesis Plus GX)
|
||||||
*
|
*
|
||||||
* Most cartridge protections were initially documented by Haze
|
* Most cartridge protections were initially documented by Haze
|
||||||
* (http://haze.mameworld.info/)
|
* (http://haze.mameworld.info/)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user