Merge pull request #89 from upstream/irixxxx_xin1

* upstream/irixxxx_xin1:
  carthw: more x-in-1 carts
  carthw: more accurate x-in-1 pirate handling
This commit is contained in:
kub 2023-06-05 22:14:52 +00:00
commit 3615ff7283
3 changed files with 48 additions and 7 deletions

View file

@ -146,6 +146,16 @@ 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

View file

@ -133,7 +133,7 @@ static carthw_state_chunk carthw_Xin1_state[] =
{ 0, 0, NULL }
};
// TODO: test a0, reads, w16
// TODO: reads should also work, but then we need to handle open bus
static void carthw_Xin1_write8(u32 a, u32 d)
{
if ((a & 0xffff00) != 0xa13000) {
@ -141,12 +141,23 @@ static void carthw_Xin1_write8(u32 a, u32 d)
return;
}
carthw_Xin1_do(a, 0x3f, 16);
carthw_Xin1_do(a, 0x3e, 16);
}
static void carthw_Xin1_write16(u32 a, u32 d)
{
if ((a & 0xffff00) != 0xa13000) {
PicoWrite16_io(a, d);
return;
}
carthw_Xin1_write8(a + 1, d);
}
static void carthw_Xin1_mem_setup(void)
{
cpu68k_map_set(m68k_write8_map, 0xa10000, 0xa1ffff, carthw_Xin1_write8, 1);
cpu68k_map_set(m68k_write16_map, 0xa10000, 0xa1ffff, carthw_Xin1_write16, 1);
}
static void carthw_Xin1_reset(void)

View file

@ -15,6 +15,22 @@ static const char builtin_carthw_cfg[] =
"check_str=0x100,\"IMA IKUNO\"\n"
"hw=pico\n"
"[]\n"
"check_str=0x120,\"32X SAMPLE PROGRAM\"\n"
"check_str=0x32b74c,\"Bishop Level\"\n"
"prop=force_6btn\n"
"[]\n"
"check_str=0x100,\"SEGA 32X\"\n"
"check_str=0x150,\"WWF RAW\"\n"
"prop=wwfraw_hack#readsbackdatawrittentohighROMadressesfromcache\n"
"[]\n"
"check_str=0x100,\"SEGA 32X\"\n"
"check_str=0x120,\"BLACKTHORNE\"\n"
"prop=blackthorne_hack#readsbackdataoverwrittenby2ndCPUfromcache\n"
"[]\n"
"check_str=0x100,\"SEGA\"\n"
"check_str=0x150,\"MARS CHECK PROGRAM\"\n"
"prop=marscheck_hack#readsbackdataoverwrittenbyDMAfromcache\n"
"[]\n"
"check_str=0x120,\"PUGGSY\"\n"
"prop=no_sram\n"
"[]\n"
@ -27,10 +43,6 @@ static const char builtin_carthw_cfg[] =
"check_str=0x150,\" HardBall III\"\n"
"sram_range=0x200000,0x20ffff\n"
"[]\n"
"check_str=0x150,\"32X SAMPLE PROGRAM\"\n"
"check_str=0x32b74c,\"Bishop Level\"\n"
"prop=force_6btn\n"
"[]\n"
"check_str=0x100,\"SEGA SSF\"\n"
"hw=ssf2_mapper\n"
"[]\n"
@ -66,6 +78,14 @@ static const char builtin_carthw_cfg[] =
"check_size_gt=0x080000\n"
"hw=x_in_1_mapper\n"
"[]\n"
"check_str=0x150,\"TINY TOON ADVENTURES\"\n"
"check_size_gt=0x080000\n"
"hw=x_in_1_mapper\n"
"[]\n"
"check_str=0x160,\"FS MOONWALKER\"\n"
"check_size_gt=0x080000\n"
"hw=x_in_1_mapper\n"
"[]\n"
"check_str=0x150,\" SHOVE IT!\"\n"
"check_size_gt=0x020000\n"
"hw=x_in_1_mapper\n"