diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index 464d9cc7bfb..8a0502ce36c 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -3072,6 +3072,10 @@ ROM_START( forgott1 ) ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) ) ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) ) ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) ) + + ROM_REGION( 0x0200, "bboardplds", ROMREGION_DISPOSE ) + ROM_LOAD( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) ) + ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) ROM_END /* B-Board 88618B */ diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c index 003bfb2271b..626c812da52 100644 --- a/src/mame/video/cps1.c +++ b/src/mame/video/cps1.c @@ -433,6 +433,9 @@ CPS_B_21_QSx are various battery configurations in Q-Sound games */ +// LWCHR and LW621 are equivalent as far as the game is concerned, though the +// equations are different + #define mapper_LWCHR { 0x8000, 0x8000, 0, 0 }, mapper_LWCHR_table static const struct gfx_range mapper_LWCHR_table[] = { @@ -452,6 +455,38 @@ static const struct gfx_range mapper_LWCHR_table[] = { 0 } }; +#define mapper_LW621 { 0x8000, 0x8000, 0, 0 }, mapper_LW621_table +static const struct gfx_range mapper_LW621_table[] = +{ + // verified from PAL dump (PAL @ 1A): + // bank 0 = pin 18 + // bank 1 = pin 14 + // pins 19, 16, 17, and 12 give an alternate half-size mapping which would + // allow to use smaller ROMs: + // pin 19 + // 0 00000-03fff + // pin 16 + // 0 04000-07fff + // 1 00000-1ffff + // pin 17 + // 2 00000-1ffff + // 3 00000-1ffff + // 4 00000-1ffff + // pin 12 + // 3 00000-1ffff + // + // note that allowed codes go up to 0x1ffff but physical ROM is half that size + + /* type start end bank */ + { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 }, + { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 }, + + { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 }, + { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, + { 0 } +}; + // DM620, DM22A and DAM63B are equivalent as far as the game is concerned, though // the equations are quite different @@ -1199,7 +1234,7 @@ static const struct CPS1config cps1_config_table[]= { /* name CPSB gfx mapper in2 in3 out2 kludge */ {"forgottn", CPS_B_01, mapper_LWCHR }, - {"forgott1", CPS_B_01, mapper_LWCHR }, + {"forgott1", CPS_B_01, mapper_LW621 }, {"lostwrld", CPS_B_01, mapper_LWCHR }, {"ghouls", CPS_B_01, mapper_DM620 }, {"ghoulsu", CPS_B_01, mapper_DM620 },