mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
528 lines
14 KiB
INI
528 lines
14 KiB
INI
# hardware (hw = ...):
|
|
# svp - Sega Virtua Processor
|
|
# pico - Sega Pico (not really cart hw, but convenient to support here)
|
|
# prot - simple copy protection devices in unlicensed cartridges (see prot. below)
|
|
#
|
|
# 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
|
|
# sf00x_mapper - versions x=1,2,4 used by superfighter team
|
|
# lk3_mapper - mapper for Lion King 3 / Super King Kong 99 and some more
|
|
# smw64_mapper - mapper for Super Mario World 64
|
|
#
|
|
# 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
|
|
|
|
[Soreike! Anpanman no Game de Asobou Anpanman - Pico]
|
|
check_str = 0x100, "SEGA IAC "
|
|
hw = pico
|
|
|
|
# Unou Kaihatsu Series: IMA IKUNO[U]JYUKU
|
|
[Unou Kaihatsu Series - Pico]
|
|
check_str = 0x100, "IMA IKUNO"
|
|
hw = pico
|
|
|
|
# X-Men proto
|
|
[X-Men (prototype) - 32X]
|
|
check_str = 0x120, "32X SAMPLE PROGRAM"
|
|
check_str = 0x32b74c, "Bishop Level"
|
|
prop = force_6btn
|
|
|
|
# WWF Raw
|
|
[WWF Raw - 32X]
|
|
check_str = 0x100, "SEGA 32X"
|
|
check_str = 0x150, "WWF RAW"
|
|
prop = wwfraw_hack # reads back data written to high ROM adresses from cache
|
|
|
|
# Blackthorne
|
|
[Blackthorne - 32X]
|
|
check_str = 0x100, "SEGA 32X"
|
|
check_str = 0x120, "BLACKTHORNE"
|
|
prop = blackthorne_hack # reads back data overwritten by 2nd CPU from cache
|
|
|
|
# Mars check program
|
|
[Mars Check - 32X]
|
|
check_str = 0x100, "SEGA"
|
|
check_str = 0x150, "MARS CHECK PROGRAM"
|
|
prop = marscheck_hack # reads back data overwritten by DMA from cache
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Beggar Prince, unusual SRAM location
|
|
[Beggar Prince]
|
|
check_str = 0x150, "BEGGAR PRINCE"
|
|
hw = sf001_mapper
|
|
sram_range = 0x400000,0x40ffff
|
|
prop = filled_sram
|
|
|
|
[Legend of Wukong]
|
|
check_str = 0x150, "LEGEND OF WUKONG"
|
|
hw = sf002_mapper
|
|
|
|
# Star Odyssey, r/w in SRAM mirror (double SRAM as a kludge)
|
|
[Star Odyssey]
|
|
check_str = 0x150, "STAR ODYSSEY"
|
|
hw = sf004_mapper
|
|
sram_range = 0x200000,0x207fff
|
|
|
|
# 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
|
|
|
|
[5-in-1 Megadrive Portable]
|
|
check_str = 0x150, "TINY TOON ADVENTURES"
|
|
check_size_gt = 0x080000
|
|
hw = x_in_1_mapper
|
|
|
|
[40-games-in-1]
|
|
check_str = 0x160, "FS MOONWALKER"
|
|
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).
|
|
# more added by irixxxx from Mame and G+GX
|
|
# check_crc32 calculation for 1st 64 KB only to allow for overdumps
|
|
|
|
# lk3, mapper + bitswapping hardware
|
|
[Lion King 3 (Unl)]
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0xc9706e25
|
|
hw = lk3_mapper
|
|
|
|
[Super King Kong 99 (Unl)]
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0x4c98cc30
|
|
hw = lk3_mapper
|
|
|
|
[Pocket Monsters II (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x0d097f5c
|
|
hw = lk3_mapper
|
|
|
|
[Pokemon Stadium (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0xbf7219df
|
|
hw = lk3_mapper
|
|
|
|
[Mulan (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0xb5b7606e
|
|
hw = lk3_mapper
|
|
|
|
[Final Samurai V (Unl)] # aka Soul Edge
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0xab3ae5e9
|
|
hw = lk3_mapper
|
|
|
|
[Top Fighter 2000 (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x802f53f9
|
|
hw = lk3_mapper
|
|
|
|
# smw64 mapper + prot
|
|
[Super Mario World 64 (Unl)]
|
|
check_csum = 0
|
|
check_crc32 = 0xf63b7bdc
|
|
hw = smw64_mapper
|
|
|
|
# cart I/O area
|
|
[Bug's Life, A (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x50aa5a9b
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,0xffff00,0x28
|
|
|
|
[Rockman X3 (Unl)]
|
|
check_csum = 0
|
|
check_crc32 = 0xee20be2c
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,-2,0x0c
|
|
|
|
[Super Mario World (Unl)]
|
|
check_str = 0x104, "SEGASEGASEGA"
|
|
check_crc32 = 0xc3616596
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,-2,0x1c
|
|
|
|
[Super Mario Bros. 2 (Unl)] # aka Super Mario 2 1998
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0x7861fb28
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,-2,0x0a
|
|
|
|
[Pocket Monsters (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0xf4cb9b37
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,-2,0x00
|
|
prot_ro_value16 = 0xa13002,-2,0x01
|
|
prot_ro_value16 = 0xa1303e,-2,0x1f
|
|
|
|
[King of Fighters '99, The (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x7bdfb390
|
|
hw = prot
|
|
prot_ro_value16 = 0xa13000,-2,0x00
|
|
prot_ro_value16 = 0xa13002,-2,0x01
|
|
prot_ro_value16 = 0xa1303e,-2,0x1f
|
|
|
|
# cart upper 4MB
|
|
[King of Fighters '98+2000, The (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x8fb8b29e
|
|
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
|
|
|
|
[Mahjong Lover (Unl), Super Majon Club (Unl), Insane Paradise (Unl)]
|
|
# Majiang qingren, Chaoji majiang Club, Fengkuang taohuayuan (Crazy Utopia)
|
|
check_str = 0x104, " MEGA DRIVE (C)"
|
|
check_str = 0x118, "CREATON."
|
|
check_str = 0x180, "MDGM-000"
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x9000
|
|
prot_ro_value16 = 0x401000,-2,0xd300
|
|
|
|
[Rook Mann (Unl)] # aka Rock Heaven
|
|
check_csum = 0x6cca
|
|
check_crc32 = 0xab5d5d9e
|
|
hw = prot
|
|
prot_ro_value16 = 0x500008,-2,0x5000
|
|
|
|
[Rock World (Unl)]
|
|
check_str = 0x113, "KANKO 91-92"
|
|
check_crc32 = 0x79423515
|
|
hw = prot
|
|
prot_ro_value16 = 0x500008,-2,0x5000
|
|
prot_ro_value16 = 0x500208,-2,0xa000
|
|
|
|
[Lion King II, The (Unl)]
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0x7009cac3
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00004,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Squirrel King (Unl)]
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0x1c602dd4
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00000,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Tiny Toon Adventures 3 (Unl)]
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0xc31cfcca
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00000,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Barver Battle Saga (Unl)] # Taikong zhanshi
|
|
check_csum = 0x30b9
|
|
check_crc32 = 0x35e0ff17
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00000,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Water Margin (Unl)] # Shuihu Zhuan
|
|
check_csum = 0x6001
|
|
check_crc32 = 0xfa80956a
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00000,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Legend of Fengshen Yingjie, The (Unl)] # Fengshen yingjie chuan (Canon)
|
|
check_csum = 0xffff
|
|
check_crc32 = 0x91865ea4
|
|
hw = prot
|
|
prot_rw_value16 = 0x400000,0xc00000,0
|
|
prot_rw_value16 = 0x400004,0xc00004,0
|
|
|
|
[Legend of Arthur, The (Unl)] # Ya se chuanshuo
|
|
check_csum = 0xffff
|
|
check_crc32 = 0x8e83dbfa
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x6300
|
|
prot_ro_value16 = 0x400002,-2,0x9800
|
|
prot_ro_value16 = 0x400004,-2,0xc900
|
|
prot_ro_value16 = 0x400006,-2,0x1800
|
|
|
|
[Wucom Legend (Unl)] # Wukong waizhuan
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0xf838aa3b
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x6300
|
|
prot_ro_value16 = 0x400002,-2,0x9800
|
|
prot_ro_value16 = 0x400004,-2,0xc900
|
|
prot_ro_value16 = 0x400006,-2,0x1800
|
|
|
|
[Super Magician (Unl)] # Ling huan daoshi
|
|
check_str = 0x172, "GAME : ELF WOR"
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x5500
|
|
prot_ro_value16 = 0x400002,-2,0x0f00 # check is done if the above one fails
|
|
prot_ro_value16 = 0x400004,-2,0xc900
|
|
prot_ro_value16 = 0x400006,-2,0x1800 # similar to above
|
|
|
|
[Mighty Morphin Power Rangers (Unl)]
|
|
check_str = 0x104, " "
|
|
check_crc32 = 0x5fdeb37b
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x5500
|
|
prot_ro_value16 = 0x400002,-2,0x0f00
|
|
prot_ro_value16 = 0x400004,-2,0xc900
|
|
prot_ro_value16 = 0x400006,-2,0x1800
|
|
|
|
[Smart Mouse (Unl)] # Huanle taoqi shu
|
|
check_csum = 0
|
|
check_crc32 = 0xc9539fce
|
|
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 = 0x6a95f766
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x6300
|
|
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 = 0xf93f3d0b
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x5500
|
|
prot_ro_value16 = 0x400002,-2,0x0f00
|
|
|
|
[Battle of Red Cliffs, The (Unl)] # Sanguo yanyi (Romance of the 3 Kingdoms)
|
|
check_str = 0x104, " are Registered Trademarks"
|
|
check_crc32 = 0x66165305
|
|
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
|
|
|
|
[Tunderbolt II (Unl)] # Leidian
|
|
check_str = 0xfe, "WISEGAME"
|
|
check_crc32 = 0x6f01bd65
|
|
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
|
|
|
|
[16 Tiles Mahjong 1+2 (Unl)] # Zhang majiang
|
|
check_str = 0xfe, "WISEGAME IS TRADE MARKER"
|
|
hw = prot
|
|
prot_ro_value16 = 0x400002,-2,0xaa00
|
|
prot_ro_value16 = 0x400004,-2,0xc900
|
|
prot_ro_value16 = 0x400006,-2,0xf000
|
|
|
|
[Super Poker (Unl)] # Chaoji puke
|
|
check_csum = 0xffff
|
|
check_crc32 = 0xdd02797c
|
|
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
|
|
|
|
[777 Casino (Unl)] # Menghuan shuiguo pan
|
|
check_csum = 0
|
|
check_crc32 = 0xee9fc429
|
|
hw = prot
|
|
prot_ro_value16 = 0x400000,-2,0x6300
|
|
|