mirror of
https://github.com/holub/mame
synced 2025-05-22 05:38:52 +03:00
metro, model3, gunbustr converted to eepromdev.
This commit is contained in:
parent
f98d17e45b
commit
3336a38bb8
@ -48,7 +48,7 @@
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "video/taitoic.h"
|
||||
#include "audio/taitosnd.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "sound/es5506.h"
|
||||
#include "includes/taito_f3.h"
|
||||
#include "audio/taito_en.h"
|
||||
@ -115,9 +115,10 @@ popmessage(t);
|
||||
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
eeprom_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eeprom_write_bit(data & 0x40);
|
||||
eeprom_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||
const device_config *device = devtag_get_device(space->machine, "eeprom");
|
||||
eepromdev_set_clock_line(device, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_write_bit(device, data & 0x40);
|
||||
eepromdev_set_cs_line(device, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
@ -203,7 +204,7 @@ static INPUT_PORTS_START( gunbustr )
|
||||
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
|
||||
@ -324,19 +325,6 @@ static const eeprom_interface gunbustr_eeprom_interface =
|
||||
"0100110000", /* lock command */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( gunbustr )
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else {
|
||||
eeprom_init(machine, &gunbustr_eeprom_interface);
|
||||
if (file)
|
||||
eeprom_load(file);
|
||||
else
|
||||
eeprom_set_data(default_eeprom,128); /* Default the gun setup values */
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( gunbustr )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -344,7 +332,7 @@ static MACHINE_DRIVER_START( gunbustr )
|
||||
MDRV_CPU_PROGRAM_MAP(gunbustr_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", gunbustr_interrupt) /* VBL */
|
||||
|
||||
MDRV_NVRAM_HANDLER(gunbustr)
|
||||
MDRV_EEPROM_ADD("eeprom", gunbustr_eeprom_interface)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -395,6 +383,9 @@ ROM_START( gunbustr )
|
||||
ROM_RELOAD(0x400000,0x100000)
|
||||
ROM_LOAD16_BYTE( "d27-09.bin", 0x200000, 0x100000, CRC(3e060304) SHA1(c4da4a94c168c3a454409d758c3ed45babbab170) ) // CA, CB
|
||||
ROM_LOAD16_BYTE( "d27-10.bin", 0x600000, 0x100000, CRC(ed894fe1) SHA1(5bf2fb6abdcf25bc525a2c3b29dbf7aca0b18fea) ) // -std-
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-gunbustr.bin", 0x0000, 0x0080, CRC(af7dc017) SHA1(5ff106cccd2679025cdd81fbc133d32148e2818c) )
|
||||
ROM_END
|
||||
|
||||
static READ32_HANDLER( main_cycle_r )
|
||||
|
@ -86,7 +86,7 @@ driver modified by Eisuke Watanabe
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "cpu/h83002/h8.h"
|
||||
#include "cpu/upd7810/upd7810.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "video/konicdev.h"
|
||||
#include "sound/2610intf.h"
|
||||
#include "sound/2151intf.h"
|
||||
@ -1269,23 +1269,23 @@ static READ16_HANDLER( gakusai_input_r )
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
static READ16_HANDLER( gakusai_eeprom_r )
|
||||
static READ16_DEVICE_HANDLER( gakusai_eeprom_r )
|
||||
{
|
||||
return eeprom_read_bit() & 1;
|
||||
return eepromdev_read_bit(device) & 1;
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( gakusai_eeprom_w )
|
||||
static WRITE16_DEVICE_HANDLER( gakusai_eeprom_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
// latch the bit
|
||||
eeprom_write_bit(data & 0x01);
|
||||
eepromdev_write_bit(device, data & 0x01);
|
||||
|
||||
// reset line asserted: reset.
|
||||
eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE );
|
||||
eepromdev_set_cs_line(device, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE );
|
||||
|
||||
// clock line asserted: write latch or select next bit to read
|
||||
eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
|
||||
eepromdev_set_clock_line(device, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1317,7 +1317,7 @@ static ADDRESS_MAP_START( gakusai_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
||||
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_DEVREADWRITE("eeprom", gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1356,7 +1356,7 @@ static ADDRESS_MAP_START( gakusai2_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("oki", gakusai_oki_bank_hi_w)
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||
AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_DEVREADWRITE("eeprom", gakusai_eeprom_r,gakusai_eeprom_w) // EEPROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -1364,34 +1364,34 @@ ADDRESS_MAP_END
|
||||
Mahjong Doukyuusei Special
|
||||
***************************************************************************/
|
||||
|
||||
static READ16_HANDLER( dokyusp_eeprom_r )
|
||||
static READ16_DEVICE_HANDLER( dokyusp_eeprom_r )
|
||||
{
|
||||
// clock line asserted: write latch or select next bit to read
|
||||
eeprom_set_clock_line(CLEAR_LINE);
|
||||
eeprom_set_clock_line(ASSERT_LINE);
|
||||
eepromdev_set_clock_line(device, CLEAR_LINE);
|
||||
eepromdev_set_clock_line(device, ASSERT_LINE);
|
||||
|
||||
return eeprom_read_bit() & 1;
|
||||
return eepromdev_read_bit(device) & 1;
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( dokyusp_eeprom_bit_w )
|
||||
static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_bit_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
// latch the bit
|
||||
eeprom_write_bit(data & 0x01);
|
||||
eepromdev_write_bit(device, data & 0x01);
|
||||
|
||||
// clock line asserted: write latch or select next bit to read
|
||||
eeprom_set_clock_line(CLEAR_LINE);
|
||||
eeprom_set_clock_line(ASSERT_LINE);
|
||||
eepromdev_set_clock_line(device, CLEAR_LINE);
|
||||
eepromdev_set_clock_line(device, ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( dokyusp_eeprom_reset_w )
|
||||
static WRITE16_DEVICE_HANDLER( dokyusp_eeprom_reset_w )
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
// reset line asserted: reset.
|
||||
eeprom_set_cs_line((data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_set_cs_line(device, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1423,8 +1423,8 @@ static ADDRESS_MAP_START( dokyusp_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500000, 0x500001) AM_DEVWRITE("oki", gakusai_oki_bank_lo_w) // Sound
|
||||
AM_RANGE(0x600000, 0x600003) AM_DEVWRITE8("ymsnd", ym2413_w, 0x00ff)
|
||||
AM_RANGE(0x700000, 0x700001) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // Sound
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITE(dokyusp_eeprom_reset_w) // EEPROM
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(dokyusp_eeprom_r,dokyusp_eeprom_bit_w) // EEPROM
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE("eeprom", dokyusp_eeprom_reset_w) // EEPROM
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_DEVREADWRITE("eeprom", dokyusp_eeprom_r,dokyusp_eeprom_bit_w) // EEPROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -3847,20 +3847,6 @@ static MACHINE_DRIVER_START( dokyusei )
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static NVRAM_HANDLER( dokyusp )
|
||||
{
|
||||
static const UINT8 def_data[] = {0x00,0xe0};
|
||||
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_interface_93C46);
|
||||
if (file) eeprom_load(file);
|
||||
else eeprom_set_data(def_data,sizeof(def_data)/sizeof(def_data[0]));
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( dokyusp )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -3869,7 +3855,7 @@ static MACHINE_DRIVER_START( dokyusp )
|
||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||
|
||||
MDRV_MACHINE_RESET(metro)
|
||||
MDRV_NVRAM_HANDLER(dokyusp)
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -3907,7 +3893,7 @@ static MACHINE_DRIVER_START( gakusai )
|
||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||
|
||||
MDRV_MACHINE_RESET(metro)
|
||||
MDRV_NVRAM_HANDLER(93C46)
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -3945,7 +3931,7 @@ static MACHINE_DRIVER_START( gakusai2 )
|
||||
MDRV_CPU_VBLANK_INT("screen", gakusai_interrupt)
|
||||
|
||||
MDRV_MACHINE_RESET(metro)
|
||||
MDRV_NVRAM_HANDLER(93C46)
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -5331,6 +5317,9 @@ ROM_START( dokyusp )
|
||||
|
||||
ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
|
||||
ROM_LOAD( "7.bin", 0x000000, 0x200000, CRC(763985e1) SHA1(395d925b79922de5060a3f59de99fbcc9bd40fad) )
|
||||
|
||||
ROM_REGION16_BE( 0x80, "eeprom", 0 )
|
||||
ROM_LOAD16_WORD( "eeprom-dokyusp.bin", 0x0000, 0x0080, CRC(cf159485) SHA1(f8e9c89e1b7c8bcd77ae5f55e334f79285f602a8) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -601,7 +601,7 @@ ALL VROM ROMs are 16M MASK
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/powerpc/ppc.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/eepromdev.h"
|
||||
#include "machine/53c810.h"
|
||||
#include "sound/scsp.h"
|
||||
#include "includes/model3.h"
|
||||
@ -1164,33 +1164,8 @@ static const eeprom_interface eeprom_intf =
|
||||
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
||||
};
|
||||
|
||||
static void eeprom_handler(running_machine *machine, mame_file *file, int read_or_write)
|
||||
{
|
||||
if (read_or_write)
|
||||
eeprom_save(file);
|
||||
else
|
||||
{
|
||||
eeprom_init(machine, &eeprom_intf);
|
||||
if (file) eeprom_load(file);
|
||||
}
|
||||
}
|
||||
|
||||
static NVRAM_HANDLER( model3 )
|
||||
{
|
||||
const char *name = machine->gamedrv->name;
|
||||
if( mame_stricmp(name, "lostwsga") == 0 ||
|
||||
mame_stricmp(name, "dirtdvls") == 0 ||
|
||||
mame_stricmp(name, "dirtdvlsa") == 0 ||
|
||||
mame_stricmp(name, "lemans24") == 0 ||
|
||||
mame_stricmp(name, "magtruck") == 0 ||
|
||||
mame_stricmp(name, "von2") == 0 ||
|
||||
mame_stricmp(name, "von254g") == 0)
|
||||
{
|
||||
eeprom_handler(machine, file, read_or_write);
|
||||
} else {
|
||||
NVRAM_HANDLER_CALL(93C46);
|
||||
}
|
||||
|
||||
if (read_or_write)
|
||||
{
|
||||
mame_fwrite(file, model3_backup, 0x1ffff);
|
||||
@ -1394,10 +1369,11 @@ static WRITE64_HANDLER( model3_ctrl_w )
|
||||
case 0:
|
||||
if (ACCESSING_BITS_56_63)
|
||||
{
|
||||
const device_config *device = devtag_get_device(space->machine, "eeprom");
|
||||
int reg = (data >> 56) & 0xff;
|
||||
eeprom_write_bit((reg & 0x20) ? 1 : 0);
|
||||
eeprom_set_clock_line((reg & 0x80) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eeprom_set_cs_line((reg & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||
eepromdev_write_bit(device, (reg & 0x20) ? 1 : 0);
|
||||
eepromdev_set_clock_line(device, (reg & 0x80) ? ASSERT_LINE : CLEAR_LINE);
|
||||
eepromdev_set_cs_line(device, (reg & 0x40) ? CLEAR_LINE : ASSERT_LINE);
|
||||
model3_controls_bank = reg & 0xff;
|
||||
}
|
||||
return;
|
||||
@ -1851,7 +1827,7 @@ static INPUT_PORTS_START( common )
|
||||
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7)
|
||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -2086,7 +2062,7 @@ static INPUT_PORTS_START( skichamp )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) /* Select 2 */
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("eeprom", eepromdev_read_bit)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button B") PORT_CODE(KEYCODE_8)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test Button B") PORT_CODE(KEYCODE_7)
|
||||
PORT_BIT( 0x1f, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -4744,6 +4720,8 @@ static MACHINE_DRIVER_START( model3_10 )
|
||||
|
||||
MDRV_MACHINE_START(model3_10)
|
||||
MDRV_MACHINE_RESET(model3_10)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
|
||||
|
||||
@ -4782,6 +4760,8 @@ static MACHINE_DRIVER_START( model3_15 )
|
||||
|
||||
MDRV_MACHINE_START(model3_15)
|
||||
MDRV_MACHINE_RESET(model3_15)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
|
||||
|
||||
@ -4820,6 +4800,8 @@ static MACHINE_DRIVER_START( model3_20 )
|
||||
|
||||
MDRV_MACHINE_START(model3_20)
|
||||
MDRV_MACHINE_RESET(model3_20)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
|
||||
|
||||
@ -4858,6 +4840,8 @@ static MACHINE_DRIVER_START( model3_21 )
|
||||
|
||||
MDRV_MACHINE_START(model3_21)
|
||||
MDRV_MACHINE_RESET(model3_21)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user