285
285
*************************************/
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")
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")
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?
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)
340
340
AM_RANGE(0x080, 0x7ff) AM_ROM
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 // ???
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 // ???
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")
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?
1377
1377
ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
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 */
1388
ROM_REGION( 0x10000, "slave", 0 ) /* 64k for the second CPU */
1389
ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
1391
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the third CPU */
1392
ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
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 */
1405
ROM_REGION( 0x0100, "proms", 0 )
1406
ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) ) /* video timing */
1381
1409
ROM_START( sboblboa )
1382
1410
ROM_REGION( 0x30000, "maincpu", 0 )
1551
1579
static DRIVER_INIT( tokiob )
1581
bublbobl_state *state = machine.driver_data<bublbobl_state>();
1553
1582
DRIVER_INIT_CALL(tokio);
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) );
1558
1587
static DRIVER_INIT( dland )
1560
1589
// rearrange gfx to original format
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);
1587
1616
GAME( 1986, bublboblr1, bublbobl, bublbobl, bublbobl, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US)", GAME_SUPPORTS_SAVE )
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 )