mirror of
https://github.com/holub/mame
synced 2025-05-04 21:43:05 +03:00
Bells and whistles to Game-A-Tron gambling hardware.
After an exhaustive analysis to the unknown writes, finally figured out the missing sound device. - Added sound support to "Poker 4-1" and "Pull Tabs". - Figured out the output ports. Documented each bit accessed. - Added button lamps support. Created layouts for both games. - Switched the 8255 port C to be used as output port. - Adjusted the coin pulse timing. - Updated technical notes. - Splitted the driver to driver + video. - Final clean-up.
This commit is contained in:
parent
c783bad331
commit
a211e37694
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -2474,8 +2474,10 @@ src/mame/layout/pe_schip.lay svneol=native#text/plain
|
||||
src/mame/layout/pe_slots.lay svneol=native#text/plain
|
||||
src/mame/layout/peplus.lay svneol=native#text/plain
|
||||
src/mame/layout/pmpoker.lay svneol=native#text/plain
|
||||
src/mame/layout/poker41.lay svneol=native#text/plain
|
||||
src/mame/layout/pokio.lay svneol=native#text/plain
|
||||
src/mame/layout/pottnpkr.lay svneol=native#text/plain
|
||||
src/mame/layout/pulltabs.lay svneol=native#text/plain
|
||||
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
|
||||
@ -2909,6 +2911,7 @@ src/mame/video/galpanic.c svneol=native#text/plain
|
||||
src/mame/video/galspnbl.c svneol=native#text/plain
|
||||
src/mame/video/gameplan.c svneol=native#text/plain
|
||||
src/mame/video/gaplus.c svneol=native#text/plain
|
||||
src/mame/video/gatron.c svneol=native#text/plain
|
||||
src/mame/video/gauntlet.c svneol=native#text/plain
|
||||
src/mame/video/gberet.c svneol=native#text/plain
|
||||
src/mame/video/gbusters.c svneol=native#text/plain
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
|
||||
GAME-A-TRON gaming hardware
|
||||
---------------------------
|
||||
GAME-A-TRON gambling hardware
|
||||
-----------------------------
|
||||
|
||||
Driver by Roberto Fresca.
|
||||
|
||||
@ -12,10 +12,6 @@
|
||||
* Pull Tabs, 1983, Game-A-Tron.
|
||||
|
||||
|
||||
The names of both games are not confirmed. We are calling them "Poker 4-1"
|
||||
and "Pull Tabs" till we can find some evidence of the real names.
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
@ -73,10 +69,13 @@
|
||||
U30 VRAM HM6116LP-3 (2Kx8)
|
||||
|
||||
1x 16MHz Crystal
|
||||
|
||||
1x Duracell PX-2 I, 4.5V battery.
|
||||
|
||||
|
||||
Identified the unknown writes as a init sequence for 1x PSG sound device.
|
||||
The type/class is unknown due to almost all devices are plastic covered.
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
@ -88,6 +87,9 @@
|
||||
The first time the machine is turned on, will show the legend "DATA ERROR".
|
||||
You must to RESET (F3) the machine to initialize the NVRAM properly.
|
||||
|
||||
NOTE: These games are intended to be for amusement only.
|
||||
There is not such a payout system, so...Dont ask about it!
|
||||
|
||||
|
||||
* Poker 4-1:
|
||||
|
||||
@ -143,6 +145,7 @@
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
--------------------
|
||||
*** Memory Map ***
|
||||
--------------------
|
||||
@ -150,8 +153,20 @@
|
||||
0x0000 - 0x5FFF ; ROM space.
|
||||
0x6000 - 0x67FF ; Video RAM (only the first 0x300 bytes are used).
|
||||
0x8000 - 0x87FF ; Main RAM.
|
||||
0xA000 - 0xA000 ; Unknown Writes.
|
||||
0xE000 - 0xE000 ; Unknown Writes (watchdog?).
|
||||
0xA000 - 0xA000 ; Sound (PSG).
|
||||
0xE000 - 0xE000 ; Output Port 0 (lamps).
|
||||
|
||||
|
||||
* Z80 I/O ports *
|
||||
|
||||
0x00 - 0x03 ; PPI 8255 (ports A & B as input, port C as output).
|
||||
|
||||
|
||||
* 8255 I/O ports *
|
||||
|
||||
Port A (input) ; Input Port 0 (player buttons).
|
||||
Port B (input) ; Input Port 1 (player & service buttons).
|
||||
Port C (output) ; Output Port 1 (lamps & counters).
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
@ -160,9 +175,23 @@
|
||||
DRIVER UPDATES:
|
||||
|
||||
|
||||
[2008-08-21]
|
||||
|
||||
After an exhaustive analysis to the unknown writes, finally figured out the missing sound device.
|
||||
|
||||
- Added sound support to "Poker 4-1" and "Pull Tabs".
|
||||
- Figured out the output ports. Documented each bit accessed.
|
||||
- Added button lamps support. Created layouts for both games.
|
||||
- Switched the 8255 port C to be used as output port.
|
||||
- Adjusted the coin pulse timing.
|
||||
- Updated technical notes.
|
||||
- Splitted the driver to driver + video.
|
||||
- Final clean-up.
|
||||
|
||||
|
||||
[2008-05-31]
|
||||
|
||||
- Renamed the games to "Poker 4-1" and "Pull Tabs"
|
||||
- Renamed the games to "Poker 4-1" and "Pull Tabs".
|
||||
as shown in the ROMs stickers.
|
||||
- Renamed the ROMs in each set according to their own stickers.
|
||||
- Moved the driver into gametron.a group.
|
||||
@ -170,6 +199,7 @@
|
||||
Poker41 and pulltabs don't make use of it, but is present in the Test/Setting Mode.
|
||||
- Updated technical notes.
|
||||
|
||||
|
||||
[2008-05-10]
|
||||
|
||||
- Initial release.
|
||||
@ -183,8 +213,7 @@
|
||||
|
||||
TODO:
|
||||
|
||||
- Outputs.
|
||||
- Sound.
|
||||
- Nothing... :)
|
||||
|
||||
|
||||
*******************************************************************************/
|
||||
@ -193,54 +222,98 @@
|
||||
#define MASTER_CLOCK XTAL_16MHz
|
||||
|
||||
#include "driver.h"
|
||||
#include "sound/sn76496.h"
|
||||
#include "machine/8255ppi.h"
|
||||
|
||||
#include "poker41.lh"
|
||||
#include "pulltabs.lh"
|
||||
|
||||
/*************************
|
||||
* Video Hardware *
|
||||
*************************/
|
||||
|
||||
static tilemap *bg_tilemap;
|
||||
/* from video */
|
||||
WRITE8_HANDLER( gat_videoram_w );
|
||||
PALETTE_INIT( gat );
|
||||
VIDEO_START( gat );
|
||||
VIDEO_UPDATE( gat );
|
||||
|
||||
|
||||
static WRITE8_HANDLER( gat_videoram_w )
|
||||
/****************************
|
||||
* Read/Write Handlers *
|
||||
****************************/
|
||||
|
||||
static WRITE8_HANDLER( output_port_0_w )
|
||||
{
|
||||
videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg_tilemap, offset);
|
||||
}
|
||||
/* ---------------
|
||||
Pull Tabs lamps
|
||||
---------------
|
||||
|
||||
0x00 - Default State.
|
||||
0x01 - Hold3.
|
||||
0x04 - Hold5.
|
||||
0x08 - Ante/Bet.
|
||||
|
||||
static TILE_GET_INFO( get_bg_tile_info )
|
||||
{
|
||||
/* - bits -
|
||||
- bits -
|
||||
7654 3210
|
||||
xxxx xxxx tiles code.
|
||||
---------
|
||||
.... ...x ---> Hold3.
|
||||
.... .x.. ---> Hold5.
|
||||
.... x... ---> Ante/Bet.
|
||||
|
||||
Tab1 = Hold1
|
||||
Tab2 = Hold3
|
||||
Tab3 = Hold5
|
||||
|
||||
|
||||
---------------
|
||||
Poker 4-1 lamps
|
||||
---------------
|
||||
|
||||
0x00 - Default State.
|
||||
0x01 - Hold3.
|
||||
0x02 - Hold4.
|
||||
0x04 - Hold5/DDown.
|
||||
0x08 - Ante/Bet.
|
||||
0x10 - Start.
|
||||
0x20 - Deal/Hit.
|
||||
0x40 - Stand/FreeBonusDraw.
|
||||
|
||||
- bits -
|
||||
7654 3210
|
||||
---------
|
||||
.... ...x --> Hold3.
|
||||
.... ..x. --> Hold4.
|
||||
.... .x.. --> Hold5/DDown.
|
||||
.... x... --> Ante/Bet.
|
||||
...x .... --> Start.
|
||||
..x. .... --> Deal/Hit.
|
||||
.x.. .... --> Stand/FreeBonusDraw.
|
||||
|
||||
only one color code
|
||||
*/
|
||||
|
||||
int code = videoram[tile_index];
|
||||
|
||||
SET_TILE_INFO(0, code, 0, 0);
|
||||
output_set_lamp_value(0, (data) & 1); /* hold3 lamp */
|
||||
output_set_lamp_value(1, (data >> 1) & 1); /* hold4 lamp */
|
||||
output_set_lamp_value(2, (data >> 2) & 1); /* hold5 lamp */
|
||||
output_set_lamp_value(3, (data >> 3) & 1); /* ante/bet lamp */
|
||||
output_set_lamp_value(4, (data >> 4) & 1); /* start lamp */
|
||||
output_set_lamp_value(5, (data >> 5) & 1); /* deal/hit lamp */
|
||||
output_set_lamp_value(6, (data >> 6) & 1); /* stand/fbdraw lamp */
|
||||
}
|
||||
|
||||
|
||||
static VIDEO_START( gat )
|
||||
static WRITE8_HANDLER( output_port_1_w )
|
||||
{
|
||||
bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_cols, 8, 16, 48, 16);
|
||||
}
|
||||
/* ----------------
|
||||
Lamps & Counters
|
||||
----------------
|
||||
|
||||
- bits -
|
||||
7654 3210
|
||||
---------
|
||||
.... ...x --> Hold2 lamp.
|
||||
.... ..x. --> Hold1 lamp.
|
||||
.x.. .... --> Coin counter (inverted).
|
||||
x... .... --> Inverted pulse. Related to counters.
|
||||
|
||||
static VIDEO_UPDATE( gat )
|
||||
{
|
||||
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static PALETTE_INIT( gat )
|
||||
{
|
||||
|
||||
*/
|
||||
output_set_lamp_value(7, (data) & 1); /* hold2 lamp */
|
||||
output_set_lamp_value(8, (data >> 1) & 1); /* hold1 lamp */
|
||||
}
|
||||
|
||||
|
||||
@ -250,12 +323,12 @@ static PALETTE_INIT( gat )
|
||||
|
||||
static const ppi8255_interface ppi8255_intf =
|
||||
{
|
||||
input_port_0_r, /* Port A read */
|
||||
input_port_1_r, /* Port B read */
|
||||
input_port_2_r, /* Port C read */
|
||||
NULL, /* Port A write */
|
||||
NULL, /* Port B write */
|
||||
NULL, /* Port C write */
|
||||
input_port_0_r, /* Port A read */
|
||||
input_port_1_r, /* Port B read */
|
||||
NULL, /* Port C read */
|
||||
NULL, /* Port A write */
|
||||
NULL, /* Port B write */
|
||||
output_port_1_w, /* Port C write */
|
||||
};
|
||||
|
||||
|
||||
@ -267,8 +340,8 @@ static ADDRESS_MAP_START( gat_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE(gat_videoram_w) AM_BASE(&videoram)
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) /* battery backed RAM */
|
||||
AM_RANGE(0xa000, 0xa000) AM_NOP /* unknown writes */
|
||||
AM_RANGE(0xe000, 0xe000) AM_NOP /* watchdog? */
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(sn76496_0_w) /* PSG */
|
||||
AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w) /* lamps */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( gat_portmap, ADDRESS_SPACE_IO, 8 )
|
||||
@ -276,27 +349,6 @@ static ADDRESS_MAP_START( gat_portmap, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(PPI8255, "ppi8255", ppi8255_r, ppi8255_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* I/O byte R/W
|
||||
|
||||
0x0200 ;R ???!
|
||||
|
||||
0x9200 ;R
|
||||
0x9201 ;R
|
||||
0x9203 ;W (0x92)
|
||||
|
||||
0xC002 ;W (0xC0)
|
||||
0xC202 ;W (0xC2)
|
||||
|
||||
0xFF01 ;R
|
||||
|
||||
-----------------
|
||||
|
||||
unknown writes:
|
||||
|
||||
0xA000 ;W (3 consecutive writes: 8x - Cx - 93)
|
||||
0xE000 ;W (0x04)
|
||||
|
||||
*/
|
||||
|
||||
/*************************
|
||||
* Input Ports *
|
||||
@ -305,12 +357,12 @@ ADDRESS_MAP_END
|
||||
static INPUT_PORTS_START( poker41 )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_NAME("Discard 4") PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet/Ante") PORT_CODE(KEYCODE_N)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Deal/Hit") PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Stand") PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Bet / Ante") PORT_CODE(KEYCODE_N)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Deal / Hit") PORT_CODE(KEYCODE_2)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) /* Coin A */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Free Bonus Draw / Stand") PORT_CODE(KEYCODE_3)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Start") PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Discard 5") PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Discard 5 / High / Double Down") PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_NAME("Discard 3") PORT_CODE(KEYCODE_C)
|
||||
|
||||
PORT_START("IN1")
|
||||
@ -321,17 +373,7 @@ static INPUT_PORTS_START( poker41 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service 1 (Test/Settings)") PORT_CODE(KEYCODE_9)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Discard 1") PORT_CODE(KEYCODE_Z)
|
||||
|
||||
PORT_START("IN2") /* disabled */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Discard 1 / Low") PORT_CODE(KEYCODE_Z)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( pulltabs )
|
||||
@ -339,7 +381,7 @@ static INPUT_PORTS_START( pulltabs )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Ante") PORT_CODE(KEYCODE_1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) /* Coin A */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Big Bar Ticket") PORT_CODE(KEYCODE_C)
|
||||
@ -349,21 +391,11 @@ static INPUT_PORTS_START( pulltabs )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Service 2 (Test Mode Out / Coin Stuck)") PORT_CODE(KEYCODE_0)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Payout? */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service 1 (Test/Settings)") PORT_CODE(KEYCODE_9)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Super Star Ticket") PORT_CODE(KEYCODE_Z)
|
||||
|
||||
PORT_START("IN2") /* disabled */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -402,7 +434,7 @@ GFXDECODE_END
|
||||
static MACHINE_DRIVER_START( gat )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("main", Z80, MASTER_CLOCK/24) /* guess */
|
||||
MDRV_CPU_ADD("main", Z80, MASTER_CLOCK/24) /* 666.66 kHz, guess */
|
||||
MDRV_CPU_PROGRAM_MAP(gat_map, 0)
|
||||
MDRV_CPU_IO_MAP(gat_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT("main", nmi_line_pulse)
|
||||
@ -421,13 +453,15 @@ static MACHINE_DRIVER_START( gat )
|
||||
MDRV_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1)
|
||||
|
||||
MDRV_GFXDECODE(gat)
|
||||
|
||||
MDRV_PALETTE_INIT(gat)
|
||||
MDRV_PALETTE_LENGTH(8)
|
||||
|
||||
MDRV_VIDEO_START(gat)
|
||||
MDRV_VIDEO_UPDATE(gat)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
MDRV_SOUND_ADD("sn1", SN76496, MASTER_CLOCK/8 ) /* 2 MHz, guess */
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
@ -461,6 +495,6 @@ ROM_END
|
||||
* Game Drivers *
|
||||
*************************/
|
||||
|
||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1983, poker41, 0, gat, poker41, 0, ROT0, "Game-A-Tron", "Poker 4-1", GAME_NO_SOUND )
|
||||
GAME( 1983, pulltabs, 0, gat, pulltabs, 0, ROT0, "Game-A-Tron", "Pull Tabs", GAME_NO_SOUND )
|
||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
|
||||
GAMEL( 1983, poker41, 0, gat, poker41, 0, ROT0, "Game-A-Tron", "Poker 4-1", 0, layout_poker41 )
|
||||
GAMEL( 1983, pulltabs, 0, gat, pulltabs, 0, ROT0, "Game-A-Tron", "Pull Tabs", 0, layout_pulltabs )
|
||||
|
135
src/mame/layout/poker41.lay
Normal file
135
src/mame/layout/poker41.lay
Normal file
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<element name="hold1" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DISCARD 1" state="1">
|
||||
<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="hold2" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DISCARD 2" state="1">
|
||||
<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="hold3" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DISCARD 3" state="1">
|
||||
<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="hold4" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DISCARD 4" state="1">
|
||||
<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="hold5" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DISCARD 5" state="1">
|
||||
<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="stand" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.5" blue="0.0" />
|
||||
</rect>
|
||||
<text string="FB-DRAW / STAND" state="1">
|
||||
<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="hit" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.5" blue="0.0" />
|
||||
</rect>
|
||||
<text string="DEAL / HIT" state="1">
|
||||
<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="bet" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.5" blue="0.0" />
|
||||
</rect>
|
||||
<text string="ANTE / BET" state="1">
|
||||
<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="start" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.5" blue="0.0" />
|
||||
</rect>
|
||||
<text string="START" state="1">
|
||||
<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="lamp8" element="hold1">
|
||||
<bounds x="0" y="3.02" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp7" element="hold2">
|
||||
<bounds x="0.82" y="3.02" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp6" element="stand">
|
||||
<bounds x="0.82" y="3.28" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp0" element="hold3">
|
||||
<bounds x="1.64" y="3.02" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp5" element="hit">
|
||||
<bounds x="1.64" y="3.28" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp1" element="hold4">
|
||||
<bounds x="2.46" y="3.02" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp3" element="bet">
|
||||
<bounds x="2.46" y="3.28" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp2" element="hold5">
|
||||
<bounds x="3.28" y="3.02" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp4" element="start">
|
||||
<bounds x="3.28" y="3.28" width="0.72" height="0.24" />
|
||||
</bezel>
|
||||
</view>
|
||||
</mamelayout>
|
66
src/mame/layout/pulltabs.lay
Normal file
66
src/mame/layout/pulltabs.lay
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<element name="tab1" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="SUPER STAR" state="1">
|
||||
<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="tab2" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="LADY LUCK" state="1">
|
||||
<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="tab3" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.0" blue="0.0" />
|
||||
</rect>
|
||||
<text string="BIG BAR" state="1">
|
||||
<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="bet" defstate="1">
|
||||
<rect>
|
||||
<color red="1.0" green="0.5" blue="0.0" />
|
||||
</rect>
|
||||
<text string="ANTE/BET" state="1">
|
||||
<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="lamp8" element="tab1">
|
||||
<bounds x="0.30" y="3.02" width="1.00" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp0" element="tab2">
|
||||
<bounds x="1.50" y="3.02" width="1.00" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp3" element="bet">
|
||||
<bounds x="1.50" y="3.28" width="1.00" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
<bezel name="lamp2" element="tab3">
|
||||
<bounds x="2.70" y="3.02" width="1.00" height="0.24" />
|
||||
</bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -742,7 +742,7 @@ $(MAMEOBJ)/gameplan.a: \
|
||||
$(MAMEOBJ)/gametron.a: \
|
||||
$(DRIVERS)/gotya.o $(AUDIO)/gotya.o $(VIDEO)/gotya.o \
|
||||
$(DRIVERS)/sbugger.o $(VIDEO)/sbugger.o \
|
||||
$(DRIVERS)/gatron.o \
|
||||
$(DRIVERS)/gatron.o $(VIDEO)/gatron.o \
|
||||
|
||||
$(MAMEOBJ)/gottlieb.a: \
|
||||
$(DRIVERS)/exterm.o $(VIDEO)/exterm.o \
|
||||
@ -1711,6 +1711,9 @@ $(DRIVERS)/firebeat.o: $(LAYOUT)/firebeat.lh
|
||||
|
||||
$(DRIVERS)/funworld.o: $(LAYOUT)/funworld.lh
|
||||
|
||||
$(DRIVERS)/gatron.o: $(LAYOUT)/poker41.lh \
|
||||
$(LAYOUT)/pulltabs.lh
|
||||
|
||||
$(DRIVERS)/lazercmd.o: $(LAYOUT)/lazercmd.lh
|
||||
|
||||
$(DRIVERS)/lucky74.o: $(LAYOUT)/lucky74.lh
|
||||
|
59
src/mame/video/gatron.c
Normal file
59
src/mame/video/gatron.c
Normal file
@ -0,0 +1,59 @@
|
||||
/******************************************************************************
|
||||
|
||||
GAME-A-TRON gambling hardware
|
||||
-----------------------------
|
||||
|
||||
*** Video Hardware ***
|
||||
|
||||
Written by Roberto Fresca.
|
||||
|
||||
|
||||
Games running on this hardware:
|
||||
|
||||
* Poker 4-1, 1983, Game-A-Tron.
|
||||
* Pull Tabs, 1983, Game-A-Tron.
|
||||
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
static tilemap *bg_tilemap;
|
||||
|
||||
|
||||
WRITE8_HANDLER( gat_videoram_w )
|
||||
{
|
||||
videoram[offset] = data;
|
||||
tilemap_mark_tile_dirty(bg_tilemap, offset);
|
||||
}
|
||||
|
||||
static TILE_GET_INFO( get_bg_tile_info )
|
||||
{
|
||||
/* - bits -
|
||||
7654 3210
|
||||
xxxx xxxx tiles code.
|
||||
|
||||
only one color code
|
||||
*/
|
||||
|
||||
int code = videoram[tile_index];
|
||||
|
||||
SET_TILE_INFO(0, code, 0, 0);
|
||||
}
|
||||
|
||||
VIDEO_START( gat )
|
||||
{
|
||||
bg_tilemap = tilemap_create(get_bg_tile_info, tilemap_scan_cols, 8, 16, 48, 16);
|
||||
}
|
||||
|
||||
VIDEO_UPDATE( gat )
|
||||
{
|
||||
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
PALETTE_INIT( gat )
|
||||
{
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user