Renamed drw80pkr to drw80pk2. Appears to be later version and MN jurisdiction specific.

Replaced drw80pkr with older dump from [Team Europe].

drw80pkr:
- Added various graphics improvements and corrected colors.  Game boots much farther and cleaner.
This commit is contained in:
Jim Stolis 2009-11-19 04:10:44 +00:00
parent 15b0c50409
commit 5709ada61a
2 changed files with 126 additions and 72 deletions

View File

@ -10,7 +10,7 @@
Name: Draw 80 Poker
Company: IGT - International Gaming Technology
Year: 1983
Year: 1982
Hardware:
@ -22,8 +22,7 @@
This is one of the first video machines produced by IGT. Originally, the
company was called SIRCOMA and was founded in 1979. It became a public
company in 1981 and changed its name to IGT. The motherboard has a date
of 1982 (c) IGT, but the game rom labels and backglass are dated 1983.
company in 1981 and changed its name to IGT.
***********************************************************************************/
#include "driver.h"
@ -34,11 +33,11 @@
static tilemap *bg_tilemap;
static UINT8 p1, p2, prog, bus;
static UINT8 t0, t1, p0, p1, p2, prog, bus;
static UINT8 *pkr_io_ram;
static UINT8 active_bank = 0;
static UINT8 pkr_io_ram[0x100];
static UINT16 video_ram[0x0400];
static UINT8 color_ram[0x0400];
@ -47,6 +46,21 @@ static UINT8 color_ram[0x0400];
* Write Handlers *
******************/
static WRITE8_HANDLER( t0_w )
{
t0 = data;
}
static WRITE8_HANDLER( t1_w )
{
t1 = data;
}
static WRITE8_HANDLER( p0_w )
{
p0 = data;
}
static WRITE8_HANDLER( p1_w )
{
p1 = data;
@ -79,42 +93,19 @@ static WRITE8_HANDLER( bus_w )
static WRITE8_HANDLER( drw80pkr_io_w )
{
static UINT16 n_offs;
static UINT16 n_data;
static UINT16 add;
UINT16 n_offs;
if (p2 == 0x3f) // write cg address
if (p2 == 0x3f || p2 == 0x7f)
{
if (p1 == 0xbf || p1 == 0x3f)
n_offs = (((~p1) & 0xc0) << 2) - 0x100; // high address
n_offs += (offset); // low address
color_ram[n_offs] = data & 0x0f;
if (p2 == 0x3f)
{
n_data = data;
video_ram[n_offs] = data;
}
if (p1 == 0x7f && data != 0x0f)
{
n_data = data + 0x100;
}
add = ((p1 & 0xc0) << 2);
if (p1 == 0x3f && offset >= 0xf0)
{
add = 0x200;
}
n_offs = (add) + (0xff-offset);
video_ram[n_offs] = n_data;
tilemap_mark_tile_dirty(bg_tilemap, n_offs);
}
if (p2 == 0x7f) // write palette
{
n_offs = ((p1 & 0xc0) << 2 ) + (0xff-offset);
color_ram[n_offs] = 0;//data & 0x0f;
if (data < 0x10)
video_ram[n_offs] = video_ram[n_offs] + 0x100;
tilemap_mark_tile_dirty(bg_tilemap, n_offs);
}
@ -152,13 +143,30 @@ static WRITE8_HANDLER( drw80pkr_io_w )
// CRTC Address
//if (p1 == 0xff && p2 == 0xd7)
pkr_io_ram[offset] = data;
if (p2 == 0xfb) {
pkr_io_ram[offset] = data;
}
}
/****************
* Read Handlers *
****************/
static READ8_HANDLER( t0_r )
{
return t0;
}
static READ8_HANDLER( t1_r )
{
return t1;
}
static READ8_HANDLER( p0_r )
{
return p0;
}
static READ8_HANDLER( p1_r )
{
return p1;
@ -176,7 +184,47 @@ static READ8_HANDLER( bus_r )
static READ8_HANDLER( drw80pkr_io_r )
{
return pkr_io_ram[offset];
UINT8 ret;
UINT16 n_offs;
ret = 0x00;
if (p2 == 0x3b)
{
n_offs = (((~p1) & 0xc0) << 2) - 0x100; // high address
n_offs += (offset); // low address
ret = video_ram[n_offs];
}
if (p2 == 0x7b)
{
n_offs = (((~p1) & 0xc0) << 2) - 0x100; // high address
n_offs += (offset); // low address
ret = color_ram[n_offs];
}
if (p2 == 0xf7)
{
ret = 0x00; // unknown
}
if (p2 == 0xfb)
{
ret = pkr_io_ram[offset];
}
if (p2 == 0xff)
{
// TODO: Get Input Port Values
ret = 0x00;
// Set High Bit After Input (maybe door?)
ret += 0x80;
}
return ret;
}
@ -206,37 +254,28 @@ static VIDEO_UPDATE( drw80pkr )
static PALETTE_INIT( drw80pkr )
{
/* prom bits
7654 3210
---- -xxx red component.
--xx x--- green component.
xx-- ---- blue component.
*/
int i;
int j;
for (i = 0;i < machine->config->total_colors;i++)
for (j = 0; j < machine->config->total_colors; j++)
{
int bit0, bit1, bit2, r, g, b;
int r, g, b, tr, tg, tb, i;
i = (color_prom[j] >> 3) & 0x01;
//i = color_prom[j];
/* red component */
bit0 = (~color_prom[i] >> 0) & 0x01;
bit1 = (~color_prom[i] >> 1) & 0x01;
bit2 = (~color_prom[i] >> 2) & 0x01;
r = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
tr = 0xf0 - (0xf0 * ((color_prom[j] >> 0) & 0x01));
r = tr - (i * (tr / 5));
/* green component */
bit0 = (~color_prom[i] >> 3) & 0x01;
bit1 = (~color_prom[i] >> 4) & 0x01;
bit2 = (~color_prom[i] >> 5) & 0x01;
g = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
tg = 0xf0 - (0xf0 * ((color_prom[j] >> 1) & 0x01));
g = tg - (i * (tg / 5));
/* blue component */
bit0 = (~color_prom[i] >> 6) & 0x01;
bit1 = (~color_prom[i] >> 7) & 0x01;
bit2 = 0;
b = 0x21 * bit2 + 0x47 * bit1 + 0x97 * bit0;
tb = 0xf0 - (0xf0 * ((color_prom[j] >> 2) & 0x01));
b = tb - (i * (tb / 5));
palette_set_color(machine, i, MAKE_RGB(r, g, b));
palette_set_color(machine, j, MAKE_RGB(r, g, b));
}
}
@ -250,7 +289,7 @@ static const gfx_layout charlayout =
8,8, /* 8x8 characters */
RGN_FRAC(1,2), /* 512 characters */
2, /* 2 bitplanes */
{ RGN_FRAC(1,2), 0 },
{ 0, RGN_FRAC(1,2) },
{ STEP8(0,1) },
{ STEP8(0,8) },
8*8
@ -285,11 +324,13 @@ static ADDRESS_MAP_START( drw80pkr_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( drw80pkr_io_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x00, 0xff) AM_READWRITE(drw80pkr_io_r, drw80pkr_io_w) AM_BASE(&pkr_io_ram)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_RAM
AM_RANGE(0x00, 0xff) AM_READWRITE(drw80pkr_io_r, drw80pkr_io_w)
AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READWRITE(t0_r, t0_w)
AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READWRITE(t1_r, t1_w)
AM_RANGE(MCS48_PORT_P0, MCS48_PORT_P0) AM_READWRITE(p0_r, p0_w)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_r, p1_w)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_r, p2_w)
AM_RANGE(MCS48_PORT_PROG, MCS48_PORT_PROG) AM_RAM_WRITE(prog_w)
AM_RANGE(MCS48_PORT_PROG, MCS48_PORT_PROG) AM_RAM_WRITE(prog_w)
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READWRITE(bus_r, bus_w)
ADDRESS_MAP_END
@ -340,23 +381,35 @@ MACHINE_DRIVER_END
*************************/
ROM_START( drw80pkr )
ROM_REGION( 0x2000, "maincpu", 0 )
ROM_LOAD( "pm0.u81", 0x0000, 0x1000, CRC(73223555) SHA1(229999ec00a1353f0d4928c65c8975079060c5af) )
ROM_LOAD( "pm1.u82", 0x1000, 0x1000, CRC(f8158f2b) SHA1(da3b30cfd49cd0e8a48d78fd3f82b2b4ab33670c) )
ROM_REGION( 0x002000, "gfx1", 0 )
ROM_LOAD( "cg0-a.u74", 0x0000, 0x1000, CRC(0eefe598) SHA1(ed10aac345b10e35fb15babdd3ac30ebe2b8fc0f) )
ROM_LOAD( "cg1-a.u76", 0x1000, 0x1000, CRC(522a96d0) SHA1(48f855a132413493353fbf6a44a1feb34ae6726d) )
ROM_REGION( 0x100, "proms", 0 )
ROM_LOAD( "cap13.u92", 0x0000, 0x0100, CRC(be67a8d9) SHA1(24b8cd19a5ec09779a737f6fc8c07b44f1226c8f) )
ROM_END
ROM_START( drw80pk2 )
ROM_REGION( 0x2000, "maincpu", 0 )
ROM_LOAD( "pm0.u81", 0x0000, 0x1000, CRC(0f3e97d2) SHA1(aa9e4015246284f32435d7320de667e075412e5b) )
ROM_LOAD( "pm1.u82", 0x1000, 0x1000, CRC(5a6ad467) SHA1(0128bd70b65244a0f68031d5f451bf115eeb7609) )
ROM_REGION( 0x002000, "gfx1", 0 )
ROM_LOAD( "cg0-a.u74", 0x0000, 0x1000, CRC(97f5eb92) SHA1(f6c7bb42ccef8a78e8d56104ad942ae5b8e5b0df) )
ROM_LOAD( "cg1-a.u76", 0x1000, 0x1000, CRC(2a3a750d) SHA1(db6183d11b2865b011c3748dc472cf5858dde78f) )
ROM_REGION( 0x100, "proms", 0 ) // WRONG CAP
ROM_LOAD( "cap13.u92", 0x0000, 0x0100, CRC(42d6e973) SHA1(5c2983d5c80333ca45033070a2296fe58c339ee1) )
ROM_REGION( 0x100, "proms", 0 )
ROM_LOAD( "cap13.u92", 0x0000, 0x0100, CRC(be67a8d9) SHA1(24b8cd19a5ec09779a737f6fc8c07b44f1226c8f) )
ROM_END
/*************************
* Game Drivers *
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
GAME( 1983, drw80pkr, 0, drw80pkr, drw80pkr, drw80pkr, ROT0, "IGT - International Gaming Technology", "Draw 80 Poker", GAME_NOT_WORKING )
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
GAME( 1982, drw80pkr, 0, drw80pkr, drw80pkr, drw80pkr, ROT0, "IGT - International Gaming Technology", "Draw 80 Poker", GAME_NOT_WORKING )
GAME( 1983, drw80pk2, 0, drw80pkr, drw80pkr, drw80pkr, ROT0, "IGT - International Gaming Technology", "Draw 80 Poker - Minn", GAME_NOT_WORKING )

View File

@ -9203,7 +9203,8 @@ Other Sun games
DRIVER( jongkyo ) /* (c) 1985 Kiwako */
DRIVER( gamecstl ) /* MAME based bootleg */
DRIVER( gamecst2 ) /* MAME based bootleg, version 2.613 */
DRIVER( drw80pkr ) /* (c) 1983 IGT */
DRIVER( drw80pkr ) /* (c) 1982 IGT */
DRIVER( drw80pk2 ) /* (c) 1983 IGT */
DRIVER( blazlaz ) /* (c) 1989 Hudson Soft */
DRIVER( ggconnie ) /* (c) ???? Capcom */
DRIVER( paranoia ) /* (c) 1990 Naxat Soft */