Mesen/Core/Namco108.h
2016-12-17 23:14:47 -05:00

29 lines
796 B
C++

#pragma once
#include "stdafx.h"
#include "MMC3.h"
class Namco108 : public MMC3
{
protected:
virtual void UpdateMirroring() override
{
//Do nothing - Namco 108 has hardwired mirroring only
//"Mirroring is hardwired, one game uses 4-screen mirroring (Gauntlet, DRROM)."
}
void WriteRegister(uint16_t addr, uint8_t value) override
{
//Redirect all 0x8000-0xFFFF writes to 0x8000-0x8001, all other features do not exist in this version
addr &= 0x8001;
if(addr == 0x8000) {
//Disable CHR Mode 1 and PRG Mode 1
//"PRG always has the last two 8KiB banks fixed to the end."
//"CHR always gives the left pattern table (0000-0FFF) the two 2KiB banks, and the right pattern table (1000-1FFF) the four 1KiB banks."
value &= 0x3F;
}
MMC3::WriteRegister(addr, value);
}
};