konmedal: additional hookups for shuriboy, POST now displays [R. Belmont]

This commit is contained in:
arbee 2018-01-08 21:04:46 -05:00
parent 0ca762ea61
commit 2a31d476e6

View File

@ -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<cpu_device> m_maincpu;
optional_device<k056832_device> m_k056832;
optional_device<k052109_device> m_k052109;
required_device<palette_device> m_palette;
optional_device<ymz280b_device> m_ymz;
optional_device<okim6295_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) )