Previous 199869 Revisions Next

r32536 Saturday 4th October, 2014 at 21:14:24 UTC by R. Belmont
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Vegas 1 (Ver 2.3 dual coin pulse, shorter) [any]
Vegas 1 (Ver 2.1 dual coin pulse, longer) [any]
Vegas 1 (Ver 1.33 single coin pulse) [any]


This is a coin pusher machine from Spain.  Your guess on how to work it is as good as mine ;-)
[src/mame]mame.lst mame.mak
[src/mame/drivers]mgavegas.c*
[src/mame/layout]mgavegas.lay*

trunk/src/mame/layout/mgavegas.lay
r0r32536
1<!-- fireball.lay -->
2
3<!-- 2014-01-15: Initial version.  -->
4
5<mamelayout version="2">
6
7   <element name="red_led">
8      <rect>
9         <color red="1.0" green="0.0" blue="0.0" />
10      </rect>
11   </element>
12
13   <element name="background">
14      <rect>
15         <bounds left="0" top="0" right="1" bottom="1" />
16         <color red="0.0" green="0.0" blue="0.0" />
17      </rect>
18   </element>
19
20   <element name="P0"><text string="MR"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P1"><text string="MC"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P2"><text string="ML"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23
24   <element name="P3"><text string="CR"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P4"><text string="CC"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P5"><text string="CL"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27
28   <element name="P6"><text string="FR"><color red="1.0" green="1.0" blue="1.0" /></text></element>
29   <element name="P7"><text string="FC"><color red="1.0" green="1.0" blue="1.0" /></text></element>
30   <element name="P8"><text string="FL"><color red="1.0" green="1.0" blue="1.0" /></text></element>
31
32   <element name="P9"><text string="PR"><color red="1.0" green="1.0" blue="1.0" /></text></element>
33   <element name="P10"><text string="PC"><color red="1.0" green="1.0" blue="1.0" /></text></element>
34   <element name="P11"><text string="PL"><color red="1.0" green="1.0" blue="1.0" /></text></element>
35
36   <element name="P12"><text string="500"><color red="1.0" green="1.0" blue="1.0" /></text></element>
37   <element name="P13"><text string="300"><color red="1.0" green="1.0" blue="1.0" /></text></element>
38   <element name="P14"><text string="200"><color red="1.0" green="1.0" blue="1.0" /></text></element>   
39   <element name="P15"><text string="100"><color red="1.0" green="1.0" blue="1.0" /></text></element>
40   
41   <element name="P16"><text string="INSERT COIN"><color red="1.0" green="1.0" blue="1.0" /></text></element>
42   <element name="P17"><text string="NO CAMBIO"><color red="1.0" green="1.0" blue="1.0" /></text></element>   
43   <element name="P18"><text string="FUSE"><color red="1.0" green="1.0" blue="1.0" /></text></element>
44   <element name="P19"><text string="FALTA"><color red="1.0" green="1.0" blue="1.0" /></text></element>
45   
46   <element name="P20"><text string="MGA"><color red="1.0" green="1.0" blue="1.0" /></text></element>   
47   <element name="P21"><text string="50"><color red="1.0" green="1.0" blue="1.0" /></text></element>
48   <element name="P22"><text string="MGA"><color red="1.0" green="1.0" blue="1.0" /></text></element>
49   <element name="P23"><text string="25"><color red="1.0" green="1.0" blue="1.0" /></text></element>
50   <element name="P24"><text string="250"><color red="1.0" green="1.0" blue="1.0" /></text></element>   
51   <element name="P25"><text string="MGA"><color red="1.0" green="1.0" blue="1.0" /></text></element>
52   <element name="P26"><text string="100"><color red="1.0" green="1.0" blue="1.0" /></text></element>
53   <element name="P27"><text string="MGA"><color red="1.0" green="1.0" blue="1.0" /></text></element>
54   <element name="P28"><text string="25"><color red="1.0" green="1.0" blue="1.0" /></text></element>
55   
56   <element name="P29"><text string="Premio Sorpresa"><color red="1.0" green="1.0" blue="1.0" /></text></element>
57
58   
59   <view name="Default Layout">
60
61      <!-- Background -->
62      <backdrop element="background">
63         <bounds left="0" top="0" right="480" bottom="500" />
64      </backdrop>
65
66      <!-- LEDs -->
67
68      <bezel name="ML" element="red_led">
69         <bounds x="280" y="50" width="5" height="5" />
70      </bezel>
71      <bezel name="MC" element="red_led">
72         <bounds x="320" y="50" width="5" height="5" />
73      </bezel>
74      <bezel name="MR" element="red_led">
75         <bounds x="360" y="50" width="5" height="5" />
76      </bezel>
77     
78      <bezel name="CL" element="red_led">
79         <bounds x="280" y="100" width="5" height="5" />
80      </bezel>
81      <bezel name="CC" element="red_led">
82         <bounds x="320" y="100" width="5" height="5" />
83      </bezel>
84      <bezel name="CR" element="red_led">
85         <bounds x="360" y="100" width="5" height="5" />
86      </bezel>
87
88      <bezel name="FL" element="red_led">
89         <bounds x="280" y="150" width="5" height="5" />
90      </bezel>
91      <bezel name="FC" element="red_led">
92         <bounds x="320" y="150" width="5" height="5" />
93      </bezel>
94      <bezel name="FR" element="red_led">
95         <bounds x="360" y="150" width="5" height="5" />
96      </bezel>
97
98      <bezel name="PL" element="red_led">
99         <bounds x="280" y="200" width="5" height="5" />
100      </bezel>
101      <bezel name="PC" element="red_led">
102         <bounds x="320" y="200" width="5" height="5" />
103      </bezel>
104      <bezel name="PR" element="red_led">
105         <bounds x="360" y="200" width="5" height="5" />
106      </bezel>     
107     
108      <bezel name="500" element="red_led">
109         <bounds x="410" y="50" width="5" height="5" />
110      </bezel>
111      <bezel name="300" element="red_led">
112         <bounds x="410" y="100" width="5" height="5" />
113      </bezel>
114      <bezel name="200" element="red_led">
115         <bounds x="410" y="150" width="5" height="5" />
116      </bezel>     
117      <bezel name="100" element="red_led">
118         <bounds x="410" y="200" width="5" height="5" />
119      </bezel>     
120     
121      <bezel name="INSERTCOIN" element="red_led">
122         <bounds x="270" y="250" width="5" height="5" />
123      </bezel>
124      <bezel name="NOCAMBIO" element="red_led">
125         <bounds x="310" y="250" width="5" height="5" />
126      </bezel>
127      <bezel name="FUSE" element="red_led">
128         <bounds x="350" y="250" width="5" height="5" />
129      </bezel>     
130      <bezel name="FALTA" element="red_led">
131         <bounds x="400" y="250" width="5" height="5" />
132      </bezel>
133
134      <bezel name="MGA4" element="red_led">
135         <bounds x="35" y="350" width="30" height="30" />
136      </bezel>
137      <bezel name="50" element="red_led">
138         <bounds x="80" y="350" width="30" height="30" />
139      </bezel>
140      <bezel name="MGA3" element="red_led">
141         <bounds x="125" y="350" width="30" height="30" />
142      </bezel>     
143      <bezel name="252" element="red_led">
144         <bounds x="170" y="350" width="30" height="30" />
145      </bezel>
146      <bezel name="250" element="red_led">
147         <bounds x="215" y="350" width="30" height="30" />
148      </bezel>
149      <bezel name="MGA2" element="red_led">
150         <bounds x="260" y="350" width="30" height="30" />
151      </bezel>
152      <bezel name="1002" element="red_led">
153         <bounds x="305" y="350" width="30" height="30" />
154      </bezel>     
155      <bezel name="MGA" element="red_led">
156         <bounds x="350" y="350" width="30" height="30" />
157      </bezel>
158      <bezel name="25" element="red_led">
159         <bounds x="395" y="350" width="30" height="30" />
160      </bezel>
161
162     
163      <bezel name="MGA4" element="red_led">
164         <bounds x="40" y="50" width="5" height="5" />
165      </bezel>
166      <bezel name="50" element="red_led">
167         <bounds x="60" y="100" width="5" height="5" />
168      </bezel>
169      <bezel name="MGA3" element="red_led">
170         <bounds x="80" y="150" width="5" height="5" />
171      </bezel>     
172      <bezel name="252" element="red_led">
173         <bounds x="100" y="200" width="5" height="5" />
174      </bezel>
175      <bezel name="250" element="red_led">
176         <bounds x="120" y="250" width="5" height="5" />
177      </bezel>
178      <bezel name="MGA2" element="red_led">
179         <bounds x="140" y="200" width="5" height="5" />
180      </bezel>
181      <bezel name="1002" element="red_led">
182         <bounds x="160" y="150" width="5" height="5" />
183      </bezel>     
184      <bezel name="MGA" element="red_led">
185         <bounds x="180" y="100" width="5" height="5" />
186      </bezel>
187      <bezel name="25" element="red_led">
188         <bounds x="200" y="50" width="5" height="5" />
189      </bezel>
190
191      <bezel name="PREMIOS" element="red_led">
192         <bounds x="220" y="150" width="10" height="10" />
193      </bezel>
194     
195         
196     
197      <bezel element="P0"><bounds left="350" right="370" top="20" bottom="40" /></bezel>
198      <bezel element="P1"><bounds left="310" right="330" top="20" bottom="40" /></bezel>
199      <bezel element="P2"><bounds left="270" right="290" top="20" bottom="40" /></bezel>
200
201      <bezel element="P3"><bounds left="350" right="370" top="70" bottom="90" /></bezel>
202      <bezel element="P4"><bounds left="310" right="330" top="70" bottom="90" /></bezel>
203      <bezel element="P5"><bounds left="270" right="290" top="70" bottom="90" /></bezel>
204
205      <bezel element="P6"><bounds left="350" right="370" top="120" bottom="140" /></bezel>
206      <bezel element="P7"><bounds left="310" right="330" top="120" bottom="140" /></bezel>
207      <bezel element="P8"><bounds left="270" right="290" top="120" bottom="140" /></bezel>
208
209      <bezel element="P9"><bounds left="350" right="370" top="170" bottom="190" /></bezel>
210      <bezel element="P10"><bounds left="310" right="330" top="170" bottom="190" /></bezel>
211      <bezel element="P11"><bounds left="270" right="290" top="170" bottom="190" /></bezel>
212
213      <bezel element="P12"><bounds left="400" right="420" top="20" bottom="40" /></bezel>
214      <bezel element="P13"><bounds left="400" right="420" top="70" bottom="90" /></bezel>
215      <bezel element="P14"><bounds left="400" right="420" top="120" bottom="140" /></bezel>
216      <bezel element="P15"><bounds left="400" right="420" top="170" bottom="190" /></bezel>
217
218      <bezel element="P16"><bounds left="270" right="290" top="220" bottom="240" /></bezel>
219      <bezel element="P17"><bounds left="310" right="330" top="220" bottom="240" /></bezel>
220      <bezel element="P18"><bounds left="350" right="370" top="220" bottom="240" /></bezel>
221      <bezel element="P19"><bounds left="400" right="420" top="220" bottom="240" /></bezel>
222     
223      <bezel element="P20"><bounds left="35" right="55" top="320" bottom="340" /></bezel>
224      <bezel element="P21"><bounds left="80" right="100" top="320" bottom="340" /></bezel>
225      <bezel element="P22"><bounds left="125" right="145" top="320" bottom="340" /></bezel>
226      <bezel element="P23"><bounds left="170" right="190" top="320" bottom="340" /></bezel>     
227      <bezel element="P24"><bounds left="215" right="235" top="320" bottom="340" /></bezel>
228      <bezel element="P25"><bounds left="260" right="280" top="320" bottom="340" /></bezel>
229      <bezel element="P26"><bounds left="305" right="325" top="320" bottom="340" /></bezel>
230      <bezel element="P27"><bounds left="350" right="370" top="320" bottom="340" /></bezel>   
231      <bezel element="P28"><bounds left="395" right="415" top="320" bottom="340" /></bezel>   
232
233
234      <bezel element="P20"><bounds left="40" right="60" top="35" bottom="45" /></bezel>
235      <bezel element="P21"><bounds left="60" right="80" top="85" bottom="95" /></bezel>
236      <bezel element="P22"><bounds left="80" right="100" top="135" bottom="145" /></bezel>
237      <bezel element="P23"><bounds left="100" right="120" top="185" bottom="195" /></bezel>     
238      <bezel element="P24"><bounds left="120" right="140" top="235" bottom="245" /></bezel>
239      <bezel element="P25"><bounds left="140" right="160" top="185" bottom="195" /></bezel>
240      <bezel element="P26"><bounds left="160" right="180" top="135" bottom="145" /></bezel>
241      <bezel element="P27"><bounds left="180" right="200" top="85" bottom="95" /></bezel>   
242      <bezel element="P28"><bounds left="200" right="220" top="35" bottom="45" /></bezel>         
243
244      <bezel element="P29"><bounds left="190" right="260" top="130" bottom="150" /></bezel>     
245     
246   </view>
247</mamelayout>
Property changes on: trunk/src/mame/layout/mgavegas.lay
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/drivers/mgavegas.c
r0r32536
1/***********************************************************************************
2
3    mgavegas.c
4
5    Coin pusher
6
7    TODO
8    -better analog audio out/mixer
9   -some output (mostly not used)
10
11Ver. 1.33 have no speech and no change funcion implemented in software
12Ver. 2.1 and 2.3 have change function working and speech
13Ver. 2.2 should exist
14   
15************************************************************************************/
16
17#include "emu.h"
18
19#include "cpu/z80/z80.h"
20#include "sound/ay8910.h"
21#include "sound/msm5205.h"
22#include "machine/nvram.h"
23#include "machine/ticket.h"
24#include "sound/flt_rc.h"
25#include "mgavegas.lh"
26
27/****************************
28*    LOG defines            *
29****************************/
30
31#define LOG_AY8910    0
32#define LOG_MSM5205 0
33#define LOG_CSO1   0
34#define LOG_CSO2   0
35
36
37/****************************
38*    Clock defines          *
39****************************/
40#define MAIN_XTAL XTAL_8MHz
41#define CPU_CLK MAIN_XTAL/2
42#define AY_CLK  CPU_CLK/2
43#define MSM_CLK   384000
44
45
46class mgavegas_state : public driver_device
47{
48public:
49   mgavegas_state(const machine_config &mconfig, device_type type, const char *tag)
50      : driver_device(mconfig, type, tag),
51      m_maincpu(*this, "maincpu"),
52      m_ay(*this, "aysnd"),
53      m_msm(*this, "5205"),
54      m_ticket(*this, "hopper"),
55      m_filter1(*this, "filter1"),
56      m_filter2(*this, "filter2")
57     
58     
59   { }
60   UINT8 m_int;
61   
62   //OUT1
63   UINT8 m_ckmod;
64   UINT8 m_dmod;
65   UINT8 m_emod;
66   UINT8 m_inh;
67   UINT8 m_hop;
68   UINT8 m_seg;
69   UINT8 m_printer;
70   UINT8 m_auxp;
71   
72   //helper...
73   UINT8 m_old_ckmod;
74   UINT8 m_old_emod;
75
76   //OUT2
77   UINT8 m_bobina_ctrl;
78   UINT8 m_timbre;
79   UINT8 m_coil_1;
80   UINT8 m_coil_2;
81   UINT8 m_coil_3;
82   UINT8 m_cont_ent;
83   UINT8 m_cont_sal;
84   UINT8 m_cont_caj;
85   
86   //lamps out
87   UINT64 m_custom_data;
88   UINT8 m_auxs;
89   UINT8 m_anal;
90   UINT8 m_anacl;
91   UINT8 m_anacr;
92   UINT8 m_anar;
93   UINT8 m_pl;
94   UINT8 m_pc;
95   UINT8 m_pr;
96   UINT8 m_luz_250_rul;
97   UINT8 m_luz_100_rul;
98   UINT8 m_luz_50_rlul;
99   UINT8 m_luz_25_lrul;
100   UINT8 m_luz_25_rrul;
101   UINT8 m_fl;
102   UINT8 m_fc;
103   UINT8 m_fr;
104   UINT8 m_insert_coin;
105   UINT8 m_no_cambio;
106   UINT8 m_fuse;
107   UINT8 m_falta;
108   UINT8 m_anag;
109   UINT8 m_cl;
110   UINT8 m_cc;
111   UINT8 m_cr;
112   UINT8 m_premio_s;
113   UINT8 m_100;
114   UINT8 m_200;
115   UINT8 m_300;
116   UINT8 m_500;
117   UINT8 m_ml;
118   UINT8 m_mc;
119   UINT8 m_mr;
120   
121   DECLARE_READ8_MEMBER(start_read);
122
123   DECLARE_WRITE8_MEMBER(w_a0);
124   DECLARE_READ8_MEMBER(r_a0);
125   DECLARE_WRITE8_MEMBER(cso1_w);
126   DECLARE_WRITE8_MEMBER(cso2_w);
127   DECLARE_WRITE8_MEMBER(csoki_w);
128   DECLARE_READ8_MEMBER(csoki_r);   
129   
130   DECLARE_READ8_MEMBER(ay8910_a_r);
131   DECLARE_READ8_MEMBER(ay8910_b_r);
132   
133   DECLARE_DRIVER_INIT(mgavegas);
134   DECLARE_DRIVER_INIT(mgavegas21);
135   DECLARE_DRIVER_INIT(mgavegas133);
136     
137   TIMER_DEVICE_CALLBACK_MEMBER(int_0);
138   
139   
140protected:
141
142   // devices
143   required_device<cpu_device> m_maincpu;
144   required_device<ay8910_device> m_ay;
145   required_device<msm5205_device> m_msm;
146   required_device<ticket_dispenser_device> m_ticket;
147   required_device<filter_rc_device> m_filter1;
148   required_device<filter_rc_device> m_filter2;
149
150   // driver_device overrides
151   virtual void machine_reset();
152   void update_custom();
153   void update_lamp();
154
155
156private:
157};
158
159
160void mgavegas_state::update_lamp(){
161
162   //output_set_value("AUXS", m_auxs);   //unused
163   output_set_value("MGA4", m_anal&0x01);
164   output_set_value("MGA3", m_anacl&0x01);
165   output_set_value("MGA2", m_anacr&0x01);
166   output_set_value("MGA", m_anar&0x01);
167   output_set_value("PL", m_pl&0x01);
168   output_set_value("PC", m_pc&0x01);
169   output_set_value("PR", m_pr&0x01);
170   output_set_value("250", m_luz_250_rul&0x01);
171   output_set_value("1002", m_luz_100_rul&0x01);
172   output_set_value("50", m_luz_50_rlul&0x01);
173   output_set_value("252", m_luz_25_lrul&0x01);
174   output_set_value("25", m_luz_25_rrul&0x01);   
175   output_set_value("FL", m_fl&0x01);
176   output_set_value("FC", m_fc&0x01);
177   output_set_value("FR", m_fr&0x01);
178   output_set_value("INSERTCOIN", m_insert_coin&0x01);
179   output_set_value("NOCAMBIO", m_no_cambio&0x01);
180   output_set_value("FUSE", m_fuse&0x01);
181   output_set_value("FALTA", m_falta&0x01);
182   //output_set_value("ANAG", m_anag&0x01);   //unused
183   output_set_value("CL", m_cl&0x01);
184   output_set_value("CC", m_cc&0x01);
185   output_set_value("CR", m_cr&0x01);
186   output_set_value("PREMIOS", m_premio_s&0x01);
187   output_set_value("100", m_100&0x01);
188   output_set_value("200", m_200&0x01);
189   output_set_value("300", m_300&0x01);
190   output_set_value("500", m_500&0x01);
191   output_set_value("ML", m_ml&0x01);
192   output_set_value("MC", m_mc&0x01);
193   output_set_value("MR", m_mr&0x01);
194/*
195   m_inh=BIT(data, 3);
196   m_printer=BIT(data, 6);   //not_used
197   m_auxp=BIT(data, 7);   //not_used
198   
199   m_bobina_ctrl=BIT(data, 0);
200   m_timbre=BIT(data, 1);
201   m_coil_1=BIT(data, 2);
202   m_coil_2=BIT(data, 3);
203   m_coil_3=BIT(data, 4);
204   m_cont_ent=BIT(data, 5);
205   m_cont_sal=BIT(data, 6);
206   m_cont_caj=BIT(data, 7);   
207*/
208}
209
210
211void mgavegas_state::update_custom(){
212UINT64 tmp;
213
214   if( (m_ckmod==1) & (m_old_ckmod==0) ){
215      //vadid clock, sample the data
216      m_custom_data=(m_custom_data<<1)|(m_dmod&0x01);
217   }
218
219   if( (m_emod==0) & (m_old_emod==1) ){
220      //valid emod, check for valid data and updatae custom status   this is how the hw works
221      if( (BIT(m_custom_data, 32)==0) && (BIT(m_custom_data, 33)==0) && (BIT(m_custom_data, 34)==0) && (BIT(m_custom_data, 35)==0) ){
222            tmp=~m_custom_data;
223            m_auxs=         tmp&0x00000001;
224//            m_anal=         (tmp&0x00000002)>>1;   //schematics error!!!
225//            m_anacl=      (tmp&0x00000004)>>2;   //schematics error!!!
226            m_luz_50_rlul=   (tmp&0x00000002)>>1;
227            m_luz_25_lrul=   (tmp&0x00000004)>>2;
228            m_anacr=      (tmp&0x00000008)>>3;   
229            m_anar=         (tmp&0x00000010)>>4;
230            m_pl=         (tmp&0x00000020)>>5;
231            m_pc=         (tmp&0x00000040)>>6;
232            m_pr=         (tmp&0x00000080)>>7;
233            m_luz_250_rul=   (tmp&0x00000100)>>8;
234            m_luz_100_rul=   (tmp&0x00000200)>>9;
235//            m_luz_50_rlul=   (tmp&0x00000400)>>10;   //schematics error!!!
236//            m_luz_25_lrul=   (tmp&0x00000800)>>11;   //schematics error!!!
237            m_anacl=      (tmp&0x00000400)>>10;
238            m_anal=         (tmp&0x00000800)>>11;
239            m_luz_25_rrul=   (tmp&0x00001000)>>12;
240            m_fl=         (tmp&0x00002000)>>13;
241            m_fc=         (tmp&0x00004000)>>14;
242            m_fr=         (tmp&0x00008000)>>15;
243            m_insert_coin=   (tmp&0x00010000)>>16;
244            m_no_cambio=   (tmp&0x00020000)>>17;
245            m_fuse=         (tmp&0x00040000)>>18;
246            m_falta=      (tmp&0x00080000)>>19;
247            m_anag=         (tmp&0x00100000)>>20;
248            m_cl=         (tmp&0x00200000)>>21;
249            m_cc=         (tmp&0x00400000)>>22;
250            m_cr=         (tmp&0x00800000)>>23;
251            m_premio_s=      (tmp&0x01000000)>>24;
252            m_100=         (tmp&0x02000000)>>25;
253            m_200=         (tmp&0x04000000)>>26;
254            m_300=         (tmp&0x08000000)>>27;
255            m_500=         (tmp&0x10000000)>>28;
256            m_ml=         (tmp&0x20000000)>>29;
257            m_mc=         (tmp&0x40000000)>>30;
258            m_mr=         (tmp&0x80000000)>>31;
259
260            update_lamp();
261      }
262   }
263   
264   m_old_ckmod=m_ckmod;
265   m_old_emod=m_emod;
266}
267
268
269READ8_MEMBER( mgavegas_state::start_read )
270{
271//   in HW it look for /IOREQ going down to clear the IRQ line
272   if (m_int){
273      m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
274      m_int=0;
275   }
276   return 0xed;
277}
278
279
280
281/****************************
282*    Read/Write Handlers    *
283****************************/
284READ8_MEMBER(mgavegas_state::r_a0)
285{
286UINT8 ret=0;
287
288     
289   switch (offset&0x03)
290   {
291      case 1: //bdir=0   BC1=1
292            ret=m_ay->data_r(space,0);
293            break;
294      default:
295            if (LOG_AY8910)
296               logerror("AY 3-8910 area unknow read!!!\n");
297            break;
298   }
299   
300   if (LOG_AY8910)
301      logerror("read from %04X return %02X\n",offset+0xa000,ret);   
302   return ret;
303}
304
305WRITE8_MEMBER(mgavegas_state::w_a0)
306{
307
308   if (LOG_AY8910)
309      logerror("write to %04X data = %02X \n",offset+0xa000,data);
310
311   switch (offset&0x03)
312   {
313      case 0: //bdir=1   bc1=1
314            m_ay->address_w(space,0,data );
315            break;
316      case 2: //bdir=1   bc1=0
317            m_ay->data_w(space,0,data );
318            break;
319/*
320      case 1: //bdir=0   bc1=1
321            break;
322      case 3: //bdir=0   bc1=0
323            break;
324*/
325      default:
326            if (LOG_AY8910)
327               logerror("AY 3-8910 area unknow write!!!\n");
328            break;
329   }
330}
331
332
333
334
335
336READ8_MEMBER(mgavegas_state::csoki_r)
337{
338UINT8 ret=0;
339
340   if (LOG_MSM5205)
341      logerror("read from %04X return %02X\n",offset+0xc800,ret);   
342   return ret;
343}
344
345WRITE8_MEMBER(mgavegas_state::csoki_w)
346{
347
348   if (LOG_MSM5205)
349      logerror("MSM5205 write to %04X data = %02X \n",offset+0xc800,data);
350   m_msm->reset_w(data&0x10>>4);
351   m_msm->data_w(data&0x0f);
352}
353
354
355WRITE8_MEMBER(mgavegas_state::cso1_w)
356{
357   int hopper_data = 0x00;
358   if (LOG_CSO1)
359      logerror("write to CSO1 data = %02X\n",data);
360     
361   m_ckmod=BIT(data, 0);
362   m_dmod=BIT(data, 1);
363   m_emod=BIT(data, 2);
364   m_inh=BIT(data, 3);
365   m_hop=BIT(data, 4);
366   m_seg=BIT(data, 5);
367   m_printer=BIT(data, 6);   //not_used
368   m_auxp=BIT(data, 7);   //not_used
369
370   update_custom();
371
372   hopper_data=(m_hop&0x01)<<7;
373   m_ticket->write(machine().driver_data()->generic_space(), 0, hopper_data);
374}
375
376WRITE8_MEMBER(mgavegas_state::cso2_w)
377{
378   if (LOG_CSO2)
379      logerror("write to CSO2 data = %02X\n",data);
380     
381   m_bobina_ctrl=BIT(data, 0);
382   m_timbre=BIT(data, 1);
383   m_coil_1=BIT(data, 2);
384   m_coil_2=BIT(data, 3);
385   m_coil_3=BIT(data, 4);
386   m_cont_ent=BIT(data, 5);
387   m_cont_sal=BIT(data, 6);
388   m_cont_caj=BIT(data, 7);
389
390   update_lamp();
391}
392
393
394READ8_MEMBER(mgavegas_state::ay8910_a_r)
395{
396   UINT8 ret=0xff;
397
398   ret=ioport("INA")->read();
399
400   if (LOG_AY8910)
401      logerror("read from port A return %02X\n",ret);
402
403   return ret;
404}
405
406READ8_MEMBER(mgavegas_state::ay8910_b_r)
407{
408   UINT8 ret=0xff;
409
410   ret=ioport("DSW1")->read();
411
412   if (LOG_AY8910)
413      logerror("read from port B return %02X\n",ret);
414     
415   return ret;
416}
417
418/*************************
419* Memory Map Information *
420*************************/
421
422static ADDRESS_MAP_START( mgavegas_map, AS_PROGRAM, 8, mgavegas_state )
423   AM_RANGE(0x0000, 0x7fff) AM_ROM
424   AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("nvram")
425   AM_RANGE(0xa000, 0xa003) AM_READWRITE(r_a0,w_a0)         // AY-3-8910
426   AM_RANGE(0xc000, 0xc001) AM_WRITE(cso1_w)               // /CSout1
427   AM_RANGE(0xc400, 0xc401) AM_WRITE(cso2_w)               // /CSout2
428   AM_RANGE(0xc800, 0xc801) AM_READWRITE(csoki_r,csoki_w)      // /CSoki
429   //AM_RANGE(0xcc00, 0xcc01) AM_READWRITE(cso3_r,cso3_w)      // /CSout3 unused
430   //AM_RANGE(0xe000, 0xe003) AM_READWRITE(r_e0,w_e0)         // /CSaux unused
431ADDRESS_MAP_END
432
433
434
435/*************************
436*      Input Ports       *
437*************************/
438
439
440static INPUT_PORTS_START( mgavegas )
441
442   PORT_START("INA")
443   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) //200ptas in for change with 8 25 ptas coins
444   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) //25 ptas in to play
445   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) //100ptas in for change with 4 25 ptas coins
446   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER )
447   PORT_BIT( 0x10, IP_ACTIVE_LOW,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
448   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_NAME("25 ptas level")      //"hack" hopper always full
449   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_NAME("Door")     
450   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_NAME("Channel")
451
452   PORT_START("DSW1")
453   PORT_DIPNAME( 0x07, 0x02, "Percentage" )
454   PORT_DIPSETTING(    0x00, "70%" )   
455   PORT_DIPSETTING(    0x01, "70%" )
456   PORT_DIPSETTING(    0x02, "72%" )
457   PORT_DIPSETTING(    0x03, "74%" )
458   PORT_DIPSETTING(    0x04, "76%" )
459   PORT_DIPSETTING(    0x05, "78%" )
460   PORT_DIPSETTING(    0x06, "80%" )
461   PORT_DIPSETTING(    0x07, "82%" )
462   
463   PORT_DIPNAME( 0x08, 0x08, "Sound" )
464   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
465   PORT_DIPSETTING(    0x00, DEF_STR( On )  )
466   
467   PORT_DIPNAME( 0x10, 0x10, "Speech" )
468   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
469   PORT_DIPSETTING(    0x00, DEF_STR( On )  )
470   
471   PORT_DIPNAME( 0x60, 0x00, "Jackpot" )
472   PORT_DIPSETTING(    0x40, "Jackpot 1%" )
473   PORT_DIPSETTING(    0x60, "Jackpot 2,5%" )
474   PORT_DIPSETTING(    0x00, "Jackpot 5%" )
475   //PORT_DIPSETTING(    0x20, DEF_STR( On ) )   //unlisted
476   
477   PORT_DIPNAME( 0x80, 0x80, "Reset" )
478   PORT_DIPSETTING(    0x80, "Normal Gameplay" )
479   PORT_DIPSETTING(    0x00, "Reset" )
480   
481INPUT_PORTS_END
482
483/******************************
484*   machine reset             *
485******************************/
486
487void mgavegas_state::machine_reset()
488{
489
490   m_int=1;
491   m_custom_data=0xffffffffffffffff;
492   
493   m_old_ckmod=1;
494   m_old_emod=0;
495
496   m_ckmod=0;
497   m_dmod=0;
498   m_emod=0;
499   m_inh=0;
500   m_hop=0;
501   m_seg=0;
502   m_printer=0;
503   m_auxp=0;
504   
505   
506   m_bobina_ctrl=0;
507   m_timbre=0;
508   m_coil_1=0;
509   m_coil_2=0;
510   m_coil_3=0;
511   m_cont_ent=0;
512   m_cont_sal=0;
513   m_cont_caj=0;
514   
515   m_auxs=0;
516   m_anal=0;
517   m_anacl=0;
518   m_anacr=0;
519   m_anar=0;
520   m_pl=0;
521   m_pc=0;
522   m_pr=0;
523   m_luz_250_rul=0;
524   m_luz_100_rul=0;
525   m_luz_50_rlul=0;
526   m_luz_25_lrul=0;
527   m_luz_25_rrul=0;
528   m_fl=0;
529   m_fc=0;
530   m_fr=0;
531   m_insert_coin=0;
532   m_no_cambio=0;
533   m_fuse=0;
534   m_falta=0;
535   m_anag=0;
536   m_cl=0;
537   m_cc=0;
538   m_cr=0;
539   m_premio_s=0;
540   m_100=0;
541   m_200=0;
542   m_300=0;
543   m_500=0;
544   m_ml=0;
545   m_mc=0;
546   m_mr=0;   
547
548   m_filter1->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 0, 0, CAP_N(1) );    /* RC out of MSM5205 R=1K C=1nF */
549   m_filter2->filter_rc_set_RC(FLT_RC_HIGHPASS, 3846, 0, 0, CAP_N(100 ));   /*ALP3B active-hybrid filter fc=2.6Khz 2poles???*/
550}
551
552
553
554/******************************
555*   machine init             *
556******************************/
557
558DRIVER_INIT_MEMBER(mgavegas_state,mgavegas21)
559{
560   //hack to clear the irq on reti instruction
561   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00ea, 0x00ea, read8_delegate(FUNC(mgavegas_state::start_read), this));
562}
563
564DRIVER_INIT_MEMBER(mgavegas_state,mgavegas)
565{
566   //hack to clear the irq on reti instruction
567   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e2, 0x00e2, read8_delegate(FUNC(mgavegas_state::start_read), this));
568}
569
570
571TIMER_DEVICE_CALLBACK_MEMBER( mgavegas_state::int_0 )
572{
573   if(m_int==0){
574      m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
575   }
576}
577
578DRIVER_INIT_MEMBER(mgavegas_state,mgavegas133)
579{
580   //hack to clear the irq on reti instruction
581   m_maincpu->space(AS_PROGRAM).install_read_handler(0x00dd, 0x00dd, read8_delegate(FUNC(mgavegas_state::start_read), this));   
582}
583
584/*************************
585*    Machine Drivers     *
586*************************/
587
588
589static MACHINE_CONFIG_START( mgavegas, mgavegas_state )
590   /* basic machine hardware */
591   MCFG_CPU_ADD("maincpu", Z80, CPU_CLK)
592   MCFG_CPU_PROGRAM_MAP(mgavegas_map)
593   
594   MCFG_TIMER_DRIVER_ADD_PERIODIC("int_0", mgavegas_state, int_0, attotime::from_hz(6000))  //6KHz from MSM5205 /VCK
595   
596   MCFG_NVRAM_ADD_1FILL("nvram")
597   
598   MCFG_TICKET_DISPENSER_ADD("hopper",attotime::from_msec(200),TICKET_MOTOR_ACTIVE_HIGH,TICKET_STATUS_ACTIVE_LOW);
599
600   /* sound hardware */
601   
602   MCFG_SPEAKER_STANDARD_MONO("mono")
603   MCFG_SOUND_ADD("aysnd", AY8910, AY_CLK)
604   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.3)
605   MCFG_AY8910_PORT_A_READ_CB(READ8(mgavegas_state, ay8910_a_r))
606   MCFG_AY8910_PORT_B_READ_CB(READ8(mgavegas_state, ay8910_b_r))
607   
608   MCFG_SOUND_ADD("5205", MSM5205, MSM_CLK) 
609   MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S64_4B)
610   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 2.0)
611   
612
613   MCFG_FILTER_RC_ADD("filter1", 0)
614   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter2",2.0)
615   MCFG_FILTER_RC_ADD("filter2", 0)
616   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
617
618   
619   /* Video */
620   MCFG_DEFAULT_LAYOUT(layout_mgavegas)
621   
622MACHINE_CONFIG_END
623
624
625/*************************
626*        Rom Load        *
627*************************/
628
629
630ROM_START(mgavegas)
631   ROM_REGION(0x8000, "maincpu", 0)
632   ROM_LOAD("vegas1-k2.3.bin", 0x0000, 0x8000, CRC(418b1d04) SHA1(27669a85ed52d5dab25d6ebea6ef3d9b01a4795d) )
633   
634   ROM_REGION( 0x2000, "nvram", 0 )
635   ROM_LOAD( "mgavegas23.nv", 0x0000, 0x2000, CRC(d0a175b0) SHA1(7698135dbc020f459fdaa660bf488595b67b77d0) )  //default setting
636ROM_END
637
638ROM_START(mgavegas21)
639   ROM_REGION(0x8000, "maincpu", 0)
640   ROM_LOAD("vegas1-2.1.bin", 0x0000, 0x8000, CRC(a7e988a4) SHA1(32fa1684c79f4a132553fa41006f243d4b51cef6) )
641   
642   ROM_REGION( 0x2000, "nvram", 0 )
643   ROM_LOAD( "mgavegas21.nv", 0x0000, 0x2000, CRC(a4471550) SHA1(b8527e9158b5563460febd1009b44c8d74dbae4e) )  //default setting
644ROM_END
645
646ROM_START(mgavegas133)
647   ROM_REGION(0x8000, "maincpu", 0)
648   ROM_LOAD("vegas1-1.33.bin", 0x0000, 0x8000, CRC(1eea7f0f) SHA1(6fb54b8e2ab19e5378a95192e5007175ad76bc7a) )
649   
650   ROM_REGION( 0x2000, "nvram", 0 )
651   ROM_LOAD( "mgavegas133.nv", 0x0000, 0x2000, CRC(20fe4db7) SHA1(887b69468ac7e6490827a06cd1f0ff15228a9c73) )  //default setting
652ROM_END
653
654
655/*************************
656*      Game Drivers      *
657*************************/
658/*    YEAR  NAME            PARENT        MACHINE   INPUT     STATE          INIT          ROT     COMPANY     FULLNAME    FLAGS*/
659GAME( 1985, mgavegas,       0,         mgavegas, mgavegas, mgavegas_state, mgavegas,    ROT0,   "MGA",    "Vegas 1 (Ver 2.3 dual coin pulse, shorter)", GAME_MECHANICAL )
660GAME( 1985, mgavegas21,      mgavegas,     mgavegas, mgavegas, mgavegas_state, mgavegas21, ROT0,   "MGA",    "Vegas 1 (Ver 2.1 dual coin pulse, longer)", GAME_MECHANICAL )
661GAME( 1985, mgavegas133,    mgavegas,     mgavegas, mgavegas, mgavegas_state, mgavegas133,ROT0,   "MGA",    "Vegas 1 (Ver 1.33 single coin pulse)", GAME_MECHANICAL )
Property changes on: trunk/src/mame/drivers/mgavegas.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/mame.lst
r32535r32536
3176331763// Valco fireball
3176431764fireball
3176531765
31766//M.G.A.
31767mgavegas
31768mgavegas21
31769mgavegas133
31770
3176631771amusco     // 1987, Amusco.
3176731772cocoloco   // 198?, Petaco S.A.
trunk/src/mame/mame.mak
r32535r32536
23502350   $(DRIVERS)/malzak.o $(VIDEO)/malzak.o \
23512351   $(DRIVERS)/manohman.o \
23522352   $(DRIVERS)/mcatadv.o $(VIDEO)/mcatadv.o \
2353   $(DRIVERS)/mgavegas.o \
23532354   $(DRIVERS)/meyc8080.o \
23542355   $(DRIVERS)/meyc8088.o \
23552356   $(DRIVERS)/micro3d.o $(MACHINE)/micro3d.o $(VIDEO)/micro3d.o $(AUDIO)/micro3d.o \
r32535r32536
27142715
27152716$(DRIVERS)/mgames.o:    $(LAYOUT)/mgames.lh
27162717
2718$(DRIVERS)/mgavegas.o:  $(LAYOUT)/mgavegas.lh
2719
27172720$(DRIVERS)/mpu3.o:      $(LAYOUT)/mpu3.lh
27182721
27192722$(DRIVERS)/mpu4mod2sw.o:    $(LAYOUT)/connect4.lh \

Previous 199869 Revisions Next


© 1997-2024 The MAME Team