diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c index 1deaeb3354e..a427822983f 100644 --- a/src/mame/drivers/astrocorp.c +++ b/src/mame/drivers/astrocorp.c @@ -5,7 +5,7 @@ driver by Luca Elia (l.elia@tin.it) CPU: 68000 -GFX: ASTRO V01 or V02 or V06 +GFX: ASTRO V0x (x = 1,2,5 or 6) SOUND: OKI M6295 (AD-65) OTHER: EEPROM, Battery @@ -17,6 +17,7 @@ Year + Game PCB ID CPU Video Chips 00 Show Hand CHE-B50-4002A 68000 ASTRO V01 ASTRO 0001B (28 pins), pLSI1016-60LJ 00 Wang Pai Dui J. CHE-B50-4002A 68000 ASTRO V01 MDT2020AP MCU (28 pins), pLSI1016 02 Skill Drop GA None JX-1689F1028N ASTRO V02 pLSI1016-60LJ +03 Speed Drop None JX-1689HP ASTRO V05 pLSI1016-60LJ 05? Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted 05? Win Win Bingo M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-09-17 Encrypted ------------------------------------------------------------------------------------------------------------------- @@ -73,12 +74,14 @@ static VIDEO_START( astrocorp ) Offset: Bits: Value: 0 f--- ---- ---- ---- Show This Sprite - -edc ba98 7654 3210 X + -e-- ---- ---- ---- ? set to 0 + --dc ba9- ---- ---- ignored? + ---- ---8 7654 3210 X 1 Code - 2 f--- ---- ---- ---- - - -edc ba98 7654 3210 Y + 2 fedc ba98 ---- ---- ignored? + ---- ---- 7654 3210 Y 3 fedc ba98 ---- ---- X Size ---- ---- 7654 3210 Y Size @@ -112,8 +115,8 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect if (!(sx & 0x8000)) continue; - sx = (sx & 0x1fff) - (sx & 0x2000); - sy = (sy & 0x1fff) - (sy & 0x2000); + sx &= 0x01ff; + sy &= 0x00ff; for (y = 0 ; y < dimy ; y++) { @@ -140,10 +143,7 @@ static VIDEO_UPDATE(astrocorp) astrocorp_state *state = (astrocorp_state *)screen->machine->driver_data; if (state->screen_enable & 1) - { - bitmap_fill(bitmap,cliprect,screen->machine->pens[0xff]); copybitmap(bitmap, state->bitmap, 0,0,0,0, cliprect); - } else bitmap_fill(bitmap, cliprect, get_black_pen(screen->machine)); @@ -256,7 +256,7 @@ static WRITE16_HANDLER( skilldrp_outputs_w ) // popmessage("%04X",data); } -static WRITE16_HANDLER( astrocorp_enable_w ) +static WRITE16_HANDLER( astrocorp_screen_enable_w ) { astrocorp_state *state = (astrocorp_state *)space->machine->driver_data; COMBINE_DATA(&state->screen_enable); @@ -293,7 +293,7 @@ static ADDRESS_MAP_START( showhand_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x060000, 0x0601ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, paletteram) AM_RANGE( 0x070000, 0x073fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery AM_RANGE( 0x080000, 0x080001 ) AM_DEVWRITE("oki", astrocorp_sound_bank_w) - AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_enable_w) + AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_screen_enable_w) AM_RANGE( 0x0d0000, 0x0d0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8("oki", okim6295_w, 0xff00) ADDRESS_MAP_END @@ -308,7 +308,7 @@ static ADDRESS_MAP_START( showhanc_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x08a000, 0x08a001 ) AM_WRITE(showhand_outputs_w) AM_RANGE( 0x08e000, 0x08e001 ) AM_READ_PORT("EEPROMIN") AM_RANGE( 0x090000, 0x093fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery - AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_enable_w) + AM_RANGE( 0x0a0000, 0x0a0001 ) AM_WRITE(astrocorp_screen_enable_w) AM_RANGE( 0x0e0000, 0x0e0001 ) AM_READ(astrocorp_unk_r) AM_DEVWRITE8("oki", okim6295_w, 0xff00) ADDRESS_MAP_END @@ -321,12 +321,27 @@ static ADDRESS_MAP_START( skilldrp_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x20a000, 0x20a001 ) AM_WRITE(skilldrp_outputs_w) AM_RANGE( 0x20e000, 0x20e001 ) AM_READ_PORT("EEPROMIN") AM_RANGE( 0x380000, 0x3801ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, paletteram) - AM_RANGE( 0x400000, 0x400001 ) AM_WRITE(astrocorp_enable_w) + AM_RANGE( 0x400000, 0x400001 ) AM_WRITE(astrocorp_screen_enable_w) AM_RANGE( 0x500000, 0x507fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery AM_RANGE( 0x580000, 0x580001 ) AM_DEVWRITE("oki", skilldrp_sound_bank_w) AM_RANGE( 0x600000, 0x600001 ) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) ADDRESS_MAP_END +static ADDRESS_MAP_START( speeddrp_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE( 0x000000, 0x01ffff ) AM_ROM + AM_RANGE( 0x280000, 0x283fff ) AM_RAM AM_BASE_SIZE_GENERIC(nvram) // battery + AM_RANGE( 0x380000, 0x380fff ) AM_RAM AM_BASE_SIZE_MEMBER(astrocorp_state, spriteram, spriteram_size) + AM_RANGE( 0x382000, 0x382001 ) AM_WRITE(astrocorp_draw_sprites_w) + AM_RANGE( 0x384000, 0x384001 ) AM_READ_PORT("INPUTS") + AM_RANGE( 0x388000, 0x388001 ) AM_WRITE(astrocorp_eeprom_w) + AM_RANGE( 0x38a000, 0x38a001 ) AM_WRITE(skilldrp_outputs_w) + AM_RANGE( 0x38e000, 0x38e001 ) AM_READ_PORT("EEPROMIN") + AM_RANGE( 0x480000, 0x4801ff ) AM_RAM_WRITE(astrocorp_palette_w) AM_BASE_MEMBER(astrocorp_state, paletteram) + AM_RANGE( 0x500000, 0x500001 ) AM_WRITE(astrocorp_screen_enable_w) + AM_RANGE( 0x580000, 0x580001 ) AM_DEVWRITE("oki", skilldrp_sound_bank_w) + AM_RANGE( 0x600000, 0x600001 ) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff) +ADDRESS_MAP_END + /*************************************************************************** Input Ports ***************************************************************************/ @@ -390,7 +405,7 @@ static INPUT_PORTS_START( showhanc ) INPUT_PORTS_END static INPUT_PORTS_START( skilldrp ) - PORT_START("INPUTS") // 204000 + PORT_START("INPUTS") PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(5) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) @@ -534,6 +549,13 @@ static MACHINE_DRIVER_START( skilldrp ) MACHINE_DRIVER_END +static MACHINE_DRIVER_START( speeddrp ) + MDRV_IMPORT_FROM( skilldrp ) + MDRV_CPU_MODIFY("maincpu") + MDRV_CPU_PROGRAM_MAP(speeddrp_map) +MACHINE_DRIVER_END + + /*************************************************************************** ROMs Loading ***************************************************************************/ @@ -693,7 +715,7 @@ ROM_START( skilldrp ) ROM_LOAD( "mx29f1610amc.u26", 0x000000, 0x200000, CRC(4fdac800) SHA1(bcafceb6c34866c474714347e23f9e819b5fcfa6) ) ROM_REGION( 0x80000, "oki", 0 ) - ROM_LOAD( "5-skill_drop", 0x00000, 0x80000, CRC(a479e06d) SHA1(ee690d39188b8a43652c4aa5bf8267c1f6632d2f) ) /* No chip location just "ROM#5" silkscreened under socket */ + ROM_LOAD( "5-skill_drop", 0x00000, 0x80000, CRC(a479e06d) SHA1(ee690d39188b8a43652c4aa5bf8267c1f6632d2f) ) // No chip location just "ROM#5" silkscreened under socket ROM_REGION16_BE( 0x80, "eeprom", 0 ) ROM_LOAD( "skilldrp.u6", 0x00, 0x80, CRC(57886a3d) SHA1(bad8fa2ec2262ccb5ef8ec50959aec3f3bf8b90b) ) @@ -701,6 +723,82 @@ ROM_END /*************************************************************************** +Speed Drop + +"16:01:26 Sep 3 2003" in code + +No specific PCB model or numer, same as used for Skill Drop but with newer video chip + + Astro V05 0206 160pin PQFP ("ASTRO02" silkscreened under chip) + JX-1689HP TA5265188 (68K core, has direct connection to program roms) + Lattice IspLSI 1016 60LJ socketted FPGA + OKI 6295 clone chip (AD-65 or U6295) + +EEPROM Atmel 93C46 +Battery 3.6V +OSC 24.000MHz + +PC1 is a push button for test mode +VR1 is for sound volume + + +---------+ +----------------------------+ +----+ + +---+Connector+---+ 28 Pin Edge Connector +-+ | + | VR1| + | | ++-+ +------+ | +| ULN2003A |IspLSI| UT6264CPC ROM#4* | +| ULN2003A | 1016 | +---------+ | +|8 +------++----------+ |ROM#6 U26| | +| |ROM#2 U20| +---------+ +----+| +|L +-------+ +----------+ ROM#3* |6295|| +|i | JX- | +----+| +|n | 1689HP| +--------------+ | +|e | | | ROM#7 U100 | | +|r +-------+ +--------------+ | +| +----------+ +---+ +|C +----------+ | | | | +|o |ROM#1 U21| | Astro | | R | +|n +----------+ | V05 | | O | +|n | 0206 | | M | +|e +----------+ | # | +|c UT6264CPC | 5 | +|t | | +|o +---+ +|r 93C46 6116 6116 RAM1 | +| 24MHz| ++-+ BAT1 PC1 6116 6116 RAM1 | + +-----------------------------------------------------+ + +ROM#1 & ROM#2 are 32pin sockets +ROM#7 is a 40pin socket +ROM#3 & ROM#4 at U27 & U25 are optional unpopulated 32pin sockets and overlap with ROM#6 +ROM#6 is 29F1610MC flash rom + +RAM1 are SEC KM681000BLG-7L RAM chips + +1 SPEED DROP 1.06 is a WinBond W27C512 +2 SPEED DROP 1.06 is a WinBond W27C512 +5 SPEED DROP is ST 27C4001 + +***************************************************************************/ + +ROM_START( speeddrp ) + ROM_REGION( 0x20000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "1_speed_drop_1.06.u21", 0x00000, 0x10000, CRC(ff4d0859) SHA1(abdb90d3498f64a9ac779f5fd66d313c1df3425b) ) + ROM_LOAD16_BYTE( "2_speed_drop_1.06.u20", 0x00001, 0x10000, CRC(a00cc120) SHA1(eb1e9a084aca18e71901ed599f4621c301bab43e) ) + + ROM_REGION( 0x200000, "sprites", 0 ) + ROM_LOAD( "mx29f1610amc.u26", 0x000000, 0x200000, CRC(baa0f728) SHA1(12f0e7689eb6555f86ac9a7272e8e119faa968e0) ) + + ROM_REGION( 0x80000, "oki", 0 ) + ROM_LOAD( "5_speed_drop", 0x00000, 0x80000, CRC(684bb8b5) SHA1(65276ce03da7be7275646f5a0d9d163eecb78190) ) // No chip location just "ROM#5" silkscreened under socket + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD16_WORD_SWAP( "93c46.u6", 0x00, 0x80, CRC(6890534e) SHA1(a62893015e53c02551d57d0e1cce436b6df8d289) ) +ROM_END + +/*************************************************************************** + Win Win Bingo ASTRO M1.2 PCB: @@ -902,6 +1000,7 @@ static DRIVER_INIT( showhanc ) GAME( 2000, showhand, 0, showhand, showhand, showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", GAME_SUPPORTS_SAVE ) GAME( 2000, showhanc, showhand, showhanc, showhanc, showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue", GAME_SUPPORTS_SAVE ) GAME( 2002, skilldrp, 0, skilldrp, skilldrp, 0, ROT0, "Astro Corp.", "Skill Drop Georgia", GAME_SUPPORTS_SAVE ) +GAME( 2003, speeddrp, 0, speeddrp, skilldrp, 0, ROT0, "Astro Corp.", "Speed Drop", GAME_SUPPORTS_SAVE ) GAME( 2005?, winbingo, 0, showhand, showhand, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", GAME_NOT_WORKING ) GAME( 2005?, winbingoa, winbingo, showhand, showhand, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 2)", GAME_NOT_WORKING ) GAME( 2005?, zoo, 0, showhand, showhand, 0, ROT0, "Astro Corp.", "Zoo", GAME_NOT_WORKING ) diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c index 694164357b1..6ede6404385 100644 --- a/src/mame/mamedriv.c +++ b/src/mame/mamedriv.c @@ -9654,6 +9654,7 @@ Other Sun games DRIVER( showhand ) /* (c) 2000 Astro Corp. */ DRIVER( showhanc ) /* (c) 2000 Astro Corp. */ DRIVER( skilldrp ) /* (c) 2002 Astro Corp. */ + DRIVER( speeddrp ) /* (c) 2003 Astro Corp. */ DRIVER( winbingo ) /* (c) 2005? Astro Corp. */ DRIVER( winbingoa ) /* (c) 2005? Astro Corp. */ DRIVER( zoo ) /* (c) 2005? Astro Corp. */