~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
284
284
 *
285
285
 *************************************/
286
286
 
287
 
static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8 )
 
287
static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, bublbobl_state )
288
288
        AM_RANGE(0x0000, 0x7fff) AM_ROM
289
289
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
290
 
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
291
 
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_objectram, m_objectram_size)
 
290
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
 
291
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
292
292
        AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
293
 
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
 
293
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
294
294
        AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w)
295
295
        AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w)
296
296
        AM_RANGE(0xfa80, 0xfa80) AM_WRITE(watchdog_reset_w)
297
297
        AM_RANGE(0xfb40, 0xfb40) AM_WRITE(bublbobl_bankswitch_w)
298
 
        AM_RANGE(0xfc00, 0xffff) AM_RAM AM_BASE_MEMBER(bublbobl_state, m_mcu_sharedram)
 
298
        AM_RANGE(0xfc00, 0xffff) AM_RAM AM_SHARE("mcu_sharedram")
299
299
ADDRESS_MAP_END
300
300
 
301
 
static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8 )
 
301
static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, bublbobl_state )
302
302
        AM_RANGE(0x0000, 0x7fff) AM_ROM
303
303
        AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
304
304
ADDRESS_MAP_END
305
305
 
306
 
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
 
306
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bublbobl_state )
307
307
        AM_RANGE(0x0000, 0x7fff) AM_ROM
308
308
        AM_RANGE(0x8000, 0x8fff) AM_RAM
309
 
        AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w)
310
 
        AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym2", ym3526_r, ym3526_w)
311
 
        AM_RANGE(0xb000, 0xb000) AM_READWRITE(soundlatch_r, bublbobl_sound_status_w)
 
309
        AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
 
310
        AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym2", ym3526_r, ym3526_w)
 
311
        AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_byte_r) AM_WRITE(bublbobl_sound_status_w)
312
312
        AM_RANGE(0xb001, 0xb001) AM_WRITE(bublbobl_sh_nmi_enable_w) AM_READNOP
313
313
        AM_RANGE(0xb002, 0xb002) AM_WRITE(bublbobl_sh_nmi_disable_w)
314
314
        AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM?
315
315
ADDRESS_MAP_END
316
316
 
317
 
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8 )
 
317
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, bublbobl_state )
318
318
        AM_RANGE(0x0000, 0x0000) AM_READWRITE(bublbobl_mcu_ddr1_r, bublbobl_mcu_ddr1_w)
319
319
        AM_RANGE(0x0001, 0x0001) AM_READWRITE(bublbobl_mcu_ddr2_r, bublbobl_mcu_ddr2_w)
320
320
        AM_RANGE(0x0002, 0x0002) AM_READWRITE(bublbobl_mcu_port1_r, bublbobl_mcu_port1_w)
328
328
ADDRESS_MAP_END
329
329
 
330
330
// The 68705 is from a bootleg, the original MCU is a 6801U4
331
 
static ADDRESS_MAP_START( bootlegmcu_map, AS_PROGRAM, 8 )
 
331
static ADDRESS_MAP_START( bootlegmcu_map, AS_PROGRAM, 8, bublbobl_state )
332
332
        ADDRESS_MAP_GLOBAL_MASK(0x7ff)
333
333
        AM_RANGE(0x000, 0x000) AM_READWRITE(bublbobl_68705_port_a_r, bublbobl_68705_port_a_w)
334
334
        AM_RANGE(0x001, 0x001) AM_READWRITE(bublbobl_68705_port_b_r, bublbobl_68705_port_b_w)
340
340
        AM_RANGE(0x080, 0x7ff) AM_ROM
341
341
ADDRESS_MAP_END
342
342
 
343
 
static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8 )
 
343
static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 8, bublbobl_state )
344
344
        AM_RANGE(0x0000, 0x7fff) AM_ROM
345
345
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
346
 
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
347
 
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_objectram, m_objectram_size)
 
346
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
 
347
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
348
348
        AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
349
 
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
 
349
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
350
350
        AM_RANGE(0xfa00, 0xfa00) AM_READWRITE(bublbobl_sound_status_r, bublbobl_sound_command_w)
351
351
        AM_RANGE(0xfa03, 0xfa03) AM_WRITE(bublbobl_soundcpu_reset_w)
352
352
        AM_RANGE(0xfa80, 0xfa80) AM_WRITENOP // ???
364
364
ADDRESS_MAP_END
365
365
 
366
366
 
367
 
static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8 )
 
367
static ADDRESS_MAP_START( tokio_map, AS_PROGRAM, 8, bublbobl_state )
368
368
        AM_RANGE(0x0000, 0x7fff) AM_ROM
369
369
        AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
370
 
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_videoram, m_videoram_size)
371
 
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_BASE_SIZE_MEMBER(bublbobl_state, m_objectram, m_objectram_size)
 
370
        AM_RANGE(0xc000, 0xdcff) AM_RAM AM_SHARE("videoram")
 
371
        AM_RANGE(0xdd00, 0xdfff) AM_RAM AM_SHARE("objectram")
372
372
        AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share1")
373
 
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
 
373
        AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_byte_be_w) AM_SHARE("paletteram")
374
374
        AM_RANGE(0xfa00, 0xfa00) AM_WRITE(watchdog_reset_w)
375
375
        AM_RANGE(0xfa03, 0xfa03) AM_READ_PORT("DSW0")
376
376
        AM_RANGE(0xfa04, 0xfa04) AM_READ_PORT("DSW1")
384
384
        AM_RANGE(0xfe00, 0xfe00) AM_READ(tokio_mcu_r) AM_WRITENOP // ???
385
385
ADDRESS_MAP_END
386
386
 
387
 
static ADDRESS_MAP_START( tokio_slave_map, AS_PROGRAM, 8 )
 
387
static ADDRESS_MAP_START( tokio_slave_map, AS_PROGRAM, 8, bublbobl_state )
388
388
        AM_RANGE(0x0000, 0x7fff) AM_ROM
389
389
        AM_RANGE(0x8000, 0x97ff) AM_RAM AM_SHARE("share1")
390
390
ADDRESS_MAP_END
391
391
 
392
 
static ADDRESS_MAP_START( tokio_sound_map, AS_PROGRAM, 8 )
 
392
static ADDRESS_MAP_START( tokio_sound_map, AS_PROGRAM, 8, bublbobl_state )
393
393
        AM_RANGE(0x0000, 0x7fff) AM_ROM
394
394
        AM_RANGE(0x8000, 0x8fff) AM_RAM
395
 
        AM_RANGE(0x9000, 0x9000) AM_READWRITE(soundlatch_r, bublbobl_sound_status_w)
 
395
        AM_RANGE(0x9000, 0x9000) AM_READ(soundlatch_byte_r) AM_WRITE(bublbobl_sound_status_w)
396
396
        AM_RANGE(0x9800, 0x9800) AM_READNOP     // ???
397
397
        AM_RANGE(0xa000, 0xa000) AM_WRITE(bublbobl_sh_nmi_disable_w)
398
398
        AM_RANGE(0xa800, 0xa800) AM_WRITE(bublbobl_sh_nmi_enable_w)
399
 
        AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ymsnd", ym2203_r, ym2203_w)
 
399
        AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
400
400
        AM_RANGE(0xe000, 0xffff) AM_ROM // space for diagnostic ROM?
401
401
ADDRESS_MAP_END
402
402
 
1377
1377
        ROM_LOAD( "pal16l8.u4",  0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
1378
1378
ROM_END
1379
1379
 
 
1380
ROM_START( boblbobl2 )
 
1381
        ROM_REGION( 0x30000, "maincpu", 0 )
 
1382
    ROM_LOAD( "cpu2-3.bin",   0x00000, 0x08000, CRC(2d9107b6) SHA1(ab1a4a20f4b533cd06cc458668f407a8a14c9d70) )
 
1383
        /* ROMs banked at 8000-bfff */
 
1384
        ROM_LOAD( "bb5",          0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) )
 
1385
    ROM_LOAD( "cpu2-4.bin",   0x18000, 0x08000, CRC(3f9fed10) SHA1(1cc18a58d9a27495048825836accfa81ebbc0c56) )
 
1386
        /* 20000-2ffff empty */
 
1387
 
 
1388
        ROM_REGION( 0x10000, "slave", 0 )       /* 64k for the second CPU */
 
1389
        ROM_LOAD( "a78-08.37",    0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
 
1390
 
 
1391
        ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for the third CPU */
 
1392
        ROM_LOAD( "a78-07.46",    0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
 
1393
 
 
1394
        ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
 
1395
    ROM_LOAD( "gfx7.bin",     0x00000, 0x10000, CRC(702f61c0) SHA1(2f294ab2b0286736a64ea2bfc95d855aa5b41ada) )
 
1396
    ROM_LOAD( "gfx8.bin",     0x01000, 0x10000, CRC(677840e8) SHA1(995b2125ca18910d7d4b96078f4ecb17465c4151) )
 
1397
        ROM_LOAD( "a78-13.16",    0x20000, 0x08000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
 
1398
        ROM_LOAD( "a78-14.17",    0x28000, 0x08000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )   // match
 
1399
        /* 0x30000-0x3ffff empty */
 
1400
    ROM_LOAD( "gfx10.bin",    0x50000, 0x10000, CRC(d370f499) SHA1(94ce157ff1a53fabf08abe5467531b94a56666a5) )
 
1401
    ROM_LOAD( "gfx11.bin",    0x60000, 0x10000, CRC(76f2b367) SHA1(3e357a5642c8747df77a995057cecdf96f3130ab) )
 
1402
        ROM_LOAD( "a78-20.35",    0x68000, 0x08000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )    // match
 
1403
        /* 0x70000-0x7ffff empty */
 
1404
 
 
1405
        ROM_REGION( 0x0100, "proms", 0 )
 
1406
        ROM_LOAD( "a71-25.41",    0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )        /* video timing */
 
1407
ROM_END
1380
1408
 
1381
1409
ROM_START( sboblboa )
1382
1410
        ROM_REGION( 0x30000, "maincpu", 0 )
1524
1552
 
1525
1553
static void configure_banks( running_machine& machine )
1526
1554
{
1527
 
        UINT8 *ROM = machine.region("maincpu")->base();
1528
 
        memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000);
 
1555
        UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
 
1556
        machine.root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
1529
1557
}
1530
1558
 
1531
1559
static DRIVER_INIT( bublbobl )
1550
1578
 
1551
1579
static DRIVER_INIT( tokiob )
1552
1580
{
 
1581
        bublbobl_state *state = machine.driver_data<bublbobl_state>();
1553
1582
        DRIVER_INIT_CALL(tokio);
1554
1583
 
1555
 
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfe00, 0xfe00, FUNC(tokiob_mcu_r) );
 
1584
        machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfe00, 0xfe00, read8_delegate(FUNC(bublbobl_state::tokiob_mcu_r),state) );
1556
1585
}
1557
1586
 
1558
1587
static DRIVER_INIT( dland )
1559
1588
{
1560
1589
        // rearrange gfx to original format
1561
1590
        int i;
1562
 
        UINT8* src = machine.region("gfx1")->base();
 
1591
        UINT8* src = machine.root_device().memregion("gfx1")->base();
1563
1592
        for (i = 0; i < 0x40000; i++)
1564
1593
                src[i] = BITSWAP8(src[i],7,6,5,4,0,1,2,3);
1565
1594
 
1587
1616
GAME( 1986, bublboblr1, bublbobl, bublbobl, bublbobl, bublbobl, ROT0,  "Taito America Corporation (Romstar license)", "Bubble Bobble (US)", GAME_SUPPORTS_SAVE )
1588
1617
 
1589
1618
GAME( 1986, boblbobl,   bublbobl, boblbobl, boblbobl, bublbobl, ROT0,  "bootleg", "Bobble Bobble", GAME_SUPPORTS_SAVE )
 
1619
GAME( 1986, boblbobl2,  bublbobl, boblbobl, boblbobl, bublbobl, ROT0,  "bootleg", "Bobble Bobble (set 2)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
1590
1620
GAME( 1986, sboblboa,   bublbobl, boblbobl, boblbobl, bublbobl, ROT0,  "bootleg", "Super Bobble Bobble (set 1)", GAME_SUPPORTS_SAVE )
1591
1621
GAME( 1986, sboblbob,   bublbobl, boblbobl, sboblbob, bublbobl, ROT0,  "bootleg", "Super Bobble Bobble (set 2)", GAME_SUPPORTS_SAVE )
1592
1622
GAME( 1986, bub68705,   bublbobl, bub68705, bublbobl, bublbobl, ROT0,  "bootleg", "Bubble Bobble (bootleg with 68705)", GAME_SUPPORTS_SAVE )