1 // license:BSD-3-Clause
2 // copyright-holders:Nicola Salmoria
3 /***************************************************************************
4 
5 X-Men
6 
7 driver by Nicola Salmoria
8 
9 notes:
10 
11 The way the double screen works in xmen6p is not fully understood.
12 
13 One of the screens probably has a buffer to delay it by 1 frame. If you
14 hardcode buffering to the right screen, the intro is synced correctly,
15 but in-game is not. Buffer the left screen and then in-game is correct,
16 but the intro is not.
17 
18 The board only has one of each gfx chip, the only additional chip not found
19 on the 2/4p board is 053253.  This chip is also on Run n Gun which is
20 likewise a 2 screen game.
21 
22 ***************************************************************************/
23 
24 #include "emu.h"
25 #include "includes/xmen.h"
26 #include "includes/konamipt.h"
27 
28 #include "cpu/m68000/m68000.h"
29 #include "cpu/z80/z80.h"
30 #include "machine/eepromser.h"
31 #include "machine/watchdog.h"
32 #include "sound/ym2151.h"
33 #include "emupal.h"
34 #include "rendlay.h"
35 #include "speaker.h"
36 
37 
38 /***************************************************************************
39 
40   EEPROM
41 
42 ***************************************************************************/
43 
eeprom_w(offs_t offset,uint16_t data,uint16_t mem_mask)44 void xmen_state::eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask)
45 {
46 	logerror("%06x: write %04x to 108000\n", m_maincpu->pc(),data);
47 	if (ACCESSING_BITS_0_7)
48 	{
49 		/* bit 0 = coin counter */
50 		machine().bookkeeping().coin_counter_w(0, data & 0x01);
51 
52 		/* bit 2 is data */
53 		/* bit 3 is clock (active high) */
54 		/* bit 4 is cs (active low) */
55 		ioport("EEPROMOUT")->write(data, 0xff);
56 
57 		/* bit 5 is enabled in IRQ3, disabled in IRQ5 (sprite DMA start?) */
58 		/* bit 7 used in xmen6p to select other tilemap bank (see halfway level 5) */
59 		m_xmen6p_tilemap_select = BIT(data, 7);
60 	}
61 	if (ACCESSING_BITS_8_15)
62 	{
63 		/* bit 8 = enable sprite ROM reading */
64 		m_k053246->k053246_set_objcha_line( (data & 0x0100) ? ASSERT_LINE : CLEAR_LINE);
65 		/* bit 9 = enable char ROM reading through the video RAM */
66 		/* bit 10 = sound irq, but with some kind of hold */
67 		m_k052109->set_rmrd_line((data & 0x0200) ? ASSERT_LINE : CLEAR_LINE);
68 		if(data & 0x400) {
69 			logerror("tick!\n");
70 			m_audiocpu->set_input_line(0, HOLD_LINE);
71 		}
72 	}
73 }
74 
xmen_18fa00_w(offs_t offset,uint16_t data,uint16_t mem_mask)75 void xmen_state::xmen_18fa00_w(offs_t offset, uint16_t data, uint16_t mem_mask)
76 {
77 	if(ACCESSING_BITS_0_7)
78 	{
79 		/* bit 2 is interrupt enable */
80 		m_vblank_irq_mask = data & 0x04;
81 	}
82 }
83 
sound_bankswitch_w(uint8_t data)84 void xmen_state::sound_bankswitch_w(uint8_t data)
85 {
86 	m_z80bank->set_entry(data & 0x07);
87 }
88 
89 
main_map(address_map & map)90 void xmen_state::main_map(address_map &map)
91 {
92 	map(0x000000, 0x03ffff).rom();
93 	map(0x080000, 0x0fffff).rom();
94 	map(0x100000, 0x100fff).rw(m_k053246, FUNC(k053247_device::k053247_word_r), FUNC(k053247_device::k053247_word_w));
95 	map(0x101000, 0x101fff).ram();
96 	map(0x104000, 0x104fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
97 	map(0x108000, 0x108001).w(FUNC(xmen_state::eeprom_w));
98 	map(0x108020, 0x108027).w(m_k053246, FUNC(k053247_device::k053246_w));
99 	map(0x108040, 0x10805f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff);
100 	map(0x108060, 0x10807f).w(m_k053251, FUNC(k053251_device::write)).umask16(0x00ff);
101 	map(0x10a000, 0x10a001).portr("P2_P4").w("watchdog", FUNC(watchdog_timer_device::reset16_w));
102 	map(0x10a002, 0x10a003).portr("P1_P3");
103 	map(0x10a004, 0x10a005).portr("EEPROM");
104 	map(0x10a00c, 0x10a00d).r(m_k053246, FUNC(k053247_device::k053246_r));
105 	map(0x110000, 0x113fff).ram();     /* main RAM */
106 	map(0x18c000, 0x197fff).rw(m_k052109, FUNC(k052109_device::read), FUNC(k052109_device::write)).umask16(0x00ff);
107 	map(0x18fa00, 0x18fa01).w(FUNC(xmen_state::xmen_18fa00_w));
108 }
109 
sound_map(address_map & map)110 void xmen_state::sound_map(address_map &map)
111 {
112 	map(0x0000, 0x7fff).rom();
113 	map(0x8000, 0xbfff).bankr("z80bank");
114 	map(0xc000, 0xdfff).ram();
115 	map(0xe000, 0xe22f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write));
116 	map(0xe800, 0xe801).mirror(0x0400).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
117 	map(0xf000, 0xf003).m(m_k054321, FUNC(k054321_device::sound_map));
118 	map(0xf800, 0xf800).w(FUNC(xmen_state::sound_bankswitch_w));
119 }
120 
121 
_6p_main_map(address_map & map)122 void xmen_state::_6p_main_map(address_map &map)
123 {
124 	map(0x000000, 0x03ffff).rom();
125 	map(0x080000, 0x0fffff).rom();
126 	map(0x100000, 0x100fff).ram().share("spriteram0"); // left screen
127 	map(0x101000, 0x101fff).ram();
128 	map(0x102000, 0x102fff).ram().share("spriteram1"); // right screen
129 	map(0x103000, 0x103fff).ram();     /* 6p - a buffer? */
130 	map(0x104000, 0x104fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
131 	map(0x108000, 0x108001).w(FUNC(xmen_state::eeprom_w));
132 	map(0x108020, 0x108027).w(m_k053246, FUNC(k053247_device::k053246_w)); /* sprites */
133 	map(0x108040, 0x10805f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff);
134 	map(0x108060, 0x10807f).w(m_k053251, FUNC(k053251_device::write)).umask16(0x00ff);
135 	map(0x10a000, 0x10a001).portr("P2_P4").w("watchdog", FUNC(watchdog_timer_device::reset16_w));
136 	map(0x10a002, 0x10a003).portr("P1_P3");
137 	map(0x10a004, 0x10a005).portr("EEPROM");
138 	map(0x10a006, 0x10a007).portr("P5_P6");
139 	map(0x10a00c, 0x10a00d).r(m_k053246, FUNC(k053247_device::k053246_r)); /* sprites */
140 	map(0x110000, 0x113fff).ram();     /* main RAM */
141 /*  map(0x18c000, 0x197fff).w("k052109", FUNC(k052109_device:write)).umask16(0x00ff).share("tilemapleft"); */
142 	map(0x18c000, 0x197fff).ram().share("tilemap0"); // left screen
143 	map(0x18fa00, 0x18fa01).w(FUNC(xmen_state::xmen_18fa00_w));
144 /*
145     map(0x1ac000, 0x1af7ff).readonly();
146     map(0x1ac000, 0x1af7ff).writeonly();
147 
148     map(0x1b0000, 0x1b37ff).readonly();
149     map(0x1b0000, 0x1b37ff).writeonly();
150 
151     map(0x1b4000, 0x1b77ff).readonly();
152     map(0x1b4000, 0x1b77ff).writeonly();
153 */
154 	map(0x1ac000, 0x1b7fff).ram().share("tilemap1"); // right screen
155 
156 	/* what are the regions below buffers? (used by hw or software?) */
157 /*
158     map(0x1cc000, 0x1cf7ff).readonly();
159     map(0x1cc000, 0x1cf7ff).writeonly();
160 
161     map(0x1d0000, 0x1d37ff).readonly();
162     map(0x1d0000, 0x1d37ff).writeonly();
163 */
164 	map(0x1cc000, 0x1d7fff).ram().share("tilemap2"); // left screen
165 
166 	/* whats the stuff below, buffers? */
167 /*
168     map(0x1ec000, 0x1ef7ff).readonly();
169     map(0x1ec000, 0x1ef7ff).writeonly();
170     map(0x1f0000, 0x1f37ff).readonly();
171     map(0x1f0000, 0x1f37ff).writeonly();
172     map(0x1f4000, 0x1f77ff).readonly();
173     map(0x1f4000, 0x1f77ff).writeonly();
174 */
175 	map(0x1ec000, 0x1f7fff).ram().share("tilemap3"); // right screen
176 }
177 
178 
179 static INPUT_PORTS_START( xmen )
180 	PORT_START("P1_P3")
181 	KONAMI16_LSB_UDLR(1, IPT_BUTTON3, IPT_COIN1 )
182 	KONAMI16_MSB_UDLR(3, IPT_BUTTON3, IPT_COIN3 )
183 
184 	PORT_START("P2_P4")
185 	KONAMI16_LSB_UDLR(2, IPT_BUTTON3, IPT_COIN2 )
186 	KONAMI16_MSB_UDLR(4, IPT_BUTTON3, IPT_COIN4 )
187 
188 	PORT_START("EEPROM")
189 	PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
190 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
191 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
192 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
193 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
194 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 )
195 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START4 )
196 	PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
197 	PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
198 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
199 
200 	PORT_START( "EEPROMOUT" )
201 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write)
202 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write)
203 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write)
204 INPUT_PORTS_END
205 
INPUT_PORTS_START(xmen2p)206 static INPUT_PORTS_START( xmen2p )
207 	PORT_START("P1_P3")
208 	KONAMI16_LSB_UDLR(1, IPT_BUTTON3, IPT_COIN1 )
209 	PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
210 
211 	PORT_START("P2_P4")
212 	KONAMI16_LSB_UDLR(2, IPT_BUTTON3, IPT_COIN2 )
213 	PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
214 
215 	PORT_START("EEPROM")
216 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 )
217 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 )
218 	PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
219 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
220 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
221 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
222 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
223 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
224 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
225 	PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
226 	PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
227 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
228 
229 	PORT_START( "EEPROMOUT" )
230 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write)
231 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write)
232 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write)
233 INPUT_PORTS_END
234 
235 READ_LINE_MEMBER(xmen_state::xmen_frame_r)
236 {
237 	return m_screen->frame_number() & 1;
238 }
239 
240 static INPUT_PORTS_START( xmen6p )
241 	PORT_START("P1_P3")
242 	KONAMI16_LSB_UDLR(1, IPT_BUTTON3, IPT_COIN1 )
243 	KONAMI16_MSB_UDLR(3, IPT_BUTTON3, IPT_COIN3 )
244 
245 	PORT_START("P2_P4")
246 	KONAMI16_LSB_UDLR(2, IPT_BUTTON3, IPT_COIN2 )
247 	KONAMI16_MSB_UDLR(4, IPT_BUTTON3, IPT_COIN4 )
248 
249 	PORT_START("P5_P6")
250 	KONAMI16_LSB_UDLR(5, IPT_BUTTON3, IPT_COIN5 )
251 	KONAMI16_MSB_UDLR(6, IPT_BUTTON3, IPT_COIN6 )
252 
253 	PORT_START("EEPROM")
254 	PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN )  /* unused? */
255 	PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
256 	PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
257 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
258 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
259 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START3 )
260 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_START4 )
261 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START5 ) /* not verified */
262 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START6 ) /* not verified */
263 	PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
PORT_READ_LINE_MEMBER(xmen_state,xmen_frame_r)264 	PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(xmen_state, xmen_frame_r)  // screen indicator?
265 
266 	PORT_START( "EEPROMOUT" )
267 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write)
268 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write)
269 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write)
270 INPUT_PORTS_END
271 
272 
273 void xmen_state::machine_start()
274 {
275 	m_z80bank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
276 	m_z80bank->set_entry(0);
277 
278 	save_item(NAME(m_sprite_colorbase));
279 	save_item(NAME(m_layer_colorbase));
280 	save_item(NAME(m_layerpri));
281 	save_item(NAME(m_vblank_irq_mask));
282 	save_item(NAME(m_xmen6p_tilemap_select));
283 }
284 
machine_reset()285 void xmen_state::machine_reset()
286 {
287 	for (int i = 0; i < 3; i++)
288 	{
289 		m_layerpri[i] = 0;
290 		m_layer_colorbase[i] = 0;
291 	}
292 
293 	m_sprite_colorbase = 0;
294 	m_vblank_irq_mask = 0;
295 }
296 
TIMER_DEVICE_CALLBACK_MEMBER(xmen_state::xmen_scanline)297 TIMER_DEVICE_CALLBACK_MEMBER(xmen_state::xmen_scanline)
298 {
299 	int scanline = param;
300 
301 	if(scanline == 240 && m_vblank_irq_mask) // vblank-out irq
302 		m_maincpu->set_input_line(3, HOLD_LINE);
303 
304 	if(scanline == 0) // sprite DMA irq?
305 		m_maincpu->set_input_line(5, HOLD_LINE);
306 }
307 
xmen(machine_config & config)308 void xmen_state::xmen(machine_config &config)
309 {
310 	/* basic machine hardware */
311 	M68000(config, m_maincpu, XTAL(16'000'000)); /* verified on pcb */
312 	m_maincpu->set_addrmap(AS_PROGRAM, &xmen_state::main_map);
313 
314 	TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1);
315 
316 	Z80(config, m_audiocpu, XTAL(16'000'000)/2); /* verified on pcb */
317 	m_audiocpu->set_addrmap(AS_PROGRAM, &xmen_state::sound_map);
318 
319 	EEPROM_ER5911_8BIT(config, "eeprom");
320 
321 	WATCHDOG_TIMER(config, "watchdog");
322 
323 	/* video hardware */
324 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
325 	m_screen->set_refresh_hz(59.17);   /* verified on pcb */
326 	m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
327 	m_screen->set_size(64*8, 32*8);
328 	m_screen->set_visarea(13*8, (64-13)*8-1, 2*8, 30*8-1 );   /* correct, same issue of tmnt2 */
329 	m_screen->set_screen_update(FUNC(xmen_state::screen_update_xmen));
330 	m_screen->set_palette("palette");
331 
332 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
333 
334 	K052109(config, m_k052109, 0);
335 	m_k052109->set_palette("palette");
336 	m_k052109->set_screen(nullptr);
337 	m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
338 
339 	K053246(config, m_k053246, 0);
340 	m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
341 	m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
342 	m_k053246->set_palette("palette");
343 
344 	K053251(config, m_k053251, 0);
345 
346 	/* sound hardware */
347 	SPEAKER(config, "lspeaker").front_left();
348 	SPEAKER(config, "rspeaker").front_right();
349 
350 	K054321(config, m_k054321, "lspeaker", "rspeaker");
351 
352 	YM2151(config, "ymsnd", XTAL(16'000'000)/4).add_route(0, "lspeaker", 0.20).add_route(1, "rspeaker", 0.20);  /* verified on pcb */
353 
354 	K054539(config, m_k054539, XTAL(18'432'000));
355 	m_k054539->add_route(0, "rspeaker", 1.00);
356 	m_k054539->add_route(1, "lspeaker", 1.00);
357 }
358 
xmen6p(machine_config & config)359 void xmen_state::xmen6p(machine_config &config)
360 {
361 	/* basic machine hardware */
362 	M68000(config, m_maincpu, XTAL(16'000'000));
363 	m_maincpu->set_addrmap(AS_PROGRAM, &xmen_state::_6p_main_map);
364 
365 	TIMER(config, "scantimer").configure_scanline(FUNC(xmen_state::xmen_scanline), "screen", 0, 1);
366 
367 	Z80(config, m_audiocpu, XTAL(16'000'000)/2);
368 	m_audiocpu->set_addrmap(AS_PROGRAM, &xmen_state::sound_map);
369 
370 	EEPROM_ER5911_8BIT(config, "eeprom");
371 
372 	WATCHDOG_TIMER(config, "watchdog");
373 
374 	/* video hardware */
375 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows();
376 	config.set_default_layout(layout_dualhsxs);
377 
378 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
379 	m_screen->set_refresh_hz(60);
380 	m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
381 	m_screen->set_size(64*8, 32*8);
382 	m_screen->set_visarea(12*8, 48*8-1, 2*8, 30*8-1);
383 	m_screen->set_screen_update(FUNC(xmen_state::screen_update_xmen6p_left));
384 	m_screen->set_palette("palette");
385 
386 	screen_device &screen2(SCREEN(config, "screen2", SCREEN_TYPE_RASTER));
387 	screen2.set_refresh_hz(60);
388 	screen2.set_vblank_time(ATTOSECONDS_IN_USEC(0));
389 	screen2.set_size(64*8, 32*8);
390 	screen2.set_visarea(16*8, 52*8-1, 2*8, 30*8-1);
391 	screen2.set_screen_update(FUNC(xmen_state::screen_update_xmen6p_right));
392 	screen2.screen_vblank().set(FUNC(xmen_state::screen_vblank_xmen6p));
393 	screen2.set_palette("palette");
394 
395 	MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p)
396 
397 	K052109(config, m_k052109, 0);
398 	m_k052109->set_palette("palette");
399 	m_k052109->set_screen(nullptr);
400 	m_k052109->set_tile_callback(FUNC(xmen_state::tile_callback));
401 
402 	K053246(config, m_k053246, 0);
403 	m_k053246->set_sprite_callback(FUNC(xmen_state::sprite_callback));
404 	m_k053246->set_config(NORMAL_PLANE_ORDER, 53, -2);
405 	m_k053246->set_screen(m_screen);
406 	m_k053246->set_palette("palette");
407 
408 	K053251(config, m_k053251, 0);
409 
410 	K054321(config, m_k054321, "lspeaker", "rspeaker");
411 
412 	/* sound hardware */
413 	SPEAKER(config, "lspeaker").front_left();
414 	SPEAKER(config, "rspeaker").front_right();
415 
416 	YM2151(config, "ymsnd", XTAL(16'000'000)/4).add_route(0, "lspeaker", 0.20).add_route(1, "rspeaker", 0.20);
417 
418 	K054539(config, m_k054539, XTAL(18'432'000));
419 	m_k054539->add_route(0, "rspeaker", 1.00);
420 	m_k054539->add_route(1, "lspeaker", 1.00);
421 }
422 
423 
424 /***************************************************************************
425 
426   Game driver(s)
427 
428 ***************************************************************************/
429 
430 /*
431 
432     KONAMI - X-MEN 2P/4P - GX065 - PWB353018A
433 
434     +--------------------------------------------------------------------------------------+
435     |                                                                                      |
436     |                                  [  065A06.1f  ]     [  065A12.1h  ][  065A11.1l  ]  |
437     |                                                                                      |
438     | sound                                                [  065A09.1h  ][  065A10.1l  ]  |
439     |  out                                                                                 |
440     |                                                                                      |
441     |        [  054544  ] [  054539  ]                                                     |
442     |                                                                                      |
443     |                                                                                      |
444     +-+     [    Z80    ] [ YM2151 ] [  065*01.6f  ]                                       |
445       |                                                                                    |
446     +-+                                                                     [  053246  ]   |
447     |                                                                                      |
448     |                   [  065A02.9d  ]  [  065A03.9f  ]                                   |
449     +-+                                                                                    |
450     +-+                 [  065*04.10d ]  [  065*05.10f ]                                   |
451     |   J                                                                                  |
452     |   A                                                                                  |
453     |   M                                                                   [  053247  ]   |
454     |   M                                                                                  |
455     |   A              [     68000 - 16Mhz     ]  [qz 24Mhz]                               |
456     |                                                                                      |
457     |                                                                                      |
458     |                                                                                      |
459     |                    [qz 32Mhz/18.432Mhz]   [  052109  ] [  051962  ]   [  053251  ]   |
460     |                                                                                      |
461     +-+                                                                                    |
462       |                                                                    [  065A08.15l ] |
463     +-+                                                                                    |
464     |                                                                      [  065A07.16l ] |
465     |     [cn7 (4P)]                                                                       |
466     |test                                                                                  |
467     | sw  [cn6 (3P)]                                                                       |
468     |                                                                                      |
469     +--------------------------------------------------------------------------------------+
470 
471     054544
472     054539
473     053246
474     053247
475     052109
476     051962
477     053251
478 */
479 
480 ROM_START( xmen )
481 	ROM_REGION( 0x100000, "maincpu", 0 )
482 	ROM_LOAD16_BYTE( "065-eba04.10d",  0x00000, 0x20000, CRC(3588c5ec) SHA1(7966e7259038468845dafd19e5f7fc576c2901fa) ) /* Europe 4 Player version */
483 	ROM_LOAD16_BYTE( "065-eba05.10f",  0x00001, 0x20000, CRC(79ce32f8) SHA1(1a21b38d4a82103d78e246aca68ed3e4afaf60f3) )
484 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
485 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
486 
487 	ROM_REGION( 0x20000, "audiocpu", 0 )
488 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
489 
490 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
491 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
492 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
493 
494 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
495 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
496 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
497 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
498 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
499 
500 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
501 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
502 
503 	ROM_REGION( 0x80, "eeprom", 0 )
504 	ROM_LOAD( "xmen_eba.nv", 0x0000, 0x0080, CRC(37f8e77a) SHA1(0b92caba33486c6fd104806aa96f735743bb2221) )
505 ROM_END
506 
507 ROM_START( xmenu )
508 	ROM_REGION( 0x100000, "maincpu", 0 )
509 	ROM_LOAD16_BYTE( "065-ubb04.10d",  0x00000, 0x20000, CRC(f896c93b) SHA1(0bee89fe4d36a9b2ded864770198eb2df6903580) ) /* US 4 Player version */
510 	ROM_LOAD16_BYTE( "065-ubb05.10f",  0x00001, 0x20000, CRC(e02e5d64) SHA1(9838c1cf9862db3ca70a23ef5f3c5883729c4e0c) )
511 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
512 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
513 
514 	ROM_REGION( 0x20000, "audiocpu", 0 )
515 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
516 
517 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
518 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
519 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
520 
521 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
522 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
523 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
524 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
525 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
526 
527 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
528 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
529 
530 	ROM_REGION( 0x80, "eeprom", 0 )
531 	ROM_LOAD( "xmen_ubb.nv", 0x0000, 0x0080, CRC(52f334ba) SHA1(171c22b5ac41bcbbcfc31528cf49c096f6829a72) )
532 ROM_END
533 
534 ROM_START( xmenua )
535 	ROM_REGION( 0x100000, "maincpu", 0 )
536 	ROM_LOAD16_BYTE( "065-ueb04.10d",  0x00000, 0x20000, CRC(eee4e7ef) SHA1(72fe588bc58c692e7f9891f3e89c7d6fcc28c480) ) /* US 4 Player version */
537 	ROM_LOAD16_BYTE( "065-ueb05.10f",  0x00001, 0x20000, CRC(c3b2ffde) SHA1(27b32429c8c35cf15d1e5437535c4c335eee2118) )
538 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
539 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
540 
541 	ROM_REGION( 0x20000, "audiocpu", 0 )
542 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
543 
544 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
545 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
546 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
547 
548 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
549 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
550 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
551 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
552 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
553 
554 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
555 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
556 
557 	ROM_REGION( 0x80, "eeprom", 0 )
558 	ROM_LOAD( "xmen_ueb.nv", 0x0000, 0x0080, CRC(db85fef4) SHA1(9387d2f4dbb3cb5cdf59d2304393ac50b3c12ebe) )
559 ROM_END
560 
561 ROM_START( xmenj )
562 	ROM_REGION( 0x100000, "maincpu", 0 )
563 	ROM_LOAD16_BYTE( "065-jba04.10d",  0x00000, 0x20000, CRC(d86cf5eb) SHA1(8bf67eb6cdb7187142557c27b058282886984a61) ) /* Japan 4 Player version */
564 	ROM_LOAD16_BYTE( "065-jba05.10f",  0x00001, 0x20000, CRC(abbc8126) SHA1(482a3c9be45b9d77460bd3df94e3c6cf285e63a2) )
565 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
566 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
567 
568 	ROM_REGION( 0x20000, "audiocpu", 0 )
569 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
570 
571 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
572 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
573 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
574 
575 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
576 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
577 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
578 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
579 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
580 
581 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
582 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
583 
584 	ROM_REGION( 0x80, "eeprom", 0 )
585 	ROM_LOAD( "xmen_jba.nv", 0x0000, 0x0080, CRC(7439cea7) SHA1(d34b8ed0549b0457362159098e5c86b1356e35d0) )
586 ROM_END
587 
588 ROM_START( xmenja )
589 	ROM_REGION( 0x100000, "maincpu", 0 )
590 	ROM_LOAD16_BYTE( "065-jea04.10d",  0x00000, 0x20000, CRC(655a61d6) SHA1(30a50b0a13205252d1cec6b6a6300e25c2f376c6) ) /* Japan 4 Player version */
591 	ROM_LOAD16_BYTE( "065-jea05.10f",  0x00001, 0x20000, CRC(7ea9fc84) SHA1(767f957c0c2f6a2d938d9e37388a17a6bce01dd8) )
592 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
593 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
594 
595 	ROM_REGION( 0x20000, "audiocpu", 0 )
596 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
597 
598 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
599 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
600 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
601 
602 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
603 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
604 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
605 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
606 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
607 
608 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
609 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
610 
611 	ROM_REGION( 0x80, "eeprom", 0 )
612 	ROM_LOAD( "xmen_jea.nv", 0x0000, 0x0080, CRC(df5b6bc6) SHA1(42fff0793bb1488bcdd69c39a8c5f58cdf39e1ff) )
613 ROM_END
614 
615 ROM_START( xmena )
616 	ROM_REGION( 0x100000, "maincpu", 0 )
617 	ROM_LOAD16_BYTE( "065-aea04.10d",  0x00000, 0x20000, CRC(0e8d2e98) SHA1(f58613bd8719566ae04d4b5f03864524a7c86a65) ) /* Asia 4 Player version */
618 	ROM_LOAD16_BYTE( "065-aea05.10f",  0x00001, 0x20000, CRC(0b742a4e) SHA1(ed9c986261e72af7a80b44f9c2c576c265807e90) )
619 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
620 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
621 
622 	ROM_REGION( 0x20000, "audiocpu", 0 )
623 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
624 
625 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
626 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
627 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
628 
629 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
630 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
631 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
632 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
633 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
634 
635 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
636 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
637 
638 	ROM_REGION( 0x80, "eeprom", 0 )
639 	ROM_LOAD( "xmen_aea.nv", 0x0000, 0x0080, CRC(d73d4f20) SHA1(b39906eb59ecf8f1e8141b467021e0a581186d47) )
640 ROM_END
641 
642 ROM_START( xmenaa )
643 	ROM_REGION( 0x100000, "maincpu", 0 )
644 	ROM_LOAD16_BYTE( "065-ada04.10d",  0x00000, 0x20000, CRC(b8276624) SHA1(5b601393faa4bf578d84b590eb2360ad400368a5) ) /* Asia 4 Player version */
645 	ROM_LOAD16_BYTE( "065-ada05.10f",  0x00001, 0x20000, CRC(c68582ad) SHA1(d2ca23cc0ad08e7f3d5c533f6fe43d4c215c114e) )
646 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
647 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
648 
649 	ROM_REGION( 0x20000, "audiocpu", 0 )
650 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
651 
652 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
653 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
654 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
655 
656 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
657 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
658 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
659 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
660 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
661 
662 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
663 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
664 
665 	ROM_REGION( 0x80, "eeprom", 0 )
666 	ROM_LOAD( "xmen_ada.nv", 0x0000, 0x0080, CRC(a77a3891) SHA1(84ec257790d5c1859ffcbc9371a72ea99d7f8928) )
667 ROM_END
668 
669 ROM_START( xmen2pe )
670 	ROM_REGION( 0x100000, "maincpu", 0 )
671 	ROM_LOAD16_BYTE( "065-eaa04.10d",  0x00000, 0x20000, CRC(502861e7) SHA1(f96aab2d2006703065de5bd7e341f929d04f5f60) ) /* Europe 2 Player version */
672 	ROM_LOAD16_BYTE( "065-eaa05.10f",  0x00001, 0x20000, CRC(ca6071bf) SHA1(454ddc3b598389e960e87e577a01a7de71d1f591) )
673 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
674 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
675 
676 	ROM_REGION( 0x20000, "audiocpu", 0 )
677 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
678 
679 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
680 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
681 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
682 
683 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
684 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
685 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
686 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
687 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
688 
689 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
690 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
691 
692 	ROM_REGION( 0x80, "eeprom", 0 )
693 	ROM_LOAD( "xmen_eaa.nv", 0x0000, 0x0080, CRC(1cbcb653) SHA1(a86b4ad34ccbd868662ff8c61eb21ec07e8bf8b1) )
694 ROM_END
695 
696 ROM_START( xmen2pu )
697 	ROM_REGION( 0x100000, "maincpu", 0 )
698 	ROM_LOAD16_BYTE( "065-uab04.10d",  0x00000, 0x20000, CRC(ff003db1) SHA1(b8aeb98dc0a38f0bda152d893fb60679bbdbadb3) ) /* US 2 Player version */
699 	ROM_LOAD16_BYTE( "065-uab05.10f",  0x00001, 0x20000, CRC(4e99a943) SHA1(66b47de497a116b2002cc5496c1a3f4173a55bc5) )
700 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
701 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
702 
703 	ROM_REGION( 0x20000, "audiocpu", 0 )
704 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
705 
706 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
707 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
708 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
709 
710 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
711 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
712 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
713 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
714 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
715 
716 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
717 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
718 
719 	ROM_REGION( 0x80, "eeprom", 0 )
720 	ROM_LOAD( "xmen_uab.nv", 0x0000, 0x0080, CRC(79b76593) SHA1(f9921a2963f249fa341bfb57cc9e213e2efed9b9) )
721 ROM_END
722 
723 ROM_START( xmen2pj )
724 	ROM_REGION( 0x100000, "maincpu", 0 )
725 	ROM_LOAD16_BYTE( "065-jaa04.10d",  0x00000, 0x20000, CRC(66746339) SHA1(8cc5f5deb4178b0444ffc5974940a30cb003114e) ) /* Japan 2 Player version */
726 	ROM_LOAD16_BYTE( "065-jaa05.10f",  0x00001, 0x20000, CRC(1215b706) SHA1(b746dedab9c509b5cd941f0f4ddd3709e8a58cce) )
727 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
728 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
729 
730 	ROM_REGION( 0x20000, "audiocpu", 0 )
731 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
732 
733 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
734 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
735 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
736 
737 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
738 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
739 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
740 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
741 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
742 
743 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
744 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
745 
746 	ROM_REGION( 0x80, "eeprom", 0 )
747 	ROM_LOAD( "xmen_jaa.nv", 0x0000, 0x0080, CRC(849a9e19) SHA1(bd335a2d33bf4433de4fd57b8108b216eb3a2cf1) )
748 ROM_END
749 
750 ROM_START( xmen2pa )
751 	ROM_REGION( 0x100000, "maincpu", 0 )
752 	ROM_LOAD16_BYTE( "065-aaa04.10d",  0x00000, 0x20000, CRC(7f8b27c2) SHA1(052db1f47671564a440544a41fc397a19d1aff3a) ) /* Asia 2 Player version */
753 	ROM_LOAD16_BYTE( "065-aaa05.10f",  0x00001, 0x20000, CRC(841ed636) SHA1(33f96022ce3dae9b49eb51fd4e8f7387a1777002) )
754 	ROM_LOAD16_BYTE( "065-a02.9d",     0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
755 	ROM_LOAD16_BYTE( "065-a03.9f",     0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
756 
757 	ROM_REGION( 0x20000, "audiocpu", 0 )
758 	ROM_LOAD( "065-a01.6f",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
759 
760 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
761 	ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
762 	ROM_LOAD32_WORD( "065-a07.16l", 0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
763 
764 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
765 	ROM_LOAD64_WORD( "065-a09.2h",  0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) ) /* sprites */
766 	ROM_LOAD64_WORD( "065-a10.2l",  0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
767 	ROM_LOAD64_WORD( "065-a12.1h",  0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
768 	ROM_LOAD64_WORD( "065-a11.1l",  0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
769 
770 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
771 	ROM_LOAD( "065-a06.1f",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
772 
773 	ROM_REGION( 0x80, "eeprom", 0 )
774 	ROM_LOAD( "xmen_aaa.nv", 0x0000, 0x0080, CRC(750fd447) SHA1(27884c1ceb0b5174f7d06e1e06bbbd6d6c5b47e7) )
775 ROM_END
776 
777 /*
778 
779  KONAMI - X-MEN 2P/4P/6P - GX065 - PWB352532B
780 
781     +--------------------------------------------------------------------------------------+
782     |                                                                                      |
783     |                      [  065A06.1d  ]                 [  065A07.1h  ][  065A08.1l  ]  |
784     |                                                                                      |
785     |       [  054544  ]                                                                   |
786     |                      [  054539  ]     [  053251  ]   [  051962  ] [  052109  ]       |
787     |                                                                                      |
788     |         [ YM2151 ]                                                                   |
789     | sound                     [qz 24Mhz]                                                 |
790     |  out                                                                                 |
791     +-+  [  065*01.7b  ]                                                                   |
792       |                                                                                    |
793     +-+                                                                                    |
794     |      [    Z80    ]                                                                   |
795     |                                                                                      |
796     +-+                                                                                    |
797     +-+                                                                                    |
798     |   J                                                                                  |
799     |   A                                                                           [0     |
800     |   M                                                                            6     |
801     |   M                                                                            5     |
802     |   A                                                                            A     |
803     |                                                                                0     |
804     |                                      [  053253  ]   [  053247  ] [  053246  ]  9.12l]|
805     |                                                                                      |
806     |                                                                               [0     |
807     |                                                                                6     |
808     +-+                                                                              5     |
809       |                                   [  065A02.17g ]  [  065A03.17j ]           A     |
810     +-+                                                                              1     |
811     | test                                [  065*04.18g ]  [  065*05.18j ]           0.17l]|
812     |  sw                                                                                  |
813     | [cn9 (6P)]                                 [     68000 - 16Mhz     ]                 |
814     | [cn8 (5P)]                                                                           |
815     | [cn7 (4P)]                      [qz 32Mhz/18.432Mhz] [  065A12.22h ][  065A11.22l ]  |
816     | [cn6 (3P)]                                                                           |
817     |    rgb out                                                                           |
818     +--------------------------------------------------------------------------------------+
819 
820     054544 *
821     054539 *
822     053251 *
823     051962 *
824     052109 *
825     053253 - not on other version?
826     053247 *
827     053246 *
828 
829 */
830 
831 ROM_START( xmen6p )
832 	ROM_REGION( 0x100000, "maincpu", 0 )
833 	ROM_LOAD16_BYTE( "065-ecb04.18g", 0x00000, 0x20000, CRC(258eb21f) SHA1(f1a22a880245f28195e5b6519822c0aa3b166541) ) /* Euro 6 Player version */
834 	ROM_LOAD16_BYTE( "065-ecb05.18j", 0x00001, 0x20000, CRC(25997bcd) SHA1(86fb1c64e133b7ca59ffb3910b62b61ee372c71a) )
835 	ROM_LOAD16_BYTE( "065-a02.17g",   0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
836 	ROM_LOAD16_BYTE( "065-a03.17j",   0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
837 
838 	ROM_REGION( 0x20000, "audiocpu", 0 )
839 	ROM_LOAD( "065-a01.7b",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
840 
841 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
842 	ROM_LOAD32_WORD( "065-a08.1l",  0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
843 	ROM_LOAD32_WORD( "065-a07.1h",  0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
844 
845 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
846 	ROM_LOAD64_WORD( "065-a09.12l", 0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) )    /* sprites */
847 	ROM_LOAD64_WORD( "065-a10.17l", 0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
848 	ROM_LOAD64_WORD( "065-a12.22h", 0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
849 	ROM_LOAD64_WORD( "065-a11.22l", 0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
850 
851 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
852 	ROM_LOAD( "065-a06.1d",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
853 
854 	ROM_REGION( 0x80, "eeprom", 0 )
855 	ROM_LOAD( "xmen_ecb.nv", 0x0000, 0x0080, CRC(462c6e1a) SHA1(a57087163d7a760d5922c70842cfae20e6a2f5b5) )
856 ROM_END
857 
858 ROM_START( xmen6pu )
859 	ROM_REGION( 0x100000, "maincpu", 0 )
860 	ROM_LOAD16_BYTE( "065-ucb04.18g", 0x00000, 0x20000, CRC(0f09b8e0) SHA1(79f4d86d8ec45b39e34ddf45860bea0c74dae183) ) /* US 6 Player version */
861 	ROM_LOAD16_BYTE( "065-ucb05.18j", 0x00001, 0x20000, CRC(867becbf) SHA1(3f81f4dbd289f98b78d7821a8925598c771f01ef) )
862 	ROM_LOAD16_BYTE( "065-a02.17g",   0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
863 	ROM_LOAD16_BYTE( "065-a03.17j",   0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
864 
865 	ROM_REGION( 0x20000, "audiocpu", 0 )
866 	ROM_LOAD( "065-a01.7b",   0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
867 
868 	ROM_REGION( 0x200000, "k052109", 0 )    /* tiles */
869 	ROM_LOAD32_WORD( "065-a08.1l",  0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
870 	ROM_LOAD32_WORD( "065-a07.1h",  0x000002, 0x100000, CRC(c5dc8fc4) SHA1(9887cb002c8b72be7ce933cb397f00cdc5506c8c) )
871 
872 	ROM_REGION( 0x400000, "k053246", 0 )   /* graphics (addressable by the main CPU) */
873 	ROM_LOAD64_WORD( "065-a09.12l", 0x000000, 0x100000, CRC(ea05d52f) SHA1(7f2c14f907355856fb94e3a67b73aa1919776835) )    /* sprites */
874 	ROM_LOAD64_WORD( "065-a10.17l", 0x000002, 0x100000, CRC(96b91802) SHA1(641943557b59b91f0edd49ec8a73cef7d9268b32) )
875 	ROM_LOAD64_WORD( "065-a12.22h", 0x000004, 0x100000, CRC(321ed07a) SHA1(5b00ed676daeea974bdce6701667cfe573099dad) )
876 	ROM_LOAD64_WORD( "065-a11.22l", 0x000006, 0x100000, CRC(46da948e) SHA1(168ac9178ee5bad5931557fb549e1237971d7839) )
877 
878 	ROM_REGION( 0x200000, "k054539", 0 )    /* samples for the 054539 */
879 	ROM_LOAD( "065-a06.1d",  0x000000, 0x200000, CRC(5adbcee0) SHA1(435feda697193bc51db80eba46be474cbbc1de4b) )
880 
881 	ROM_REGION( 0x80, "eeprom", 0 )
882 	ROM_LOAD( "xmen_ucb.nv", 0x0000, 0x0080, CRC(f3d0f682) SHA1(b0d4655c651238ae028ffb59a704acba798f93f8) )
883 ROM_END
884 
885 /*
886 
887 Second "version" letter denotes cabinet type:
888 
889 A = 2 players, 2 coin slots, can set coin/credit by coin slot, COINs common/independent (when independent, premium start & continue values can be set), FREE PLAY option, requires start buttons
890 B = 4 players, 4 coin slots, can set premium start & continue value, with or without start buttons
891 C = 6 players, 6 coin slots, can set premium start & continue value, no support for START buttons, 2 monitors
892 D = 4 players, 4 coin slots, 4 seperate service coins, can set premium start & continue value, with or without start buttons
893 E = 4 players, 2 coin slots, can set coin/credit by coin slot, FREE PLAY option, requires start buttons
894 
895 */
896 
897 GAME( 1992, xmen,    0,    xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver EBA)", MACHINE_SUPPORTS_SAVE )
898 GAME( 1992, xmenu,   xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver UBB)", MACHINE_SUPPORTS_SAVE )
899 GAME( 1992, xmenua,  xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver UEB)", MACHINE_SUPPORTS_SAVE )
900 GAME( 1992, xmenj,   xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver JBA)", MACHINE_SUPPORTS_SAVE )
901 GAME( 1992, xmenja,  xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver JEA)", MACHINE_SUPPORTS_SAVE )
902 GAME( 1992, xmena,   xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver AEA)", MACHINE_SUPPORTS_SAVE )
903 GAME( 1992, xmenaa,  xmen, xmen,   xmen,   xmen_state,  empty_init, ROT0, "Konami", "X-Men (4 Players ver ADA)", MACHINE_SUPPORTS_SAVE )
904 
905 GAME( 1992, xmen2pe, xmen, xmen,   xmen2p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (2 Players ver EAA)", MACHINE_SUPPORTS_SAVE )
906 GAME( 1992, xmen2pu, xmen, xmen,   xmen2p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (2 Players ver UAB)", MACHINE_SUPPORTS_SAVE )
907 GAME( 1992, xmen2pj, xmen, xmen,   xmen2p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (2 Players ver JAA)", MACHINE_SUPPORTS_SAVE )
908 GAME( 1992, xmen2pa, xmen, xmen,   xmen2p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (2 Players ver AAA)", MACHINE_SUPPORTS_SAVE )
909 
910 GAME( 1992, xmen6p,  xmen, xmen6p, xmen6p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (6 Players ver ECB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
911 GAME( 1992, xmen6pu, xmen, xmen6p, xmen6p, xmen_state,  empty_init, ROT0, "Konami", "X-Men (6 Players ver UCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
912