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); 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 ) static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x00000000, 0x00003fff) AM_ROM //AM_REGION("user1", 0x00000) // internal ROM 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(0x30120000, 0x30120003) AM_RAM AM_SHARE("bgscroll") // scroll
AM_RANGE(0x30120008, 0x3012000b) AM_RAM AM_SHARE("fgscroll") AM_RANGE(0x30120008, 0x3012000b) AM_RAM AM_SHARE("fgscroll")
AM_RANGE(0x3012000c, 0x3012000f) AM_RAM AM_SHARE("vidmode") 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(0x30120030, 0x30120033) AM_WRITE16(share_bank_w, 0xffff0000)
AM_RANGE(0x30120038, 0x3012003b) AM_WRITE(sprite_encryption_w) AM_RANGE(0x30120038, 0x3012003b) AM_WRITE(sprite_encryption_w)
// there are other 0x301200xx regs // 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. // not strictly needed as the video code supports changing on the fly, but makes recording easier etc.
static MACHINE_CONFIG_DERIVED( pgm2_lores, pgm2 ) static MACHINE_CONFIG_DERIVED( pgm2_lores, pgm2 )
MCFG_SCREEN_MODIFY("screen") 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, 240-1)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+8, 224+8-1)
MACHINE_CONFIG_END 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 ) 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 // 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 // Jigsaw World Arena

View File

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

View File

@ -266,8 +266,8 @@ uint32_t pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_rgb32 &bit
if (mode) if (mode)
m_screen->set_visible_area(0, 448 - 1, 0, 224 - 1); 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 else
m_screen->set_visible_area(0, 320 - 1, 8, 224 + 8 - 1); m_screen->set_visible_area(0, 320 - 1, 0, 240 - 1);
m_fg_tilemap->set_scrollx(0, m_fgscroll[0] & 0xffff); m_fg_tilemap->set_scrollx(0, m_fgscroll[0] & 0xffff);