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