Amusco driver improvements: Added button-lamps

and coin counter support [Roberto Fresca]
This commit is contained in:
RobertoFresca 2016-11-13 01:30:40 -03:00
parent 0b2d6c47f4
commit 5ef3fe31e7
2 changed files with 165 additions and 7 deletions

View File

@ -66,7 +66,7 @@
- Make the 6845 transparent videoram addressing actually transparent. - Make the 6845 transparent videoram addressing actually transparent.
(IRQ1 changes the 6845 address twice but neither reads nor writes data?) (IRQ1 changes the 6845 address twice but neither reads nor writes data?)
- Add NVRAM in a way that won't trigger POST error message (needs NMI on shutdown?) - Add NVRAM in a way that won't trigger POST error message (needs NMI on shutdown?)
- Identify outputs from first PPI (these include button lamps?) - Identify remaining outputs from first PPI (button lamps and coin counter are identified and implemented)
*******************************************************************************/ *******************************************************************************/
@ -87,6 +87,7 @@
#include "machine/pic8259.h" #include "machine/pic8259.h"
#include "machine/pit8253.h" #include "machine/pit8253.h"
#include "machine/msm5832.h" #include "machine/msm5832.h"
#include "amusco.lh"
class amusco_state : public driver_device class amusco_state : public driver_device
@ -236,11 +237,44 @@ WRITE8_MEMBER( amusco_state::mc6845_w)
WRITE8_MEMBER(amusco_state::output_a_w) WRITE8_MEMBER(amusco_state::output_a_w)
{ {
/* Lamps from port A
7654 3210
---- ---x Bet lamp.
---- --x- Hold/Discard 5 lamp.
---- -x-- Hold/Discard 3 lamp.
---- x--- Hold/Discard 1 lamp.
---x ---- Hold/Discard 2 lamp.
--x- ---- Hold/Discard 4 lamp.
xx-- ---- Unknown.
*/
output().set_lamp_value(0, (data) & 1); // Lamp 0 (Bet)
output().set_lamp_value(1, (data >> 1) & 1); // Lamp 1 (Hold/Disc 5)
output().set_lamp_value(2, (data >> 2) & 1); // Lamp 2 (Hold/Disc 3)
output().set_lamp_value(3, (data >> 3) & 1); // Lamp 3 (Hold/Disc 1)
output().set_lamp_value(4, (data >> 4) & 1); // Lamp 4 (Hold/Disc 2)
output().set_lamp_value(5, (data >> 5) & 1); // Lamp 5 (Hold/Disc 4)
// logerror("Writing %02Xh to PPI output A\n", data); // logerror("Writing %02Xh to PPI output A\n", data);
} }
WRITE8_MEMBER(amusco_state::output_b_w) WRITE8_MEMBER(amusco_state::output_b_w)
{ {
/* Lamps and counters from port B
7654 3210
---- --x- Unknown lamp (lits when all holds/disc are ON).
---- -x-- Start/Draw lamp.
---x ---- Coin counter.
xxx- x--x Unknown.
*/
output().set_lamp_value(6, (data >> 2) & 1); // Lamp 6 (Start/Draw)
output().set_lamp_value(7, (data >> 1) & 1); // Lamp 7 (Unknown)
machine().bookkeeping().coin_counter_w(0, ~data & 0x10); // Coin counter
// logerror("Writing %02Xh to PPI output B\n", data); // logerror("Writing %02Xh to PPI output B\n", data);
} }
@ -502,6 +536,6 @@ ROM_END
* Game Drivers * * Game Drivers *
*************************/ *************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */ /* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
GAME( 1987, amusco, 0, amusco, amusco, driver_device, 0, ROT0, "Amusco", "American Music Poker (V1.4)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER ) // runs much too fast; palette totally wrong GAMEL( 1987, amusco, 0, amusco, amusco, driver_device, 0, ROT0, "Amusco", "American Music Poker (V1.4)", MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER, layout_amusco ) // runs much too fast; palette totally wrong
GAME( 1988, draw88pkr, 0, amusco, amusco, driver_device, 0, ROT0, "BTE, Inc.", "Draw 88 Poker (V2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER ) GAME( 1988, draw88pkr, 0, amusco, amusco, driver_device, 0, ROT0, "BTE, Inc.", "Draw 88 Poker (V2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS | MACHINE_NODEVICE_PRINTER )

124
src/mame/layout/amusco.lay Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0"?>
<mamelayout version="2">
<element name="hold1" defstate="0">
<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="HOLD 1">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="hold2" defstate="0">
<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="HOLD 2">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="hold3" defstate="0">
<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="HOLD 3">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="hold4" defstate="0">
<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="HOLD 4">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="hold5" defstate="0">
<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="HOLD 5">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="bet" defstate="0">
<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="BET">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.2" width="1" height="0.6" />
</text>
</element>
<element name="startdraw" defstate="0">
<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="START">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.4" />
</text>
<text string="DRAW">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.5" width="1" height="0.4" />
</text>
</element>
<view name="Button Lamps">
<screen index="0">
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<bezel name="lamp3" element="hold1">
<bounds x="0.15" y="3.13" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp4" element="hold2">
<bounds x="0.80" y="3.13" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp2" element="hold3">
<bounds x="1.45" y="3.13" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp5" element="hold4">
<bounds x="2.10" y="3.13" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp1" element="hold5">
<bounds x="2.75" y="3.13" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp0" element="bet">
<bounds x="3.45" y="3.02" width="0.55" height="0.24" />
</bezel>
<bezel name="lamp6" element="startdraw">
<bounds x="3.45" y="3.28" width="0.55" height="0.24" />
</bezel>
</view>
</mamelayout>