1 // license:BSD-3-Clause
2 // copyright-holders:Ernesto Corvi
3 /***************************************************************************
4 
5 The Simpsons (c) 1991 Konami Co. Ltd
6 
7 Preliminary driver by:
8 Ernesto Corvi
9 someone@secureshell.com
10 
11 
12 ****************************************************************************
13 
14 The Simpsons
15 Konami 1991
16 
17 PCB Layout
18 ----------
19 
20 GX072 PWB352346B
21 |--------------------------------------------------------|
22 | MB3722   072D04.1D  072D05.1F           8464           |
23 |VOL VOL   YM2151   |------|            |------|072B08.3N|
24 |          YM3012   |053260| 3.579545MHz|053246|         |
25 |CN3                |      |            |      |         |
26 |                   |------|            |      |         |
27 |                   Z80     072E03.6G   |      |         |
28 |                                       |------|         |
29 |                           8416                         |
30 |                           2018        |------|         |
31 |  052535                   2018        |053247|072B09.8N|
32 |  052535                               |      |         |
33 |J 052535                               |      |         |
34 |A                                      |      |         |
35 |M 051550                               |------|         |
36 |M                                      |------|         |
37 |A     053994  053995   8464            |053251|         |
38 |                                       |      |072B10.12N
39 |   ER5911.12C                          |------|         |
40 |      072M13.13C             |------|  |------|         |
41 |005273(X10)      |------|    |052109|  |051962|         |
42 |      072L12.15C |053248|    |      |  |      |         |
43 |TEST_SW          |      |    |      |  |      |         |
44 |      072G02.16C |------|    |------|  |------|072B11.16L
45 |CN6                         8464 072B06.16H             |
46 |CN7   072G01.17C      24MHz 8464 072B07.18H             |
47 |--------------------------------------------------------|
48 Notes:
49       ER5911 - EEPROM (128 bytes)
50       8464   - Fujitsu MB8464 8kx8 SRAM (DIP28)
51       8416   - Fujitsu MB8416 2kx8 SRAM (DIP24)
52       2018   - Motorola MCM2018 2kx8 SRAM (DIP24)
53       MB3722 - Audio Power AMP
54       Z80    - Clock 3.579545MHz
55       YM2151 - Clock 3.579545MHz
56       YM3012 - Clock 1.7897725MHz [3.579545/2]
57       CN6/7  - 15 pin connector for player 3 and player 4 controls
58       CN3    - 4 pin connector for stereo sound output for left & right speaker
59                (left speaker also outputs via JAMMA connector)
60 
61       Custom Chips
62       ------------
63       053248 - CPU (QFP80). Clock input 12.000MHz [24/2]. Clock output 3.000MHz [24/8]
64       053260 - Sound chip (QFP80). Clock input 3.579545MHz. Clock output 1.7897725 [3.579545/2] for YM3012
65       053246 \
66       053247 / Sprite generators (QFP120)
67       052109 \
68       051962 / Tilemap Generators (QFP120)
69       053251 - Priority encoder (QFP100)
70       052535 - RGB DAC (ceramic encased SIP9)
71       051550 - EMI filter for credit/coin counter (ceramic encased SIP23)
72       005273 - Resistor array for player 3 & player 4 controls (ceramic encased SIP10)
73       053994 \
74       053995 / PALs (MMI PAL16L8, DIP20)
75 
76       ROMs
77       ----
78       072D04 -  256kx8 DIP40 MaskROM (Sound Samples)
79       072D05 -  1Mx8 DIP40 MaskROM (Sound Samples)
80       072E03 -  32kx8 MaskROM (Z80 Sound Program)
81       072B08 \
82       072B09  |
83       072B10  | 512kx16 DIP40 MaskROM (Sprites)
84       072B11 /
85       072B06 \
86       072B07 /  256kx16 DIP40 MaskROM (Tiles)
87       072M13 \
88       072L12  |
89       072G02  | 128kx8 DIP32 MaskROM (Main Program)
90       072G01 /
91 
92       Sync Measurements
93       -----------------
94       VSync - 59.1856Hz
95       HSync - 15.1566kHz
96 
97 ***************************************************************************/
98 
99 #include "emu.h"
100 #include "includes/simpsons.h"
101 #include "includes/konamipt.h"
102 
103 #include "cpu/z80/z80.h"
104 #include "machine/eepromser.h"
105 #include "machine/watchdog.h"
106 #include "sound/ym2151.h"
107 #include "sound/k053260.h"
108 #include "emupal.h"
109 #include "speaker.h"
110 
111 
112 /***************************************************************************
113 
114   Memory Maps
115 
116 ***************************************************************************/
117 
main_map(address_map & map)118 void simpsons_state::main_map(address_map &map)
119 {
120 	map(0x0000, 0x1fff).rw(m_k052109, FUNC(k052109_device::read), FUNC(k052109_device::write));
121 	map(0x0000, 0x0fff).m(m_bank0000, FUNC(address_map_bank_device::amap8));
122 	map(0x2000, 0x3fff).m(m_bank2000, FUNC(address_map_bank_device::amap8));
123 	map(0x1f80, 0x1f80).portr("COIN");
124 	map(0x1f81, 0x1f81).portr("TEST");
125 	map(0x1f90, 0x1f90).portr("P1");
126 	map(0x1f91, 0x1f91).portr("P2");
127 	map(0x1f92, 0x1f92).portr("P3");
128 	map(0x1f93, 0x1f93).portr("P4");
129 	map(0x1fa0, 0x1fa7).w(m_k053246, FUNC(k053247_device::k053246_w));
130 	map(0x1fb0, 0x1fbf).w(m_k053251, FUNC(k053251_device::write));
131 	map(0x1fc0, 0x1fc0).w(FUNC(simpsons_state::simpsons_coin_counter_w));
132 	map(0x1fc2, 0x1fc2).w(FUNC(simpsons_state::simpsons_eeprom_w));
133 	map(0x1fc4, 0x1fc4).r(FUNC(simpsons_state::simpsons_sound_interrupt_r));
134 	map(0x1fc6, 0x1fc7).rw("k053260", FUNC(k053260_device::main_read), FUNC(k053260_device::main_write));
135 	map(0x1fc8, 0x1fc9).r(m_k053246, FUNC(k053247_device::k053246_r));
136 	map(0x1fca, 0x1fca).r("watchdog", FUNC(watchdog_timer_device::reset_r));
137 	map(0x4000, 0x5fff).ram();
138 	map(0x6000, 0x7fff).bankr("bank1");
139 	map(0x8000, 0xffff).rom().region("maincpu", 0x78000);
140 }
141 
bank0000_map(address_map & map)142 void simpsons_state::bank0000_map(address_map &map)
143 {
144 	map(0x0000, 0x0fff).rw(m_k052109, FUNC(k052109_device::read), FUNC(k052109_device::write));
145 	map(0x1000, 0x1fff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
146 }
147 
bank2000_map(address_map & map)148 void simpsons_state::bank2000_map(address_map &map)
149 {
150 	map(0x0000, 0x1fff).rw(FUNC(simpsons_state::simpsons_k052109_r), FUNC(simpsons_state::simpsons_k052109_w));
151 	map(0x2000, 0x2fff).rw(FUNC(simpsons_state::simpsons_k053247_r), FUNC(simpsons_state::simpsons_k053247_w));
152 	map(0x3000, 0x3fff).ram();
153 }
154 
z80_bankswitch_w(uint8_t data)155 void simpsons_state::z80_bankswitch_w(uint8_t data)
156 {
157 	membank("bank2")->set_entry(data & 7);
158 }
159 
160 
device_timer(emu_timer & timer,device_timer_id id,int param,void * ptr)161 void simpsons_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
162 {
163 	switch (id)
164 	{
165 	case TIMER_DMASTART:
166 		if (m_firq_enabled)
167 			m_maincpu->set_input_line(KONAMI_FIRQ_LINE, ASSERT_LINE);
168 		break;
169 	case TIMER_DMAEND:
170 		m_maincpu->set_input_line(KONAMI_FIRQ_LINE, CLEAR_LINE);
171 		break;
172 	default:
173 		throw emu_fatalerror("Unknown id in simpsons_state::device_timer");
174 	}
175 }
176 
177 
z80_arm_nmi_w(uint8_t data)178 void simpsons_state::z80_arm_nmi_w(uint8_t data)
179 {
180 	m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
181 	m_nmi_enabled = machine().time().as_ticks(m_audiocpu->clock());
182 }
183 
z80_nmi_w(int state)184 void simpsons_state::z80_nmi_w(int state)
185 {
186 	if(state && m_nmi_enabled && machine().time().as_ticks(m_audiocpu->clock()) > m_nmi_enabled + 1) {
187 		m_nmi_enabled = 0;
188 		m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
189 
190 	} else
191 		m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
192 }
193 
z80_map(address_map & map)194 void simpsons_state::z80_map(address_map &map)
195 {
196 	map(0x0000, 0x7fff).rom();
197 	map(0x8000, 0xbfff).bankr("bank2");
198 	map(0xf000, 0xf7ff).ram();
199 	map(0xf800, 0xf801).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
200 	map(0xfa00, 0xfa00).w(FUNC(simpsons_state::z80_arm_nmi_w));
201 	map(0xfc00, 0xfc2f).rw("k053260", FUNC(k053260_device::read), FUNC(k053260_device::write));
202 	map(0xfe00, 0xfe00).w(FUNC(simpsons_state::z80_bankswitch_w));
203 }
204 
205 /***************************************************************************
206 
207     Input Ports
208 
209 ***************************************************************************/
210 
211 static INPUT_PORTS_START( simpsons )
212 	PORT_START("P1")
213 	KONAMI8_B12_START(1)
214 
215 	PORT_START("P2")
216 	KONAMI8_B12_START(2)
217 
218 	PORT_START("P3")
219 	KONAMI8_B12_START(3)
220 
221 	PORT_START("P4")
222 	KONAMI8_B12_START(4)
223 
224 	PORT_START("COIN")
225 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
226 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
227 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
228 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
229 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE1 Unused
230 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE2 Unused
231 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused
232 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused
233 
234 	PORT_START("TEST")
235 	PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
236 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
237 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
238 	PORT_BIT( 0xce, IP_ACTIVE_LOW, IPT_UNKNOWN )
239 
240 	PORT_START( "EEPROMOUT" )
241 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write)
242 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write)
243 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write)
244 INPUT_PORTS_END
245 
INPUT_PORTS_START(simpsn2p)246 static INPUT_PORTS_START( simpsn2p )
247 	PORT_START("P1")
248 	KONAMI8_B12_START(1)
249 
250 	PORT_START("P2")
251 	KONAMI8_B12_START(2)
252 
253 	PORT_START("P3")
254 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
255 
256 	PORT_START("P4")
257 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
258 
259 	PORT_START("COIN") /* IN4 */
260 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
261 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
262 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) //COIN3 Unused
263 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) //COIN4 Unused
264 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
265 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE2 Unused
266 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused
267 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused
268 
269 	PORT_START("TEST")
270 	PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
271 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, do_read)
272 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, ready_read)
273 	PORT_BIT( 0xce, IP_ACTIVE_LOW, IPT_UNKNOWN )
274 
275 	PORT_START( "EEPROMOUT" )
276 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, cs_write)
277 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, clk_write)
278 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_er5911_device, di_write)
279 INPUT_PORTS_END
280 
281 
282 
283 /***************************************************************************
284 
285     Machine Driver
286 
287 ***************************************************************************/
288 
289 void simpsons_state::simpsons_objdma(  )
290 {
291 	int counter, num_inactive;
292 	uint16_t *src, *dst;
293 
294 	m_k053246->k053247_get_ram(&dst);
295 
296 	src = m_spriteram.get();
297 	num_inactive = counter = 256;
298 
299 	do {
300 		if ((*src & 0x8000) && (*src & 0xff))
301 		{
302 			memcpy(dst, src, 0x10);
303 			dst += 8;
304 			num_inactive--;
305 		}
306 		src += 8;
307 	}
308 	while (--counter);
309 
310 	if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive);
311 }
312 
INTERRUPT_GEN_MEMBER(simpsons_state::simpsons_irq)313 INTERRUPT_GEN_MEMBER(simpsons_state::simpsons_irq)
314 {
315 	if (m_k053246->k053246_is_irq_enabled())
316 	{
317 		simpsons_objdma();
318 		timer_set(attotime::from_ticks(256, XTAL(24'000'000)/4), TIMER_DMASTART);
319 		timer_set(attotime::from_ticks(256+2048, XTAL(24'000'000)/4), TIMER_DMAEND);
320 	}
321 }
322 
simpsons(machine_config & config)323 void simpsons_state::simpsons(machine_config &config)
324 {
325 	/* basic machine hardware */
326 	KONAMI(config, m_maincpu, XTAL(24'000'000)/2/4); /* 053248, the clock input is 12MHz, and internal CPU divider of 4 */
327 	m_maincpu->set_addrmap(AS_PROGRAM, &simpsons_state::main_map);
328 	m_maincpu->set_vblank_int("screen", FUNC(simpsons_state::simpsons_irq)); /* IRQ triggered by the 052109, FIRQ by the sprite hardware */
329 	m_maincpu->line().set(FUNC(simpsons_state::banking_callback));
330 
331 	Z80(config, m_audiocpu, XTAL(3'579'545)); /* verified on pcb */
332 	m_audiocpu->set_addrmap(AS_PROGRAM, &simpsons_state::z80_map);   /* NMIs are generated by the 053260 */
333 
334 	ADDRESS_MAP_BANK(config, "bank0000").set_map(&simpsons_state::bank0000_map).set_options(ENDIANNESS_BIG, 8, 13, 0x1000);
335 	ADDRESS_MAP_BANK(config, "bank2000").set_map(&simpsons_state::bank2000_map).set_options(ENDIANNESS_BIG, 8, 14, 0x2000);
336 
337 	EEPROM_ER5911_8BIT(config, "eeprom");
338 
339 	WATCHDOG_TIMER(config, "watchdog");
340 
341 	/* video hardware */
342 	screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
343 
344 	// Screen timings generated by the 051962, probably not programmable (except maybe between 6 and 8MHz)
345 	// 6MHz dot clock
346 	// horizontal: 16 cycles front porch, 32 cycles sync, 16 cycles back porch
347 	// vertical: 16 lines front porch, 8 lines sync, 16 lines back porch
348 	screen.set_raw(XTAL(24'000'000)/4, 384, 0+16, 320-16, 264, 0, 224);
349 	screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
350 	screen.set_screen_update(FUNC(simpsons_state::screen_update_simpsons));
351 	screen.set_palette("palette");
352 
353 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 2048).enable_shadows().enable_hilights();
354 
355 	K052109(config, m_k052109, 0);
356 	m_k052109->set_xy_offset(-96, -16);
357 	m_k052109->set_palette("palette");
358 	m_k052109->set_screen("screen");
359 	m_k052109->set_tile_callback(FUNC(simpsons_state::tile_callback));
360 	m_k052109->irq_handler().set_inputline(m_maincpu, KONAMI_IRQ_LINE);
361 
362 	K053246(config, m_k053246, 0);
363 	m_k053246->set_sprite_callback(FUNC(simpsons_state::sprite_callback));
364 	m_k053246->set_config(NORMAL_PLANE_ORDER, -43, 39);
365 	m_k053246->set_palette("palette");
366 
367 	K053251(config, m_k053251, 0);
368 
369 	/* sound hardware */
370 	SPEAKER(config, "lspeaker").front_left();
371 	SPEAKER(config, "rspeaker").front_right();
372 
373 	ym2151_device &ymsnd(YM2151(config, "ymsnd", XTAL(3'579'545))); /* verified on pcb */
374 	ymsnd.add_route(0, "lspeaker", 1.0);    /* only left channel is connected */
375 	ymsnd.add_route(0, "rspeaker", 1.0);
376 	ymsnd.add_route(1, "lspeaker", 0.0);
377 	ymsnd.add_route(1, "rspeaker", 0.0);
378 
379 	k053260_device &k053260(K053260(config, "k053260", XTAL(3'579'545))); /* verified on pcb */
380 	k053260.add_route(0, "lspeaker", 1.00);
381 	k053260.add_route(1, "rspeaker", 1.00);
382 	k053260.sh2_cb().set(FUNC(simpsons_state::z80_nmi_w));
383 }
384 
385 
386 /***************************************************************************
387 
388   Game ROMs
389 
390 ***************************************************************************/
391 
392 ROM_START( simpsons ) /* World 4 Player */
393 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
394 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
395 	ROM_LOAD( "072-g01.17c", 0x20000, 0x20000, CRC(9f843def) SHA1(858432b59101b0577c5cec6ac0c7c20ab0780c9a) )
396 	ROM_LOAD( "072-j13.13c", 0x40000, 0x20000, CRC(aade2abd) SHA1(10f178d5ed399b4866266e075d91ca3db26798f8) )
397 	ROM_LOAD( "072-j12.15c", 0x60000, 0x20000, CRC(479e12f2) SHA1(15a6cb12e68b4773a29ab463640a43f8e814de59) )
398 
399 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
400 	ROM_LOAD( "072-e03.6g", 0x00000, 0x08000, CRC(866b7a35) SHA1(98905764eb4c7d968ccc17618a1f24ee12e33c0e) )
401 	ROM_CONTINUE(       0x10000, 0x18000 )
402 
403 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
404 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
405 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
406 
407 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
408 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
409 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
410 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
411 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
412 
413 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
414 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
415 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
416 
417 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
418 	ROM_LOAD( "simpsons.12c.nv", 0x0000, 0x080, CRC(ec3f0449) SHA1(da35b98cd10bfabe9df3ede05462fabeb0e01ca9) )
419 ROM_END
420 
421 ROM_START( simpsons4pe ) /* World 4 Player, later? (by use of later leters) */
422 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
423 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
424 	ROM_LOAD( "072-g01.17c", 0x20000, 0x20000, CRC(9f843def) SHA1(858432b59101b0577c5cec6ac0c7c20ab0780c9a) )
425 	ROM_LOAD( "072-m13.13c", 0x40000, 0x20000, CRC(f36c9423) SHA1(4a7311ffcb2e6916006c1e79dfc231e7fc570781) )
426 	ROM_LOAD( "072-l12.15c", 0x60000, 0x20000, CRC(84f9d9ba) SHA1(d52f999b7c8125daea5e9b5754c6e82c17861d1b) )
427 
428 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
429 	ROM_LOAD( "072-e03.6g", 0x00000, 0x08000, CRC(866b7a35) SHA1(98905764eb4c7d968ccc17618a1f24ee12e33c0e) )
430 	ROM_CONTINUE(       0x10000, 0x18000 )
431 
432 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
433 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
434 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
435 
436 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
437 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
438 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
439 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
440 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
441 
442 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
443 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
444 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
445 
446 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
447 	ROM_LOAD( "simpsons4pe.12c.nv", 0x0000, 0x080, CRC(ec3f0449) SHA1(da35b98cd10bfabe9df3ede05462fabeb0e01ca9) )
448 ROM_END
449 
450 ROM_START( simpsons4pa ) /* Asia 4 Player */
451 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
452 	ROM_LOAD( "072-v02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
453 	ROM_LOAD( "072-v01.17c", 0x20000, 0x20000, CRC(effd6c09) SHA1(e5bcdb753bccdd76de18ad6ff7346f74fd02a78f) )
454 	ROM_LOAD( "072-x13.13c", 0x40000, 0x20000, CRC(3304abb9) SHA1(8f23160077f30d76c0c73e0b3f20996826433566) )
455 	ROM_LOAD( "072-x12.15c", 0x60000, 0x20000, CRC(fa4fca12) SHA1(3b52a8a52bddfa73d8577315b655eb57ac758326) )
456 
457 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
458 	ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) )
459 	ROM_CONTINUE(       0x10000, 0x18000 )
460 
461 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
462 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
463 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
464 
465 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
466 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
467 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
468 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
469 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
470 
471 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
472 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
473 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
474 
475 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
476 	ROM_LOAD( "simpsons4pa.12c.nv", 0x0000, 0x080, CRC(ec3f0449) SHA1(da35b98cd10bfabe9df3ede05462fabeb0e01ca9) )
477 ROM_END
478 
479 
480 ROM_START( simpsons2p ) /* World 2 Player */
481 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
482 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
483 	ROM_LOAD( "072-p01.17c", 0x20000, 0x20000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) )
484 	ROM_LOAD( "072-013.13c", 0x40000, 0x20000, CRC(8781105a) SHA1(ef2f16f7a56d3715536511c674df4b3aab1be2bd) )
485 	ROM_LOAD( "072-012.15c", 0x60000, 0x20000, CRC(244f9289) SHA1(eeda7f5c7340cbd1a1cd576af48cd5d1a629914a) )
486 
487 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
488 	ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) )
489 	ROM_CONTINUE(       0x10000, 0x18000 )
490 
491 	ROM_REGION( 0x100000, "k052109", 0 )
492 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
493 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
494 
495 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
496 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
497 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
498 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
499 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
500 
501 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
502 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
503 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
504 
505 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
506 	ROM_LOAD( "simpsons2p.12c.nv", 0x0000, 0x080, CRC(fbac4e30) SHA1(d3ff3a392550d9b06400b9292a44bdac7ba5c801) )
507 ROM_END
508 
509 ROM_START( simpsons2p2 ) /* World 2 Player, alt */
510 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
511 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
512 	ROM_LOAD( "072-p01.17c", 0x20000, 0x20000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) )
513 	ROM_LOAD( "072-_13.13c", 0x40000, 0x20000, CRC(54e6df66) SHA1(1b83ae56cf1deb51b04880fa421f06568c938a99) ) /* Unknown revision/region code */
514 	ROM_LOAD( "072-_12.15c", 0x60000, 0x20000, CRC(96636225) SHA1(5de95606e5c9337f18bc42f4df791cacafa20399) ) /* Unknown revision/region code */
515 
516 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
517 	ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) )
518 	ROM_CONTINUE(       0x10000, 0x18000 )
519 
520 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
521 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
522 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
523 
524 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
525 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
526 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
527 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
528 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
529 
530 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
531 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
532 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
533 
534 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
535 	ROM_LOAD( "simpsons2p2.12c.nv", 0x0000, 0x080, CRC(fbac4e30) SHA1(d3ff3a392550d9b06400b9292a44bdac7ba5c801) )
536 ROM_END
537 
538 ROM_START( simpsons2p3 ) // no rom labels
539 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
540 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) )
541 	ROM_LOAD( "072-p01.17c", 0x20000, 0x20000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) )
542 	ROM_LOAD( "4.13c", 0x40000, 0x20000, CRC(c3040e4f) SHA1(f6b5cbee5d7c6642a11d115bb6d93a7f2821cd8f) ) /* Unknown revision/region code */
543 	ROM_LOAD( "3.15c", 0x60000, 0x20000, CRC(eb4f5781) SHA1(58a556e9b4b9e4bd0e76ac86ab8e062c3f1e2d31) ) /* Unknown revision/region code */
544 
545 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
546 	ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) )
547 	ROM_CONTINUE(       0x10000, 0x18000 )
548 
549 	ROM_REGION( 0x100000, "k052109", 0 )
550 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
551 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
552 
553 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
554 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
555 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
556 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
557 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
558 
559 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
560 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
561 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
562 
563 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
564 	ROM_LOAD( "simpsons2p.12c.nv", 0x0000, 0x080, CRC(fbac4e30) SHA1(d3ff3a392550d9b06400b9292a44bdac7ba5c801) )
565 ROM_END
566 
567 ROM_START( simpsons2pa ) /* Asia 2 Player */
568 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
569 	ROM_LOAD( "072-g02.16c", 0x00000, 0x20000, CRC(580ce1d6) SHA1(5b07fb8e8041e1663980aa35d853fdc13b22dac5) ) /* Same as both world 2p sets */
570 	ROM_LOAD( "072-p01.17c", 0x20000, 0x20000, CRC(07ceeaea) SHA1(c18255ae1d578c2d53de80d6323cdf41cbe47b57) ) /* Same as both world 2p sets */
571 	ROM_LOAD( "072-113.13c", 0x40000, 0x20000, CRC(8781105a) SHA1(ef2f16f7a56d3715536511c674df4b3aab1be2bd) ) /* Same as world set simpsons2p */
572 	ROM_LOAD( "072-112.15c", 0x60000, 0x20000, CRC(3bd69404) SHA1(e055fed7e9bde8315ae2f9b2d35bc05fece6b80b) )
573 
574 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
575 	ROM_LOAD( "072-e03.6g", 0x00000, 0x08000, CRC(866b7a35) SHA1(98905764eb4c7d968ccc17618a1f24ee12e33c0e) )
576 	ROM_CONTINUE(       0x10000, 0x18000 )
577 
578 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
579 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
580 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
581 
582 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
583 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
584 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
585 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
586 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
587 
588 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
589 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
590 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
591 
592 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
593 	ROM_LOAD( "simpsons2pa.12c.nv", 0x0000, 0x080, CRC(fbac4e30) SHA1(d3ff3a392550d9b06400b9292a44bdac7ba5c801) )
594 ROM_END
595 
596 ROM_START( simpsons2pj ) /* Japan 2 Player */
597 	ROM_REGION( 0x80000, "maincpu", 0 ) /* code + banked roms */
598 	ROM_LOAD( "072-s02.16c", 0x00000, 0x20000, CRC(265f7a47) SHA1(d39c19a5e303f822313409343b209947f4c47ae4) )
599 	ROM_LOAD( "072-t01.17c", 0x20000, 0x20000, CRC(91de5c2d) SHA1(1e18a5585ed821ec7cda69bdcdbfa4e6c71455c6) )
600 	ROM_LOAD( "072-213.13c", 0x40000, 0x20000, CRC(b326a9ae) SHA1(f222c33f2e8b306f2f0ef6f0da9febbf8219e1a4) )
601 	ROM_LOAD( "072-212.15c", 0x60000, 0x20000, CRC(584d9d37) SHA1(61b9df4dfb323b7284894e5e1eb9d713ebf64721) )
602 
603 	ROM_REGION( 0x28000, "audiocpu", 0 ) /* Z80 code + banks */
604 	ROM_LOAD( "072-g03.6g", 0x00000, 0x08000, CRC(76c1850c) SHA1(9047c6b26c4e33c74eb7400a807d3d9f206f7bbe) )
605 	ROM_CONTINUE(       0x10000, 0x18000 )
606 
607 	ROM_REGION( 0x100000, "k052109", 0 )    /* tiles */
608 	ROM_LOAD32_WORD( "072-b07.18h", 0x000000, 0x080000, CRC(ba1ec910) SHA1(0805ccb641271dea43185dc0365732260db1763d) )
609 	ROM_LOAD32_WORD( "072-b06.16h", 0x000002, 0x080000, CRC(cf2bbcab) SHA1(47afea47f9bc8cb5eb1c7b7fbafe954b3e749aeb) )
610 
611 	ROM_REGION( 0x400000, "k053246", 0 ) /* graphics */
612 	ROM_LOAD64_WORD( "072-b08.3n",  0x000000, 0x100000, CRC(7de500ad) SHA1(61b76b8f402e3bde1509679aaaa28ef08cafb0ab) ) /* sprites */
613 	ROM_LOAD64_WORD( "072-b09.8n",  0x000002, 0x100000, CRC(aa085093) SHA1(925239d79bf607021d371263352618876f59c1f8) )
614 	ROM_LOAD64_WORD( "072-b10.12n", 0x000004, 0x100000, CRC(577dbd53) SHA1(e603e03e3dcba766074561faa92afafa5761953d) )
615 	ROM_LOAD64_WORD( "072-b11.16l", 0x000006, 0x100000, CRC(55fab05d) SHA1(54db8559d71ed257de9a29c8808654eaea0df9e2) )
616 
617 	ROM_REGION( 0x140000, "k053260", 0 ) /* samples for the 053260 */
618 	ROM_LOAD( "072-d05.1f", 0x000000, 0x100000, CRC(1397a73b) SHA1(369422c84cca5472967af54b8351e29fcd69f621) )
619 	ROM_LOAD( "072-d04.1d", 0x100000, 0x040000, CRC(78778013) SHA1(edbd6d83b0d1a20df39bb160b92395586fa3c32d) )
620 
621 	ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
622 	ROM_LOAD( "simpsons2pj.12c.nv", 0x0000, 0x080, CRC(3550a54e) SHA1(370cd40a12c471b3b6690ecbdde9c7979bc2a652) )
623 ROM_END
624 
625 
626 
627 /***************************************************************************
628 
629   Game driver(s)
630 
631 ***************************************************************************/
632 
633 // the region warning, if one exists, is shown after the high-score screen in attract mode
634 GAME( 1991, simpsons,    0,        simpsons, simpsons, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (4 Players World, set 1)", MACHINE_SUPPORTS_SAVE )
635 GAME( 1991, simpsons4pe, simpsons, simpsons, simpsons, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (4 Players World, set 2)", MACHINE_SUPPORTS_SAVE )
636 GAME( 1991, simpsons4pa, simpsons, simpsons, simpsons, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (4 Players Asia)",         MACHINE_SUPPORTS_SAVE )
637 GAME( 1991, simpsons2p,  simpsons, simpsons, simpsn2p, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (2 Players World, set 1)", MACHINE_SUPPORTS_SAVE )
638 GAME( 1991, simpsons2p2, simpsons, simpsons, simpsons, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (2 Players World, set 2)", MACHINE_SUPPORTS_SAVE )
639 GAME( 1991, simpsons2p3, simpsons, simpsons, simpsn2p, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (2 Players World, set 3)", MACHINE_SUPPORTS_SAVE )
640 GAME( 1991, simpsons2pa, simpsons, simpsons, simpsn2p, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (2 Players Asia)",         MACHINE_SUPPORTS_SAVE )
641 GAME( 1991, simpsons2pj, simpsons, simpsons, simpsn2p, simpsons_state, empty_init, ROT0, "Konami", "The Simpsons (2 Players Japan)",        MACHINE_SUPPORTS_SAVE )
642