From 6ba8b0f1ae4d98f9cfb7525aa90bf7d597da59bf Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Sun, 9 Dec 2018 14:24:28 +0100 Subject: -mips, rsp: Removed MCFG, nw -aleck64, hng64, kinst, namcops2, namcos23, ps2sony, pyson, vp101: Removed MACHINE_CONFIG_*, nw --- src/devices/cpu/mips/mips3.h | 10 -- src/devices/cpu/rsp/rsp.h | 25 +--- src/devices/imagedev/harddriv.h | 2 +- src/devices/machine/ioptimer.h | 5 +- src/mame/drivers/aleck64.cpp | 84 +++++++------ src/mame/drivers/hng64.cpp | 50 ++++---- src/mame/drivers/kinst.cpp | 34 +++--- src/mame/drivers/magictg.cpp | 25 ++-- src/mame/drivers/n64.cpp | 96 +++++++-------- src/mame/drivers/namcops2.cpp | 32 ++--- src/mame/drivers/namcos23.cpp | 253 +++++++++++++++++++--------------------- src/mame/drivers/ps2sony.cpp | 78 ++++++------- src/mame/drivers/pyson.cpp | 29 ++--- src/mame/drivers/vp101.cpp | 87 +++++++------- 14 files changed, 379 insertions(+), 431 deletions(-) diff --git a/src/devices/cpu/mips/mips3.h b/src/devices/cpu/mips/mips3.h index f13ce45169e..8d16c6cbd84 100644 --- a/src/devices/cpu/mips/mips3.h +++ b/src/devices/cpu/mips/mips3.h @@ -264,16 +264,6 @@ struct mips3_tlb_entry { #define MIPS3_MAX_TLB_ENTRIES 48 -#define MCFG_MIPS3_ICACHE_SIZE(_size) \ - downcast(*device).set_icache_size(_size); - -#define MCFG_MIPS3_DCACHE_SIZE(_size) \ - downcast(*device).set_dcache_size(_size); - -#define MCFG_MIPS3_SYSTEM_CLOCK(_clock) \ - downcast(*device).set_system_clock(_clock); - - class mips3_frontend; class mips3_device : public cpu_device, public device_vtlb_interface { diff --git a/src/devices/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h index 0e07b732ad2..70e68867d6a 100644 --- a/src/devices/cpu/rsp/rsp.h +++ b/src/devices/cpu/rsp/rsp.h @@ -83,21 +83,6 @@ enum #define RSPDRC_STRICT_VERIFY 0x0001 /* verify all instructions */ -#define MCFG_RSP_DP_REG_R_CB(_devcb) \ - downcast(*device).set_dp_reg_r_callback(DEVCB_##_devcb); - -#define MCFG_RSP_DP_REG_W_CB(_devcb) \ - downcast(*device).set_dp_reg_w_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_REG_R_CB(_devcb) \ - downcast(*device).set_sp_reg_r_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_REG_W_CB(_devcb) \ - downcast(*device).set_sp_reg_w_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_SET_STATUS_CB(_devcb) \ - downcast(*device).set_status_callback(DEVCB_##_devcb); - class rsp_device : public cpu_device { @@ -111,11 +96,11 @@ public: virtual ~rsp_device() override; void resolve_cb(); - template devcb_base &set_dp_reg_r_callback(Object &&cb) { return m_dp_reg_r_func.set_callback(std::forward(cb)); } - template devcb_base &set_dp_reg_w_callback(Object &&cb) { return m_dp_reg_w_func.set_callback(std::forward(cb)); } - template devcb_base &set_sp_reg_r_callback(Object &&cb) { return m_sp_reg_r_func.set_callback(std::forward(cb)); } - template devcb_base &set_sp_reg_w_callback(Object &&cb) { return m_sp_reg_w_func.set_callback(std::forward(cb)); } - template devcb_base &set_status_callback(Object &&cb) { return m_sp_set_status_func.set_callback(std::forward(cb)); } + auto dp_reg_r() { return m_dp_reg_r_func.bind(); } + auto dp_reg_w() { return m_dp_reg_w_func.bind(); } + auto sp_reg_r() { return m_sp_reg_r_func.bind(); } + auto sp_reg_w() { return m_sp_reg_w_func.bind(); } + auto status_set() { return m_sp_set_status_func.bind(); } void rspdrc_flush_drc_cache(); void rspdrc_set_options(uint32_t options); diff --git a/src/devices/imagedev/harddriv.h b/src/devices/imagedev/harddriv.h index 674ff5c3570..92a6b733275 100644 --- a/src/devices/imagedev/harddriv.h +++ b/src/devices/imagedev/harddriv.h @@ -25,7 +25,7 @@ class harddisk_image_device : public device_t, { public: // construction/destruction - harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + harddisk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); virtual ~harddisk_image_device(); template void set_device_load(Object &&cb) { m_device_image_load = std::forward(cb); } diff --git a/src/devices/machine/ioptimer.h b/src/devices/machine/ioptimer.h index 316349e7a90..8683f3cd61e 100644 --- a/src/devices/machine/ioptimer.h +++ b/src/devices/machine/ioptimer.h @@ -14,15 +14,12 @@ #pragma once -#define MCFG_IOP_TIMER_IRQ_CALLBACK(_write) \ - downcast(*device).set_int_cb(DEVCB_##_write); - class iop_timer_device : public device_t { public: iop_timer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_int_cb(Object &&cb) { return m_int_cb.set_callback(std::forward(cb)); } + auto irq() { return m_int_cb.bind(); } DECLARE_READ32_MEMBER(read); DECLARE_WRITE32_MEMBER(write); diff --git a/src/mame/drivers/aleck64.cpp b/src/mame/drivers/aleck64.cpp index d39085010aa..77b1883d10a 100644 --- a/src/mame/drivers/aleck64.cpp +++ b/src/mame/drivers/aleck64.cpp @@ -187,10 +187,11 @@ class aleck64_state : public n64_state { public: aleck64_state(const machine_config &mconfig, device_type type, const char *tag) - : n64_state(mconfig, type, tag), - m_e90_vram(*this,"e90vram"), - m_e90_pal(*this,"e90pal"), - m_dip_read_offset(0) { } + : n64_state(mconfig, type, tag) + , m_e90_vram(*this,"e90vram") + , m_e90_pal(*this,"e90pal") + , m_dip_read_offset(0) + { } void aleck64(machine_config &config); void a64_e90(machine_config &config); @@ -972,45 +973,43 @@ static INPUT_PORTS_START( srmvs ) INPUT_PORTS_END -MACHINE_CONFIG_START(aleck64_state::aleck64) - +void aleck64_state::aleck64(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", VR4300BE, 93750000) - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(8192) - MCFG_MIPS3_SYSTEM_CLOCK(62500000) - MCFG_DEVICE_PROGRAM_MAP(n64_map) - MCFG_CPU_FORCE_NO_DRC() - - MCFG_DEVICE_ADD("rsp", RSP, 62500000) - MCFG_RSP_DP_REG_R_CB(READ32("rcp",n64_periphs, dp_reg_r)) - MCFG_RSP_DP_REG_W_CB(WRITE32("rcp",n64_periphs, dp_reg_w)) - MCFG_RSP_SP_REG_R_CB(READ32("rcp",n64_periphs, sp_reg_r)) - MCFG_RSP_SP_REG_W_CB(WRITE32("rcp",n64_periphs, sp_reg_w)) - MCFG_RSP_SP_SET_STATUS_CB(WRITE32("rcp",n64_periphs, sp_set_status)) - MCFG_DEVICE_PROGRAM_MAP(rsp_map) - MCFG_CPU_FORCE_NO_DRC() - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(640, 525) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(aleck64_state, screen_update_n64) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, aleck64_state, screen_vblank_n64)) - - MCFG_PALETTE_ADD("palette", 0x1000) + VR4300BE(config, m_vr4300, 93750000); + m_vr4300->set_icache_size(16384); + m_vr4300->set_dcache_size(8192); + m_vr4300->set_system_clock(62500000); + m_vr4300->set_addrmap(AS_PROGRAM, &aleck64_state::n64_map); + m_vr4300->set_force_no_drc(true); + + RSP(config, m_rsp, 62500000); + m_rsp->dp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_r)); + m_rsp->dp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_w)); + m_rsp->sp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_r)); + m_rsp->sp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_w)); + m_rsp->status_set().set(m_rcp_periphs, FUNC(n64_periphs::sp_set_status)); + m_rsp->set_addrmap(AS_PROGRAM, &aleck64_state::rsp_map); + m_rsp->set_force_no_drc(true); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(640, 525); + screen.set_visarea(0, 639, 0, 239); + screen.set_screen_update(FUNC(aleck64_state::screen_update_n64)); + screen.screen_vblank().set(FUNC(aleck64_state::screen_vblank_n64)); + + PALETTE(config, "palette", 0x1000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("dac1", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_DEVICE_ADD("dac2", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "lspeaker", 1.0); + DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "rspeaker", 1.0); - N64PERIPH(config, "rcp", 0); -MACHINE_CONFIG_END + N64PERIPH(config, m_rcp_periphs, 0); +} uint32_t aleck64_state::screen_update_e90(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { @@ -1087,14 +1086,13 @@ uint32_t aleck64_state::screen_update_e90(screen_device &screen, bitmap_rgb32 &b return 0; } -MACHINE_CONFIG_START(aleck64_state::a64_e90) +void aleck64_state::a64_e90(machine_config &config) +{ aleck64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(e90_map) + m_vr4300->set_addrmap(AS_PROGRAM, &aleck64_state::e90_map); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(aleck64_state, screen_update_e90) -MACHINE_CONFIG_END + subdevice("screen")->set_screen_update(FUNC(aleck64_state::screen_update_e90)); +} void aleck64_state::init_aleck64() { diff --git a/src/mame/drivers/hng64.cpp b/src/mame/drivers/hng64.cpp index 10d02f4944d..f4bc58d3e25 100644 --- a/src/mame/drivers/hng64.cpp +++ b/src/mame/drivers/hng64.cpp @@ -2108,25 +2108,25 @@ void hng64_state::init_io() MACHINE_CONFIG_START(hng64_state::hng64) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", VR4300BE, HNG64_MASTER_CLOCK) // actually R4300 - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_DEVICE_PROGRAM_MAP(hng_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hng64_state, hng64_irq, "screen", 0, 1) + VR4300BE(config, m_maincpu, HNG64_MASTER_CLOCK); // actually R4300 + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_addrmap(AS_PROGRAM, &hng64_state::hng_map); + + TIMER(config, "scantimer", 0).configure_scanline(FUNC(hng64_state::hng64_irq), "screen", 0, 1); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_DEVICE_ADD("rtc", RTC62423, XTAL(32'768)) + RTC62423(config, m_rtc, XTAL(32'768)); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_hng64) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_hng64); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, hng64_state, screen_vblank_hng64)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(hng64_state::screen_update_hng64)); + m_screen->screen_vblank().set(FUNC(hng64_state::screen_vblank_hng64)); - MCFG_PALETTE_ADD("palette", 0x1000) - MCFG_PALETTE_FORMAT(XRGB) + PALETTE(config, m_palette, 0x1000).set_format(PALETTE_FORMAT_XRGB); hng64_audio(config); hng64_network(config); @@ -2161,11 +2161,12 @@ MACHINE_CONFIG_START(hng64_state::hng64) iomcu.serial0_out_cb().set(FUNC(hng64_state::sio0_w)); //iomcu.serial1_out_cb().set(FUNC(hng64_state::sio1_w)); // not initialized / used - MCFG_DEVICE_ADD("dt71321_dpram", IDT71321, 0) + IDT71321(config, "dt71321_dpram", 0); //MCFG_MB8421_INTL_AN0R(INPUTLINE("xxx", 0)) // I don't think the IRQs are connected -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hng64_state::hng64_default) +void hng64_state::hng64_default(machine_config &config) +{ hng64(config); hng64_lamps_device &lamps(HNG64_LAMPS(config, m_lamps, 0)); @@ -2177,31 +2178,34 @@ MACHINE_CONFIG_START(hng64_state::hng64_default) lamps.lamps5_out_cb().set(FUNC(hng64_state::hng64_default_lamps5_w)); lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_default_lamps6_w)); lamps.lamps7_out_cb().set(FUNC(hng64_state::hng64_default_lamps7_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hng64_state::hng64_drive) +void hng64_state::hng64_drive(machine_config &config) +{ hng64(config); hng64_lamps_device &lamps(HNG64_LAMPS(config, m_lamps, 0)); lamps.lamps5_out_cb().set(FUNC(hng64_state::hng64_drive_lamps5_w)); // force feedback steering lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_drive_lamps6_w)); // lamps + coin counter lamps.lamps7_out_cb().set(FUNC(hng64_state::hng64_drive_lamps7_w)); // lamps -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hng64_state::hng64_shoot) +void hng64_state::hng64_shoot(machine_config &config) +{ hng64(config); hng64_lamps_device &lamps(HNG64_LAMPS(config, m_lamps, 0)); lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_shoot_lamps6_w)); // start lamps (some misisng?!) lamps.lamps7_out_cb().set(FUNC(hng64_state::hng64_shoot_lamps7_w)); // gun lamps -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(hng64_state::hng64_fight) +void hng64_state::hng64_fight(machine_config &config) +{ hng64(config); hng64_lamps_device &lamps(HNG64_LAMPS(config, m_lamps, 0)); lamps.lamps6_out_cb().set(FUNC(hng64_state::hng64_fight_lamps6_w)); // coin counters -MACHINE_CONFIG_END +} #define ROM_LOAD_HNG64_BIOS(bios,name,offset,length,hash) \ diff --git a/src/mame/drivers/kinst.cpp b/src/mame/drivers/kinst.cpp index edb37fba599..72bfea15efd 100644 --- a/src/mame/drivers/kinst.cpp +++ b/src/mame/drivers/kinst.cpp @@ -718,33 +718,33 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(kinst_state::kinst) - +void kinst_state::kinst(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, R4600LE, MASTER_CLOCK*2) - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", kinst_state, irq0_start) + R4600LE(config, m_maincpu, MASTER_CLOCK*2); + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_addrmap(AS_PROGRAM, &kinst_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(kinst_state::irq0_start)); ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, true); m_ata->irq_handler().set_inputline("maincpu", 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(320, 240); + screen.set_visarea(0, 319, 0, 239); + screen.set_screen_update(FUNC(kinst_state::screen_update)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD_BBBBBGGGGGRRRRR("palette") + PALETTE(config, "palette", 32768).set_init("palette", FUNC(palette_device::palette_init_BBBBBGGGGGRRRRR)); /* sound hardware */ DCS_AUDIO_2K(config, m_dcs, 0); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/magictg.cpp b/src/mame/drivers/magictg.cpp index b95338367fa..9a749b09e5b 100644 --- a/src/mame/drivers/magictg.cpp +++ b/src/mame/drivers/magictg.cpp @@ -159,7 +159,7 @@ public: void magictg(machine_config &config); private: - required_device m_mips; + required_device m_mips; required_device m_adsp; required_device m_pci; @@ -911,24 +911,21 @@ INPUT_PORTS_END *************************************/ MACHINE_CONFIG_START(magictg_state::magictg) - MCFG_DEVICE_ADD("mips", R5000BE, 150000000) /* TODO: CPU type and clock are unknown */ - //MCFG_MIPS3_ICACHE_SIZE(16384) /* TODO: Unknown */ - //MCFG_MIPS3_DCACHE_SIZE(16384) /* TODO: Unknown */ - MCFG_DEVICE_PROGRAM_MAP(magictg_map) + R5000BE(config, m_mips, 150000000); /* TODO: CPU type and clock are unknown */ + //m_mips->set_icache_size(16384); /* TODO: Unknown */ + //m_mips->set_dcache_size(16384); /* TODO: Unknown */ + m_mips->set_addrmap(AS_PROGRAM, &magictg_state::magictg_map); - MCFG_DEVICE_ADD("adsp", ADSP2181, 16000000) - MCFG_DEVICE_PROGRAM_MAP(adsp_program_map) - MCFG_DEVICE_DATA_MAP(adsp_data_map) - MCFG_DEVICE_IO_MAP(adsp_io_map) + ADSP2181(config, m_adsp, 16000000); + m_adsp->set_addrmap(AS_PROGRAM, &magictg_state::adsp_program_map); + m_adsp->set_addrmap(AS_DATA, &magictg_state::adsp_data_map); + m_adsp->set_addrmap(AS_IO, &magictg_state::adsp_io_map); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("dac1", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) - - MCFG_DEVICE_ADD("dac2", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) + DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0); + DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0); MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0) MCFG_PCI_BUS_LEGACY_DEVICE(0, DEVICE_SELF, magictg_state, pci_dev0_r, pci_dev0_w) diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp index 44687dc35c0..7c59945aadc 100644 --- a/src/mame/drivers/n64.cpp +++ b/src/mame/drivers/n64.cpp @@ -430,78 +430,70 @@ INTERRUPT_GEN_MEMBER(n64_mess_state::n64_reset_poll) MACHINE_CONFIG_START(n64_mess_state::n64) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", VR4300BE, 93750000) - MCFG_CPU_FORCE_NO_DRC() - //MCFG_MIPS3_ICACHE_SIZE(16384) /* ?? */ - //MCFG_MIPS3_DCACHE_SIZE(8192) /* ?? */ - //MCFG_MIPS3_SYSTEM_CLOCK(62500000) /* ?? */ - MCFG_DEVICE_PROGRAM_MAP(n64_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", n64_mess_state, n64_reset_poll) - - MCFG_DEVICE_ADD("rsp", RSP, 62500000) - MCFG_CPU_FORCE_NO_DRC() - MCFG_RSP_DP_REG_R_CB(READ32("rcp",n64_periphs, dp_reg_r)) - MCFG_RSP_DP_REG_W_CB(WRITE32("rcp",n64_periphs, dp_reg_w)) - MCFG_RSP_SP_REG_R_CB(READ32("rcp",n64_periphs, sp_reg_r)) - MCFG_RSP_SP_REG_W_CB(WRITE32("rcp",n64_periphs, sp_reg_w)) - MCFG_RSP_SP_SET_STATUS_CB(WRITE32("rcp",n64_periphs, sp_set_status)) - MCFG_DEVICE_PROGRAM_MAP(rsp_map) - - MCFG_QUANTUM_TIME(attotime::from_hz(500000)) - //MCFG_QUANTUM_TIME(attotime::from_hz(1200)) + VR4300BE(config, m_vr4300, 93750000); + m_vr4300->set_force_no_drc(true); + //m_vr4300->set_icache_size(16384); + //m_vr4300->set_dcache_size(8192); + //m_vr4300->set_system_clock(62500000); + m_vr4300->set_addrmap(AS_PROGRAM, &n64_mess_state::n64_map); + m_vr4300->set_vblank_int("screen", FUNC(n64_mess_state::n64_reset_poll)); + + RSP(config, m_rsp, 62500000); + m_rsp->set_force_no_drc(true); + m_rsp->dp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_r)); + m_rsp->dp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::dp_reg_w)); + m_rsp->sp_reg_r().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_r)); + m_rsp->sp_reg_w().set(m_rcp_periphs, FUNC(n64_periphs::sp_reg_w)); + m_rsp->status_set().set(m_rcp_periphs, FUNC(n64_periphs::sp_set_status)); + m_rsp->set_addrmap(AS_PROGRAM, &n64_mess_state::rsp_map); + + config.m_minimum_quantum = attotime::from_hz(500000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); /* Video DACRATE is for quarter pixels, so the horizontal is also given in quarter pixels. However, the horizontal and vertical timing and sizing is adjustable by register and will be reset when the registers are written. */ - MCFG_SCREEN_RAW_PARAMS(DACRATE_NTSC*2,3093,0,3093,525,0,525) - //MCFG_SCREEN_REFRESH_RATE(60) - //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - //MCFG_SCREEN_SIZE(640, 525) - //MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, n64_state, screen_vblank_n64)) + screen.set_raw(DACRATE_NTSC*2,3093,0,3093,525,0,525); + screen.set_screen_update(FUNC(n64_state::screen_update_n64)); + screen.screen_vblank().set(FUNC(n64_state::screen_vblank_n64)); - MCFG_PALETTE_ADD("palette", 0x1000) + PALETTE(config, "palette", 0x1000); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("dac2", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_DEVICE_ADD("dac1", DMADAC) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + DMADAC(config, "dac2").add_route(ALL_OUTPUTS, "lspeaker", 1.0); + DMADAC(config, "dac1").add_route(ALL_OUTPUTS, "rspeaker", 1.0); - N64PERIPH(config, "rcp", 0); + N64PERIPH(config, m_rcp_periphs, 0); /* cartridge */ - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "n64_cart") - MCFG_GENERIC_EXTENSIONS("v64,z64,rom,n64,bin") - MCFG_GENERIC_MANDATORY - MCFG_GENERIC_LOAD(n64_mess_state, n64_cart) + generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "n64_cart")); + cartslot.set_extensions("v64,z64,rom,n64,bin"); + cartslot.set_must_be_loaded(true); + cartslot.set_device_load(device_image_load_delegate(&n64_mess_state::device_image_load_n64_cart, this)); /* software lists */ - MCFG_SOFTWARE_LIST_ADD("cart_list", "n64") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("n64"); +} -MACHINE_CONFIG_START(n64_mess_state::n64dd) +void n64_mess_state::n64dd(machine_config &config) +{ n64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(n64dd_map) + m_vr4300->set_addrmap(AS_PROGRAM, &n64_mess_state::n64dd_map); MCFG_MACHINE_START_OVERRIDE(n64_mess_state, n64dd) - MCFG_DEVICE_REMOVE("cartslot") - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "n64_cart") - MCFG_GENERIC_EXTENSIONS("v64,z64,rom,n64,bin") - MCFG_GENERIC_LOAD(n64_mess_state, n64_cart) + generic_cartslot_device &cartslot(GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "n64_cart")); + cartslot.set_extensions("v64,z64,rom,n64,bin"); + cartslot.set_device_load(device_image_load_delegate(&n64_mess_state::device_image_load_n64_cart, this)); - MCFG_HARDDISK_ADD("n64disk") - MCFG_HARDDISK_LOAD(n64_mess_state,n64dd) - MCFG_HARDDISK_UNLOAD(n64_mess_state,n64dd) - MCFG_HARDDISK_INTERFACE("n64dd_disk") + harddisk_image_device &hdd(HARDDISK(config, "n64disk")); + hdd.set_device_load(device_image_load_delegate(&n64_mess_state::device_image_load_n64dd, this)); + hdd.set_device_unload(device_image_func_delegate(&n64_mess_state::device_image_unload_n64dd, this)); + hdd.set_interface("n64dd_disk"); - MCFG_SOFTWARE_LIST_ADD("dd_list", "n64dd") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "dd_list").set_original("n64dd"); +} ROM_START( n64 ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF ) /* dummy region for R4300 */ diff --git a/src/mame/drivers/namcops2.cpp b/src/mame/drivers/namcops2.cpp index 3090da63b44..0667fb02c31 100644 --- a/src/mame/drivers/namcops2.cpp +++ b/src/mame/drivers/namcops2.cpp @@ -894,7 +894,7 @@ private: void ps2_map(address_map &map); // devices - required_device m_maincpu; + required_device m_maincpu; // driver_device overrides virtual void video_start() override; @@ -919,25 +919,27 @@ void namcops2_state::ps2_map(address_map &map) static INPUT_PORTS_START( system246 ) INPUT_PORTS_END -MACHINE_CONFIG_START(namcops2_state::system246) - MCFG_DEVICE_ADD("maincpu", R5000LE, 294000000) // actually R5900 @ 294 MHz - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_DEVICE_PROGRAM_MAP(ps2_map) +void namcops2_state::system246(machine_config &config) +{ + R5000LE(config, m_maincpu, 294000000); // actually R5900 @ 294 MHz + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_addrmap(AS_PROGRAM, &namcops2_state::ps2_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(namcops2_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(FUNC(namcops2_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 639, 0, 479); - MCFG_PALETTE_ADD("palette", 65536) -MACHINE_CONFIG_END + PALETTE(config, "palette", 65536); +} -MACHINE_CONFIG_START(namcops2_state::system256) +void namcops2_state::system256(machine_config &config) +{ system246(config); -MACHINE_CONFIG_END +} #define SYSTEM246_BIOS \ ROM_LOAD( "r27v1602f.7d", 0x000000, 0x200000, CRC(2b2e41a2) SHA1(f0a74bbcaf801f3fd0b7002ebd0118564aae3528) ) diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp index 88d54d326ea..2ce2143ffeb 100644 --- a/src/mame/drivers/namcos23.cpp +++ b/src/mame/drivers/namcos23.cpp @@ -3594,33 +3594,30 @@ static GFXDECODE_START( gfx_namcos23 ) GFXDECODE_END -MACHINE_CONFIG_START(namcos23_state::gorgon) - +void namcos23_state::gorgon(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, R4650BE, BUSCLOCK*4) - MCFG_MIPS3_ICACHE_SIZE(8192) // VERIFIED - MCFG_MIPS3_DCACHE_SIZE(8192) // VERIFIED - MCFG_DEVICE_PROGRAM_MAP(gorgon_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos23_state, interrupt) + R4650BE(config, m_maincpu, BUSCLOCK*4); + m_maincpu->set_icache_size(8192); // VERIFIED + m_maincpu->set_dcache_size(8192); // VERIFIED + m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::gorgon_map); + m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt)); - MCFG_DEVICE_ADD(m_subcpu, H83002, H8CLOCK) - MCFG_DEVICE_PROGRAM_MAP( s23h8rwmap ) - MCFG_DEVICE_IO_MAP( s23h8iomap ) + H83002(config, m_subcpu, H8CLOCK); + m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap); + m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap); // Timer at 115200*16 for the jvs serial clock - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8)) + m_subcpu->subdevice("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); - MCFG_DEVICE_ADD(m_iocpu, H83334, JVSCLOCK ) - MCFG_DEVICE_PROGRAM_MAP( s23iobrdmap ) - MCFG_DEVICE_IO_MAP( s23iobrdiomap ) + H83334(config, m_iocpu, JVSCLOCK); + m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap); + m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap); - MCFG_DEVICE_MODIFY("iocpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("subcpu:sci0", h8_sci_device, rx_w)) - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("iocpu:sci0", h8_sci_device, rx_w)) + m_iocpu->subdevice("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); - MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) + config.m_minimum_quantum = attotime::from_hz(2*115200); NAMCO_SETTINGS(config, m_settings, 0); @@ -3636,17 +3633,17 @@ MACHINE_CONFIG_START(namcos23_state::gorgon) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(VSYNC1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos23_state, sub_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(VSYNC1); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 639, 0, 479); + m_screen->set_screen_update(FUNC(namcos23_state::screen_update)); + m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq)); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette, 0x8000); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos23) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23); MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23) @@ -3654,41 +3651,38 @@ MACHINE_CONFIG_START(namcos23_state::gorgon) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("c352", C352, C352CLOCK, C352DIV) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(2, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(3, "rspeaker", 1.00) -MACHINE_CONFIG_END - + c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV)); + c352.add_route(0, "lspeaker", 1.00); + c352.add_route(1, "rspeaker", 1.00); + c352.add_route(2, "lspeaker", 1.00); + c352.add_route(3, "rspeaker", 1.00); +} -MACHINE_CONFIG_START(namcos23_state::s23) +void namcos23_state::s23(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, R4650BE, BUSCLOCK*4) - MCFG_MIPS3_ICACHE_SIZE(8192) // VERIFIED - MCFG_MIPS3_DCACHE_SIZE(8192) // VERIFIED - MCFG_DEVICE_PROGRAM_MAP(s23_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos23_state, interrupt) + R4650BE(config, m_maincpu, BUSCLOCK*4); + m_maincpu->set_icache_size(8192); // VERIFIED + m_maincpu->set_dcache_size(8192); // VERIFIED + m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23_map); + m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt)); - MCFG_DEVICE_ADD(m_subcpu, H83002, H8CLOCK) - MCFG_DEVICE_PROGRAM_MAP( s23h8rwmap ) - MCFG_DEVICE_IO_MAP( s23h8iomap ) + H83002(config, m_subcpu, H8CLOCK); + m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap); + m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap); // Timer at 115200*16 for the jvs serial clock - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8)) + m_subcpu->subdevice("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); - MCFG_DEVICE_ADD(m_iocpu, H83334, JVSCLOCK ) - MCFG_DEVICE_PROGRAM_MAP( s23iobrdmap ) - MCFG_DEVICE_IO_MAP( s23iobrdiomap ) + H83334(config, m_iocpu, JVSCLOCK); + m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap); + m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap); - MCFG_DEVICE_MODIFY("iocpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("subcpu:sci0", h8_sci_device, rx_w)) - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("iocpu:sci0", h8_sci_device, rx_w)) + m_iocpu->subdevice("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); - MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) + config.m_minimum_quantum = attotime::from_hz(2*115200); NAMCO_SETTINGS(config, m_settings, 0); @@ -3704,17 +3698,17 @@ MACHINE_CONFIG_START(namcos23_state::s23) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(VSYNC1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos23_state, sub_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(VSYNC1); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 639, 0, 479); + m_screen->set_screen_update(FUNC(namcos23_state::screen_update)); + m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq)); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette, 0x8000); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos23) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23); MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23) @@ -3722,54 +3716,52 @@ MACHINE_CONFIG_START(namcos23_state::s23) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("c352", C352, C352CLOCK, C352DIV) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(3, "lspeaker", 1.00) -MACHINE_CONFIG_END + c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV)); + c352.add_route(0, "rspeaker", 1.00); + c352.add_route(1, "lspeaker", 1.00); + c352.add_route(2, "rspeaker", 1.00); + c352.add_route(3, "lspeaker", 1.00); +} -MACHINE_CONFIG_START(namcos23_state::timecrs2) +void namcos23_state::timecrs2(machine_config &config) +{ s23(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("iocpu") - MCFG_DEVICE_PROGRAM_MAP( timecrs2iobrdmap ) -MACHINE_CONFIG_END + m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::timecrs2iobrdmap); +} -MACHINE_CONFIG_START(namcos23_state::gmen) +void namcos23_state::gmen(machine_config &config) +{ s23(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(BUSCLOCK*5) - MCFG_DEVICE_PROGRAM_MAP(gmen_mips_map) + m_maincpu->set_clock(BUSCLOCK*5); + m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::gmen_mips_map); - MCFG_DEVICE_ADD("gmen_sh2", SH2, XTAL(28'700'000)) - MCFG_DEVICE_PROGRAM_MAP(gmen_sh2_map) + SH2(config, m_gmen_sh2, XTAL(28'700'000)); + m_gmen_sh2->set_addrmap(AS_PROGRAM, &namcos23_state::gmen_sh2_map); MCFG_MACHINE_RESET_OVERRIDE(namcos23_state,gmen) -MACHINE_CONFIG_END - - -MACHINE_CONFIG_START(namcos23_state::ss23) +} +void namcos23_state::ss23(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, R4650BE, BUSCLOCK*5) - MCFG_MIPS3_ICACHE_SIZE(8192) // VERIFIED - MCFG_MIPS3_DCACHE_SIZE(8192) // VERIFIED - MCFG_DEVICE_PROGRAM_MAP(s23_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos23_state, interrupt) + R4650BE(config, m_maincpu, BUSCLOCK*5); + m_maincpu->set_icache_size(8192); // VERIFIED + m_maincpu->set_dcache_size(8192); // VERIFIED + m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23_map); + m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt)); - MCFG_DEVICE_ADD(m_subcpu, H83002, H8CLOCK) - MCFG_DEVICE_PROGRAM_MAP( s23h8rwmap ) - MCFG_DEVICE_IO_MAP( s23h8iomap ) + H83002(config, m_subcpu, H8CLOCK); + m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap); + m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap); // Timer at 115200*16 for the jvs serial clock - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8)) + m_subcpu->subdevice("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); - MCFG_QUANTUM_TIME(attotime::from_hz(2*115200)) + config.m_minimum_quantum = attotime::from_hz(2*115200); NAMCO_SETTINGS(config, m_settings, 0); @@ -3785,17 +3777,17 @@ MACHINE_CONFIG_START(namcos23_state::ss23) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(VSYNC1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos23_state, sub_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(VSYNC1); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 639, 0, 479); + m_screen->set_screen_update(FUNC(namcos23_state::screen_update)); + m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq)); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette, 0x8000); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos23) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23); MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23) @@ -3803,42 +3795,39 @@ MACHINE_CONFIG_START(namcos23_state::ss23) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("c352", C352, C352CLOCK, C352DIV) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) - MCFG_SOUND_ROUTE(3, "lspeaker", 1.00) -MACHINE_CONFIG_END + c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV)); + c352.add_route(0, "rspeaker", 1.00); + c352.add_route(1, "lspeaker", 1.00); + c352.add_route(2, "rspeaker", 1.00); + c352.add_route(3, "lspeaker", 1.00); +} -MACHINE_CONFIG_START(namcos23_state::timecrs2v4a) +void namcos23_state::timecrs2v4a(machine_config &config) +{ ss23(config); /* basic machine hardware */ - MCFG_DEVICE_ADD("iocpu", H83334, JVSCLOCK ) - MCFG_DEVICE_PROGRAM_MAP( timecrs2iobrdmap ) - MCFG_DEVICE_IO_MAP( s23iobrdiomap ) + H83334(config, m_iocpu, JVSCLOCK); + m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::timecrs2iobrdmap); + m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap); - MCFG_DEVICE_MODIFY("iocpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("subcpu:sci0", h8_sci_device, rx_w)) - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("iocpu:sci0", h8_sci_device, rx_w)) -MACHINE_CONFIG_END + m_iocpu->subdevice("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); +} -MACHINE_CONFIG_START(namcos23_state::ss23e2) +void namcos23_state::ss23e2(machine_config &config) +{ ss23(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(BUSCLOCK*6) - - MCFG_DEVICE_ADD("iocpu", H83334, JVSCLOCK ) - MCFG_DEVICE_PROGRAM_MAP( s23iobrdmap ) - MCFG_DEVICE_IO_MAP( s23iobrdiomap ) - - MCFG_DEVICE_MODIFY("iocpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("subcpu:sci0", h8_sci_device, rx_w)) - MCFG_DEVICE_MODIFY("subcpu:sci0") - MCFG_H8_SCI_TX_CALLBACK(WRITELINE("iocpu:sci0", h8_sci_device, rx_w)) -MACHINE_CONFIG_END + m_maincpu->set_clock(BUSCLOCK*6); + + H83334(config, m_iocpu, JVSCLOCK); + m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap); + m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap); + + m_iocpu->subdevice("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); +} diff --git a/src/mame/drivers/ps2sony.cpp b/src/mame/drivers/ps2sony.cpp index fdc9df57534..c5329397ab5 100644 --- a/src/mame/drivers/ps2sony.cpp +++ b/src/mame/drivers/ps2sony.cpp @@ -252,7 +252,7 @@ protected: void mem_map(address_map &map); void iop_map(address_map &map); - required_device m_maincpu; + required_device m_maincpu; required_device m_iop; required_device_array m_timer; required_device m_dmac; @@ -734,54 +734,54 @@ void ps2sony_state::iop_map(address_map &map) static INPUT_PORTS_START( ps2sony ) INPUT_PORTS_END -MACHINE_CONFIG_START(ps2sony_state::ps2sony) - MCFG_DEVICE_ADD(m_maincpu, R5900LE, 294'912'000, m_vu0) - MCFG_CPU_FORCE_NO_DRC() - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_DEVICE_PROGRAM_MAP(mem_map) +void ps2sony_state::ps2sony(machine_config &config) +{ + R5900LE(config, m_maincpu, 294'912'000, m_vu0); + m_maincpu->set_force_no_drc(true); + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_addrmap(AS_PROGRAM, &ps2sony_state::mem_map); - MCFG_DEVICE_ADD(m_vu0, SONYPS2_VU0, 294'912'000, m_vu1) - MCFG_DEVICE_ADD(m_vu1, SONYPS2_VU1, 294'912'000, m_gs) + SONYPS2_VU0(config, m_vu0, 294'912'000, m_vu1); + SONYPS2_VU1(config, m_vu1, 294'912'000, m_gs); - MCFG_DEVICE_ADD(m_timer[0], SONYPS2_TIMER, 294912000/2, true) - MCFG_DEVICE_ADD(m_timer[1], SONYPS2_TIMER, 294912000/2, true) - MCFG_DEVICE_ADD(m_timer[2], SONYPS2_TIMER, 294912000/2, false) - MCFG_DEVICE_ADD(m_timer[3], SONYPS2_TIMER, 294912000/2, false) + SONYPS2_TIMER(config, m_timer[0], 294912000/2, true); + SONYPS2_TIMER(config, m_timer[1], 294912000/2, true); + SONYPS2_TIMER(config, m_timer[2], 294912000/2, false); + SONYPS2_TIMER(config, m_timer[3], 294912000/2, false); - MCFG_DEVICE_ADD(m_intc, SONYPS2_INTC, m_maincpu) - MCFG_DEVICE_ADD(m_gs, SONYPS2_GS, 294912000/2, m_intc, m_vu1) - MCFG_DEVICE_ADD(m_dmac, SONYPS2_DMAC, 294912000/2, m_maincpu, m_ram, m_sif, m_gs, m_vu1) - MCFG_DEVICE_ADD(m_sif, SONYPS2_SIF, m_intc) + SONYPS2_INTC(config, m_intc, m_maincpu); + SONYPS2_GS(config, m_gs, 294912000/2, m_intc, m_vu1); + SONYPS2_DMAC(config, m_dmac, 294912000/2, m_maincpu, m_ram, m_sif, m_gs, m_vu1); + SONYPS2_SIF(config, m_sif, m_intc); - MCFG_DEVICE_ADD(m_iop, SONYPS2_IOP, XTAL(67'737'600)/2) - MCFG_DEVICE_PROGRAM_MAP(iop_map) + SONYPS2_IOP(config, m_iop, XTAL(67'737'600)/2); + m_iop->set_addrmap(AS_PROGRAM, &ps2sony_state::iop_map); - MCFG_QUANTUM_PERFECT_CPU("maincpu") - MCFG_QUANTUM_PERFECT_CPU("iop") + config.m_perfect_cpu_quantum = subtag("iop"); - MCFG_DEVICE_ADD(m_pad[0], SONYPS2_PAD) - MCFG_DEVICE_ADD(m_pad[1], SONYPS2_PAD) - MCFG_DEVICE_ADD(m_mc, SONYPS2_MC) + SONYPS2_PAD(config, m_pad[0]); + SONYPS2_PAD(config, m_pad[1]); + SONYPS2_MC(config, m_mc); - MCFG_DEVICE_ADD(m_iop_intc, SONYIOP_INTC, m_iop) - MCFG_DEVICE_ADD(m_iop_sio2, SONYIOP_SIO2, m_iop_intc, m_pad[0], m_pad[1], m_mc) - MCFG_DEVICE_ADD(m_iop_cdvd, SONYIOP_CDVD, m_iop_intc) - MCFG_DEVICE_ADD(m_iop_timer, SONYIOP_TIMER, XTAL(67'737'600)/2) - MCFG_IOP_TIMER_IRQ_CALLBACK(WRITELINE(*this, ps2sony_state, iop_timer_irq)) - MCFG_DEVICE_ADD(m_iop_spu, SONYIOP_SPU, XTAL(67'737'600)/2, m_iop, m_iop_intc) + SONYIOP_INTC(config, m_iop_intc, m_iop); + SONYIOP_SIO2(config, m_iop_sio2, m_iop_intc, m_pad[0], m_pad[1], m_mc); + SONYIOP_CDVD(config, m_iop_cdvd, m_iop_intc); + SONYIOP_TIMER(config, m_iop_timer, XTAL(67'737'600)/2); + m_iop_timer->irq().set(FUNC(ps2sony_state::iop_timer_irq)); + SONYIOP_SPU(config, m_iop_spu, XTAL(67'737'600)/2, m_iop, m_iop_intc); - MCFG_DEVICE_ADD(m_iop_dma, SONYIOP_DMA, XTAL(67'737'600)/2, m_iop_intc, m_iop_ram, m_sif, m_iop_spu, m_iop_sio2) + SONYIOP_DMA(config, m_iop_dma, XTAL(67'737'600)/2, m_iop_intc, m_iop_ram, m_sif, m_iop_spu, m_iop_sio2); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(ps2sony_state, screen_update) - MCFG_SCREEN_SIZE(640, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 223) - - MCFG_PALETTE_ADD("palette", 65536) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(FUNC(ps2sony_state::screen_update)); + screen.set_size(640, 256); + screen.set_visarea(0, 639, 0, 223); + + PALETTE(config, "palette", 65536); +} ROM_START( ps2 ) diff --git a/src/mame/drivers/pyson.cpp b/src/mame/drivers/pyson.cpp index 1d7747fb2a9..eaaaa296767 100644 --- a/src/mame/drivers/pyson.cpp +++ b/src/mame/drivers/pyson.cpp @@ -173,7 +173,7 @@ private: void ps2_map(address_map &map); // devices - required_device m_maincpu; + required_device m_maincpu; // driver_device overrides virtual void video_start() override; @@ -198,21 +198,22 @@ void pyson_state::ps2_map(address_map &map) static INPUT_PORTS_START( pyson ) INPUT_PORTS_END -MACHINE_CONFIG_START(pyson_state::pyson) - MCFG_DEVICE_ADD("maincpu", R5000LE, 294000000) // imported from namcops2.c driver - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_DEVICE_PROGRAM_MAP(ps2_map) +void pyson_state::pyson(machine_config &config) +{ + R5000LE(config, m_maincpu, 294000000); // imported from namcops2.c driver + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_addrmap(AS_PROGRAM, &pyson_state::ps2_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(pyson_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) - - MCFG_PALETTE_ADD("palette", 65536) -MACHINE_CONFIG_END + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(FUNC(pyson_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 639, 0, 479); + + PALETTE(config, "palette", 65536); +} #define PYSON_BIOS \ ROM_LOAD( "b22a01.u42", 0x000000, 0x080000, CRC(98de405e) SHA1(4bc268a996825c1bdf6ae277d331fe7bdc0cc00c) ) diff --git a/src/mame/drivers/vp101.cpp b/src/mame/drivers/vp101.cpp index 033c573b925..67dbc098949 100644 --- a/src/mame/drivers/vp101.cpp +++ b/src/mame/drivers/vp101.cpp @@ -253,19 +253,14 @@ void vp10x_state::video_start() uint32_t vp10x_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - const uint32_t *video_ram; - uint32_t word; - uint32_t *line; - int y, x; - - for (y = 0; y < 240; y++) + for (int y = 0; y < 240; y++) { - line = &bitmap.pix32(y); - video_ram = (const uint32_t *) &m_mainram[(0x7400000/4) + (y * (0x1000/4)) + 4]; + uint32_t *line = &bitmap.pix32(y); + const uint32_t *video_ram = (const uint32_t *) &m_mainram[(0x7400000/4) + (y * (0x1000/4)) + 4]; - for (x = 0; x < 320; x++) + for (int x = 0; x < 320; x++) { - word = *(video_ram++); + uint32_t word = *(video_ram++); video_ram++; *line++ = word; } @@ -276,23 +271,19 @@ uint32_t vp10x_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, // TODO: Palette is not at 0, where is it? uint32_t vp10x_state::vp50_screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - const uint8_t *video_ram; - uint32_t *line; - int y, x; - int r,g,b; const uint16_t *pal_ram = (const uint16_t *) &m_mainram[0]; - for (y = 0; y < 240; y++) + for (int y = 0; y < 240; y++) { - line = &bitmap.pix32(y); - video_ram = (const uint8_t *) &m_mainram[(0x10000/4)+(y * 100)]; + uint32_t *line = &bitmap.pix32(y); + const uint8_t *video_ram = (const uint8_t *) &m_mainram[(0x10000/4)+(y * 100)]; - for (x = 0; x < 400; x++) + for (int x = 0; x < 400; x++) { // assume 565 - r = pal_ram[video_ram[x]] >> 11; - g = (pal_ram[video_ram[x]] >> 5) & 0x3f; - b = pal_ram[video_ram[x]] & 0x1f; + int r = pal_ram[video_ram[x]] >> 11; + int g = (pal_ram[video_ram[x]] >> 5) & 0x3f; + int b = pal_ram[video_ram[x]] & 0x1f; *line++ = (r << 19) | (g << 10) | (b << 3); } @@ -368,42 +359,44 @@ static INPUT_PORTS_START( vp50 ) PORT_BIT( 0xfffffff0, IP_ACTIVE_HIGH, IPT_UNKNOWN ) INPUT_PORTS_END -MACHINE_CONFIG_START(vp10x_state::vp101) - MCFG_DEVICE_ADD("maincpu", VR5500LE, 400000000) - MCFG_MIPS3_DCACHE_SIZE(32768) - MCFG_MIPS3_SYSTEM_CLOCK(100000000) - MCFG_DEVICE_PROGRAM_MAP(main_map) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, screen_update) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) +void vp10x_state::vp101(machine_config &config) +{ + VR5500LE(config, m_maincpu, 400000000); + m_maincpu->set_dcache_size(32768); + m_maincpu->set_system_clock(100000000); + m_maincpu->set_addrmap(AS_PROGRAM, &vp10x_state::main_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(vp10x_state::screen_update)); + screen.set_size(320, 240); + screen.set_visarea(0, 319, 0, 239); ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, false); m_ata->dmarq_handler().set(FUNC(vp10x_state::dmarq_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(vp10x_state::vp50) - MCFG_DEVICE_ADD("maincpu", TX4925LE, 200000000) - MCFG_MIPS3_DCACHE_SIZE(32768) - MCFG_MIPS3_SYSTEM_CLOCK(100000000) - MCFG_DEVICE_PROGRAM_MAP(vp50_map) +} - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(vp10x_state, vp50_screen_update) - MCFG_SCREEN_SIZE(400, 240) - MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) +void vp10x_state::vp50(machine_config &config) +{ + TX4925LE(config, m_maincpu, 200000000); + m_maincpu->set_dcache_size(32768); + m_maincpu->set_system_clock(100000000); + m_maincpu->set_addrmap(AS_PROGRAM, &vp10x_state::vp50_map); + + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(vp10x_state::vp50_screen_update)); + screen.set_size(400, 240); + screen.set_visarea(0, 399, 0, 239); ATA_INTERFACE(config, m_ata).options(ata_devices, "hdd", nullptr, false); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} ROM_START(jnero) ROM_REGION(0x400000, "maincpu", 0) /* Boot ROM */ -- cgit v1.2.3