diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp index cb3fcf0776a..2476288cfe2 100644 --- a/src/mame/drivers/bishi.cpp +++ b/src/mame/drivers/bishi.cpp @@ -414,6 +414,13 @@ static MACHINE_CONFIG_START( bishi ) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( dobouchn, bishi ) +// TODO: change accordingly (ASCII charset definitely not 8bpp) + MCFG_DEVICE_MODIFY("k056832") +// MCFG_K056832_CB(bishi_state, dobouchn_tile_callback) + MCFG_K056832_CONFIG("gfx1", K056832_BPP_8, 1, 0, "none") +MACHINE_CONFIG_END + // ROM definitions @@ -507,8 +514,13 @@ ROM_START( dobouchn ) ROM_LOAD16_WORD_SWAP( "640-a05-2n.bin", 0x000000, 0x080000, CRC(7643dbc6) SHA1(3b55a782f04a741088b93954279b35c1c90af622) ) ROM_REGION( 0x200000, "gfx1", 0 ) + // makes GFX ROM test to pass + // must return 0xf0c3 and 0xee9e, check snippets at 0x2e1c and 0x2e42 + // TODO: might require a different K056832_rom_r callback instead ROM_LOAD16_BYTE( "640-a06-14n.bin", 0x000000, 0x080000, CRC(c6c5016c) SHA1(ad0b5258e2c1d0ba95dfc0d8fc6332b524f2c1e2) ) - ROM_LOAD16_BYTE( "640-a07-17n.bin", 0x080000, 0x080000, CRC(614fee32) SHA1(080fea72c0417752eb0a0b109b524d87379b2921) ) + ROM_RELOAD( 0x100001, 0x080000 ) + ROM_LOAD16_BYTE( "640-a07-17n.bin", 0x000001, 0x080000, CRC(614fee32) SHA1(080fea72c0417752eb0a0b109b524d87379b2921) ) + ROM_RELOAD( 0x100000, 0x080000 ) // dummy region (game has no sprites, but we want to use the GX mixer) ROM_REGION( 0x80000, "gfx2", ROMREGION_ERASE00 ) @@ -518,8 +530,8 @@ ROM_START( dobouchn ) ROM_LOAD( "640-a02-4f.bin", 0x080000, 0x080000, CRC(ab6593f5) SHA1(95907ee4a2cdf3bf27b7c0c1283b2bc36b868d9d) ) ROM_END -GAME( 1996, bishi, 0, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishi, 0, bishi, bishi2p, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA, 2 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishik, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAB, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1998, sbishika, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1996, dobouchn, 0, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Dobou-Chan (ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, bishi, 0, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishi, 0, bishi, bishi2p, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA, 2 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishik, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAB, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1998, sbishika, sbishi, bishi, bishi, bishi_state, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1996, dobouchn, 0, dobouchn, bishi, bishi_state, 0, ROT0, "Konami", "Dobou-Chan (ver JAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h index b0339261384..8acc704420d 100644 --- a/src/mame/includes/bishi.h +++ b/src/mame/includes/bishi.h @@ -29,16 +29,30 @@ public: m_palette(*this, "palette"), m_screen(*this, "screen") { } + DECLARE_READ16_MEMBER(control_r); + DECLARE_WRITE16_MEMBER(control_w); + DECLARE_WRITE16_MEMBER(control2_w); + DECLARE_READ16_MEMBER(bishi_mirror_r); + DECLARE_READ16_MEMBER(bishi_K056832_rom_r); + uint32_t screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + TIMER_DEVICE_CALLBACK_MEMBER(bishi_scanline); + K056832_CB_MEMBER(tile_callback); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void video_start() override; +private: /* memory pointers */ uint8_t * m_ram; - /* video-related */ - int m_layer_colorbase[4]; - /* misc */ uint16_t m_cur_control; uint16_t m_cur_control2; + /* video-related */ + int m_layer_colorbase[4]; + /* devices */ required_device m_maincpu; optional_device m_audiocpu; @@ -47,15 +61,4 @@ public: required_device m_k055555; required_device m_palette; required_device m_screen; - DECLARE_READ16_MEMBER(control_r); - DECLARE_WRITE16_MEMBER(control_w); - DECLARE_WRITE16_MEMBER(control2_w); - DECLARE_READ16_MEMBER(bishi_mirror_r); - DECLARE_READ16_MEMBER(bishi_K056832_rom_r); - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - uint32_t screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - TIMER_DEVICE_CALLBACK_MEMBER(bishi_scanline); - K056832_CB_MEMBER(tile_callback); };