diff --git a/hash/megadriv.xml b/hash/megadriv.xml
index 6650788b6cd..340162e90ab 100644
--- a/hash/megadriv.xml
+++ b/hash/megadriv.xml
@@ -119,9 +119,9 @@ Info on Sega chip labels (from Sunbeam / Digital Corruption)
-
-
-
+
+
+
@@ -9602,7 +9602,7 @@ Info on Sega chip labels (from Sunbeam / Digital Corruption)
Codemasters
-
+
@@ -30078,6 +30078,17 @@ Notice that these are not working on real hardware due to bugged code with VDP i
+
+ Link Dragon
+ 1993
+ Songtly
+
+
+
+
+
+
+
Lion King 3 (Alt?)
199?
@@ -30173,6 +30184,17 @@ Notice that these are not working on real hardware due to bugged code with VDP i
+
+ Super Tank War
+ 199?
+ Gamtec
+
+
+
+
+
+
+
diff --git a/src/emu/bus/megadrive/md_slot.c b/src/emu/bus/megadrive/md_slot.c
index dd9bd986c36..5cc2c124ecb 100644
--- a/src/emu/bus/megadrive/md_slot.c
+++ b/src/emu/bus/megadrive/md_slot.c
@@ -384,7 +384,7 @@ int base_md_cart_slot_device::load_list()
m_type = md_get_pcb_id(slot_name);
// handle mirroring of ROM, unless it's SSF2 or Pier Solar
- if (m_type != SSF2 && m_type != PSOLAR)
+ if (m_type != SSF2 && m_type != PSOLAR && m_type != CM_2IN1)
m_cart->rom_map_setup(length);
return IMAGE_INIT_PASS;
diff --git a/src/emu/bus/megadrive/rom.c b/src/emu/bus/megadrive/rom.c
index c5c5b93c49f..a2c08860134 100644
--- a/src/emu/bus/megadrive/rom.c
+++ b/src/emu/bus/megadrive/rom.c
@@ -531,7 +531,7 @@ WRITE16_MEMBER(md_rom_ssf2_device::write_a13)
CODEMASTERS 2 IN 1 (RESET BASED)
-------------------------------------------------*/
-#define MD_ADDR_CM2IN1(a) (m_base == 0 ? ((a << 1) & 0x1fffff)/2 : (((a << 1) & 0x7ffff) + 0x200000)/2)
+#define MD_ADDR_CM2IN1(a) (m_base == 0 ? ((a << 1) & 0x1fffff)/2 : (((a << 1) & 0x1fffff) + 0x200000)/2)
READ16_MEMBER(md_rom_cm2in1_device::read)
{