mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Space Win changes:
- Some corrections to the memory map. - Added proper working RAM. - Added Dallas DS1220Y NVRAM. - Added output port. - Added lamps layout. - Added complete inputs. - Changed description to "Scacco Matto / Space Win" since the default game is Scacco Matto. You must enter the service mode and change graphics in order to switch the game. New games added or promoted from NOT_WORKING status --------------------------------------------------- Scacco Matto / Space Win [David Haywood, Roberto Fresca]
This commit is contained in:
parent
95762c625f
commit
0ad067f14d
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2494,6 +2494,7 @@ src/mame/layout/sltblgtk.lay svneol=native#text/plain
|
||||
src/mame/layout/snookr10.lay svneol=native#text/plain
|
||||
src/mame/layout/solarq.lay svneol=native#text/plain
|
||||
src/mame/layout/sos.lay svneol=native#text/plain
|
||||
src/mame/layout/spacewin.lay -text svneol=native#plain/text
|
||||
src/mame/layout/sspeedr.lay svneol=native#text/plain
|
||||
src/mame/layout/stactics.lay svneol=native#text/plain
|
||||
src/mame/layout/starcas.lay svneol=native#text/plain
|
||||
|
@ -74,6 +74,7 @@ TO DO :
|
||||
|
||||
#include "driver.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "spacewin.lh"
|
||||
|
||||
UINT16 *sderby_fg_videoram;
|
||||
UINT16 *sderby_md_videoram;
|
||||
@ -118,6 +119,52 @@ static READ16_HANDLER( roulette_input_r )
|
||||
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( scmatto_out_w )
|
||||
{
|
||||
/*
|
||||
----------------------------------------
|
||||
--- Scacco Matto / Space Win Outputs ---
|
||||
----------------------------------------
|
||||
|
||||
0x0000 - Normal State (lamps off).
|
||||
0x0001 - Hold 1 lamp.
|
||||
0x0002 - Hold 2 lamp.
|
||||
0x0004 - Hold 3 lamp.
|
||||
0x0008 - Hold 4 lamp.
|
||||
0x0010 - Hold 5 lamp.
|
||||
0x0020 - Start lamp.
|
||||
0x0040 - Bet lamp.
|
||||
0x2000 - Coin counter.
|
||||
|
||||
|
||||
- Lbits -
|
||||
7654 3210
|
||||
=========
|
||||
---- ---x Hold1 lamp.
|
||||
---- --x- Hold2 lamp.
|
||||
---- -x-- Hold3 lamp.
|
||||
---- x--- Hold4 lamp.
|
||||
---x ---- Hold5 lamp.
|
||||
--x- ---- Start lamp.
|
||||
-x-- ---- Bet lamp.
|
||||
|
||||
- Hbits -
|
||||
7654 3210
|
||||
=========
|
||||
--x- ---- Coin counter.
|
||||
|
||||
*/
|
||||
output_set_lamp_value(1, (data & 1)); /* Lamp 1 - HOLD 1 */
|
||||
output_set_lamp_value(2, (data >> 1) & 1); /* Lamp 2 - HOLD 2 */
|
||||
output_set_lamp_value(3, (data >> 2) & 1); /* Lamp 3 - HOLD 3 */
|
||||
output_set_lamp_value(4, (data >> 3) & 1); /* Lamp 4 - HOLD 4 */
|
||||
output_set_lamp_value(5, (data >> 4) & 1); /* Lamp 5 - HOLD 5 */
|
||||
output_set_lamp_value(6, (data >> 5) & 1); /* Lamp 6 - START */
|
||||
output_set_lamp_value(7, (data >> 6) & 1); /* Lamp 7 - BET */
|
||||
|
||||
coin_counter_w(0, data & 0x2000);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( sderby_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) // bg
|
||||
@ -138,23 +185,25 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) // bg
|
||||
AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) // mid
|
||||
AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) // fg
|
||||
AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w)
|
||||
AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP)
|
||||
AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP)
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM AM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
|
||||
AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
|
||||
AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
|
||||
AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w) /* tilemaps offset control */
|
||||
AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP) /* seems another video register. constantly used */
|
||||
AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP) /* seems another video register. constantly used */
|
||||
AM_RANGE(0x104010, 0x105fff) AM_WRITE(SMH_NOP) /* unknown */
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP) /* unknown... write 0x01 in game, and 0x00 on reset */
|
||||
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
|
||||
AM_RANGE(0x308008, 0x308009) AM_WRITE(SMH_NOP) // ???
|
||||
AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w) /* output port */
|
||||
AM_RANGE(0x30800e, 0x30800f) AM_READWRITE(okim6295_status_0_lsb_r,okim6295_data_0_lsb_w)
|
||||
AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
|
||||
AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)
|
||||
AM_RANGE(0xd00000, 0xd001ff) AM_RAM
|
||||
AM_RANGE(0x800000, 0x800fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x801000, 0x8fffff) AM_RAM
|
||||
AM_RANGE(0x801000, 0x80100d) AM_WRITE(SMH_NOP) /* unknown */
|
||||
AM_RANGE(0x8f0000, 0x8f3fff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size) /* 16K Dallas DS1220Y-200 NVRAM */
|
||||
AM_RANGE(0x8fc000, 0x8fffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( roulette_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x440000, 0x440fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
@ -194,6 +243,26 @@ static INPUT_PORTS_START( sderby )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( spacewin )
|
||||
PORT_START("IN0") /* 0x308000.w */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Hold 1") PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Hold 2") PORT_CODE(KEYCODE_X)
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Hold 3") PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Hold 4") PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Hold 5") PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START ) PORT_NAME("Start")
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Bet") PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_SERVICE_NO_TOGGLE(0x1000, IP_ACTIVE_LOW)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( pmroulet )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
@ -228,7 +297,7 @@ static const gfx_layout tiles8x8_layout =
|
||||
8,8,
|
||||
RGN_FRAC(1,5),
|
||||
5,
|
||||
{ RGN_FRAC(4,5),RGN_FRAC(3,5),RGN_FRAC(2,5),RGN_FRAC(1,5),RGN_FRAC(0,5) },
|
||||
{ RGN_FRAC(4,5), RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
||||
8*8
|
||||
@ -240,26 +309,23 @@ static const gfx_layout tiles16x16_layout =
|
||||
16,16,
|
||||
RGN_FRAC(1,5),
|
||||
5,
|
||||
{ RGN_FRAC(4,5),RGN_FRAC(3,5),RGN_FRAC(2,5),RGN_FRAC(1,5),RGN_FRAC(0,5) },
|
||||
{ RGN_FRAC(4,5), RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) },
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7,
|
||||
128+0, 128+1,128+2,128+3,128+4,128+5,128+6,128+7
|
||||
128+0, 128+1, 128+2, 128+3, 128+4, 128+5, 128+6, 128+7
|
||||
},
|
||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
|
||||
64+0*8,64+1*8,64+2*8,64+3*8,64+4*8,64+5*8,64+6*8,64+7*8
|
||||
|
||||
},
|
||||
|
||||
64+0*8,64+1*8,64+2*8,64+3*8,64+4*8,64+5*8,64+6*8,64+7*8
|
||||
},
|
||||
256,
|
||||
};
|
||||
|
||||
|
||||
|
||||
static GFXDECODE_START( sderby )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x000, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles16x16_layout, 0x000, 256 ) /* sprites */
|
||||
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles16x16_layout, 0x000, 256 ) /* sprites */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( sderby )
|
||||
MDRV_CPU_ADD("main", M68000, 12000000)
|
||||
MDRV_CPU_PROGRAM_MAP(sderby_map,0)
|
||||
@ -292,6 +358,8 @@ static MACHINE_DRIVER_START( spacewin )
|
||||
MDRV_CPU_PROGRAM_MAP(spacewin_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", irq2_line_hold)
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
@ -321,7 +389,6 @@ static MACHINE_DRIVER_START( pmroulet )
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
@ -376,6 +443,43 @@ ROM_START( pmroulet )
|
||||
ROM_LOAD( "8.bin", 0x200000, 0x80000, CRC(d4c2b7da) SHA1(515be861443acc5b911241dbaafa42e02f79985a))
|
||||
ROM_END
|
||||
|
||||
/* Scacco Matto / Space Win
|
||||
Playmark, 1996.
|
||||
|
||||
CPU:
|
||||
1x MC68000P12 (main)(u24)
|
||||
|
||||
Sound:
|
||||
1x M6295 (sound)(u146)
|
||||
1x TDA2003 (sound)(td1)
|
||||
1x 358D (sound)(u155)
|
||||
|
||||
PLDs:
|
||||
2x A1020B-PL84C (u110,u137)(not dumped)
|
||||
|
||||
Xtals:
|
||||
1x oscillator 24.000000MHz (xl1)
|
||||
1x oscillator 28.000000MHz (xl2)
|
||||
1x blu resonator 1000J (sound)(y1)
|
||||
|
||||
ROMs:
|
||||
1x M27C2001 (1)
|
||||
7x M27C1001 (2,3,4,5,6,7,8)
|
||||
|
||||
4x PALCE22V10H (not dumped)
|
||||
1x PALCE16V8H (not dumped)
|
||||
1x DS1220Y-200 (non volatile ram)
|
||||
|
||||
Note:
|
||||
1x JAMMA edge connector
|
||||
1x 12 legs connector
|
||||
2x 6 legs connector
|
||||
1x pushbutton (cb1)
|
||||
1x trimmer (volume)
|
||||
|
||||
Title depends on graphics type in test mode.
|
||||
|
||||
*/
|
||||
ROM_START( spacewin )
|
||||
ROM_REGION( 0x40000, "main", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "2.u16", 0x00000, 0x20000, CRC(2d17c2ab) SHA1(833ab39081fbc3d114103055e3a3f2ea2a28f158) )
|
||||
@ -393,8 +497,12 @@ ROM_START( spacewin )
|
||||
ROM_END
|
||||
|
||||
|
||||
/******************************
|
||||
* Game Drivers *
|
||||
******************************/
|
||||
|
||||
GAME( 1996, sderby, 0, sderby, sderby, 0, ROT0, "Playmark", "Super Derby", 0 )
|
||||
GAME( 1997, pmroulet, 0, pmroulet, pmroulet, 0, ROT0, "Playmark", "Croupier (Playmark Roulette)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
|
||||
GAME( 199?, spacewin, 0, spacewin, sderby, 0, ROT0, "Playmark", "Space Win / Scacco Matto", GAME_NOT_WORKING ) // title depends on game type in test mode
|
||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
|
||||
GAME( 1996, sderby, 0, sderby, sderby, 0, ROT0, "Playmark", "Super Derby", 0 )
|
||||
GAMEL( 1996, spacewin, 0, spacewin, spacewin, 0, ROT0, "Playmark", "Scacco Matto / Space Win", 0, layout_spacewin )
|
||||
GAME( 1997, pmroulet, 0, pmroulet, pmroulet, 0, ROT0, "Playmark", "Croupier (Playmark Roulette)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
|
||||
|
||||
|
121
src/mame/layout/spacewin.lay
Normal file
121
src/mame/layout/spacewin.lay
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<element name="L1" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="HOLD1">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L2" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="HOLD2">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L3" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="HOLD3">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L4" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="HOLD4">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L5" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="HOLD5">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L6" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.3" blue="0.3" />
|
||||
</rect>
|
||||
<text string="START">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
<element name="L7" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.3" green="0.3" blue="0.3" />
|
||||
</rect>
|
||||
<text string="BET">
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
<bounds x="0" y="0.1" width="1" height="0.8" />
|
||||
</text>
|
||||
</element>
|
||||
|
||||
|
||||
<view name="Button Lamps">
|
||||
<screen index="0">
|
||||
<bounds left="0" top="0" right="4" bottom="3" />
|
||||
</screen>
|
||||
<bezel name="lamp1" element="L1">
|
||||
<bounds x="1.6" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp2" element="L2">
|
||||
<bounds x="2.1" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp3" element="L3">
|
||||
<bounds x="2.6" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp4" element="L4">
|
||||
<bounds x="3.1" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp5" element="L5">
|
||||
<bounds x="3.6" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp6" element="L6">
|
||||
<bounds x="0" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp7" element="L7">
|
||||
<bounds x="0.5" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
</view>
|
||||
</mamelayout>
|
@ -1755,6 +1755,8 @@ $(DRIVERS)/qix.o: $(LAYOUT)/elecyoyo.lh
|
||||
|
||||
$(DRIVERS)/sbrkout.o: $(LAYOUT)/sbrkout.lh
|
||||
|
||||
$(DRIVERS)/sderby.o: $(LAYOUT)/spacewin.lh
|
||||
|
||||
$(DRIVERS)/snookr10.o: $(LAYOUT)/snookr10.lh
|
||||
|
||||
$(DRIVERS)/sspeedr.o: $(LAYOUT)/sspeedr.lh
|
||||
|
Loading…
Reference in New Issue
Block a user