Fix for MT03637: dino, punisher, wof and clones: NVRAM saves correctly, but doesn't reload any changes made

Fixed knights rom labels [Dlfrsilver]

Note: the eeprom bug seems a bit weird (only half of the games are affected) and I'm still not sure if the problem is in the input_port_write code (some mask issue?) or in cps1.c... 
however, using a device write handler seems an acceptable workaround (and the issue is clearly mentioned in the source)
This commit is contained in:
Fabio Priuli 2010-01-06 15:12:52 +00:00
parent a406d628ff
commit a2cb3afaae

View File

@ -434,6 +434,18 @@ static const eeprom_interface pang3_eeprom_interface =
};
#endif
static WRITE16_DEVICE_HANDLER( cps1_eeprom_port_w )
{
if (ACCESSING_BITS_0_7)
{
/* FIXME: for some weird reason, the port write below breaks punisher, dino & wof eeprom (slammast, mbombrd & pang3 are not affected) */
// input_port_write(device->machine, "EEPROMOUT", data, 0xff);
eeprom_write_bit(device, data & 0x01);
eeprom_set_cs_line(device, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
eeprom_set_clock_line(device, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
}
}
/*
PAL PRG1 (16P8B @ 12H):
@ -595,7 +607,6 @@ static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf00a, 0xf00a) AM_READ(soundlatch2_r) /* Sound timer fade */
ADDRESS_MAP_END
static ADDRESS_MAP_START( qsound_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
@ -609,7 +620,7 @@ static ADDRESS_MAP_START( qsound_main_map, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
AM_RANGE(0xf1c002, 0xf1c003) AM_READ_PORT("IN3") /* Player 4 controls ("Muscle Bombers") */
AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_DEVWRITE("eeprom", cps1_eeprom_port_w)
AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@ -2255,6 +2266,7 @@ static INPUT_PORTS_START( dino )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line)
PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
/* Needs further checking */
@ -6273,29 +6285,29 @@ ROM_START( captcommb )
ROM_END
/* B-Board 91635B */
/* B-Board 91635B (rom labels taken from a 91635B-2 board) */
ROM_START( knights )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "kr_23e.rom", 0x00000, 0x80000, CRC(1b3997eb) SHA1(724b68eff319fcdf0dd3bc1eb6662996c1f6ecd9) )
ROM_LOAD16_WORD_SWAP( "kr_22.rom", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
ROM_LOAD16_WORD_SWAP( "kr-23e.8f", 0x00000, 0x80000, CRC(1b3997eb) SHA1(724b68eff319fcdf0dd3bc1eb6662996c1f6ecd9) )
ROM_LOAD16_WORD_SWAP( "kr-22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
ROM_REGION( 0x400000, "gfx", 0 )
ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-7m.4a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-1m.5a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-8m.8a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-2m.9a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
ROM_LOAD( "kr_09.rom", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
ROM_LOAD( "kr-09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
ROM_CONTINUE( 0x10000, 0x08000 )
ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
ROM_LOAD( "kr_18.rom", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
ROM_LOAD( "kr_19.rom", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
ROM_LOAD( "kr-18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
ROM_LOAD( "kr-19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
ROM_REGION( 0x0200, "aboardplds", 0 )
ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) )