pgm2: kof98umh resolution is 320x240 instead, extra lines are needed at both top and bottom (nw)

also it seems to be playable, so just mark it as IMPERFECT SOUND for now
This commit is contained in:
David Haywood 2017-12-14 00:13:18 +00:00
parent f9ab8085e5
commit 33ba33021e
3 changed files with 36 additions and 6 deletions

View File

@ -320,6 +320,33 @@ WRITE32_MEMBER(pgm2_state::mcu_w)
mcu_command(space, false);
}
WRITE16_MEMBER(pgm2_state::unk30120014_w)
{
if (offset == 0)
{
// 0/1 toggles (maybe sprite dma triggers?)
}
else
{
// interesting data
//printf("unk30120014_w %d %04x\n", offset, data);
}
}
WRITE16_MEMBER(pgm2_state::unk30120018_w)
{
if (offset == 0)
{
// writes 1 (maybe sprite enable)
}
else
{
// writes 0 (rarely)
//printf("unk30120018_w %d %04x\n", offset, data);
}
}
static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM //AM_REGION("user1", 0x00000) // internal ROM
@ -357,6 +384,8 @@ static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x30120000, 0x30120003) AM_RAM AM_SHARE("bgscroll") // scroll
AM_RANGE(0x30120008, 0x3012000b) AM_RAM AM_SHARE("fgscroll")
AM_RANGE(0x3012000c, 0x3012000f) AM_RAM AM_SHARE("vidmode")
AM_RANGE(0x30120014, 0x30120017) AM_WRITE16(unk30120014_w, 0xffffffff)
AM_RANGE(0x30120018, 0x3012001b) AM_WRITE16(unk30120018_w, 0xffffffff)
AM_RANGE(0x30120030, 0x30120033) AM_WRITE16(share_bank_w, 0xffff0000)
AM_RANGE(0x30120038, 0x3012003b) AM_WRITE(sprite_encryption_w)
// there are other 0x301200xx regs
@ -576,8 +605,7 @@ MACHINE_CONFIG_END
// not strictly needed as the video code supports changing on the fly, but makes recording easier etc.
static MACHINE_CONFIG_DERIVED( pgm2_lores, pgm2 )
MCFG_SCREEN_MODIFY("screen")
// note, +8 to y position too, could be a sprite reg to move sprites intead
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+8, 224+8-1)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
MACHINE_CONFIG_END
@ -1126,7 +1154,7 @@ GAME( 2011, kov3_102, kov3, pgm2, pgm2, pgm2_state, kov3_102, ROT0,
GAME( 2011, kov3_100, kov3, pgm2, pgm2, pgm2_state, kov3_100, ROT0, "IGS", "Knights of Valour 3 (V100, China)", MACHINE_NOT_WORKING )
// King of Fighters '98: Ultimate Match Hero
GAME( 2009, kof98umh, 0, pgm2_lores, pgm2, pgm2_state, kof98umh, ROT0, "IGS / SNK Playmore / NewChannel", "The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23)", MACHINE_NOT_WORKING )
GAME( 2009, kof98umh, 0, pgm2_lores, pgm2, pgm2_state, kof98umh, ROT0, "IGS / SNK Playmore / New Channel", "The King of Fighters '98: Ultimate Match HERO (China, V100, 09-08-23)", MACHINE_IMPERFECT_SOUND )
// Jigsaw World Arena

View File

@ -55,7 +55,9 @@ public:
DECLARE_WRITE16_MEMBER(share_bank_w);
DECLARE_READ8_MEMBER(shareram_r);
DECLARE_WRITE8_MEMBER(shareram_w);
DECLARE_WRITE16_MEMBER(unk30120014_w);
DECLARE_WRITE16_MEMBER(unk30120018_w);
DECLARE_READ32_MEMBER(orleg2_speedup_r);
DECLARE_READ32_MEMBER(kov2nl_speedup_r);
DECLARE_READ32_MEMBER(kof98umh_speedup_r);

View File

@ -266,8 +266,8 @@ uint32_t pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_rgb32 &bit
if (mode)
m_screen->set_visible_area(0, 448 - 1, 0, 224 - 1);
else // note, +8 to y position too, could be a sprite reg to move sprites intead
m_screen->set_visible_area(0, 320 - 1, 8, 224 + 8 - 1);
else
m_screen->set_visible_area(0, 320 - 1, 0, 240 - 1);
m_fg_tilemap->set_scrollx(0, m_fgscroll[0] & 0xffff);