diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index 92081d8f721..db7f07bf55b 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -1787,7 +1787,7 @@ ROM_START( pgm3in1 ) /* No external ARM rom */ - ROM_REGION( 0x480000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ + ROM_REGION( 0x380000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */ PGM_VIDEO_BIOS ROM_LOAD( "u5.u5", 0x180000, 0x200000, CRC(da375a50) SHA1(62cd2fd3dfc1897528eaa38d243d7a9526eac71b) ) diff --git a/src/mame/machine/pgmprot1.c b/src/mame/machine/pgmprot1.c index 25d34ad1ddb..89654324432 100644 --- a/src/mame/machine/pgmprot1.c +++ b/src/mame/machine/pgmprot1.c @@ -681,6 +681,19 @@ void command_handler_py2k2(pgm_arm_type1_state *state, int pc) state->m_valueresponse = 0x880000; break; + case 0xcb: // Background layer 'x' select (pgm3in1, same as kov) + state->m_valueresponse = 0x880000; + state->m_kov_cb_value = state->m_value0; + break; + + case 0xcc: // Background layer offset (pgm3in1, same as kov) + { + int y = state->m_value0; + if (y & 0x400) y = -(0x400 - (y & 0x3ff)); + state->m_valueresponse = 0x900000 + ((state->m_kov_cb_value + (y * 0x40)) * 4); + } + break; + case 0x99: // reset? state->m_valuekey = 0x100; state->m_valueresponse = 0x00880000;