Merge pull request #2934 from DavidHaywood/101217

pgm2: kof98umh resolution is 320x240 instead, extra lines are needed at both top and bottom (nw)
This commit is contained in:
MetalliC 2017-12-14 03:56:05 +02:00 committed by GitHub
commit 3a618ace15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 7 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
@ -869,7 +897,11 @@ all others: SPANSION S99-50070
\
ROM_REGION( 0x08000000, "ymz774", ROMREGION_ERASEFF ) /* ymz770 */ \
ROM_LOAD16_WORD_SWAP( "ig-d3_wave0.u12", 0x00000000, 0x4000000, CRC(edf2332d) SHA1(7e01c7e03e515814d7de117c265c3668d32842fa) ) \
ROM_LOAD16_WORD_SWAP( "ig-d3_wave1.u11", 0x04000000, 0x4000000, CRC(62321b20) SHA1(a388c8a2489430fbe92fb26b3ef81c66ce97f318) )
ROM_LOAD16_WORD_SWAP( "ig-d3_wave1.u11", 0x04000000, 0x4000000, CRC(62321b20) SHA1(a388c8a2489430fbe92fb26b3ef81c66ce97f318) ) \
\
ROM_REGION( 0x10000, "sram", 0 ) \
ROM_LOAD( "kof98umh_sram", 0x00000000, 0x10000, CRC(60460ed9) SHA1(55cd8de37cee04ff7ad940fb52f8fb8db042c26e) )
ROM_START( kof98umh )
ROM_REGION( 0x04000, "maincpu", 0 )
@ -1126,7 +1158,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);