Previous 199869 Revisions Next

r31704 Tuesday 19th August, 2014 at 10:51:28 UTC by Robbbert
ltd.c : atlantis, black hole, working with no sound.
[src/mame/drivers]ltd.c
[src/mame/layout]ltd.lay

trunk/src/mame/layout/ltd.lay
r31703r31704
3030
3131      <!-- Background -->
3232      <backdrop element="background">
33         <bounds left="0" top="20" right="318" bottom="394" />
33         <bounds left="0" top="20" right="274" bottom="394" />
3434      </backdrop>
3535
3636      <!-- LEDs -->
3737
3838      <!-- Player 1 Score -->
3939
40      <bezel name="digit6" element="digit">
40      <bezel name="digit5" element="digit">
4141         <bounds left="10" top="45" right="44" bottom="84" />
4242      </bezel>
43      <bezel name="digit5" element="digit">
43      <bezel name="digit4" element="digit">
4444         <bounds left="54" top="45" right="88" bottom="84" />
4545      </bezel>
46      <bezel name="digit4" element="digit">
46      <bezel name="digit3" element="digit">
4747         <bounds left="98" top="45" right="132" bottom="84" />
4848      </bezel>
49      <bezel name="digit3" element="digit">
49      <bezel name="digit2" element="digit">
5050         <bounds left="142" top="45" right="176" bottom="84" />
5151      </bezel>
52      <bezel name="digit2" element="digit">
52      <bezel name="digit1" element="digit">
5353         <bounds left="186" top="45" right="220" bottom="84" />
5454      </bezel>
55      <bezel name="digit1" element="digit">
55      <bezel name="digit0" element="digit">
5656         <bounds left="230" top="45" right="264" bottom="84" />
5757      </bezel>
58      <bezel name="digit0" element="digit">
59         <bounds left="274" top="45" right="308" bottom="84" />
60      </bezel>
6158
6259      <!-- Player 2 Score -->
63      <bezel name="digit16" element="digit">
60      <bezel name="digit15" element="digit">
6461         <bounds left="10" top="105" right="44" bottom="144" />
6562      </bezel>
66      <bezel name="digit15" element="digit">
63      <bezel name="digit14" element="digit">
6764         <bounds left="54" top="105" right="88" bottom="144" />
6865      </bezel>
69      <bezel name="digit14" element="digit">
66      <bezel name="digit13" element="digit">
7067         <bounds left="98" top="105" right="132" bottom="144" />
7168      </bezel>
72      <bezel name="digit13" element="digit">
69      <bezel name="digit12" element="digit">
7370         <bounds left="142" top="105" right="176" bottom="144" />
7471      </bezel>
75      <bezel name="digit12" element="digit">
72      <bezel name="digit11" element="digit">
7673         <bounds left="186" top="105" right="220" bottom="144" />
7774      </bezel>
78      <bezel name="digit11" element="digit">
75      <bezel name="digit10" element="digit">
7976         <bounds left="230" top="105" right="264" bottom="144" />
8077      </bezel>
81      <bezel name="digit10" element="digit">
82         <bounds left="274" top="105" right="308" bottom="144" />
83      </bezel>
8478
8579      <!-- Player 3 Score -->
86      <bezel name="digit26" element="digit">
80      <bezel name="digit25" element="digit">
8781         <bounds left="10" top="165" right="44" bottom="204" />
8882      </bezel>
89      <bezel name="digit25" element="digit">
83      <bezel name="digit24" element="digit">
9084         <bounds left="54" top="165" right="88" bottom="204" />
9185      </bezel>
92      <bezel name="digit24" element="digit">
86      <bezel name="digit23" element="digit">
9387         <bounds left="98" top="165" right="132" bottom="204" />
9488      </bezel>
95      <bezel name="digit23" element="digit">
89      <bezel name="digit22" element="digit">
9690         <bounds left="142" top="165" right="176" bottom="204" />
9791      </bezel>
98      <bezel name="digit22" element="digit">
92      <bezel name="digit21" element="digit">
9993         <bounds left="186" top="165" right="220" bottom="204" />
10094      </bezel>
101      <bezel name="digit21" element="digit">
95      <bezel name="digit20" element="digit">
10296         <bounds left="230" top="165" right="264" bottom="204" />
10397      </bezel>
104      <bezel name="digit20" element="digit">
105         <bounds left="274" top="165" right="308" bottom="204" />
106      </bezel>
10798
10899      <!-- Player 4 Score -->
109      <bezel name="digit36" element="digit">
100      <bezel name="digit35" element="digit">
110101         <bounds left="10" top="225" right="44" bottom="264" />
111102      </bezel>
112      <bezel name="digit35" element="digit">
103      <bezel name="digit34" element="digit">
113104         <bounds left="54" top="225" right="88" bottom="264" />
114105      </bezel>
115      <bezel name="digit34" element="digit">
106      <bezel name="digit33" element="digit">
116107         <bounds left="98" top="225" right="132" bottom="264" />
117108      </bezel>
118      <bezel name="digit33" element="digit">
109      <bezel name="digit32" element="digit">
119110         <bounds left="142" top="225" right="176" bottom="264" />
120111      </bezel>
121      <bezel name="digit32" element="digit">
112      <bezel name="digit31" element="digit">
122113         <bounds left="186" top="225" right="220" bottom="264" />
123114      </bezel>
124      <bezel name="digit31" element="digit">
115      <bezel name="digit30" element="digit">
125116         <bounds left="230" top="225" right="264" bottom="264" />
126117      </bezel>
127      <bezel name="digit30" element="digit">
128         <bounds left="274" top="225" right="308" bottom="264" />
129      </bezel>
130118
131119      <!-- Credits and Balls -->
132      <bezel name="digit44" element="digit">
133         <bounds left="10" top="345" right="44" bottom="384" />
134      </bezel>
135      <bezel name="digit43" element="digit">
120      <bezel name="digit41" element="digit">
136121         <bounds left="54" top="345" right="88" bottom="384" />
137122      </bezel>
138      <bezel name="digit41" element="digit">
139         <bounds left="186" top="345" right="220" bottom="384" />
140      </bezel>
141123      <bezel name="digit40" element="digit">
142124         <bounds left="230" top="345" right="264" bottom="384" />
143125      </bezel>
r31703r31704
148130      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
149131      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
150132      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
151      <bezel name="led0" element="red_led">
152         <bounds left="110" right="125" top="360" bottom="375" /></bezel>
153133   </view>
154134</mamelayout>
trunk/src/mame/drivers/ltd.c
r31703r31704
33  PINBALL
44  LTD (Brazil)
55
6  Not much info available for these machines.
6  Not much info available for these machines. System 3 has a homebrew partial
7  schematic available (with some obvious mistakes). There's also a manual
8  (looks like Portuguese?), but no schematic. No info on system 4 has been found.
9
710  Used PinMAME as a reference.
811
12  System 3: NMI is connected "FICHA" (coin slot). RST is connected to "TILT".
13
14  The manual mentions these machines:
15  Arizona, Atlantis, Galaxia, Hustler, Martian Queen.
16
17  PinMAME has a large list of games, these are:
18  1977: O Gaucho, Samba
19  1978: Grand Prix
20  1981: Al Capone, Amazon, Arizona, Atlantis, Black Hole, Carnaval no Rio,
21        Cowboy Eight Ball, Disco Dancing, Force, Galaxia, Haunted Hotel,
22        Hustler, King Kong, Kung Fu, Mr. & Mrs. Pec-Men, Martian Queen,
23        Space Poker, Time Machine, Zephy
24  1982: Alien Warrior, Columbia, Cowboy 2, Trick Shooter
25  (unknown year): Viking King
26
927ToDo:
10- Everything
28- System 4, everything
29- System 3, sound
30- Zephy, no playfield inputs
31- Outputs
32- Mechanical
1133
12
1334********************************************************************************/
1435
1536#include "machine/genpin.h"
1637#include "cpu/m6800/m6800.h"
38#include "sound/ay8910.h"
1739#include "ltd.lh"
1840
1941class ltd_state : public genpin_class
r31703r31704
2547      , m_p_ram(*this, "nvram")
2648   { }
2749
50   DECLARE_DRIVER_INIT(atla_ltd);
51   DECLARE_DRIVER_INIT(bhol_ltd);
52   DECLARE_DRIVER_INIT(zephy);
2853   DECLARE_DRIVER_INIT(ltd);
2954   DECLARE_READ8_MEMBER(io_r);
3055   DECLARE_WRITE8_MEMBER(io_w);
56   DECLARE_INPUT_CHANGED_MEMBER(ficha);
3157   TIMER_DEVICE_CALLBACK_MEMBER(timer_r);
3258private:
59   bool m_timer_r;
60   UINT8 m_game;
3361   UINT8 m_out_offs;
3462   virtual void machine_reset();
3563   required_device<cpu_device> m_maincpu;
r31703r31704
3967
4068static ADDRESS_MAP_START( ltd3_map, AS_PROGRAM, 8, ltd_state )
4169   AM_RANGE(0x0000, 0x007f) AM_RAM AM_SHARE("nvram") // internal to the cpu
42   AM_RANGE(0x0080, 0x00ff) AM_READ(io_r)
70   AM_RANGE(0x0080, 0x0087) AM_MIRROR(0x78) AM_READ(io_r)
4371   AM_RANGE(0x0800, 0x2fff) AM_WRITE(io_w)
4472   AM_RANGE(0xc000, 0xcfff) AM_ROM AM_MIRROR(0x3000) AM_REGION("roms", 0)
4573ADDRESS_MAP_END
4674
4775static ADDRESS_MAP_START( ltd4_map, AS_PROGRAM, 8, ltd_state )
48   AM_RANGE(0x0000, 0x01ff) AM_RAM
76   AM_RANGE(0x0000, 0x001f) AM_RAM // internal to the cpu
77   AM_RANGE(0x0080, 0x00ff) AM_RAM
78   AM_RANGE(0x0100, 0x01ff) AM_RAM AM_SHARE("nvram")
4979   //AM_RANGE(0x0800, 0x0800) AM_WRITE(cycle_reset_w)
50   //AM_RANGE(0x0c00, 0x0c00) AM_WRITE(ay8910_1_reset)
51   //AM_RANGE(0x1000, 0x1000) AM_WRITE(ay8910_0_ctrl_w)
52   //AM_RANGE(0x1400, 0x1400) AM_WRITE(ay8910_0_reset)
53   //AM_RANGE(0x1800, 0x1800) AM_WRITE(ay8910_1_ctrl_w)
80   AM_RANGE(0x0c00, 0x0c00) AM_DEVWRITE("aysnd_1", ay8910_device, reset_w)
81   AM_RANGE(0x1000, 0x1000) AM_DEVWRITE("aysnd_0", ay8910_device, address_w)
82   AM_RANGE(0x1400, 0x1400) AM_DEVWRITE("aysnd_0", ay8910_device, reset_w)
83   AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("aysnd_1", ay8910_device, address_w)
5484   //AM_RANGE(0x2800, 0x2800) AM_WRITE(auxlamps_w)
55   //AM_RANGE(0x3000, 0x3000) AM_WRITE(ay8910_0_data_w)
56   //AM_RANGE(0x3800, 0x3800) AM_WRITE(ay8910_1_data_w)
85   AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("aysnd_0", ay8910_device, data_w)
86   AM_RANGE(0x3800, 0x3800) AM_DEVWRITE("aysnd_1", ay8910_device, data_w)
5787   AM_RANGE(0xc000, 0xdfff) AM_ROM AM_MIRROR(0x2000) AM_REGION("roms", 0)
5888ADDRESS_MAP_END
5989
r31703r31704
6292   //AM_RANGE(0x0101, 0x0101) AM_WRITE(
6393ADDRESS_MAP_END
6494
65static INPUT_PORTS_START( ltd )
95static INPUT_PORTS_START( ltd3 )
96   PORT_START("FICHA")
97   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, ltd_state, ficha, 0)
98
99   PORT_START("X0")
100   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) //tilt
101   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) //1,2
102   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) //1,2
103   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) //1,2
104   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) //1,2
105   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) //1,2
106   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
107
108   PORT_START("X1")
109   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) //2
110   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) //1,2
111   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) //1,2
112   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) //1,2
113   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) //1,2
114   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) //1
115   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
116
117   PORT_START("X2")
118   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) //1,2
119   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) //1,2
120   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) //1,2
121   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) //1,2
122   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) //2
123   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) //2
124   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
125
126   PORT_START("X3")
127   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) //2
128   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) //2
129   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) //2
130   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R)
131   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
132   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START )
133   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
134
135   PORT_START("X4")
136   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
137   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C)
138   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V)
139   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B)
140   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N)
141   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M)
142   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
143
144   PORT_START("X5")
145   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
146   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
147   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J)
148   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K)
149   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I)
150   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O)
151   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
152
153   PORT_START("X6")
154   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
155   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
156   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD)
157   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD)
158   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD)
159   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD)
160   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
161
162   PORT_START("X7")
163   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") // 1,2
164   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ASTERISK)
165   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH_PAD)
166   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS_PAD)
167   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_PLUS_PAD)
168   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER_PAD)
169   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
66170INPUT_PORTS_END
67171
172static INPUT_PORTS_START( ltd4 )
173INPUT_PORTS_END
174
175INPUT_CHANGED_MEMBER( ltd_state::ficha )
176{
177   if(newval)
178      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
179}
180
68181// switches
69182READ8_MEMBER( ltd_state::io_r )
70183{
71   return 0;
184   if (offset==0) return ioport("X0")->read();
185   if (offset==1) return ioport("X1")->read();
186   if (offset==2) return ioport("X2")->read();
187   if (offset==3) return ioport("X3")->read();
188   if (offset==7) return ioport("X7")->read();
189   return 0xff;
72190}
73191
74// Lamps
192// Lamps only used by Zephy
75193WRITE8_MEMBER( ltd_state::io_w )
76194{
77195   offset >>= 10; // reduces offsets to 1 per bank
r31703r31704
80198void ltd_state::machine_reset()
81199{
82200   m_out_offs = 0;
201   m_timer_r = 0;
83202}
84203
85204DRIVER_INIT_MEMBER( ltd_state, ltd )
86205{
206   m_game = 0;
87207}
88208
209DRIVER_INIT_MEMBER( ltd_state, atla_ltd )
210{
211   m_game = 1;
212   output_set_digit_value(0, 0x3f);
213   output_set_digit_value(10, 0x3f);
214}
215
216DRIVER_INIT_MEMBER( ltd_state, bhol_ltd )
217{
218   m_game = 2;
219}
220
221DRIVER_INIT_MEMBER( ltd_state, zephy )
222{
223   m_game = 3;
224}
225
89226TIMER_DEVICE_CALLBACK_MEMBER( ltd_state::timer_r )
90227{
228   m_timer_r ^= 1;
229   m_maincpu->set_input_line(M6800_IRQ_LINE, (m_timer_r) ? CLEAR_LINE : ASSERT_LINE);   
91230   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x69, 0x78, 0 }; // 7447
92231   m_out_offs++;
232   if (m_out_offs > 0x7f) m_out_offs = 0x60;
93233
94   if (m_out_offs < 0x40)
234   if ((m_out_offs > 0x5f) && (m_out_offs < 0x6a))
95235   {
96      UINT8 display = (m_out_offs >> 3) & 7;
97      UINT8 digit = m_out_offs & 7;
98      output_set_digit_value(display * 10 + digit, patterns[m_p_ram[m_out_offs]&15]);
236      switch(m_game)
237      {
238         case 1: // atlantis (2-player, 5-digit)
239         {
240            switch(m_out_offs-0x60)
241            {
242               case 0:
243                  output_set_digit_value(1, patterns[m_p_ram[m_out_offs]&15]);
244                  output_set_digit_value(2, patterns[m_p_ram[m_out_offs]>>4]);
245                  break;
246               case 1:
247                  output_set_digit_value(11, patterns[m_p_ram[m_out_offs]&15]);
248                  output_set_digit_value(12, patterns[m_p_ram[m_out_offs]>>4]);
249                  break;
250               case 2:
251                  output_set_digit_value(3, patterns[m_p_ram[m_out_offs]&15]);
252                  output_set_digit_value(4, patterns[m_p_ram[m_out_offs]>>4]);
253                  break;
254               case 3:
255                  output_set_digit_value(13, patterns[m_p_ram[m_out_offs]&15]);
256                  output_set_digit_value(14, patterns[m_p_ram[m_out_offs]>>4]);
257                  break;
258               case 8:
259                  output_set_digit_value(41, patterns[m_p_ram[m_out_offs]&15]);
260                  output_set_digit_value(40, patterns[m_p_ram[m_out_offs]>>4]);
261                  break;
262            }
263            break;
264         }
265         case 2: // black hole (2-player, 6-digit)
266         {
267            switch(m_out_offs-0x60)
268            {
269               case 0:
270                  output_set_digit_value(0, patterns[m_p_ram[m_out_offs]&15]);
271                  output_set_digit_value(1, patterns[m_p_ram[m_out_offs]>>4]);
272                  break;
273               case 1:
274                  output_set_digit_value(10, patterns[m_p_ram[m_out_offs]&15]);
275                  output_set_digit_value(11, patterns[m_p_ram[m_out_offs]>>4]);
276                  break;
277               case 2:
278                  output_set_digit_value(2, patterns[m_p_ram[m_out_offs]&15]);
279                  output_set_digit_value(3, patterns[m_p_ram[m_out_offs]>>4]);
280                  break;
281               case 3:
282                  output_set_digit_value(12, patterns[m_p_ram[m_out_offs]&15]);
283                  output_set_digit_value(13, patterns[m_p_ram[m_out_offs]>>4]);
284                  break;
285               case 4:
286                  output_set_digit_value(4, patterns[m_p_ram[m_out_offs]&15]);
287                  output_set_digit_value(5, patterns[m_p_ram[m_out_offs]>>4]);
288                  break;
289               case 5:
290                  output_set_digit_value(14, patterns[m_p_ram[m_out_offs]&15]);
291                  output_set_digit_value(15, patterns[m_p_ram[m_out_offs]>>4]);
292                  break;
293               case 8:
294                  output_set_digit_value(41, patterns[m_p_ram[m_out_offs]&15]);
295                  output_set_digit_value(40, patterns[m_p_ram[m_out_offs]>>4]);
296                  break;
297            }
298            break;
299         }
300         case 3: // zephy (3-player, 6-digit)
301         {
302            switch(m_out_offs-0x60)
303            {
304               case 0:
305                  output_set_digit_value(0, patterns[m_p_ram[m_out_offs]&15]);
306                  output_set_digit_value(1, patterns[m_p_ram[m_out_offs]>>4]);
307                  break;
308               case 1:
309                  output_set_digit_value(2, patterns[m_p_ram[m_out_offs]&15]);
310                  output_set_digit_value(3, patterns[m_p_ram[m_out_offs]>>4]);
311                  break;
312               case 2:
313                  output_set_digit_value(4, patterns[m_p_ram[m_out_offs]&15]);
314                  output_set_digit_value(5, patterns[m_p_ram[m_out_offs]>>4]);
315                  break;
316               case 3:
317                  output_set_digit_value(10, patterns[m_p_ram[m_out_offs]&15]);
318                  output_set_digit_value(11, patterns[m_p_ram[m_out_offs]>>4]);
319                  break;
320               case 4:
321                  output_set_digit_value(12, patterns[m_p_ram[m_out_offs]&15]);
322                  output_set_digit_value(13, patterns[m_p_ram[m_out_offs]>>4]);
323                  break;
324               case 5:
325                  output_set_digit_value(14, patterns[m_p_ram[m_out_offs]&15]);
326                  output_set_digit_value(15, patterns[m_p_ram[m_out_offs]>>4]);
327                  break;
328               case 6:
329                  output_set_digit_value(20, patterns[m_p_ram[m_out_offs]&15]);
330                  output_set_digit_value(21, patterns[m_p_ram[m_out_offs]>>4]);
331                  break;
332               case 7:
333                  output_set_digit_value(22, patterns[m_p_ram[m_out_offs]&15]);
334                  output_set_digit_value(23, patterns[m_p_ram[m_out_offs]>>4]);
335                  break;
336               case 8:
337                  output_set_digit_value(24, patterns[m_p_ram[m_out_offs]&15]);
338                  output_set_digit_value(25, patterns[m_p_ram[m_out_offs]>>4]);
339                  break;
340               case 9:
341                  output_set_digit_value(40, patterns[m_p_ram[m_out_offs]&15]);
342                  output_set_digit_value(41, patterns[m_p_ram[m_out_offs]>>4]);
343                  break;
344            }
345            break;
346         }
347
348      }
99349   }
100   else
101   if (m_out_offs == 0x4a) // outhole
102   {
103      if (BIT(m_p_ram[m_out_offs], 0))
104         m_samples->start(0, 5);
105   }
106   else
107   if (m_out_offs == 0x4b) // knocker (not strapids)
108   {
109      if (BIT(m_p_ram[m_out_offs], 0))
110         m_samples->start(0, 6);
111   }
350//   else
351//   if (m_out_offs == 0x4a) // outhole
352//   {
353//      if (BIT(m_p_ram[m_out_offs], 0))
354//         m_samples->start(0, 5);
355//   }
356//   else
357//   if (m_out_offs == 0x4b) // knocker
358//   {
359//      if (BIT(m_p_ram[m_out_offs], 0))
360//         m_samples->start(0, 6);
361//   }
112362}
113363
114364static MACHINE_CONFIG_START( ltd3, ltd_state )
r31703r31704
133383   MCFG_CPU_PROGRAM_MAP(ltd4_map)
134384   MCFG_CPU_IO_MAP(ltd4_io)
135385
386   MCFG_NVRAM_ADD_0FILL("nvram")
387
136388   /* Video */
137389   MCFG_DEFAULT_LAYOUT(layout_ltd)
138390
139391   /* Sound */
140392   MCFG_FRAGMENT_ADD( genpin_audio )
393
394   MCFG_SPEAKER_STANDARD_MONO("mono")
395   MCFG_SOUND_ADD("aysnd_0", AY8910, XTAL_3_579545MHz/2) /* guess */
396   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.3)
397   MCFG_SOUND_ADD("aysnd_1", AY8910, XTAL_3_579545MHz/2) /* guess */
398   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.3)
141399MACHINE_CONFIG_END
142400
143401/*-------------------------------------------------------------------
r31703r31704
203461ROM_END
204462
205463// system 3
206GAME(1981, atla_ltd, 0,  ltd3,  ltd,  ltd_state, ltd, ROT0, "LTD", "Atlantis (LTD)",     GAME_IS_SKELETON_MECHANICAL)
207GAME(1981, bhol_ltd, 0,  ltd3,  ltd,  ltd_state, ltd, ROT0, "LTD", "Black Hole (LTD)",   GAME_IS_SKELETON_MECHANICAL)
208GAME(1981, zephy,    0,  ltd3,  ltd,  ltd_state, ltd, ROT0, "LTD", "Zephy",              GAME_IS_SKELETON_MECHANICAL)
464GAME(1981, atla_ltd, 0,  ltd3,  ltd3, ltd_state, atla_ltd, ROT0, "LTD", "Atlantis (LTD)",     GAME_MECHANICAL | GAME_NO_SOUND )
465GAME(1981, bhol_ltd, 0,  ltd3,  ltd3, ltd_state, bhol_ltd, ROT0, "LTD", "Black Hole (LTD)",   GAME_MECHANICAL | GAME_NO_SOUND )
466GAME(1981, zephy,    0,  ltd3,  ltd3, ltd_state, zephy,    ROT0, "LTD", "Zephy",              GAME_IS_SKELETON_MECHANICAL)
209467
210468// system 4
211GAME(1981, cowboy,   0,  ltd4,  ltd,  ltd_state, ltd, ROT0, "LTD", "Cowboy Eight Ball",  GAME_IS_SKELETON_MECHANICAL)
212GAME(1981, pecmen,   0,  ltd4,  ltd,  ltd_state, ltd, ROT0, "LTD", "Mr. & Mrs. Pec-Men", GAME_IS_SKELETON_MECHANICAL)
213GAME(1981, alcapone, 0,  ltd4,  ltd,  ltd_state, ltd, ROT0, "LTD", "Al Capone",          GAME_IS_SKELETON_MECHANICAL)
214GAME(1982, columbia, 0,  ltd4,  ltd,  ltd_state, ltd, ROT0, "LTD", "Columbia",           GAME_IS_SKELETON_MECHANICAL)
469GAME(1981, cowboy,   0,  ltd4,  ltd4, ltd_state, ltd,      ROT0, "LTD", "Cowboy Eight Ball",  GAME_IS_SKELETON_MECHANICAL)
470GAME(1981, pecmen,   0,  ltd4,  ltd4, ltd_state, ltd,      ROT0, "LTD", "Mr. & Mrs. Pec-Men", GAME_IS_SKELETON_MECHANICAL)
471GAME(1981, alcapone, 0,  ltd4,  ltd4, ltd_state, ltd,      ROT0, "LTD", "Al Capone",          GAME_IS_SKELETON_MECHANICAL)
472GAME(1982, columbia, 0,  ltd4,  ltd4, ltd_state, ltd,      ROT0, "LTD", "Columbia",           GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team