forked from sin365/AxibugEmuOnline
43 lines
1.9 KiB
C++
43 lines
1.9 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 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();
|
||
};
|