diff options
author | mooglyguy <therealmogminer@gmail.com> | 2018-12-05 16:30:42 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2018-12-05 18:37:36 +0100 |
commit | 0cb7e425f1b631ba49aedc46f635f054b8c44847 (patch) | |
tree | e571d8c03f64e637b8a372338dd2a410e9074c3d | |
parent | 6d3fa422b1dcca4f240f4c9842596c5b279b5c4e (diff) |
-midtunit.cpp: Various cleanups. Removed MCFG, converted to video device and removed static globals. [Ryan Holtz]
-midwunit.cpp,midxunit.cpp: Various cleanups. Removed MCFG, converted to logmacro. [Ryan Holtz]
-rw-r--r-- | src/mame/drivers/midtunit.cpp | 22 | ||||
-rw-r--r-- | src/mame/drivers/midwunit.cpp | 66 | ||||
-rw-r--r-- | src/mame/drivers/midxunit.cpp | 55 | ||||
-rw-r--r-- | src/mame/includes/midtunit.h | 7 | ||||
-rw-r--r-- | src/mame/includes/midwunit.h | 35 | ||||
-rw-r--r-- | src/mame/includes/midxunit.h | 8 | ||||
-rw-r--r-- | src/mame/machine/midwunit.cpp | 79 | ||||
-rw-r--r-- | src/mame/machine/midxunit.cpp | 62 | ||||
-rw-r--r-- | src/mame/video/midtunit.cpp | 9 | ||||
-rw-r--r-- | src/mame/video/midtunit.h | 6 | ||||
-rw-r--r-- | src/mame/video/midtunit.hxx | 48 |
11 files changed, 181 insertions, 216 deletions
diff --git a/src/mame/drivers/midtunit.cpp b/src/mame/drivers/midtunit.cpp index e6163ff490a..882c72a4794 100644 --- a/src/mame/drivers/midtunit.cpp +++ b/src/mame/drivers/midtunit.cpp @@ -593,30 +593,30 @@ INPUT_PORTS_END void midtunit_state::tunit_core(machine_config &config) { - MIDTUNIT_VIDEO(config, "video", "maincpu", "palette", "gfxrom"); + MIDTUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); /* basic machine hardware */ - tms340x0_device &maincpu(TMS34010(config, "maincpu", CPU_CLOCK)); - maincpu.set_addrmap(AS_PROGRAM, &midtunit_state::main_map); - maincpu.set_halt_on_reset(false); /* halt on reset */ - maincpu.set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ - maincpu.set_pixels_per_clock(2); /* pixels per clock */ - maincpu.set_scanline_ind16_callback("video", FUNC(midtunit_video_device::scanline_update)); /* scanline updater (indexed16) */ - maincpu.set_shiftreg_in_callback("video", FUNC(midtunit_video_device::to_shiftreg)); /* write to shiftreg function */ - maincpu.set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ + TMS34010(config, m_maincpu, CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &midtunit_state::main_map); + m_maincpu->set_halt_on_reset(false); /* halt on reset */ + m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ + m_maincpu->set_pixels_per_clock(2); /* pixels per clock */ + m_maincpu->set_scanline_ind16_callback("video", FUNC(midtunit_video_device::scanline_update)); /* scanline updater (indexed16) */ + m_maincpu->set_shiftreg_in_callback("video", FUNC(midtunit_video_device::to_shiftreg)); /* write to shiftreg function */ + m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - PALETTE(config, "palette", 32768).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB); + PALETTE(config, m_palette, 32768).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // from TMS340 registers screen.set_raw(PIXEL_CLOCK * 2, 506, 100, 500, 289, 20, 274); screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); - screen.set_palette("palette"); + screen.set_palette(m_palette); } diff --git a/src/mame/drivers/midwunit.cpp b/src/mame/drivers/midwunit.cpp index 951589f4971..b98b260bc34 100644 --- a/src/mame/drivers/midwunit.cpp +++ b/src/mame/drivers/midwunit.cpp @@ -115,7 +115,7 @@ Notes: void midwunit_state::main_map(address_map &map) { - map(0x00000000, 0x003fffff).rw(FUNC(midwunit_state::midtunit_vram_r), FUNC(midwunit_state::midtunit_vram_w)); + map(0x00000000, 0x003fffff).rw(m_video, FUNC(midwunit_video_device::midtunit_vram_r), FUNC(midwunit_video_device::midtunit_vram_w)); map(0x01000000, 0x013fffff).ram().share("mainram"); map(0x01400000, 0x0145ffff).rw(FUNC(midwunit_state::midwunit_cmos_r), FUNC(midwunit_state::midwunit_cmos_w)).share("nvram"); map(0x01480000, 0x014fffff).w(FUNC(midwunit_state::midwunit_cmos_enable_w)); @@ -123,9 +123,9 @@ void midwunit_state::main_map(address_map &map) map(0x01680000, 0x0168001f).rw(FUNC(midwunit_state::midwunit_sound_r), FUNC(midwunit_state::midwunit_sound_w)); map(0x01800000, 0x0187ffff).rw(FUNC(midwunit_state::midwunit_io_r), FUNC(midwunit_state::midwunit_io_w)); map(0x01880000, 0x018fffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x01a00000, 0x01a000ff).mirror(0x00080000).rw(FUNC(midwunit_state::midtunit_dma_r), FUNC(midwunit_state::midtunit_dma_w)); - map(0x01b00000, 0x01b0001f).rw(FUNC(midwunit_state::midwunit_control_r), FUNC(midwunit_state::midwunit_control_w)); - map(0x02000000, 0x06ffffff).r(FUNC(midwunit_state::midwunit_gfxrom_r)); + map(0x01a00000, 0x01a000ff).mirror(0x00080000).rw(m_video, FUNC(midwunit_video_device::midtunit_dma_r), FUNC(midwunit_video_device::midtunit_dma_w)); + map(0x01b00000, 0x01b0001f).rw(m_video, FUNC(midwunit_video_device::midwunit_control_r), FUNC(midwunit_video_device::midwunit_control_w)); + map(0x02000000, 0x06ffffff).r(m_video, FUNC(midwunit_video_device::midwunit_gfxrom_r)); map(0xc0000000, 0xc00001ff).rw("maincpu", FUNC(tms34010_device::io_register_r), FUNC(tms34010_device::io_register_w)); map(0xff800000, 0xffffffff).rom().region("maincpu", 0); } @@ -624,53 +624,51 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(midwunit_state::wunit) +void midwunit_state::wunit(machine_config &config) +{ + MIDWUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); - MCFG_DEVICE_ADD("maincpu", TMS34010, 50000000) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TMS340X0_HALT_ON_RESET(false) /* halt on reset */ - MCFG_TMS340X0_PIXEL_CLOCK(PIXEL_CLOCK) /* pixel clock */ - MCFG_TMS340X0_PIXELS_PER_CLOCK(1) /* pixels per clock */ - MCFG_TMS340X0_SCANLINE_IND16_CB(midtunit_state, scanline_update) /* scanline updater (indexed16) */ - MCFG_TMS340X0_TO_SHIFTREG_CB(midtunit_state, to_shiftreg) /* write to shiftreg function */ - MCFG_TMS340X0_FROM_SHIFTREG_CB(midtunit_state, from_shiftreg) /* read from shiftreg function */ + TMS34010(config, m_maincpu, 50000000); + m_maincpu->set_addrmap(AS_PROGRAM, &midwunit_state::main_map); + m_maincpu->set_halt_on_reset(false); /* halt on reset */ + m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ + m_maincpu->set_pixels_per_clock(1); /* pixels per clock */ + m_maincpu->set_scanline_ind16_callback("video", FUNC(midtunit_video_device::scanline_update)); /* scanline updater (indexed16) */ + m_maincpu->set_shiftreg_in_callback("video", FUNC(midtunit_video_device::to_shiftreg)); /* write to shiftreg function */ + m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ - MCFG_MACHINE_RESET_OVERRIDE(midwunit_state,midwunit) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_PALETTE_ADD("palette", 32768) - MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + PALETTE(config, m_palette, 32768).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB); - MCFG_SCREEN_ADD("screen", RASTER) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // from TMS340 registers - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_ind16) - MCFG_SCREEN_PALETTE("palette") - - MCFG_VIDEO_START_OVERRIDE(midwunit_state,midwunit) + screen.set_raw(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274); + screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); + screen.set_palette(m_palette); /* sound hardware */ DCS_AUDIO_8K(config, m_dcs, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(midwunit_state::wunit_picsim) +void midwunit_state::wunit_picsim(machine_config &config) +{ wunit(config); - MCFG_DEVICE_ADD("serial_security_sim", MIDWAY_SERIAL_PIC, 0) - MCFG_MIDWAY_SERIAL_PIC_UPPER(528); // this is actually a generic code all games check for in addition to their own game specific code! -MACHINE_CONFIG_END - + MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); + m_midway_serial_pic->set_upper(528); // this is actually a generic code all games check for in addition to their own game specific code! +} -MACHINE_CONFIG_START(midwunit_state::wunit_picemu) +void midwunit_state::wunit_picemu(machine_config &config) +{ wunit(config); - MCFG_DEVICE_ADD("serial_security", MIDWAY_SERIAL_PIC_EMU, 0) + MIDWAY_SERIAL_PIC_EMU(config, m_midway_serial_pic_emu, 0); // todo, REMOVE once the emulated PIC above works! // this just allows it to fall through to the simulation for now - MCFG_DEVICE_ADD("serial_security_sim", MIDWAY_SERIAL_PIC, 0) - MCFG_MIDWAY_SERIAL_PIC_UPPER(528); - -MACHINE_CONFIG_END + MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); + m_midway_serial_pic->set_upper(528); +} diff --git a/src/mame/drivers/midxunit.cpp b/src/mame/drivers/midxunit.cpp index f9bbe07a9e6..3420dd2c730 100644 --- a/src/mame/drivers/midxunit.cpp +++ b/src/mame/drivers/midxunit.cpp @@ -106,8 +106,8 @@ There's a separate sound board also, but it wasn't available so is not documente void midxunit_state::main_map(address_map &map) { - map(0x00000000, 0x003fffff).rw(FUNC(midxunit_state::midtunit_vram_data_r), FUNC(midxunit_state::midtunit_vram_data_w)); - map(0x00800000, 0x00bfffff).rw(FUNC(midxunit_state::midtunit_vram_color_r), FUNC(midxunit_state::midtunit_vram_color_w)); + map(0x00000000, 0x003fffff).rw(m_video, FUNC(midxunit_video_device::midtunit_vram_data_r), FUNC(midxunit_video_device::midtunit_vram_data_w)); + map(0x00800000, 0x00bfffff).rw(m_video, FUNC(midxunit_video_device::midtunit_vram_color_r), FUNC(midxunit_video_device::midtunit_vram_color_w)); map(0x20000000, 0x20ffffff).ram(); map(0x40800000, 0x4fffffff).w(FUNC(midxunit_state::midxunit_unknown_w)); map(0x60400000, 0x6040001f).rw(FUNC(midxunit_state::midxunit_status_r), FUNC(midxunit_state::midxunit_security_clock_w)); @@ -121,10 +121,10 @@ void midxunit_state::main_map(address_map &map) map(0x80800010, 0x8080001f).noprw(); map(0x80c00000, 0x80c000ff).rw(FUNC(midxunit_state::midxunit_uart_r), FUNC(midxunit_state::midxunit_uart_w)); map(0xa0440000, 0xa047ffff).rw(FUNC(midxunit_state::midxunit_cmos_r), FUNC(midxunit_state::midxunit_cmos_w)).share("nvram"); - map(0xa0800000, 0xa08fffff).rw(FUNC(midxunit_state::midxunit_paletteram_r), FUNC(midxunit_state::midxunit_paletteram_w)).share("palette"); + map(0xa0800000, 0xa08fffff).rw(m_video, FUNC(midxunit_video_device::midxunit_paletteram_r), FUNC(midxunit_video_device::midxunit_paletteram_w)).share("palette"); map(0xc0000000, 0xc00003ff).rw("maincpu", FUNC(tms34020_device::io_register_r), FUNC(tms34020_device::io_register_w)); - map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(FUNC(midxunit_state::midtunit_dma_r), FUNC(midxunit_state::midtunit_dma_w)); - map(0xf8000000, 0xfeffffff).r(FUNC(midxunit_state::midwunit_gfxrom_r)); + map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(m_video, FUNC(midxunit_video_device::midtunit_dma_r), FUNC(midxunit_video_device::midtunit_dma_w)); + map(0xf8000000, 0xfeffffff).r(m_video, FUNC(midxunit_video_device::midwunit_gfxrom_r)); map(0xff000000, 0xffffffff).rom().region("maincpu", 0); } @@ -241,34 +241,33 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(midxunit_state::midxunit) +void midxunit_state::midxunit(machine_config &config) +{ + MIDXUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", TMS34020, 40000000) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_TMS340X0_HALT_ON_RESET(false) /* halt on reset */ - MCFG_TMS340X0_PIXEL_CLOCK(PIXEL_CLOCK) /* pixel clock */ - MCFG_TMS340X0_PIXELS_PER_CLOCK(1) /* pixels per clock */ - MCFG_TMS340X0_SCANLINE_IND16_CB(midxunit_state, scanline_update) /* scanline updater (indexed16) */ - MCFG_TMS340X0_TO_SHIFTREG_CB(midtunit_state, to_shiftreg) /* write to shiftreg function */ - MCFG_TMS340X0_FROM_SHIFTREG_CB(midtunit_state, from_shiftreg) /* read from shiftreg function */ - - MCFG_MACHINE_RESET_OVERRIDE(midxunit_state,midxunit) + TMS34020(config, m_maincpu, 40000000); + m_maincpu->set_addrmap(AS_PROGRAM, &midxunit_state::main_map); + m_maincpu->set_halt_on_reset(false); /* halt on reset */ + m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ + m_maincpu->set_pixels_per_clock(1); /* pixels per clock */ + m_maincpu->set_scanline_ind16_callback("video", FUNC(midxunit_video_device::scanline_update)); /* scanline updater (indexed16) */ + m_maincpu->set_shiftreg_in_callback("video", FUNC(midxunit_video_device::to_shiftreg)); /* write to shiftreg function */ + m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ + NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_PALETTE_ADD("palette", 32768) - MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) + PALETTE(config, m_palette, 32768).set_format(PALETTE_FORMAT_xRRRRRGGGGGBBBBB); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_ind16) - MCFG_SCREEN_PALETTE("palette") - MCFG_VIDEO_START_OVERRIDE(midxunit_state,midxunit) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274); + screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("serial_pic", MIDWAY_SERIAL_PIC, 0) + MIDWAY_SERIAL_PIC(config, m_midway_serial_pic, 0); /* serial prefixes 419, 420 */ - MCFG_MIDWAY_SERIAL_PIC_UPPER(419); + m_midway_serial_pic->set_upper(419); adc0848_device &adc(ADC0848(config, "adc", 0)); adc.intr_callback().set(FUNC(midxunit_state::adc_int_w)); // ADC INT passed through PLSI1032 @@ -281,7 +280,7 @@ MACHINE_CONFIG_START(midxunit_state::midxunit) /* sound hardware */ DCS_AUDIO_2K_UART(config, m_dcs, 0); -MACHINE_CONFIG_END +} @@ -431,5 +430,5 @@ ROM_END * *************************************/ -GAME( 1994, revx, 0, midxunit, revx, midxunit_state, init_revx, ROT0, "Midway", "Revolution X (rev 1.0 6/16/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, revxp5, revx, midxunit, revx, midxunit_state, init_revx, ROT0, "Midway", "Revolution X (prototype, rev 5.0 5/23/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, revx, 0, midxunit, revx, midxunit_state, empty_init, ROT0, "Midway", "Revolution X (rev 1.0 6/16/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, revxp5, revx, midxunit, revx, midxunit_state, empty_init, ROT0, "Midway", "Revolution X (prototype, rev 5.0 5/23/94)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/midtunit.h b/src/mame/includes/midtunit.h index 0f1fc45485a..005681d6609 100644 --- a/src/mame/includes/midtunit.h +++ b/src/mame/includes/midtunit.h @@ -28,10 +28,10 @@ public: m_video(*this, "video"), m_dcs(*this, "dcs"), m_palette(*this, "palette"), + m_gfxrom(*this, "gfxrom"), m_cvsd_sound(*this, "cvsd"), m_adpcm_sound(*this, "adpcm"), - m_nvram(*this, "nvram"), - m_gfxrom(*this, "gfxrom") + m_nvram(*this, "nvram") { } void tunit_core(machine_config &config); @@ -52,6 +52,7 @@ protected: required_device<midtunit_video_device> m_video; optional_device<dcs_audio_device> m_dcs; required_device<palette_device> m_palette; + required_memory_region m_gfxrom; private: optional_device<williams_cvsd_sound_device> m_cvsd_sound; @@ -59,8 +60,6 @@ private: required_shared_ptr<uint16_t> m_nvram; - required_memory_region m_gfxrom; - DECLARE_WRITE16_MEMBER(midtunit_cmos_enable_w); DECLARE_WRITE16_MEMBER(midtunit_cmos_w); DECLARE_READ16_MEMBER(midtunit_cmos_r); diff --git a/src/mame/includes/midwunit.h b/src/mame/includes/midwunit.h index f1b39b35bb0..8545708a63c 100644 --- a/src/mame/includes/midwunit.h +++ b/src/mame/includes/midwunit.h @@ -38,20 +38,11 @@ public: void init_umk3r11(); void init_mk3r20(); -private: - optional_device<midway_serial_pic_device> m_midway_serial_pic; - optional_device<midway_serial_pic_emu_device> m_midway_serial_pic_emu; - required_shared_ptr<uint16_t> m_nvram; - required_shared_ptr<uint16_t> m_mainram; - required_ioport_array<4> m_ports; - - uint8_t m_cmos_write_enable; - uint16_t m_iodata[8]; - uint8_t m_ioshuffle[16]; - uint8_t m_uart[8]; - uint8_t m_security_bits; - uint16_t *m_umk3_palette; +protected: + virtual void machine_start() override; + virtual void machine_reset() override; +private: DECLARE_WRITE16_MEMBER(midwunit_cmos_enable_w); DECLARE_WRITE16_MEMBER(midwunit_cmos_w); DECLARE_READ16_MEMBER(midwunit_cmos_r); @@ -65,13 +56,21 @@ private: DECLARE_WRITE16_MEMBER(umk3_palette_hack_w); DECLARE_WRITE16_MEMBER(wwfmania_io_0_w); - DECLARE_MACHINE_RESET(midwunit); - DECLARE_VIDEO_START(midwunit); - - void register_state_saving(); - void init_wunit_generic(); void init_mk3_common(); void main_map(address_map &map); + + optional_device<midway_serial_pic_device> m_midway_serial_pic; + optional_device<midway_serial_pic_emu_device> m_midway_serial_pic_emu; + required_shared_ptr<uint16_t> m_nvram; + required_shared_ptr<uint16_t> m_mainram; + required_ioport_array<4> m_ports; + + uint8_t m_cmos_write_enable; + uint16_t m_iodata[8]; + uint8_t m_ioshuffle[16]; + uint8_t m_uart[8]; + uint8_t m_security_bits; + uint16_t *m_umk3_palette; }; #endif // MAME_INCLUDES_MIDWUNIT_H diff --git a/src/mame/includes/midxunit.h b/src/mame/includes/midxunit.h index 1b2d162bf29..5a3d7bada8c 100644 --- a/src/mame/includes/midxunit.h +++ b/src/mame/includes/midxunit.h @@ -23,7 +23,9 @@ public: void midxunit(machine_config &config); - void init_revx(); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; private: DECLARE_READ16_MEMBER(midxunit_cmos_r); @@ -41,14 +43,12 @@ private: DECLARE_READ16_MEMBER(midxunit_sound_state_r); DECLARE_WRITE16_MEMBER(midxunit_sound_w); DECLARE_WRITE_LINE_MEMBER(midxunit_dcs_output_full); - DECLARE_MACHINE_RESET(midxunit); - DECLARE_VIDEO_START(midxunit); - void register_state_saving(); void main_map(address_map &map); required_shared_ptr<uint16_t> m_nvram; required_device<midway_serial_pic_device> m_midway_serial_pic; + uint8_t m_cmos_write_enable; uint16_t m_iodata[8]; uint8_t m_ioshuffle[16]; diff --git a/src/mame/machine/midwunit.cpp b/src/mame/machine/midwunit.cpp index 0104178554e..85203c56d7e 100644 --- a/src/mame/machine/midwunit.cpp +++ b/src/mame/machine/midwunit.cpp @@ -13,22 +13,13 @@ #include "includes/midtunit.h" #include "includes/midwunit.h" -/************************************* - * - * State saving - * - *************************************/ - -void midwunit_state::register_state_saving() -{ - save_item(NAME(m_cmos_write_enable)); - save_item(NAME(m_iodata)); - save_item(NAME(m_ioshuffle)); - save_item(NAME(m_uart)); - save_item(NAME(m_security_bits)); -} - +#define LOG_UNKNOWN (1 << 0) +#define LOG_CMOS (1 << 1) +#define LOG_IO (1 << 2) +#define LOG_SOUND (1 << 3) +#define VERBOSE (0) +#include "logmacro.h" /************************************* * @@ -51,7 +42,7 @@ WRITE16_MEMBER(midwunit_state::midwunit_cmos_w) } else { - logerror("%08X:Unexpected CMOS W @ %05X\n", m_maincpu->pc(), offset); + LOGMASKED(LOG_CMOS | LOG_UNKNOWN, "%s: Unexpected CMOS W @ %05X\n", machine().describe_context(), offset); popmessage("Bad CMOS write"); } } @@ -73,17 +64,15 @@ READ16_MEMBER(midwunit_state::midwunit_cmos_r) WRITE16_MEMBER(midwunit_state::midwunit_io_w) { - int oldword, newword; - offset %= 8; - oldword = m_iodata[offset]; - newword = oldword; + int oldword = m_iodata[offset]; + int newword = oldword; COMBINE_DATA(&newword); switch (offset) { case 1: - logerror("%08X:Control W @ %05X = %04X\n", m_maincpu->pc(), offset, data); + LOGMASKED(LOG_IO, "%s: Control W @ %05X = %04X\n", machine().describe_context(), offset, data); /* bit 4 reset sound CPU */ m_dcs->reset_w(newword & 0x10); @@ -99,7 +88,7 @@ WRITE16_MEMBER(midwunit_state::midwunit_io_w) break; default: - logerror("%08X:Unknown I/O write to %d = %04X\n", m_maincpu->pc(), offset, data); + LOGMASKED(LOG_IO | LOG_UNKNOWN, "%s: Unknown I/O write to %d = %04X\n", machine().describe_context(), offset, data); break; } m_iodata[offset] = newword; @@ -134,7 +123,7 @@ READ16_MEMBER(midwunit_state::midwunit_io_r) return (picret << 12) | midwunit_sound_state_r(space, 0, 0xffff); } default: - logerror("%08X:Unknown I/O read from %d\n", m_maincpu->pc(), offset); + LOGMASKED(LOG_IO | LOG_UNKNOWN, "%s: Unknown I/O read from %d\n", machine().describe_context(), offset); break; } return ~0; @@ -148,10 +137,13 @@ READ16_MEMBER(midwunit_state::midwunit_io_r) * *************************************/ -void midwunit_state::init_wunit_generic() +void midwunit_state::machine_start() { - /* register for state saving */ - register_state_saving(); + save_item(NAME(m_cmos_write_enable)); + save_item(NAME(m_iodata)); + save_item(NAME(m_ioshuffle)); + save_item(NAME(m_uart)); + save_item(NAME(m_security_bits)); } @@ -195,9 +187,6 @@ WRITE16_MEMBER(midwunit_state::umk3_palette_hack_w) void midwunit_state::init_mk3_common() { - /* common init */ - init_wunit_generic(); - /* serial prefixes 439, 528 */ //midway_serial_pic_init(machine(), 528); } @@ -236,9 +225,6 @@ void midwunit_state::init_umk3r11() void midwunit_state::init_openice() { - /* common init */ - init_wunit_generic(); - /* serial prefixes 438, 528 */ //midway_serial_pic_init(machine(), 528); } @@ -248,9 +234,6 @@ void midwunit_state::init_openice() void midwunit_state::init_nbahangt() { - /* common init */ - init_wunit_generic(); - /* serial prefixes 459, 470, 528 */ //midway_serial_pic_init(machine(), 528); } @@ -260,10 +243,8 @@ void midwunit_state::init_nbahangt() WRITE16_MEMBER(midwunit_state::wwfmania_io_0_w) { - int i; - /* start with the originals */ - for (i = 0; i < 16; i++) + for (int i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; /* based on the data written, shuffle */ @@ -304,14 +285,11 @@ WRITE16_MEMBER(midwunit_state::wwfmania_io_0_w) m_ioshuffle[8] = 4; break; } - logerror("Changed I/O swiching to %d\n", data); + LOGMASKED(LOG_IO, "Changed I/O swiching to %d\n", data); } void midwunit_state::init_wwfmania() { - /* common init */ - init_wunit_generic(); - /* enable I/O shuffling */ m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16_delegate(FUNC(midwunit_state::wwfmania_io_0_w),this)); @@ -324,9 +302,6 @@ void midwunit_state::init_wwfmania() void midwunit_state::init_rmpgwt() { - /* common init */ - init_wunit_generic(); - /* serial prefixes 465, 528 */ //midway_serial_pic_init(machine(), 528); } @@ -334,20 +309,18 @@ void midwunit_state::init_rmpgwt() /************************************* * - * Machine init + * Machine reset * *************************************/ -MACHINE_RESET_MEMBER(midwunit_state,midwunit) +void midwunit_state::machine_reset() { - int i; - /* reset sound */ m_dcs->reset_w(1); m_dcs->reset_w(0); /* reset I/O shuffling */ - for (i = 0; i < 16; i++) + for (int i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; } @@ -385,7 +358,7 @@ WRITE16_MEMBER(midwunit_state::midwunit_security_w) READ16_MEMBER(midwunit_state::midwunit_sound_r) { - logerror("%08X:Sound read\n", m_maincpu->pc()); + LOGMASKED(LOG_SOUND, "%s: Sound read\n", machine().describe_context()); return m_dcs->data_r() & 0xff; } @@ -402,14 +375,14 @@ WRITE16_MEMBER(midwunit_state::midwunit_sound_w) /* check for out-of-bounds accesses */ if (offset) { - logerror("%08X:Unexpected write to sound (hi) = %04X\n", m_maincpu->pc(), data); + LOGMASKED(LOG_SOUND | LOG_UNKNOWN, "%s: Unexpected write to sound (hi) = %04X\n", machine().describe_context(), data); return; } /* call through based on the sound type */ if (ACCESSING_BITS_0_7) { - logerror("%08X:Sound write = %04X\n", m_maincpu->pc(), data); + LOGMASKED(LOG_SOUND, "%s: Sound write = %04X\n", machine().describe_context(), data); m_dcs->data_w(data & 0xff); } } diff --git a/src/mame/machine/midxunit.cpp b/src/mame/machine/midxunit.cpp index 57299d2162a..fbbdad46380 100644 --- a/src/mame/machine/midxunit.cpp +++ b/src/mame/machine/midxunit.cpp @@ -14,24 +14,13 @@ #include "includes/midxunit.h" #include "midwayic.h" +#define LOG_IO (1 << 0) +#define LOG_UART (1 << 1) +#define LOG_UNKNOWN (1 << 2) +#define LOG_SOUND (1 << 3) -/************************************* - * - * State saving - * - *************************************/ - -void midxunit_state::register_state_saving() -{ - save_item(NAME(m_cmos_write_enable)); - save_item(NAME(m_iodata)); - save_item(NAME(m_ioshuffle)); - save_item(NAME(m_uart)); - save_item(NAME(m_security_bits)); - save_item(NAME(m_adc_int)); -} - - +#define VERBOSE (0) +#include "logmacro.h" /************************************* * @@ -74,8 +63,8 @@ WRITE16_MEMBER(midxunit_state::midxunit_io_w) default: /* Gun Outputs for RevX */ - /* Note: The Gun for the Coin slot you use is supposed to rumble when you insert coins, and it doesn't for P3 */ - /* Perhaps an Input is hooked up wrong??? */ + /* Note: The Gun for the Coin slot you use is supposed to rumble when you insert coins, and it doesn't for P3. */ + /* Perhaps an Input is hooked up wrong. */ output().set_value("Player1_Gun_Recoil", data & 0x1 ); output().set_value("Player2_Gun_Recoil", (data & 0x2) >> 1 ); output().set_value("Player3_Gun_Recoil", (data & 0x4) >> 2 ); @@ -83,8 +72,7 @@ WRITE16_MEMBER(midxunit_state::midxunit_io_w) output().set_value("Player2_Gun_LED", (~data & 0x20) >> 5 ); output().set_value("Player3_Gun_LED", (~data & 0x40) >> 6 ); - logerror("%08X:I/O write to %d = %04X\n", m_maincpu->pc(), offset, data); -// logerror("%08X:Unknown I/O write to %d = %04X\n", m_maincpu->pc(), offset, data); + LOGMASKED(LOG_IO, "%s: I/O write to %d = %04X\n", machine().describe_context(), offset, data); break; } m_iodata[offset] = newword; @@ -99,7 +87,7 @@ WRITE16_MEMBER(midxunit_state::midxunit_unknown_w) m_dcs->reset_w(data & 2); if (ACCESSING_BITS_0_7 && offset % 0x40000 == 0) - logerror("%08X:midxunit_unknown_w @ %d = %02X\n", m_maincpu->pc(), offs, data & 0xff); + LOGMASKED(LOG_UNKNOWN, "%s: midxunit_unknown_w @ %d = %02X\n", machine().describe_context(), offs, data & 0xff); } @@ -202,7 +190,7 @@ READ16_MEMBER(midxunit_state::midxunit_uart_r) break; } -/* logerror("%08X:UART R @ %X = %02X\n", m_maincpu->pc(), offset, result);*/ + LOGMASKED(LOG_UART, "%s: UART R @ %X = %02X\n", machine().describe_context(), offset, result); return result; } @@ -238,7 +226,7 @@ WRITE16_MEMBER(midxunit_state::midxunit_uart_w) break; } -/* logerror("%08X:UART W @ %X = %02X\n", m_maincpu->pc(), offset, data);*/ + LOGMASKED(LOG_UART, "%s: UART W @ %X = %02X\n", machine().describe_context(), offset, data); } @@ -253,28 +241,30 @@ WRITE16_MEMBER(midxunit_state::midxunit_uart_w) /********************** Revolution X **********************/ -void midxunit_state::init_revx() -{ - /* register for state saving */ - register_state_saving(); -} - /************************************* * * Machine init * *************************************/ -MACHINE_RESET_MEMBER(midxunit_state,midxunit) +void midxunit_state::machine_start() { - int i; + save_item(NAME(m_cmos_write_enable)); + save_item(NAME(m_iodata)); + save_item(NAME(m_ioshuffle)); + save_item(NAME(m_uart)); + save_item(NAME(m_security_bits)); + save_item(NAME(m_adc_int)); +} +void midxunit_state::machine_reset() +{ /* reset sound */ m_dcs->reset_w(1); m_dcs->reset_w(0); /* reset I/O shuffling */ - for (i = 0; i < 16; i++) + for (int i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; m_dcs->set_io_callbacks(write_line_delegate(FUNC(midxunit_state::midxunit_dcs_output_full),this), write_line_delegate()); @@ -316,7 +306,7 @@ WRITE16_MEMBER(midxunit_state::midxunit_security_clock_w) READ16_MEMBER(midxunit_state::midxunit_sound_r) { - logerror("%08X:Sound read\n", m_maincpu->pc()); + LOGMASKED(LOG_SOUND, "%08X:Sound read\n", m_maincpu->pc()); return m_dcs->data_r() & 0xff; } @@ -333,14 +323,14 @@ WRITE16_MEMBER(midxunit_state::midxunit_sound_w) /* check for out-of-bounds accesses */ if (offset) { - logerror("%08X:Unexpected write to sound (hi) = %04X\n", m_maincpu->pc(), data); + LOGMASKED(LOG_SOUND | LOG_UNKNOWN, "%s: Unexpected write to sound (hi) = %04X\n", machine().describe_context(), data); return; } /* call through based on the sound type */ if (ACCESSING_BITS_0_7) { - logerror("%08X:Sound write = %04X\n", m_maincpu->pc(), data); + LOGMASKED(LOG_SOUND, "%s: Sound write = %04X\n", machine().describe_context(), data); m_dcs->data_w(data & 0xff); } } diff --git a/src/mame/video/midtunit.cpp b/src/mame/video/midtunit.cpp index 71112f2e32b..cb2df663e4b 100644 --- a/src/mame/video/midtunit.cpp +++ b/src/mame/video/midtunit.cpp @@ -31,13 +31,18 @@ midtunit_video_device::midtunit_video_device(const machine_config &mconfig, cons { } +midwunit_video_device::midwunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : midtunit_video_device(mconfig, type, tag, owner, clock) +{ +} + midwunit_video_device::midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : midtunit_video_device(mconfig, MIDWUNIT_VIDEO, tag, owner, clock) { } midxunit_video_device::midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : midtunit_video_device(mconfig, MIDXUNIT_VIDEO, tag, owner, clock) + : midwunit_video_device(mconfig, MIDXUNIT_VIDEO, tag, owner, clock) { } @@ -128,7 +133,7 @@ WRITE16_MEMBER(midtunit_video_device::midtunit_vram_w) if (m_videobank_select) { if (ACCESSING_BITS_0_7) - m_local_videoram[offset] = 0;// (data & 0xff) | ((m_dma_register[DMA_PALETTE] & 0xff) << 8); + m_local_videoram[offset] = (data & 0xff) | ((m_dma_register[DMA_PALETTE] & 0xff) << 8); if (ACCESSING_BITS_8_15) m_local_videoram[offset + 1] = ((data >> 8) & 0xff) | (m_dma_register[DMA_PALETTE] & 0xff00); } diff --git a/src/mame/video/midtunit.h b/src/mame/video/midtunit.h index ba47b53bd68..489a2e5906b 100644 --- a/src/mame/video/midtunit.h +++ b/src/mame/video/midtunit.h @@ -167,16 +167,18 @@ public: DECLARE_READ16_MEMBER(midwunit_control_r); protected: + midwunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0); + virtual void device_start() override; }; -class midxunit_video_device : public midtunit_video_device +class midxunit_video_device : public midwunit_video_device { public: // construction/destruction template <typename T, typename U, typename V> midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag, U &&palette_tag, V &&gfxrom_tag) - : midxunit_video_device(mconfig, tag, owner, (uint32_t)0) + : midwunit_video_device(mconfig, tag, owner, (uint32_t)0) { m_maincpu.set_tag(std::forward<T>(cpu_tag)); m_palette.set_tag(std::forward<U>(palette_tag)); diff --git a/src/mame/video/midtunit.hxx b/src/mame/video/midtunit.hxx index 0d5ca3f3750..690afa6646b 100644 --- a/src/mame/video/midtunit.hxx +++ b/src/mame/video/midtunit.hxx @@ -19,32 +19,32 @@ dest[i+7] = &midtunit_video_device::dma_draw<7, xflip, skip, scale, zero, nonzero>; #define TEMPLATED_DMA_DRAW_NONE(dest, i) \ - dest[i*8+0] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+1] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+2] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+3] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+4] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+5] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+6] = &midtunit_video_device::dma_draw_none; \ - dest[i*8+7] = &midtunit_video_device::dma_draw_none; + dest[i+0] = &midtunit_video_device::dma_draw_none; \ + dest[i+1] = &midtunit_video_device::dma_draw_none; \ + dest[i+2] = &midtunit_video_device::dma_draw_none; \ + dest[i+3] = &midtunit_video_device::dma_draw_none; \ + dest[i+4] = &midtunit_video_device::dma_draw_none; \ + dest[i+5] = &midtunit_video_device::dma_draw_none; \ + dest[i+6] = &midtunit_video_device::dma_draw_none; \ + dest[i+7] = &midtunit_video_device::dma_draw_none; -#define TEMPLATED_DMA_DRAW_P0(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COPY, PIXEL_SKIP) -#define TEMPLATED_DMA_DRAW_P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_SKIP, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_C0(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COLOR, PIXEL_SKIP) -#define TEMPLATED_DMA_DRAW_C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_SKIP, PIXEL_COLOR) -#define TEMPLATED_DMA_DRAW_P0P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COPY, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_C0C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COLOR, PIXEL_COLOR) -#define TEMPLATED_DMA_DRAW_C0P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COLOR, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_P0C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, false, skip, scale, PIXEL_COPY, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_P0(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COPY, PIXEL_SKIP) +#define TEMPLATED_DMA_DRAW_P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_SKIP, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_C0(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COLOR, PIXEL_SKIP) +#define TEMPLATED_DMA_DRAW_C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_SKIP, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_P0P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COPY, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_C0C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COLOR, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_C0P1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COLOR, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_P0C1(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, false, skip, scale, PIXEL_COPY, PIXEL_COLOR) -#define TEMPLATED_DMA_DRAW_P0_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COPY, PIXEL_SKIP) -#define TEMPLATED_DMA_DRAW_P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_SKIP, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_C0_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COLOR, PIXEL_SKIP) -#define TEMPLATED_DMA_DRAW_C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_SKIP, PIXEL_COLOR) -#define TEMPLATED_DMA_DRAW_P0P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COPY, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_C0C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COLOR, PIXEL_COLOR) -#define TEMPLATED_DMA_DRAW_C0P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COLOR, PIXEL_COPY) -#define TEMPLATED_DMA_DRAW_P0C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i*8, true, skip, scale, PIXEL_COPY, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_P0_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COPY, PIXEL_SKIP) +#define TEMPLATED_DMA_DRAW_P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_SKIP, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_C0_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COLOR, PIXEL_SKIP) +#define TEMPLATED_DMA_DRAW_C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_SKIP, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_P0P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COPY, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_C0C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COLOR, PIXEL_COLOR) +#define TEMPLATED_DMA_DRAW_C0P1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COLOR, PIXEL_COPY) +#define TEMPLATED_DMA_DRAW_P0C1_XF(dest, i, skip, scale) INIT_TEMPLATED_DMA_DRAW(dest, i, true, skip, scale, PIXEL_COPY, PIXEL_COLOR) #define INIT_TEMPLATED_DMA_DRAW_GROUP(dest, skip, scale) \ TEMPLATED_DMA_DRAW_NONE(dest, 0); \ |