deal with some strict aliasing issues
[picodrive.git] / pico / carthw.cfg
CommitLineData
45f2f245 1# hardware (hw = ...):
000f5335 2# svp - Sega Virtua Processor
3# pico - Sega Pico (not really cart hw, but convenient to support here)
4# prot - siple copy protection devices in unlicensed cartridges (see prot. below)
5# prot_lk3 - Lion King 3 / Super King Kong 99 protection.
45f2f245 6#
7# cartridge properties (prop = ...):
8# no_sram - don't emulate sram/EEPROM even if ROM headers tell it's there
9# no_eeprom - save storage is not EEPROM, even if ROM headers tell it is
10# filled_sram - save storage needs to be initialized with FFh instead of 00h
a76fad41 11# force_6btn - game only supports 6 button pad (32X X-men proto)
45f2f245 12#
13# mappers (hw = ...):
30f0fdd4 14# ssf2_mapper - used in Super Street Fighter2
15# x_in_1_mapper - used in many *-in-1 pirate carts
45f2f245 16# realtec_mapper
30f0fdd4 17# radica_mapper - similar to x_in_1_mapper
18# piersolar_mapper - used in Pier Solar
45f2f245 19#
20# save storage memory range (inclusive, overrides ROM header):
21# sram_range = <start, end>
22#
23# EEPROM:
24# eeprom_type = <1|2|3> - enable EEPROM, use type X (7bit, 2 addr words, 3 addr words).
25# See EkeEke's gen_eeprom.pdf "mode" descriptions for 24Cxx EEPROMs.
26# eeprom_lines = <SCL,SDA_IN,SDA_OUT>
27# - select data bus pins that are connected to EEPROM
28# SCL, SDA_IN and SDA_OUT pins (0-15 for D0-D15).
000f5335 29# hw = prot:
30# prot_ro_value16 = <addr, mask, val> - return constant <val> on reads at location
31# (<addr> & <mask>), ignore writes.
32# prot_rw_value16 = <addr, mask, val> - same as above, but writeable
45f2f245 33
34[Virtua Racing - SVP]
35check_str = 0x150, "Virtua Racing"
36hw = svp
37
38[Virtua Racing - SVP]
39check_str = 0x150, "VIRTUA RACING"
40hw = svp
41
42[Pico]
43check_str = 0x100, "SEGA PICO"
44hw = pico
45
46[Pico]
47check_str = 0x100, "IMA IKUNOUJYUKU"
48hw = pico
49
50# sram emulation triggers some protection for this one
51[Puggsy]
52check_str = 0x120, "PUGGSY"
53prop = no_sram
54
55# game has problems if it's save RAM is not initialized with FFh:
56[Dino Dini's Soccer]
57check_str = 0x150, "DINO DINI'S SOCCER"
58prop = filled_sram
59
60[Micro Machines 2 - Turbo Tournament]
61check_str = 0x150, "MICRO MACHINES II"
62prop = filled_sram
63
a76fad41 64# X-Men proto
65[X-Men (prototype)]
66check_str = 0x150, "32X SAMPLE PROGRAM"
67check_str = 0x32b74c, "Bishop Level"
68prop = force_6btn
69
000f5335 70# The SSF2 mapper
71[Super Street Fighter II - The New Challengers (U)]
72check_str = 0x150, "SUPER STREET FIGHTER2 The New Challengers"
73hw = ssf2_mapper
74prop = no_sram
75
30f0fdd4 76# The Pier Solar mapper, custom eeprom location
77[Pier Solar and the Great Architects]
a76fad41 78check_str = 0x150, "PIER"
79check_str = 0x610, "Respect"
30f0fdd4 80hw = piersolar_mapper
30f0fdd4 81
45f2f245 82# detect *_in_1 based on first game and if it's larger than it should be,
83# as some dumps look like to be incomplete.
84# This will also pick overdumps, but those should still work with the mapper applied.
85[12-in-1 (Unl)]
86check_str = 0x120, "FLICKY"
87check_size_gt = 0x020000
88hw = x_in_1_mapper
89
90[4-in-1]
91check_str = 0x150, "ROBOCOP 3"
92check_size_gt = 0x080000
93hw = x_in_1_mapper
94
95[4-in-1 a1]
96check_str = 0x150, "ALIEN 3"
97check_size_gt = 0x080000
98hw = x_in_1_mapper
99
100[Super 15-in-1]
101check_str = 0x150, " SHOVE IT!"
102check_size_gt = 0x020000
103hw = x_in_1_mapper
104
105[Super 19-in-1]
106check_str = 0x150, "MS PACMAN"
107check_size_gt = 0x020000
108hw = x_in_1_mapper
109
110# radica
111[radica_v1]
112check_str = 0x150, "KID CHAMELEON"
113check_size_gt = 0x100000
114hw = radica_mapper
115
116# realtec
117[Earth Defend, The (Unl)]
118check_str = 0x94, "THE EARTH DEFEND"
119hw = realtec_mapper
120
121[Funny World & Balloon Boy (Unl)]
122check_str = 0xfe, "WISEGAME 11-03-1993"
123hw = realtec_mapper
124
125[Whac-A-Critter (Unl)]
126check_str = 0x95, "MALLET LEGEND"
127hw = realtec_mapper
128
129# EEPROM games - thanks to EkeEke for most of this info
130[College Slam]
131check_str = 0x150, "COLLEGE SLAM"
132eeprom_type = 3
133eeprom_lines = 8,0,0
134
135[Frank Thomas Big Hurt Baseball]
136check_str = 0x150, "FRANK THOMAS BIGHURT BASEBAL"
137eeprom_type = 3
138eeprom_lines = 8,0,0
139
140[MICRO MACHINES II]
141check_str = 0x150, "MICRO MACHINES II"
142sram_range = 0x300000,0x380001
143eeprom_type = 2
144eeprom_lines = 9,8,7
145
146[Micro Machines - Turbo Tournament '96]
147check_str = 0x150, " "
148check_csum = 0x165e
149sram_range = 0x300000,0x380001
150eeprom_type = 2
151eeprom_lines = 9,8,7
152
153[Micro Machines - Turbo Tournament '96]
154check_str = 0x150, " "
155check_csum = 0x2c41
156sram_range = 0x300000,0x380001
157eeprom_type = 2
158eeprom_lines = 9,8,7
159
160[Micro Machines Military]
161check_str = 0x150, " "
162check_csum = 0x168b
163sram_range = 0x300000,0x380001
164eeprom_type = 2
165eeprom_lines = 9,8,7
166
167[Micro Machines Military]
168check_str = 0x150, " "
169check_csum = 0xcee0
170sram_range = 0x300000,0x380001
171eeprom_type = 2
172eeprom_lines = 9,8,7
173
174[NBA Jam]
175check_str = 0x150, "NBA JAM "
176eeprom_type = 2
177eeprom_lines = 1,0,1
178
179[NBA Jam Tournament Edition]
180check_str = 0x150, "NBA JAM TOURNAMENT EDITION"
181sram_range = 0x200000,0x200001
182eeprom_type = 2
183eeprom_lines = 8,0,0
184
185[NFL Quarterback Club]
186check_str = 0x150, "NFL QUARTERBACK CLUB"
187eeprom_type = 2
188eeprom_lines = 8,0,0
189
190[NHLPA Hockey '93]
191check_str = 0x150, "NHLPA Hockey '93"
192sram_range = 0x200000,0x200001
193eeprom_type = 1
194eeprom_lines = 6,7,7
195
196[NHLPA Hockey '93]
197check_str = 0x150, "NHLPA HOCKEY '93"
198sram_range = 0x200000,0x200001
199eeprom_type = 1
200eeprom_lines = 6,7,7
201
202[Rings of Power]
203check_str = 0x150, "RINGS OF POWER"
204sram_range = 0x200000,0x200001
205eeprom_type = 1
206eeprom_lines = 6,7,7
207
000f5335 208# Unlicensed games with simple protections
209# some of these come from Haze, some from myself (notaz).
210[Bug's Life, A (Unl)]
211check_str = 0x104, " "
212check_crc32 = 0x10458e09
213hw = prot
214prot_ro_value16 = 0xa13000,0xffff00,0x28
215
216[Elf Wor (Unl)]
217check_str = 0x172, "GAME : ELF WOR"
218hw = prot
219prot_ro_value16 = 0x400000,-2,0x5500
220prot_ro_value16 = 0x400002,-2,0xc900 # check is done if the above one fails
221prot_ro_value16 = 0x400004,-2,0x0f00
222prot_ro_value16 = 0x400006,-2,0x1800 # similar to above
223
224[King of Fighters '98, The (Unl)]
225check_str = 0x104, " "
226check_crc32 = 0xcbc38eea
227hw = prot
228prot_ro_value16 = 0x480000,0xff0000,0xaa00
229prot_ro_value16 = 0x4a0000,0xff0000,0x0a00
230prot_ro_value16 = 0x4c0000,0xff0000,0xf000
231prot_ro_value16 = 0x400000,0xc00000,0x0000 # default for 400000-7f0000
232
233[Lion King 3 (Unl)]
234check_str = 0x104, " are Registered Trademarks"
235check_crc32 = 0xc004219d
236hw = prot_lk3
237
238[Lion King II, The (Unl)]
239check_str = 0x104, " are Registered Trademarks"
240check_crc32 = 0xaff46765
241hw = prot
242prot_rw_value16 = 0x400000,0xc00004,0
243prot_rw_value16 = 0x400004,0xc00004,0
244
245[Mahjong Lover (Unl)]
246check_str = 0x118, "CREATON. "
247check_crc32 = 0xddd02ba4
248hw = prot
249prot_ro_value16 = 0x400000,-2,0x9000
250prot_ro_value16 = 0x401000,-2,0xd300
251
252[Pocket Monsters (Unl)]
253check_str = 0x104, " "
254check_crc32 = 0xf68f6367
255hw = prot
256prot_ro_value16 = 0xa13002,-2,0x01
257prot_ro_value16 = 0xa1303e,-2,0x1f
258
259[Pocket Monsters (Unl) [a1]]
260check_str = 0x104, " "
261check_crc32 = 0xfb176667
262hw = prot
263prot_ro_value16 = 0xa13000,-2,0x14
264prot_ro_value16 = 0xa13002,-2,0x01
265prot_ro_value16 = 0xa1303e,-2,0x1f
266
267[Rockman X3 (Unl)]
268check_csum = 0
269check_crc32 = 0x3ee639f0
270hw = prot
271prot_ro_value16 = 0xa13000,-2,0x0c
272
273[Smart Mouse (Unl)]
274check_csum = 0
275check_crc32 = 0xdecdf740
276hw = prot
277prot_ro_value16 = 0x400000,-2,0x5500
278prot_ro_value16 = 0x400002,-2,0x0f00
279prot_ro_value16 = 0x400004,-2,0xaa00
280prot_ro_value16 = 0x400006,-2,0xf000
281
282[Soul Blade (Unl)]
283check_str = 0x104, " "
284check_crc32 = 0xf26f88d1
285hw = prot
286prot_ro_value16 = 0x400002,-2,0x9800
287prot_ro_value16 = 0x400004,-2,0xaa00 # or 0xc900
288prot_ro_value16 = 0x400006,-2,0xf000
289
290[Super Bubble Bobble (Unl)]
291check_str = 0x104, " are Registered Trademarks"
292check_crc32 = 0x4820a161
293hw = prot
294prot_ro_value16 = 0x400000,-2,0x5500
295prot_ro_value16 = 0x400002,-2,0x0f00
296
297[Super King Kong 99 (Unl)]
298check_str = 0x104, " are Registered Trademarks"
299check_crc32 = 0x413dfee2
300hw = prot_lk3
301
302[Super Mario Bros. (Unl)]
303check_str = 0x140, "SUPER MARIO BROS "
304hw = prot
305prot_ro_value16 = 0xa13000,-2,0x0c
306
307[Super Mario 2 1998 (Unl)]
308check_str = 0x104, " are Registered Trademarks"
309check_crc32 = 0xf7e1b3e1
310hw = prot
311prot_ro_value16 = 0xa13000,-2,0x0a
312
313[Squirrel King (R)]
314check_str = 0x104, " are Registered Trademarks"
315check_crc32 = 0xb8261ff5
316hw = prot
317prot_rw_value16 = 0x400000,0xc00000,0
318