mirror of
https://github.com/holub/mame
synced 2025-05-01 04:06:58 +03:00
verified Ghouls gfxrom mapping against PAL
This commit is contained in:
parent
b7712be3fe
commit
c14f62ea10
@ -3551,17 +3551,17 @@ ROM_START( forgottn )
|
||||
ROM_LOAD16_WORD_SWAP( "lw-07", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
|
||||
|
||||
ROM_REGION( 0x400000, REGION_GFX1, 0 )
|
||||
ROMX_LOAD( "lw-02", 0x000000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-09", 0x000002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-06", 0x000004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-13", 0x000006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-01", 0x200000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-08", 0x200002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-05", 0x200004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-12", 0x200006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-01", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-08", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-05", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-12", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-02", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-09", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-06", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-13", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
|
||||
ROM_REGION( 0x8000, REGION_GFX2, 0 )
|
||||
ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */
|
||||
ROM_COPY( REGION_GFX1, 0x200000, 0x000000, 0x8000 ) /* stars */
|
||||
|
||||
ROM_REGION( 0x18000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "lwu00", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
|
||||
@ -3590,17 +3590,17 @@ ROM_START( lostwrld )
|
||||
ROM_LOAD16_WORD_SWAP( "lw-07", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
|
||||
|
||||
ROM_REGION( 0x400000, REGION_GFX1, 0 )
|
||||
ROMX_LOAD( "lw-02", 0x000000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-09", 0x000002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-06", 0x000004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-13", 0x000006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-01", 0x200000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-08", 0x200002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-05", 0x200004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-12", 0x200006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-01", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-08", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-05", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-12", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-02", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-09", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-06", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
ROMX_LOAD( "lw-13", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
|
||||
|
||||
ROM_REGION( 0x8000, REGION_GFX2, 0 )
|
||||
ROM_COPY( REGION_GFX1, 0x000000, 0x000000, 0x8000 ) /* stars */
|
||||
ROM_COPY( REGION_GFX1, 0x200000, 0x000000, 0x8000 ) /* stars */
|
||||
|
||||
ROM_REGION( 0x18000, REGION_CPU2, 0 )
|
||||
ROM_LOAD( "lwu00", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
|
||||
|
@ -25,23 +25,23 @@ Forgotten Worlds / Lost Worlds 1988 88618B-2 LWCHR LWI
|
||||
Ghouls 'n Ghosts (World / US) 1988 88620B-2 DM620 LWIO None CPS-B-01 DL-0411-10001 None
|
||||
(alt B-board revision - Japan) 88622B-2 DM22A LWIO 88622-C-1 CPS-B-01 DL-0411-10001 None
|
||||
Strider 1989 89624B-2 ST24M1 LWIO 88622-C-1 CPS-B-01 DL-0411-10001 None
|
||||
(alt B-board version) 89624B-3 ST24B2 LWIO
|
||||
(alt B-board revision) 89624B-3 ST24B2 LWIO
|
||||
(alt B-board revision) ? ST22B ?
|
||||
Dynasty Wars 1989 ? ? ? CPS-B-02 DL-0411-10002
|
||||
Willow 1989 89624B-3 WL24B LWIO 88622-C-4 CPS-B-03 DL-0411-10003 None
|
||||
UN Squadron / Area 88 1989 89624B-3 AR24B LWIO 88622-C-4 CPS-B-11 DL-0411-10004 None
|
||||
(alt B-board revision) 1989 88622B-2 AR22B LWIO
|
||||
(alt B-board revision - Japan) 88622B-2 AR22B LWIO
|
||||
Final Fight (first rev) 1989 89624B-3 S224B IOB1 88622-C-5 CPS-B-04 DL-0411-10005 None
|
||||
Final Fight (US 900112) ? CPS-B-04@ DL-0411-10001 None
|
||||
Final Fight (US 900613) ? CPS-B-05 DL-0411-10006
|
||||
Final Fight (Japan 900305) ? CPS-B-02 DL-0411-10002
|
||||
Final Fight (Japan 900305) (alt B-board revision) ? ? ? CPS-B-02 DL-0411-10002
|
||||
1941 1990 ? YI24B ? 88622-C-5 CPS-B-05 DL-0411-10006 ?
|
||||
Mercs (US) 1990 89624B-3 0224B IOB1 90628-C-1 CPS-B-12 DL-0411-10007 C628
|
||||
Magic Sword (US) 1990 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None
|
||||
Mercs 1990 89624B-3 0224B IOB1 90628-C-1 CPS-B-12 DL-0411-10007 C628
|
||||
Magic Sword 1990 89624B-3 MS24B IOB1 88622-C-5 CPS-B-13 DL-0411-10008 None
|
||||
Chiki Chiki Boys / Mega Twins 1990 89624B-3 CK24B IOB1 88622-C-5 CPS-B-14 DL-0411-10009 None
|
||||
Nemo 1990 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
|
||||
Carrier Air Wing / U.S. Navy 1990 89624B-3 CA24B IOB1 88622-C-5 CPS-B-16 DL-0411-10011 None
|
||||
(alt B-board revision) 89625B-1 CA22B
|
||||
(alt B-board revision - Japan) 89625B-1 CA22B
|
||||
Street Fighter II (910214) 1991 ? STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632
|
||||
Street Fighter II (US 910206) CPS-B-17 DL-0411-10012
|
||||
Street Fighter II (US 910228) CPS-B-18 ?
|
||||
@ -53,7 +53,7 @@ Street Fighter II (US 910522)
|
||||
Street Fighter II (US 911101) CPS-B-17 DL-0411-10012
|
||||
Street Fighter II (Japan 911210) CPS-B-13 DL-0411-10008
|
||||
Three Wonders* 1991 89624B-3 RT24B IOB1 90630C-4 CPS-B-21 DL-0921-10014 IOC1
|
||||
(alt B-board revision) 89625B-1 RT22B IOB1
|
||||
(alt B-board revision - Japan) 89625B-1 RT22B IOB1
|
||||
King of Dragons* 1991 90629B-3 KD29B IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1
|
||||
Captain Commando* 1991 91635B-2 CC63B CCPRG IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1
|
||||
Knights of the Round* 1991 91635B-2 KR63B BPRG1 IOB1 90631C-5 CPS-B-21 DL-0921-10014 C632 IOC1
|
||||
@ -367,7 +367,7 @@ struct CPS1config
|
||||
/* but in many cases it is unknown which bit is which. */
|
||||
int layer_enable_mask[5];
|
||||
|
||||
int bank_size;
|
||||
int bank_sizes[4];
|
||||
const struct gfx_range *bank_mapper;
|
||||
|
||||
int bank_scroll1;
|
||||
@ -416,41 +416,53 @@ static const struct CPS1config *cps1_game_config;
|
||||
#define HACK_B_1 0x00,0x0000, 0x00,0x00,0x00,0x00, 0x54,{0x52,0x50,0x4e,0x4c},0x5c, {0xff,0xff,0xff,0x00,0x00}
|
||||
|
||||
|
||||
static const struct gfx_range mapper_LWCHR[] =
|
||||
|
||||
#define mapper_LWCHR { 0x8000, 0x8000, 0, 0 }, mapper_LWCHR_table
|
||||
static const struct gfx_range mapper_LWCHR_table[] =
|
||||
{
|
||||
// verified from PAL dump (PAL16P8B @ 3A):
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 1 = pin 19
|
||||
// bank 0 = pin 19 (ROMs 1,5,8,12)
|
||||
// bank 1 = pin 16 (ROMs 2,6,9,13)
|
||||
// pin 12 and pin 14 are always enabled (except for stars)
|
||||
// note that allowed codes go up to 0x1ffff but physical ROM is half that size
|
||||
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_STARS, 0x00000, 0x1ffff, 0 },
|
||||
{ GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 0 },
|
||||
{ GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
|
||||
{ GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
|
||||
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x07fff, 1 },
|
||||
{ GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 1 },
|
||||
{ GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
|
||||
{ GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
|
||||
{ GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_DM620[] =
|
||||
|
||||
#define mapper_DM620 { 0x8000, 0x2000, 0x2000, 0 }, mapper_DM620_table
|
||||
static const struct gfx_range mapper_DM620_table[] =
|
||||
{
|
||||
// verified from PAL dump (PAL16P8B @ 2A):
|
||||
// bank 0 = pin 19 (ROMs 5,6,7,8)
|
||||
// bank 1 = pin 16 (ROMs 9,11,13,15,18,20,22,24)
|
||||
// bank 2 = pin 14 (ROMs 10,12,14,16,19,21,23,25)
|
||||
// pin 12 is never enabled
|
||||
// note that bank 0 is enabled whenever banks 1 or 2 are not enabled,
|
||||
// which would make it highly redundant, so I'm relying on the table
|
||||
// to be scanned top to bottom and using a catch-all clause at the end.
|
||||
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x1fff, 0 },
|
||||
{ GFXTYPE_SCROLL1, 0x2000, 0x3fff, 0 },
|
||||
{ GFXTYPE_SCROLL2, 0x4000, 0x7fff, 0 },
|
||||
{ GFXTYPE_SCROLL3, 0x8000, 0xbfff, 1 },
|
||||
|
||||
{ GFXTYPE_SCROLL3, 0x8000, 0x9fff, 1 },
|
||||
{ GFXTYPE_SPRITES, 0x2000, 0x7fff, 1 }, // a000-ffff physical
|
||||
{ GFXTYPE_SPRITES, 0x2000, 0x3fff, 2 },
|
||||
|
||||
{ GFXTYPE_STARS | GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_ST24M1[] =
|
||||
|
||||
#define mapper_ST22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_ST22B_table
|
||||
static const struct gfx_range mapper_ST22B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 4000
|
||||
// verified from PAL dump (PAL # is not certain):
|
||||
// bank 0 = pin 19
|
||||
// bank 1 = pin 16
|
||||
// bank 2 = pin 14
|
||||
@ -470,7 +482,9 @@ static const struct gfx_range mapper_ST24M1[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_dynwar[] = // unknown PAL
|
||||
|
||||
#define mapper_dynwar { 0x8000, 0x8000, 0, 0 }, mapper_dynwar_table
|
||||
static const struct gfx_range mapper_dynwar_table[] = // unknown PAL
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x5fff, 0 },
|
||||
@ -481,12 +495,13 @@ static const struct gfx_range mapper_dynwar[] = // unknown PAL
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_WL24B[] =
|
||||
|
||||
#define mapper_WL24B { 0x8000, 0x8000, 0, 0 }, mapper_WL24B_table
|
||||
static const struct gfx_range mapper_WL24B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 1 = pin 12
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
|
||||
// pin 14 and pin 19 are never enabled
|
||||
|
||||
/* type start end bank */
|
||||
@ -498,11 +513,12 @@ static const struct gfx_range mapper_WL24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_S224B[] =
|
||||
|
||||
#define mapper_S224B { 0x8000, 0, 0, 0 }, mapper_S224B_table
|
||||
static const struct gfx_range mapper_S224B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 12 & pin 14 give an alternate half-size mapping which would allow to
|
||||
// populate the 8-bit ROM sockets instead of the 16-bit ones:
|
||||
// pin 12
|
||||
@ -522,11 +538,12 @@ static const struct gfx_range mapper_S224B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_YI24B[] =
|
||||
|
||||
#define mapper_YI24B { 0x8000, 0, 0, 0 }, mapper_YI24B_table
|
||||
static const struct gfx_range mapper_YI24B_table[] =
|
||||
{
|
||||
// verified from JED:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 12 & pin 14 give an alternate half-size mapping which would allow to
|
||||
// populate the 8-bit ROM sockets instead of the 16-bit ones:
|
||||
// pin 12
|
||||
@ -545,11 +562,12 @@ static const struct gfx_range mapper_YI24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_AR24B[] =
|
||||
|
||||
#define mapper_AR24B { 0x8000, 0, 0, 0 }, mapper_AR24B_table
|
||||
static const struct gfx_range mapper_AR24B_table[] =
|
||||
{
|
||||
// verified from JED:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 12 & pin 14 give an alternate half-size mapping which would allow to
|
||||
// populate the 8-bit ROM sockets instead of the 16-bit ones:
|
||||
// pin 12
|
||||
@ -568,12 +586,13 @@ static const struct gfx_range mapper_AR24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_0224B[] =
|
||||
|
||||
#define mapper_0224B { 0x8000, 0x8000, 0, 0 }, mapper_0224B_table
|
||||
static const struct gfx_range mapper_0224B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 19
|
||||
// bank 1 = pin 12
|
||||
// bank 0 = pin 19 (ROMs 2,4,6,8)
|
||||
// bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
|
||||
// pin 16 & pin 14 appear to be an alternate half-size mapping for bank 0
|
||||
// but scroll1 is missing:
|
||||
// pin 16
|
||||
@ -595,12 +614,15 @@ static const struct gfx_range mapper_0224B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_MS24B[] =
|
||||
|
||||
#define mapper_MS24B { 0x8000, 0, 0, 0 }, mapper_MS24B_table
|
||||
static const struct gfx_range mapper_MS24B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16 or pin 14 (for 16-bit or 8-bit ROMs)
|
||||
// pin 12 is enabled only for sprites, purpose unknown
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 14 duplicates pin 16 allowing to populate the 8-bit ROM sockets
|
||||
// instead of the 16-bit ones.
|
||||
// pin 12 is enabled only for sprites:
|
||||
// 0 0000-3fff
|
||||
// pin 19 is never enabled
|
||||
|
||||
@ -612,7 +634,9 @@ static const struct gfx_range mapper_MS24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_CK24B[] =
|
||||
|
||||
#define mapper_CK24B { 0x8000, 0, 0, 0 }, mapper_CK24B_table
|
||||
static const struct gfx_range mapper_CK24B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
|
||||
@ -622,11 +646,12 @@ static const struct gfx_range mapper_CK24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_NM24B[] =
|
||||
|
||||
#define mapper_NM24B { 0x8000, 0, 0, 0 }, mapper_NM24B_table
|
||||
static const struct gfx_range mapper_NM24B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 12 & pin 14 give an alternate half-size mapping which would allow to
|
||||
// populate the 8-bit ROM sockets instead of the 16-bit ones:
|
||||
// pin 12
|
||||
@ -649,11 +674,12 @@ static const struct gfx_range mapper_NM24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_CA24B[] =
|
||||
|
||||
#define mapper_CA24B { 0x8000, 0, 0, 0 }, mapper_CA24B_table
|
||||
static const struct gfx_range mapper_CA24B_table[] =
|
||||
{
|
||||
// verified from PAL dump:
|
||||
// bank size = 8000
|
||||
// bank 0 = pin 16
|
||||
// bank 0 = pin 16 (ROMs 1,3,5,7)
|
||||
// pin 12 & pin 14 give an alternate half-size mapping which would allow to
|
||||
// populate the 8-bit ROM sockets instead of the 16-bit ones:
|
||||
// pin 12
|
||||
@ -677,21 +703,23 @@ static const struct gfx_range mapper_CA24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_STF29[] =
|
||||
|
||||
#define mapper_STF29 { 0x10000, 0x8000, 0, 0 }, mapper_STF29_table
|
||||
static const struct gfx_range mapper_STF29_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x0ffff, 0 },
|
||||
|
||||
{ GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
|
||||
|
||||
{ GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
|
||||
{ GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 }, // 12000-13fff physical
|
||||
{ GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 }, // 14000-14fff physical
|
||||
{ GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 }, // 15000-17fff physical
|
||||
{ GFXTYPE_SPRITES, 0x10000, 0x11fff, 1 },
|
||||
{ GFXTYPE_SCROLL3, 0x02000, 0x03fff, 1 }, // 12000-13fff physical
|
||||
{ GFXTYPE_SCROLL1, 0x04000, 0x04fff, 1 }, // 14000-14fff physical
|
||||
{ GFXTYPE_SCROLL2, 0x05000, 0x07fff, 1 }, // 15000-17fff physical
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_RT24B[] =
|
||||
|
||||
#define mapper_RT24B { 0x8000, 0x8000, 0, 0 }, mapper_RT24B_table
|
||||
static const struct gfx_range mapper_RT24B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x53ff, 0 },
|
||||
@ -704,7 +732,9 @@ static const struct gfx_range mapper_RT24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_KD29B[] =
|
||||
|
||||
#define mapper_KD29B { 0x8000, 0x8000, 0, 0 }, mapper_KD29B_table
|
||||
static const struct gfx_range mapper_KD29B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
|
||||
@ -716,7 +746,9 @@ static const struct gfx_range mapper_KD29B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_CC63B[] =
|
||||
|
||||
#define mapper_CC63B { 0x8000, 0x8000, 0, 0 }, mapper_CC63B_table
|
||||
static const struct gfx_range mapper_CC63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
|
||||
@ -728,7 +760,9 @@ static const struct gfx_range mapper_CC63B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_KR63B[] =
|
||||
|
||||
#define mapper_KR63B { 0x8000, 0x8000, 0, 0 }, mapper_KR63B_table
|
||||
static const struct gfx_range mapper_KR63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
|
||||
@ -740,21 +774,23 @@ static const struct gfx_range mapper_KR63B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_S9263B[] =
|
||||
|
||||
#define mapper_S9263B { 0x10000, 0x8000, 0, 0 }, mapper_S9263B_table
|
||||
static const struct gfx_range mapper_S9263B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
|
||||
{ GFXTYPE_SPRITES, 0x00000, 0x0ffff, 0 },
|
||||
|
||||
{ GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
|
||||
|
||||
{ GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
|
||||
{ GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 }, // 12000-13fff physical
|
||||
{ GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 }, // 14000-14fff physical
|
||||
{ GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 }, // 15000-17fff physical
|
||||
{ GFXTYPE_SPRITES, 0x10000, 0x11fff, 1 },
|
||||
{ GFXTYPE_SCROLL3, 0x02000, 0x03fff, 1 }, // 12000-13fff physical
|
||||
{ GFXTYPE_SCROLL1, 0x04000, 0x04fff, 1 }, // 14000-14fff physical
|
||||
{ GFXTYPE_SCROLL2, 0x05000, 0x07fff, 1 }, // 15000-17fff physical
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_VA24B[] =
|
||||
|
||||
#define mapper_VA24B { 0x8000, 0, 0, 0 }, mapper_VA24B_table
|
||||
static const struct gfx_range mapper_VA24B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x57ff, 0 },
|
||||
@ -763,7 +799,9 @@ static const struct gfx_range mapper_VA24B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_Q522B[] =
|
||||
|
||||
#define mapper_Q522B { 0x8000, 0, 0, 0 }, mapper_Q522B_table
|
||||
static const struct gfx_range mapper_Q522B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x6fff, 0 },
|
||||
@ -772,7 +810,9 @@ static const struct gfx_range mapper_Q522B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_TK263B[] =
|
||||
|
||||
#define mapper_TK263B { 0x8000, 0x8000, 0, 0 }, mapper_TK263B_table
|
||||
static const struct gfx_range mapper_TK263B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
|
||||
@ -783,7 +823,9 @@ static const struct gfx_range mapper_TK263B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_CD63B[] =
|
||||
|
||||
#define mapper_CD63B { 0x8000, 0x8000, 0, 0 }, mapper_CD63B_table
|
||||
static const struct gfx_range mapper_CD63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
|
||||
@ -794,7 +836,9 @@ static const struct gfx_range mapper_CD63B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_PS63B[] =
|
||||
|
||||
#define mapper_PS63B { 0x8000, 0x8000, 0, 0 }, mapper_PS63B_table
|
||||
static const struct gfx_range mapper_PS63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
|
||||
@ -806,20 +850,22 @@ static const struct gfx_range mapper_PS63B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_MB63B[] =
|
||||
|
||||
#define mapper_MB63B { 0x10000, 0x8000, 0, 0 }, mapper_MB63B_table
|
||||
static const struct gfx_range mapper_MB63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x00000, 0x00fff, 0 },
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x07fff, 0 },
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x0ffff, 0 },
|
||||
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x08000, 0x0ffff, 1 },
|
||||
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 2 },
|
||||
{ GFXTYPE_SCROLL3, 0x16800, 0x17fff, 2 },
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 1 },
|
||||
{ GFXTYPE_SCROLL3, 0x16800, 0x17fff, 1 },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_QD22B[] =
|
||||
|
||||
#define mapper_QD22B { 0x8000, 0, 0, 0 }, mapper_QD22B_table
|
||||
static const struct gfx_range mapper_QD22B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 },
|
||||
@ -828,7 +874,9 @@ static const struct gfx_range mapper_QD22B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_qadj[] =
|
||||
|
||||
#define mapper_qadj { 0x8000, 0, 0, 0 }, mapper_qadj_table
|
||||
static const struct gfx_range mapper_qadj_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 },
|
||||
@ -837,7 +885,9 @@ static const struct gfx_range mapper_qadj[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_qtono2[] =
|
||||
|
||||
#define mapper_qtono2 { 0x8000, 0x8000, 0, 0 }, mapper_qtono2_table
|
||||
static const struct gfx_range mapper_qtono2_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
|
||||
@ -848,7 +898,9 @@ static const struct gfx_range mapper_qtono2[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_RCM63B[] =
|
||||
|
||||
#define mapper_RCM63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_RCM63B_table
|
||||
static const struct gfx_range mapper_RCM63B_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x00000, 0x017ff, 0 },
|
||||
@ -863,7 +915,9 @@ static const struct gfx_range mapper_RCM63B[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_pnickj[] =
|
||||
|
||||
#define mapper_pnickj { 0x8000, 0, 0, 0 }, mapper_pnickj_table
|
||||
static const struct gfx_range mapper_pnickj_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
|
||||
@ -872,7 +926,9 @@ static const struct gfx_range mapper_pnickj[] =
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static const struct gfx_range mapper_pang3[] =
|
||||
|
||||
#define mapper_pang3 { 0x8000, 0x8000, 0, 0 }, mapper_pang3_table
|
||||
static const struct gfx_range mapper_pang3_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
|
||||
@ -891,13 +947,11 @@ static const struct gfx_range mapper_pang3[] =
|
||||
(sprites are not listed here because they are addressed linearly by the CPS2
|
||||
sprite code)
|
||||
*/
|
||||
static const struct gfx_range mapper_cps2[] =
|
||||
#define mapper_cps2 { 0x20000, 0x20000, 0, 0 }, mapper_cps2_table
|
||||
static const struct gfx_range mapper_cps2_table[] =
|
||||
{
|
||||
/* type start end bank */
|
||||
{ GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 4 }, // 20000-27fff physical
|
||||
{ GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 5 }, // 28000-2ffff physical
|
||||
{ GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 6 }, // 30000-37fff physical
|
||||
{ GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 7 }, // 38000-3ffff physical
|
||||
{ GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, // 20000-3ffff physical
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
@ -905,129 +959,129 @@ static const struct gfx_range mapper_cps2[] =
|
||||
|
||||
static const struct CPS1config cps1_config_table[]=
|
||||
{
|
||||
/* name CPSB bank size gfx mapper kludge */
|
||||
{"forgottn", CPS_B_01, 0x8000, mapper_LWCHR },
|
||||
{"lostwrld", CPS_B_01, 0x8000, mapper_LWCHR },
|
||||
{"ghouls", CPS_B_01, 0x8000, mapper_DM620 },
|
||||
{"ghoulsu", CPS_B_01, 0x8000, mapper_DM620 },
|
||||
{"daimakai", CPS_B_01, 0x8000, mapper_DM620 },
|
||||
{"strider", CPS_B_01, 0x4000, mapper_ST24M1 },
|
||||
{"stridrua", CPS_B_01, 0x4000, mapper_ST24M1 },
|
||||
{"striderj", CPS_B_01, 0x4000, mapper_ST24M1 },
|
||||
{"stridrja", CPS_B_01, 0x4000, mapper_ST24M1 },
|
||||
{"dynwar", CPS_B_02, 0x8000, mapper_dynwar },
|
||||
{"dynwarj", CPS_B_02, 0x8000, mapper_dynwar },
|
||||
{"willow", CPS_B_03, 0x8000, mapper_WL24B },
|
||||
{"willowj", CPS_B_03, 0x8000, mapper_WL24B },
|
||||
{"willowje", CPS_B_03, 0x8000, mapper_WL24B },
|
||||
{"ffight", CPS_B_04, 0x8000, mapper_S224B },
|
||||
{"ffightu", CPS_B_04, 0x8000, mapper_S224B },
|
||||
{"ffightua", CPS_B_01, 0x8000, mapper_S224B },
|
||||
{"ffightub", CPS_B_05, 0x8000, mapper_S224B },
|
||||
{"ffightj", CPS_B_04, 0x8000, mapper_S224B },
|
||||
{"ffightj1", CPS_B_02, 0x8000, mapper_S224B },
|
||||
{"1941", CPS_B_05, 0x8000, mapper_YI24B },
|
||||
{"1941j", CPS_B_05, 0x8000, mapper_YI24B },
|
||||
{"unsquad", CPS_B_11, 0x8000, mapper_AR24B }, /* CPSB ID not checked, but it's the same as sf2eg */
|
||||
{"area88", CPS_B_11, 0x8000, mapper_AR24B }, /* CPSB ID not checked, but it's the same as sf2eg */
|
||||
{"mercs", CPS_B_12, 0x8000, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsu", CPS_B_12, 0x8000, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsua", CPS_B_12, 0x8000, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsj", CPS_B_12, 0x8000, mapper_0224B }, /* (uses port 74) */
|
||||
{"msword", CPS_B_13, 0x8000, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordr1", CPS_B_13, 0x8000, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordu", CPS_B_13, 0x8000, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordj", CPS_B_13, 0x8000, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mtwins", CPS_B_14, 0x8000, mapper_CK24B },
|
||||
{"chikij", CPS_B_14, 0x8000, mapper_CK24B },
|
||||
{"nemo", CPS_B_15, 0x8000, mapper_NM24B },
|
||||
{"nemoj", CPS_B_15, 0x8000, mapper_NM24B },
|
||||
{"cawing", CPS_B_16, 0x8000, mapper_CA24B },
|
||||
{"cawingr1", CPS_B_16, 0x8000, mapper_CA24B },
|
||||
{"cawingu", CPS_B_16, 0x8000, mapper_CA24B },
|
||||
{"cawingj", CPS_B_16, 0x8000, mapper_CA24B },
|
||||
{"sf2", CPS_B_11, 0x8000, mapper_STF29 },
|
||||
{"sf2eb", CPS_B_17, 0x8000, mapper_STF29 },
|
||||
{"sf2ua", CPS_B_17, 0x8000, mapper_STF29 },
|
||||
{"sf2ub", CPS_B_17, 0x8000, mapper_STF29 },
|
||||
{"sf2ud", CPS_B_05, 0x8000, mapper_STF29 },
|
||||
{"sf2ue", CPS_B_18, 0x8000, mapper_STF29 },
|
||||
{"sf2uf", CPS_B_15, 0x8000, mapper_STF29 },
|
||||
{"sf2ui", CPS_B_14, 0x8000, mapper_STF29 },
|
||||
{"sf2uk", CPS_B_17, 0x8000, mapper_STF29 }, // check CPS_B
|
||||
{"sf2j", CPS_B_13, 0x8000, mapper_STF29 },
|
||||
{"sf2ja", CPS_B_17, 0x8000, mapper_STF29 },
|
||||
{"sf2jc", CPS_B_12, 0x8000, mapper_STF29 },
|
||||
/* name CPSB gfx mapper kludge */
|
||||
{"forgottn", CPS_B_01, mapper_LWCHR },
|
||||
{"lostwrld", CPS_B_01, mapper_LWCHR },
|
||||
{"ghouls", CPS_B_01, mapper_DM620 },
|
||||
{"ghoulsu", CPS_B_01, mapper_DM620 },
|
||||
{"daimakai", CPS_B_01, mapper_DM620 },
|
||||
{"strider", CPS_B_01, mapper_ST22B },
|
||||
{"stridrua", CPS_B_01, mapper_ST22B },
|
||||
{"striderj", CPS_B_01, mapper_ST22B },
|
||||
{"stridrja", CPS_B_01, mapper_ST22B },
|
||||
{"dynwar", CPS_B_02, mapper_dynwar },
|
||||
{"dynwarj", CPS_B_02, mapper_dynwar },
|
||||
{"willow", CPS_B_03, mapper_WL24B },
|
||||
{"willowj", CPS_B_03, mapper_WL24B },
|
||||
{"willowje", CPS_B_03, mapper_WL24B },
|
||||
{"ffight", CPS_B_04, mapper_S224B },
|
||||
{"ffightu", CPS_B_04, mapper_S224B },
|
||||
{"ffightua", CPS_B_01, mapper_S224B },
|
||||
{"ffightub", CPS_B_05, mapper_S224B },
|
||||
{"ffightj", CPS_B_04, mapper_S224B },
|
||||
{"ffightj1", CPS_B_02, mapper_S224B },
|
||||
{"1941", CPS_B_05, mapper_YI24B },
|
||||
{"1941j", CPS_B_05, mapper_YI24B },
|
||||
{"unsquad", CPS_B_11, mapper_AR24B }, /* CPSB ID not checked, but it's the same as sf2eg */
|
||||
{"area88", CPS_B_11, mapper_AR24B }, /* CPSB ID not checked, but it's the same as sf2eg */
|
||||
{"mercs", CPS_B_12, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsu", CPS_B_12, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsua", CPS_B_12, mapper_0224B }, /* (uses port 74) */
|
||||
{"mercsj", CPS_B_12, mapper_0224B }, /* (uses port 74) */
|
||||
{"msword", CPS_B_13, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordr1", CPS_B_13, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordu", CPS_B_13, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mswordj", CPS_B_13, mapper_MS24B }, /* CPSB ID not checked, but it's the same as sf2j */
|
||||
{"mtwins", CPS_B_14, mapper_CK24B },
|
||||
{"chikij", CPS_B_14, mapper_CK24B },
|
||||
{"nemo", CPS_B_15, mapper_NM24B },
|
||||
{"nemoj", CPS_B_15, mapper_NM24B },
|
||||
{"cawing", CPS_B_16, mapper_CA24B },
|
||||
{"cawingr1", CPS_B_16, mapper_CA24B },
|
||||
{"cawingu", CPS_B_16, mapper_CA24B },
|
||||
{"cawingj", CPS_B_16, mapper_CA24B },
|
||||
{"sf2", CPS_B_11, mapper_STF29 },
|
||||
{"sf2eb", CPS_B_17, mapper_STF29 },
|
||||
{"sf2ua", CPS_B_17, mapper_STF29 },
|
||||
{"sf2ub", CPS_B_17, mapper_STF29 },
|
||||
{"sf2ud", CPS_B_05, mapper_STF29 },
|
||||
{"sf2ue", CPS_B_18, mapper_STF29 },
|
||||
{"sf2uf", CPS_B_15, mapper_STF29 },
|
||||
{"sf2ui", CPS_B_14, mapper_STF29 },
|
||||
{"sf2uk", CPS_B_17, mapper_STF29 }, // check CPS_B
|
||||
{"sf2j", CPS_B_13, mapper_STF29 },
|
||||
{"sf2ja", CPS_B_17, mapper_STF29 },
|
||||
{"sf2jc", CPS_B_12, mapper_STF29 },
|
||||
/* from here onwards the CPS-B board has suicide battery and multiply protection */
|
||||
{"3wonders", BATTRY_1, 0x8000, mapper_RT24B },
|
||||
{"3wonderu", BATTRY_1, 0x8000, mapper_RT24B },
|
||||
{"wonder3", BATTRY_1, 0x8000, mapper_RT24B },
|
||||
{"kod", BATTRY_2, 0x8000, mapper_KD29B },
|
||||
{"kodu", BATTRY_2, 0x8000, mapper_KD29B },
|
||||
{"kodj", BATTRY_2, 0x8000, mapper_KD29B },
|
||||
{"kodb", BATTRY_2, 0x8000, mapper_KD29B }, /* bootleg, doesn't use multiply protection */
|
||||
{"captcomm", BATTRY_3, 0x8000, mapper_CC63B },
|
||||
{"captcomu", BATTRY_3, 0x8000, mapper_CC63B },
|
||||
{"captcomj", BATTRY_3, 0x8000, mapper_CC63B },
|
||||
{"knights", BATTRY_4, 0x8000, mapper_KR63B },
|
||||
{"knightsu", BATTRY_4, 0x8000, mapper_KR63B },
|
||||
{"knightsj", BATTRY_4, 0x8000, mapper_KR63B },
|
||||
{"sf2ce", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2ceua", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2ceub", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2ceuc", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2cej", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2rb", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2rb2", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2red", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2v004", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2accp2", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2m1", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2m2", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2m3", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2m4", HACK_B_1, 0x8000, mapper_S9263B, 1 },
|
||||
{"sf2m5", NOBATTRY, 0x8000, mapper_S9263B, 1 },
|
||||
{"sf2m6", NOBATTRY, 0x8000, mapper_S9263B, 1 },
|
||||
{"sf2m7", NOBATTRY, 0x8000, mapper_S9263B, 1 },
|
||||
{"sf2yyc", NOBATTRY, 0x8000, mapper_S9263B, 1 },
|
||||
{"sf2koryu", NOBATTRY, 0x8000, mapper_S9263B, 1 },
|
||||
{"varth", CPS_B_04, 0x8000, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthr1", CPS_B_04, 0x8000, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthu", CPS_B_04, 0x8000, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthj", BATTRY_5, 0x8000, mapper_VA24B }, /* CPSB test has been patched out (72=0001) */
|
||||
{"cworld2j", BATTRY_6, 0x8000, mapper_Q522B }, /* The 0x76 priority values are incorrect values */
|
||||
{"wof", NOBATTRY, 0x8000, mapper_TK263B }, /* bootleg? */
|
||||
{"wofa", NOBATTRY, 0x8000, mapper_TK263B }, /* bootleg? */
|
||||
{"wofu", QSOUND_1, 0x8000, mapper_TK263B },
|
||||
{"wofj", QSOUND_1, 0x8000, mapper_TK263B },
|
||||
{"dino", QSOUND_2, 0x8000, mapper_CD63B }, /* layer enable never used */
|
||||
{"dinou", QSOUND_2, 0x8000, mapper_CD63B }, /* layer enable never used */
|
||||
{"dinoj", QSOUND_2, 0x8000, mapper_CD63B }, /* layer enable never used */
|
||||
{"punisher", QSOUND_3, 0x8000, mapper_PS63B },
|
||||
{"punishru", QSOUND_3, 0x8000, mapper_PS63B },
|
||||
{"punishrj", QSOUND_3, 0x8000, mapper_PS63B },
|
||||
{"slammast", QSOUND_4, 0x8000, mapper_MB63B },
|
||||
{"slammasu", QSOUND_4, 0x8000, mapper_MB63B },
|
||||
{"mbomberj", QSOUND_4, 0x8000, mapper_MB63B },
|
||||
{"mbombrd", QSOUND_5, 0x8000, mapper_MB63B },
|
||||
{"mbombrdj", QSOUND_5, 0x8000, mapper_MB63B },
|
||||
{"sf2hf", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2t", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"sf2tj", NOBATTRY, 0x8000, mapper_S9263B },
|
||||
{"qad", BATTRY_7, 0x8000, mapper_QD22B }, /* TODO: layer enable */
|
||||
{"qadj", NOBATTRY, 0x8000, mapper_qadj },
|
||||
{"qtono2", NOBATTRY, 0x8000, mapper_qtono2 },
|
||||
{"megaman", NOBATTRY, 0x8000, mapper_RCM63B },
|
||||
{"rockmanj", NOBATTRY, 0x8000, mapper_RCM63B },
|
||||
{"pnickj", NOBATTRY, 0x8000, mapper_pnickj },
|
||||
{"pang3", NOBATTRY, 0x8000, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
|
||||
{"pang3j", NOBATTRY, 0x8000, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
|
||||
{"3wonders", BATTRY_1, mapper_RT24B },
|
||||
{"3wonderu", BATTRY_1, mapper_RT24B },
|
||||
{"wonder3", BATTRY_1, mapper_RT24B },
|
||||
{"kod", BATTRY_2, mapper_KD29B },
|
||||
{"kodu", BATTRY_2, mapper_KD29B },
|
||||
{"kodj", BATTRY_2, mapper_KD29B },
|
||||
{"kodb", BATTRY_2, mapper_KD29B }, /* bootleg, doesn't use multiply protection */
|
||||
{"captcomm", BATTRY_3, mapper_CC63B },
|
||||
{"captcomu", BATTRY_3, mapper_CC63B },
|
||||
{"captcomj", BATTRY_3, mapper_CC63B },
|
||||
{"knights", BATTRY_4, mapper_KR63B },
|
||||
{"knightsu", BATTRY_4, mapper_KR63B },
|
||||
{"knightsj", BATTRY_4, mapper_KR63B },
|
||||
{"sf2ce", NOBATTRY, mapper_S9263B },
|
||||
{"sf2ceua", NOBATTRY, mapper_S9263B },
|
||||
{"sf2ceub", NOBATTRY, mapper_S9263B },
|
||||
{"sf2ceuc", NOBATTRY, mapper_S9263B },
|
||||
{"sf2cej", NOBATTRY, mapper_S9263B },
|
||||
{"sf2rb", NOBATTRY, mapper_S9263B },
|
||||
{"sf2rb2", NOBATTRY, mapper_S9263B },
|
||||
{"sf2red", NOBATTRY, mapper_S9263B },
|
||||
{"sf2v004", NOBATTRY, mapper_S9263B },
|
||||
{"sf2accp2", NOBATTRY, mapper_S9263B },
|
||||
{"sf2m1", NOBATTRY, mapper_S9263B },
|
||||
{"sf2m2", NOBATTRY, mapper_S9263B },
|
||||
{"sf2m3", NOBATTRY, mapper_S9263B },
|
||||
{"sf2m4", HACK_B_1, mapper_S9263B, 1 },
|
||||
{"sf2m5", NOBATTRY, mapper_S9263B, 1 },
|
||||
{"sf2m6", NOBATTRY, mapper_S9263B, 1 },
|
||||
{"sf2m7", NOBATTRY, mapper_S9263B, 1 },
|
||||
{"sf2yyc", NOBATTRY, mapper_S9263B, 1 },
|
||||
{"sf2koryu", NOBATTRY, mapper_S9263B, 1 },
|
||||
{"varth", CPS_B_04, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthr1", CPS_B_04, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthu", CPS_B_04, mapper_VA24B }, /* CPSB test has been patched out (60=0008) */
|
||||
{"varthj", BATTRY_5, mapper_VA24B }, /* CPSB test has been patched out (72=0001) */
|
||||
{"cworld2j", BATTRY_6, mapper_Q522B }, /* The 0x76 priority values are incorrect values */
|
||||
{"wof", NOBATTRY, mapper_TK263B }, /* bootleg? */
|
||||
{"wofa", NOBATTRY, mapper_TK263B }, /* bootleg? */
|
||||
{"wofu", QSOUND_1, mapper_TK263B },
|
||||
{"wofj", QSOUND_1, mapper_TK263B },
|
||||
{"dino", QSOUND_2, mapper_CD63B }, /* layer enable never used */
|
||||
{"dinou", QSOUND_2, mapper_CD63B }, /* layer enable never used */
|
||||
{"dinoj", QSOUND_2, mapper_CD63B }, /* layer enable never used */
|
||||
{"punisher", QSOUND_3, mapper_PS63B },
|
||||
{"punishru", QSOUND_3, mapper_PS63B },
|
||||
{"punishrj", QSOUND_3, mapper_PS63B },
|
||||
{"slammast", QSOUND_4, mapper_MB63B },
|
||||
{"slammasu", QSOUND_4, mapper_MB63B },
|
||||
{"mbomberj", QSOUND_4, mapper_MB63B },
|
||||
{"mbombrd", QSOUND_5, mapper_MB63B },
|
||||
{"mbombrdj", QSOUND_5, mapper_MB63B },
|
||||
{"sf2hf", NOBATTRY, mapper_S9263B },
|
||||
{"sf2t", NOBATTRY, mapper_S9263B },
|
||||
{"sf2tj", NOBATTRY, mapper_S9263B },
|
||||
{"qad", BATTRY_7, mapper_QD22B }, /* TODO: layer enable */
|
||||
{"qadj", NOBATTRY, mapper_qadj },
|
||||
{"qtono2", NOBATTRY, mapper_qtono2 },
|
||||
{"megaman", NOBATTRY, mapper_RCM63B },
|
||||
{"rockmanj", NOBATTRY, mapper_RCM63B },
|
||||
{"pnickj", NOBATTRY, mapper_pnickj },
|
||||
{"pang3", NOBATTRY, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
|
||||
{"pang3j", NOBATTRY, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */
|
||||
#ifdef MESS
|
||||
{"sfzch", NOBATTRY, 0x8000, mapper_cps2 },
|
||||
{"sfzch", NOBATTRY, mapper_cps2 },
|
||||
#endif
|
||||
|
||||
/* CPS2 games */
|
||||
{"cps2", NOBATTRY, 0x8000, mapper_cps2 },
|
||||
{"cps2", NOBATTRY, mapper_cps2 },
|
||||
|
||||
{0} /* End of table */
|
||||
};
|
||||
@ -1534,7 +1588,13 @@ static int gfxrom_bank_mapper(running_machine *machine, int type, int code)
|
||||
{
|
||||
if (range->type & type)
|
||||
{
|
||||
return ((code & (cps1_game_config->bank_size - 1)) + (range->bank * cps1_game_config->bank_size)) >> shift;
|
||||
int base = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < range->bank; ++i)
|
||||
base += cps1_game_config->bank_sizes[i];
|
||||
|
||||
return (base + (code & (cps1_game_config->bank_sizes[range->bank] - 1))) >> shift;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user