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