mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
More cleanups and improvements to Super Derby driver.
- Fixed memory maps. - Documented Super Derby outputs. - Added lamps support + layout to Super Derby. - Fixed the phisical RAM size to all games. - Fixed the wrong NVRAM size to spacewin (16Kb instead of 16KB). - Added proper NVRAM to sderby and pmroulet. - Added the missing 3rd input to pmroulet (needed for 3-button mode). - Cleaned up the driver.
This commit is contained in:
parent
ec2639d221
commit
f599e6d274
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2485,6 +2485,7 @@ src/mame/layout/pyramid.lay svneol=native#text/plain
|
||||
src/mame/layout/quintoon.lay svneol=native#text/plain
|
||||
src/mame/layout/rocknms.lay svneol=native#text/plain
|
||||
src/mame/layout/sbrkout.lay svneol=native#text/plain
|
||||
src/mame/layout/sderby.lay svneol=native#text/plain
|
||||
src/mame/layout/sgsafari.lay svneol=native#text/plain
|
||||
src/mame/layout/shuttlei.lay svneol=native#text/plain
|
||||
src/mame/layout/sidewndr.lay svneol=native#text/plain
|
||||
|
@ -1,50 +1,33 @@
|
||||
/*
|
||||
/*******************************************************************************************
|
||||
|
||||
Playmark 'Super Derby' Hardware
|
||||
-------------------------------
|
||||
|
||||
Driver by David Haywood.
|
||||
Additional work by Roberto Fresca.
|
||||
|
||||
|
||||
Super Derby - Playmark
|
||||
Roulette(?) - Playmark
|
||||
Supported games:
|
||||
|
||||
Payout / hopper controls not connected
|
||||
|
||||
Roulette appears to have some kind of MCU device
|
||||
between the processor and the hopper
|
||||
Super Derby, 1996, Playmark.
|
||||
Scacco Matto / Space Win, 1996, Playmark.
|
||||
Croupier (Playmark Roulette), 1997, Playmark.
|
||||
|
||||
|
||||
*/
|
||||
********************************************************************************************
|
||||
|
||||
NOTES:
|
||||
-----
|
||||
|
||||
Payout / hopper controls not connected
|
||||
|
||||
Roulette appears to have some kind of MCU device
|
||||
between the processor and the hopper
|
||||
|
||||
|
||||
/*
|
||||
Working notes: (Relating to SDERBY)
|
||||
|
||||
Super Derby
|
||||
Playmark '96
|
||||
|
||||
mc 68k 12mhz
|
||||
OKI m6295
|
||||
|
||||
2x GM 76c88al (8kx8 6264) near program ROMs
|
||||
2x 6264 near gfx ROMs
|
||||
16k nonvolatile SRAM (Dallas 1220Y)
|
||||
two FPGA chips - one labelled 'Playmark 010412'
|
||||
4x hm3-65728bk-5
|
||||
--
|
||||
21.bin 6F9F2F2B - near OKI (samples?)
|
||||
|
||||
22.bin A319F1E0 - program code
|
||||
23.bin 1D6E2321 /
|
||||
|
||||
24.bin 93C917DF - gfx
|
||||
25.bin 7BA485CD
|
||||
26.bin BEABE4F7
|
||||
27.bin 672CE5DF
|
||||
28.bin 39CA3B52
|
||||
--
|
||||
|
||||
*/
|
||||
|
||||
/* working notes: (Relating to SDERBY)
|
||||
|
||||
Stephh's notes :
|
||||
Stephh's notes :
|
||||
|
||||
- The game is playable, but :
|
||||
|
||||
@ -56,24 +39,28 @@ Stephh's notes :
|
||||
input ports.
|
||||
|
||||
|
||||
EC notes :
|
||||
EC notes :
|
||||
|
||||
Thinks... Those three reads at the beginning - hopper, ticket and note acceptor tests?
|
||||
The system certainly performs those before printing the error.
|
||||
(There are three different error graphics in the ROM, depending on what is wrong)
|
||||
Also, hardware freezes if we try to turn the dispenser or acceptor on, because it's waiting
|
||||
for the response back from NOP?
|
||||
Thinks... Those three reads at the beginning - hopper, ticket and note acceptor tests?
|
||||
The system certainly performs those before printing the error.
|
||||
(There are three different error graphics in the ROM, depending on what is wrong)
|
||||
Also, hardware freezes if we try to turn the dispenser or acceptor on, because it's waiting
|
||||
for the response back from NOP?
|
||||
|
||||
|
||||
TO DO :
|
||||
********************************************************************************************
|
||||
|
||||
TO DO :
|
||||
|
||||
- figure out the reads from 0x308002.w and 0x30800e.w (see sderby_input_r read handler)
|
||||
(by default, demo sounds are OFF, so change this in the "test mode")
|
||||
|
||||
*/
|
||||
|
||||
*******************************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "sound/okim6295.h"
|
||||
#include "sderby.lh"
|
||||
#include "spacewin.lh"
|
||||
|
||||
UINT16 *sderby_fg_videoram;
|
||||
@ -89,6 +76,10 @@ VIDEO_UPDATE( pmroulet );
|
||||
WRITE16_HANDLER( sderby_scroll_w );
|
||||
|
||||
|
||||
/***************************
|
||||
* R/W Handlers *
|
||||
***************************/
|
||||
|
||||
static READ16_HANDLER ( sderby_input_r )
|
||||
{
|
||||
switch (offset)
|
||||
@ -108,17 +99,65 @@ static READ16_HANDLER( roulette_input_r )
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x00 >>1:
|
||||
case 0x00 >> 1:
|
||||
return input_port_read(machine, "IN0");
|
||||
case 0x02 >>1:
|
||||
case 0x02 >> 1:
|
||||
return input_port_read(machine, "IN1");
|
||||
case 0x04 >>1:
|
||||
case 0x04 >> 1:
|
||||
return input_port_read(machine, "IN2");
|
||||
}
|
||||
return 0xffff;
|
||||
|
||||
}
|
||||
|
||||
/******************************
|
||||
* Outputs / Lamps *
|
||||
******************************/
|
||||
|
||||
static WRITE16_HANDLER( sderby_out_w )
|
||||
{
|
||||
/*
|
||||
---------------------------
|
||||
--- Super Derby Outputs ---
|
||||
---------------------------
|
||||
|
||||
0x0000 - Normal State (lamps off).
|
||||
0x0001 - Start lamp.
|
||||
0x0002 - Bet lamp.
|
||||
|
||||
0x0100 - Ticket dispenser out.
|
||||
0x0800 - Unknown (always activated).
|
||||
0x1000 - Hopper out.
|
||||
0x2000 - Coin counter.
|
||||
0x4000 - Unknown.
|
||||
0x8000 - End of Race lamp.
|
||||
|
||||
|
||||
- Lbits -
|
||||
7654 3210
|
||||
=========
|
||||
---- ---x Start lamp.
|
||||
---- --x- Bet lamp.
|
||||
|
||||
- Hbits -
|
||||
7654 3210
|
||||
=========
|
||||
---- ---x Ticket dispenser out.
|
||||
---- x--- unknown (always activated).
|
||||
---x ---- Hopper out.
|
||||
--x- ---- Coin counter.
|
||||
-x-- ---- unknown.
|
||||
x--- ---- End of Race lamp.
|
||||
|
||||
*/
|
||||
output_set_lamp_value(1, (data & 1)); /* Lamp 1 - START */
|
||||
output_set_lamp_value(2, (data >> 1) & 1); /* Lamp 2 - BET */
|
||||
output_set_lamp_value(3, (data >> 15) & 1); /* Lamp 3 - END OF RACE */
|
||||
|
||||
coin_counter_w(0, data & 0x2000);
|
||||
}
|
||||
|
||||
|
||||
static WRITE16_HANDLER( scmatto_out_w )
|
||||
{
|
||||
/*
|
||||
@ -134,6 +173,7 @@ static WRITE16_HANDLER( scmatto_out_w )
|
||||
0x0010 - Hold 5 lamp.
|
||||
0x0020 - Start lamp.
|
||||
0x0040 - Bet lamp.
|
||||
0x1000 - Hopper out.
|
||||
0x2000 - Coin counter.
|
||||
|
||||
|
||||
@ -151,6 +191,7 @@ static WRITE16_HANDLER( scmatto_out_w )
|
||||
- Hbits -
|
||||
7654 3210
|
||||
=========
|
||||
---x ---- Hopper out.
|
||||
--x- ---- Coin counter.
|
||||
|
||||
*/
|
||||
@ -165,22 +206,27 @@ static WRITE16_HANDLER( scmatto_out_w )
|
||||
coin_counter_w(0, data & 0x2000);
|
||||
}
|
||||
|
||||
|
||||
/***************************
|
||||
* Memory Maps *
|
||||
***************************/
|
||||
|
||||
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
|
||||
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(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) // ??? - check code at 0x000456 (executed once at startup)
|
||||
AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP) // ??? - check code at 0x000524 (executed once at startup)
|
||||
AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP) /* ??? - check code at 0x000456 (executed once at startup) */
|
||||
AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP) /* ??? - check code at 0x000524 (executed once at startup) */
|
||||
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
|
||||
AM_RANGE(0x308008, 0x308009) AM_WRITE(SMH_NOP) // ???
|
||||
AM_RANGE(0x30800e, 0x30800f) AM_READWRITE(okim6295_status_0_lsb_r,okim6295_data_0_lsb_w)
|
||||
AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_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) // ??? - check code at 0x00042e (executed once at startup)
|
||||
AM_RANGE(0xd00000, 0xd001ff) AM_RAM // NVRAM?
|
||||
AM_RANGE(0xf00000, 0xffffff) AM_RAM
|
||||
AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP) /* unknown... write 0x01 in game, and 0x00 on reset */
|
||||
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
@ -195,34 +241,38 @@ static ADDRESS_MAP_START( spacewin_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
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(scmatto_out_w) /* output port */
|
||||
AM_RANGE(0x30800e, 0x30800f) AM_READWRITE(okim6295_status_0_lsb_r,okim6295_data_0_lsb_w)
|
||||
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(0xd00000, 0xd001ff) AM_RAM
|
||||
AM_RANGE(0x800000, 0x800fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
|
||||
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(0x8f0000, 0x8f07ff) 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)
|
||||
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) // bg
|
||||
AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) // mid
|
||||
AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) // fg
|
||||
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(sderby_videoram_w) AM_BASE(&sderby_videoram) /* bg */
|
||||
AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram) /* mid */
|
||||
AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram) /* fg */
|
||||
AM_RANGE(0x504000, 0x50400b) AM_RAM_WRITE(sderby_scroll_w)
|
||||
AM_RANGE(0x50400e, 0x50400f) AM_WRITE( SMH_NOP )
|
||||
|
||||
AM_RANGE(0x708000, 0x70800d) AM_READ(roulette_input_r) AM_WRITE(SMH_NOP) // what are the writes?
|
||||
AM_RANGE(0x708008, 0x708009) AM_WRITE(SMH_NOP) // ???
|
||||
AM_RANGE(0x70800e, 0x70800f) AM_READ(okim6295_status_0_lsb_r) AM_WRITE(okim6295_data_0_lsb_w) // ?? it only ever plays 1 sound
|
||||
AM_RANGE(0x708000, 0x70800d) AM_READ(roulette_input_r) AM_WRITE(SMH_NOP) /* what are the writes? */
|
||||
AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(okim6295_status_0_lsb_r, okim6295_data_0_lsb_w) /* ROM seems to be bad */
|
||||
AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
|
||||
|
||||
AM_RANGE(0xf00000, 0xffffff) AM_RAM
|
||||
AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
|
||||
AM_RANGE(0xffc000, 0xffffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
/***************************
|
||||
* Input Ports *
|
||||
***************************/
|
||||
|
||||
static INPUT_PORTS_START( sderby )
|
||||
PORT_START("IN0") /* 0x308000.w */
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
|
||||
@ -265,19 +315,19 @@ INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( pmroulet )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_VBLANK ) // it must be toggled to boot anyway
|
||||
PORT_SERVICE_NO_TOGGLE(0x0020, IP_ACTIVE_LOW) // seems to be ..
|
||||
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_VBLANK ) /* it must be toggled to boot anyway */
|
||||
PORT_SERVICE_NO_TOGGLE(0x0020, IP_ACTIVE_LOW)
|
||||
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x000e, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x000e, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00f0, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
|
||||
@ -286,15 +336,20 @@ static INPUT_PORTS_START( pmroulet )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* to cancel bets in 3-button mode */
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // ?
|
||||
PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/****************************
|
||||
* Graphics Layouts *
|
||||
****************************/
|
||||
|
||||
static const gfx_layout tiles8x8_layout =
|
||||
{
|
||||
8,8,
|
||||
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) },
|
||||
@ -303,10 +358,9 @@ static const gfx_layout tiles8x8_layout =
|
||||
8*8
|
||||
};
|
||||
|
||||
|
||||
static const gfx_layout tiles16x16_layout =
|
||||
{
|
||||
16,16,
|
||||
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) },
|
||||
@ -320,18 +374,26 @@ static const gfx_layout tiles16x16_layout =
|
||||
};
|
||||
|
||||
|
||||
/****************************
|
||||
* Graphics Decode *
|
||||
****************************/
|
||||
|
||||
static GFXDECODE_START( sderby )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x000, 256 ) /* sprites */
|
||||
GFXDECODE_ENTRY( "gfx1", 0, tiles16x16_layout, 0x000, 256 ) /* sprites */
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
/****************************
|
||||
* Machine Drivers *
|
||||
****************************/
|
||||
|
||||
static MACHINE_DRIVER_START( sderby )
|
||||
MDRV_CPU_ADD("main", M68000, 12000000)
|
||||
MDRV_CPU_PROGRAM_MAP(sderby_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", irq2_line_hold)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
@ -340,17 +402,15 @@ static MACHINE_DRIVER_START( sderby )
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
MDRV_PALETTE_LENGTH(0x1000)
|
||||
|
||||
MDRV_VIDEO_START(sderby)
|
||||
MDRV_VIDEO_UPDATE(sderby)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD("oki", OKIM6295, 1056000)
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // clock frequency & pin 7 not verified
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) /* clock frequency & pin 7 not verified */
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( spacewin )
|
||||
@ -360,8 +420,6 @@ static MACHINE_DRIVER_START( spacewin )
|
||||
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
@ -369,17 +427,15 @@ static MACHINE_DRIVER_START( spacewin )
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
MDRV_PALETTE_LENGTH(0x1000)
|
||||
|
||||
MDRV_VIDEO_START(sderby)
|
||||
MDRV_VIDEO_UPDATE(pmroulet)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD("oki", OKIM6295, 1056000)
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // clock frequency & pin 7 not verified
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) /* clock frequency & pin 7 not verified */
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( pmroulet )
|
||||
@ -387,29 +443,56 @@ static MACHINE_DRIVER_START( pmroulet )
|
||||
MDRV_CPU_PROGRAM_MAP(roulette_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", irq2_line_hold)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
MDRV_NVRAM_HANDLER(generic_0fill)
|
||||
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
MDRV_SCREEN_REFRESH_RATE(60)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(64*8, 64*8)
|
||||
MDRV_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
|
||||
|
||||
MDRV_GFXDECODE(sderby)
|
||||
MDRV_PALETTE_LENGTH(0x1000)
|
||||
|
||||
MDRV_VIDEO_START(sderby)
|
||||
MDRV_VIDEO_UPDATE(pmroulet)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD("oki", OKIM6295, 1056000)
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // clock frequency & pin 7 not verified
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_pin7high) /* clock frequency & pin 7 not verified */
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
/****************************
|
||||
* Rom Loads *
|
||||
****************************/
|
||||
/*
|
||||
|
||||
Super Derby
|
||||
Playmark '96
|
||||
|
||||
mc 68k 12mhz
|
||||
OKI m6295
|
||||
|
||||
2x GM 76c88al (8kx8 6264) near program ROMs
|
||||
2x 6264 near gfx ROMs
|
||||
16k nonvolatile SRAM (Dallas 1220Y)
|
||||
two FPGA chips - one labelled 'Playmark 010412'
|
||||
4x hm3-65728bk-5
|
||||
--
|
||||
21.bin 6F9F2F2B - near OKI (samples?)
|
||||
|
||||
22.bin A319F1E0 - program code
|
||||
23.bin 1D6E2321 /
|
||||
|
||||
24.bin 93C917DF - gfx
|
||||
25.bin 7BA485CD
|
||||
26.bin BEABE4F7
|
||||
27.bin 672CE5DF
|
||||
28.bin 39CA3B52
|
||||
|
||||
*/
|
||||
ROM_START( sderby )
|
||||
ROM_REGION( 0x80000, "main", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "22.bin", 0x00000, 0x20000, CRC(a319f1e0) SHA1(d932cc7e990aa87308dcd9ffa5af2aaea333aa9a) )
|
||||
@ -426,23 +509,6 @@ ROM_START( sderby )
|
||||
ROM_LOAD( "28.bin", 0x80000, 0x20000, CRC(39ca3b52) SHA1(9a03e73d88a1551cd3cfe616ab71e67dced1272a) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( pmroulet )
|
||||
ROM_REGION( 0x40000, "main", 0 ) /* 68000 Code */
|
||||
ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(1677a2de) SHA1(4dcbb3c1ce9b65e06ba7e0cffa00c0c8016538f5))
|
||||
ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(11acaac2) SHA1(19e7bbbf4356fc9a866f9f36d0568c42d6a36c07))
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(6673de85) SHA1(df390cd6268efc0e743a9020f19bc0cbeb757cfa))
|
||||
|
||||
ROM_REGION( 0x280000, "gfx1", 0 ) /* Sprites */
|
||||
ROM_LOAD( "4.bin", 0x000000, 0x80000, CRC(efcddac9) SHA1(72435ec478b70a067d47f3daf7c224169ee5827a))
|
||||
ROM_LOAD( "5.bin", 0x080000, 0x80000, CRC(bc75ef8f) SHA1(1f3dc457e5ae143d53cfef0e1fcb4586dceefb67))
|
||||
ROM_LOAD( "6.bin", 0x100000, 0x80000, CRC(e47d5f55) SHA1(a341e24f98125265cb3986f8c7ce84eedd056b71))
|
||||
ROM_LOAD( "7.bin", 0x180000, 0x80000, CRC(0fa6ce7d) SHA1(5ba96c9c0625a131d890d9c0c0f65cb2a03fa084))
|
||||
ROM_LOAD( "8.bin", 0x200000, 0x80000, CRC(d4c2b7da) SHA1(515be861443acc5b911241dbaafa42e02f79985a))
|
||||
ROM_END
|
||||
|
||||
/* Scacco Matto / Space Win
|
||||
Playmark, 1996.
|
||||
|
||||
@ -496,13 +562,29 @@ ROM_START( spacewin )
|
||||
ROM_LOAD( "8.u145", 0x080000, 0x20000, CRC(541a73fd) SHA1(fede5e2fcbb18e90cc50995d44e831c3f9b56614) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( pmroulet )
|
||||
ROM_REGION( 0x40000, "main", 0 ) /* 68000 code */
|
||||
ROM_LOAD16_BYTE( "2.bin", 0x00000, 0x20000, CRC(1677a2de) SHA1(4dcbb3c1ce9b65e06ba7e0cffa00c0c8016538f5))
|
||||
ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(11acaac2) SHA1(19e7bbbf4356fc9a866f9f36d0568c42d6a36c07))
|
||||
|
||||
ROM_REGION( 0x080000, "oki", 0 ) /* samples. seems to be wrong (only 6 samples?) */
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(6673de85) SHA1(df390cd6268efc0e743a9020f19bc0cbeb757cfa))
|
||||
|
||||
ROM_REGION( 0x280000, "gfx1", 0 ) /* sprites */
|
||||
ROM_LOAD( "4.bin", 0x000000, 0x80000, CRC(efcddac9) SHA1(72435ec478b70a067d47f3daf7c224169ee5827a))
|
||||
ROM_LOAD( "5.bin", 0x080000, 0x80000, CRC(bc75ef8f) SHA1(1f3dc457e5ae143d53cfef0e1fcb4586dceefb67))
|
||||
ROM_LOAD( "6.bin", 0x100000, 0x80000, CRC(e47d5f55) SHA1(a341e24f98125265cb3986f8c7ce84eedd056b71))
|
||||
ROM_LOAD( "7.bin", 0x180000, 0x80000, CRC(0fa6ce7d) SHA1(5ba96c9c0625a131d890d9c0c0f65cb2a03fa084))
|
||||
ROM_LOAD( "8.bin", 0x200000, 0x80000, CRC(d4c2b7da) SHA1(515be861443acc5b911241dbaafa42e02f79985a))
|
||||
ROM_END
|
||||
|
||||
|
||||
/******************************
|
||||
* Game Drivers *
|
||||
******************************/
|
||||
|
||||
/* 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, sderby, 0, sderby, sderby, 0, ROT0, "Playmark", "Super Derby", 0, layout_sderby )
|
||||
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 )
|
||||
|
||||
|
58
src/mame/layout/sderby.lay
Normal file
58
src/mame/layout/sderby.lay
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<element name="L1" 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="L2" 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>
|
||||
|
||||
<element name="L3" defstate="1">
|
||||
<rect state="1">
|
||||
<color red="0.0" green="1.0" blue="0.0" />
|
||||
</rect>
|
||||
<rect state="0">
|
||||
<color red="0.0" green="0.3" blue="0.0" />
|
||||
</rect>
|
||||
<text string="END OF RACE">
|
||||
<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="0" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp2" element="L2">
|
||||
<bounds x="0.5" y="3.13" width="0.40" height="0.24" />
|
||||
</bezel>
|
||||
<bezel name="lamp3" element="L3">
|
||||
<bounds x="1.6" y="3.13" width="2.00" height="0.24" />
|
||||
</bezel>
|
||||
</view>
|
||||
</mamelayout>
|
@ -1755,7 +1755,8 @@ $(DRIVERS)/qix.o: $(LAYOUT)/elecyoyo.lh
|
||||
|
||||
$(DRIVERS)/sbrkout.o: $(LAYOUT)/sbrkout.lh
|
||||
|
||||
$(DRIVERS)/sderby.o: $(LAYOUT)/spacewin.lh
|
||||
$(DRIVERS)/sderby.o: $(LAYOUT)/sderby.lh \
|
||||
$(LAYOUT)/spacewin.lh \
|
||||
|
||||
$(DRIVERS)/snookr10.o: $(LAYOUT)/snookr10.lh
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user