diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index 3b3b467c..83566727 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -412,6 +412,7 @@
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index 4db4af4a..85aa14a8 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -1174,6 +1174,9 @@
Nes\Mappers
+
+ Nes\Mappers\Unnamed
+
diff --git a/Core/Mapper174.h b/Core/Mapper174.h
new file mode 100644
index 00000000..878b316a
--- /dev/null
+++ b/Core/Mapper174.h
@@ -0,0 +1,30 @@
+#pragma once
+#include "stdafx.h"
+#include "BaseMapper.h"
+
+//NTDec 5-in-1 cart - untested, based on Wiki description
+class Mapper174 : public BaseMapper
+{
+protected:
+ virtual uint16_t GetPRGPageSize() override { return 0x4000; }
+ virtual uint16_t GetCHRPageSize() override { return 0x2000; }
+
+ void InitMapper() override
+ {
+ WriteRegister(0x8000, 0);
+ }
+
+ void WriteRegister(uint16_t addr, uint8_t value) override
+ {
+ uint8_t prgBank = (addr >> 4) & 0x07;
+ if(addr & 0x80) {
+ SelectPrgPage2x(0, prgBank & 0xFE);
+ } else {
+ SelectPRGPage(0, prgBank);
+ SelectPRGPage(1, prgBank);
+ }
+ SelectCHRPage(0, (addr >> 1) & 0x07);
+
+ SetMirroringType(addr & 0x01 ? MirroringType::Horizontal : MirroringType::Vertical);
+ }
+};
diff --git a/Core/MapperFactory.cpp b/Core/MapperFactory.cpp
index b438739f..4d9c5bbd 100644
--- a/Core/MapperFactory.cpp
+++ b/Core/MapperFactory.cpp
@@ -95,6 +95,7 @@
#include "Mapper117.h"
#include "Mapper120.h"
#include "Mapper170.h"
+#include "Mapper174.h"
#include "Mapper183.h"
#include "Mapper200.h"
#include "Mapper201.h"
@@ -259,7 +260,7 @@ Supported mappers:
|112|113|114|115| |117|118|119|120|121|===|123|===|125|126|===|
|===|===|===|===|132|133|134|===|136|137|138|139|140|141|142|143|
|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|
-|---|===|162|163|164|165|166|167|168|===|170|171|172|173|===|175|
+|---|===|162|163|164|165|166|167|168|===|170|171|172|173|174|175|
|176|177|178|179|180|---|182|183|184|185|186|187|188|189|190|191|
|192|193|194|195|196|197| |199|200|201|202|203|204|205|206|207|
|???|209|210|211|212|213|214|215|216|217|218|219|220|221|222|???|
@@ -431,6 +432,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case 171: return new Kaiser7058();
case 172: return new Txc22211B();
case 173: return new Txc22211C();
+ case 174: return new Mapper174();
case 175: return new Kaiser7022();
case 176: return new Waixing176();
case 177: return new Henggedianzi177();