diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp index 311f3dc9897..e24b04b97ca 100644 --- a/src/mame/drivers/pgm2.cpp +++ b/src/mame/drivers/pgm2.cpp @@ -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 diff --git a/src/mame/includes/pgm2.h b/src/mame/includes/pgm2.h index d3052a22b3f..a93fa8ccab7 100644 --- a/src/mame/includes/pgm2.h +++ b/src/mame/includes/pgm2.h @@ -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); diff --git a/src/mame/video/pgm2.cpp b/src/mame/video/pgm2.cpp index 8f416b469c8..a1e3ec0a8cc 100644 --- a/src/mame/video/pgm2.cpp +++ b/src/mame/video/pgm2.cpp @@ -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);