mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
5e808a3795
@ -805,8 +805,8 @@ static MACHINE_CONFIG_START( packmon, packmon_state )
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_SVG_ADD("screen", "svg")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(3840, 1376)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 3840-1, 0, 1376-1)
|
||||
MCFG_SCREEN_SIZE(3840, 1532)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 3840-1, 0, 1532-1)
|
||||
MCFG_DEFAULT_LAYOUT(layout_svg)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
|
||||
|
||||
@ -3978,8 +3978,8 @@ ROM_START( packmon )
|
||||
ROM_LOAD( "hd38800a27", 0x0000, 0x1000, CRC(86e09e84) SHA1(ac7d3c43667d5720ca513f8ff51d146d9f2af124) )
|
||||
ROM_CONTINUE( 0x1e80, 0x0100 )
|
||||
|
||||
ROM_REGION( 400909, "svg", 0)
|
||||
ROM_LOAD( "packmon.svg", 0, 400909, CRC(d91393ac) SHA1(1aa27b6dbef59ea6482a41f3e6eb30ff0eb91b4a) ) // by kevtris/OG/hap, ver. 25 apr 2016
|
||||
ROM_REGION( 246356, "svg", 0)
|
||||
ROM_LOAD( "packmon.svg", 0, 246356, CRC(991eea96) SHA1(bf42765aea838e9c26453642b01a962399b3e74c) ) // by Rik/kevtris, ver. 27 apr 2016
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -1199,7 +1199,7 @@ ROMEO - Sammy AX0201A01 'ROMEO' 4111-00000501 0250 K13 custom ASIC (TQ
|
||||
315-6267 - SEGA 315-6267 custom ASIC (BGAxxx)
|
||||
TD62064 - Toshiba TD62064 NPN 50V 1.5A Quad Darlington Driver (SOIC16)
|
||||
SH4 - Hitachi SH-4 HD6417091RA CPU (BGA256)
|
||||
BIOS.IC23 - Macronix 29L001MC-10 3.3volt (1MBit) FlashROM (SOP44, reverse pinout)
|
||||
BIOS.IC23 - Macronix 29L001MC-10 3.3volt (1MBit) FlashROM (SOP44, reverse pinout: use reverse adapter or "dead bug" method)
|
||||
W129AG - IC Works W129AG Programmable Clock Frequency Generator, clock input of 13.5MHz (SOIC16)
|
||||
SW1 - 2-position Dip Switch
|
||||
VGA - 15 pin VGA out connector @ 31.5kHz
|
||||
|
@ -856,7 +856,6 @@ WRITE8_MEMBER(neogeo_state::system_control_w)
|
||||
if (m_type == NEOGEO_CD)
|
||||
printf("NeoCD: write to regular vector change address? %d\n", bit); // what IS going on with "neocdz doubledr" and why do games write here if it's hooked up to nothing?
|
||||
else
|
||||
//m_bank_vectors->set_entry(bit);
|
||||
m_use_cart_vectors = bit;
|
||||
break;
|
||||
|
||||
@ -906,7 +905,7 @@ WRITE16_MEMBER(neogeo_state::write_banksel)
|
||||
}
|
||||
UINT8 *ROM = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_rom_size() == 0) ? m_region_maincpu->base() : (UINT8 *)m_slots[m_curr_slot]->get_rom_base();
|
||||
m_bank_base = (bank + 1) * 0x100000;
|
||||
membank("cartridge")->set_base(ROM + m_bank_base);
|
||||
m_bank_cartridge->set_base(ROM + m_bank_base);
|
||||
}
|
||||
}
|
||||
|
||||
@ -979,7 +978,7 @@ void neogeo_state::set_output_data( UINT8 data )
|
||||
WRITE16_MEMBER(neogeo_state::write_bankprot)
|
||||
{
|
||||
m_bank_base = m_slots[m_curr_slot]->get_bank_base(data);
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(neogeo_state::write_bankprot_pvc)
|
||||
@ -991,7 +990,7 @@ WRITE16_MEMBER(neogeo_state::write_bankprot_pvc)
|
||||
if (offset >= 0xff8)
|
||||
{
|
||||
m_bank_base = m_slots[m_curr_slot]->get_bank_base(data);
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1004,7 +1003,7 @@ WRITE16_MEMBER(neogeo_state::write_bankprot_kf2k3bl)
|
||||
if (offset == 0x1ff0/2 || offset == 0x1ff2/2)
|
||||
{
|
||||
m_bank_base = m_slots[m_curr_slot]->get_bank_base(data);
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1015,12 +1014,12 @@ WRITE16_MEMBER(neogeo_state::write_bankprot_ms5p)
|
||||
if ((offset == 0) && (data == 0xa0))
|
||||
{
|
||||
m_bank_base = 0xa0;
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
else if (offset == 2)
|
||||
{
|
||||
m_bank_base = m_slots[m_curr_slot]->get_bank_base(data);
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1032,13 +1031,13 @@ WRITE16_MEMBER(neogeo_state::write_bankprot_kof10th)
|
||||
{
|
||||
// Standard bankswitch
|
||||
m_bank_base = m_slots[m_curr_slot]->get_bank_base(data);
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
}
|
||||
|
||||
READ16_MEMBER(neogeo_state::read_lorom_kof10th)
|
||||
{
|
||||
UINT16* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (UINT16*)memregion("maincpu")->base();
|
||||
UINT16* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (UINT16*)m_region_maincpu->base();
|
||||
if (offset + 0x80/2 >= 0x10000/2)
|
||||
offset += m_slots[m_curr_slot]->get_special_bank();
|
||||
return rom[offset + 0x80/2];
|
||||
@ -1056,19 +1055,19 @@ void neogeo_state::init_cpu()
|
||||
UINT32 len = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_rom_size() == 0) ? m_region_maincpu->bytes() : m_slots[m_curr_slot]->get_rom_size();
|
||||
|
||||
if (len > 0x100000)
|
||||
membank("cartridge")->set_base(ROM + 0x100000);
|
||||
m_bank_cartridge->set_base(ROM + 0x100000);
|
||||
else
|
||||
membank("cartridge")->set_base(ROM);
|
||||
m_bank_cartridge->set_base(ROM);
|
||||
}
|
||||
|
||||
void neogeo_state::init_audio()
|
||||
{
|
||||
UINT8 *ROM = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_audio_size() == 0) ? memregion("audiocpu")->base() : m_slots[m_curr_slot]->get_audio_base();
|
||||
UINT32 len = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_audio_size() == 0) ? memregion("audiocpu")->bytes() : m_slots[m_curr_slot]->get_audio_size();
|
||||
UINT8 *ROM = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_audio_size() == 0) ? m_region_audiocpu->base() : m_slots[m_curr_slot]->get_audio_base();
|
||||
UINT32 len = (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_audio_size() == 0) ? m_region_audiocpu->bytes() : m_slots[m_curr_slot]->get_audio_size();
|
||||
UINT32 address_mask;
|
||||
|
||||
/* audio bios/cartridge selection */
|
||||
m_bank_audio_main->configure_entry(0, (memregion("audiobios") != nullptr) ? memregion("audiobios")->base() : ROM); /* on hardware with no SM1 ROM, the cart ROM is always enabled */
|
||||
m_bank_audio_main->configure_entry(0, (m_region_audiobios != nullptr) ? m_region_audiobios->base() : ROM); /* on hardware with no SM1 ROM, the cart ROM is always enabled */
|
||||
m_bank_audio_main->configure_entry(1, ROM);
|
||||
m_bank_audio_main->set_entry(1);
|
||||
|
||||
@ -1172,9 +1171,15 @@ void neogeo_state::set_slot_idx(int slot)
|
||||
// unmap any handler that previous carts could have installed
|
||||
space.unmap_readwrite(0x000080, 0x0fffff);
|
||||
space.unmap_readwrite(0x200000, 0x2fffff);
|
||||
space.install_read_handler(0x000080, 0x0fffff, read16_delegate(FUNC(neogeo_state::low_rom),this));
|
||||
if (!m_slots[m_curr_slot] || m_slots[m_curr_slot]->get_rom_size() == 0)
|
||||
space.install_rom(0x000080, 0x0fffff, 0, 0, (UINT16 *)m_region_maincpu->base() + 0x80/2);
|
||||
else
|
||||
space.install_rom(0x000080, 0x0fffff, 0, 0, (UINT16 *)m_slots[m_curr_slot]->get_rom_base() + 0x80/2);
|
||||
|
||||
|
||||
space.install_read_bank(0x200000, 0x2fffff, 0, 0, "cartridge");
|
||||
space.install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_state::write_banksel),this));
|
||||
m_bank_cartridge = membank("cartridge");
|
||||
|
||||
init_cpu();
|
||||
|
||||
@ -1372,7 +1377,7 @@ void neogeo_state::neogeo_postload()
|
||||
set_outputs();
|
||||
if (m_type == NEOGEO_MVS || m_type == NEOGEO_AES)
|
||||
if (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0)
|
||||
membank("cartridge")->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
m_bank_cartridge->set_base((UINT8 *)m_slots[m_curr_slot]->get_rom_base() + m_bank_base);
|
||||
}
|
||||
|
||||
|
||||
@ -1415,22 +1420,16 @@ void neogeo_state::machine_reset()
|
||||
*************************************/
|
||||
|
||||
|
||||
READ16_MEMBER(neogeo_state::low_rom)
|
||||
{
|
||||
UINT16* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (UINT16*)memregion("maincpu")->base();
|
||||
return rom[offset + (0x80/2)];
|
||||
}
|
||||
|
||||
READ16_MEMBER(neogeo_state::banked_vectors_r)
|
||||
{
|
||||
if (!m_use_cart_vectors)
|
||||
{
|
||||
UINT16* bios = (UINT16*)memregion("mainbios")->base();
|
||||
UINT16* bios = (UINT16*)m_region_mainbios->base();
|
||||
return bios[offset];
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT16* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (UINT16*)memregion("maincpu")->base();
|
||||
UINT16* rom = (m_slots[m_curr_slot] && m_slots[m_curr_slot]->get_rom_size() > 0) ? m_slots[m_curr_slot]->get_rom_base() : (UINT16*)m_region_maincpu->base();
|
||||
return rom[offset];
|
||||
}
|
||||
}
|
||||
@ -1465,7 +1464,6 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_map_slot, AS_PROGRAM, 16, neogeo_state )
|
||||
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
|
||||
AM_RANGE(0x000080, 0x0fffff) AM_READ(low_rom)
|
||||
AM_IMPORT_FROM( neogeo_main_map )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1481,7 +1479,6 @@ READ16_MEMBER(aes_state::aes_in2_r)
|
||||
|
||||
static ADDRESS_MAP_START( aes_main_map, AS_PROGRAM, 16, aes_state )
|
||||
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
|
||||
AM_RANGE(0x000080, 0x0fffff) AM_READ(low_rom)
|
||||
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM
|
||||
// some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too
|
||||
AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01fffe) AM_DEVREAD8("ctrl1", neogeo_control_port_device, ctrl_r, 0xff00)
|
||||
|
@ -35,8 +35,9 @@ public:
|
||||
m_region_sprites(*this, "sprites"),
|
||||
m_region_fixed(*this, "fixed"),
|
||||
m_region_fixedbios(*this, "fixedbios"),
|
||||
//m_bank_vectors(*this, "vectors"),
|
||||
//m_bank_cartridge(*this, "cartridge"),
|
||||
m_region_mainbios(*this, "mainbios"),
|
||||
m_region_audiobios(*this, "audiobios"),
|
||||
m_region_audiocpu(*this, "audiocpu"),
|
||||
m_bank_audio_main(*this, "audio_main"),
|
||||
m_upd4990a(*this, "upd4990a"),
|
||||
m_ym(*this, "ymsnd"),
|
||||
@ -97,7 +98,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(io_control_w);
|
||||
DECLARE_WRITE8_MEMBER(system_control_w);
|
||||
DECLARE_READ16_MEMBER(banked_vectors_r);
|
||||
DECLARE_READ16_MEMBER(low_rom);
|
||||
DECLARE_WRITE16_MEMBER(write_banksel);
|
||||
DECLARE_WRITE16_MEMBER(write_bankprot);
|
||||
DECLARE_WRITE16_MEMBER(write_bankprot_pvc);
|
||||
@ -146,11 +146,13 @@ protected:
|
||||
optional_memory_region m_region_sprites;
|
||||
optional_memory_region m_region_fixed;
|
||||
optional_memory_region m_region_fixedbios;
|
||||
//required_memory_bank m_bank_vectors;
|
||||
//optional_memory_bank m_bank_cartridge; // optional because of neocd
|
||||
optional_memory_region m_region_mainbios;
|
||||
optional_memory_region m_region_audiobios;
|
||||
optional_memory_region m_region_audiocpu;
|
||||
optional_memory_bank m_bank_audio_main; // optional because of neocd
|
||||
memory_bank *m_bank_audio_cart[4];
|
||||
|
||||
memory_bank *m_bank_cartridge;
|
||||
|
||||
// MVS-specific devices
|
||||
optional_device<upd4990a_device> m_upd4990a;
|
||||
optional_device<ym2610_device> m_ym;
|
||||
@ -200,7 +202,7 @@ protected:
|
||||
UINT8 m_raster_level;
|
||||
|
||||
required_device<neosprite_optimized_device> m_sprgen;
|
||||
UINT16 get_video_control( );
|
||||
UINT16 get_video_control();
|
||||
|
||||
// color/palette related
|
||||
std::vector<UINT16> m_paletteram;
|
||||
|
Loading…
Reference in New Issue
Block a user