Previous 199869 Revisions Next

r33879 Monday 15th December, 2014 at 00:09:31 UTC by hap
(MESS)Game promoted to working
------------------
Tandy-12 - Computerized Arcade [hap, Kevin Horton]
[src/emu/cpu/tms0980]tms0980.c tms0980.h
[src/mess/drivers]mathmagi.c tandy12.c
[src/mess/layout]tandy12.lay

trunk/src/emu/cpu/tms0980/tms0980.c
r242390r242391
9292#define M_SSE               0x00080000 /* Special Status Enable */
9393#define M_SSS               0x00100000 /* Special Status Sample */
9494
95#define M_RSTR              0x00200000 /* -> line #36, F_RSTR (TMC02x0 custom) */
96#define M_UNK1              0x00400000 /* -> line #37, F_???? (TMC0270 custom) */
95#define M_RSTR              0x00200000 /* -> line #36, F_RSTR (TMS02x0 custom) */
96#define M_UNK1              0x00400000 /* -> line #37, F_???? (TMS0270 custom) */
9797
9898/* Standard/fixed instructions - these are documented more in their specific handlers below */
9999#define F_BR                0x00000001
r242390r242391
154154// - 32-term microinstructions PLA between the RAM and ROM, supporting 15 microinstructions
155155// - 16-term output PLA and segment PLA above the RAM (rotate opla 90 degrees)
156156const device_type TMS0970 = &device_creator<tms0970_cpu_device>; // 28-pin DIP, 11 R pins
157// TMS0950 is same?
157158
158// TMC0270 on the other hand, is a TMS0980 with earrings and a new hat. The new changes look like a quick afterthought, almost hacky
159// TMS0270 on the other hand, is a TMS0980 with earrings and a new hat. The new changes look like a quick afterthought, almost hacky
159160// - RAM, ROM, and main instructions PLA is exactly the same as TMS0980
160161// - 64-term microinstructions PLA between the RAM and ROM, supporting 20 microinstructions plus optional separate lines for custom opcode handling
161162// - 48-term output PLA above the RAM (rotate opla 90 degrees)
162const device_type TMC0270 = &device_creator<tmc0270_cpu_device>; // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O)
163// TMC0260 is same? except opla is 32 instead of 48 terms
163const device_type TMS0270 = &device_creator<tms0270_cpu_device>; // 40-pin DIP, 16 O pins, 8+ R pins (some R pins are internally hooked up to support more I/O)
164// TMS0260 is same? except opla is 32 instead of 48 terms
164165
165166
166167static ADDRESS_MAP_START(program_11bit_9, AS_PROGRAM, 16, tms1xxx_cpu_device)
r242390r242391
249250}
250251
251252
252tmc0270_cpu_device::tmc0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
253   : tms0980_cpu_device(mconfig, TMC0270, "TMC0270", tag, owner, clock, 16, 16, 4, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tmc0270", __FILE__)
253tms0270_cpu_device::tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
254   : tms0980_cpu_device(mconfig, TMS0270, "TMS0270", tag, owner, clock, 16, 16, 4, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tms0270", __FILE__)
254255{
255256}
256257
r242390r242391
309310}
310311
311312
312static MACHINE_CONFIG_FRAGMENT(tmc0270)
313static MACHINE_CONFIG_FRAGMENT(tms0270)
313314
314315   // main opcodes PLA, microinstructions PLA, output PLA
315316   MCFG_PLA_ADD("ipla", 9, 22, 24)
r242390r242391
320321   MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY)
321322MACHINE_CONFIG_END
322323
323machine_config_constructor tmc0270_cpu_device::device_mconfig_additions() const
324machine_config_constructor tms0270_cpu_device::device_mconfig_additions() const
324325{
325   return MACHINE_CONFIG_NAME(tmc0270);
326   return MACHINE_CONFIG_NAME(tms0270);
326327}
327328
328329
r242390r242391
396397   m_cs = 0;
397398   m_r = 0;
398399   m_o = 0;
399   m_o_index = 0;
400400   m_cki_bus = 0;
401401   m_c4 = 0;
402402   m_p = 0;
r242390r242391
434434   save_item(NAME(m_cs));
435435   save_item(NAME(m_r));
436436   save_item(NAME(m_o));
437   save_item(NAME(m_o_index));
438437   save_item(NAME(m_cki_bus));
439438   save_item(NAME(m_c4));
440439   save_item(NAME(m_p));
r242390r242391
475474   m_icountptr = &m_icount;
476475}
477476
478void tmc0270_cpu_device::device_start()
477void tms0270_cpu_device::device_start()
479478{
480479   // common init
481480   tms1xxx_cpu_device::device_start();
r242390r242391
635634   UINT32 mask = m_mpla->read(sel);
636635   mask ^= 0x43fc3; // invert active-negative
637636   
638   // M_RSTR is specific to TMC02x0, it redirects to F_RSTR
639   // M_UNK1 is specific to TMC0270, unknown yet
637   // M_RSTR is specific to TMS02x0, it redirects to F_RSTR
638   // M_UNK1 is specific to TMS0270, unknown yet
640639   //                      _______  ______                                _____  _____  _____  _____  ______  _____  ______  _____                            _____
641640   const UINT32 md[22] = { M_NDMTP, M_DMTP, M_AUTY, M_AUTA, M_CKM, M_SSE, M_CKP, M_YTP, M_MTP, M_ATN, M_NATN, M_MTN, M_15TN, M_CKN, M_NE, M_C8, M_SSS, M_CME, M_CIN, M_STO, M_RSTR, M_UNK1 };
642641   
r242390r242391
683682      m_micro_direct[op] = decode_micro(op);
684683}
685684
686void tmc0270_cpu_device::device_reset()
685void tms0270_cpu_device::device_reset()
687686{
688687   // common reset
689688   tms0980_cpu_device::device_reset();
r242390r242391
747746   next_pc();
748747}
749748
750void tmc0270_cpu_device::read_opcode()
749void tms0270_cpu_device::read_opcode()
751750{
752751   tms0980_cpu_device::read_opcode();
753752   
r242390r242391
764763
765764void tms1xxx_cpu_device::write_o_output(UINT8 index)
766765{
767   m_o_index = index;
768   
769766   // a hardcoded table is supported if the output pla is unknown
770767   m_o = (c_output_pla == NULL) ? m_opla->read(index) : c_output_pla[index];
771768   m_write_o(0, m_o & m_o_mask, 0xffff);
r242390r242391
773770
774771void tms0970_cpu_device::write_o_output(UINT8 index)
775772{
776   m_o_index = index;
777
778773   m_o = m_spla->read(index);
779774   m_write_o(0, m_o & m_o_mask, 0xffff);
780775}
781776
782777
783void tmc0270_cpu_device::dynamic_output()
778void tms0270_cpu_device::dynamic_output()
784779{
785780   // TODO..
786781   
r242390r242391
798793   return (k & 0xf) | k3;
799794}
800795
801UINT8 tmc0270_cpu_device::read_k_input()
796UINT8 tms0270_cpu_device::read_k_input()
802797{
803798   // TODO..
804799   
r242390r242391
10191014}
10201015
10211016
1022// TMC0270-specific
1023void tmc0270_cpu_device::op_tdo()
1017// TMS0270-specific
1018void tms0270_cpu_device::op_tdo()
10241019{
10251020   // TDO: transfer data out
10261021   if (m_status)
r242390r242391
10311026   // write to output is done in dynamic_output
10321027}
10331028
1034void tmc0270_cpu_device::op_setr()
1029void tms0270_cpu_device::op_setr()
10351030{
10361031   // same as default, but handle write to output in dynamic_output
10371032   m_r = m_r | (1 << m_y);
10381033}
10391034
1040void tmc0270_cpu_device::op_rstr()
1035void tms0270_cpu_device::op_rstr()
10411036{
10421037   // same as default, but handle write to output in dynamic_output
10431038   m_r = m_r & ~(1 << m_y);
trunk/src/emu/cpu/tms0980/tms0980.h
r242390r242391
55  TMS0980/TMS1000-family MCU cores
66
77*/
8
89#ifndef _TMS0980_H_
910#define _TMS0980_H_
1011
r242390r242391
1213#include "machine/pla.h"
1314
1415
15#define MCFG_TMS1XXX_OUTPUT_PLA(_pla) \
16   tms1xxx_cpu_device::set_output_pla(*device, _pla);
17
16// K input pins
1817#define MCFG_TMS1XXX_READ_K_CB(_devcb) \
1918   tms1xxx_cpu_device::set_read_k_callback(*device, DEVCB_##_devcb);
2019
20// O/Segment output pins
2121#define MCFG_TMS1XXX_WRITE_O_CB(_devcb) \
2222   tms1xxx_cpu_device::set_write_o_callback(*device, DEVCB_##_devcb);
2323
24// R output pins (also called D on some chips)
2425#define MCFG_TMS1XXX_WRITE_R_CB(_devcb) \
2526   tms1xxx_cpu_device::set_write_r_callback(*device, DEVCB_##_devcb);
2627
28// OFF opcode on TMS0980 and up
2729#define MCFG_TMS1XXX_POWER_OFF_CB(_devcb) \
2830   tms1xxx_cpu_device::set_power_off_callback(*device, DEVCB_##_devcb);
2931
32// Use this if the output PLA is unknown:
33// If the microinstructions (or other) PLA is unknown, try using one from another romset.
34#define MCFG_TMS1XXX_OUTPUT_PLA(_pla) \
35   tms1xxx_cpu_device::set_output_pla(*device, _pla);
3036
37
38
3139class tms1xxx_cpu_device : public cpu_device
3240{
3341public:
r242390r242391
6270   template<class _Object> static devcb_base &set_power_off_callback(device_t &device, _Object object) { return downcast<tms1xxx_cpu_device &>(device).m_power_off.set_callback(object); }
6371   static void set_output_pla(device_t &device, const UINT16 *output_pla) { downcast<tms1xxx_cpu_device &>(device).c_output_pla = output_pla; }
6472   
65   // driver debugging
66   UINT8 debug_peek_o_index() { return m_o_index; }
67
6873protected:
6974   // device-level overrides
7075   virtual void device_start();
r242390r242391
132137   UINT8   m_cs;        // chapter subroutine bit
133138   UINT16  m_r;
134139   UINT16  m_o;
135   UINT8   m_o_index;
136140   UINT8   m_cki_bus;
137141   UINT8   m_c4;
138142   UINT8   m_p;         // 4-bit adder p(lus)-input
r242390r242391
283287};
284288
285289
286class tmc0270_cpu_device : public tms0980_cpu_device
290class tms0270_cpu_device : public tms0980_cpu_device
287291{
288292public:
289   tmc0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
293   tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
290294
291295protected:
292296   // overrides
r242390r242391
322326extern const device_type TMS1300;
323327extern const device_type TMS0970;
324328extern const device_type TMS0980;
325extern const device_type TMC0270;
329extern const device_type TMS0270;
326330
327331
328332#endif /* _TMS0980_H_ */
trunk/src/mess/drivers/mathmagi.c
r242390r242391
2222
2323
2424  TODO:
25  - some of the led symbols are probably wrong, output pla is unknown
25  - some of the led symbols are probably wrong, output PLA is unknown
26  - microinstructions PLA is not verified
2627 
2728***************************************************************************/
2829
r242390r242391
8384WRITE16_MEMBER(mathmagi_state::write_o)
8485{
8586   // O1-O7: led segments A-G
87   // O0: N/C
8688   m_o = data;
8789}
8890
r242390r242391
162164   PORT_CONFNAME( 0x01, 0x00, "Players")
163165   PORT_CONFSETTING(    0x00, "1" )
164166   PORT_CONFSETTING(    0x01, "2" )
165   PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
167   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
168   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
169   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
166170INPUT_PORTS_END
167171
168172
r242390r242391
196200
197201static const UINT16 mathmagi_output_pla[0x20] =
198202{
199   /* O output PLA configuration currently unknown */
200203   lA+lB+lC+lD+lE+lF,      // 0
201204   lB+lC,                  // 1
202205   lA+lB+lG+lE+lD,         // 2
trunk/src/mess/drivers/tandy12.c
r242390r242391
22// copyright-holders:hap
33/***************************************************************************
44
5  Tandy Radio Shack Tandy-12 - Computerized Arcade
5  Tandy Radio Shack Computerized Arcade (1981, 1982, 1995)
66  * TMS1100 CD7282SL
77 
8  This tabletop game looks and plays like "Fabulous Fred" by the Japanese
9  company Mego Corp. in 1980, which in turn is a mix of Merlin and Simon.
10  Unlike Merlin and Simon, these spin-offs were not successful.
8  This handheld contains 12 minigames. It looks and plays like "Fabulous Fred"
9  by the Japanese company Mego Corp. in 1980, which in turn is a mix of Merlin
10  and Simon. Unlike Merlin and Simon, spin-offs like these were not successful.
11  There were releases with and without the prefix "Tandy-12", I don't know
12  which name was more common. Also not worth noting is that it needed five
13  batteries; 4 C-cells and a 9-volt.
1114 
15  Some of the games require accessories included with the toy (eg. the Baseball
16  game is played with a board representing the playing field). To start a game,
17  hold the [SELECT] button, then press [START] when the game button lights up.
18  As always, refer to the official manual for more information.
19 
20  See below at the input defs for a list of the games.
21
22 
23  TODO:
24  - output PLA is not verified
25  - microinstructions PLA is not verified
26
1227***************************************************************************/
1328
1429#include "emu.h"
r242390r242391
2843   tandy12_state(const machine_config &mconfig, device_type type, const char *tag)
2944      : driver_device(mconfig, type, tag),
3045      m_maincpu(*this, "maincpu"),
46      m_button_matrix(*this, "IN"),
3147      m_speaker(*this, "speaker")
3248   { }
3349
3450   required_device<tms1xxx_cpu_device> m_maincpu;
51   required_ioport_array<5> m_button_matrix;
3552   required_device<speaker_sound_device> m_speaker;
3653
37   UINT16 m_o;
3854   UINT16 m_r;
3955
4056   DECLARE_READ8_MEMBER(read_k);
r242390r242391
5369
5470READ8_MEMBER(tandy12_state::read_k)
5571{
56   return 0;
72   UINT8 k = 0;
73   
74   // read selected button rows
75   for (int i = 0; i < 5; i++)
76      if (m_r >> (i+5) & 1)
77         k |= m_button_matrix[i]->read();
78
79   return k;
5780}
5881
5982WRITE16_MEMBER(tandy12_state::write_o)
6083{
61   m_o = data;
84   // O0-O7: button lamps 1-8
85   for (int i = 0; i < 8; i++)
86      output_set_lamp_value(i, data >> i & 1);
6287}
6388
6489WRITE16_MEMBER(tandy12_state::write_r)
6590{
91   // R0-R3: button lamps 9-12
92   for (int i = 0; i < 4; i++)
93      output_set_lamp_value(i + 8, data >> i & 1);
94
6695   // R10: speaker out
6796   m_speaker->level_w(data >> 10 & 1);
68   
97
98   // R5-R9: input mux
6999   m_r = data;
70100}
71101
r242390r242391
77107
78108***************************************************************************/
79109
110/* physical button layout and labels is like this:
111
112        REPEAT-2              SPACE-2
113          [O]     OFF--ON       [O]
114
115    [purple]1     [blue]5       [l-green]9
116    ORGAN         TAG-IT        TREASURE HUNT
117   
118    [l-orange]2   [turquoise]6  [red]10
119    SONG WRITER   ROULETTE      COMPETE
120   
121    [pink]3       [yellow]7     [violet]11
122    REPEAT        BASEBALL      FIRE AWAY
123
124    [green]4      [orange]8     [brown]12
125    TORPEDO       REPEAT PLUS   HIDE 'N SEEK
126
127          [O]        [O]        [O]
128         START      SELECT    PLAY-2/HIT-7
129*/
130
80131static INPUT_PORTS_START( tandy12 )
132   PORT_START("IN.0") // R5
133   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("12")
134   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("11")
135   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("10")
136   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
137
138   PORT_START("IN.1") // R6
139   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("Space-2")
140   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("Play-2/Hit-7")
141   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_NAME("Select")
142   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Start")
143
144   PORT_START("IN.2") // R7
145   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_NAME("Repeat-2")
146   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
147   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
148   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
149
150   PORT_START("IN.3") // R8
151   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
152   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
153   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
154   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
155
156   PORT_START("IN.4") // R9
157   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
158   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
159   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
160   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
81161INPUT_PORTS_END
82162
83163
r242390r242391
90170
91171void tandy12_state::machine_start()
92172{
93   m_o = 0;
94173   m_r = 0;
95
96   save_item(NAME(m_o));
97174   save_item(NAME(m_r));
98175}
99176
100177
101178static const UINT16 tandy12_output_pla[0x20] =
102179{
103   /* O output PLA configuration currently unknown */
104   0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
105   0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
106   0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
107   0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
180   // these are certain
181   0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,
182   0x80, 0x00, 0x00, 0x00, 0x00,
183   
184   // rest is unused?
185   0x00, 0x00, 0x00,
186   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
108188};
109189
110190
r242390r242391
146226ROM_END
147227
148228
149CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12 - Computerized Arcade", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
229CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12 - Computerized Arcade", GAME_SUPPORTS_SAVE )
trunk/src/mess/layout/tandy12.lay
r242390r242391
22<mamelayout version="2">
33
44
5<!-- ugly layout is temp, will be improved soon -->
6
7
8
9
510<!-- define elements -->
611
12   <element name="lamp_dot" defstate="0">
13      <disk state="1"><color red="1.0" green="0.3" blue="0.2" /></disk>
14      <disk state="0"><color red="0.125490" green="0.035294" blue="0.0235294" /></disk>
15   </element>
716
817
18
919<!-- build screen -->
1020
1121   <view name="Internal Layout">
1222      <bounds left="0" right="100" top="0" bottom="100" />
1323
24      <bezel name="lamp0" element="lamp_dot"><bounds x="10" y="10" width="5" height="5" /></bezel>
25      <bezel name="lamp4" element="lamp_dot"><bounds x="20" y="10" width="5" height="5" /></bezel>
26      <bezel name="lamp8" element="lamp_dot"><bounds x="30" y="10" width="5" height="5" /></bezel>
1427
28      <bezel name="lamp1" element="lamp_dot"><bounds x="10" y="20" width="5" height="5" /></bezel>
29      <bezel name="lamp5" element="lamp_dot"><bounds x="20" y="20" width="5" height="5" /></bezel>
30      <bezel name="lamp9" element="lamp_dot"><bounds x="30" y="20" width="5" height="5" /></bezel>
31
32      <bezel name="lamp2" element="lamp_dot"><bounds x="10" y="30" width="5" height="5" /></bezel>
33      <bezel name="lamp6" element="lamp_dot"><bounds x="20" y="30" width="5" height="5" /></bezel>
34      <bezel name="lamp10" element="lamp_dot"><bounds x="30" y="30" width="5" height="5" /></bezel>
35
36      <bezel name="lamp3" element="lamp_dot"><bounds x="10" y="40" width="5" height="5" /></bezel>
37      <bezel name="lamp7" element="lamp_dot"><bounds x="20" y="40" width="5" height="5" /></bezel>
38      <bezel name="lamp11" element="lamp_dot"><bounds x="30" y="40" width="5" height="5" /></bezel>
39
40
1541   </view>
1642</mamelayout>


Previous 199869 Revisions Next


© 1997-2024 The MAME Team