88 lines
1.7 KiB
C++
88 lines
1.7 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
// MapperNSF NSF:NES Sound Format //
|
|
//////////////////////////////////////////////////////////////////////////
|
|
class MapperNSF : public Mapper
|
|
{
|
|
public:
|
|
MapperNSF( NES* parent ) : Mapper(parent) {}
|
|
|
|
void Reset();
|
|
|
|
BYTE ExRead ( WORD addr );
|
|
void ExWrite( WORD addr, BYTE data );
|
|
|
|
BYTE ReadLow( WORD addr );
|
|
void WriteLow( WORD addr, BYTE data );
|
|
void Write(WORD addr, BYTE data);
|
|
|
|
void VSync();
|
|
|
|
protected:
|
|
NSFHEADER nsfheader;
|
|
BYTE exchip;
|
|
BYTE bankswitch;
|
|
INT banksize;
|
|
BYTE multipul[2];
|
|
|
|
BYTE exaddr;
|
|
BYTE exram[128];
|
|
|
|
void BankSwitch( INT no, BYTE bank );
|
|
|
|
// Song number
|
|
INT songno;
|
|
|
|
// Key buffer
|
|
BYTE pad, padold;
|
|
BYTE repcnt;
|
|
|
|
// For keyboard
|
|
INT GetKeyTable( INT freq );
|
|
void DrawKey( INT key );
|
|
|
|
// For Drawing
|
|
void DrawRect( INT x, INT y, INT w, INT h, BYTE col );
|
|
void DrawFont( INT x, INT y, BYTE chr, BYTE col );
|
|
void DrawString( INT x, INT y, LPSTR str, BYTE col );
|
|
void DrawWave( INT x, INT y, INT col );
|
|
|
|
void DrawBitmap( INT x, INT y, LPBYTE lpBitmap );
|
|
|
|
static BYTE NsfPlayerCode[];
|
|
|
|
static BYTE Font6x8[];
|
|
|
|
static BYTE KeyBoardBitmap[];
|
|
static BYTE KeyBitmapA[];
|
|
static BYTE KeyBitmapB[];
|
|
static BYTE KeyBitmapC[];
|
|
static BYTE KeyBitmapD[];
|
|
|
|
static BYTE NeonBitmapA[];
|
|
static BYTE NeonBitmapB[];
|
|
static BYTE NeonBitmapC[];
|
|
|
|
static INT KeyBitmapOfs[];
|
|
static LPBYTE KeyBitmapTbl[];
|
|
|
|
static BYTE StarBitmapA[];
|
|
static BYTE StarBitmapB[];
|
|
static BYTE StarBitmapC[];
|
|
static BYTE StarBitmapD[];
|
|
static LPBYTE StarBitmapTbl[];
|
|
|
|
// ‚¨‚Ü‚¯
|
|
enum { STAR_MAX = 128 };
|
|
|
|
struct STAR {
|
|
INT x, y, z;
|
|
};
|
|
struct STAR StarBuf[STAR_MAX];
|
|
|
|
void StarInitial();
|
|
void Star();
|
|
|
|
INT Freq2KeyTbl[96+1];
|
|
private:
|
|
};
|