]> git.lizzy.rs Git - plan9front.git/blob - sys/src/games/nes/dat.h
add libemu
[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, 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 clock, ppuclock, apuclock, dmcclock, dmcfreq, saveclock;
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         APUDIV = 89490,
82         RATE = 44100,
83         SAMPDIV = FREQ / RATE,
84         SAVEFREQ = FREQ/5,
85 };
86
87 enum {
88         MHORZ,
89         MVERT,
90         MSINGA,
91         MSINGB,
92         MFOUR
93 };
94
95 enum {
96         INIT = -1,
97         SAVE = -2,
98         RSTR = -3,
99         SCAN = -4,
100 };
101
102 enum {
103         IRQFRAME = 1,
104         IRQDMC = 2,
105         IRQMMC = 4,
106 };