diff --git a/Core/ColorDreams.h b/Core/ColorDreams.h
new file mode 100644
index 00000000..195d8a8d
--- /dev/null
+++ b/Core/ColorDreams.h
@@ -0,0 +1,23 @@
+#pragma once
+#include "stdafx.h"
+#include "BaseMapper.h"
+
+class ColorDreams : public BaseMapper
+{
+ protected:
+ virtual uint32_t GetPRGPageSize() { return 0x8000; }
+ virtual uint32_t GetCHRPageSize() { return 0x2000; }
+
+ void InitMapper()
+ {
+ SelectPRGPage(0, 0);
+ SelectCHRPage(0, 0);
+ }
+
+ public:
+ void WriteRAM(uint16_t addr, uint8_t value)
+ {
+ SelectPRGPage(0, value & 0x03);
+ SelectCHRPage(0, (value >> 4) & 0x0F);
+ }
+};
\ No newline at end of file
diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index a257f737..42cc4593 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -91,6 +91,7 @@
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index 31762e00..dc9b46c6 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -126,6 +126,9 @@
Header Files\Mappers
+
+ Header Files\Mappers
+
diff --git a/Core/MapperFactory.h b/Core/MapperFactory.h
index d2c7afbd..d71bb108 100644
--- a/Core/MapperFactory.h
+++ b/Core/MapperFactory.h
@@ -2,6 +2,7 @@
#include "ROMLoader.h"
#include "AXROM.h"
#include "CNROM.h"
+#include "ColorDreams.h"
#include "MMC1.h"
#include "MMC2.h"
#include "MMC3.h"
@@ -19,8 +20,12 @@ class MapperFactory
case 2: return new UNROM();
case 3: return new CNROM();
case 4: return new MMC3();
+ case 5: break; //11 games
case 7: return new AXROM();
case 9: return new MMC2();
+ case 11: return new ColorDreams(); break;
+ case 16: break; //18 games
+ case 19: break; //16 games
case 71: return new UNROM(); //TODO: "It's largely a clone of UNROM, and Camerica games were initially emulated under iNES Mapper 002 before 071 was assigned."
}