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 | |
24 | void iNESStateRestore(int version); |
25 | extern uint32 iNESGameCRC32; |
26 | |
27 | extern uint8 *VROM; |
28 | extern uint32 VROM_size; |
29 | |
30 | extern void (*MapStateRestore)(int version); |
31 | extern void (*MapClose)(void); |
32 | extern 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) |
55 | uint16 iNESCHRBankList[8]; |
56 | int32 iNESIRQLatch,iNESIRQCount; |
57 | uint8 iNESMirroring; |
58 | uint8 iNESIRQa; |
59 | |
60 | #define IRQa iNESIRQa |
61 | #define Mirroring iNESMirroring |
62 | #define IRQCount iNESIRQCount |
63 | #define IRQLatch iNESIRQLatch |
64 | #define CHRBankList iNESCHRBankList |
65 | #else |
66 | int 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 | |
78 | void FASTAPASS(2) VRAM_BANK1(uint32 A, uint8 V); |
79 | void FASTAPASS(2) VRAM_BANK4(uint32 A,uint32 V); |
80 | |
81 | void FASTAPASS(2) VROM_BANK1(uint32 A,uint32 V); |
82 | void FASTAPASS(2) VROM_BANK2(uint32 A,uint32 V); |
83 | void FASTAPASS(2) VROM_BANK4(uint32 A, uint32 V); |
84 | void FASTAPASS(1) VROM_BANK8(uint32 V); |
85 | void FASTAPASS(2) ROM_BANK8(uint32 A, uint32 V); |
86 | void FASTAPASS(2) ROM_BANK16(uint32 A, uint32 V); |
87 | void FASTAPASS(2) ROM_BANK32(uint32 V); |
88 | |
89 | extern uint8 vmask; |
90 | extern uint32 vmask1; |
91 | extern uint32 vmask2; |
92 | extern uint32 vmask4; |
93 | extern uint32 pmask8; |
94 | extern uint8 pmask16; |
95 | extern uint8 pmask32; |
96 | |
97 | void FASTAPASS(1) onemir(uint8 V); |
98 | void FASTAPASS(1) MIRROR_SET2(uint8 V); |
99 | void FASTAPASS(1) MIRROR_SET(uint8 V); |
100 | |
101 | |
102 | void DetectMMC1WRAMSize(void); |
103 | void DetectMMC5WRAMSize(void); |
104 | |
105 | void Mapper0_init(void); |
106 | void Mapper1_init(void); |
107 | void Mapper2_init(void); |
108 | void Mapper3_init(void); |
109 | void Mapper4_init(void); |
110 | void Mapper5_init(void); |
111 | void Mapper6_init(void); |
112 | void Mapper7_init(void); |
113 | void Mapper8_init(void); |
114 | void Mapper9_init(void); |
115 | void Mapper10_init(void); |
116 | void Mapper11_init(void); |
117 | void Mapper12_init(void); |
118 | void Mapper13_init(void); |
119 | void Mapper14_init(void); |
120 | void Mapper15_init(void); |
121 | void Mapper16_init(void); |
122 | void Mapper17_init(void); |
123 | void Mapper18_init(void); |
124 | void Mapper19_init(void); |
125 | void Mapper20_init(void); |
126 | void Mapper21_init(void); |
127 | void Mapper22_init(void); |
128 | void Mapper23_init(void); |
129 | void Mapper24_init(void); |
130 | void Mapper25_init(void); |
131 | void Mapper26_init(void); |
132 | void Mapper27_init(void); |
133 | void Mapper28_init(void); |
134 | void Mapper29_init(void); |
135 | void Mapper30_init(void); |
136 | void Mapper31_init(void); |
137 | void Mapper32_init(void); |
138 | void Mapper33_init(void); |
139 | void Mapper34_init(void); |
140 | void Mapper35_init(void); |
141 | void Mapper36_init(void); |
142 | void Mapper37_init(void); |
143 | void Mapper38_init(void); |
144 | void Mapper39_init(void); |
145 | void Mapper40_init(void); |
146 | void Mapper41_init(void); |
147 | void Mapper42_init(void); |
148 | void Mapper43_init(void); |
149 | void Mapper44_init(void); |
150 | void Mapper45_init(void); |
151 | void Mapper46_init(void); |
152 | void Mapper47_init(void); |
153 | void Mapper48_init(void); |
154 | void Mapper49_init(void); |
155 | void Mapper50_init(void); |
156 | void Mapper51_init(void); |
157 | void Mapper52_init(void); |
158 | void Mapper53_init(void); |
159 | void Mapper54_init(void); |
160 | void Mapper55_init(void); |
161 | void Mapper56_init(void); |
162 | void Mapper57_init(void); |
163 | void Mapper58_init(void); |
164 | void Mapper59_init(void); |
165 | void Mapper60_init(void); |
166 | void Mapper61_init(void); |
167 | void Mapper62_init(void); |
168 | void Mapper63_init(void); |
169 | void Mapper64_init(void); |
170 | void Mapper65_init(void); |
171 | void Mapper66_init(void); |
172 | void Mapper67_init(void); |
173 | void Mapper68_init(void); |
174 | void Mapper69_init(void); |
175 | void Mapper70_init(void); |
176 | void Mapper71_init(void); |
177 | void Mapper72_init(void); |
178 | void Mapper73_init(void); |
179 | void Mapper74_init(void); |
180 | void Mapper75_init(void); |
181 | void Mapper76_init(void); |
182 | void Mapper77_init(void); |
183 | void Mapper78_init(void); |
184 | void Mapper79_init(void); |
185 | void Mapper80_init(void); |
186 | void Mapper81_init(void); |
187 | void Mapper82_init(void); |
188 | void Mapper83_init(void); |
189 | void Mapper84_init(void); |
190 | void Mapper85_init(void); |
191 | void Mapper86_init(void); |
192 | void Mapper87_init(void); |
193 | void Mapper88_init(void); |
194 | void Mapper89_init(void); |
195 | void Mapper90_init(void); |
196 | void Mapper91_init(void); |
197 | void Mapper92_init(void); |
198 | void Mapper93_init(void); |
199 | void Mapper94_init(void); |
200 | void Mapper95_init(void); |
201 | void Mapper96_init(void); |
202 | void Mapper97_init(void); |
203 | void Mapper98_init(void); |
204 | void Mapper99_init(void); |
205 | void Mapper100_init(void); |
206 | void Mapper101_init(void); |
207 | void Mapper102_init(void); |
208 | void Mapper103_init(void); |
209 | void Mapper104_init(void); |
210 | void Mapper105_init(void); |
211 | void Mapper106_init(void); |
212 | void Mapper107_init(void); |
213 | void Mapper108_init(void); |
214 | void Mapper109_init(void); |
215 | void Mapper110_init(void); |
216 | void Mapper111_init(void); |
217 | void Mapper112_init(void); |
218 | void Mapper113_init(void); |
219 | void Mapper114_init(void); |
220 | void Mapper115_init(void); |
221 | void Mapper116_init(void); |
222 | void Mapper117_init(void); |
223 | void Mapper118_init(void); |
224 | void Mapper119_init(void); |
225 | void Mapper120_init(void); |
226 | void Mapper121_init(void); |
227 | void Mapper122_init(void); |
228 | void Mapper123_init(void); |
229 | void Mapper124_init(void); |
230 | void Mapper125_init(void); |
231 | void Mapper126_init(void); |
232 | void Mapper127_init(void); |
233 | void Mapper128_init(void); |
234 | void Mapper129_init(void); |
235 | void Mapper130_init(void); |
236 | void Mapper131_init(void); |
237 | void Mapper132_init(void); |
238 | void Mapper133_init(void); |
239 | void Mapper134_init(void); |
240 | void Mapper135_init(void); |
241 | void Mapper136_init(void); |
242 | void Mapper137_init(void); |
243 | void Mapper138_init(void); |
244 | void Mapper139_init(void); |
245 | void Mapper140_init(void); |
246 | void Mapper141_init(void); |
247 | void Mapper142_init(void); |
248 | void Mapper143_init(void); |
249 | void Mapper144_init(void); |
250 | void Mapper145_init(void); |
251 | void Mapper146_init(void); |
252 | void Mapper147_init(void); |
253 | void Mapper148_init(void); |
254 | void Mapper149_init(void); |
255 | void Mapper150_init(void); |
256 | void Mapper151_init(void); |
257 | void Mapper152_init(void); |
258 | void Mapper153_init(void); |
259 | void Mapper154_init(void); |
260 | void Mapper155_init(void); |
261 | void Mapper156_init(void); |
262 | void Mapper157_init(void); |
263 | void Mapper158_init(void); |
264 | void Mapper159_init(void); |
265 | void Mapper160_init(void); |
266 | void Mapper161_init(void); |
267 | void Mapper162_init(void); |
268 | void Mapper163_init(void); |
269 | void Mapper164_init(void); |
270 | void Mapper165_init(void); |
271 | void Mapper166_init(void); |
272 | void Mapper167_init(void); |
273 | void Mapper168_init(void); |
274 | void Mapper169_init(void); |
275 | void Mapper170_init(void); |
276 | void Mapper171_init(void); |
277 | void Mapper172_init(void); |
278 | void Mapper173_init(void); |
279 | void Mapper174_init(void); |
280 | void Mapper175_init(void); |
281 | void Mapper176_init(void); |
282 | void Mapper177_init(void); |
283 | void Mapper178_init(void); |
284 | void Mapper179_init(void); |
285 | void Mapper180_init(void); |
286 | void Mapper181_init(void); |
287 | void Mapper182_init(void); |
288 | void Mapper183_init(void); |
289 | void Mapper184_init(void); |
290 | void Mapper185_init(void); |
291 | void Mapper186_init(void); |
292 | void Mapper187_init(void); |
293 | void Mapper188_init(void); |
294 | void Mapper189_init(void); |
295 | void Mapper190_init(void); |
296 | void Mapper191_init(void); |
297 | void Mapper192_init(void); |
298 | void Mapper193_init(void); |
299 | void Mapper194_init(void); |
300 | void Mapper195_init(void); |
301 | void Mapper196_init(void); |
302 | void Mapper197_init(void); |
303 | void Mapper198_init(void); |
304 | void Mapper199_init(void); |
305 | void Mapper200_init(void); |
306 | void Mapper201_init(void); |
307 | void Mapper202_init(void); |
308 | void Mapper203_init(void); |
309 | void Mapper204_init(void); |
310 | void Mapper205_init(void); |
311 | void Mapper206_init(void); |
312 | void Mapper207_init(void); |
313 | void Mapper208_init(void); |
314 | void Mapper209_init(void); |
315 | void Mapper210_init(void); |
316 | void Mapper211_init(void); |
317 | void Mapper212_init(void); |
318 | void Mapper213_init(void); |
319 | void Mapper214_init(void); |
320 | void Mapper215_init(void); |
321 | void Mapper216_init(void); |
322 | void Mapper217_init(void); |
323 | void Mapper218_init(void); |
324 | void Mapper219_init(void); |
325 | void Mapper220_init(void); |
326 | void Mapper221_init(void); |
327 | void Mapper222_init(void); |
328 | void Mapper223_init(void); |
329 | void Mapper224_init(void); |
330 | void Mapper225_init(void); |
331 | void Mapper226_init(void); |
332 | void Mapper227_init(void); |
333 | void Mapper228_init(void); |
334 | void Mapper229_init(void); |
335 | void Mapper230_init(void); |
336 | void Mapper231_init(void); |
337 | void Mapper232_init(void); |
338 | void Mapper233_init(void); |
339 | void Mapper234_init(void); |
340 | void Mapper235_init(void); |
341 | void Mapper236_init(void); |
342 | void Mapper237_init(void); |
343 | void Mapper238_init(void); |
344 | void Mapper239_init(void); |
345 | void Mapper240_init(void); |
346 | void Mapper241_init(void); |
347 | void Mapper242_init(void); |
348 | void Mapper243_init(void); |
349 | void Mapper244_init(void); |
350 | void Mapper245_init(void); |
351 | void Mapper246_init(void); |
352 | void Mapper247_init(void); |
353 | void Mapper248_init(void); |
354 | void Mapper249_init(void); |
355 | void Mapper250_init(void); |
356 | void Mapper251_init(void); |
357 | void Mapper252_init(void); |
358 | void Mapper253_init(void); |
359 | void Mapper254_init(void); |
360 | void Mapper255_init(void); |
361 | |
362 | void VRC6_ESI(int t); |
363 | void VRC7_ESI(void); |
364 | void Mapper5_ESI(void); |
365 | void Mapper69_ESI(void); |
366 | void Mapper19_ESI(void); |