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