trunk/src/mame/drivers/1942.c
| r26223 | r26224 | |
| 105 | 105 | AM_RANGE(0xe000, 0xefff) AM_RAM |
| 106 | 106 | ADDRESS_MAP_END |
| 107 | 107 | |
| 108 | static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state ) |
| 109 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 110 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") |
| 111 | |
| 112 | AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(c1942_fgvideoram_w) AM_SHARE("fg_videoram") |
| 113 | AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(c1942_bgvideoram_w) AM_SHARE("bg_videoram") |
| 114 | |
| 115 | AM_RANGE(0xe000, 0xefff) AM_RAM |
| 116 | |
| 117 | AM_RANGE(0xce00, 0xcfff) AM_RAM AM_SHARE("spriteram") |
| 118 | |
| 119 | AM_RANGE(0xdc02, 0xdc03) AM_WRITE(c1942_scroll_w) |
| 120 | AM_RANGE(0xc804, 0xc804) AM_WRITE(c1942_c804_w) |
| 121 | AM_RANGE(0xc805, 0xc805) AM_WRITE(c1942_palette_bank_w) |
| 122 | |
| 123 | AM_RANGE(0xf000, 0xf3ff) AM_RAM |
| 124 | |
| 125 | AM_RANGE(0xf400, 0xf400) AM_WRITE(c1942_bankswitch_w) |
| 126 | AM_RANGE(0xf500, 0xf500) AM_WRITE(soundlatch_byte_w) |
| 127 | |
| 128 | AM_RANGE(0xf700, 0xf700) AM_READ_PORT("DSWA") |
| 129 | AM_RANGE(0xf701, 0xf701) AM_READ_PORT("SYSTEM") |
| 130 | AM_RANGE(0xf702, 0xf702) AM_READ_PORT("DSWB") |
| 131 | AM_RANGE(0xf703, 0xf703) AM_READ_PORT("P1") |
| 132 | AM_RANGE(0xf704, 0xf704) AM_READ_PORT("P2") |
| 133 | ADDRESS_MAP_END |
| 134 | |
| 108 | 135 | static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1942_state ) |
| 109 | 136 | AM_RANGE(0x0000, 0x3fff) AM_ROM |
| 110 | 137 | AM_RANGE(0x4000, 0x47ff) AM_RAM |
| r26223 | r26224 | |
| 191 | 218 | INPUT_PORTS_END |
| 192 | 219 | |
| 193 | 220 | |
| 221 | static INPUT_PORTS_START( 1942p ) |
| 222 | PORT_START("SYSTEM") |
| 223 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) |
| 224 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) |
| 225 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 226 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 227 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 228 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 ) |
| 229 | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) |
| 230 | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) |
| 231 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 232 | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) |
| 233 | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 234 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 235 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 236 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 237 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 238 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) |
| 239 | PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) |
| 240 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 194 | 241 | |
| 242 | |
| 243 | PORT_START("P1") |
| 244 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY |
| 245 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY |
| 246 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY |
| 247 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY |
| 248 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) |
| 249 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) |
| 250 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 251 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 252 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 253 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) |
| 254 | |
| 255 | PORT_START("P2") |
| 256 | PORT_DIPNAME( 0x0001, 0x0001, "B" ) |
| 257 | PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) |
| 258 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 259 | PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) ) |
| 260 | PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) |
| 261 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 262 | PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) ) |
| 263 | PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) |
| 264 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 265 | PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) ) |
| 266 | PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) |
| 267 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 268 | PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) ) |
| 269 | PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) |
| 270 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 271 | PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) ) |
| 272 | PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) |
| 273 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 274 | PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) ) |
| 275 | PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) |
| 276 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 277 | PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) ) |
| 278 | PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) |
| 279 | PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) |
| 280 | |
| 281 | PORT_START("DSWA") |
| 282 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:8,7,6") |
| 283 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) |
| 284 | PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) |
| 285 | PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) |
| 286 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 287 | PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) |
| 288 | PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) |
| 289 | PORT_DIPSETTING( 0x05, DEF_STR( 1C_4C ) ) |
| 290 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) |
| 291 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWA:5") |
| 292 | PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) |
| 293 | PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) ) |
| 294 | PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWA:4,3") |
| 295 | PORT_DIPSETTING( 0x30, "20K 80K 80K+" ) |
| 296 | PORT_DIPSETTING( 0x20, "20K 100K 100K+" ) |
| 297 | PORT_DIPSETTING( 0x10, "30K 80K 80K+" ) |
| 298 | PORT_DIPSETTING( 0x00, "30K 100K 100K+" ) |
| 299 | PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:2,1") |
| 300 | PORT_DIPSETTING( 0x80, "1" ) |
| 301 | PORT_DIPSETTING( 0x40, "2" ) |
| 302 | PORT_DIPSETTING( 0xc0, "3" ) |
| 303 | PORT_DIPSETTING( 0x00, "5" ) |
| 304 | |
| 305 | PORT_START("DSWB") |
| 306 | PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:8,7,6") |
| 307 | PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) |
| 308 | PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) |
| 309 | PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) |
| 310 | PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) |
| 311 | PORT_DIPSETTING( 0x03, DEF_STR( 2C_3C ) ) |
| 312 | PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) |
| 313 | PORT_DIPSETTING( 0x05, DEF_STR( 1C_4C ) ) |
| 314 | PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) |
| 315 | PORT_SERVICE_DIPLOC(0x08, IP_ACTIVE_LOW, "SWB:5" ) |
| 316 | PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:4") |
| 317 | PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) |
| 318 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 319 | PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:3,2") |
| 320 | PORT_DIPSETTING( 0x40, DEF_STR( Easy ) ) |
| 321 | PORT_DIPSETTING( 0x60, DEF_STR( Normal ) ) |
| 322 | PORT_DIPSETTING( 0x20, DEF_STR( Difficult ) ) |
| 323 | PORT_DIPSETTING( 0x00, DEF_STR( Very_Difficult ) ) |
| 324 | PORT_DIPNAME( 0x80, 0x80, "Screen Stop" ) PORT_DIPLOCATION("SWB:1") |
| 325 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 326 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 327 | INPUT_PORTS_END |
| 328 | |
| 195 | 329 | static const gfx_layout charlayout = |
| 196 | 330 | { |
| 197 | 331 | 8,8, |
| r26223 | r26224 | |
| 235 | 369 | GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 64*4+4*32*8, 16 ) |
| 236 | 370 | GFXDECODE_END |
| 237 | 371 | |
| 372 | static const gfx_layout tilelayout_p = |
| 373 | { |
| 374 | 16,16, |
| 375 | RGN_FRAC(1,12), |
| 376 | 3, |
| 377 | { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, |
| 378 | { 0, 1, 2, 3, 4, 5, 6, 7, |
| 379 | 0x2000*8, 0x2000*8 +1, 0x2000*8 +2, 0x2000*8 +3, 0x2000*8 +4, 0x2000*8 +5, 0x2000*8 + 6, 0x2000*8 +7 }, |
| 380 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0x1000*8 + 0*8, 0x1000*8 + 1*8, 0x1000*8 + 2*8, 0x1000*8 + 3*8, 0x1000*8 + 4*8, 0x1000*8 + 5*8, 0x1000*8 + 6*8, 0x1000*8 + 7*8 }, |
| 381 | 8*8 |
| 382 | }; |
| 238 | 383 | |
| 384 | static const gfx_layout spritelayout_p = |
| 385 | { |
| 386 | 16,16, |
| 387 | RGN_FRAC(1,4), |
| 388 | 4, |
| 389 | { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, |
| 390 | { 0, 1, 2, 3, 4, 5, 6, 7, |
| 391 | 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 }, |
| 392 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, |
| 393 | 8*8, 9*8, 10*8 , 11*8, 12*8, 13*8, 14*8, 15*8 }, |
| 394 | 32*8 |
| 395 | }; |
| 396 | |
| 397 | static GFXDECODE_START( 1942p ) |
| 398 | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 64 ) |
| 399 | GFXDECODE_ENTRY( "gfx2", 0, tilelayout_p, 64*4, 4*32 ) |
| 400 | GFXDECODE_ENTRY( "gfx3", 0, spritelayout_p, 64*4+4*32*8, 16 ) |
| 401 | GFXDECODE_END |
| 402 | |
| 403 | |
| 404 | |
| 239 | 405 | void _1942_state::machine_start() |
| 240 | 406 | { |
| 241 | 407 | save_item(NAME(m_palette_bank)); |
| r26223 | r26224 | |
| 283 | 449 | MACHINE_CONFIG_END |
| 284 | 450 | |
| 285 | 451 | |
| 452 | static MACHINE_CONFIG_START( 1942p, _1942_state ) |
| 286 | 453 | |
| 454 | /* basic machine hardware */ |
| 455 | MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */ |
| 456 | MCFG_CPU_PROGRAM_MAP(c1942p_map) |
| 457 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, c1942_scanline, "screen", 0, 1) |
| 458 | |
| 459 | MCFG_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */ |
| 460 | MCFG_CPU_PROGRAM_MAP(sound_map) |
| 461 | MCFG_CPU_PERIODIC_INT_DRIVER(_1942_state, irq0_line_hold, 4*60) |
| 462 | |
| 463 | |
| 464 | /* video hardware */ |
| 465 | MCFG_GFXDECODE(1942p) |
| 466 | MCFG_PALETTE_LENGTH(64*4+4*32*8+16*16) |
| 467 | |
| 468 | MCFG_SCREEN_ADD("screen", RASTER) |
| 469 | MCFG_SCREEN_REFRESH_RATE(60) |
| 470 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 471 | MCFG_SCREEN_SIZE(32*8, 32*8) |
| 472 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
| 473 | MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942p) |
| 474 | |
| 475 | |
| 476 | /* sound hardware */ |
| 477 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 478 | |
| 479 | MCFG_SOUND_ADD("ay1", AY8910, AUDIO_CLOCK) /* 1.5 MHz */ |
| 480 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 481 | MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CLOCK) /* 1.5 MHz */ |
| 482 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 483 | MACHINE_CONFIG_END |
| 484 | |
| 485 | |
| 287 | 486 | /*************************************************************************** |
| 288 | 487 | |
| 289 | 488 | Game driver(s) |
| r26223 | r26224 | |
| 493 | 692 | ROM_END |
| 494 | 693 | |
| 495 | 694 | |
| 695 | |
| 696 | ROM_START( 1942p ) |
| 697 | ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF ) /* 64k for code + 3*16k for the banked ROMs images */ |
| 698 | ROM_LOAD( "(__1942p)1.bin", 0x00000, 0x8000, CRC(d8506aee) SHA1(aebdce3203e7743d70a8465a5e5766f9f47cb33f) )// |
| 699 | ROM_LOAD( "(__1942p)2.bin", 0x10000, 0x4000, CRC(793a8fbc) SHA1(57f27a2b59cbc7e82e41683ddfd58055350f80bc) )// |
| 700 | ROM_CONTINUE(0x18000,0x4000) |
| 701 | ROM_LOAD( "(__1942p)3.bin", 0x14000, 0x4000, CRC(108fda63) SHA1(6ffdf57a04bcfae9fdb2343f30cff50926188cbf) )// |
| 702 | |
| 703 | ROM_REGION( 0x10000, "audiocpu", 0 ) |
| 704 | ROM_LOAD( "(__1942p)snd.bin", 0x0000, 0x4000, CRC(43d6df9f) SHA1(c34579c73faa7e9552a6721ef8050b33ca158588) )// |
| 705 | |
| 706 | ROM_REGION( 0x2000, "gfx1", 0 ) |
| 707 | ROM_LOAD( "(__1942p)8.bin", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) /* characters */ // |
| 708 | |
| 709 | ROM_REGION( 0xc000, "gfx2", 0 ) |
| 710 | ROM_LOAD( "(__1942p)5.bin", 0x0000, 0x4000, CRC(1081b88c) SHA1(f3026e72206c96573fd6ba28d15e865b51735004) ) /* tiles */ |
| 711 | ROM_LOAD( "(__1942p)6.bin", 0x4000, 0x4000, CRC(2d6acd8c) SHA1(914bb971c8f1364d0c44bd11f5f7e8da1f4953bb) ) |
| 712 | ROM_LOAD( "(__1942p)7.bin", 0x8000, 0x4000, CRC(30f13e78) SHA1(51b9c0dfc53db705b75dd7ce643cec807533af5a) ) |
| 713 | |
| 714 | ROM_REGION( 0x10000, "gfx3", ROMREGION_INVERT ) |
| 715 | ROM_LOAD( "(__1942p)9.bin", 0x0000, 0x4000, CRC(755a4762) SHA1(b8747e02854a2dd8fa1251e206dbf0a0fc017b38) ) /* tiles */ |
| 716 | ROM_LOAD( "(__1942p)10.bin", 0x4000, 0x4000, CRC(4a5a9084) SHA1(dcf9834e58324f9c94206728a055083e335bc862) ) |
| 717 | ROM_LOAD( "(__1942p)11.bin", 0x8000, 0x4000, CRC(d2ce3eb6) SHA1(ebe71bd413b169ff2cea6973faf48527a8283eef) ) |
| 718 | ROM_LOAD( "(__1942p)12.bin", 0xc000, 0x4000, CRC(aaa86493) SHA1(b0f6c59b5369b565bf863544a26cde2105aa35be) ) |
| 719 | |
| 720 | ROM_REGION( 0x0a00, "proms", 0 ) // only one prom was in the dump |
| 721 | ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, BAD_DUMP CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) ) /* red component */ |
| 722 | ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, BAD_DUMP CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) ) /* green component */ |
| 723 | ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, BAD_DUMP CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) ) /* blue component */ |
| 724 | ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, BAD_DUMP CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) ) /* char lookup table */ |
| 725 | ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, BAD_DUMP CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) ) /* tile lookup table */ |
| 726 | ROM_LOAD( "(__1942p)ic22.bin", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) ) /* sprite lookup table */ // |
| 727 | ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, BAD_DUMP CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) ) /* tile palette selector? (not used) */ |
| 728 | ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, BAD_DUMP CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) ) /* tile palette selector? (not used) */ |
| 729 | ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, BAD_DUMP CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */ |
| 730 | ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, BAD_DUMP CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) ) /* video timing? (not used) */ |
| 731 | ROM_END |
| 732 | |
| 733 | |
| 496 | 734 | DRIVER_INIT_MEMBER(_1942_state,1942) |
| 497 | 735 | { |
| 498 | 736 | UINT8 *ROM = memregion("maincpu")->base(); |
| r26223 | r26224 | |
| 505 | 743 | GAME( 1984, 1942abl, 1942, 1942, 1942, _1942_state, 1942, ROT270, "bootleg", "1942 (Revision A, bootleg)", GAME_SUPPORTS_SAVE ) // data is the same as 1942a set, different rom format |
| 506 | 744 | GAME( 1984, 1942b, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (First Version)", GAME_SUPPORTS_SAVE ) |
| 507 | 745 | GAME( 1985, 1942w, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom (Williams Electronics license)", "1942 (Williams Electronics license)", GAME_SUPPORTS_SAVE ) /* Based on 1942 (Revision B) */ |
| 746 | GAME( 1984, 1942p, 1942, 1942p,1942p,_1942_state, 1942, ROT270, "Capcom", "1942 (prototype?)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // possibly bootleg of prototype |