- N106 sound issue requested fix, see comments
- new inex 2.0 mapper 406 added without flash support though - dpcm data log now does proper memory area logging (not worth actually, always be like C000 lol)
This commit is contained in:
parent
747fba7711
commit
5d872472ef
|
@ -1363,3 +1363,30 @@ void TQROM_Init(CartInfo *info) {
|
||||||
void HKROM_Init(CartInfo *info) {
|
void HKROM_Init(CartInfo *info) {
|
||||||
GenMMC3_Init(info, 512, 512, 1, info->battery);
|
GenMMC3_Init(info, 512, 512, 1, info->battery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------- iNES 2.0 ----------------------------
|
||||||
|
|
||||||
|
// ---------------------------- Mapper 406 ------------------------------
|
||||||
|
|
||||||
|
static DECLFW(M406CMDWrite) {
|
||||||
|
MMC3_CMDWrite((A & 0xFFFE) | ((A & 2) >> 1), V);
|
||||||
|
}
|
||||||
|
|
||||||
|
static DECLFW(M406IRQWrite) {
|
||||||
|
MMC3_IRQWrite((A & 0xFFFE) | ((A & 2) >> 1), V);
|
||||||
|
}
|
||||||
|
|
||||||
|
static DECLFW(M406Write) {
|
||||||
|
}
|
||||||
|
|
||||||
|
static void M406_Power(void) {
|
||||||
|
GenMMC3Power();
|
||||||
|
// TODO : FLASH
|
||||||
|
SetWriteHandler(0x8000, 0xBFFF, M406CMDWrite);
|
||||||
|
SetWriteHandler(0xC000, 0xFFFF, M406IRQWrite);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Mapper406_Init(CartInfo *info) {
|
||||||
|
GenMMC3_Init(info, 512, 256, 0, 0);
|
||||||
|
info->Power = M406_Power;
|
||||||
|
}
|
||||||
|
|
|
@ -157,7 +157,10 @@ static void FixCache(int a, int V) {
|
||||||
case 0x02: FreqCache[w] &= ~0x0000FF00; FreqCache[w] |= V << 8; break;
|
case 0x02: FreqCache[w] &= ~0x0000FF00; FreqCache[w] |= V << 8; break;
|
||||||
case 0x04:
|
case 0x04:
|
||||||
FreqCache[w] &= ~0x00030000; FreqCache[w] |= (V & 3) << 16;
|
FreqCache[w] &= ~0x00030000; FreqCache[w] |= (V & 3) << 16;
|
||||||
LengthCache[w] = (8 - ((V >> 2) & 7)) << 2;
|
// something wrong here http://www.romhacking.net/forum/index.php?topic=21907.msg306903#msg306903
|
||||||
|
// LengthCache[w] = (8 - ((V >> 2) & 7)) << 2;
|
||||||
|
// fix be like in https://github.com/SourMesen/Mesen/blob/cda0a0bdcb5525480784f4b8c71de6fc7273b570/Core/Namco163Audio.h#L61
|
||||||
|
LengthCache[w] = 256 - (V & 0xFC);
|
||||||
break;
|
break;
|
||||||
case 0x07: EnvCache[w] = (double)(V & 0xF) * 576716; break;
|
case 0x07: EnvCache[w] = (double)(V & 0xF) * 576716; break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -281,4 +281,6 @@
|
||||||
{0x4d4a0e1b, 260|0x1000,-1},
|
{0x4d4a0e1b, 260|0x1000,-1},
|
||||||
{0xb6dd2c9d, 260|0x1000,-1},
|
{0xb6dd2c9d, 260|0x1000,-1},
|
||||||
|
|
||||||
|
{0xb02fcb57, 406|0x1000,-1}, /* Haradius Zero ver 1.2a 2019 */
|
||||||
|
|
||||||
{0x00000000, -1, -1}
|
{0x00000000, -1, -1}
|
||||||
|
|
|
@ -725,6 +725,9 @@ BMAPPINGLocal bmap[] = {
|
||||||
{"F-15 MMC3 Based", 259, BMCF15_Init},
|
{"F-15 MMC3 Based", 259, BMCF15_Init},
|
||||||
{"HP10xx/H20xx Boards", 260, BMCHPxx_Init},
|
{"HP10xx/H20xx Boards", 260, BMCHPxx_Init},
|
||||||
{"810544-CA-1", 261, BMC810544CA1_Init},
|
{"810544-CA-1", 261, BMC810544CA1_Init},
|
||||||
|
|
||||||
|
{"Impact Soft MMC3 Flash Board", 406, Mapper406_Init },
|
||||||
|
|
||||||
{"KONAMI QTAi Board", 547, QTAi_Init },
|
{"KONAMI QTAi Board", 547, QTAi_Init },
|
||||||
|
|
||||||
{"", 0, NULL}
|
{"", 0, NULL}
|
||||||
|
|
|
@ -267,6 +267,7 @@ void Mapper250_Init(CartInfo *);
|
||||||
void Mapper252_Init(CartInfo *);
|
void Mapper252_Init(CartInfo *);
|
||||||
void Mapper253_Init(CartInfo *);
|
void Mapper253_Init(CartInfo *);
|
||||||
void Mapper254_Init(CartInfo *);
|
void Mapper254_Init(CartInfo *);
|
||||||
|
void Mapper406_Init(CartInfo *);
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char *name;
|
char *name;
|
||||||
|
|
|
@ -181,6 +181,7 @@ void LogDPCM(int romaddress, int dpcmsize){
|
||||||
for (int dpcmstart = i; dpcmstart < (i + dpcmsize); dpcmstart++) {
|
for (int dpcmstart = i; dpcmstart < (i + dpcmsize); dpcmstart++) {
|
||||||
if(!(cdloggerdata[dpcmstart] & 0x40)) {
|
if(!(cdloggerdata[dpcmstart] & 0x40)) {
|
||||||
cdloggerdata[dpcmstart] |= 0x40;
|
cdloggerdata[dpcmstart] |= 0x40;
|
||||||
|
cdloggerdata[dpcmstart] |= (romaddress >> 11) & 0x0c;
|
||||||
|
|
||||||
if(!(cdloggerdata[dpcmstart] & 2)){
|
if(!(cdloggerdata[dpcmstart] & 2)){
|
||||||
datacount++;
|
datacount++;
|
||||||
|
|
Loading…
Reference in New Issue