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.
(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?)
- 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/pit8253.h"
#include "machine/msm5832.h"
#include "amusco.lh"
class amusco_state : public driver_device
@ -236,17 +237,50 @@ WRITE8_MEMBER( amusco_state::mc6845_w)
WRITE8_MEMBER(amusco_state::output_a_w)
{
//logerror("Writing %02Xh to PPI output A\n", data);
/* 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);
}
WRITE8_MEMBER(amusco_state::output_b_w)
{
//logerror("Writing %02Xh to PPI output B\n", data);
/* 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);
}
WRITE8_MEMBER(amusco_state::output_c_w)
{
//logerror("Writing %02Xh to PPI output C\n", data);
// logerror("Writing %02Xh to PPI output C\n", data);
}
WRITE8_MEMBER(amusco_state::vram_w)
@ -502,6 +536,6 @@ ROM_END
* Game Drivers *
*************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
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
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 )
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
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 )

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>