summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--src/mame/drivers/gts80.c68
-rw-r--r--src/mame/layout/gts80.lay140
-rw-r--r--src/mame/mame.mak2
4 files changed, 201 insertions, 10 deletions
diff --git a/.gitattributes b/.gitattributes
index 753283463bc..168bc3d734e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6660,6 +6660,7 @@ src/mame/layout/gp_1.lay svneol=native#text/xml
src/mame/layout/gp_2.lay svneol=native#text/xml
src/mame/layout/grchamp.lay svneol=native#text/xml
src/mame/layout/gridiron.lay svneol=native#text/xml
+src/mame/layout/gts80.lay svneol=native#text/plain
src/mame/layout/gunchamp.lay svneol=native#text/xml
src/mame/layout/gunchamps.lay svneol=native#text/xml
src/mame/layout/gunfight.lay svneol=native#text/xml
diff --git a/src/mame/drivers/gts80.c b/src/mame/drivers/gts80.c
index 9d4daa5b0a8..03716845d70 100644
--- a/src/mame/drivers/gts80.c
+++ b/src/mame/drivers/gts80.c
@@ -11,19 +11,27 @@ ToDO:
************************************************************************************************************/
-#include "emu.h"
+#include "machine/genpin.h"
#include "cpu/m6502/m6502.h"
#include "machine/6532riot.h"
+#include "gts80.lh"
-class gts80_state : public driver_device
+class gts80_state : public genpin_class
{
public:
gts80_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
+ : genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
{ }
DECLARE_DRIVER_INIT(gts80);
+ DECLARE_READ8_MEMBER(port1a_r);
+ DECLARE_READ8_MEMBER(port2a_r);
+ DECLARE_WRITE8_MEMBER(port1b_w);
+ DECLARE_WRITE8_MEMBER(port2a_w);
+ DECLARE_WRITE8_MEMBER(port2b_w);
+ DECLARE_WRITE8_MEMBER(port3a_w);
+ DECLARE_WRITE8_MEMBER(port3b_w);
private:
virtual void machine_reset();
required_device<cpu_device> m_maincpu;
@@ -45,6 +53,38 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( gts80 )
INPUT_PORTS_END
+READ8_MEMBER( gts80_state::port1a_r )
+{
+ return 0xff;
+}
+
+READ8_MEMBER( gts80_state::port2a_r )
+{
+ return 0xff;
+}
+
+WRITE8_MEMBER( gts80_state::port1b_w )
+{
+}
+
+WRITE8_MEMBER( gts80_state::port2a_w )
+{
+//printf("A:%X ",data);
+}
+
+WRITE8_MEMBER( gts80_state::port2b_w )
+{
+//printf("B:%X ",data);
+}
+
+WRITE8_MEMBER( gts80_state::port3a_w )
+{
+}
+
+WRITE8_MEMBER( gts80_state::port3b_w )
+{
+}
+
void gts80_state::machine_reset()
{
}
@@ -58,25 +98,33 @@ static MACHINE_CONFIG_START( gts80_s, gts80_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 850000) // xtal frequency not shown
MCFG_CPU_PROGRAM_MAP(gts80_map)
+
+ /* Video */
+ MCFG_DEFAULT_LAYOUT(layout_gts80)
+
+ /* Devices */
MCFG_DEVICE_ADD("riot1", RIOT6532, 850000)
- //MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port1a_r))
+ MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port1a_r)) // sw_r
//MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port1a_w))
//MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port1b_r))
- //MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port1b_w))
+ MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port1b_w)) // sw_w
MCFG_RIOT6532_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("riot2", RIOT6532, 850000)
- //MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port2a_r))
- //MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port2a_w))
+ MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port2a_r)) // pa7 - slam tilt
+ MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port2a_w)) // digit select
//MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port2b_r))
- //MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port2b_w))
+ MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port2b_w)) // seg
MCFG_RIOT6532_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
MCFG_DEVICE_ADD("riot3", RIOT6532, 850000)
//MCFG_RIOT6532_IN_PA_CB(READ8(gts80_state, port3a_r))
- //MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port3a_w))
+ MCFG_RIOT6532_OUT_PA_CB(WRITE8(gts80_state, port3a_w)) // sol, snd
//MCFG_RIOT6532_IN_PB_CB(READ8(gts80_state, port3b_r))
- //MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port3b_w))
+ MCFG_RIOT6532_OUT_PB_CB(WRITE8(gts80_state, port3b_w)) // lamps
MCFG_RIOT6532_IRQ_CB(INPUTLINE("maincpu", M6502_IRQ_LINE))
+ /* Sound */
+ MCFG_FRAGMENT_ADD( genpin_audio )
+
/* related to src/mame/audio/gottlieb.c */
// MCFG_IMPORT_FROM(gts80s_s)
MACHINE_CONFIG_END
diff --git a/src/mame/layout/gts80.lay b/src/mame/layout/gts80.lay
new file mode 100644
index 00000000000..129ca042d2c
--- /dev/null
+++ b/src/mame/layout/gts80.lay
@@ -0,0 +1,140 @@
+<!-- GTS80 copied from hankin.lay -->
+
+<!-- 2014-10-08: Initial version. [Robbbert] -->
+
+<mamelayout version="2">
+
+ <element name="digit" defstate="0">
+ <led14seg>
+ <color red="0.0" green="0.75" blue="1.0" />
+ </led14seg>
+ </element>
+ <element name="red_led">
+ <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
+ </element>
+ <element name="background">
+ <rect>
+ <bounds left="0" top="0" right="1" bottom="1" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+ <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+
+ <view name="Default Layout">
+
+ <!-- Background -->
+ <backdrop element="background">
+ <bounds left="0" top="20" right="274" bottom="394" />
+ </backdrop>
+
+ <!-- LEDs -->
+
+ <!-- Player 1 Score -->
+
+ <bezel name="digit5" element="digit">
+ <bounds left="10" top="45" right="44" bottom="84" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds left="54" top="45" right="88" bottom="84" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds left="98" top="45" right="132" bottom="84" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds left="142" top="45" right="176" bottom="84" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds left="186" top="45" right="220" bottom="84" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds left="230" top="45" right="264" bottom="84" />
+ </bezel>
+
+ <!-- Player 2 Score -->
+ <bezel name="digit15" element="digit">
+ <bounds left="10" top="105" right="44" bottom="144" />
+ </bezel>
+ <bezel name="digit14" element="digit">
+ <bounds left="54" top="105" right="88" bottom="144" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds left="98" top="105" right="132" bottom="144" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds left="142" top="105" right="176" bottom="144" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds left="186" top="105" right="220" bottom="144" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds left="230" top="105" right="264" bottom="144" />
+ </bezel>
+
+ <!-- Player 3 Score -->
+ <bezel name="digit25" element="digit">
+ <bounds left="10" top="165" right="44" bottom="204" />
+ </bezel>
+ <bezel name="digit24" element="digit">
+ <bounds left="54" top="165" right="88" bottom="204" />
+ </bezel>
+ <bezel name="digit23" element="digit">
+ <bounds left="98" top="165" right="132" bottom="204" />
+ </bezel>
+ <bezel name="digit22" element="digit">
+ <bounds left="142" top="165" right="176" bottom="204" />
+ </bezel>
+ <bezel name="digit21" element="digit">
+ <bounds left="186" top="165" right="220" bottom="204" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds left="230" top="165" right="264" bottom="204" />
+ </bezel>
+
+ <!-- Player 4 Score -->
+ <bezel name="digit35" element="digit">
+ <bounds left="10" top="225" right="44" bottom="264" />
+ </bezel>
+ <bezel name="digit34" element="digit">
+ <bounds left="54" top="225" right="88" bottom="264" />
+ </bezel>
+ <bezel name="digit33" element="digit">
+ <bounds left="98" top="225" right="132" bottom="264" />
+ </bezel>
+ <bezel name="digit32" element="digit">
+ <bounds left="142" top="225" right="176" bottom="264" />
+ </bezel>
+ <bezel name="digit31" element="digit">
+ <bounds left="186" top="225" right="220" bottom="264" />
+ </bezel>
+ <bezel name="digit30" element="digit">
+ <bounds left="230" top="225" right="264" bottom="264" />
+ </bezel>
+
+ <!-- Credits and Balls -->
+ <bezel name="digit41" element="digit">
+ <bounds left="30" top="345" right="64" bottom="384" />
+ </bezel>
+ <bezel name="digit40" element="digit">
+ <bounds left="69" top="345" right="103" bottom="384" />
+ </bezel>
+ <bezel name="digit44" element="digit">
+ <bounds left="171" top="345" right="205" bottom="384" />
+ </bezel>
+ <bezel name="digit43" element="digit">
+ <bounds left="210" top="345" right="244" bottom="384" />
+ </bezel>
+ <bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
+ <bezel element="P0"><bounds left="50" right="108" top="330" bottom="342" /></bezel>
+ <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
+ <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
+ <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
+ <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
+ <bezel name="led0" element="red_led">
+ <bounds left="10" right="25" top="360" bottom="375" /></bezel>
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.mak b/src/mame/mame.mak
index 329de7496aa..fcd77000974 100644
--- a/src/mame/mame.mak
+++ b/src/mame/mame.mak
@@ -2647,6 +2647,8 @@ $(DRIVERS)/goldnpkr.o: $(LAYOUT)/goldnpkr.lh \
$(LAYOUT)/pmpoker.lh \
$(LAYOUT)/upndown.lh
+$(DRIVERS)/gts80.o: $(LAYOUT)/gts80.lh
+
$(DRIVERS)/lbeach.o: $(LAYOUT)/lbeach.lh
$(DRIVERS)/goldstar.o: $(LAYOUT)/goldstar.lh \