summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Zsolt Vasvari <zsoltvas@mamedev.org>2008-01-08 09:57:40 +0000
committer Zsolt Vasvari <zsoltvas@mamedev.org>2008-01-08 09:57:40 +0000
commitecfd14305eac002c89a82e3082afc1d08aadc5b5 (patch)
tree8a6d1fb8b9ec9efa2f0b6a35e6f4a52048031f0f /src
parentc846ce37d998dde405f6ccf9d6f1234326f3cbab (diff)
Fixed lasso056gre_1 and lasso056gre_2 (same bug, really.) Adjusted CPU clock to the same as the Rock-Ola games of the same era. The hardware is related. With this new CPU clock, the between-level music finishes
perfectly. Also cleaned-up the driver a bit.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/lasso.c627
-rw-r--r--src/mame/includes/lasso.h5
-rw-r--r--src/mame/video/lasso.c123
3 files changed, 353 insertions, 402 deletions
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 39bf1af92dc..5062d57cd81 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -15,7 +15,9 @@ Year + Game By CPUs Sound Chips
Notes:
-- unknown CPU speeds (affect game timing)
+- unknown CPU speeds (affect game timing), currently using same as the
+ Rock-Ola games of the same area. Lot of similarities between these
+ hardware. The music ends at the perfect time with this clock speed
- Lasso: fire button auto-repeats on high score entry screen (real behavior?)
***************************************************************************/
@@ -34,52 +36,41 @@ static UINT8 coins_old;
static INTERRUPT_GEN( lasso_interrupt )
{
- UINT8 coins_new;
-
// VBlank
if (cpu_getiloops() == 0)
- {
cpunum_set_input_line(0, 0, HOLD_LINE);
- return;
- }
+ else
+ {
+ UINT8 coins_new;
- // Coins
- coins_new = ~readinputport(3) & 0x30;
+ // Coins
+ coins_new = ~readinputport(3) & 0x30;
- if ( ((coins_new & 0x10) && !(coins_old & 0x10)) ||
- ((coins_new & 0x20) && !(coins_old & 0x20)) )
- cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE);
+ if ( ((coins_new & 0x10) && !(coins_old & 0x10)) ||
+ ((coins_new & 0x20) && !(coins_old & 0x20)) )
+ cpunum_set_input_line(0, INPUT_LINE_NMI, PULSE_LINE);
- coins_old = coins_new;
+ coins_old = coins_new;
+ }
}
-/* Shared RAM between Main CPU and sub CPU */
-
-static UINT8 *lasso_sharedram;
-static READ8_HANDLER( lasso_sharedram_r )
-{
- return lasso_sharedram[offset];
-}
-static WRITE8_HANDLER( lasso_sharedram_w )
-{
- lasso_sharedram[offset] = data;
-}
+/* Write to the sound latch and generate an IRQ on the sound CPU */
+static UINT8 *lasso_chip_data;
-/* Write to the sound latch and generate an IRQ on the sound CPU */
static WRITE8_HANDLER( sound_command_w )
{
soundlatch_w(offset,data);
- cpunum_set_input_line( 1, 0, PULSE_LINE );
+ cpunum_set_input_line(1, 0, PULSE_LINE);
}
static WRITE8_HANDLER( pinbo_sound_command_w )
{
soundlatch_w(offset,data);
- cpunum_set_input_line( 1, 0, HOLD_LINE );
+ cpunum_set_input_line(1, 0, HOLD_LINE);
}
static READ8_HANDLER( sound_status_r )
@@ -88,204 +79,152 @@ static READ8_HANDLER( sound_status_r )
return 0x03;
}
-static UINT8 lasso_chip_data;
-
-static WRITE8_HANDLER( sound_data_w )
-{
- lasso_chip_data = BITSWAP8(data,0,1,2,3,4,5,6,7);
-}
-
static WRITE8_HANDLER( sound_select_w )
{
+ UINT8 to_write = BITSWAP8(*lasso_chip_data, 0, 1, 2, 3, 4, 5, 6, 7);
+
if (~data & 0x01) /* chip #0 */
- SN76496_0_w(0,lasso_chip_data);
+ SN76496_0_w(0, to_write);
if (~data & 0x02) /* chip #1 */
- SN76496_1_w(0,lasso_chip_data);
+ SN76496_1_w(0, to_write);
}
static MACHINE_START( lasso )
{
/* register for saving */
state_save_register_global(coins_old);
- state_save_register_global(lasso_chip_data);
-}
-
-static MACHINE_START( pinbo )
-{
- /* register for saving */
- state_save_register_global(coins_old);
}
-static ADDRESS_MAP_START( lasso_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0c7f) AM_READ(MRA8_RAM)
- AM_RANGE(0x1000, 0x17ff) AM_READ(lasso_sharedram_r )
+static ADDRESS_MAP_START( lasso_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x03ff) AM_RAM
+ AM_RANGE(0x0400, 0x07ff) AM_READWRITE(MRA8_RAM, lasso_videoram_w) AM_BASE(&lasso_videoram)
+ AM_RANGE(0x0800, 0x0bff) AM_READWRITE(MRA8_RAM, lasso_colorram_w) AM_BASE(&lasso_colorram)
+ AM_RANGE(0x0c00, 0x0c7f) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
+ AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE(1)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
+ AM_RANGE(0x1801, 0x1801) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_back_color)
+ AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r)
AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r)
- AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r)
+ AM_RANGE(0x1806, 0x1806) AM_READWRITE(input_port_2_r, MWA8_NOP) /* game uses 'lsr' to read port */
AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
+ AM_RANGE(0x8000, 0xbfff) AM_MIRROR(0x4000) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lasso_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram)
- AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram)
- AM_RANGE(0x0c00, 0x0c7f) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
- AM_RANGE(0x1000, 0x17ff) AM_WRITE(lasso_sharedram_w )
- AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w )
- AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w)
- AM_RANGE(0x1806, 0x1806) AM_WRITE(MWA8_NOP) // games uses 'lsr' to read port
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
+
+static ADDRESS_MAP_START( lasso_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x01ff) AM_RAM
+ AM_RANGE(0x5000, 0x7fff) AM_ROM
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_chip_data)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
+ AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
+ AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
+ AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(REGION_CPU2, 0x7000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chameleo_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x10ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r)
- AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r)
- AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r)
- AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r)
- AM_RANGE(0x2000, 0xffff) AM_READ(MRA8_ROM)
+static ADDRESS_MAP_START( lasso_coprocessor_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE(1)
+ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&lasso_bitmap_ram)
+ AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chameleo_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram)
- AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram)
- AM_RANGE(0x0c00, 0x0fff) AM_WRITE(MWA8_RAM) //
- AM_RANGE(0x1000, 0x107f) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
- AM_RANGE(0x1080, 0x10ff) AM_WRITE(MWA8_RAM)
+
+static ADDRESS_MAP_START( chameleo_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x03ff) AM_RAM
+ AM_RANGE(0x0400, 0x07ff) AM_READWRITE(MRA8_RAM, lasso_videoram_w) AM_BASE(&lasso_videoram)
+ AM_RANGE(0x0800, 0x0bff) AM_READWRITE(MRA8_RAM, lasso_colorram_w) AM_BASE(&lasso_colorram)
+ AM_RANGE(0x0c00, 0x0fff) AM_RAM
+ AM_RANGE(0x1000, 0x107f) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
+ AM_RANGE(0x1080, 0x10ff) AM_RAM
AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w )
+ AM_RANGE(0x1801, 0x1801) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE(lasso_video_control_w)
- AM_RANGE(0x2000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( wwjgtin_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x10ff) AM_READ(MRA8_RAM)
AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r)
AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r)
AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r)
AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r)
- AM_RANGE(0x5000, 0xbfff) AM_READ(MRA8_ROM)
- AM_RANGE(0xfffa, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( wwjgtin_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram)
- AM_RANGE(0x0c00, 0x0fff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram)
- AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
- AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
- AM_RANGE(0x1801, 0x1801) AM_WRITE(lasso_backcolor_w )
- AM_RANGE(0x1802, 0x1802) AM_WRITE(wwjgtin_video_control_w )
- AM_RANGE(0x1c00, 0x1c03) AM_WRITE(wwjgtin_lastcolor_w)
- AM_RANGE(0x1c04, 0x1c07) AM_WRITE(MWA8_RAM) AM_BASE(&wwjgtin_track_scroll)
- AM_RANGE(0x5000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( pinbo_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x0400, 0x07ff) AM_WRITE(lasso_videoram_w) AM_BASE(&lasso_videoram)
- AM_RANGE(0x0800, 0x0bff) AM_WRITE(lasso_colorram_w) AM_BASE(&lasso_colorram)
- AM_RANGE(0x1000, 0x10ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
- AM_RANGE(0x1800, 0x1800) AM_WRITE(pinbo_sound_command_w)
- AM_RANGE(0x1802, 0x1802) AM_WRITE(pinbo_video_control_w)
- AM_RANGE(0x2000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x4000, 0xbfff) AM_ROM
+ AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0xa000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( lasso_coprocessor_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x2000, 0x3fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8000, 0x8fff) AM_READ(MRA8_ROM)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( lasso_coprocessor_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_sharedram)
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_bitmap_ram)
- AM_RANGE(0x8000, 0x8fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( lasso_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x5000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
- AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( lasso_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x5000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w)
+static ADDRESS_MAP_START( chameleo_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x01ff) AM_RAM
+ AM_RANGE(0x1000, 0x1fff) AM_ROM
+ AM_RANGE(0x6000, 0x7fff) AM_ROM
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_chip_data)
AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( chameleo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x6000, 0x7fff) AM_READ(MRA8_ROM)
AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
- AM_RANGE(0xfffa, 0xffff) AM_READ(MRA8_ROM)
+ AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(REGION_CPU2, 0x7000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( chameleo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x1000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x6000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
- AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM)
+
+static ADDRESS_MAP_START( wwjgtin_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
+ AM_RANGE(0x0800, 0x0bff) AM_READWRITE(MRA8_RAM, lasso_videoram_w) AM_BASE(&lasso_videoram)
+ AM_RANGE(0x0c00, 0x0fff) AM_READWRITE(MRA8_RAM, lasso_colorram_w) AM_BASE(&lasso_colorram)
+ AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
+ AM_RANGE(0x1801, 0x1801) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_back_color)
+ AM_RANGE(0x1802, 0x1802) AM_WRITE(wwjgtin_video_control_w )
+ AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r)
+ AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r)
+ AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r)
+ AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r)
+ AM_RANGE(0x1c00, 0x1c03) AM_WRITE(MWA8_RAM) AM_BASE(&wwjgtin_last_colors)
+ AM_RANGE(0x1c04, 0x1c07) AM_WRITE(MWA8_RAM) AM_BASE(&wwjgtin_track_scroll)
+ AM_RANGE(0x4000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0x8000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( wwjgtin_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x01ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x5000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xb000, 0xb000) AM_WRITE(sound_data_w)
+static ADDRESS_MAP_START( wwjgtin_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x01ff) AM_RAM
+ AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(MWA8_RAM) AM_BASE(&lasso_chip_data)
AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
AM_RANGE(0xb003, 0xb003) AM_WRITE(DAC_0_data_w)
- AM_RANGE(0xfffa, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
+ AM_RANGE(0xb005, 0xb005) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0xf000, 0xffff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( pinbo_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x03ff) AM_RAM
+ AM_RANGE(0x0400, 0x07ff) AM_READWRITE(MRA8_RAM, lasso_videoram_w) AM_BASE(&lasso_videoram)
+ AM_RANGE(0x0800, 0x0bff) AM_READWRITE(MRA8_RAM, lasso_colorram_w) AM_BASE(&lasso_colorram)
+ AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE(&lasso_spriteram) AM_SIZE(&lasso_spriteram_size)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(pinbo_sound_command_w)
+ AM_RANGE(0x1802, 0x1802) AM_WRITE(pinbo_video_control_w)
+ AM_RANGE(0x1804, 0x1804) AM_READ(input_port_0_r)
+ AM_RANGE(0x1805, 0x1805) AM_READ(input_port_1_r)
+ AM_RANGE(0x1806, 0x1806) AM_READ(input_port_2_r)
+ AM_RANGE(0x1807, 0x1807) AM_READ(input_port_3_r)
+ AM_RANGE(0x2000, 0x3fff) AM_ROM
+ AM_RANGE(0x6000, 0xbfff) AM_ROM
+ AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(REGION_CPU1, 0xa000)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xf000, 0xffff) AM_WRITE(MWA8_RAM)
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
- AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_1_r)
- AM_RANGE(0x08, 0x08) AM_READ(soundlatch_r)
+static ADDRESS_MAP_START( pinbo_audio_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( pinbo_sound_writeport, ADDRESS_SPACE_IO, 8 )
+
+static ADDRESS_MAP_START( pinbo_audio_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
+ AM_RANGE(0x02, 0x02) AM_READ(AY8910_read_port_0_r)
AM_RANGE(0x04, 0x04) AM_WRITE(AY8910_control_port_1_w)
AM_RANGE(0x05, 0x05) AM_WRITE(AY8910_write_port_1_w)
- AM_RANGE(0x08, 0x08) AM_WRITE(MWA8_NOP) /* ??? */
+ AM_RANGE(0x06, 0x06) AM_READ(AY8910_read_port_1_r)
+ AM_RANGE(0x08, 0x08) AM_READWRITE(soundlatch_r, MWA8_NOP) /* ??? */
AM_RANGE(0x14, 0x14) AM_WRITE(MWA8_NOP) /* ??? */
ADDRESS_MAP_END
@@ -628,22 +567,18 @@ GFXDECODE_END
-static MACHINE_DRIVER_START( lasso )
+static MACHINE_DRIVER_START( base )
/* basic machine hardware */
- MDRV_CPU_ADD_TAG("main", M6502, 2000000) /* 2 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(lasso_readmem,lasso_writemem)
- MDRV_CPU_VBLANK_INT(lasso_interrupt,2) /* IRQ = VBlank, NMI = Coin Insertion */
+ MDRV_CPU_ADD_TAG("main", M6502, 11289000/16) /* guess */
+ MDRV_CPU_PROGRAM_MAP(lasso_main_map,0)
MDRV_CPU_ADD_TAG("audio", M6502, 600000)
- /* audio CPU */
- MDRV_CPU_PROGRAM_MAP(lasso_sound_readmem,lasso_sound_writemem)
-
- MDRV_CPU_ADD_TAG("blitter", M6502, 2000000) /* 2 MHz (?) */
- MDRV_CPU_PROGRAM_MAP(lasso_coprocessor_readmem,lasso_coprocessor_writemem)
+ MDRV_CPU_PROGRAM_MAP(lasso_audio_map, 0)
MDRV_SCREEN_REFRESH_RATE(60)
MDRV_SCREEN_VBLANK_TIME(DEFAULT_REAL_60HZ_VBLANK_DURATION)
+ MDRV_CPU_VBLANK_INT(lasso_interrupt,2) /* IRQ = VBlank, NMI = Coin Insertion */
MDRV_INTERLEAVE(100)
MDRV_MACHINE_START(lasso)
@@ -670,17 +605,24 @@ static MACHINE_DRIVER_START( lasso )
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_DRIVER_END
+static MACHINE_DRIVER_START( lasso )
+
+ /* basic machine hardware */
+ MDRV_IMPORT_FROM(base)
+ MDRV_CPU_ADD_TAG("blitter", M6502, 11289000/16) /* guess */
+ MDRV_CPU_PROGRAM_MAP(lasso_coprocessor_map,0)
+
+MACHINE_DRIVER_END
+
static MACHINE_DRIVER_START( chameleo )
/* basic machine hardware */
- MDRV_IMPORT_FROM(lasso)
+ MDRV_IMPORT_FROM(base)
MDRV_CPU_MODIFY("main")
- MDRV_CPU_PROGRAM_MAP(chameleo_readmem,chameleo_writemem)
+ MDRV_CPU_PROGRAM_MAP(chameleo_main_map,0)
MDRV_CPU_MODIFY("audio")
- MDRV_CPU_PROGRAM_MAP(chameleo_sound_readmem,chameleo_sound_writemem)
-
- MDRV_CPU_REMOVE("blitter")
+ MDRV_CPU_PROGRAM_MAP(chameleo_audio_map,0)
/* video hardware */
MDRV_VIDEO_UPDATE(chameleo)
@@ -689,14 +631,12 @@ MACHINE_DRIVER_END
static MACHINE_DRIVER_START( wwjgtin )
/* basic machine hardware */
- MDRV_IMPORT_FROM(lasso)
+ MDRV_IMPORT_FROM(base)
MDRV_CPU_MODIFY("main")
- MDRV_CPU_PROGRAM_MAP(wwjgtin_readmem,wwjgtin_writemem)
+ MDRV_CPU_PROGRAM_MAP(wwjgtin_main_map,0)
MDRV_CPU_MODIFY("audio")
- MDRV_CPU_PROGRAM_MAP(lasso_sound_readmem,wwjgtin_sound_writemem)
-
- MDRV_CPU_REMOVE("blitter")
+ MDRV_CPU_PROGRAM_MAP(wwjgtin_audio_map,0)
/* video hardware */
MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area?
@@ -716,17 +656,13 @@ MACHINE_DRIVER_END
static MACHINE_DRIVER_START( pinbo )
/* basic machine hardware */
- MDRV_IMPORT_FROM(lasso)
+ MDRV_IMPORT_FROM(base)
MDRV_CPU_MODIFY("main")
- MDRV_CPU_PROGRAM_MAP(chameleo_readmem,pinbo_writemem)
+ MDRV_CPU_PROGRAM_MAP(pinbo_main_map,0)
MDRV_CPU_REPLACE("audio", Z80, 3000000)
- MDRV_CPU_PROGRAM_MAP(pinbo_sound_readmem,pinbo_sound_writemem)
- MDRV_CPU_IO_MAP(pinbo_sound_readport,pinbo_sound_writeport)
-
- MDRV_CPU_REMOVE("blitter")
-
- MDRV_MACHINE_START(pinbo)
+ MDRV_CPU_PROGRAM_MAP(pinbo_audio_map,0)
+ MDRV_CPU_IO_MAP(pinbo_audio_io_map,0)
/* video hardware */
MDRV_GFXDECODE(pinbo)
@@ -734,46 +670,42 @@ static MACHINE_DRIVER_START( pinbo )
MDRV_PALETTE_INIT(RRRR_GGGG_BBBB)
MDRV_VIDEO_START(pinbo)
- MDRV_VIDEO_UPDATE(chameleo)
+ MDRV_VIDEO_UPDATE(pinbo)
/* sound hardware */
MDRV_SOUND_REMOVE("sn76489.1")
MDRV_SOUND_REMOVE("sn76489.2")
MDRV_SOUND_ADD(AY8910, 1250000)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
MDRV_SOUND_ADD(AY8910, 1250000)
- MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.55)
MACHINE_DRIVER_END
ROM_START( lasso )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "wm3", 0x8000, 0x2000, CRC(f93addd6) SHA1(b0a1b263874da8608c3bab4e8785358e2aa19c2e) )
- ROM_RELOAD( 0xc000, 0x2000)
- ROM_LOAD( "wm4", 0xe000, 0x2000, CRC(77719859) SHA1(d206b6af9a567f70d69624866ae9973652527065) )
- ROM_RELOAD( 0xa000, 0x2000)
+ ROM_LOAD( "wm4", 0xa000, 0x2000, CRC(77719859) SHA1(d206b6af9a567f70d69624866ae9973652527065) )
ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "wmc", 0x5000, 0x1000, CRC(8b4eb242) SHA1(55ada50036abbaa10799f37e35254e6ff70ee947) )
ROM_LOAD( "wmb", 0x6000, 0x1000, CRC(4658bcb9) SHA1(ecc83ef99edbe5f69a884a142478ff0f56edba12) )
ROM_LOAD( "wma", 0x7000, 0x1000, CRC(2e7de3e9) SHA1(665a89b9914ca16b9c08b751e142cf7320aaf793) )
- ROM_RELOAD( 0xf000, 0x1000 )
- ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* 6502 code (lasso image blitter) */
- ROM_LOAD( "wm5", 0xf000, 0x1000, CRC(7dc3ff07) SHA1(46aaa9186940d06fd679a573330e9ad3796aa647) )
- ROM_RELOAD( 0x8000, 0x1000)
+ ROM_REGION( 0x10000, REGION_CPU3, 0 )
+ ROM_LOAD( "wm5", 0x8000, 0x1000, CRC(7dc3ff07) SHA1(46aaa9186940d06fd679a573330e9ad3796aa647) )
ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
- ROM_LOAD( "wm1", 0x0000, 0x0800, CRC(7db77256) SHA1(d12305bdfb6923c32982982a5544ae9bd8dbc2cb) ) /* Tiles */
- ROM_CONTINUE( 0x1000, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_LOAD( "wm2", 0x2000, 0x0800, CRC(9e7d0b6f) SHA1(c82be332209bf7331718e51926004fe9aa6f5ebd) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "wm1", 0x0000, 0x0800, CRC(7db77256) SHA1(d12305bdfb6923c32982982a5544ae9bd8dbc2cb) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_LOAD( "wm2", 0x2000, 0x0800, CRC(9e7d0b6f) SHA1(c82be332209bf7331718e51926004fe9aa6f5ebd) )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
ROM_REGION( 0x40, REGION_PROMS, 0 )
ROM_LOAD( "82s123.69", 0x0000, 0x0020, CRC(1eabb04d) SHA1(3dc5b407bc1b1dea77337b4e913f1e945386d5c9) )
@@ -781,61 +713,57 @@ ROM_START( lasso )
ROM_END
ROM_START( chameleo )
- ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 6502 Code (Main CPU) */
+ ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "chamel4.bin", 0x4000, 0x2000, CRC(97379c47) SHA1(b29fa2318d4260c29fc95d22a461173dc960ad1a) )
ROM_LOAD( "chamel5.bin", 0x6000, 0x2000, CRC(0a2cadfd) SHA1(1ccc43accd60ca15b8f03ed1c3fda76a840a2bb1) )
ROM_LOAD( "chamel6.bin", 0x8000, 0x2000, CRC(b023c354) SHA1(0424ecf81ac9f0e055f9ff01cf0bd6d5c9ff866c) )
ROM_LOAD( "chamel7.bin", 0xa000, 0x2000, CRC(a5a03375) SHA1(c1eac4596c2bda419f3c513ecd3df9fae49ae159) )
- ROM_RELOAD( 0xe000, 0x2000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 6502 Code (Sound CPU) */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "chamel3.bin", 0x1000, 0x1000, CRC(52eab9ec) SHA1(554c34134e3af970262da89fe82feeaf47fd30bc) )
ROM_LOAD( "chamel2.bin", 0x6000, 0x1000, CRC(81dcc49c) SHA1(7e1b4351775f9c140a43f531da8b055271b7b28c) )
ROM_LOAD( "chamel1.bin", 0x7000, 0x1000, CRC(96031d3b) SHA1(a143b54b98891423d355e0ba08c3b88d70fa0e23) )
- ROM_RELOAD( 0xf000, 0x1000 )
ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
- ROM_LOAD( "chamel8.bin", 0x0800, 0x0800, CRC(dc67916b) SHA1(8b3fad0d5d42925b44e51df7f88ea4b6a8dbb4f6) ) /* Tiles */
- ROM_CONTINUE( 0x1800, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x0000, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_LOAD( "chamel9.bin", 0x2800, 0x0800, CRC(6b559bf1) SHA1(b7b8b8bccbd88ea868e2d3ccb42513615120d8e6) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_CONTINUE( 0x2000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
-
- ROM_REGION( 0x40, REGION_PROMS, ROMREGION_DISPOSE ) /* Colors */
+ ROM_LOAD( "chamel8.bin", 0x0800, 0x0800, CRC(dc67916b) SHA1(8b3fad0d5d42925b44e51df7f88ea4b6a8dbb4f6) )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x0000, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_LOAD( "chamel9.bin", 0x2800, 0x0800, CRC(6b559bf1) SHA1(b7b8b8bccbd88ea868e2d3ccb42513615120d8e6) )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+
+ ROM_REGION( 0x40, REGION_PROMS, ROMREGION_DISPOSE )
ROM_LOAD( "chambprm.bin", 0x0000, 0x0020, CRC(e3ad76df) SHA1(cd115cece4931bfcfc0f60147b942998a5c21bf7) )
ROM_LOAD( "chamaprm.bin", 0x0020, 0x0020, CRC(c7063b54) SHA1(53baed3806848207ab3a8fafd182cabec3be4b04) )
ROM_END
ROM_START( wwjgtin )
- ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 6502 Code (Main CPU) */
+ ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "ic2.6", 0x4000, 0x4000, CRC(744ba45b) SHA1(cccf3e2dd3c27bf54d2abd366cd9a044311aa031) )
ROM_LOAD( "ic5.5", 0x8000, 0x4000, CRC(af751614) SHA1(fc0f0a3967524b1743a182c1da4f9b0c3097a157) )
- ROM_RELOAD( 0xc000, 0x4000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 6502 Code (Sound CPU) */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "ic59.9", 0x4000, 0x4000, CRC(2ecb4d98) SHA1(d5b0d447b24f64fca452dc13e6ff95b090fce2d7) )
- ROM_RELOAD( 0xc000, 0x4000 )
ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE )
- ROM_LOAD( "ic81.7", 0x0000, 0x0800, CRC(a27f1a63) SHA1(3c770424bd4996f648687afce4aecea252da83a7) ) /* Tiles */
- ROM_CONTINUE( 0x2000, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_LOAD( "ic82.8", 0x4000, 0x0800, CRC(ea2862b3) SHA1(f7604fd324560c54311c35f806a17e30e018032a) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x6000, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x4800, 0x0800 )
- ROM_CONTINUE( 0x6800, 0x0800 )
- ROM_CONTINUE( 0x5000, 0x0800 )
- ROM_CONTINUE( 0x7000, 0x0800 )
- ROM_CONTINUE( 0x5800, 0x0800 )
- ROM_CONTINUE( 0x7800, 0x0800 )
+ ROM_LOAD( "ic81.7", 0x0000, 0x0800, CRC(a27f1a63) SHA1(3c770424bd4996f648687afce4aecea252da83a7) )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "ic82.8", 0x4000, 0x0800, CRC(ea2862b3) SHA1(f7604fd324560c54311c35f806a17e30e018032a) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+ ROM_CONTINUE( 0x5000, 0x0800 )
+ ROM_CONTINUE( 0x7000, 0x0800 )
+ ROM_CONTINUE( 0x5800, 0x0800 )
+ ROM_CONTINUE( 0x7800, 0x0800 )
ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE )
ROM_LOAD( "ic47.3", 0x0000, 0x2000, CRC(40594c59) SHA1(94533be8e267d9aa5bcdd52b45f6974436d3fed5) ) // 1xxxxxxxxxxxx = 0xFF
@@ -851,32 +779,30 @@ ROM_START( wwjgtin )
ROM_END
ROM_START( photof )
- ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* 6502 Code (Main CPU) */
+ ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "ic2.bin", 0x4000, 0x4000, CRC(4d960b54) SHA1(fe6c4943cbf9a9c79a2fd1dd86bb6e1f414b3c8d) )
ROM_LOAD( "ic6.bin", 0x8000, 0x4000, CRC(a4ad21dc) SHA1(55b3ecdf80b4a384a0d9932756330fb3021502f8) )
- ROM_RELOAD( 0xc000, 0x4000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 6502 Code (Sound CPU) */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "ic59.bin", 0x4000, 0x4000, CRC(2ecb4d98) SHA1(d5b0d447b24f64fca452dc13e6ff95b090fce2d7) )
- ROM_RELOAD( 0xc000, 0x4000 )
ROM_REGION( 0x8000, REGION_GFX1, ROMREGION_DISPOSE )
- ROM_LOAD( "ic81.bin", 0x0000, 0x0800, CRC(0f170253) SHA1(e8b09cf4e9bae6c762ff325a559fb860a80133aa) ) /* Tiles */
- ROM_CONTINUE( 0x2000, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_LOAD( "ic82.bin", 0x4000, 0x0800, CRC(c4cadee9) SHA1(46cc0ecc3642c432625c0d131aa31fec2e060d2f) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x6000, 0x0800 ) /* Sprites */
- ROM_CONTINUE( 0x4800, 0x0800 )
- ROM_CONTINUE( 0x6800, 0x0800 )
- ROM_CONTINUE( 0x5000, 0x0800 )
- ROM_CONTINUE( 0x7000, 0x0800 )
- ROM_CONTINUE( 0x5800, 0x0800 )
- ROM_CONTINUE( 0x7800, 0x0800 )
+ ROM_LOAD( "ic81.bin", 0x0000, 0x0800, CRC(0f170253) SHA1(e8b09cf4e9bae6c762ff325a559fb860a80133aa) )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "ic82.bin", 0x4000, 0x0800, CRC(c4cadee9) SHA1(46cc0ecc3642c432625c0d131aa31fec2e060d2f) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+ ROM_CONTINUE( 0x5000, 0x0800 )
+ ROM_CONTINUE( 0x7000, 0x0800 )
+ ROM_CONTINUE( 0x5800, 0x0800 )
+ ROM_CONTINUE( 0x7800, 0x0800 )
ROM_REGION( 0x4000, REGION_GFX2, ROMREGION_DISPOSE )
ROM_LOAD( "3-ic47.bin", 0x0000, 0x2000, CRC(40594c59) SHA1(94533be8e267d9aa5bcdd52b45f6974436d3fed5) ) // 1xxxxxxxxxxxx = 0xFF
@@ -897,38 +823,37 @@ ROM_START( pinbo )
ROM_LOAD( "rom3.e7", 0x6000, 0x2000, CRC(1cd1b3bd) SHA1(388ea72568f5bfd39856d872415327a2afaf7fad) )
ROM_LOAD( "rom4.h7", 0x8000, 0x2000, CRC(ba043fa7) SHA1(ef3d67b6dab5c82035c58290879a3ca969a0256d) )
ROM_LOAD( "rom5.j7", 0xa000, 0x2000, CRC(e71046c4) SHA1(f49133544c98df5f3e1a1d2ae92e17261b1504fc) )
- ROM_RELOAD( 0xe000, 0x2000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "rom1.s8", 0x0000, 0x2000, CRC(ca45a1be) SHA1(d0b2d8f1e6d01b60cba83d2bd458a57548549b4b) )
ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */
- ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x6000, 0x0800 )
- ROM_CONTINUE( 0x4800, 0x0800 )
- ROM_CONTINUE( 0x6800, 0x0800 )
- ROM_CONTINUE( 0x5000, 0x0800 )
- ROM_CONTINUE( 0x7000, 0x0800 )
- ROM_CONTINUE( 0x5800, 0x0800 )
- ROM_CONTINUE( 0x7800, 0x0800 )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+ ROM_CONTINUE( 0x5000, 0x0800 )
+ ROM_CONTINUE( 0x7000, 0x0800 )
+ ROM_CONTINUE( 0x5800, 0x0800 )
+ ROM_CONTINUE( 0x7800, 0x0800 )
ROM_LOAD( "rom7.d1", 0x8000, 0x0800, CRC(327a3c21) SHA1(e938915d28ac4ec033b20d33728788493e3f30f6) ) /* 3rd bitplane */
- ROM_CONTINUE( 0xa000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0xa800, 0x0800 )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0xb000, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_CONTINUE( 0xb800, 0x0800 )
-
- ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */
+ ROM_CONTINUE( 0xa000, 0x0800 )
+ ROM_CONTINUE( 0x8800, 0x0800 )
+ ROM_CONTINUE( 0xa800, 0x0800 )
+ ROM_CONTINUE( 0x9000, 0x0800 )
+ ROM_CONTINUE( 0xb000, 0x0800 )
+ ROM_CONTINUE( 0x9800, 0x0800 )
+ ROM_CONTINUE( 0xb800, 0x0800 )
+
+ ROM_REGION( 0x00300, REGION_PROMS, 0 )
ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) )
ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) )
ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) )
@@ -940,38 +865,37 @@ ROM_START( pinboa )
ROM_LOAD( "6.bin", 0x6000, 0x2000, CRC(f80b204c) SHA1(ee9b4ae1d8ea2fc062022fcfae67df87ed7aff41) )
ROM_LOAD( "5.bin", 0x8000, 0x2000, CRC(c57fe503) SHA1(11b7371c07c9b2c73ab61420a2cc609653c48d37) )
ROM_LOAD( "4.bin", 0xa000, 0x2000, CRC(d632b598) SHA1(270a5a790a66eaf3d90bf8081ab144fd1af9db3d) )
- ROM_RELOAD( 0xe000, 0x2000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "8.bin", 0x0000, 0x2000, CRC(32d1df14) SHA1(c0d4181378bbd6f2c594e923e2f8b21647c7fb0e) )
ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */
- ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x6000, 0x0800 )
- ROM_CONTINUE( 0x4800, 0x0800 )
- ROM_CONTINUE( 0x6800, 0x0800 )
- ROM_CONTINUE( 0x5000, 0x0800 )
- ROM_CONTINUE( 0x7000, 0x0800 )
- ROM_CONTINUE( 0x5800, 0x0800 )
- ROM_CONTINUE( 0x7800, 0x0800 )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+ ROM_CONTINUE( 0x5000, 0x0800 )
+ ROM_CONTINUE( 0x7000, 0x0800 )
+ ROM_CONTINUE( 0x5800, 0x0800 )
+ ROM_CONTINUE( 0x7800, 0x0800 )
ROM_LOAD( "2.bin", 0x8000, 0x0800, CRC(33cac92e) SHA1(55d4ff3ae9c9519a59bd6021a53584c873b4d327) ) /* 3rd bitplane */
- ROM_CONTINUE( 0xa000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0xa800, 0x0800 )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0xb000, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_CONTINUE( 0xb800, 0x0800 )
-
- ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */
+ ROM_CONTINUE( 0xa000, 0x0800 )
+ ROM_CONTINUE( 0x8800, 0x0800 )
+ ROM_CONTINUE( 0xa800, 0x0800 )
+ ROM_CONTINUE( 0x9000, 0x0800 )
+ ROM_CONTINUE( 0xb000, 0x0800 )
+ ROM_CONTINUE( 0x9800, 0x0800 )
+ ROM_CONTINUE( 0xb800, 0x0800 )
+
+ ROM_REGION( 0x00300, REGION_PROMS, 0 )
ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) )
ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) )
ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) )
@@ -983,38 +907,37 @@ ROM_START( pinbos )
ROM_LOAD( "b5.bin", 0x6000, 0x2000, CRC(f80b204c) SHA1(ee9b4ae1d8ea2fc062022fcfae67df87ed7aff41) )
ROM_LOAD( "b6.bin", 0x8000, 0x2000, CRC(ae967d83) SHA1(e79db85917a31821d10f919c4c429da33e97894d) )
ROM_LOAD( "b7.bin", 0xa000, 0x2000, CRC(7a584b4e) SHA1(2eb55b706815228b3b12ee5c0f6c415cd1d612e6) )
- ROM_RELOAD( 0xe000, 0x2000 )
- ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64K for sound */
+ ROM_REGION( 0x10000, REGION_CPU2, 0 )
ROM_LOAD( "b8.bin", 0x0000, 0x2000, CRC(32d1df14) SHA1(c0d4181378bbd6f2c594e923e2f8b21647c7fb0e) )
ROM_REGION( 0xc000, REGION_GFX1, ROMREGION_DISPOSE )
ROM_LOAD( "rom6.a1", 0x0000, 0x0800, CRC(74fe8e98) SHA1(3c9ac38d7054b2831a515786b6f204b1804aaea3) ) /* tiles */
- ROM_CONTINUE( 0x2000, 0x0800 ) /* sprites */
- ROM_CONTINUE( 0x0800, 0x0800 )
- ROM_CONTINUE( 0x2800, 0x0800 )
- ROM_CONTINUE( 0x1000, 0x0800 )
- ROM_CONTINUE( 0x3000, 0x0800 )
- ROM_CONTINUE( 0x1800, 0x0800 )
- ROM_CONTINUE( 0x3800, 0x0800 )
- ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) ) /* 2nd bitplane */
- ROM_CONTINUE( 0x6000, 0x0800 )
- ROM_CONTINUE( 0x4800, 0x0800 )
- ROM_CONTINUE( 0x6800, 0x0800 )
- ROM_CONTINUE( 0x5000, 0x0800 )
- ROM_CONTINUE( 0x7000, 0x0800 )
- ROM_CONTINUE( 0x5800, 0x0800 )
- ROM_CONTINUE( 0x7800, 0x0800 )
+ ROM_CONTINUE( 0x2000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x2800, 0x0800 )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x3000, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_CONTINUE( 0x3800, 0x0800 )
+ ROM_LOAD( "rom8.c1", 0x4000, 0x0800, CRC(5a800fe7) SHA1(375269ec73fab7f0cf017a79e002e31b006f5ad7) )
+ ROM_CONTINUE( 0x6000, 0x0800 )
+ ROM_CONTINUE( 0x4800, 0x0800 )
+ ROM_CONTINUE( 0x6800, 0x0800 )
+ ROM_CONTINUE( 0x5000, 0x0800 )
+ ROM_CONTINUE( 0x7000, 0x0800 )
+ ROM_CONTINUE( 0x5800, 0x0800 )
+ ROM_CONTINUE( 0x7800, 0x0800 )
ROM_LOAD( "rom7.d1", 0x8000, 0x0800, CRC(327a3c21) SHA1(e938915d28ac4ec033b20d33728788493e3f30f6) ) /* 3rd bitplane */
- ROM_CONTINUE( 0xa000, 0x0800 )
- ROM_CONTINUE( 0x8800, 0x0800 )
- ROM_CONTINUE( 0xa800, 0x0800 )
- ROM_CONTINUE( 0x9000, 0x0800 )
- ROM_CONTINUE( 0xb000, 0x0800 )
- ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_CONTINUE( 0xb800, 0x0800 )
-
- ROM_REGION( 0x00300, REGION_PROMS, 0 ) /* Color PROMs */
+ ROM_CONTINUE( 0xa000, 0x0800 )
+ ROM_CONTINUE( 0x8800, 0x0800 )
+ ROM_CONTINUE( 0xa800, 0x0800 )
+ ROM_CONTINUE( 0x9000, 0x0800 )
+ ROM_CONTINUE( 0xb000, 0x0800 )
+ ROM_CONTINUE( 0x9800, 0x0800 )
+ ROM_CONTINUE( 0xb800, 0x0800 )
+
+ ROM_REGION( 0x00300, REGION_PROMS, 0 )
ROM_LOAD( "red.l10", 0x0000, 0x0100, CRC(e6c9ba52) SHA1(6ea96f9bd71de6181d675b0f2d59a8c5e1be5aa3) )
ROM_LOAD( "green.k10", 0x0100, 0x0100, CRC(1bf2d335) SHA1(dcb074d3de939dfc652743e25bc66bd6fbdc3289) )
ROM_LOAD( "blue.n10", 0x0200, 0x0100, CRC(e41250ad) SHA1(2e9a2babbacb1753057d46cf1dd6dc183611747e) )
@@ -1028,10 +951,10 @@ ROM_END
***************************************************************************/
-GAME( 1982, lasso, 0, lasso, lasso, 0, ROT90, "SNK", "Lasso", GAME_SUPPORTS_SAVE )
-GAME( 1983, chameleo, 0, chameleo, chameleo, 0, ROT0, "Jaleco", "Chameleon", GAME_SUPPORTS_SAVE )
-GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", GAME_SUPPORTS_SAVE )
-GAME( 1991, photof, wwjgtin,wwjgtin, wwjgtin, 0, ROT0, "bootleg?", "Photo Finish", GAME_SUPPORTS_SAVE )
-GAME( 1984, pinbo, 0, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, pinboa, pinbo, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pinbos, pinbo, pinbo, pinbo, 0, ROT90, "bootleg?", "Pinbo (Strike)", GAME_SUPPORTS_SAVE )
+GAME( 1982, lasso, 0, lasso, lasso, 0, ROT90, "SNK", "Lasso", GAME_SUPPORTS_SAVE )
+GAME( 1983, chameleo, 0, chameleo, chameleo, 0, ROT0, "Jaleco", "Chameleon", GAME_SUPPORTS_SAVE )
+GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", GAME_SUPPORTS_SAVE )
+GAME( 1991, photof, wwjgtin, wwjgtin, wwjgtin, 0, ROT0, "bootleg?", "Photo Finish", GAME_SUPPORTS_SAVE )
+GAME( 1984, pinbo, 0, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1984, pinboa, pinbo, pinbo, pinbo, 0, ROT90, "Jaleco", "Pinbo (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1985, pinbos, pinbo, pinbo, pinbo, 0, ROT90, "bootleg?", "Pinbo (Strike)", GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h
index 40290f267a9..ac0f5b95924 100644
--- a/src/mame/includes/lasso.h
+++ b/src/mame/includes/lasso.h
@@ -12,14 +12,14 @@ extern UINT8 *lasso_spriteram;
extern size_t lasso_spriteram_size;
extern UINT8 *lasso_bitmap_ram;
extern UINT8 *wwjgtin_track_scroll;
+extern UINT8 *lasso_back_color;
+extern UINT8 *wwjgtin_last_colors;
WRITE8_HANDLER( lasso_videoram_w );
WRITE8_HANDLER( lasso_colorram_w );
-WRITE8_HANDLER( lasso_backcolor_w );
WRITE8_HANDLER( lasso_video_control_w );
WRITE8_HANDLER( wwjgtin_video_control_w );
WRITE8_HANDLER( pinbo_video_control_w );
-WRITE8_HANDLER( wwjgtin_lastcolor_w );
PALETTE_INIT( lasso );
PALETTE_INIT( wwjgtin );
@@ -31,3 +31,4 @@ VIDEO_START( pinbo );
VIDEO_UPDATE( lasso );
VIDEO_UPDATE( chameleo );
VIDEO_UPDATE( wwjgtin );
+VIDEO_UPDATE( pinbo );
diff --git a/src/mame/video/lasso.c b/src/mame/video/lasso.c
index 4c12ef9a236..6522cc59e12 100644
--- a/src/mame/video/lasso.c
+++ b/src/mame/video/lasso.c
@@ -37,8 +37,9 @@ UINT8 *lasso_spriteram;
size_t lasso_spriteram_size;
UINT8 *lasso_bitmap_ram; /* 0x2000 bytes for a 256 x 256 x 1 bitmap */
UINT8 *wwjgtin_track_scroll;
+UINT8 *lasso_back_color;
+UINT8 *wwjgtin_last_colors;
-/* variables only used here: */
static tilemap *bg_tilemap, *track_tilemap;
static UINT8 gfxbank; /* used by lasso, chameleo, wwjgtin and pinbo */
static UINT8 wwjgtin_track_enable; /* used by wwjgtin */
@@ -52,7 +53,7 @@ static UINT8 wwjgtin_track_enable; /* used by wwjgtin */
***************************************************************************/
-static void lasso_set_color(int i, int data)
+static void lasso_set_color(running_machine *machine, int i, int data)
{
int bit0,bit1,bit2,r,g,b;
@@ -61,30 +62,34 @@ static void lasso_set_color(int i, int data)
bit1 = (data >> 1) & 0x01;
bit2 = (data >> 2) & 0x01;
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
+
/* green component */
bit0 = (data >> 3) & 0x01;
bit1 = (data >> 4) & 0x01;
bit2 = (data >> 5) & 0x01;
g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
+
/* blue component */
bit0 = (data >> 6) & 0x01;
bit1 = (data >> 7) & 0x01;
b = 0x4f * bit0 + 0xa8 * bit1;
- palette_set_color( Machine,i,MAKE_RGB(r,g,b) );
+ palette_set_color(machine, i, MAKE_RGB(r, g, b));
}
+
PALETTE_INIT( lasso )
{
int i;
- for (i = 0;i < 0x40;i++)
+ for (i = 0; i < 0x40; i++)
{
- lasso_set_color(i,*color_prom);
+ lasso_set_color(machine, i, *color_prom);
color_prom++;
}
}
+
/* 16 color tiles with a 4 color step for the palettes */
PALETTE_INIT( wwjgtin )
{
@@ -93,11 +98,32 @@ PALETTE_INIT( wwjgtin )
palette_init_lasso(machine,colortable,color_prom);
for( color = 0; color < 0x10; color++ )
- for( pen = 0; pen < 16; pen++ )
- colortable[color * 16 + pen + 4*16] = (color * 4 + pen) % 0x40;
+ for( pen = 0; pen < 0x10; pen++ )
+ colortable[color * 0x10 + pen + 0x40] = (color * 4 + pen) & 0x3f;
+}
+
+
+static void set_back_color(running_machine *machine)
+{
+ int i;
+
+ /* stuff into color#0 of each palette */
+ for (i = 0; i < 0x40; i += 4)
+ lasso_set_color(machine, i, *lasso_back_color);
}
+static void set_wwjgtin_last_colors(running_machine *machine)
+{
+ int i;
+
+ /* the last palette entries can be changed */
+ for (i = 0; i < 4; i++)
+ lasso_set_color(machine, 0x3f - i, wwjgtin_last_colors[i]);
+}
+
+
+
/***************************************************************************
Callbacks for the TileMap code
@@ -108,6 +134,7 @@ static TILE_GET_INFO( lasso_get_bg_tile_info )
{
int code = lasso_videoram[tile_index];
int color = lasso_colorram[tile_index];
+
SET_TILE_INFO(0,
code + ((UINT16)gfxbank << 8),
color & 0x0f,
@@ -119,6 +146,7 @@ static TILE_GET_INFO( wwjgtin_get_track_tile_info )
UINT8 *ROM = memory_region(REGION_USER1);
int code = ROM[tile_index];
int color = ROM[tile_index + 0x2000];
+
SET_TILE_INFO(2,
code,
color & 0x0f,
@@ -129,6 +157,7 @@ static TILE_GET_INFO( pinbo_get_bg_tile_info )
{
int code = lasso_videoram[tile_index];
int color = lasso_colorram[tile_index];
+
SET_TILE_INFO(0,
code + ((color & 0x30) << 4),
color & 0x0f,
@@ -240,22 +269,6 @@ WRITE8_HANDLER( pinbo_video_control_w )
}
-/* The bg_tilemap color can be changed */
-WRITE8_HANDLER( lasso_backcolor_w )
-{
- int i;
- for( i=0; i<0x40; i+=4 ) /* stuff into color#0 of each palette */
- lasso_set_color(i,data);
-}
-
-
-/* The last 4 color (= last palette) entries can be changed */
-WRITE8_HANDLER( wwjgtin_lastcolor_w )
-{
- lasso_set_color(0x3f - offset,data);
-}
-
-
/*************************************
*
* Video update
@@ -332,39 +345,32 @@ static void draw_lasso(running_machine *machine, mame_bitmap *bitmap)
{
for (x = 0; x < 256; )
{
+ int bit;
+
UINT8 data = *source++;
- if (data)
+ for (bit = 0; bit < 8; bit++)
{
- int bit;
-
- for (bit = 0; bit < 8; bit++)
+ if (data & 0x80)
{
- if (data & 0x80)
+ if (flip_screen_x)
{
- if (flip_screen_x)
- {
- if (flip_screen_y)
- *BITMAP_ADDR16(bitmap, 255-y, 255-x) = pen;
- else
- *BITMAP_ADDR16(bitmap, y, 255-x) = pen;
- }
+ if (flip_screen_y)
+ *BITMAP_ADDR16(bitmap, 255-y, 255-x) = pen;
else
- {
- if (flip_screen_y)
- *BITMAP_ADDR16(bitmap, 255-y, x) = pen;
- else
- *BITMAP_ADDR16(bitmap, y, x) = pen;
- }
+ *BITMAP_ADDR16(bitmap, y, 255-x) = pen;
+ }
+ else
+ {
+ if (flip_screen_y)
+ *BITMAP_ADDR16(bitmap, 255-y, x) = pen;
+ else
+ *BITMAP_ADDR16(bitmap, y, x) = pen;
}
-
- x++;
- data <<= 1;
}
- }
- else
- {
- x += 8;
+
+ x++;
+ data <<= 1;
}
}
}
@@ -373,22 +379,31 @@ static void draw_lasso(running_machine *machine, mame_bitmap *bitmap)
VIDEO_UPDATE( lasso )
{
+ set_back_color(machine);
+
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
draw_lasso(machine, bitmap);
draw_sprites(machine, bitmap, cliprect, 0);
+
return 0;
}
VIDEO_UPDATE( chameleo )
{
+ set_back_color(machine);
+
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
draw_sprites(machine, bitmap, cliprect, 0);
+
return 0;
}
VIDEO_UPDATE( wwjgtin )
{
+ set_back_color(machine);
+ set_wwjgtin_last_colors(machine);
+
tilemap_set_scrollx(track_tilemap,0,wwjgtin_track_scroll[0] + wwjgtin_track_scroll[1]*256);
tilemap_set_scrolly(track_tilemap,0,wwjgtin_track_scroll[2] + wwjgtin_track_scroll[3]*256);
@@ -399,5 +414,17 @@ VIDEO_UPDATE( wwjgtin )
draw_sprites(machine, bitmap, cliprect, 1); // reverse order
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
+
return 0;
}
+
+
+VIDEO_UPDATE( pinbo )
+{
+ tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
+ draw_sprites(machine, bitmap, cliprect, 0);
+
+ return 0;
+}
+
+