~ubuntu-branches/debian/wheezy/mame/wheezy

« back to all changes in this revision

Viewing changes to src/mame/drivers/1943.c

  • Committer: Bazaar Package Importer
  • Author(s): Jordi Mallach, Emmanuel Kasper, Félix Arreola Rodríguez, Jordi Mallach
  • Date: 2011-05-11 21:06:50 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110511210650-jizvh8a6x117y9hr
Tags: 0.142-1
[ Emmanuel Kasper ]
* New upstream release
* Set NOWERROR=1 to allow compiling with gcc-4.6
* Remove fix_powerpc_build.patch, as upstream has taken it in this release
* Add gnome-video-arcade front end as a suggested package

[ Félix Arreola Rodríguez ]
* Add kfreebsd-build.patch to quilt series, to fix build on kfreebsd

[ Jordi Mallach ]
* Remove unneeded and bogus addition of --with-quilt to the dh invocation.
* Add Cesare Falco (long time Ubuntu maintainer) to Uploaders, and wrap
  them into multiple lines.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
        if a read from this address doesn't return the value it expects.
44
44
    */
45
45
 
46
 
        int data = cpu_get_reg(space->cpu, Z80_BC) >> 8;
47
 
//  logerror("protection read, PC: %04x Result:%02x\n", cpu_get_pc(space->cpu), data);
 
46
        int data = cpu_get_reg(&space->device(), Z80_BC) >> 8;
 
47
//  logerror("protection read, PC: %04x Result:%02x\n", cpu_get_pc(&space->device()), data);
48
48
        return data;
49
49
}
50
50
 
51
51
/* Memory Maps */
52
52
 
53
 
static ADDRESS_MAP_START( c1943_map, ADDRESS_SPACE_PROGRAM, 8 )
 
53
static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8 )
54
54
        AM_RANGE(0x0000, 0x7fff) AM_ROM
55
55
        AM_RANGE(0x8000, 0x8fff) AM_ROMBANK("bank1")
56
56
        AM_RANGE(0x9000, 0x9fff) AM_ROMBANK("bank2")
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)
81
81
ADDRESS_MAP_END
82
82
 
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)
248
248
 
249
249
static MACHINE_RESET( 1943 )
250
250
{
251
 
        _1943_state *state = machine->driver_data<_1943_state>();
 
251
        _1943_state *state = machine.driver_data<_1943_state>();
252
252
 
253
 
        state->char_on = 0;
254
 
        state->obj_on = 0;
255
 
        state->bg1_on = 0;
256
 
        state->bg2_on = 0;
 
253
        state->m_char_on = 0;
 
254
        state->m_obj_on = 0;
 
255
        state->m_bg1_on = 0;
 
256
        state->m_bg2_on = 0;
257
257
}
258
258
 
259
259
static MACHINE_CONFIG_START( 1943, _1943_state )
276
276
        MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
277
277
        MCFG_SCREEN_SIZE(32*8, 32*8)
278
278
        MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
 
279
        MCFG_SCREEN_UPDATE(1943)
 
280
 
279
281
        MCFG_GFXDECODE(1943)
280
282
        MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16)
281
283
 
282
284
        MCFG_PALETTE_INIT(1943)
283
285
        MCFG_VIDEO_START(1943)
284
 
        MCFG_VIDEO_UPDATE(1943)
285
286
 
286
287
        // sound hardware
287
288
        MCFG_SPEAKER_STANDARD_MONO("mono")
533
534
        ROM_LOAD( "bm6.4b",    0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) )   /* video timing (not used) */
534
535
ROM_END
535
536
 
 
537
 
 
538
ROM_START( 1943b )
 
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) )
 
543
 
 
544
        ROM_REGION( 0x10000, "audiocpu", 0 )
 
545
        ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) )
 
546
 
 
547
        ROM_REGION( 0x8000, "gfx1", 0 ) // logo replaced
 
548
        ROM_LOAD( "4.5h", 0x00000, 0x8000, CRC(0aba2096) SHA1(4833ad9f747b529ce92c4993388ab3516f8df4ed) )       /* characters */
 
549
 
 
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) )
 
555
 
 
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) )
 
559
 
 
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) )
 
569
 
 
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 */
 
573
 
 
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) */
 
587
ROM_END
 
588
 
 
589
 
536
590
static DRIVER_INIT( 1943 )
537
591
{
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);
543
597
}
544
598
 
 
599
static READ8_HANDLER( _1943b_c007_r ) { return 0; }
 
600
 
 
601
static DRIVER_INIT( 1943b )
 
602
{
 
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));
 
607
 
 
608
}
 
609
 
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 )