konmedal: improved colors for shuriboy, fuusenpn, and mariorou [R. Belmont]

This commit is contained in:
arbee 2020-01-14 22:41:17 -05:00
parent a488be57b6
commit 453d68bcf6

View File

@ -67,6 +67,7 @@ public:
void ddboy(machine_config &config);
void tsukande(machine_config &config);
void fuusenpn(machine_config &config);
void mariorou(machine_config &config);
private:
void konmedal_palette(palette_device &palette) const;
@ -85,12 +86,12 @@ 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);
uint32_t screen_update_mariorou(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_READ8_MEMBER(shuri_irq_r);
@ -217,6 +218,20 @@ uint32_t konmedal_state::screen_update_fuusenpn(screen_device &screen, bitmap_in
return 0;
}
uint32_t konmedal_state::screen_update_mariorou(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, 1, 0, 1);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2);
m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 4);
return 0;
}
void konmedal_state::konmedal_palette(palette_device &palette) const
{
uint8_t const *const PROM = memregion("proms")->base();
@ -482,17 +497,32 @@ K052109_CB_MEMBER(konmedal_state::shuriboy_tile_callback)
*flags = (*color & 0x1) ? TILE_FLIPX : 0;
u8 col = *color;
*color = (col >> 4);
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;
if (layer == 0)
{
if (*color == 1) *color = 0;
if (*color == 2) *color = 1;
if (*color == 6) *color = 5;
if (*color == 8) *color = 4;
if (*color == 9) *color = 4;
if (*color == 0xa) *color = 5;
if (*color == 0xd) *color = 6;
if (*color == 0xe) *color = 3;
}
if (layer == 1)
{
if (*color == 0) *color = 8;
if (*color == 0xa) *color = 0xe;
if (*color == 4) *color = 0xa;
}
if (layer == 2)
{
if (*color == 6) *color = 3;
if (*color == 8) *color = 0xc;
if (*color == 0) *color = 8;
if (*color == 0xa) *color = 0xd;
if (*color == 4) *color = 0xa;
if (*color == 5) *color = 0xa;
}
}
WRITE8_MEMBER(konmedal_state::shuri_bank_w)
@ -583,7 +613,22 @@ void konmedal_state::fuusenpn(machine_config &config)
screen.set_screen_update(FUNC(konmedal_state::screen_update_fuusenpn));
screen.set_palette(m_palette);
m_k052109->set_tile_callback(FUNC(konmedal_state::fuusenpn_tile_callback));
m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback));
}
void konmedal_state::mariorou(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_mariorou));
screen.set_palette(m_palette);
m_k052109->set_tile_callback(FUNC(konmedal_state::shuriboy_tile_callback));
}
ROM_START( tsukande )
@ -746,11 +791,13 @@ ROM_START( mariorou )
ROM_LOAD( "111_a10.3e.82s129", 0x000300, 0x000100, CRC(07ffc2ed) SHA1(37955d1788a86b90439233bb098c59b191056f68) )
ROM_END
// K052109 (TMNT tilemaps) board
GAME( 1991, mariorou, 0, mariorou, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Mario Roulette", MACHINE_NOT_WORKING)
GAME( 1993, shuriboy, 0, shuriboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Shuriken Boy", MACHINE_NOT_WORKING)
GAME( 1993, fuusenpn, 0, fuusenpn, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Fuusen Pentai", MACHINE_NOT_WORKING)
// K054156/K054157 (GX tilemaps) board
GAME( 1994, buttobi, 0, ddboy, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Buttobi Striker", MACHINE_NOT_WORKING)
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, fuusenpn, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Fuusen Pentai", MACHINE_NOT_WORKING)
GAME( 1993, mariorou, 0, fuusenpn, konmedal, konmedal_state, empty_init, ROT0, "Konami", "Mario Roulette", MACHINE_NOT_WORKING)