From aea16dafbb011ee5bdabf854f54daba2a8650c0f Mon Sep 17 00:00:00 2001 From: AJR Date: Sat, 25 Aug 2018 18:01:18 -0400 Subject: [PATCH] nightmare: Change game title to two words as suggested by Haze (nw) - Make VDP its own device type (might be a custom mask variant) - Set EFO90501 refresh rate tentatively to 50 Hz (this is now a device setting) --- src/devices/video/tms9928a.cpp | 6 ++++++ src/devices/video/tms9928a.h | 8 ++++++++ src/mame/drivers/nightmare.cpp | 17 +++++++++-------- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/devices/video/tms9928a.cpp b/src/devices/video/tms9928a.cpp index 55fae79ef2b..bc31b1b1db9 100644 --- a/src/devices/video/tms9928a.cpp +++ b/src/devices/video/tms9928a.cpp @@ -35,6 +35,7 @@ DEFINE_DEVICE_TYPE(TMS9128, tms9128_device, "tms9128", "TMS9128 VDP") DEFINE_DEVICE_TYPE(TMS9929, tms9929_device, "tms9929", "TMS9929 VDP") DEFINE_DEVICE_TYPE(TMS9929A, tms9929a_device, "tms9929a", "TMS9929A VDP") DEFINE_DEVICE_TYPE(TMS9129, tms9129_device, "tms9129", "TMS9129 VDP") +DEFINE_DEVICE_TYPE(EFO90501, efo90501_device, "efo90501", "EFO90501 VDP") // ======= Debugging ========= @@ -130,6 +131,11 @@ tms9929a_device::tms9929a_device(const machine_config &mconfig, const char *tag, { } +efo90501_device::efo90501_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : tms9928a_device(mconfig, EFO90501, tag, owner, clock, true, true, true) +{ +} + device_memory_interface::space_config_vector tms9928a_device::memory_space_config() const { return space_config_vector { diff --git a/src/devices/video/tms9928a.h b/src/devices/video/tms9928a.h index b69a61d870d..0798183f0ea 100644 --- a/src/devices/video/tms9928a.h +++ b/src/devices/video/tms9928a.h @@ -46,6 +46,7 @@ DECLARE_DEVICE_TYPE(TMS9128, tms9128_device) DECLARE_DEVICE_TYPE(TMS9929, tms9929_device) DECLARE_DEVICE_TYPE(TMS9929A, tms9929a_device) DECLARE_DEVICE_TYPE(TMS9129, tms9129_device) +DECLARE_DEVICE_TYPE(EFO90501, efo90501_device) class tms9928a_device : public device_t, @@ -206,4 +207,11 @@ public: }; +class efo90501_device : public tms9928a_device +{ +public: + efo90501_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + + #endif // MAME_VIDEO_TMS9928A_H diff --git a/src/mame/drivers/nightmare.cpp b/src/mame/drivers/nightmare.cpp index c9f5d8ec885..e748132b6f2 100644 --- a/src/mame/drivers/nightmare.cpp +++ b/src/mame/drivers/nightmare.cpp @@ -3,7 +3,7 @@ /****************************************************************************** - Nightmare / Clean Octopus. + Night Mare / Clean Octopus. E.F.O. S.A. Video IV System. Barcelona, Spain. @@ -16,8 +16,9 @@ The game was designed by EFO/Playmatic in 1982, then dissappeared and remained lost till now. - The name of the game for the local market was "Nightmare", but for the interna- - tional market they changed the name to "Clean Octopus". + The name of the game for the local market was "Night Mare" (misspelled in + some cases as "Nigth Mare"), but for the international market they changed the + name to "Clean Octopus". -------------------------------------------------------------------------------- @@ -454,16 +455,16 @@ void nightmare_state::nightmare(machine_config &config) SDA2006(config, m_eeprom); /* video hardware */ - TMS9928A( config, m_vdc, MASTER_CLOCK ); + EFO90501( config, m_vdc, MASTER_CLOCK ); + m_vdc->set_screen("screen"); m_vdc->set_vram_size(0x4000); - TMS9928A( config, m_vdc2, MASTER_CLOCK ); + EFO90501( config, m_vdc2, MASTER_CLOCK ); + m_vdc2->set_screen("screen"); m_vdc2->set_vram_size(0x4000); m_vdc2->int_callback().set_inputline(m_maincpu, COSMAC_INPUT_LINE_INT); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_raw(MASTER_CLOCK/2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \ - tms9928a_device::TOTAL_VERT_NTSC, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12); screen.set_screen_update(FUNC(nightmare_state::screen_update_nightmare)); } @@ -481,4 +482,4 @@ ROM_START( nightmare ) ROM_LOAD( "eeprom", 0x00, 0x40, CRC(7824e1f8) SHA1(2ccac62b4e8abcb2b3d66fa4025947fea184664e) ) ROM_END -GAME( 1982, nightmare, 0, nightmare, nightmare, nightmare_state, empty_init, ROT90, "E.F.O.", "Nightmare (Spain)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1982, nightmare, 0, nightmare, nightmare, nightmare_state, empty_init, ROT90, "E.F.O.", "Night Mare (Spain)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )