]> git.lizzy.rs Git - plan9front.git/blob - sys/src/games/nes/dat.h
games/nes: mmc3 and bugfixes
[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;
8
9 extern int map, scale, mmc3hack;
10 extern uchar *prg, *chr;
11 extern int nprg, nchr, map, chrram;
12
13 extern int keys, clock, ppuclock;
14
15 extern void (*mapper[])(int, u8int);
16
17 enum {
18         FLAGC = 1<<0,
19         FLAGZ = 1<<1,
20         FLAGI = 1<<2,
21         FLAGD = 1<<3,
22         FLAGB = 1<<4,
23         FLAGV = 1<<6,
24         FLAGN = 1<<7
25 };
26
27 enum {
28         PPUCTRL = 0x2000,
29         PPUMASK = 0x2001,
30         PPUSTATUS = 0x2002,
31         PPUSCROLL = 0x2005,
32
33         PPUNMI = 1<<7,
34         BIGSPRITE = 1<<5,
35         BGTABLE = 1<<4,
36         SPRTABLE = 1<<3,
37         VRAMINC = 1<<2,
38
39         GRAYSCALE = 1<<0,
40         BG8DISP = 1<<1,
41         SPRITE8DISP = 1<<2,
42         BGDISP = 1<<3,
43         SPRITEDISP = 1<<4,
44
45         PPUVBLANK = 1<<7,
46         SPRITE0HIT = 1<<6,
47 };
48
49 enum {
50         HPRG = 4,
51         HCHR = 5,
52         HRAM = 8,
53         HROMH = 9,
54         
55         FLMIRROR = 1<<0,
56         FLBAT = 1<<1,
57         FLTRAINER = 1<<2,
58         FLFOUR = 1<<3,
59         FLMAPPERL = 4,
60         FLMAPPERH = 12,
61         FLNES20M = 3<<10,
62         FLNES20V = 2<<10,
63         FLPC10 = 1<<9,
64         FLVS = 1<<8,
65         
66         PRGSZ = 1<<14,
67         CHRSZ = 1<<13,
68 };
69
70 enum {
71         FREQ = 21477272,
72         MILLION = 1000000,
73         BILLION = 1000000000,
74 };
75
76 enum {
77         MHORZ,
78         MVERT,
79         MSINGA,
80         MSINGB,
81         MFOUR
82 };
83
84 enum {
85         INIT = -1,
86         SAVE = -2,
87         RSTR = -3,
88         SCAN = -4,
89 };