diff options
author | 2019-01-04 18:27:00 +0900 | |
---|---|---|
committer | 2019-01-13 01:20:16 +1100 | |
commit | 879d0971988ec454afc511991e3a239074cb6061 (patch) | |
tree | f73c6fc3f70104722dc269c7e74976a0e51d7a8c | |
parent | 678465003898672024604326b4cea2e0bd2d6b75 (diff) |
midas.cpp, neogeo.cpp, neopcb.cpp, neogeocd.cpp : Remove MCFGs
midas.cpp : Fix namings, Reduce some runtime tag lookup, Add notes (MCUs in machine config, etc...), Sound output correction
neogeo_spr.cpp : Remove unnecessary device pointer, Convert pointer into region_ptr, Add device_video_interface for screen
bus/neogeo/slot.cpp, bus/neogeo_ctrl/ctrl.cpp : Remove MCFGs
-rw-r--r-- | src/devices/bus/neogeo/slot.h | 20 | ||||
-rw-r--r-- | src/devices/bus/neogeo_ctrl/ctrl.h | 32 | ||||
-rw-r--r-- | src/mame/drivers/midas.cpp | 196 | ||||
-rw-r--r-- | src/mame/drivers/neogeo.cpp | 668 | ||||
-rw-r--r-- | src/mame/drivers/neogeocd.cpp | 21 | ||||
-rw-r--r-- | src/mame/drivers/neopcb.cpp | 15 | ||||
-rw-r--r-- | src/mame/video/neogeo_spr.cpp | 20 | ||||
-rw-r--r-- | src/mame/video/neogeo_spr.h | 8 |
8 files changed, 525 insertions, 455 deletions
diff --git a/src/devices/bus/neogeo/slot.h b/src/devices/bus/neogeo/slot.h index edeb2452a1d..b5be4c5e901 100644 --- a/src/devices/bus/neogeo/slot.h +++ b/src/devices/bus/neogeo/slot.h @@ -190,6 +190,15 @@ class neogeo_cart_slot_device : public device_t, { public: // construction/destruction + template <typename T> + neogeo_cart_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt) + : neogeo_cart_slot_device(mconfig, tag, owner, (uint16_t)0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock); virtual ~neogeo_cart_slot_device(); @@ -338,15 +347,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(NEOGEO_CART_SLOT, neogeo_cart_slot_device) - -/*************************************************************************** - DEVICE CONFIGURATION MACROS - ***************************************************************************/ - - -#define MCFG_NEOGEO_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \ - MCFG_DEVICE_ADD(_tag, NEOGEO_CART_SLOT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) - - #endif // MAME_BUS_NEOGEO_SLOT_H diff --git a/src/devices/bus/neogeo_ctrl/ctrl.h b/src/devices/bus/neogeo_ctrl/ctrl.h index aee534d61ad..bfe568d9b7e 100644 --- a/src/devices/bus/neogeo_ctrl/ctrl.h +++ b/src/devices/bus/neogeo_ctrl/ctrl.h @@ -42,6 +42,15 @@ class neogeo_control_port_device : public device_t, public device_slot_interface { public: // construction/destruction + template <typename T> + neogeo_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt, bool const fixed) + : neogeo_control_port_device(mconfig, tag, owner, (uint32_t)0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(fixed); + } neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~neogeo_control_port_device(); @@ -83,6 +92,15 @@ class neogeo_ctrl_edge_port_device : public device_t, public device_slot_interfa { public: // construction/destruction + template <typename T> + neogeo_ctrl_edge_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt, bool const fixed) + : neogeo_ctrl_edge_port_device(mconfig, tag, owner, (uint32_t)0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(fixed); + } neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~neogeo_ctrl_edge_port_device(); @@ -104,20 +122,6 @@ DECLARE_DEVICE_TYPE(NEOGEO_CONTROL_PORT, neogeo_control_port_device) DECLARE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device) -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_NEOGEO_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot, _fixed) \ - MCFG_DEVICE_ADD(_tag, NEOGEO_CONTROL_PORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) - -#define MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD(_tag, _slot_intf, _def_slot, _fixed) \ - MCFG_DEVICE_ADD(_tag, NEOGEO_CTRL_EDGE_CONNECTOR, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed) - - - void neogeo_controls(device_slot_interface &device); void neogeo_arc_edge(device_slot_interface &device); void neogeo_arc_edge_fixed(device_slot_interface &device); diff --git a/src/mame/drivers/midas.cpp b/src/mame/drivers/midas.cpp index 199a91a4c57..1120a125a73 100644 --- a/src/mame/drivers/midas.cpp +++ b/src/mame/drivers/midas.cpp @@ -55,6 +55,8 @@ #include "includes/neogeo.h" #include "cpu/m68000/m68000.h" +#include "cpu/mcs51/mcs51.h" +#include "cpu/pic16c5x/pic16c5x.h" #include "sound/ymz280b.h" #include "machine/eepromser.h" #include "machine/ticket.h" @@ -75,7 +77,8 @@ public: m_screen(*this, "screen"), m_prize(*this, "prize%u", 1), m_ticket(*this, "ticket"), - m_zoomram(*this, "zoomtable") + m_zoomram(*this, "zoomtable"), + m_zoomtable(*this, "spritegen:zoomy") { } void hammer(machine_config &config); @@ -90,15 +93,15 @@ protected: private: DECLARE_READ16_MEMBER(ret_ffff); - DECLARE_WRITE16_MEMBER(midas_gfxregs_w); - DECLARE_WRITE16_MEMBER(livequiz_coin_w); + DECLARE_WRITE16_MEMBER(gfxregs_w); + DECLARE_WRITE8_MEMBER(livequiz_coin_w); DECLARE_READ16_MEMBER(hammer_sensor_r); - DECLARE_WRITE16_MEMBER(hammer_coin_w); - DECLARE_WRITE16_MEMBER(hammer_motor_w); - DECLARE_WRITE16_MEMBER(midas_eeprom_w); - DECLARE_WRITE16_MEMBER(midas_zoomtable_w); + DECLARE_WRITE8_MEMBER(hammer_coin_w); + DECLARE_WRITE8_MEMBER(hammer_motor_w); + DECLARE_WRITE8_MEMBER(eeprom_w); + DECLARE_WRITE16_MEMBER(zoomtable_w); - uint32_t screen_update_midas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device<cpu_device> m_maincpu; required_device<eeprom_serial_93cxx_device> m_eeprom; required_device<gfxdecode_device> m_gfxdecode; @@ -108,8 +111,9 @@ private: optional_device_array<ticket_dispenser_device, 2> m_prize; optional_device<ticket_dispenser_device> m_ticket; required_shared_ptr<uint16_t> m_zoomram; + required_region_ptr<uint8_t> m_zoomtable; - DECLARE_WRITE_LINE_MEMBER(screen_vblank_midas); + DECLARE_WRITE_LINE_MEMBER(screen_vblank); void hammer_map(address_map &map); void livequiz_map(address_map &map); @@ -122,7 +126,7 @@ void midas_state::video_start() { } -uint32_t midas_state::screen_update_midas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +uint32_t midas_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { // fill with background color first bitmap.fill(0x0, cliprect); @@ -134,19 +138,16 @@ uint32_t midas_state::screen_update_midas(screen_device &screen, bitmap_rgb32 &b return 0; } -WRITE16_MEMBER(midas_state::midas_eeprom_w) +WRITE8_MEMBER(midas_state::eeprom_w) { - if (ACCESSING_BITS_0_7) - { - // latch the bit - m_eeprom->di_write((data & 0x04) >> 2); + // latch the bit + m_eeprom->di_write((data & 0x04) >> 2); - // reset line asserted: reset. - m_eeprom->cs_write((data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); + // reset line asserted: reset. + m_eeprom->cs_write((data & 0x01) ? ASSERT_LINE : CLEAR_LINE ); - // clock line asserted: write latch or select next bit to read - m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); - } + // clock line asserted: write latch or select next bit to read + m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } READ16_MEMBER(midas_state::ret_ffff) @@ -154,7 +155,7 @@ READ16_MEMBER(midas_state::ret_ffff) return 0xffff; } -WRITE16_MEMBER(midas_state::midas_gfxregs_w) +WRITE16_MEMBER(midas_state::gfxregs_w) { /* accessing the LSB only is not mapped */ if (mem_mask != 0x00ff) @@ -172,15 +173,14 @@ WRITE16_MEMBER(midas_state::midas_gfxregs_w) } } -WRITE16_MEMBER(midas_state::midas_zoomtable_w) +WRITE16_MEMBER(midas_state::zoomtable_w) { COMBINE_DATA(&m_zoomram[offset]); - uint8_t *rgn = memregion("zoomy")->base(); if (ACCESSING_BITS_0_7) { - rgn[offset+0x00000] = data & 0xff; - rgn[offset+0x10000] = data & 0xff; + m_zoomtable[offset+0x00000] = data & 0xff; + m_zoomtable[offset+0x10000] = data & 0xff; } } @@ -188,12 +188,9 @@ WRITE16_MEMBER(midas_state::midas_zoomtable_w) Live Quiz Show ***************************************************************************************/ -WRITE16_MEMBER(midas_state::livequiz_coin_w) +WRITE8_MEMBER(midas_state::livequiz_coin_w) { - if (ACCESSING_BITS_0_7) - { - machine().bookkeeping().coin_counter_w(0, data & 0x0001); - } + machine().bookkeeping().coin_counter_w(0, data & 0x0001); #ifdef MAME_DEBUG // popmessage("coin %04X", data); #endif @@ -208,11 +205,11 @@ void midas_state::livequiz_map(address_map &map) map(0x940000, 0x940001).portr("PLAYER2"); map(0x980000, 0x980001).portr("START"); - map(0x980000, 0x980001).w(FUNC(midas_state::livequiz_coin_w)); + map(0x980001, 0x980001).w(FUNC(midas_state::livequiz_coin_w)); - map(0x9a0000, 0x9a0001).w(FUNC(midas_state::midas_eeprom_w)); + map(0x9a0001, 0x9a0001).w(FUNC(midas_state::eeprom_w)); - map(0x9c0000, 0x9c0005).w(FUNC(midas_state::midas_gfxregs_w)); + map(0x9c0000, 0x9c0005).w(FUNC(midas_state::gfxregs_w)); map(0x9c000c, 0x9c000d).nopw(); // IRQ Ack, temporary map(0xa00000, 0xa3ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); @@ -228,7 +225,7 @@ void midas_state::livequiz_map(address_map &map) map(0xba0000, 0xba0001).portr("START3"); map(0xbc0000, 0xbc0001).portr("PLAYER3"); - map(0xd00000, 0xd1ffff).ram().w(FUNC(midas_state::midas_zoomtable_w)).share("zoomtable"); // zoom table? + map(0xd00000, 0xd1ffff).ram().w(FUNC(midas_state::zoomtable_w)).share("zoomtable"); // zoom table? map(0xe00000, 0xe3ffff).ram(); } @@ -245,27 +242,21 @@ READ16_MEMBER(midas_state::hammer_sensor_r) return (ioport("SENSORY")->read() << 8) | ioport("SENSORX")->read(); } -WRITE16_MEMBER(midas_state::hammer_coin_w) +WRITE8_MEMBER(midas_state::hammer_coin_w) { - if (ACCESSING_BITS_0_7) - { - machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); - machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); - } + machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); + machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); #ifdef MAME_DEBUG // popmessage("coin %04X", data); #endif } -WRITE16_MEMBER(midas_state::hammer_motor_w) +WRITE8_MEMBER(midas_state::hammer_motor_w) { - if (ACCESSING_BITS_0_7) - { - m_prize[0]->motor_w(BIT(data, 0)); - m_prize[1]->motor_w(BIT(data, 1)); - m_ticket->motor_w(BIT(data, 4)); - // data & 0x0080 ? - } + m_prize[0]->motor_w(BIT(data, 0)); + m_prize[1]->motor_w(BIT(data, 1)); + m_ticket->motor_w(BIT(data, 4)); + // data & 0x0080 ? #ifdef MAME_DEBUG // popmessage("motor %04X", data); #endif @@ -280,11 +271,11 @@ void midas_state::hammer_map(address_map &map) map(0x940000, 0x940001).portr("IN0"); map(0x980000, 0x980001).portr("TILT"); - map(0x980000, 0x980001).w(FUNC(midas_state::hammer_coin_w)); + map(0x980001, 0x980001).w(FUNC(midas_state::hammer_coin_w)); - map(0x9a0000, 0x9a0001).w(FUNC(midas_state::midas_eeprom_w)); + map(0x9a0001, 0x9a0001).w(FUNC(midas_state::eeprom_w)); - map(0x9c0000, 0x9c0005).w(FUNC(midas_state::midas_gfxregs_w)); + map(0x9c0000, 0x9c0005).w(FUNC(midas_state::gfxregs_w)); map(0x9c000c, 0x9c000d).nopw(); // IRQ Ack, temporary map(0xa00000, 0xa3ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); @@ -300,11 +291,11 @@ void midas_state::hammer_map(address_map &map) map(0xba0000, 0xba0001).portr("IN1"); map(0xbc0000, 0xbc0001).portr("HAMMER"); - map(0xbc0002, 0xbc0003).w(FUNC(midas_state::hammer_motor_w)); + map(0xbc0003, 0xbc0003).w(FUNC(midas_state::hammer_motor_w)); map(0xbc0004, 0xbc0005).r(FUNC(midas_state::hammer_sensor_r)); - map(0xd00000, 0xd1ffff).ram().w(FUNC(midas_state::midas_zoomtable_w)).share("zoomtable"); // zoom table? + map(0xd00000, 0xd1ffff).ram().w(FUNC(midas_state::zoomtable_w)).share("zoomtable"); // zoom table? map(0xe00000, 0xe3ffff).ram(); } @@ -614,7 +605,6 @@ INPUT_PORTS_END void midas_state::machine_start() { m_sprgen->set_pens(m_palette->pens()); - m_sprgen->set_screen(m_screen); m_sprgen->set_sprite_region(memregion("sprites")->base(), memregion("sprites")->bytes()); m_sprgen->set_fixed_regions(memregion("tiles")->base(), memregion("tiles")->bytes(), memregion("tiles")); m_sprgen->neogeo_set_fixed_layer_source(0); // temporary: ensure banking is disabled @@ -624,29 +614,35 @@ void midas_state::machine_reset() { } -WRITE_LINE_MEMBER(midas_state::screen_vblank_midas) +WRITE_LINE_MEMBER(midas_state::screen_vblank) { if (state) m_sprgen->buffer_vram(); } -MACHINE_CONFIG_START(midas_state::livequiz) - +void midas_state::livequiz(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(livequiz_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", midas_state, irq1_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &midas_state::livequiz_map); + m_maincpu->set_vblank_int("screen", FUNC(midas_state::irq1_line_hold)); - EEPROM_93C46_16BIT(config, "eeprom"); + pic16c56_device &pic1(PIC16C56(config, "pic1", XTAL(24'000'000) / 6)); // !! PIC12C508 !! unknown MHz + pic1.set_disable(); // Currently not hooked up + + pic16c56_device &pic2(PIC16C56(config, "pic2", XTAL(24'000'000) / 6)); // !! PIC12C508 !! unknown MHz + pic2.set_disable(); // Currently not hooked up + + EEPROM_93C46_16BIT(config, m_eeprom); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, midas_state, screen_vblank_midas)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART); + m_screen->set_screen_update(FUNC(midas_state::screen_update)); + m_screen->screen_vblank().set(FUNC(midas_state::screen_vblank)); - MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE_MIDAS, 0) + NEOGEO_SPRITE_MIDAS(config, m_sprgen, 0).set_screen(m_screen); GFXDECODE(config, m_gfxdecode, m_palette, gfx_midas); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 0x10000); @@ -654,42 +650,53 @@ MACHINE_CONFIG_START(midas_state::livequiz) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) -MACHINE_CONFIG_END -MACHINE_CONFIG_START(midas_state::hammer) + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400))); + ymz.add_route(0, "lspeaker", 0.80); + ymz.add_route(1, "rspeaker", 0.80); +} +void midas_state::hammer(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(28'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(hammer_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", midas_state, irq1_line_hold) + M68000(config, m_maincpu, XTAL(28'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &midas_state::hammer_map); + m_maincpu->set_vblank_int("screen", FUNC(midas_state::irq1_line_hold)); + + at89c52_device &mcu(AT89C52(config, "mcu", XTAL(24'000'000) / 2)); // on top board, unknown MHz + mcu.set_disable(); // Currently not hooked up + + EEPROM_93C46_16BIT(config, m_eeprom); + + TICKET_DISPENSER(config, m_prize[0], 0); + m_prize[0]->set_period(attotime::from_msec(1000*5)); + m_prize[0]->set_senses(TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW, false); - EEPROM_93C46_16BIT(config, "eeprom"); + TICKET_DISPENSER(config, m_prize[1], 0); + m_prize[1]->set_period(attotime::from_msec(1000*5)); + m_prize[1]->set_senses(TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW, false); - MCFG_TICKET_DISPENSER_ADD("prize1", attotime::from_msec(1000*5), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ) - MCFG_TICKET_DISPENSER_ADD("prize2", attotime::from_msec(1000*5), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ) - MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(200), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW ) + TICKET_DISPENSER(config, m_ticket, 0); + m_ticket->set_period(attotime::from_msec(200)); + m_ticket->set_senses(TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW, false); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, midas_state, screen_vblank_midas)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART); + m_screen->set_screen_update(FUNC(midas_state::screen_update)); + m_screen->screen_vblank().set(FUNC(midas_state::screen_vblank)); - MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE_MIDAS, 0) + NEOGEO_SPRITE_MIDAS(config, m_sprgen, 0).set_screen(m_screen); GFXDECODE(config, m_gfxdecode, m_palette, gfx_midas); PALETTE(config, m_palette).set_format(palette_device::xRGB_888, 0x10000); /* sound hardware */ - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(16'934'400)) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.80) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.80) -MACHINE_CONFIG_END + SPEAKER(config, "mono").front_center(); // stereo outputs aren't exists? + + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(16'934'400))); + ymz.add_route(ALL_OUTPUTS, "mono", 0.80); +} /*************************************************************************************** @@ -784,8 +791,10 @@ ROM_START( livequiz ) ROM_REGION( 0x200000, "maincpu", 0 ) ROM_LOAD16_WORD_SWAP( "flash.u1", 0x000000, 0x200000, CRC(8ec44493) SHA1(a987886cb87ac0a744f01f2e4a7cc6d12efeaa04) ) - ROM_REGION( 0x200000, "pic", 0 ) + ROM_REGION( 0x000800, "pic1", 0 ) ROM_LOAD( "main_pic12c508a.u27", 0x000000, 0x000400, CRC(a84f0a7e) SHA1(fb27c05fb27b98ca603697e1be214dc6c8d5f884) ) + + ROM_REGION( 0x000800, "pic2", 0 ) ROM_LOAD( "sub_pic12c508a.u4", 0x000000, 0x000400, CRC(e52ebdc4) SHA1(0f3af66b5ea184e49188e74a873699324a3930f1) ) ROM_REGION( 0x800000, "sprites", 0 ) @@ -800,7 +809,7 @@ ROM_START( livequiz ) ROM_REGION( 0x200000, "ymz", 0 ) ROM_LOAD( "flash.u5", 0x000000, 0x200000, CRC(dc062792) SHA1(ec415c918c47ce9d181f014cde317af5717600e4) ) - ROM_REGION( 0x20000, "zoomy", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000, "spritegen:zoomy", ROMREGION_ERASE00 ) /* uploaded */ ROM_END @@ -874,6 +883,9 @@ ROM_START( hammer ) ROM_REGION( 0x200000, "maincpu", 0 ) ROM_LOAD16_WORD_SWAP( "p.u22", 0x000000, 0x200000, CRC(687f1596) SHA1(3dc5fb0af1e8c4f3a42ce4aad39635b1111831d8) ) + ROM_REGION( 0x002000, "mcu", 0 ) + ROM_LOAD( "hammer_at89c52", 0x000000, 0x002000, NO_DUMP ) + ROM_REGION( 0x1000000, "sprites", 0 ) ROM_LOAD64_WORD( "a0l.u44", 0x000000, 0x200000, CRC(b9cafd81) SHA1(24698970d1aea0907e2963c872ce61077f44c3af) ) ROM_LOAD64_WORD( "a0h.u46", 0x800000, 0x200000, CRC(f60f188b) SHA1(486f26c473b46efb402662b2f374e361cd7b4284) ) @@ -895,7 +907,7 @@ ROM_START( hammer ) ROM_LOAD( "s0.u25", 0x000000, 0x200000, CRC(c049a3e0) SHA1(0c7016c3128c170a84ad3f92fad1165775210e3d) ) ROM_LOAD( "s1.u26", 0x200000, 0x200000, CRC(9cc4b3ec) SHA1(b91a8747074a1032eb7f70a015d394fe8e896d7e) ) - ROM_REGION( 0x20000, "zoomy", ROMREGION_ERASE00 ) + ROM_REGION( 0x20000, "spritegen:zoomy", ROMREGION_ERASE00 ) /* uploaded */ ROM_END diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp index a2f935e3ee3..f0902e25628 100644 --- a/src/mame/drivers/neogeo.cpp +++ b/src/mame/drivers/neogeo.cpp @@ -572,6 +572,8 @@ public: } // mainboard configurations + void cartslot_config(machine_config &config, int no); + void cartslot_fixed(machine_config &config, char const *dflt); void mv1fz(machine_config &config); // fixed software configurations @@ -1591,7 +1593,6 @@ void mvs_state::machine_start() ngarcade_base_state::machine_start(); m_sprgen->m_fixed_layer_bank_type = 0; - m_sprgen->set_screen(m_screen); m_curr_slot = -1; set_slot_idx(0); @@ -1907,8 +1908,8 @@ INPUT_CHANGED_MEMBER(aes_base_state::aes_jp1) * *************************************/ -MACHINE_CONFIG_START(neogeo_base_state::neogeo_base) - +void neogeo_base_state::neogeo_base(machine_config &config) +{ /* basic machine hardware */ M68000(config, m_maincpu, NEOGEO_MAIN_CPU_CLOCK); @@ -1927,14 +1928,14 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_base) /* video hardware */ config.set_default_layout(layout_neogeo); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(neogeo_base_state, screen_update) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART); + m_screen->set_screen_update(FUNC(neogeo_base_state::screen_update)); /* 4096 colors * two banks * normal and shadow */ - MCFG_DEVICE_ADD(m_palette, PALETTE, palette_device::BLACK, 4096*2*2) + PALETTE(config, m_palette, palette_device::BLACK, 4096*2*2); - MCFG_DEVICE_ADD(m_sprgen, NEOGEO_SPRITE_OPTIMZIED, 0) + NEOGEO_SPRITE_OPTIMZIED(config, m_sprgen, 0).set_screen(m_screen); /* audio hardware */ INPUT_MERGER_ALL_HIGH(config, m_audionmi); @@ -1948,10 +1949,11 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_base) YM2610(config, m_ym, NEOGEO_YM2610_CLOCK); m_ym->irq_handler().set_inputline(m_audiocpu, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(neogeo_base_state::neogeo_stereo) +void neogeo_base_state::neogeo_stereo(machine_config &config) +{ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); @@ -1959,7 +1961,7 @@ MACHINE_CONFIG_START(neogeo_base_state::neogeo_stereo) m_ym->add_route(0, "rspeaker", 0.28); m_ym->add_route(1, "lspeaker", 0.98); m_ym->add_route(2, "rspeaker", 0.98); -MACHINE_CONFIG_END +} void ngarcade_base_state::neogeo_arcade(machine_config &config) @@ -1979,134 +1981,131 @@ void ngarcade_base_state::neogeo_arcade(machine_config &config) } -MACHINE_CONFIG_START(ngarcade_base_state::neogeo_mono) +void ngarcade_base_state::neogeo_mono(machine_config &config) +{ SPEAKER(config, "speaker").front_center(); m_ym->add_route(0, "speaker", 0.28); m_ym->add_route(1, "speaker", 0.49); m_ym->add_route(2, "speaker", 0.49); -MACHINE_CONFIG_END - +} // configurable slot -#define NEOGEO_CONFIG_CARTSLOT(_tag) \ - MCFG_NEOGEO_CARTRIDGE_ADD(_tag, neogeo_cart, nullptr) - -// non-configurable slot (to be used for non-softlist sets, until we introduce some 'template' concept) -// a single cart in slot 1, with pre-defined cart type -#define NEOGEO_CONFIG_ONE_FIXED_CARTSLOT(_default) \ - MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ - MCFG_SET_IMAGE_LOADABLE(false) +void mvs_state::cartslot_config(machine_config &config, int no) +{ + for (int i = 0; i < no; i++) + { + NEOGEO_CART_SLOT(config, m_slots[i], neogeo_cart, nullptr); + } +} -MACHINE_CONFIG_START(mvs_led_state::mv1) +void mvs_led_state::mv1(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") + cartslot_config(config, 1); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_led_state::mv1f) +void mvs_led_state::mv1f(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") + cartslot_config(config, 1); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_state::mv1fz) +void mvs_state::mv1fz(machine_config &config) +{ neogeo_arcade(config); neogeo_mono(config); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") + cartslot_config(config, 1); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_led_el_state::mv2f) +void mvs_led_el_state::mv2f(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") - NEOGEO_CONFIG_CARTSLOT("cslot2") + cartslot_config(config, 2); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_led_el_state::mv4f) +void mvs_led_el_state::mv4f(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") - NEOGEO_CONFIG_CARTSLOT("cslot2") - NEOGEO_CONFIG_CARTSLOT("cslot3") - NEOGEO_CONFIG_CARTSLOT("cslot4") + cartslot_config(config, 4); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_led_el_state::mv6f) +void mvs_led_el_state::mv6f(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", false); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", false); - NEOGEO_CONFIG_CARTSLOT("cslot1") - NEOGEO_CONFIG_CARTSLOT("cslot2") - NEOGEO_CONFIG_CARTSLOT("cslot3") - NEOGEO_CONFIG_CARTSLOT("cslot4") - NEOGEO_CONFIG_CARTSLOT("cslot5") - NEOGEO_CONFIG_CARTSLOT("cslot6") + cartslot_config(config, 6); - MCFG_SOFTWARE_LIST_ADD("cart_list", "neogeo") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM); +} -MACHINE_CONFIG_START(mvs_led_state::mv1_fixed) +void mvs_led_state::mv1_fixed(machine_config &config) +{ neogeo_arcade(config); neogeo_stereo(config); NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", true) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) -MACHINE_CONFIG_END + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "", true); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", true); +} @@ -2115,7 +2114,6 @@ void aes_base_state::machine_start() neogeo_base_state::machine_start(); m_sprgen->m_fixed_layer_bank_type = 0; - m_sprgen->set_screen(m_screen); } void aes_state::machine_start() @@ -2138,7 +2136,8 @@ void aes_state::device_post_load() } -MACHINE_CONFIG_START(aes_state::aes) +void aes_state::aes(machine_config &config) +{ neogeo_base(config); neogeo_stereo(config); @@ -2146,14 +2145,13 @@ MACHINE_CONFIG_START(aes_state::aes) NG_MEMCARD(config, m_memcard, 0); - MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, nullptr) + NEOGEO_CART_SLOT(config, m_slots[0], neogeo_cart, nullptr); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_controls, "joy", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_controls, "joy", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_controls, "joy", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_controls, "joy", false); - MCFG_SOFTWARE_LIST_ADD("cart_list","neogeo") - MCFG_SOFTWARE_LIST_FILTER("cart_list","AES") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_type("neogeo", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter("AES"); +} @@ -2353,7 +2351,7 @@ MACHINE_CONFIG_END ROM_Y_ZOOM #define ROM_Y_ZOOM \ - ROM_REGION( 0x20000, "zoomy", 0 ) \ + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) \ ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) @@ -2400,7 +2398,7 @@ ROM_START( aes ) ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) - ROM_REGION( 0x20000, "zoomy", 0 ) + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) ROM_REGION( 0x20000, "fixed", ROMREGION_ERASEFF ) @@ -2424,373 +2422,439 @@ CONS( 1990, aes, 0, 0, aes, aes, aes_state, e // non-configurable slot (to be used for non-softlist sets, until we introduce some 'template' concept) // a single cart in slot 1, with pre-defined cart type -#define NEOGEO_CONFIG_ONE_FIXED_CARTSLOT(_default) \ - MCFG_NEOGEO_CARTRIDGE_ADD("cslot1", neogeo_cart, _default) \ - MCFG_SET_IMAGE_LOADABLE(false) - +void mvs_state::cartslot_fixed(machine_config &config, char const *dflt) +{ + NEOGEO_CART_SLOT(config, m_slots[0], neogeo_cart, dflt).set_user_loadable(false); +} // machine config for one-game fixed config, loaded without using softlists -MACHINE_CONFIG_START(mvs_led_state::neobase) +void mvs_led_state::neobase(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom"); +} // used by fatfury2 & ssideki -MACHINE_CONFIG_START(mvs_led_state::fatfur2) +void mvs_led_state::fatfur2(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_fatfur2") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom_fatfur2"); +} -MACHINE_CONFIG_START(mvs_state::kizuna4p) +void mvs_state::kizuna4p(machine_config &config) +{ neogeo_arcade(config); neogeo_mono(config); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge_fixed, "kiz4p", true); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom"); +} -MACHINE_CONFIG_START(mvs_led_state::kof97oro) +void mvs_led_state::kof97oro(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kof97oro") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kof97oro"); +} -MACHINE_CONFIG_START(mvs_led_state::kog) +void mvs_led_state::kog(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kog") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kog"); +} -MACHINE_CONFIG_START(mvs_state::irrmaze) +void mvs_state::irrmaze(machine_config &config) +{ neogeo_arcade(config); neogeo_mono(config); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge_fixed, "irrmaze", true); config.set_default_layout(layout_irrmaze); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom"); +} -MACHINE_CONFIG_START(mvs_led_state::kof98) +void mvs_led_state::kof98(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_kof98") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom_kof98"); +} -MACHINE_CONFIG_START(mvs_led_state::mslugx) +void mvs_led_state::mslugx(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_mslugx") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom_mslugx"); +} -MACHINE_CONFIG_START(mvs_led_state::kof99) +void mvs_led_state::kof99(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof99") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_kof99"); +} -MACHINE_CONFIG_START(mvs_led_state::kof99k) +void mvs_led_state::kof99k(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_kof99k") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_kof99k"); +} -MACHINE_CONFIG_START(mvs_led_state::garou) +void mvs_led_state::garou(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garou") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_garou"); +} -MACHINE_CONFIG_START(mvs_led_state::garouh) +void mvs_led_state::garouh(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_garouh") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_garouh"); +} -MACHINE_CONFIG_START(mvs_led_state::garoubl) +void mvs_led_state::garoubl(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_garoubl") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_garoubl"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug3) +void mvs_led_state::mslug3(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_mslug3"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug3a) +void mvs_led_state::mslug3a(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_mslug3a") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_mslug3a"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug3h) +void mvs_led_state::mslug3h(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_mslug3h") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_mslug3h"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug3b6) +void mvs_led_state::mslug3b6(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_mslug3b6") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_mslug3b6"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2000) +void mvs_led_state::kof2000(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("sma_kof2k") -MACHINE_CONFIG_END + cartslot_fixed(config, "sma_kof2k"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2000n) +void mvs_led_state::kof2000n(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2000n") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc50_kof2000n"); +} -MACHINE_CONFIG_START(mvs_led_state::zupapa) +void mvs_led_state::zupapa(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_zupapa") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_zupapa"); +} -MACHINE_CONFIG_START(mvs_led_state::sengoku3) +void mvs_led_state::sengoku3(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_sengoku3") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_sengoku3"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2001) +void mvs_led_state::kof2001(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_kof2001") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc50_kof2001"); +} -MACHINE_CONFIG_START(mvs_led_state::cthd2k3) +void mvs_led_state::cthd2k3(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_cthd2k3") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_cthd2k3"); +} -MACHINE_CONFIG_START(mvs_led_state::ct2k3sp) +void mvs_led_state::ct2k3sp(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sp") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_ct2k3sp"); +} -MACHINE_CONFIG_START(mvs_led_state::ct2k3sa) +void mvs_led_state::ct2k3sa(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ct2k3sa") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_ct2k3sa"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2002) +void mvs_led_state::kof2002(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kof2k2") -MACHINE_CONFIG_END + cartslot_fixed(config, "k2k2_kof2k2"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2002b) +void mvs_led_state::kof2002b(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2b") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k2b"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k2pls) +void mvs_led_state::kf2k2pls(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_kf2k2p") -MACHINE_CONFIG_END + cartslot_fixed(config, "k2k2_kf2k2p"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k2mp) +void mvs_led_state::kf2k2mp(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k2mp"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k2mp2) +void mvs_led_state::kf2k2mp2(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k2mp2") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k2mp2"); +} -MACHINE_CONFIG_START(mvs_led_state::kof10th) +void mvs_led_state::kof10th(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10th") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf10th"); +} -MACHINE_CONFIG_START(mvs_led_state::kf10thep) +void mvs_led_state::kf10thep(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf10thep") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf10thep"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k5uni) +void mvs_led_state::kf2k5uni(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k5uni") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k5uni"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2k4se) +void mvs_led_state::kof2k4se(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k4se") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k4se"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug5) +void mvs_led_state::mslug5(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_mslug5") -MACHINE_CONFIG_END + cartslot_fixed(config, "pvc_mslug5"); +} -MACHINE_CONFIG_START(mvs_led_state::ms5plus) +void mvs_led_state::ms5plus(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_ms5plus") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_ms5plus"); +} -MACHINE_CONFIG_START(mvs_led_state::svc) +void mvs_led_state::svc(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_svc") -MACHINE_CONFIG_END + cartslot_fixed(config, "pvc_svc"); +} -MACHINE_CONFIG_START(mvs_led_state::svcboot) +void mvs_led_state::svcboot(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcboot") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_svcboot"); +} -MACHINE_CONFIG_START(mvs_led_state::svcplus) +void mvs_led_state::svcplus(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplus") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_svcplus"); +} -MACHINE_CONFIG_START(mvs_led_state::svcplusa) +void mvs_led_state::svcplusa(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcplusa") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_svcplusa"); +} -MACHINE_CONFIG_START(mvs_led_state::svcsplus) +void mvs_led_state::svcsplus(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_svcsplus") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_svcsplus"); +} -MACHINE_CONFIG_START(mvs_led_state::samsho5) +void mvs_led_state::samsho5(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_samsh5") -MACHINE_CONFIG_END + cartslot_fixed(config, "k2k2_samsh5"); +} -MACHINE_CONFIG_START(mvs_led_state::samsho5b) +void mvs_led_state::samsho5b(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_samsho5b") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_samsho5b"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2003) +void mvs_led_state::kof2003(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3") -MACHINE_CONFIG_END + cartslot_fixed(config, "pvc_kf2k3"); +} -MACHINE_CONFIG_START(mvs_led_state::kof2003h) +void mvs_led_state::kof2003h(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pvc_kf2k3h") -MACHINE_CONFIG_END + cartslot_fixed(config, "pvc_kf2k3h"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k3bl) +void mvs_led_state::kf2k3bl(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3bl") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k3bl"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k3pl) +void mvs_led_state::kf2k3pl(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3pl") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k3pl"); +} -MACHINE_CONFIG_START(mvs_led_state::kf2k3upl) +void mvs_led_state::kf2k3upl(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_kf2k3upl") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_kf2k3upl"); +} -MACHINE_CONFIG_START(mvs_led_state::samsh5sp) +void mvs_led_state::samsh5sp(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_sams5s") -MACHINE_CONFIG_END + cartslot_fixed(config, "k2k2_sams5s"); +} -MACHINE_CONFIG_START(mvs_led_state::neogeo_mj) +void mvs_led_state::neogeo_mj(machine_config &config) +{ mv1_fixed(config); set_default_bios_tag("japan"); //no joystick panel - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "", false) + config.device_remove("edge"); + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "", false); //P1 mahjong controller - MCFG_DEVICE_REMOVE("ctrl1") - MCFG_DEVICE_REMOVE("ctrl2") - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true) + config.device_remove("ctrl1"); + config.device_remove("ctrl2"); + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_arc_pin15, "mahjong", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_arc_pin15, "", true); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom"); +} -MACHINE_CONFIG_START(mvs_led_state::preisle2) +void mvs_led_state::preisle2(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_preisle2") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_preisle2"); +} -MACHINE_CONFIG_START(mvs_led_state::nitd) +void mvs_led_state::nitd(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_nitd") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_nitd"); +} -MACHINE_CONFIG_START(mvs_led_state::s1945p) +void mvs_led_state::s1945p(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_s1945p") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_s1945p"); +} -MACHINE_CONFIG_START(mvs_led_state::lans2004) +void mvs_led_state::lans2004(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_lans2004") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_lans2004"); +} -MACHINE_CONFIG_START(mvs_led_state::pnyaa) +void mvs_led_state::pnyaa(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_pnyaa") -MACHINE_CONFIG_END + cartslot_fixed(config, "pcm2_pnyaa"); +} -MACHINE_CONFIG_START(mvs_led_state::popbounc) +void mvs_led_state::popbounc(machine_config &config) +{ mv1_fixed(config); - MCFG_DEVICE_REMOVE("edge") - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true) + config.device_remove("edge"); + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge_fixed, "dial", true); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom"); +} -MACHINE_CONFIG_START(mvs_led_state::ganryu) +void mvs_led_state::ganryu(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_ganryu") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_ganryu"); +} -MACHINE_CONFIG_START(mvs_led_state::bangbead) +void mvs_led_state::bangbead(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc42_bangbead") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc42_bangbead"); +} -MACHINE_CONFIG_START(mvs_led_state::mslug4) +void mvs_led_state::mslug4(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_mslug4") -MACHINE_CONFIG_END + cartslot_fixed(config, "pcm2_mslug4"); +} -MACHINE_CONFIG_START(mvs_led_state::ms4plus) +void mvs_led_state::ms4plus(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_ms4p") -MACHINE_CONFIG_END + cartslot_fixed(config, "pcm2_ms4p"); +} -MACHINE_CONFIG_START(mvs_led_state::rotd) +void mvs_led_state::rotd(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("pcm2_rotd") -MACHINE_CONFIG_END + cartslot_fixed(config, "pcm2_rotd"); +} -MACHINE_CONFIG_START(mvs_led_state::matrim) +void mvs_led_state::matrim(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("k2k2_matrim") -MACHINE_CONFIG_END + cartslot_fixed(config, "k2k2_matrim"); +} -MACHINE_CONFIG_START(mvs_led_state::matrimbl) +void mvs_led_state::matrimbl(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_matrimbl") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_matrimbl"); +} -MACHINE_CONFIG_START(mvs_led_state::jockeygp) +void mvs_led_state::jockeygp(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("cmc50_jockeygp") -MACHINE_CONFIG_END + cartslot_fixed(config, "cmc50_jockeygp"); +} -MACHINE_CONFIG_START(mvs_led_state::vliner) +void mvs_led_state::vliner(machine_config &config) +{ mv1_fixed(config); // input handlers are installed at DRIVER_INIT... - MCFG_DEVICE_REMOVE("edge") - MCFG_DEVICE_REMOVE("ctrl1") - MCFG_DEVICE_REMOVE("ctrl2") + config.device_remove("edge"); + config.device_remove("ctrl1"); + config.device_remove("ctrl2"); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("rom_vliner") -MACHINE_CONFIG_END + cartslot_fixed(config, "rom_vliner"); +} -MACHINE_CONFIG_START(mvs_led_state::sbp) +void mvs_led_state::sbp(machine_config &config) +{ mv1_fixed(config); - NEOGEO_CONFIG_ONE_FIXED_CARTSLOT("boot_sbp") -MACHINE_CONFIG_END + cartslot_fixed(config, "boot_sbp"); +} @@ -11740,7 +11804,7 @@ GAME( 1999, garoubl, garou, garoubl, neogeo, mvs_led_state, empty_ini GAME( 2000, mslug3, neogeo, mslug3, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ GAME( 2000, mslug3a, mslug3, mslug3a, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGM-2560, earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX - revision Mar/17/2000 1:36 (from SMA rom) */ GAME( 2000, mslug3h, mslug3, mslug3h, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ -GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, mvs_led_state, empty_init, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */ +GAME( 2000, mslug3b6, mslug3, mslug3b6, neogeo, mvs_led_state, empty_init, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.cpp ;-) */ GAME( 2000, kof2000, neogeo, kof2000, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570 ~ NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */ GAME( 2000, kof2000n, kof2000, kof2000n, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ GAME( 2001, zupapa, neogeo, zupapa, neogeo, mvs_led_state, empty_init, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */ diff --git a/src/mame/drivers/neogeocd.cpp b/src/mame/drivers/neogeocd.cpp index 6f6a6910f0a..8b7787dab4a 100644 --- a/src/mame/drivers/neogeocd.cpp +++ b/src/mame/drivers/neogeocd.cpp @@ -1033,7 +1033,8 @@ uint32_t ngcd_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, } -MACHINE_CONFIG_START(ngcd_state::neocd) +void ngcd_state::neocd(machine_config &config) +{ neogeo_base(config); neogeo_stereo(config); @@ -1045,8 +1046,7 @@ MACHINE_CONFIG_START(ngcd_state::neocd) subdevice<hc259_device>("systemlatch")->q_out_cb<1>().set_log("NeoCD: write to regular vector change address?"); // what IS going on with "neocdz doubledr" and why do games write here if it's hooked up to nothing? - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(ngcd_state, screen_update) + m_screen->set_screen_update(FUNC(ngcd_state::screen_update)); // temporary until things are cleaned up LC89510_TEMP(config, m_tempcdc, 0); // cd controller @@ -1057,15 +1057,14 @@ MACHINE_CONFIG_START(ngcd_state::neocd) NVRAM(config, "saveram", nvram_device::DEFAULT_ALL_0); - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_controls, "joy", false) - MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_controls, "joy", false) + NEOGEO_CONTROL_PORT(config, m_ctrl1, neogeo_controls, "joy", false); + NEOGEO_CONTROL_PORT(config, m_ctrl2, neogeo_controls, "joy", false); - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("neocd_cdrom") - MCFG_SOFTWARE_LIST_ADD("cd_list","neocd") + CDROM(config, "cdrom").set_interface("neocd_cdrom"); + SOFTWARE_LIST(config, "cd_list").set_type("neocd", SOFTWARE_LIST_ORIGINAL_SYSTEM); m_ym->set_addrmap(0, &ngcd_state::neocd_ym_map); -MACHINE_CONFIG_END +} @@ -1087,7 +1086,7 @@ ROM_START( neocd ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 ) /* 2MB of 68K RAM */ - ROM_REGION( 0x20000, "zoomy", 0 ) + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) ROM_END @@ -1101,7 +1100,7 @@ ROM_START( neocdz ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 ) /* 2MB of 68K RAM */ - ROM_REGION( 0x20000, "zoomy", 0 ) + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) ROM_END diff --git a/src/mame/drivers/neopcb.cpp b/src/mame/drivers/neopcb.cpp index 68b3d9797bd..389078c3e69 100644 --- a/src/mame/drivers/neopcb.cpp +++ b/src/mame/drivers/neopcb.cpp @@ -69,16 +69,17 @@ void neopcb_state::device_post_load() membank("cpu_bank")->set_base(m_region_maincpu->base() + m_bank_base); } -MACHINE_CONFIG_START(neopcb_state::neopcb) +void neopcb_state::neopcb(machine_config &config) +{ neogeo_arcade(config); neogeo_mono(config); - MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", true) + NEOGEO_CTRL_EDGE_CONNECTOR(config, m_edge, neogeo_arc_edge, "joy", true); - MCFG_CMC_PROT_ADD("cmc50") - MCFG_PCM2_PROT_ADD("pcm2") - MCFG_PVC_PROT_ADD("pvc") -MACHINE_CONFIG_END + NG_CMC_PROT(config, "cmc50", 0); + NG_PCM2_PROT(config, "pcm2", 0); + NG_PVC_PROT(config, "pvc", 0); +} // Game specific input definitions @@ -106,7 +107,7 @@ INPUT_PORTS_END *************************************/ #define ROM_Y_ZOOM \ - ROM_REGION( 0x20000, "zoomy", 0 ) \ + ROM_REGION( 0x20000, "spritegen:zoomy", 0 ) \ ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) ) diff --git a/src/mame/video/neogeo_spr.cpp b/src/mame/video/neogeo_spr.cpp index d184c20e352..b069f8fc143 100644 --- a/src/mame/video/neogeo_spr.cpp +++ b/src/mame/video/neogeo_spr.cpp @@ -18,7 +18,9 @@ neosprite_base_device::neosprite_base_device( device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) + , device_video_interface(mconfig, *this) , m_bppshift(4) + , m_region_zoomy(*this, "zoomy") { } @@ -53,9 +55,6 @@ void neosprite_base_device::device_start() save_item(NAME(m_auto_animation_disabled)); save_item(NAME(m_auto_animation_counter)); save_item(NAME(m_auto_animation_frame_counter)); - - - m_region_zoomy = memregion(":zoomy")->base(); } void neosprite_base_device::device_reset() @@ -146,7 +145,7 @@ TIMER_CALLBACK_MEMBER(neosprite_base_device::auto_animation_timer_callback) else m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1; - m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(screen().time_until_pos(NEOGEO_VSSTART)); } @@ -158,7 +157,7 @@ void neosprite_base_device::create_auto_animation_timer() void neosprite_base_device::start_auto_animation_timer() { - m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(screen().time_until_pos(NEOGEO_VSSTART)); } @@ -524,14 +523,14 @@ TIMER_CALLBACK_MEMBER(neosprite_base_device::sprite_line_timer_callback) /* we are at the beginning of a scanline - we need to draw the previous scanline and parse the sprites on the current one */ if (scanline != 0) - m_screen->update_partial(scanline - 1); + screen().update_partial(scanline - 1); parse_sprites(scanline); /* let's come back at the beginning of the next line */ scanline = (scanline + 1) % NEOGEO_VTOTAL; - m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline); + m_sprite_line_timer->adjust(screen().time_until_pos(scanline), scanline); } @@ -543,7 +542,7 @@ void neosprite_base_device::create_sprite_line_timer() void neosprite_base_device::start_sprite_line_timer() { - m_sprite_line_timer->adjust(m_screen->time_until_pos(0)); + m_sprite_line_timer->adjust(screen().time_until_pos(0)); } @@ -598,11 +597,6 @@ void neosprite_base_device::set_fixed_regions(uint8_t* fix_cart, uint32_t fix_ca m_region_fixedbios = fix_bios; } -void neosprite_base_device::set_screen(screen_device* screen) -{ - m_screen = screen; -} - void neosprite_base_device::set_pens(const pen_t* pens) { m_pens = pens; diff --git a/src/mame/video/neogeo_spr.h b/src/mame/video/neogeo_spr.h index 8ebc26a1c76..983915cf10d 100644 --- a/src/mame/video/neogeo_spr.h +++ b/src/mame/video/neogeo_spr.h @@ -21,7 +21,7 @@ #define NEOGEO_VSSTART (0x100) // todo, sort out what needs to be public and make the rest private/protected -class neosprite_base_device : public device_t +class neosprite_base_device : public device_t, public device_video_interface { public: virtual void optimize_sprite_data(); @@ -48,7 +48,6 @@ public: void start_sprite_line_timer(); virtual void set_sprite_region(uint8_t* region_sprites, uint32_t region_sprites_size); void set_fixed_regions(uint8_t* fix_cart, uint32_t fix_cart_size, memory_region* fix_bios); - void set_screen(screen_device* screen); void set_pens(const pen_t* pens); std::unique_ptr<uint16_t[]> m_videoram; @@ -58,8 +57,6 @@ public: uint16_t m_vram_read_buffer; uint16_t m_vram_modulo; - const uint8_t *m_region_zoomy; - uint32_t m_sprite_gfx_address_mask; uint8_t m_auto_animation_speed; @@ -92,8 +89,9 @@ protected: uint8_t* m_region_sprites; uint32_t m_region_sprites_size; uint8_t* m_region_fixed; uint32_t m_region_fixed_size; memory_region* m_region_fixedbios; - screen_device* m_screen; const pen_t *m_pens; + + required_region_ptr<uint8_t> m_region_zoomy; }; |