diff options
author | mooglyguy <therealmogminer@gmail.com> | 2018-12-09 14:24:28 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2018-12-09 14:24:54 +0100 |
commit | 6ba8b0f1ae4d98f9cfb7525aa90bf7d597da59bf (patch) | |
tree | 68df38e52143abe681018cd8049dfa38f28a76d1 | |
parent | bac960a725fa7e411cde4e140a372d6e82e232c3 (diff) |
-mips, rsp: Removed MCFG, nw
-aleck64, hng64, kinst, namcops2, namcos23, ps2sony, pyson, vp101: Removed MACHINE_CONFIG_*, nw
-rw-r--r-- | src/devices/cpu/mips/mips3.h | 10 | ||||
-rw-r--r-- | src/devices/cpu/rsp/rsp.h | 25 | ||||
-rw-r--r-- | src/devices/imagedev/harddriv.h | 2 | ||||
-rw-r--r-- | src/devices/machine/ioptimer.h | 5 | ||||
-rw-r--r-- | src/mame/drivers/aleck64.cpp | 84 | ||||
-rw-r--r-- | src/mame/drivers/hng64.cpp | 50 | ||||
-rw-r--r-- | src/mame/drivers/kinst.cpp | 34 | ||||
-rw-r--r-- | src/mame/drivers/magictg.cpp | 25 | ||||
-rw-r--r-- | src/mame/drivers/n64.cpp | 96 | ||||
-rw-r--r-- | src/mame/drivers/namcops2.cpp | 32 | ||||
-rw-r--r-- | src/mame/drivers/namcos23.cpp | 253 | ||||
-rw-r--r-- | src/mame/drivers/ps2sony.cpp | 78 | ||||
-rw-r--r-- | src/mame/drivers/pyson.cpp | 29 | ||||
-rw-r--r-- | 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<mips3_device &>(*device).set_icache_size(_size); - -#define MCFG_MIPS3_DCACHE_SIZE(_size) \ - downcast<mips3_device &>(*device).set_dcache_size(_size); - -#define MCFG_MIPS3_SYSTEM_CLOCK(_clock) \ - downcast<mips3_device &>(*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<rsp_device &>(*device).set_dp_reg_r_callback(DEVCB_##_devcb); - -#define MCFG_RSP_DP_REG_W_CB(_devcb) \ - downcast<rsp_device &>(*device).set_dp_reg_w_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_REG_R_CB(_devcb) \ - downcast<rsp_device &>(*device).set_sp_reg_r_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_REG_W_CB(_devcb) \ - downcast<rsp_device &>(*device).set_sp_reg_w_callback(DEVCB_##_devcb); - -#define MCFG_RSP_SP_SET_STATUS_CB(_devcb) \ - downcast<rsp_device &>(*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 <class Object> devcb_base &set_dp_reg_r_callback(Object &&cb) { return m_dp_reg_r_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_dp_reg_w_callback(Object &&cb) { return m_dp_reg_w_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_sp_reg_r_callback(Object &&cb) { return m_sp_reg_r_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_sp_reg_w_callback(Object &&cb) { return m_sp_reg_w_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_status_callback(Object &&cb) { return m_sp_set_status_func.set_callback(std::forward<Object>(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 <typename Object> void set_device_load(Object &&cb) { m_device_image_load = std::forward<Object>(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<iop_timer_device &>(*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 <class Object> devcb_base &set_int_cb(Object &&cb) { return m_int_cb.set_callback(std::forward<Object>(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_device>("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<cpu_device> m_mips; + required_device<mips3_device> m_mips; required_device<adsp2181_device> m_adsp; required_device<pci_bus_legacy_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<cpu_device> m_maincpu; + required_device<mips3_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<h8_sci_device>("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<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice<h8_sci_device>("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<h8_sci_device>("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<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice<h8_sci_device>("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<h8_sci_device>("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<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice<h8_sci_device>("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<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w)); + m_subcpu->subdevice<h8_sci_device>("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<cpu_device> m_maincpu; + required_device<r5900le_device> m_maincpu; required_device<iop_device> m_iop; required_device_array<ps2_timer_device, 4> m_timer; required_device<ps2_dmac_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<cpu_device> m_maincpu; + required_device<mips3_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 */ |