+//-------------- BMC810544-C-A1 ------------------------\r
+\r
+static void BMC810544CA1Sync(void)\r
+{\r
+ uint32 bank = latche>>7;\r
+ if(latche&0x40)\r
+ setprg32(0x8000,bank);\r
+ else\r
+ {\r
+ setprg16(0x8000,(bank<<1)|((latche>>5)&1));\r
+ setprg16(0xC000,(bank<<1)|((latche>>5)&1));\r
+ }\r
+ setchr8(latche&0x0f);\r
+ setmirror(((latche>>4)&1)^1);\r
+}\r
+\r
+void BMC810544CA1_Init(CartInfo *info)\r
+{ \r
+ Latch_Init(info, BMC810544CA1Sync, 0, 0, 0x8000, 0xFFFF);\r
+}\r
+\r
+//-------------- BMCNTD-03 ------------------------\r
+\r
+static void BMCNTD03Sync(void)\r
+{\r
+ // 1PPP Pmcc spxx xccc\r
+ // 1000 0000 0000 0000 v\r
+ // 1001 1100 0000 0100 h\r
+ // 1011 1010 1100 0100\r
+ uint32 prg = ((latche>>10)&0x1e);\r
+ uint32 chr = ((latche&0x0300)>>5)|(latche&7);\r
+ if(latche&0x80)\r
+ {\r
+ setprg16(0x8000,prg|((latche>>6)&1));\r
+ setprg16(0xC000,prg|((latche>>6)&1));\r
+ }\r
+ else\r
+ setprg32(0x8000,prg>>1);\r
+ setchr8(chr);\r
+ setmirror(((latche>>10)&1)^1);\r
+}\r
+\r
+void BMCNTD03_Init(CartInfo *info)\r
+{ \r
+ Latch_Init(info, BMCNTD03Sync, 0, 0, 0x8000, 0xFFFF);\r
+}\r