From 2a31d476e6e2019bbcb1d78a8604325d513b3718 Mon Sep 17 00:00:00 2001 From: arbee Date: Mon, 8 Jan 2018 21:04:46 -0500 Subject: konmedal: additional hookups for shuriboy, POST now displays [R. Belmont] --- src/mame/drivers/konmedal.cpp | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp index 65751aec191..9b5430e3edb 100644 --- a/src/mame/drivers/konmedal.cpp +++ b/src/mame/drivers/konmedal.cpp @@ -31,6 +31,7 @@ Konami Custom chips: #include "sound/okim6295.h" #include "sound/k051649.h" #include "video/k054156_k054157_k056832.h" +#include "video/k052109.h" #include "video/konami_helper.h" #include "screen.h" #include "speaker.h" @@ -42,6 +43,7 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_k056832(*this, "k056832"), + m_k052109(*this, "k052109"), m_palette(*this, "palette"), m_ymz(*this, "ymz"), m_oki(*this, "oki") @@ -65,6 +67,9 @@ public: INTERRUPT_GEN_MEMBER(konmedal_interrupt); K056832_CB_MEMBER(tile_callback); + K052109_CB_MEMBER(shuriboy_tile_callback); + INTERRUPT_GEN_MEMBER(shuriboy_interrupt); + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -73,6 +78,7 @@ protected: private: required_device m_maincpu; optional_device m_k056832; + optional_device m_k052109; required_device m_palette; optional_device m_ymz; optional_device m_oki; @@ -159,6 +165,13 @@ uint32_t konmedal_state::screen_update_konmedal(screen_device &screen, bitmap_in uint32_t konmedal_state::screen_update_shuriboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { + bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); + + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4); + return 0; } @@ -233,6 +246,14 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( shuriboy_main, AS_PROGRAM, 8, konmedal_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0) + AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0x9800, 0x987f) AM_DEVREADWRITE("k051649", k051649_device, k051649_waveform_r, k051649_waveform_w) + AM_RANGE(0x9880, 0x9889) AM_DEVWRITE("k051649", k051649_device, k051649_frequency_w) + AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w) + AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w) + AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w) + AM_RANGE(0xa000, 0xbfff) AM_RAM // readback window for ROM? + AM_RANGE(0xc000, 0xffff) AM_DEVREADWRITE("k052109", k052109_device, read, write) ADDRESS_MAP_END static INPUT_PORTS_START( konmedal ) @@ -408,10 +429,23 @@ Other custom chip: 051550 Dips: 2 x 8 dips bank */ +K052109_CB_MEMBER(konmedal_state::shuriboy_tile_callback) +{ + *code |= ((*color & 0x03) << 8) | ((*color & 0x10) << 6) | ((*color & 0x0c) << 9) | (bank << 13); +// *color = m_layer_colorbase[layer] + ((*color & 0xe0) >> 5); +} + +INTERRUPT_GEN_MEMBER(konmedal_state::shuriboy_interrupt) +{ + if (m_k052109->is_irq_enabled()) + device.execute().set_input_line(0, HOLD_LINE); +} + static MACHINE_CONFIG_START( shuriboy ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 3) // divisor unknown MCFG_CPU_PROGRAM_MAP(shuriboy_main) + MCFG_CPU_VBLANK_INT_DRIVER("screen", konmedal_state, shuriboy_interrupt) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) // everything not verified, just a placeholder @@ -423,8 +457,13 @@ static MACHINE_CONFIG_START( shuriboy ) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 8192) // not verified + MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) + MCFG_PALETTE_ENABLE_SHADOWS() + MCFG_PALETTE_ENABLE_HILIGHTS() - // 051962 + 052109 + MCFG_DEVICE_ADD("k052109", K052109, 0) + MCFG_GFX_PALETTE("palette") + MCFG_K052109_CB(konmedal_state, shuriboy_tile_callback) MCFG_MACHINE_START_OVERRIDE(konmedal_state, shuriboy) @@ -482,7 +521,7 @@ ROM_START( shuriboy ) ROM_REGION( 0x10000, "maincpu", 0 ) /* main program */ ROM_LOAD( "gs-341-b01.13g", 0x000000, 0x010000, CRC(3c0f36b6) SHA1(1d3838f45969228a8b2054cd5baf8892db68b644) ) - ROM_REGION( 0x40000, "gfx1", 0 ) /* tilemaps */ + ROM_REGION( 0x40000, "k052109", 0 ) /* tilemaps */ ROM_LOAD32_BYTE( "341-A03.2H", 0x000002, 0x010000, CRC(8e9e9835) SHA1(f8dc4579f238d91c0aef59167be7e5de87dc4ba7) ) ROM_LOAD32_BYTE( "341-A04.4H", 0x000003, 0x010000, CRC(ac82d67b) SHA1(65869adfbb67cf10c92e50239fd747fc5ad4714d) ) ROM_LOAD32_BYTE( "341-A05.5H", 0x000000, 0x010000, CRC(31403832) SHA1(d13c54d3768a0c2d60a3751db8980199f60db243) ) -- cgit v1.2.3