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