gpfce patch part2
[fceu.git] / ines.h
CommitLineData
c62d2810 1/* FCE Ultra - NES/Famicom Emulator
2 *
3 * Copyright notice for this file:
4 * Copyright (C) 1998 Bero
5 * Copyright (C) 2002 Ben Parnell
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#ifdef INESPRIV
23
24void iNESStateRestore(int version);
25extern uint32 iNESGameCRC32;
26
27extern uint8 *VROM;
28extern uint32 VROM_size;
29
30extern void (*MapStateRestore)(int version);
31extern void (*MapClose)(void);
32extern void (*MapperReset)(void);
33
34/* This order is necessary */
35#define WRAM (GameMemBlock)
36#define sizeofWRAM 8192
37
38#define MapperExRAM (GameMemBlock+sizeofWRAM)
39#define sizeofMapperExRAM 32768
40/* for the MMC5 code to work properly. It might be fixed later... */
41
42
43#define CHRRAM (GameMemBlock+sizeofWRAM+sizeofMapperExRAM)
44#define sizeofCHRRAM 8192
45
46#define ExtraNTARAM (GameMemBlock+sizeofWRAM+sizeofMapperExRAM+sizeofCHRRAM)
47#define sizeofExtraNTARAM 2048
48
49#define PRGBankList (ExtraNTARAM+sizeofExtraNTARAM)
50
51#define mapbyte1 (PRGBankList+4)
52#define mapbyte2 (mapbyte1+8)
53#define mapbyte3 (mapbyte2+8)
54#define mapbyte4 (mapbyte3+8)
55uint16 iNESCHRBankList[8];
56int32 iNESIRQLatch,iNESIRQCount;
57uint8 iNESMirroring;
58uint8 iNESIRQa;
59
60#define IRQa iNESIRQa
61#define Mirroring iNESMirroring
62#define IRQCount iNESIRQCount
63#define IRQLatch iNESIRQLatch
64#define CHRBankList iNESCHRBankList
65#else
66int iNESLoad(char *name, int fp);
67#endif
68
69 typedef struct {
70 char ID[4]; /*NES^Z*/
71 uint8 ROM_size;
72 uint8 VROM_size;
73 uint8 ROM_type;
74 uint8 ROM_type2;
75 uint8 reserve[8];
76 } iNES_HEADER;
77
78void FASTAPASS(2) VRAM_BANK1(uint32 A, uint8 V);
79void FASTAPASS(2) VRAM_BANK4(uint32 A,uint32 V);
80
81void FASTAPASS(2) VROM_BANK1(uint32 A,uint32 V);
82void FASTAPASS(2) VROM_BANK2(uint32 A,uint32 V);
83void FASTAPASS(2) VROM_BANK4(uint32 A, uint32 V);
84void FASTAPASS(1) VROM_BANK8(uint32 V);
85void FASTAPASS(2) ROM_BANK8(uint32 A, uint32 V);
86void FASTAPASS(2) ROM_BANK16(uint32 A, uint32 V);
87void FASTAPASS(2) ROM_BANK32(uint32 V);
88
89extern uint8 vmask;
90extern uint32 vmask1;
91extern uint32 vmask2;
92extern uint32 vmask4;
93extern uint32 pmask8;
94extern uint8 pmask16;
95extern uint8 pmask32;
96
97void FASTAPASS(1) onemir(uint8 V);
98void FASTAPASS(1) MIRROR_SET2(uint8 V);
99void FASTAPASS(1) MIRROR_SET(uint8 V);
100
101
102void DetectMMC1WRAMSize(void);
103void DetectMMC5WRAMSize(void);
104
105void Mapper0_init(void);
106void Mapper1_init(void);
107void Mapper2_init(void);
108void Mapper3_init(void);
109void Mapper4_init(void);
110void Mapper5_init(void);
111void Mapper6_init(void);
112void Mapper7_init(void);
113void Mapper8_init(void);
114void Mapper9_init(void);
115void Mapper10_init(void);
116void Mapper11_init(void);
117void Mapper12_init(void);
118void Mapper13_init(void);
119void Mapper14_init(void);
120void Mapper15_init(void);
121void Mapper16_init(void);
122void Mapper17_init(void);
123void Mapper18_init(void);
124void Mapper19_init(void);
125void Mapper20_init(void);
126void Mapper21_init(void);
127void Mapper22_init(void);
128void Mapper23_init(void);
129void Mapper24_init(void);
130void Mapper25_init(void);
131void Mapper26_init(void);
132void Mapper27_init(void);
133void Mapper28_init(void);
134void Mapper29_init(void);
135void Mapper30_init(void);
136void Mapper31_init(void);
137void Mapper32_init(void);
138void Mapper33_init(void);
139void Mapper34_init(void);
140void Mapper35_init(void);
141void Mapper36_init(void);
142void Mapper37_init(void);
143void Mapper38_init(void);
144void Mapper39_init(void);
145void Mapper40_init(void);
146void Mapper41_init(void);
147void Mapper42_init(void);
148void Mapper43_init(void);
149void Mapper44_init(void);
150void Mapper45_init(void);
151void Mapper46_init(void);
152void Mapper47_init(void);
153void Mapper48_init(void);
154void Mapper49_init(void);
155void Mapper50_init(void);
156void Mapper51_init(void);
157void Mapper52_init(void);
158void Mapper53_init(void);
159void Mapper54_init(void);
160void Mapper55_init(void);
161void Mapper56_init(void);
162void Mapper57_init(void);
163void Mapper58_init(void);
164void Mapper59_init(void);
165void Mapper60_init(void);
166void Mapper61_init(void);
167void Mapper62_init(void);
168void Mapper63_init(void);
169void Mapper64_init(void);
170void Mapper65_init(void);
171void Mapper66_init(void);
172void Mapper67_init(void);
173void Mapper68_init(void);
174void Mapper69_init(void);
175void Mapper70_init(void);
176void Mapper71_init(void);
177void Mapper72_init(void);
178void Mapper73_init(void);
179void Mapper74_init(void);
180void Mapper75_init(void);
181void Mapper76_init(void);
182void Mapper77_init(void);
183void Mapper78_init(void);
184void Mapper79_init(void);
185void Mapper80_init(void);
186void Mapper81_init(void);
187void Mapper82_init(void);
188void Mapper83_init(void);
189void Mapper84_init(void);
190void Mapper85_init(void);
191void Mapper86_init(void);
192void Mapper87_init(void);
193void Mapper88_init(void);
194void Mapper89_init(void);
195void Mapper90_init(void);
196void Mapper91_init(void);
197void Mapper92_init(void);
198void Mapper93_init(void);
199void Mapper94_init(void);
200void Mapper95_init(void);
201void Mapper96_init(void);
202void Mapper97_init(void);
203void Mapper98_init(void);
204void Mapper99_init(void);
205void Mapper100_init(void);
206void Mapper101_init(void);
207void Mapper102_init(void);
208void Mapper103_init(void);
209void Mapper104_init(void);
210void Mapper105_init(void);
211void Mapper106_init(void);
212void Mapper107_init(void);
213void Mapper108_init(void);
214void Mapper109_init(void);
215void Mapper110_init(void);
216void Mapper111_init(void);
217void Mapper112_init(void);
218void Mapper113_init(void);
219void Mapper114_init(void);
220void Mapper115_init(void);
221void Mapper116_init(void);
222void Mapper117_init(void);
223void Mapper118_init(void);
224void Mapper119_init(void);
225void Mapper120_init(void);
226void Mapper121_init(void);
227void Mapper122_init(void);
228void Mapper123_init(void);
229void Mapper124_init(void);
230void Mapper125_init(void);
231void Mapper126_init(void);
232void Mapper127_init(void);
233void Mapper128_init(void);
234void Mapper129_init(void);
235void Mapper130_init(void);
236void Mapper131_init(void);
237void Mapper132_init(void);
238void Mapper133_init(void);
239void Mapper134_init(void);
240void Mapper135_init(void);
241void Mapper136_init(void);
242void Mapper137_init(void);
243void Mapper138_init(void);
244void Mapper139_init(void);
245void Mapper140_init(void);
246void Mapper141_init(void);
247void Mapper142_init(void);
248void Mapper143_init(void);
249void Mapper144_init(void);
250void Mapper145_init(void);
251void Mapper146_init(void);
252void Mapper147_init(void);
253void Mapper148_init(void);
254void Mapper149_init(void);
255void Mapper150_init(void);
256void Mapper151_init(void);
257void Mapper152_init(void);
258void Mapper153_init(void);
259void Mapper154_init(void);
260void Mapper155_init(void);
261void Mapper156_init(void);
262void Mapper157_init(void);
263void Mapper158_init(void);
264void Mapper159_init(void);
265void Mapper160_init(void);
266void Mapper161_init(void);
267void Mapper162_init(void);
268void Mapper163_init(void);
269void Mapper164_init(void);
270void Mapper165_init(void);
271void Mapper166_init(void);
272void Mapper167_init(void);
273void Mapper168_init(void);
274void Mapper169_init(void);
275void Mapper170_init(void);
276void Mapper171_init(void);
277void Mapper172_init(void);
278void Mapper173_init(void);
279void Mapper174_init(void);
280void Mapper175_init(void);
281void Mapper176_init(void);
282void Mapper177_init(void);
283void Mapper178_init(void);
284void Mapper179_init(void);
285void Mapper180_init(void);
286void Mapper181_init(void);
287void Mapper182_init(void);
288void Mapper183_init(void);
289void Mapper184_init(void);
290void Mapper185_init(void);
291void Mapper186_init(void);
292void Mapper187_init(void);
293void Mapper188_init(void);
294void Mapper189_init(void);
295void Mapper190_init(void);
296void Mapper191_init(void);
297void Mapper192_init(void);
298void Mapper193_init(void);
299void Mapper194_init(void);
300void Mapper195_init(void);
301void Mapper196_init(void);
302void Mapper197_init(void);
303void Mapper198_init(void);
304void Mapper199_init(void);
305void Mapper200_init(void);
306void Mapper201_init(void);
307void Mapper202_init(void);
308void Mapper203_init(void);
309void Mapper204_init(void);
310void Mapper205_init(void);
311void Mapper206_init(void);
312void Mapper207_init(void);
313void Mapper208_init(void);
314void Mapper209_init(void);
315void Mapper210_init(void);
316void Mapper211_init(void);
317void Mapper212_init(void);
318void Mapper213_init(void);
319void Mapper214_init(void);
320void Mapper215_init(void);
321void Mapper216_init(void);
322void Mapper217_init(void);
323void Mapper218_init(void);
324void Mapper219_init(void);
325void Mapper220_init(void);
326void Mapper221_init(void);
327void Mapper222_init(void);
328void Mapper223_init(void);
329void Mapper224_init(void);
330void Mapper225_init(void);
331void Mapper226_init(void);
332void Mapper227_init(void);
333void Mapper228_init(void);
334void Mapper229_init(void);
335void Mapper230_init(void);
336void Mapper231_init(void);
337void Mapper232_init(void);
338void Mapper233_init(void);
339void Mapper234_init(void);
340void Mapper235_init(void);
341void Mapper236_init(void);
342void Mapper237_init(void);
343void Mapper238_init(void);
344void Mapper239_init(void);
345void Mapper240_init(void);
346void Mapper241_init(void);
347void Mapper242_init(void);
348void Mapper243_init(void);
349void Mapper244_init(void);
350void Mapper245_init(void);
351void Mapper246_init(void);
352void Mapper247_init(void);
353void Mapper248_init(void);
354void Mapper249_init(void);
355void Mapper250_init(void);
356void Mapper251_init(void);
357void Mapper252_init(void);
358void Mapper253_init(void);
359void Mapper254_init(void);
360void Mapper255_init(void);
361
362void VRC6_ESI(int t);
363void VRC7_ESI(void);
364void Mapper5_ESI(void);
365void Mapper69_ESI(void);
366void Mapper19_ESI(void);