carthw.cfg 8.7 KB

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