Fixed sprite coordinates in astrocorp.c [Luca Elia]

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Speed Drop [Brian Troha, Luca Elia, The Dumping Union]
This commit is contained in:
Luca Elia 2010-07-26 22:19:03 +00:00
parent dec4f225b6
commit 3877dac9aa
2 changed files with 115 additions and 15 deletions

View File

@ -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 )

View File

@ -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. */