mirror of
https://github.com/holub/mame
synced 2025-05-23 06:08:48 +03:00
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:
parent
dec4f225b6
commit
3877dac9aa
@ -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 )
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user