mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-06 15:48:05 -04:00
protection and more mapper support for new mem code
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@771 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
45f2f245f5
commit
000f53350c
7 changed files with 512 additions and 109 deletions
128
pico/carthw.cfg
128
pico/carthw.cfg
|
@ -1,6 +1,8 @@
|
|||
# hardware (hw = ...):
|
||||
# svp - Sega Virtua Processor
|
||||
# pico - Sega Pico (not really cart hw, but convenient to support here)
|
||||
# svp - Sega Virtua Processor
|
||||
# pico - Sega Pico (not really cart hw, but convenient to support here)
|
||||
# prot - siple copy protection devices in unlicensed cartridges (see prot. below)
|
||||
# prot_lk3 - Lion King 3 / Super King Kong 99 protection.
|
||||
#
|
||||
# cartridge properties (prop = ...):
|
||||
# no_sram - don't emulate sram/EEPROM even if ROM headers tell it's there
|
||||
|
@ -8,6 +10,7 @@
|
|||
# filled_sram - save storage needs to be initialized with FFh instead of 00h
|
||||
#
|
||||
# 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
|
||||
|
@ -21,6 +24,10 @@
|
|||
# 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"
|
||||
|
@ -52,6 +59,12 @@ prop = filled_sram
|
|||
check_str = 0x150, "MICRO MACHINES II"
|
||||
prop = filled_sram
|
||||
|
||||
# The 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
|
||||
|
||||
# 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.
|
||||
|
@ -178,3 +191,114 @@ 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).
|
||||
[Bug's Life, A (Unl)]
|
||||
check_str = 0x104, " "
|
||||
check_crc32 = 0x10458e09
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13000,0xffff00,0x28
|
||||
|
||||
[Elf Wor (Unl)]
|
||||
check_str = 0x172, "GAME : ELF WOR"
|
||||
hw = prot
|
||||
prot_ro_value16 = 0x400000,-2,0x5500
|
||||
prot_ro_value16 = 0x400002,-2,0xc900 # check is done if the above one fails
|
||||
prot_ro_value16 = 0x400004,-2,0x0f00
|
||||
prot_ro_value16 = 0x400006,-2,0x1800 # similar to above
|
||||
|
||||
[King of Fighters '98, The (Unl)]
|
||||
check_str = 0x104, " "
|
||||
check_crc32 = 0xcbc38eea
|
||||
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
|
||||
|
||||
[Lion King 3 (Unl)]
|
||||
check_str = 0x104, " are Registered Trademarks"
|
||||
check_crc32 = 0xc004219d
|
||||
hw = prot_lk3
|
||||
|
||||
[Lion King II, The (Unl)]
|
||||
check_str = 0x104, " are Registered Trademarks"
|
||||
check_crc32 = 0xaff46765
|
||||
hw = prot
|
||||
prot_rw_value16 = 0x400000,0xc00004,0
|
||||
prot_rw_value16 = 0x400004,0xc00004,0
|
||||
|
||||
[Mahjong Lover (Unl)]
|
||||
check_str = 0x118, "CREATON. "
|
||||
check_crc32 = 0xddd02ba4
|
||||
hw = prot
|
||||
prot_ro_value16 = 0x400000,-2,0x9000
|
||||
prot_ro_value16 = 0x401000,-2,0xd300
|
||||
|
||||
[Pocket Monsters (Unl)]
|
||||
check_str = 0x104, " "
|
||||
check_crc32 = 0xf68f6367
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13002,-2,0x01
|
||||
prot_ro_value16 = 0xa1303e,-2,0x1f
|
||||
|
||||
[Pocket Monsters (Unl) [a1]]
|
||||
check_str = 0x104, " "
|
||||
check_crc32 = 0xfb176667
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13000,-2,0x14
|
||||
prot_ro_value16 = 0xa13002,-2,0x01
|
||||
prot_ro_value16 = 0xa1303e,-2,0x1f
|
||||
|
||||
[Rockman X3 (Unl)]
|
||||
check_csum = 0
|
||||
check_crc32 = 0x3ee639f0
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13000,-2,0x0c
|
||||
|
||||
[Smart Mouse (Unl)]
|
||||
check_csum = 0
|
||||
check_crc32 = 0xdecdf740
|
||||
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 = 0xf26f88d1
|
||||
hw = prot
|
||||
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 = 0x4820a161
|
||||
hw = prot
|
||||
prot_ro_value16 = 0x400000,-2,0x5500
|
||||
prot_ro_value16 = 0x400002,-2,0x0f00
|
||||
|
||||
[Super King Kong 99 (Unl)]
|
||||
check_str = 0x104, " are Registered Trademarks"
|
||||
check_crc32 = 0x413dfee2
|
||||
hw = prot_lk3
|
||||
|
||||
[Super Mario Bros. (Unl)]
|
||||
check_str = 0x140, "SUPER MARIO BROS "
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13000,-2,0x0c
|
||||
|
||||
[Super Mario 2 1998 (Unl)]
|
||||
check_str = 0x104, " are Registered Trademarks"
|
||||
check_crc32 = 0xf7e1b3e1
|
||||
hw = prot
|
||||
prot_ro_value16 = 0xa13000,-2,0x0a
|
||||
|
||||
[Squirrel King (R)]
|
||||
check_str = 0x104, " are Registered Trademarks"
|
||||
check_crc32 = 0xb8261ff5
|
||||
hw = prot
|
||||
prot_rw_value16 = 0x400000,0xc00000,0
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue