]> git.lizzy.rs Git - plan9front.git/blob - sys/src/games/nes/dat.h
8da07fa8497036c6afadf22d2e8cb51f8f002f33
[plan9front.git] / sys / src / games / nes / dat.h
1 extern u16int pc, curpc;
2 extern u8int rA, rX, rY, rS, rP;
3 extern u8int irq, nmi;
4 extern uchar mem[32768], ppuram[16384], oam[256];
5 extern u16int pput, ppuv;
6 extern u8int ppusx, vrambuf;
7 extern int mirr, ppux, ppuy, odd, vramlatch, keylatch, keylatch2;
8
9 extern int map, scale, mmc3hack, oflag;
10 extern uchar *prg, *chr;
11 extern int nprg, nchr, map, chrram;
12
13 extern u8int apuseq, apuctr[13];
14 extern u16int dmcaddr, dmccnt;
15
16 extern int keys, keys2, clock, ppuclock, apuclock, dmcclock, dmcfreq, saveclock, paused;
17
18 extern void (*mapper[])(int, u8int);
19
20 enum {
21         FLAGC = 1<<0,
22         FLAGZ = 1<<1,
23         FLAGI = 1<<2,
24         FLAGD = 1<<3,
25         FLAGB = 1<<4,
26         FLAGV = 1<<6,
27         FLAGN = 1<<7
28 };
29
30 enum {
31         PPUCTRL = 0x2000,
32         PPUMASK = 0x2001,
33         PPUSTATUS = 0x2002,
34         PPUSCROLL = 0x2005,
35         DMCCTRL = 0x4010,
36         DMCBUF = 0x4011,
37         DMCADDR = 0x4012,
38         DMCLEN = 0x4013,
39         APUSTATUS = 0x4015,
40         APUFRAME = 0x4017,
41
42         PPUNMI = 1<<7,
43         BIGSPRITE = 1<<5,
44         BGTABLE = 1<<4,
45         SPRTABLE = 1<<3,
46         VRAMINC = 1<<2,
47
48         GRAYSCALE = 1<<0,
49         BG8DISP = 1<<1,
50         SPRITE8DISP = 1<<2,
51         BGDISP = 1<<3,
52         SPRITEDISP = 1<<4,
53
54         PPUVBLANK = 1<<7,
55         SPRITE0HIT = 1<<6,
56 };
57
58 enum {
59         HPRG = 4,
60         HCHR = 5,
61         HRAM = 8,
62         HROMH = 9,
63         
64         FLMIRROR = 1<<0,
65         FLBAT = 1<<1,
66         FLTRAINER = 1<<2,
67         FLFOUR = 1<<3,
68         FLMAPPERL = 4,
69         FLMAPPERH = 12,
70         FLNES20M = 3<<10,
71         FLNES20V = 2<<10,
72         FLPC10 = 1<<9,
73         FLVS = 1<<8,
74         
75         PRGSZ = 1<<14,
76         CHRSZ = 1<<13,
77 };
78
79 enum {
80         FREQ = 21477272,
81         MILLION = 1000000,
82         BILLION = 1000000000,
83         APUDIV = 89490,
84         RATE = 44100,
85         SAMPDIV = FREQ / RATE,
86         SAVEFREQ = FREQ/5,
87 };
88
89 enum {
90         MHORZ,
91         MVERT,
92         MSINGA,
93         MSINGB,
94         MFOUR
95 };
96
97 enum {
98         INIT = -1,
99         SAVE = -2,
100         RSTR = -3,
101         SCAN = -4,
102 };
103
104 enum {
105         IRQFRAME = 1,
106         IRQDMC = 2,
107         IRQMMC = 4,
108 };