]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/games/nes/dat.h
games/doom: fix idclev cheat in doom2 and final doom (thanks qu7uux)
[plan9front.git] / sys / src / games / nes / dat.h
index b7f1cc887b370ab6a6713c4538ac7aa1db17a76d..8da07fa8497036c6afadf22d2e8cb51f8f002f33 100644 (file)
@@ -1,15 +1,21 @@
 extern u16int pc, curpc;
 extern u8int rA, rX, rY, rS, rP;
+extern u8int irq, nmi;
 extern uchar mem[32768], ppuram[16384], oam[256];
 extern u16int pput, ppuv;
-extern u8int ppusx;
-extern int mirr;
+extern u8int ppusx, vrambuf;
+extern int mirr, ppux, ppuy, odd, vramlatch, keylatch, keylatch2;
 
-extern int map, scale;
+extern int map, scale, mmc3hack, oflag;
 extern uchar *prg, *chr;
-extern int nprg, nchr, nmi, map;
+extern int nprg, nchr, map, chrram;
 
-extern int keys;
+extern u8int apuseq, apuctr[13];
+extern u16int dmcaddr, dmccnt;
+
+extern int keys, keys2, clock, ppuclock, apuclock, dmcclock, dmcfreq, saveclock, paused;
+
+extern void (*mapper[])(int, u8int);
 
 enum {
        FLAGC = 1<<0,
@@ -26,6 +32,12 @@ enum {
        PPUMASK = 0x2001,
        PPUSTATUS = 0x2002,
        PPUSCROLL = 0x2005,
+       DMCCTRL = 0x4010,
+       DMCBUF = 0x4011,
+       DMCADDR = 0x4012,
+       DMCLEN = 0x4013,
+       APUSTATUS = 0x4015,
+       APUFRAME = 0x4017,
 
        PPUNMI = 1<<7,
        BIGSPRITE = 1<<5,
@@ -35,7 +47,7 @@ enum {
 
        GRAYSCALE = 1<<0,
        BG8DISP = 1<<1,
-       BG8SPRITE = 1<<2,
+       SPRITE8DISP = 1<<2,
        BGDISP = 1<<3,
        SPRITEDISP = 1<<4,
 
@@ -68,6 +80,10 @@ enum {
        FREQ = 21477272,
        MILLION = 1000000,
        BILLION = 1000000000,
+       APUDIV = 89490,
+       RATE = 44100,
+       SAMPDIV = FREQ / RATE,
+       SAVEFREQ = FREQ/5,
 };
 
 enum {
@@ -77,3 +93,16 @@ enum {
        MSINGB,
        MFOUR
 };
+
+enum {
+       INIT = -1,
+       SAVE = -2,
+       RSTR = -3,
+       SCAN = -4,
+};
+
+enum {
+       IRQFRAME = 1,
+       IRQDMC = 2,
+       IRQMMC = 4,
+};