mirror of
https://github.com/holub/mame
synced 2025-06-16 09:20:04 +03:00
nes: CPU clock (well, phase 2 clock) also received by cartridge slot (nw)
This commit is contained in:
parent
48b45768a0
commit
5b316c6d23
@ -126,7 +126,7 @@ void nes_fcg_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -147,7 +147,7 @@ void nes_lz93d50_24c01_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -170,7 +170,7 @@ void nes_fjump2_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_reg));
|
save_item(NAME(m_reg));
|
||||||
}
|
}
|
||||||
|
@ -214,7 +214,7 @@ void nes_mbaby_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->reset();
|
irq_timer->reset();
|
||||||
timer_freq = machine().device<cpu_device>("maincpu")->cycles_to_attotime(24576);
|
timer_freq = clocks_to_attotime(24576);
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
@ -249,7 +249,7 @@ void nes_smb3p_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -303,7 +303,7 @@ void nes_smb2j_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -326,7 +326,7 @@ void nes_smb2ja_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -349,7 +349,7 @@ void nes_smb2jb_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -435,7 +435,7 @@ void nes_lh53_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -516,7 +516,7 @@ void nes_shuiguan_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
// always running and checking for IRQ every 114 cycles? or resetting every frame?
|
// always running and checking for IRQ every 114 cycles? or resetting every frame?
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(114));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(114));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
|
@ -67,7 +67,7 @@ void nes_cony_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -103,7 +103,7 @@ void nes_yoko_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
|
@ -233,8 +233,8 @@ void nes_datach_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
serial_timer = timer_alloc(TIMER_SERIAL);
|
serial_timer = timer_alloc(TIMER_SERIAL);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
serial_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1000));
|
serial_timer->adjust(attotime::zero, 0, clocks_to_attotime(1000));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
|
@ -117,7 +117,7 @@ void nes_disksys_device::device_start()
|
|||||||
m_disk->floppy_install_unload_proc(nes_disksys_device::unload_proc);
|
m_disk->floppy_install_unload_proc(nes_disksys_device::unload_proc);
|
||||||
|
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_fds_motor_on));
|
save_item(NAME(m_fds_motor_on));
|
||||||
save_item(NAME(m_fds_door_closed));
|
save_item(NAME(m_fds_door_closed));
|
||||||
|
@ -52,7 +52,7 @@ void nes_event_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
event_timer = timer_alloc(TIMER_EVENT);
|
event_timer = timer_alloc(TIMER_EVENT);
|
||||||
event_timer->adjust(attotime::never);
|
event_timer->adjust(attotime::never);
|
||||||
timer_freq = machine().device<cpu_device>("maincpu")->cycles_to_attotime(1);
|
timer_freq = clocks_to_attotime(1);
|
||||||
|
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
save_item(NAME(m_count));
|
save_item(NAME(m_count));
|
||||||
|
@ -259,6 +259,6 @@ READ8_MEMBER(nes_ggenie_device::nt_r)
|
|||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
MACHINE_CONFIG_START(nes_ggenie_device::device_add_mconfig)
|
MACHINE_CONFIG_START(nes_ggenie_device::device_add_mconfig)
|
||||||
MCFG_NES_CARTRIDGE_ADD("gg_slot", nes_cart, nullptr)
|
MCFG_NES_CARTRIDGE_ADD("gg_slot", DERIVED_CLOCK(1, 1), nes_cart, nullptr)
|
||||||
MCFG_NES_CARTRIDGE_NOT_MANDATORY
|
MCFG_NES_CARTRIDGE_NOT_MANDATORY
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
@ -130,7 +130,7 @@ void nes_h3001_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
|
@ -210,7 +210,7 @@ void nes_ss88006_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_mmc_prg_bank));
|
save_item(NAME(m_mmc_prg_bank));
|
||||||
save_item(NAME(m_mmc_vrom_bank));
|
save_item(NAME(m_mmc_vrom_bank));
|
||||||
|
@ -76,7 +76,7 @@ void nes_jy_typea_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->reset();
|
irq_timer->reset();
|
||||||
timer_freq = machine().device<cpu_device>("maincpu")->cycles_to_attotime(1);
|
timer_freq = clocks_to_attotime(1);
|
||||||
|
|
||||||
save_item(NAME(m_mul));
|
save_item(NAME(m_mul));
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
|
@ -150,7 +150,7 @@ void nes_ks7032_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
@ -176,7 +176,7 @@ void nes_ks7017_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
|
@ -126,7 +126,7 @@ void nes_konami_vrc3_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_mode));
|
save_item(NAME(m_irq_mode));
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
@ -154,7 +154,7 @@ void nes_konami_vrc4_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_mode));
|
save_item(NAME(m_irq_mode));
|
||||||
save_item(NAME(m_irq_prescale));
|
save_item(NAME(m_irq_prescale));
|
||||||
@ -195,7 +195,7 @@ void nes_konami_vrc7_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_mode));
|
save_item(NAME(m_irq_mode));
|
||||||
save_item(NAME(m_irq_prescale));
|
save_item(NAME(m_irq_prescale));
|
||||||
|
@ -78,7 +78,7 @@ void nes_ffe4_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_exram));
|
save_item(NAME(m_exram));
|
||||||
save_item(NAME(m_exram_enabled));
|
save_item(NAME(m_exram_enabled));
|
||||||
|
@ -145,7 +145,7 @@ void nes_namcot340_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -171,7 +171,7 @@ void nes_namcot175_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
@ -199,7 +199,7 @@ void nes_namcot163_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_count));
|
save_item(NAME(m_irq_count));
|
||||||
|
@ -111,7 +111,9 @@ device_nes_cart_interface::device_nes_cart_interface(const machine_config &mconf
|
|||||||
, m_ciram(nullptr)
|
, m_ciram(nullptr)
|
||||||
, m_prg_size(0)
|
, m_prg_size(0)
|
||||||
, m_vrom_size(0)
|
, m_vrom_size(0)
|
||||||
, m_maincpu(nullptr)
|
// HACK: to reduce tagmap lookups for PPU-related IRQs, we add a hook to the
|
||||||
|
// main NES CPU here, even if it does not belong to this device.
|
||||||
|
, m_maincpu(*this, ":maincpu")
|
||||||
, m_mapper_sram(nullptr)
|
, m_mapper_sram(nullptr)
|
||||||
, m_mapper_sram_size(0)
|
, m_mapper_sram_size(0)
|
||||||
, m_ce_mask(0)
|
, m_ce_mask(0)
|
||||||
@ -671,10 +673,6 @@ WRITE8_MEMBER(device_nes_cart_interface::write_h)
|
|||||||
|
|
||||||
void device_nes_cart_interface::pcb_start(running_machine &machine, uint8_t *ciram_ptr, bool cart_mounted)
|
void device_nes_cart_interface::pcb_start(running_machine &machine, uint8_t *ciram_ptr, bool cart_mounted)
|
||||||
{
|
{
|
||||||
// HACK: to reduce tagmap lookups for PPU-related IRQs, we add a hook to the
|
|
||||||
// main NES CPU here, even if it does not belong to this device.
|
|
||||||
m_maincpu = machine.device<cpu_device>("maincpu");
|
|
||||||
|
|
||||||
if (cart_mounted) // disksys expansion can arrive here without the memory banks!
|
if (cart_mounted) // disksys expansion can arrive here without the memory banks!
|
||||||
{
|
{
|
||||||
// Setup PRG
|
// Setup PRG
|
||||||
|
@ -245,7 +245,7 @@ protected:
|
|||||||
|
|
||||||
// HACK: to reduce tagmap lookups for PPU-related IRQs, we add a hook to the
|
// HACK: to reduce tagmap lookups for PPU-related IRQs, we add a hook to the
|
||||||
// main NES CPU here, even if it does not belong to this device.
|
// main NES CPU here, even if it does not belong to this device.
|
||||||
cpu_device *m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
|
||||||
// these are specific of some boards but must be accessible from the driver
|
// these are specific of some boards but must be accessible from the driver
|
||||||
// E.g. additional save ram for HKROM, X1-005 & X1-017 boards, or ExRAM for MMC5
|
// E.g. additional save ram for HKROM, X1-005 & X1-017 boards, or ExRAM for MMC5
|
||||||
@ -414,18 +414,12 @@ DECLARE_DEVICE_TYPE(NES_CART_SLOT, nes_cart_slot_device)
|
|||||||
#define NESSLOT_CHRROM_REGION_TAG ":cart:chr_rom"
|
#define NESSLOT_CHRROM_REGION_TAG ":cart:chr_rom"
|
||||||
|
|
||||||
|
|
||||||
#define MCFG_NES_CARTRIDGE_ADD(_tag, _slot_intf, _def_slot) \
|
#define MCFG_NES_CARTRIDGE_ADD(_tag, _clock, _slot_intf, _def_slot) \
|
||||||
MCFG_DEVICE_ADD(_tag, NES_CART_SLOT, 0) \
|
MCFG_DEVICE_ADD(_tag, NES_CART_SLOT, _clock) \
|
||||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
|
||||||
|
|
||||||
#define MCFG_NES_CARTRIDGE_NOT_MANDATORY \
|
#define MCFG_NES_CARTRIDGE_NOT_MANDATORY \
|
||||||
static_cast<nes_cart_slot_device *>(device)->set_must_be_loaded(false);
|
static_cast<nes_cart_slot_device *>(device)->set_must_be_loaded(false);
|
||||||
|
|
||||||
|
|
||||||
// Hacky configuration to add a slot with fixed disksys interface
|
|
||||||
#define MCFG_DISKSYS_ADD(_tag, _slot_intf, _def_slot) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, NES_CART_SLOT, 0) \
|
|
||||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, true) \
|
|
||||||
MCFG_NES_CARTRIDGE_NOT_MANDATORY
|
|
||||||
|
|
||||||
#endif // MAME_BUS_NES_NES_SLOT_H
|
#endif // MAME_BUS_NES_NES_SLOT_H
|
||||||
|
@ -383,7 +383,7 @@ void nes_cityfight_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_prg_reg));
|
save_item(NAME(m_prg_reg));
|
||||||
save_item(NAME(m_prg_mode));
|
save_item(NAME(m_prg_mode));
|
||||||
|
@ -124,7 +124,7 @@ void nes_sunsoft_3_device::device_start()
|
|||||||
{
|
{
|
||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_irq_enable));
|
save_item(NAME(m_irq_enable));
|
||||||
save_item(NAME(m_irq_toggle));
|
save_item(NAME(m_irq_toggle));
|
||||||
@ -170,7 +170,7 @@ void nes_sunsoft_fme7_device::device_start()
|
|||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
// this has to be hardcoded because some some scanline code only suits NTSC... it will be fixed with PPU rewrite
|
// this has to be hardcoded because some some scanline code only suits NTSC... it will be fixed with PPU rewrite
|
||||||
irq_timer->adjust(attotime::zero, 0, attotime::from_hz((21477272.724 / 12)));
|
irq_timer->adjust(attotime::zero, 0, attotime::from_hz((21477272.724 / 12)));
|
||||||
// irq_timer->adjust(attotime::zero, 0, machine().device<cpu_device>("maincpu")->cycles_to_attotime(1));
|
// irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
|
||||||
|
|
||||||
save_item(NAME(m_wram_bank));
|
save_item(NAME(m_wram_bank));
|
||||||
save_item(NAME(m_latch));
|
save_item(NAME(m_latch));
|
||||||
|
@ -169,7 +169,7 @@ void nes_sunsoft_dcs_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
ntb_enable_timer = timer_alloc(TIMER_PROTECT);
|
ntb_enable_timer = timer_alloc(TIMER_PROTECT);
|
||||||
ntb_enable_timer->reset();
|
ntb_enable_timer->reset();
|
||||||
timer_freq = machine().device<cpu_device>("maincpu")->cycles_to_attotime(107520);
|
timer_freq = clocks_to_attotime(107520);
|
||||||
|
|
||||||
save_item(NAME(m_latch1));
|
save_item(NAME(m_latch1));
|
||||||
save_item(NAME(m_latch2));
|
save_item(NAME(m_latch2));
|
||||||
|
@ -83,7 +83,7 @@ void nes_tengen032_device::device_start()
|
|||||||
common_start();
|
common_start();
|
||||||
irq_timer = timer_alloc(TIMER_IRQ);
|
irq_timer = timer_alloc(TIMER_IRQ);
|
||||||
irq_timer->reset();
|
irq_timer->reset();
|
||||||
timer_freq = machine().device<cpu_device>("maincpu")->cycles_to_attotime(4);
|
timer_freq = clocks_to_attotime(4);
|
||||||
|
|
||||||
save_item(NAME(m_mmc_prg_bank));
|
save_item(NAME(m_mmc_prg_bank));
|
||||||
save_item(NAME(m_mmc_vrom_bank));
|
save_item(NAME(m_mmc_vrom_bank));
|
||||||
|
@ -79,7 +79,7 @@ MACHINE_CONFIG_START(nes_state::nes)
|
|||||||
MCFG_NES_CONTROL_PORT_ADD("ctrl2", nes_control_port2_devices, "joypad")
|
MCFG_NES_CONTROL_PORT_ADD("ctrl2", nes_control_port2_devices, "joypad")
|
||||||
MCFG_NESCTRL_BRIGHTPIXEL_CB(nes_state, bright_pixel)
|
MCFG_NESCTRL_BRIGHTPIXEL_CB(nes_state, bright_pixel)
|
||||||
|
|
||||||
MCFG_NES_CARTRIDGE_ADD("nes_slot", nes_cart, nullptr)
|
MCFG_NES_CARTRIDGE_ADD("nes_slot", NTSC_APU_CLOCK, nes_cart, nullptr)
|
||||||
MCFG_SOFTWARE_LIST_ADD("cart_list", "nes")
|
MCFG_SOFTWARE_LIST_ADD("cart_list", "nes")
|
||||||
MCFG_SOFTWARE_LIST_ADD("ade_list", "nes_ade") // Camerica/Codemasters Aladdin Deck Enhancer mini-carts
|
MCFG_SOFTWARE_LIST_ADD("ade_list", "nes_ade") // Camerica/Codemasters Aladdin Deck Enhancer mini-carts
|
||||||
MCFG_SOFTWARE_LIST_ADD("ntb_list", "nes_ntbrom") // Sunsoft Nantettate! Baseball mini-carts
|
MCFG_SOFTWARE_LIST_ADD("ntb_list", "nes_ntbrom") // Sunsoft Nantettate! Baseball mini-carts
|
||||||
@ -99,6 +99,9 @@ MACHINE_CONFIG_START(nes_state::nespal)
|
|||||||
MCFG_PPU2C0X_CPU("maincpu")
|
MCFG_PPU2C0X_CPU("maincpu")
|
||||||
MCFG_PPU2C0X_INT_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
MCFG_PPU2C0X_INT_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||||
|
|
||||||
|
MCFG_DEVICE_MODIFY("nes_slot")
|
||||||
|
MCFG_DEVICE_CLOCK(PAL_APU_CLOCK)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_MODIFY("screen")
|
MCFG_SCREEN_MODIFY("screen")
|
||||||
MCFG_SCREEN_REFRESH_RATE(50.0070)
|
MCFG_SCREEN_REFRESH_RATE(50.0070)
|
||||||
@ -132,6 +135,9 @@ MACHINE_CONFIG_START(nes_state::nespalc)
|
|||||||
MCFG_PPU2C0X_CPU("maincpu")
|
MCFG_PPU2C0X_CPU("maincpu")
|
||||||
MCFG_PPU2C0X_INT_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
MCFG_PPU2C0X_INT_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||||
|
|
||||||
|
MCFG_DEVICE_MODIFY("nes_slot")
|
||||||
|
MCFG_DEVICE_CLOCK(PALC_APU_CLOCK)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_MODIFY("screen")
|
MCFG_SCREEN_MODIFY("screen")
|
||||||
MCFG_SCREEN_REFRESH_RATE(50.0070)
|
MCFG_SCREEN_REFRESH_RATE(50.0070)
|
||||||
|
Loading…
Reference in New Issue
Block a user