pandora: fix readme and pxml version
[picodrive.git] / pico / carthw.cfg
... / ...
CommitLineData
1# hardware (hw = ...):
2# svp - Sega Virtua Processor
3# pico - Sega Pico (not really cart hw, but convenient to support here)
4# prot - simple copy protection devices in unlicensed cartridges (see prot. below)
5# flash - protection through reading the flash chip ID
6# j_cart - 2 additional joypad ports on cart
7#
8# cartridge properties (prop = ...):
9# no_sram - don't emulate sram/EEPROM even if ROM headers tell it's there
10# no_eeprom - save storage is not EEPROM, even if ROM headers tell it is
11# filled_sram - save storage needs to be initialized with FFh instead of 00h
12# force_6btn - game only supports 6 button pad (32X X-men proto)
13# no_z80_bus_lock - don't emulate z80 bus getting closed to the 68k when bus is released
14#
15# mappers (hw = ...):
16# ssf2_mapper - used in Super Street Fighter2
17# x_in_1_mapper - used in many *-in-1 pirate carts
18# realtec_mapper
19# radica_mapper - similar to x_in_1_mapper
20# piersolar_mapper - used in Pier Solar
21# sf00x_mapper - versions x=1,2,4 used by superfighter team
22# lk3_mapper - mapper for Lion King 3 / Super King Kong 99 and some more
23# smw64_mapper - mapper for Super Mario World 64
24#
25# save storage memory range (inclusive, overrides ROM header):
26# sram_range = <start, end>
27#
28# EEPROM:
29# eeprom_type = <1|2|3> - enable EEPROM, use type X (7bit, 2 addr words, 3 addr words).
30# See EkeEke's gen_eeprom.pdf "mode" descriptions for 24Cxx EEPROMs.
31# eeprom_lines = <SCL,SDA_IN,SDA_OUT>
32# - select data bus pins that are connected to EEPROM
33# SCL, SDA_IN and SDA_OUT pins (0-15 for D0-D15).
34# hw = prot:
35# prot_ro_value16 = <addr, mask, val> - return constant <val> on reads at location
36# (<addr> & <mask>), ignore writes.
37# prot_rw_value16 = <addr, mask, val> - same as above, but writeable
38
39[Virtua Racing - SVP]
40check_str = 0x150, "Virtua Racing"
41check_str = 0x810, "OHMP"
42hw = svp
43
44[Virtua Racing - SVP]
45check_str = 0x150, "VIRTUA RACING"
46check_str = 0x810, "OHMP"
47hw = svp
48
49[Soreike! Anpanman no Game de Asobou Anpanman - Pico]
50check_str = 0x100, "SEGA IAC "
51hw = pico
52
53# Unou Kaihatsu Series: IMA IKUNO[U]JYUKU
54[Unou Kaihatsu Series - Pico]
55check_str = 0x100, "IMA IKUNO"
56hw = pico
57
58# X-Men proto
59[X-Men (prototype) - 32X]
60check_str = 0x120, "32X SAMPLE PROGRAM"
61check_str = 0x32b74c, "Bishop Level"
62prop = force_6btn
63
64# WWF Raw
65[WWF Raw - 32X]
66check_str = 0x100, "SEGA 32X"
67check_str = 0x150, "WWF RAW"
68prop = wwfraw_hack # reads back data written to high ROM adresses from cache
69
70# Blackthorne
71[Blackthorne - 32X]
72check_str = 0x100, "SEGA 32X"
73check_str = 0x120, "BLACKTHORNE"
74prop = blackthorne_hack # reads back data overwritten by 2nd CPU from cache
75
76# Mars check program
77[Mars Check - 32X]
78check_str = 0x100, "SEGA"
79check_str = 0x150, "MARS CHECK PROGRAM"
80prop = marscheck_hack # reads back data overwritten by DMA from cache
81
82# sram emulation triggers some protection for this one
83[Puggsy]
84check_str = 0x120, "PUGGSY"
85prop = no_sram
86
87# game has problems if it's save RAM is not initialized with FFh:
88[Dino Dini's Soccer]
89check_str = 0x150, "DINO DINI'S SOCCER"
90prop = filled_sram
91
92# bad headers
93[HardBall III]
94check_str = 0x150, " HardBall III"
95sram_range = 0x200000,0x20ffff
96
97# J-Cart
98[Super Skidmarks, Micro Machines Military]
99check_str = 0x150, " "
100check_csum = 0x168b
101hw = j_cart
102
103[Pete Sampras Tennis, Micro Machines Turbo Tournament 96]
104check_str = 0x150, " "
105check_csum = 0x165e
106hw = j_cart
107
108[Micro Machines 2 - Turbo Tournament]
109check_str = 0x150, "MICRO MACHINES II"
110hw = j_cart
111
112[Pete Sampras Tennis 96]
113check_str = 0x150, "PETE SAMPRAS TENNIS '96"
114hw = j_cart
115
116# The SSF2 mapper
117[Mega Everdrive]
118check_str = 0x100, "SEGA SSF"
119hw = ssf2_mapper
120
121[Super Street Fighter II - The New Challengers (U)]
122check_str = 0x150, "SUPER STREET FIGHTER2 The New Challengers"
123hw = ssf2_mapper
124prop = no_sram
125
126# The Pier Solar mapper, custom eeprom location
127[Pier Solar and the Great Architects]
128check_str = 0x150, "PIER"
129check_str = 0x610, "Respect"
130hw = piersolar_mapper
131
132# Beggar Prince, unusual SRAM location
133[Beggar Prince]
134check_str = 0x150, "BEGGAR PRINCE"
135hw = sf001_mapper
136sram_range = 0x400000,0x40ffff
137prop = filled_sram
138
139[Legend of Wukong]
140check_str = 0x150, "LEGEND OF WUKONG"
141hw = sf002_mapper
142
143# Star Odyssey, r/w in SRAM mirror (double SRAM as a kludge)
144[Star Odyssey]
145check_str = 0x150, "STAR ODYSSEY"
146hw = sf004_mapper
147sram_range = 0x200000,0x207fff
148
149# Escape 2042, reads flash ID for protection
150[Escape 2042]
151check_str = 0x120, "Escape 2042"
152hw = flash
153
154# detect *_in_1 based on first game and if it's larger than it should be,
155# as some dumps look like to be incomplete.
156# This will also pick overdumps, but those should still work with the mapper applied.
157[12-in-1 (Unl)]
158check_str = 0x120, "FLICKY"
159check_size_gt = 0x020000
160hw = x_in_1_mapper
161
162[4-in-1]
163check_str = 0x150, "ROBOCOP 3"
164check_size_gt = 0x080000
165hw = x_in_1_mapper
166
167[4-in-1 a1]
168check_str = 0x150, "ALIEN 3"
169check_size_gt = 0x080000
170hw = x_in_1_mapper
171
172[5-in-1 Megadrive Portable]
173check_str = 0x150, "TINY TOON ADVENTURES"
174check_size_gt = 0x080000
175hw = x_in_1_mapper
176
177[40-games-in-1]
178check_str = 0x160, "FS MOONWALKER"
179check_size_gt = 0x080000
180hw = x_in_1_mapper
181
182[Super 15-in-1]
183check_str = 0x150, " SHOVE IT!"
184check_size_gt = 0x020000
185hw = x_in_1_mapper
186
187[Super 19-in-1]
188check_str = 0x150, "MS PACMAN"
189check_size_gt = 0x020000
190hw = x_in_1_mapper
191
192# radica
193[Arcade Legends Sega]
194check_str = 0x150, "KID CHAMELEON"
195check_size_gt = 0x100000
196hw = radica_mapper
197
198[Arcade Legends Capcom]
199check_str = 0x150, "STREET FIGHTER"
200check_size_gt = 0x300000
201hw = radica_mapper
202
203# realtec
204[Earth Defend, The (Unl)]
205check_str = 0x94, "THE EARTH DEFEND"
206hw = realtec_mapper
207
208[Funny World & Balloon Boy (Unl)]
209check_str = 0xfe, "WISEGAME 11-03-1993"
210hw = realtec_mapper
211
212[Whac-A-Critter (Unl)]
213check_str = 0x95, "MALLET LEGEND"
214hw = realtec_mapper
215
216# EEPROM games - thanks to EkeEke for most of this info
217[College Slam]
218check_str = 0x150, "COLLEGE SLAM"
219eeprom_type = 3
220eeprom_lines = 8,0,0
221
222[Frank Thomas Big Hurt Baseball]
223check_str = 0x150, "FRANK THOMAS BIGHURT BASEBAL"
224eeprom_type = 3
225eeprom_lines = 8,0,0
226
227[Greatest Heavyweights]
228check_str = 0x150, "GREATEST HEAVYWEIGHTS"
229sram_range = 0x200000,0x200001
230eeprom_type = 1
231eeprom_lines = 1,0,0
232
233[Micro Machines 2 - Turbo Tournament]
234check_str = 0x150, "MICRO MACHINES II"
235prop = filled_sram
236sram_range = 0x300000,0x37ffff
237eeprom_type = 2
238eeprom_lines = 9,8,7
239
240[Micro Machines - Turbo Tournament '96]
241check_str = 0x150, " "
242check_csum = 0x165e
243sram_range = 0x300000,0x37ffff
244eeprom_type = 2
245eeprom_lines = 9,8,7
246
247[Micro Machines - Turbo Tournament '96]
248check_str = 0x150, " "
249check_csum = 0x2c41
250sram_range = 0x300000,0x37ffff
251eeprom_type = 2
252eeprom_lines = 9,8,7
253
254[Micro Machines Military]
255check_str = 0x150, " "
256check_csum = 0x168b
257sram_range = 0x300000,0x37ffff
258eeprom_type = 2
259eeprom_lines = 9,8,7
260
261[Micro Machines Military]
262check_str = 0x150, " "
263check_csum = 0xcee0
264sram_range = 0x300000,0x37ffff
265eeprom_type = 2
266eeprom_lines = 9,8,7
267
268[Brian Lara Cricket]
269check_str = 0x150, "BRIAN LARA CRICKET"
270sram_range = 0x300000,0x3fffff
271eeprom_type = 2
272eeprom_lines = 9,8,7
273
274[Brian Lara Cricket 96]
275check_str = 0x150, "BRIAN LARA 96"
276sram_range = 0x300000,0x3fffff
277eeprom_type = 2
278eeprom_lines = 9,8,7
279
280[NBA Jam]
281check_str = 0x150, "NBA JAM "
282eeprom_type = 2
283eeprom_lines = 1,0,1
284
285[NBA Jam Tournament Edition]
286check_str = 0x150, "NBA JAM TOURNAMENT EDITION"
287sram_range = 0x200000,0x200001
288eeprom_type = 2
289eeprom_lines = 8,0,0
290
291[NFL Quarterback Club]
292check_str = 0x150, "NFL QUARTERBACK CLUB"
293eeprom_type = 2
294eeprom_lines = 8,0,0
295
296[NHLPA Hockey '93]
297check_str = 0x150, "NHLPA Hockey '93"
298sram_range = 0x200000,0x200001
299eeprom_type = 1
300eeprom_lines = 6,7,7
301
302[NHLPA Hockey '93]
303check_str = 0x150, "NHLPA HOCKEY '93"
304sram_range = 0x200000,0x200001
305eeprom_type = 1
306eeprom_lines = 6,7,7
307
308[Rings of Power]
309check_str = 0x150, "RINGS OF POWER"
310sram_range = 0x200000,0x200001
311eeprom_type = 1
312eeprom_lines = 6,7,7
313
314[Sports Talk Baseball]
315check_str = 0x150, "MLBPA SPORTS TALK BASEBALL"
316sram_range = 0x200000,0x200001
317eeprom_type = 1
318eeprom_lines = 1,0,0
319
320# Unlicensed games with simple protections
321# some of these come from Haze, some from myself (notaz).
322# more added by irixxxx from Mame and G+GX
323# check_crc32 calculation for 1st 64 KB only to allow for overdumps
324
325# lk3, mapper + bitswapping hardware
326[Lion King 3 (Unl)]
327check_str = 0x104, " are Registered Trademarks"
328check_crc32 = 0xc9706e25
329hw = lk3_mapper
330
331[Super King Kong 99 (Unl)]
332check_str = 0x104, " are Registered Trademarks"
333check_crc32 = 0x4c98cc30
334hw = lk3_mapper
335
336[Gunfight 3-in-1 (Unl)]
337check_str = 0x104, " are Registered Trademarks"
338check_crc32 = 0x6ec032cb
339hw = lk3_mapper
340
341[Pocket Monsters II (Unl)]
342check_str = 0x104, " "
343check_crc32 = 0x0d097f5c
344hw = lk3_mapper
345
346[Pokemon Stadium (Unl)]
347check_str = 0x104, " "
348check_crc32 = 0xbf7219df
349hw = lk3_mapper
350
351[Mulan (Unl)]
352check_str = 0x104, " "
353check_crc32 = 0xb5b7606e
354hw = lk3_mapper
355
356[Final Samurai V (Unl)] # aka Soul Edge
357check_str = 0x104, " "
358check_crc32 = 0xab3ae5e9
359hw = lk3_mapper
360
361[Top Fighter 2000 (Unl)]
362check_str = 0x104, " "
363check_crc32 = 0x802f53f9
364hw = lk3_mapper
365
366# smw64 mapper + prot
367[Super Mario World 64 (Unl)]
368check_csum = 0
369check_crc32 = 0xf63b7bdc
370hw = smw64_mapper
371
372# cart I/O area
373[Bug's Life, A (Unl)]
374check_str = 0x104, " "
375check_crc32 = 0x50aa5a9b
376hw = prot
377prot_ro_value16 = 0xa13000,0xffff00,0x28
378
379[Rockman X3 (Unl)]
380check_csum = 0
381check_crc32 = 0xee20be2c
382hw = prot
383prot_ro_value16 = 0xa13000,-2,0x0c
384
385[Super Mario World (Unl)]
386check_str = 0x104, "SEGASEGASEGA"
387check_crc32 = 0xc3616596
388hw = prot
389prot_ro_value16 = 0xa13000,-2,0x1c
390
391[Super Mario Bros. 2 (Unl)] # aka Super Mario 2 1998
392check_str = 0x104, " are Registered Trademarks"
393check_crc32 = 0x7861fb28
394hw = prot
395prot_ro_value16 = 0xa13000,-2,0x0a
396
397[Pocket Monsters (Unl)]
398check_str = 0x104, " "
399check_crc32 = 0xf4cb9b37
400hw = prot
401prot_ro_value16 = 0xa13000,-2,0x00
402prot_ro_value16 = 0xa13002,-2,0x01
403prot_ro_value16 = 0xa1303e,-2,0x1f
404
405[King of Fighters '99, The (Unl)]
406check_str = 0x104, " "
407check_crc32 = 0x7bdfb390
408hw = prot
409prot_ro_value16 = 0xa13000,-2,0x00
410prot_ro_value16 = 0xa13002,-2,0x01
411prot_ro_value16 = 0xa1303e,-2,0x1f
412
413# cart upper 4MB
414[King of Fighters '98+2000, The (Unl)]
415check_str = 0x104, " "
416check_crc32 = 0x8fb8b29e
417hw = prot
418prot_ro_value16 = 0x480000,0xff0000,0xaa00
419prot_ro_value16 = 0x4a0000,0xff0000,0x0a00
420prot_ro_value16 = 0x4c0000,0xff0000,0xf000
421prot_ro_value16 = 0x400000,0xc00000,0x0000 # default for 400000-7f0000
422
423[Mahjong Lover (Unl), Super Majon Club (Unl), Insane Paradise (Unl)]
424# Majiang qingren, Chaoji majiang Club, Fengkuang taohuayuan (Crazy Utopia)
425check_str = 0x104, " MEGA DRIVE (C)"
426check_str = 0x118, "CREATON."
427check_str = 0x180, "MDGM-000"
428hw = prot
429prot_ro_value16 = 0x400000,-2,0x9000
430prot_ro_value16 = 0x401000,-2,0xd300
431
432[Rook Mann (Unl)] # aka Rock Heaven
433check_csum = 0x6cca
434check_crc32 = 0xab5d5d9e
435hw = prot
436prot_ro_value16 = 0x500008,-2,0x5000
437
438[Rock World (Unl)]
439check_str = 0x113, "KANKO 91-92"
440check_crc32 = 0x79423515
441hw = prot
442prot_ro_value16 = 0x500008,-2,0x5000
443prot_ro_value16 = 0x500208,-2,0xa000
444
445[Lion King II, The (Unl)]
446check_str = 0x104, " are Registered Trademarks"
447check_crc32 = 0x7009cac3
448hw = prot
449prot_rw_value16 = 0x400000,0xc00004,0
450prot_rw_value16 = 0x400004,0xc00004,0
451
452[Squirrel King (Unl)]
453check_str = 0x104, " are Registered Trademarks"
454check_crc32 = 0x1c602dd4
455hw = prot
456prot_rw_value16 = 0x400000,0xc00000,0
457prot_rw_value16 = 0x400004,0xc00004,0
458
459[Tiny Toon Adventures 3 (Unl)]
460check_str = 0x104, " are Registered Trademarks"
461check_crc32 = 0xc31cfcca
462hw = prot
463prot_rw_value16 = 0x400000,0xc00000,0
464prot_rw_value16 = 0x400004,0xc00004,0
465
466[Barver Battle Saga (Unl)] # Taikong zhanshi
467check_csum = 0x30b9
468check_crc32 = 0x35e0ff17
469hw = prot
470prot_rw_value16 = 0x400000,0xc00000,0
471prot_rw_value16 = 0x400004,0xc00004,0
472
473[Final Fantasy (Unl)] # Taikong zhanshi (russian bootleg)
474check_csum = 0x5ff9
475check_crc32 = 0x4b2b163a
476hw = prot
477prot_rw_value16 = 0x400000,0xc00000,0
478prot_rw_value16 = 0x400004,0xc00004,0
479
480[Water Margin (Unl)] # Shuihu Zhuan
481check_csum = 0x6001
482check_crc32 = 0xfa80956a
483hw = prot
484prot_rw_value16 = 0x400000,0xc00000,0
485prot_rw_value16 = 0x400004,0xc00004,0
486
487[Legend of Fengshen Yingjie, The (Unl)] # Fengshen yingjie chuan (Canon)
488check_csum = 0xffff
489check_crc32 = 0x91865ea4
490hw = prot
491prot_rw_value16 = 0x400000,0xc00000,0
492prot_rw_value16 = 0x400004,0xc00004,0
493
494[Legend of Arthur, The (Unl)] # Ya se chuanshuo
495check_csum = 0xffff
496check_crc32 = 0x8e83dbfa
497hw = prot
498prot_ro_value16 = 0x400000,-2,0x6300
499prot_ro_value16 = 0x400002,-2,0x9800
500prot_ro_value16 = 0x400004,-2,0xc900
501prot_ro_value16 = 0x400006,-2,0x1800
502
503[Wucom Legend (Unl)] # Wukong waizhuan
504check_str = 0x104, " are Registered Trademarks"
505check_crc32 = 0xf838aa3b
506hw = prot
507prot_ro_value16 = 0x400000,-2,0x6300
508prot_ro_value16 = 0x400002,-2,0x9800
509prot_ro_value16 = 0x400004,-2,0xc900
510prot_ro_value16 = 0x400006,-2,0x1800
511
512[Super Magician (Unl)] # Ling huan daoshi
513check_str = 0x172, "GAME : ELF WOR"
514hw = prot
515prot_ro_value16 = 0x400000,-2,0x5500
516prot_ro_value16 = 0x400002,-2,0x0f00 # check is done if the above one fails
517prot_ro_value16 = 0x400004,-2,0xc900
518prot_ro_value16 = 0x400006,-2,0x1800 # similar to above
519
520[Mighty Morphin Power Rangers (Unl)]
521check_str = 0x104, " "
522check_crc32 = 0x5fdeb37b
523hw = prot
524prot_ro_value16 = 0x400000,-2,0x5500
525prot_ro_value16 = 0x400002,-2,0x0f00
526prot_ro_value16 = 0x400004,-2,0xc900
527prot_ro_value16 = 0x400006,-2,0x1800
528
529[Smart Mouse (Unl)] # Huanle taoqi shu
530check_csum = 0
531check_crc32 = 0xc9539fce
532hw = prot
533prot_ro_value16 = 0x400000,-2,0x5500
534prot_ro_value16 = 0x400002,-2,0x0f00
535prot_ro_value16 = 0x400004,-2,0xaa00
536prot_ro_value16 = 0x400006,-2,0xf000
537
538[Soul Blade (Unl)]
539check_str = 0x104, " "
540check_crc32 = 0x6a95f766
541hw = prot
542prot_ro_value16 = 0x400000,-2,0x6300
543prot_ro_value16 = 0x400002,-2,0x9800
544prot_ro_value16 = 0x400004,-2,0xaa00 # or 0xc900
545prot_ro_value16 = 0x400006,-2,0xf000
546
547[Super Bubble Bobble (Unl)]
548check_str = 0x104, " are Registered Trademarks"
549check_crc32 = 0xf93f3d0b
550hw = prot
551prot_ro_value16 = 0x400000,-2,0x5500
552prot_ro_value16 = 0x400002,-2,0x0f00
553
554[Battle of Red Cliffs, The (Unl)] # Sanguo yanyi (Romance of the 3 Kingdoms)
555check_str = 0x104, " are Registered Trademarks"
556check_crc32 = 0x66165305
557hw = prot
558prot_ro_value16 = 0x400000,-2,0x5500
559prot_ro_value16 = 0x400002,-2,0x0f00
560prot_ro_value16 = 0x400004,-2,0xaa00
561prot_ro_value16 = 0x400006,-2,0xf000
562
563[Tunderbolt II (Unl)] # Leidian
564check_str = 0xfe, "WISEGAME"
565check_crc32 = 0x6f01bd65
566hw = prot
567prot_ro_value16 = 0x400000,-2,0x5500
568prot_ro_value16 = 0x400002,-2,0x0f00
569prot_ro_value16 = 0x400004,-2,0xaa00
570prot_ro_value16 = 0x400006,-2,0xf000
571
572[16 Tiles Mahjong 1+2 (Unl)] # Shi liu zhang majiang
573check_str = 0xfe, "WISEGAME IS TRADE MARKER"
574hw = prot
575prot_ro_value16 = 0x400002,-2,0xaa00
576prot_ro_value16 = 0x400004,-2,0xc900
577prot_ro_value16 = 0x400006,-2,0xf000
578
579[13 Tiles Mahjong] # Shi san zhang majiang
580check_str = 0x104, " "
581check_crc32 = 0x83397760
582hw = prot
583prot_ro_value16 = 0x400000,-2,0x6300
584prot_ro_value16 = 0x400002,-2,0x9800
585prot_ro_value16 = 0x400004,-2,0xaa00
586prot_ro_value16 = 0x400006,-2,0xf000
587
588[Super Poker (Unl)] # Chaoji puke
589check_csum = 0xffff
590check_crc32 = 0xdd02797c
591hw = prot
592prot_ro_value16 = 0x400000,-2,0x5500
593prot_ro_value16 = 0x400002,-2,0x0f00
594prot_ro_value16 = 0x400004,-2,0xaa00
595prot_ro_value16 = 0x400006,-2,0xf000
596
597[777 Casino (Unl)] # Menghuan shuiguo pan
598check_csum = 0
599check_crc32 = 0xee9fc429
600hw = prot
601prot_ro_value16 = 0x400000,-2,0x6300
602
603# Unlicensed homebrew games made by V.M.V.
604# to prevent bus conflicts between the audio drivers in 68k and Z80
605
606[Ben 10 (Unl)]
607check_str = 0x180, "GM 00000000-00"
608check_crc32 = 0x6732aab4
609prop = no_z80_bus_lock
610
611[Mario 3: Vokrug Sveta (Unl)]
612check_str = 0x180, "GM 00000000-00"
613check_crc32 = 0xe302585a
614prop = no_z80_bus_lock
615
616[Mario 4: Kosmicheskaya Odisseya (Unl)]
617check_csum = 8224
618check_crc32 = 0x20ed0de8
619prop = no_z80_bus_lock