extern uchar mem[32768], ppuram[16384], oam[256];
extern u16int pput, ppuv;
extern u8int ppusx, vrambuf;
-extern int mirr, ppux, ppuy, odd, vramlatch, keylatch;
+extern int mirr, ppux, ppuy, odd, vramlatch, keylatch, keylatch2;
extern int map, scale, mmc3hack, oflag;
extern uchar *prg, *chr;
extern int nprg, nchr, map, chrram;
-extern u8int apuseq, apuctr[10];
+extern u8int apuseq, apuctr[13];
+extern u16int dmcaddr, dmccnt;
-extern int keys, clock, ppuclock, apuclock, saveclock, paused;
+extern int keys, keys2, clock, ppuclock, apuclock, dmcclock, dmcfreq, saveclock, paused;
extern void (*mapper[])(int, u8int);
PPUMASK = 0x2001,
PPUSTATUS = 0x2002,
PPUSCROLL = 0x2005,
+ DMCCTRL = 0x4010,
+ DMCBUF = 0x4011,
+ DMCADDR = 0x4012,
+ DMCLEN = 0x4013,
APUSTATUS = 0x4015,
APUFRAME = 0x4017,
MILLION = 1000000,
BILLION = 1000000000,
APUDIV = 89490,
+ RATE = 44100,
+ SAMPDIV = FREQ / RATE,
SAVEFREQ = FREQ/5,
};