diff options
author | 2019-07-01 20:02:14 -0400 | |
---|---|---|
committer | 2019-07-01 20:02:14 -0400 | |
commit | ab6867b71406f8307c26711cf7a466eeef89367f (patch) | |
tree | 6adcdb4739184052de614d3caf6c1a6036b578d5 | |
parent | b1dff791ed66f114f3b8d63c156d8f16f06c0f0c (diff) |
konmedal: Dumped color PROMs for Fuusen Pentai [Klaus of TeamEurope, SpinalFeyd]
-rw-r--r-- | src/mame/drivers/konmedal.cpp | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/src/mame/drivers/konmedal.cpp b/src/mame/drivers/konmedal.cpp index f5c3658991e..0ed55c61f03 100644 --- a/src/mame/drivers/konmedal.cpp +++ b/src/mame/drivers/konmedal.cpp @@ -63,6 +63,7 @@ public: void shuriboy(machine_config &config); void ddboy(machine_config &config); void tsukande(machine_config &config); + void fuusenpn(machine_config &config); private: void konmedal_palette(palette_device &palette) const; @@ -80,10 +81,13 @@ private: uint32_t screen_update_konmedal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_shuriboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_fuusenpn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + INTERRUPT_GEN_MEMBER(konmedal_interrupt); K056832_CB_MEMBER(tile_callback); K052109_CB_MEMBER(shuriboy_tile_callback); + K052109_CB_MEMBER(fuusenpn_tile_callback); TIMER_DEVICE_CALLBACK_MEMBER(scanline); DECLARE_WRITE8_MEMBER(shuri_bank_w); DECLARE_WRITE8_MEMBER(shuri_control_w); @@ -177,7 +181,6 @@ void konmedal_state::video_start() uint32_t konmedal_state::screen_update_konmedal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { -// bitmap.fill(m_back_colorbase, cliprect); bitmap.fill(0, cliprect); screen.priority().fill(0, cliprect); @@ -200,6 +203,18 @@ uint32_t konmedal_state::screen_update_shuriboy(screen_device &screen, bitmap_in return 0; } +uint32_t konmedal_state::screen_update_fuusenpn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); + + m_k052109->tilemap_update(); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 1); + + return 0; +} void konmedal_state::konmedal_palette(palette_device &palette) const { uint8_t const *const PROM = memregion("proms")->base(); @@ -469,6 +484,16 @@ K052109_CB_MEMBER(konmedal_state::shuriboy_tile_callback) if (layer > 0) *color |= 8; } +K052109_CB_MEMBER(konmedal_state::fuusenpn_tile_callback) +{ + *code |= ((*color & 0xc) << 6) | (bank << 10); + if (*color & 0x2) *code |= 0x1000; + *flags = (*color & 0x1) ? TILE_FLIPX : 0; + u8 col = *color; + *color = (col >> 4); + *color |= 8; +} + WRITE8_MEMBER(konmedal_state::shuri_bank_w) { membank("bank1")->set_entry(data&0x3); @@ -550,6 +575,23 @@ void konmedal_state::shuriboy(machine_config &config) UPD7759(config, m_upd7759); } +void konmedal_state::fuusenpn(machine_config &config) +{ + shuriboy(config); + + screen_device &screen(SCREEN(config.replace(), "screen", SCREEN_TYPE_RASTER)); // everything not verified, just a placeholder + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(30)); + screen.set_size(64*8, 32*8); + screen.set_visarea(96, 416-1, 16, 240-1); + screen.set_screen_update(FUNC(konmedal_state::screen_update_fuusenpn)); + screen.set_palette(m_palette); + + K052109(config.replace(), m_k052109, 0); + m_k052109->set_palette(m_palette); + m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback), this); +} + ROM_START( tsukande ) ROM_REGION( 0x20000, "maincpu", 0 ) /* main program */ ROM_LOAD( "441-d02.4g", 0x000000, 0x020000, CRC(6ed17227) SHA1(4e3f5219cbf6f42c60df38a99f3009fe49f78fc1) ) @@ -659,10 +701,14 @@ ROM_START( fuusenpn ) ROM_LOAD( "241-a02-13c.bin", 0x000000, 0x020000, CRC(f2c39c7b) SHA1(ec420a1fbd6e83fe1ff5c9c8f7169b755d0cc494) ) ROM_REGION( 0x400, "proms", ROMREGION_ERASE00 ) // am27s21apc + ROM_LOAD( "241a07.bin", 0x000000, 0x000100, CRC(b246f88e) SHA1(e16aae373b41bc11d4828e1cc2cc267552b0397c) ) + ROM_LOAD( "241a08.bin", 0x000100, 0x000100, CRC(e84cbf2a) SHA1(a0e99df97ca268c16625a02b6e6427aadcca1b5b) ) + ROM_LOAD( "241a09.bin", 0x000200, 0x000100, CRC(79bd3e49) SHA1(ff94856d11acfba364f2d05ca955c10fbc02e265) ) + ROM_LOAD( "241a10.bin", 0x000300, 0x000100, CRC(f7e3d8ee) SHA1(89c505873c884f9e1ec0cb113a3557d3f67943b9) ) ROM_END GAME( 1995, tsukande, 0, tsukande, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Tsukande Toru Chicchi", MACHINE_NOT_WORKING) GAME( 1995, ddboy, 0, ddboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Dam Dam Boy (on dedicated PCB)", MACHINE_NOT_WORKING) GAME( 1995, ddboya, ddboy, ddboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Dam Dam Boy (on Tsukande Toru Chicchi PCB)", MACHINE_NOT_WORKING) GAME( 1993, shuriboy, 0, shuriboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Shuriken Boy", MACHINE_NOT_WORKING) -GAME( 1993, fuusenpn, 0, shuriboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Fuusen Pentai", MACHINE_NOT_WORKING) +GAME( 1993, fuusenpn, 0, fuusenpn, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Fuusen Pentai", MACHINE_NOT_WORKING) |