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

71 lines
1.4 KiB
C++

//////////////////////////////////////////////////////////////////////////
// Mapper074 //
//////////////////////////////////////////////////////////////////////////
class Mapper074 : public Mapper
{
public:
Mapper074( NES* parent ) : Mapper(parent) {}
void Reset();
BYTE ReadLow ( WORD addr );
void WriteLow( WORD addr, BYTE data );
void Write( WORD addr, BYTE data );
void HSync( INT scanline );
void PPU_Latch( WORD addr );
// For state save
BOOL IsStateSave() { return TRUE; }
void SaveState( LPBYTE p );
void LoadState( LPBYTE p );
protected:
BYTE reg[8];
BYTE prg0, prg1, prg2, prg3;
BYTE chr01, chr23, chr4, chr5, chr6, chr7;
BYTE chr1, chr3;
BYTE we_sram;
BYTE sp_rom, bank;
BYTE patch;
BYTE irq_type;
BYTE irq_enable;
BYTE irq_counter;
BYTE irq_latch;
BYTE irq_request;
BYTE reg5000;
BYTE reg5001;
BYTE reg5002;
BYTE reg5003;
BYTE reg5010;
BYTE reg5011;
BYTE reg5012;
BYTE reg5013;
BYTE reg5FF3;
BYTE reg6000;
BYTE reg6010;
BYTE reg6013;
BYTE WF_sn_5000;
BYTE WF_sn_5010;
BYTE WF_sn_5013;
BYTE RF_sn_6000;
BYTE RF_sn_6010;
BYTE RF_sn_6013;
BYTE WX_WRAM00[8*1024];
BYTE WX_WRAM01[8*1024];
BYTE WX_WRAM02[8*1024];
BYTE WX_WRAM03[8*1024];
// BYTE adr5000buf[4*1024];
BYTE adr6000buf[8*1024];
private:
void SetBank_CPU();
void SetBank_PPU();
void SetBank_PPUSUB( int bank, int page );
};