- devices/bus/plus4: fixed MT07886

- liberate.cpp: added  prosoccr PCB infos [f205v]
This commit is contained in:
Ivan Vangelista 2021-03-07 15:04:56 +01:00
parent 4ad0bbb965
commit 1ec0a8bed8
4 changed files with 33 additions and 12 deletions

View File

@ -37,10 +37,10 @@ DEFINE_DEVICE_TYPE(PLUS4_EXPANSION_SLOT, plus4_expansion_slot_device, "plus4_exp
device_plus4_expansion_card_interface::device_plus4_expansion_card_interface(const machine_config &mconfig, device_t &device) :
device_interface(device, "plus4exp"),
m_c1l_mask(0),
m_c1h_mask(0),
m_c2l_mask(0),
m_c2h_mask(0)
m_c1l_size(0),
m_c1h_size(0),
m_c2l_size(0),
m_c2h_size(0)
{
m_slot = dynamic_cast<plus4_expansion_slot_device *>(device.owner());
}
@ -120,6 +120,16 @@ image_init_result plus4_expansion_slot_device::call_load()
load_software_region("c1h", m_card->m_c1h);
load_software_region("c2l", m_card->m_c2l);
load_software_region("c2h", m_card->m_c2h);
m_card->m_c1l_size = get_software_region_length("c1l");
m_card->m_c1h_size = get_software_region_length("c1h");
m_card->m_c2l_size = get_software_region_length("c2l");
m_card->m_c2h_size = get_software_region_length("c2h");
if ((m_card->m_c1l_size & (m_card->m_c1l_size - 1)) || (m_card->m_c1h_size & (m_card->m_c1h_size - 1)) || (m_card->m_c2l_size & (m_card->m_c2l_size - 1)) || (m_card->m_c2h_size & (m_card->m_c2h_size - 1)))
{
seterror(IMAGE_ERROR_UNSPECIFIED, "ROM size must be power of 2");
return image_init_result::FAIL;
}
}
}

View File

@ -142,10 +142,10 @@ protected:
std::unique_ptr<uint8_t[]> m_c2l;
std::unique_ptr<uint8_t[]> m_c2h;
size_t m_c1l_mask;
size_t m_c1h_mask;
size_t m_c2l_mask;
size_t m_c2h_mask;
size_t m_c1l_size;
size_t m_c1h_size;
size_t m_c2l_size;
size_t m_c2h_size;
plus4_expansion_slot_device *m_slot;
};

View File

@ -51,19 +51,19 @@ uint8_t plus4_standard_cartridge_device::plus4_cd_r(offs_t offset, uint8_t data,
{
if (!c1l && m_c1l)
{
data = m_c1l[offset];
data = m_c1l[offset & (m_c1l_size - 1)];
}
else if (!c1h && m_c1h)
{
data = m_c1h[offset];
data = m_c1h[offset & (m_c1h_size - 1)];
}
else if (!c2l && m_c2l)
{
data = m_c2l[offset];
data = m_c2l[offset & (m_c2l_size - 1)];
}
else if (!c2h && m_c2h)
{
data = m_c2h[offset];
data = m_c2h[offset & (m_c2h_size - 1)];
}
return data;

View File

@ -876,6 +876,17 @@ void liberate_state::prosport(machine_config &config)
*
*************************************/
// top PCB is marked: "DATA EAST DECO SSI-16" and "DE-0148-1 MADE IN JAPAN" on component side
// mid PCB is marked: "DECO DE-0157-1 CHB-01 MADE IN JAPAN" on component side
// bottom PCB is marked: "DATA EAST DECO DSP-17A DE-0188-1 MADE IN JAPAN" on component side
// label format is:
// ---
// --------------
// | PRO SOCCER | -> game name
// | AM 10-3 | -> rom number
// | C 1983 | -> copyright
// | DATA EAST | -> copyright
// --------------
ROM_START( prosoccr )
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD( "am08.9e", 0xa000, 0x2000, CRC(73d45d0d) SHA1(07736286087478af404bd9c6b279d631a01cf4e2) )