Previous 199869 Revisions Next

r17528 Tuesday 28th August, 2012 at 11:55:33 UTC by Robbbert
zac_1: added display, inputs, notes. ewf and sshtlzac marked as working [Robbbert]
[src/mame/drivers]zac_1.c
[src/mame/layout]zac_1.lay zac_proto.lay

trunk/src/mame/layout/zac_1.lay
r17527r17528
1<!-- flicker.lay -->
1<!-- zac_1.lay -->
22
3<!-- 2012-08-22: Initial version.  [Robbbert] -->
3<!-- 2012-08-28: Initial version.  [Robbbert] -->
44
55<mamelayout version="2">
66
r17527r17528
1616         <color red="0.0" green="0.0" blue="0.0" />
1717      </rect>
1818   </element>
19   <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element>
19   <element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2020   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P3"><text string="Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
21   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P7"><text string="High Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2226
2327   <view name="Default Layout">
2428
2529      <!-- Background -->
2630      <backdrop element="background">
27         <bounds left="0" top="0" right="318" bottom="180" />
31         <bounds left="0" top="20" right="274" bottom="394" />
2832      </backdrop>
2933
3034      <!-- LEDs -->
35
36      <!-- Player 1 Score -->
37
3138      <bezel name="digit5" element="digit">
3239         <bounds left="10" top="45" right="44" bottom="84" />
3340      </bezel>
r17527r17528
4653      <bezel name="digit0" element="digit">
4754         <bounds left="230" top="45" right="264" bottom="84" />
4855      </bezel>
56
57      <!-- Player 2 Score -->
58      <bezel name="digit15" element="digit">
59         <bounds left="10" top="105" right="44" bottom="144" />
60      </bezel>
61      <bezel name="digit14" element="digit">
62         <bounds left="54" top="105" right="88" bottom="144" />
63      </bezel>
64      <bezel name="digit13" element="digit">
65         <bounds left="98" top="105" right="132" bottom="144" />
66      </bezel>
67      <bezel name="digit12" element="digit">
68         <bounds left="142" top="105" right="176" bottom="144" />
69      </bezel>
70      <bezel name="digit11" element="digit">
71         <bounds left="186" top="105" right="220" bottom="144" />
72      </bezel>
4973      <bezel name="digit10" element="digit">
50         <bounds left="274" top="45" right="308" bottom="84" />
74         <bounds left="230" top="105" right="264" bottom="144" />
5175      </bezel>
52      <bezel name="digit9" element="digit">
53         <bounds left="30" top="145" right="54" bottom="170" />
76
77      <!-- Player 3 Score -->
78      <bezel name="digit25" element="digit">
79         <bounds left="10" top="165" right="44" bottom="204" />
5480      </bezel>
55      <bezel name="digit8" element="digit">
56         <bounds left="64" top="145" right="88" bottom="170" />
81      <bezel name="digit24" element="digit">
82         <bounds left="54" top="165" right="88" bottom="204" />
5783      </bezel>
58      <bezel name="digit7" element="digit">
59         <bounds left="230" top="145" right="254" bottom="170" />
84      <bezel name="digit23" element="digit">
85         <bounds left="98" top="165" right="132" bottom="204" />
6086      </bezel>
61      <bezel name="digit6" element="digit">
62         <bounds left="264" top="145" right="288" bottom="170" />
87      <bezel name="digit22" element="digit">
88         <bounds left="142" top="165" right="176" bottom="204" />
6389      </bezel>
64      <bezel element="P0"><bounds left="230" right="288" top="110" bottom="135" /></bezel>
65      <bezel element="P1"><bounds left="30" right="88" top="110" bottom="135" /></bezel>
66      <bezel element="P3"><bounds left="100" right="200" top="10" bottom="35" /></bezel>
90      <bezel name="digit21" element="digit">
91         <bounds left="186" top="165" right="220" bottom="204" />
92      </bezel>
93      <bezel name="digit20" element="digit">
94         <bounds left="230" top="165" right="264" bottom="204" />
95      </bezel>
96
97      <!-- Player 4 Score -->
98      <bezel name="digit35" element="digit">
99         <bounds left="10" top="225" right="44" bottom="264" />
100      </bezel>
101      <bezel name="digit34" element="digit">
102         <bounds left="54" top="225" right="88" bottom="264" />
103      </bezel>
104      <bezel name="digit33" element="digit">
105         <bounds left="98" top="225" right="132" bottom="264" />
106      </bezel>
107      <bezel name="digit32" element="digit">
108         <bounds left="142" top="225" right="176" bottom="264" />
109      </bezel>
110      <bezel name="digit31" element="digit">
111         <bounds left="186" top="225" right="220" bottom="264" />
112      </bezel>
113      <bezel name="digit30" element="digit">
114         <bounds left="230" top="225" right="264" bottom="264" />
115      </bezel>
116
117      <!-- High Score -->
118      <bezel name="digit45" element="digit">
119         <bounds left="10" top="285" right="44" bottom="324" />
120      </bezel>
121      <bezel name="digit44" element="digit">
122         <bounds left="54" top="285" right="88" bottom="324" />
123      </bezel>
124      <bezel name="digit43" element="digit">
125         <bounds left="98" top="285" right="132" bottom="324" />
126      </bezel>
127      <bezel name="digit42" element="digit">
128         <bounds left="142" top="285" right="176" bottom="324" />
129      </bezel>
130      <bezel name="digit41" element="digit">
131         <bounds left="186" top="285" right="220" bottom="324" />
132      </bezel>
133      <bezel name="digit40" element="digit">
134         <bounds left="230" top="285" right="264" bottom="324" />
135      </bezel>
136
137      <!-- Credits -->
138      <bezel name="digit55" element="digit">
139         <bounds left="10" top="345" right="44" bottom="384" />
140      </bezel>
141      <bezel name="digit54" element="digit">
142         <bounds left="54" top="345" right="88" bottom="384" />
143      </bezel>
144
145      <!-- Match / Balls Left -->
146      <bezel name="digit51" element="digit">
147         <bounds left="186" top="345" right="220" bottom="384" />
148      </bezel>
149      <bezel name="digit50" element="digit">
150         <bounds left="230" top="345" right="264" bottom="384" />
151      </bezel>
152      <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
153      <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
154      <bezel element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
155      <bezel element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
156      <bezel element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
157      <bezel element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
158      <bezel element="P7"><bounds left="100" right="180" top="270" bottom="282" /></bezel>
67159   </view>
68160</mamelayout>
trunk/src/mame/layout/zac_proto.lay
r17527r17528
1<!-- flicker.lay -->
1<!-- zac_proto.lay -->
22
3<!-- 2012-08-22: Initial version.  [Robbbert] -->
3<!-- 2012-08-25: Initial version.  [Robbbert] -->
44
55<mamelayout version="2">
66
r17527r17528
1616         <color red="0.0" green="0.0" blue="0.0" />
1717      </rect>
1818   </element>
19   <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element>
19   <element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2020   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2121   <element name="P3"><text string="Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
2222
trunk/src/mame/drivers/zac_1.c
r17527r17528
22
33    Zaccaria Generation 1
44
5    These games allow for up to 4 players at the same time.
6    Setup is via a menu - there are no dipswitches.
7    Most of the games flash 6 and 9 at start- this indicates the battery is flat,
8     and a full setup is required before it can be used.
9    At start, the highscore will be set to a random value. Beating this score will
10     award a bonus. Tilting will cause the high score to advance by 100,000.
11    If at any time you 'clock' the machine (ie exceed 999,990), the last digit will
12     flash, indicating you have a million.
13    Sound - the output board is fitted with 4 oscillators which can be switched on
14     and off independently. Some games come with a NE555 and SN76477 with switchable
15     sounds (achieved with 21 switching diodes and 8 data bits).
516
617ToDo:
7- Inputs
818- Outputs
9- Display
1019- Sound
11- Artwork
20- Proper Artwork
21- Battery Backup
1222
1323**************************************************************************************/
1424
r17527r17528
3444   UINT8 m_t_c;
3545   UINT8 m_out_offs;
3646   required_device<cpu_device> m_maincpu;
47   required_shared_ptr<UINT8> m_p_ram;
3748protected:
3849
3950   // devices
40   required_shared_ptr<UINT8> m_p_ram;
4151
4252   // driver_device overrides
4353   virtual void machine_reset();
4454private:
4555   UINT8 m_input_line;
46public:
47   DECLARE_DRIVER_INIT(zac_1);
4856};
4957
5058
r17527r17528
6472
6573static INPUT_PORTS_START( zac_1 )
6674   PORT_START("TEST")
67   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test") PORT_CODE(KEYCODE_0)
75   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Test") PORT_CODE(KEYCODE_0) // doesn't seem to do anything
6876
6977   PORT_START("ROW0")
70   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE )
78   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) // this performs tests
7179   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
7280   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Slam")
7381   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START )
r17527r17528
7785   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Printer")
7886
7987   PORT_START("ROW1")
80   PORT_BIT( 0xBF, IP_ACTIVE_LOW, IPT_UNUSED )
88   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RAM Reset")
89   PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED )
8190   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
91   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Burn Test")
92
93   PORT_START("ROW2")
94   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
95   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Flap") PORT_CODE(KEYCODE_Q)
96   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Flap") PORT_CODE(KEYCODE_W)
97   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside RH Canal") PORT_CODE(KEYCODE_E)
98   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Outside RH Canal") PORT_CODE(KEYCODE_R)
99   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Outside LH Canal") PORT_CODE(KEYCODE_Y)
100   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Inside LH Canal") PORT_CODE(KEYCODE_U)
101   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Hole") PORT_CODE(KEYCODE_I)
102
103   PORT_START("ROW3")
104   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bumper") PORT_CODE(KEYCODE_O)
105   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Canal") PORT_CODE(KEYCODE_A)
106   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Top Centre Canal") PORT_CODE(KEYCODE_S)
107   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Canal") PORT_CODE(KEYCODE_D)
108   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Fixed Target") PORT_CODE(KEYCODE_F)
109   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Fixed Target") PORT_CODE(KEYCODE_G)
110   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bumper") PORT_CODE(KEYCODE_H)
111   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Hole") PORT_CODE(KEYCODE_J)
112
113   PORT_START("ROW4")
114   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bottom Bumper") PORT_CODE(KEYCODE_K)
115   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Top Contact") PORT_CODE(KEYCODE_L)
116   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Top Contact") PORT_CODE(KEYCODE_Z)
117   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Spinning Target") PORT_CODE(KEYCODE_X)
118   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Lateral Outside Contacts") PORT_CODE(KEYCODE_C)
119   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Spinning Target") PORT_CODE(KEYCODE_V)
120   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Bank Contacts") PORT_CODE(KEYCODE_B)
121   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Moving Target") PORT_CODE(KEYCODE_N)
122
123   PORT_START("ROW5")
124   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 1") PORT_CODE(KEYCODE_M)
125   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 2") PORT_CODE(KEYCODE_MINUS)
126   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 3") PORT_CODE(KEYCODE_EQUALS)
127   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("LH Bank Target 4") PORT_CODE(KEYCODE_BACKSPACE)
128   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 1") PORT_CODE(KEYCODE_OPENBRACE)
129   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 2") PORT_CODE(KEYCODE_CLOSEBRACE)
130   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 3") PORT_CODE(KEYCODE_BACKSLASH)
131   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("RH Bank Target 4") PORT_CODE(KEYCODE_COLON)
82132INPUT_PORTS_END
83133
84134READ8_MEMBER( zac_1_state::ctrl_r )
r17527r17528
90140   if (m_input_line == 0xfd)
91141      return ioport("ROW1")->read();
92142   else
93      return 0xff; // playboard contactors
143   if (m_input_line == 0xfb)
144      return ioport("ROW2")->read();
145   else
146   if (m_input_line == 0xf7)
147      return ioport("ROW3")->read();
148   else
149   if (m_input_line == 0xef)
150      return ioport("ROW4")->read();
151   else
152   if (m_input_line == 0xdf)
153      return ioport("ROW5")->read();
154   else
155      return 0xff;
94156}
95157
96158WRITE8_MEMBER( zac_1_state::ctrl_w )
r17527r17528
133195
134196static TIMER_DEVICE_CALLBACK( zac_1_outtimer )
135197{
198   static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
136199   zac_1_state *state = timer.machine().driver_data<zac_1_state>();
137200   state->m_out_offs++;
138201// displays, solenoids, lamps
202
203   if (state->m_out_offs < 0x40)
204   {
205      UINT8 display = (state->m_out_offs >> 3) & 7;
206      UINT8 digit = state->m_out_offs & 7;
207      output_set_digit_value(display * 10 + digit, patterns[state->m_p_ram[state->m_out_offs]&15]);
208   }
139209// not sure yet but seems scores = 1800-182D; solenoids = 1840-187F;
140// lamps = 1880-18BF; credits &balls=18C0-18FF.
210// lamps = 1880-18BF; bookkeeping=18C0-18FF. 4-tone osc=1850-1853.
141211// 182E-183F is a storage area for inputs.
142212}
143213
144DRIVER_INIT_MEMBER(zac_1_state,zac_1)
145{
146}
147
148214static MACHINE_CONFIG_START( zac_1, zac_1_state )
149215   /* basic machine hardware */
150216   MCFG_CPU_ADD("maincpu", S2650, 6000000/2)
r17527r17528
306372   ROM_LOAD ( "ws5.bin", 0x1000, 0x0400, CRC(5ef51ced) SHA1(390579d0482ceabf87924f7718ef33e336726d92))
307373ROM_END
308374
309GAME(1981, ewf,       0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Earth Wind Fire",     GAME_IS_SKELETON_MECHANICAL)
310GAME(1980, firemntn,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Fire Mountain",       GAME_IS_SKELETON_MECHANICAL)
311GAME(1978, futurwld,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Future World",        GAME_IS_SKELETON_MECHANICAL)
312GAME(1979, hotwheel,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Hot Wheels",          GAME_IS_SKELETON_MECHANICAL)
313GAME(1978, hod,       0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "House of Diamonds",   GAME_IS_SKELETON_MECHANICAL)
314GAME(1981, locomotp,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Locomotion",          GAME_IS_SKELETON_MECHANICAL)
315GAME(1979, strapids,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Shooting the Rapids", GAME_IS_SKELETON_MECHANICAL)
316GAME(1980, sshtlzac,  0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Space Shuttle (Zaccaria)",   GAME_IS_SKELETON_MECHANICAL)
317GAME(1980, stargod,   0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Star God",            GAME_IS_SKELETON_MECHANICAL)
318GAME(1980, stargoda,  stargod, zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Star God (alternate sound)", GAME_IS_SKELETON_MECHANICAL)
319GAME(1978, wsports,   0,       zac_1,  zac_1, zac_1_state,  zac_1,  ROT0,  "Zaccaria",    "Winter Sports",       GAME_IS_SKELETON_MECHANICAL)
375GAME(1981, ewf,       0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Earth Wind Fire",     GAME_MECHANICAL | GAME_NO_SOUND)
376GAME(1980, firemntn,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Fire Mountain",       GAME_IS_SKELETON_MECHANICAL)
377GAME(1978, futurwld,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Future World",        GAME_IS_SKELETON_MECHANICAL)
378GAME(1979, hotwheel,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Hot Wheels",          GAME_IS_SKELETON_MECHANICAL)
379GAME(1978, hod,       0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "House of Diamonds",   GAME_IS_SKELETON_MECHANICAL)
380GAME(1981, locomotp,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Locomotion",          GAME_IS_SKELETON_MECHANICAL)
381GAME(1979, strapids,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Shooting the Rapids", GAME_IS_SKELETON_MECHANICAL)
382GAME(1980, sshtlzac,  0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Space Shuttle (Zaccaria)",   GAME_MECHANICAL | GAME_NO_SOUND)
383GAME(1980, stargod,   0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Star God",            GAME_IS_SKELETON_MECHANICAL)
384GAME(1980, stargoda,  stargod, zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Star God (alternate sound)", GAME_IS_SKELETON_MECHANICAL)
385GAME(1978, wsports,   0,       zac_1,  zac_1, driver_device, 0,  ROT0,  "Zaccaria",    "Winter Sports",       GAME_IS_SKELETON_MECHANICAL)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team