carthw.cfg 8.3 KB

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