66
66
AM_RANGE(0xc804, 0xc804) AM_WRITE(c1943_c804_w) // ROM bank switch, screen flip
67
67
AM_RANGE(0xc806, 0xc806) AM_WRITE(watchdog_reset_w)
68
68
AM_RANGE(0xc807, 0xc807) AM_WRITENOP // ???
69
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(c1943_videoram_w) AM_BASE_MEMBER(_1943_state, videoram)
70
AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(c1943_colorram_w) AM_BASE_MEMBER(_1943_state, colorram)
71
AM_RANGE(0xd800, 0xd801) AM_RAM AM_BASE_MEMBER(_1943_state, scrollx)
72
AM_RANGE(0xd802, 0xd802) AM_RAM AM_BASE_MEMBER(_1943_state, scrolly)
73
AM_RANGE(0xd803, 0xd804) AM_RAM AM_BASE_MEMBER(_1943_state, bgscrollx)
69
AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(c1943_videoram_w) AM_BASE_MEMBER(_1943_state, m_videoram)
70
AM_RANGE(0xd400, 0xd7ff) AM_RAM_WRITE(c1943_colorram_w) AM_BASE_MEMBER(_1943_state, m_colorram)
71
AM_RANGE(0xd800, 0xd801) AM_RAM AM_BASE_MEMBER(_1943_state, m_scrollx)
72
AM_RANGE(0xd802, 0xd802) AM_RAM AM_BASE_MEMBER(_1943_state, m_scrolly)
73
AM_RANGE(0xd803, 0xd804) AM_RAM AM_BASE_MEMBER(_1943_state, m_bgscrollx)
74
74
AM_RANGE(0xd806, 0xd806) AM_WRITE(c1943_d806_w) // sprites, bg1, bg2 enable
75
75
AM_RANGE(0xd808, 0xd808) AM_WRITENOP // ???
76
76
AM_RANGE(0xd868, 0xd868) AM_WRITENOP // ???
77
77
AM_RANGE(0xd888, 0xd888) AM_WRITENOP // ???
78
78
AM_RANGE(0xd8a8, 0xd8a8) AM_WRITENOP // ???
79
79
AM_RANGE(0xe000, 0xefff) AM_RAM
80
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(_1943_state, spriteram, spriteram_size)
80
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(_1943_state, m_spriteram, m_spriteram_size)
83
static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
83
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
84
84
AM_RANGE(0x0000, 0x7fff) AM_ROM
85
85
AM_RANGE(0xc000, 0xc7ff) AM_RAM
86
86
AM_RANGE(0xc800, 0xc800) AM_READ(soundlatch_r)
533
534
ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
539
ROM_REGION( 0x30000, "maincpu", 0 ) /* 64k for code + 128k for the banked ROMs images */
540
ROM_LOAD( "1.12d", 0x00000, 0x08000, CRC(9a2d70ab) SHA1(6f84e906656f132ffcb63022f6d067580d261431) ) // protection patched out, disclaimer patched out
541
ROM_LOAD( "bmj02.13d", 0x10000, 0x10000, CRC(af971575) SHA1(af1d8ce73e8671b7b41248ce6486c9b5aaf6a233) )
542
ROM_LOAD( "bmj03.14d", 0x20000, 0x10000, CRC(300ec713) SHA1(f66d2356b413a418c887b4085a5315475c7a8bba) )
544
ROM_REGION( 0x10000, "audiocpu", 0 )
545
ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) )
547
ROM_REGION( 0x8000, "gfx1", 0 ) // logo replaced
548
ROM_LOAD( "4.5h", 0x00000, 0x8000, CRC(0aba2096) SHA1(4833ad9f747b529ce92c4993388ab3516f8df4ed) ) /* characters */
550
ROM_REGION( 0x40000, "gfx2", 0 ) // same data, double size roms
551
ROM_LOAD( "15.12f", 0x00000, 0x10000, CRC(622b4fba) SHA1(181d7b0a1ca0cfcc3bd71f0b97dc80f7ff27a9c6) ) /* bg tiles */
552
ROM_LOAD( "16.14f", 0x10000, 0x10000, CRC(25471a8d) SHA1(a3930dea9b64e84ade78dae4a631ebb7e9741954) )
553
ROM_LOAD( "17.12j", 0x20000, 0x10000, CRC(9da79653) SHA1(b9852c476110db3f654152ca85265d184a1a816e) )
554
ROM_LOAD( "18.14j", 0x30000, 0x10000, CRC(1f3aced8) SHA1(14ae016279628732b397db9a526bfda7ede0be5a) )
556
ROM_REGION( 0x10000, "gfx3", 0 ) // same
557
ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) ) /* fg tiles */
558
ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) )
560
ROM_REGION( 0x40000, "gfx4", 0 ) // same
561
ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) ) /* sprites */
562
ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) )
563
ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) )
564
ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) )
565
ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) )
566
ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) )
567
ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
568
ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
570
ROM_REGION( 0x10000, "gfx5", 0 ) /* tilemaps */
571
ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) ) /* front background */
572
ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) ) /* back background */
574
ROM_REGION( 0x0c00, "proms", 0 )
575
ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) ) /* red component */
576
ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) ) /* green component */
577
ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) ) /* blue component */
578
ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) ) /* char lookup table */
579
ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) ) /* foreground lookup table */
580
ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) ) /* foreground palette bank */
581
ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) ) /* background lookup table */
582
ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) ) /* background palette bank */
583
ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) ) /* sprite lookup table */
584
ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) ) /* sprite palette bank */
585
ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) ) /* priority encoder / palette selector (not used) */
586
ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
536
590
static DRIVER_INIT( 1943 )
538
UINT8 *ROM = machine->region("maincpu")->base();
592
UINT8 *ROM = machine.region("maincpu")->base();
539
593
memory_configure_bank(machine, "bank1", 0, 29, &ROM[0x10000], 0x1000);
540
594
memory_configure_bank(machine, "bank2", 0, 29, &ROM[0x11000], 0x1000);
541
595
memory_configure_bank(machine, "bank3", 0, 29, &ROM[0x12000], 0x1000);
542
596
memory_configure_bank(machine, "bank4", 0, 29, &ROM[0x13000], 0x1000);
599
static READ8_HANDLER( _1943b_c007_r ) { return 0; }
601
static DRIVER_INIT( 1943b )
603
DRIVER_INIT_CALL( 1943 );
604
//it expects 0x00 to be returned from the protection reads because the protection has been patched out.
605
//AM_RANGE(0xc007, 0xc007) AM_READ(c1943_protection_r)
606
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc007, 0xc007, FUNC(_1943b_c007_r));
545
610
/* Game Drivers */
546
611
GAME( 1987, 1943, 0, 1943, 1943, 1943, ROT270, "Capcom", "1943: The Battle of Midway (Euro)", GAME_SUPPORTS_SAVE )
547
612
GAME( 1987, 1943u, 1943, 1943, 1943, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US)", GAME_SUPPORTS_SAVE )
548
613
GAME( 1987, 1943j, 1943, 1943, 1943, 1943, ROT270, "Capcom", "1943: Midway Kaisen (Japan)", GAME_SUPPORTS_SAVE )
614
GAME( 1987, 1943b, 1943, 1943, 1943, 1943b,ROT270, "bootleg", "1943: Battle of Midway (bootleg, hack of Japan set)", GAME_SUPPORTS_SAVE )
549
615
GAME( 1987, 1943kai, 0, 1943, 1943, 1943, ROT270, "Capcom", "1943 Kai: Midway Kaisen (Japan)", GAME_SUPPORTS_SAVE )