From 68ebcf02543e03d9e051e26884bb226a4d5c78b3 Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Tue, 4 Jan 2011 15:03:24 +0000 Subject: [PATCH] Fixed 04165: vbowl, vbowlj: Crash after OK --- src/mame/drivers/igs011.c | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 050a8327aab..009bf7694dc 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -42,7 +42,7 @@ To do: - Interrupt controller at 838000 or a38000 (there's a preliminary implementation for lhb) - A few graphical bugs -- vbowl, vbowlj: trackball support, sound is slow and low volume. +- vbowl, vbowlj: trackball support. Wrong colors in "Game Over" screen. - lhb: in the copyright screen the '5' in '1995' is drawn by the cpu on layer 5, @@ -86,18 +86,6 @@ Notes: ***************************************************************************/ -// ASC trampolines -/*static READ8_DEVICE_HANDLER(igs011_ics2115_r) -{ - return downcast(device)->read(offset); - //return 0; -} - -static WRITE8_DEVICE_HANDLER(igs011_ics2115_w) -{ -// device("asc")->write(offset, data); -}*/ - static UINT8 *layer[8]; static UINT16 igs011_priority, *igs011_priority_ram; @@ -2249,11 +2237,12 @@ static ADDRESS_MAP_START( lhb2, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0xa88000, 0xa88001 ) AM_READ( igs_3_dips_r ) ADDRESS_MAP_END - - -static READ16_HANDLER( ics2115_word_r ) +/* trap15's note: + * TODO: change this horrible device-> chain to be proper. + */ +static READ16_DEVICE_HANDLER( ics2115_word_r ) { - ics2115_device* ics2115 = space->machine->device("ics2115"); + ics2115_device* ics2115 = device->machine->device("ics"); switch(offset) { case 0: return ics2115_device::read(ics2115, (offs_t)0); @@ -2263,9 +2252,9 @@ static READ16_HANDLER( ics2115_word_r ) return 0xff; } -static WRITE16_HANDLER( ics2115_word_w ) +static WRITE16_DEVICE_HANDLER( ics2115_word_w ) { - ics2115_device* ics2115 = space->machine->device("ics2115"); + ics2115_device* ics2115 = device->machine->device("ics"); switch(offset) { case 1: @@ -2340,8 +2329,7 @@ static ADDRESS_MAP_START( vbowl, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE( igs011_layers_r, igs011_layers_w ) AM_RANGE( 0x400000, 0x401fff ) AM_RAM_WRITE( igs011_palette ) AM_BASE_GENERIC( paletteram ) AM_RANGE( 0x520000, 0x520001 ) AM_READ_PORT( "COIN" ) -// AM_RANGE( 0x600000, 0x600007 ) AM_DEVREADWRITE( "ics", ics2115_word_r, ics2115_word_w ) - AM_RANGE( 0x600000, 0x600007 ) AM_READWRITE( ics2115_word_r, ics2115_word_w ) + AM_RANGE( 0x600000, 0x600007 ) AM_DEVREADWRITE( "ics", ics2115_word_r, ics2115_word_w ) AM_RANGE( 0x700000, 0x700003 ) AM_RAM AM_BASE( &vbowl_trackball ) AM_RANGE( 0x700004, 0x700005 ) AM_WRITE( vbowl_pen_hi_w ) AM_RANGE( 0x800000, 0x800003 ) AM_WRITE( vbowl_igs003_w ) @@ -3577,10 +3565,6 @@ static void sound_irq(device_t *device, int state) // cputag_set_input_line(machine, "maincpu", 3, state); } -/*static const ics2115_interface vbowl_ics2115_interface = { - sound_irq -};*/ - static INTERRUPT_GEN( vbowl_interrupt ) { switch (cpu_getiloops(device)) @@ -3602,8 +3586,8 @@ static MACHINE_CONFIG_DERIVED( vbowl, igs011_base ) // MCFG_GFXDECODE(igs011_hi) MCFG_DEVICE_REMOVE("oki") -// MCFG_SOUND_ADD("ics", ICS2115, 0) MCFG_ICS2115_ADD("ics", 0, sound_irq) +// MCFG_SOUND_ADD("ics", ICS2115, 0) // MCFG_SOUND_CONFIG(vbowl_ics2115_interface) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 5.0) MACHINE_CONFIG_END