diff --git a/src/mame/drivers/konamim2.cpp b/src/mame/drivers/konamim2.cpp index b462da3423e..3ac8f75ccde 100644 --- a/src/mame/drivers/konamim2.cpp +++ b/src/mame/drivers/konamim2.cpp @@ -261,6 +261,11 @@ public: DECLARE_WRITE64_MEMBER(cde_w); DECLARE_READ64_MEMBER(device2_r); DECLARE_READ64_MEMBER(cpu_r); + DECLARE_READ8_MEMBER(id3_r); + DECLARE_READ8_MEMBER(id4_r); + DECLARE_READ8_MEMBER(id5_r); + DECLARE_READ8_MEMBER(id6_r); + DECLARE_READ8_MEMBER(id7_r); DECLARE_DRIVER_INIT(m2); virtual void video_start() override; @@ -1136,7 +1141,33 @@ READ64_MEMBER(konamim2_state::cpu_r) return 0; } +READ8_MEMBER(konamim2_state::id3_r) +{ + return 0x03; +} + +READ8_MEMBER(konamim2_state::id4_r) +{ + return 0x04; +} + +READ8_MEMBER(konamim2_state::id5_r) +{ + return 0x05; +} + +READ8_MEMBER(konamim2_state::id6_r) +{ + return 0x06; +} + +READ8_MEMBER(konamim2_state::id7_r) +{ + return 0x07; +} + static ADDRESS_MAP_START( m2_main, AS_PROGRAM, 64, konamim2_state ) + AM_RANGE(0x00000000, 0x0000007f) AM_RAM // ??? AM_RANGE(0x00010040, 0x00010047) AM_READWRITE(irq_enable_r, irq_enable_w) AM_RANGE(0x00010050, 0x00010057) AM_READ(irq_active_r) AM_RANGE(0x00020000, 0x00020007) AM_READWRITE(unk4_r, unk4_w) @@ -1146,16 +1177,30 @@ static ADDRESS_MAP_START( m2_main, AS_PROGRAM, 64, konamim2_state ) AM_RANGE(0x00030010, 0x00030017) AM_WRITE(video_w) AM_RANGE(0x00030030, 0x00030037) AM_READ(unk30030_r) AM_RANGE(0x00030400, 0x00030407) AM_WRITE32(video_irq_ack_w,0x00000000ffffffffU) + AM_RANGE(0x01000000, 0x01000fff) AM_READWRITE(cde_r, cde_w) + AM_RANGE(0x02000000, 0x02000fff) AM_READ(device2_r) + + AM_RANGE(0x03000000, 0x03000007) AM_READ8(id3_r, 0x00ff000000000000U) + + AM_RANGE(0x04000000, 0x04000007) AM_READ8(id4_r, 0x00ff000000000000U) AM_RANGE(0x04000010, 0x04000017) AM_WRITE8(serial_w,0x00000000000000ffU) - AM_RANGE(0x04000018, 0x0400001f) AM_READ(unk1_r) + AM_RANGE(0x04000018, 0x0400001f) AM_READ(unk1_r) // serial status AM_RANGE(0x04000020, 0x04000027) AM_WRITE(reset_w) - AM_RANGE(0x04000418, 0x0400041f) AM_WRITE(unk4000418_w) + AM_RANGE(0x04000418, 0x0400041f) AM_WRITE(unk4000418_w) // serial status ack AM_RANGE(0x04000208, 0x0400020f) AM_READ(unk3_r) AM_RANGE(0x04000280, 0x04000287) AM_READ(unk4000280_r) + + AM_RANGE(0x05000000, 0x05000007) AM_READ8(id5_r, 0x00ff000000000000U) + + AM_RANGE(0x06000000, 0x06000007) AM_READ8(id6_r, 0x00ff000000000000U) + + AM_RANGE(0x07000000, 0x07000007) AM_READ8(id7_r, 0x00ff000000000000U) + AM_RANGE(0x10000000, 0x10000007) AM_READ(cpu_r) AM_RANGE(0x10000008, 0x10001007) AM_NOP // ??? + AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_SHARE("share2") AM_RANGE(0x40000000, 0x407fffff) AM_RAM AM_SHARE("main_ram") AM_RANGE(0xfff00000, 0xffffffff) AM_ROM AM_REGION("boot", 0) AM_SHARE("share2")