diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c index 766cb25812c..5ad1f43f251 100644 --- a/src/mame/drivers/bogeyman.c +++ b/src/mame/drivers/bogeyman.c @@ -221,6 +221,26 @@ static MACHINE_RESET( bogeyman ) state->last_write = 0; } +static WRITE8_DEVICE_HANDLER( bogeyman_colbank_w ) +{ + bogeyman_state *state = (bogeyman_state *)device->machine->driver_data; + + if((data & 1) != (state->colbank & 1)) + { + state->colbank = data & 1; + tilemap_mark_all_tiles_dirty(state->fg_tilemap); + } +} + +static const ay8910_interface ay8910_config = +{ + AY8910_LEGACY_OUTPUT, + AY8910_DEFAULT_LOADS, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_HANDLER(bogeyman_colbank_w), + DEVCB_NULL +}; static MACHINE_DRIVER_START( bogeyman ) @@ -256,6 +276,7 @@ static MACHINE_DRIVER_START( bogeyman ) MDRV_SPEAKER_STANDARD_MONO("mono") MDRV_SOUND_ADD("ay1", AY8910, 1500000) /* Verified */ + MDRV_SOUND_CONFIG(ay8910_config) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MDRV_SOUND_ADD("ay2", AY8910, 1500000) /* Verified */ diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h index e58fe6d9820..567fe6b319d 100644 --- a/src/mame/includes/bogeyman.h +++ b/src/mame/includes/bogeyman.h @@ -26,6 +26,7 @@ public: /* misc */ int psg_latch; int last_write; + int colbank; }; diff --git a/src/mame/video/bogeyman.c b/src/mame/video/bogeyman.c index 704bad88379..c2ca4ee3824 100644 --- a/src/mame/video/bogeyman.c +++ b/src/mame/video/bogeyman.c @@ -92,7 +92,7 @@ static TILE_GET_INFO( get_fg_tile_info ) int gfxbank = tile / 0x200; int code = tile & 0x1ff; - SET_TILE_INFO(gfxbank, code, 0, 0); + SET_TILE_INFO(gfxbank, code, state->colbank, 0); } VIDEO_START( bogeyman )