carthw.cfg 8.1 KB

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