AxibugEmuOnline/References/VirtuaNESex_src_191105/NES/Mapper/Mapper004.h
2024-08-05 17:58:53 +08:00

51 lines
1.1 KiB
C++

//////////////////////////////////////////////////////////////////////////
// Mapper004 Nintendo MMC3 //
//////////////////////////////////////////////////////////////////////////
class Mapper004 : public Mapper
{
public:
Mapper004( NES* parent ) : Mapper(parent) {}
void Reset();
BYTE ReadLow ( WORD addr );
void WriteLow( WORD addr, BYTE data );
void Write( WORD addr, BYTE data );
void Clock( INT cycles );
void HSync( INT scanline );
// For state save
BOOL IsStateSave() { return TRUE; }
void SaveState( LPBYTE p );
void LoadState( LPBYTE p );
protected:
BYTE reg[8];
BYTE prg0, prg1;
BYTE chr01, chr23, chr4, chr5, chr6, chr7;
BYTE we_sram;
BYTE rom_type; //for "Contra Fighter (Unl) [U]"
BYTE security;
BYTE KT_bank; //for KT CN games
WORD temp1;
BYTE irq_type;
BYTE irq_enable;
BYTE irq_counter;
BYTE irq_latch;
BYTE irq_request;
BYTE irq_preset;
BYTE irq_preset_vbl;
BYTE vs_patch;
BYTE vs_index;
private:
void SetBank_CPU();
void SetBank_PPU();
void SetBank_PPUSUB( int bank, int page );
};