diff --git a/Core/Bmc11160.h b/Core/Bmc11160.h
new file mode 100644
index 00000000..d44987a5
--- /dev/null
+++ b/Core/Bmc11160.h
@@ -0,0 +1,28 @@
+#pragma once
+#include "stdafx.h"
+#include "BaseMapper.h"
+
+class Bmc11160 : public BaseMapper
+{
+protected:
+ uint16_t GetPRGPageSize() override { return 0x8000; }
+ uint16_t GetCHRPageSize() override { return 0x2000; }
+
+ void InitMapper() override
+ {
+ }
+
+ void Reset(bool softReset)
+ {
+ BaseMapper::Reset(softReset);
+ WriteRegister(0x8000, 0);
+ }
+
+ void WriteRegister(uint16_t addr, uint8_t value) override
+ {
+ uint8_t bank = (value >> 4) & 0x07;
+ SelectPRGPage(0, bank);
+ SelectCHRPage(0, (bank << 2) | (value & 0x03));
+ SetMirroringType(value & 0x80 ? MirroringType::Vertical : MirroringType::Horizontal);
+ }
+};
\ No newline at end of file
diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index b1b4ab90..86c8cc8e 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -417,6 +417,7 @@
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index 56e9918d..aec41765 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -1045,6 +1045,9 @@
Nes\Mappers\Unif
+
+ Nes\Mappers\Unif
+
diff --git a/Core/MapperFactory.cpp b/Core/MapperFactory.cpp
index 1b987300..6157135a 100644
--- a/Core/MapperFactory.cpp
+++ b/Core/MapperFactory.cpp
@@ -16,6 +16,7 @@
#include "Bb.h"
#include "BF909x.h"
#include "BF9096.h"
+#include "Bmc11160.h"
#include "Bmc51.h"
#include "Bmc63.h"
#include "Bmc70in1.h"
@@ -474,6 +475,7 @@ BaseMapper* MapperFactory::GetMapperFromID(RomData &romData)
case UnifBoards::Ac08: return new Ac08();
case UnifBoards::Ax5705: return new Ax5705();
case UnifBoards::Bb: return new Bb();
+ case UnifBoards::Bmc11160: return new Bmc11160();
case UnifBoards::Bmc70in1: return new Bmc70in1();
case UnifBoards::Bmc70in1B: return new Bmc70in1();
case UnifBoards::Bmc190in1: return new Bmc190in1();
diff --git a/Core/UnifBoards.h b/Core/UnifBoards.h
index 0d983b92..f831db51 100644
--- a/Core/UnifBoards.h
+++ b/Core/UnifBoards.h
@@ -33,6 +33,7 @@ namespace UnifBoards {
Bb,
Ac08,
BmcG146,
- BmdNtd03
+ BmdNtd03,
+ Bmc11160
};
}
\ No newline at end of file
diff --git a/Core/UnifLoader.h b/Core/UnifLoader.h
index 32347ed4..2bf08547 100644
--- a/Core/UnifLoader.h
+++ b/Core/UnifLoader.h
@@ -9,7 +9,7 @@ class UnifLoader
{
private:
std::unordered_map _boardMappings = {
- { "11160", UnifBoards::UnknownBoard },
+ { "11160", UnifBoards::Bmc11160 },
{ "12-IN-1", UnifBoards::UnknownBoard },
{ "13in1JY110", UnifBoards::UnknownBoard },
{ "190in1", UnifBoards::Bmc190in1 },