From ca312bf6ea0204332e147a66d31e5c0346122138 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Tue, 1 Oct 2024 22:46:40 +0200 Subject: hash/a2600.xml: removed unkact2 as it's identical to hardhead --- hash/a2600.xml | 11 ----------- src/mame/skeleton/whtm68k.cpp | 21 ++++++++++++++++++++- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/hash/a2600.xml b/hash/a2600.xml index 182cd9540ea..f1c66a274a4 100644 --- a/hash/a2600.xml +++ b/hash/a2600.xml @@ -17742,17 +17742,6 @@ MOS Atari-made game NTSC ROMs had a CO16xxx number and PAL ROMs had CO17xxx numb - - Unknown Activision Game #2 (prototype) - 1983 - Activision - - - - - - - Unknown Universal Game (prototype) 1983 diff --git a/src/mame/skeleton/whtm68k.cpp b/src/mame/skeleton/whtm68k.cpp index f923ad82c06..858b80fb367 100644 --- a/src/mame/skeleton/whtm68k.cpp +++ b/src/mame/skeleton/whtm68k.cpp @@ -41,6 +41,7 @@ TODO: #include "cpu/mcs51/mcs51.h" #include "machine/gen_latch.h" #include "machine/nvram.h" +#include "machine/timer.h" #include "sound/okim6295.h" #include "sound/ymopl.h" #include "video/mc6845.h" @@ -70,6 +71,7 @@ public: whtm68k_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_screen(*this, "screen"), m_gfxdecode(*this, "gfxdecode"), m_bgram(*this, "bgram"), m_fgram(*this, "fgram") @@ -82,13 +84,17 @@ protected: private: required_device m_maincpu; + required_device m_screen; required_device m_gfxdecode; + required_shared_ptr m_bgram; required_shared_ptr m_fgram; tilemap_t *m_bg_tilemap = nullptr; tilemap_t *m_fg_tilemap = nullptr; + TIMER_DEVICE_CALLBACK_MEMBER(scanline_cb); + TILE_GET_INFO_MEMBER(get_bg_tile_info); TILE_GET_INFO_MEMBER(get_fg_tile_info); void bgram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); @@ -103,6 +109,18 @@ private: }; +TIMER_DEVICE_CALLBACK_MEMBER(whtm68k_state::scanline_cb) +{ + int const scanline = param; + + if (scanline == 256) + m_maincpu->set_input_line(3, HOLD_LINE); + + if (scanline == 0) + m_maincpu->set_input_line(1, HOLD_LINE); +} + + void whtm68k_state::video_start() { m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(whtm68k_state::get_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); @@ -270,7 +288,8 @@ void whtm68k_state::unkwht(machine_config &config) // basic machine hardware M68000(config, m_maincpu, 24_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &whtm68k_state::main_program_map); - m_maincpu->set_vblank_int("screen", FUNC(whtm68k_state::irq1_line_hold)); + + TIMER(config, "scantimer").configure_scanline(FUNC(whtm68k_state::scanline_cb), "screen", 0, 1); i80c32_device &audiocpu(I80C32(config, "audiocpu", 12_MHz_XTAL)); audiocpu.set_addrmap(AS_PROGRAM, &whtm68k_state::audio_program_map); -- cgit v1.2.3