mirror of
https://github.com/holub/mame
synced 2025-05-22 21:58:57 +03:00
Get rid of a bunch of mostly-trivial NVRAM_HANDLERS in favor of
NVRAM devices.
This commit is contained in:
parent
dcedf21a43
commit
bb7657c8d3
@ -203,6 +203,7 @@ the entire size of the screen.
|
||||
#include "sound/2608intf.h"
|
||||
#include "sound/2610intf.h"
|
||||
#include "includes/bbusters.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
@ -351,7 +352,7 @@ static ADDRESS_MAP_START( bbusters_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
/* AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP */
|
||||
AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(three_gun_output_w)
|
||||
AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
|
||||
AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_BASE_MEMBER(bbusters_state, eprom_data) /* Eeprom */
|
||||
AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_SHARE("eeprom") /* Eeprom */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*******************************************************************************/
|
||||
@ -663,45 +664,6 @@ static const ym2610_interface ym2610_config =
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
// default eeprom with reasonable calibration for MAME
|
||||
static const unsigned char bbusters_default_eeprom[128] =
|
||||
{
|
||||
/*y*/ /*y*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
||||
/*y*/ /*y*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
||||
/*y*/ /*y*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0xEE, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFE, 0x00,
|
||||
|
||||
|
||||
0x42, 0x00, 0x45, 0x00, 0x41, 0x00, 0x53, 0x00, 0x54, 0x00, 0x20, 0x00,
|
||||
0x42, 0x00, 0x55, 0x00, 0x53, 0x00, 0x54, 0x00, 0x45, 0x00, 0x52, 0x00,
|
||||
0x53, 0x00, 0x20, 0x00, 0x54, 0x00, 0x4D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
};
|
||||
|
||||
|
||||
static NVRAM_HANDLER( bbusters )
|
||||
{
|
||||
bbusters_state *state = machine->driver_data<bbusters_state>();
|
||||
|
||||
if( read_or_write )
|
||||
{
|
||||
mame_fwrite (file, state->eprom_data, 0x80);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (file)
|
||||
mame_fread (file, state->eprom_data, 0x80);
|
||||
else
|
||||
memcpy(state->eprom_data, bbusters_default_eeprom, 0x80);
|
||||
}
|
||||
}
|
||||
|
||||
static VIDEO_EOF( bbuster )
|
||||
{
|
||||
address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||
@ -727,7 +689,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map)
|
||||
MDRV_CPU_IO_MAP(sound_portmap)
|
||||
|
||||
MDRV_NVRAM_HANDLER(bbusters)
|
||||
MDRV_NVRAM_ADD_0FILL("eeprom")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||
@ -837,6 +799,9 @@ ROM_START( bbusters )
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
||||
ROM_LOAD( "bb-pcmb.l3", 0x000000, 0x80000, CRC(c8d5dd53) SHA1(0f7e94532cc14852ca12c1b792e5479667af899e) )
|
||||
|
||||
ROM_REGION( 0x100, "eeprom", 0 )
|
||||
ROM_LOAD( "bbusters-eeprom.bin", 0x00, 0x100, CRC(a52ebd66) SHA1(de04db6f1510700c61bf152799452a80220ae87c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( bbustersu )
|
||||
@ -882,6 +847,9 @@ ROM_START( bbustersu )
|
||||
|
||||
ROM_REGION( 0x80000, "ymsnd.deltat", 0 )
|
||||
ROM_LOAD( "bb-pcma.l5", 0x000000, 0x80000, CRC(44cd5bfe) SHA1(26a612191a0aa614c090203485aba17c99c763ee) )
|
||||
|
||||
ROM_REGION( 0x100, "eeprom", 0 )
|
||||
ROM_LOAD( "bbusters-eeprom.bin", 0x00, 0x100, CRC(a52ebd66) SHA1(de04db6f1510700c61bf152799452a80220ae87c) )
|
||||
ROM_END
|
||||
|
||||
|
||||
|
@ -139,6 +139,8 @@ Adder hardware:
|
||||
#include "emu.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
|
||||
#include "machine/nvram.h"
|
||||
|
||||
#include "video/bfm_adr2.h"
|
||||
|
||||
#include "sound/2413intf.h"
|
||||
@ -188,7 +190,6 @@ static int sc2gui_update_mmtr; // bit pattern which mechanical meter needs updat
|
||||
// local vars /////////////////////////////////////////////////////////////
|
||||
|
||||
static UINT8 *nvram; // pointer to NVRAM
|
||||
static size_t nvram_size; // size of NVRAM
|
||||
static UINT8 key[16]; // security device on gamecard (video games only)
|
||||
|
||||
static UINT8 e2ram[1024]; // x24C08 e2ram
|
||||
@ -443,19 +444,16 @@ static NVRAM_HANDLER( bfm_sc2 )
|
||||
static const UINT8 init_e2ram[10] = { 1, 4, 10, 20, 0, 1, 1, 4, 10, 20 };
|
||||
if ( read_or_write )
|
||||
{ // writing
|
||||
mame_fwrite(file,nvram,nvram_size);
|
||||
mame_fwrite(file,e2ram,sizeof(e2ram));
|
||||
}
|
||||
else
|
||||
{ // reading
|
||||
if ( file )
|
||||
{
|
||||
mame_fread(file,nvram,nvram_size);
|
||||
mame_fread(file,e2ram,sizeof(e2ram));
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(nvram,0x00,nvram_size);
|
||||
memset(e2ram,0x00,sizeof(e2ram));
|
||||
memcpy(e2ram,init_e2ram,sizeof(init_e2ram));
|
||||
}
|
||||
@ -1508,7 +1506,7 @@ static VIDEO_UPDATE( addersc2 )
|
||||
|
||||
static ADDRESS_MAP_START( memmap_vid, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
|
||||
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)// 8k RAM
|
||||
AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram") // 8k RAM
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_hop_r) // vfd status register
|
||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_vid_w)
|
||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||
@ -2223,6 +2221,7 @@ static MACHINE_CONFIG_START( scorpion2_vid, driver_device )
|
||||
MDRV_CPU_PROGRAM_MAP(memmap_vid) // setup scorpion2 board memorymap
|
||||
MDRV_CPU_PERIODIC_INT(timer_irq, 1000) // generate 1000 IRQ's per second
|
||||
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||
MDRV_DEFAULT_LAYOUT(layout_bfm_sc2)
|
||||
|
||||
@ -2748,7 +2747,7 @@ static MACHINE_RESET( dm01_init )
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( sc2_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||
@ -2797,7 +2796,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/* memory map for scorpion3 board */
|
||||
static ADDRESS_MAP_START( sc3_memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_r)
|
||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||
@ -2846,7 +2845,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/* memory map for scorpion2 board + dm01 dot matrix board */
|
||||
static ADDRESS_MAP_START( memmap_sc2_dm01, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
||||
AM_RANGE(0x0000, 0x1FFF) AM_READWRITE(ram_r, ram_w) AM_BASE(&nvram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ(vfd_status_dm01_r)
|
||||
AM_RANGE(0x2000, 0x20FF) AM_WRITE(reel12_w)
|
||||
AM_RANGE(0x2100, 0x21FF) AM_WRITE(reel34_w)
|
||||
@ -3980,6 +3979,7 @@ static MACHINE_CONFIG_START( scorpion2, driver_device )
|
||||
MDRV_SOUND_ADD("ymsnd",YM2413, XTAL_3_579545MHz)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||
|
||||
/* video hardware */
|
||||
@ -4009,6 +4009,7 @@ static MACHINE_CONFIG_START( scorpion2_dm01, driver_device )
|
||||
MDRV_SOUND_ADD("upd",UPD7759, UPD7759_STANDARD_CLOCK)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
MDRV_NVRAM_HANDLER(bfm_sc2)
|
||||
|
||||
/* video hardware */
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
***********************************************************************************/
|
||||
#include "emu.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
|
||||
@ -42,30 +43,11 @@ static UINT8 pkr_io_ram[0x100];
|
||||
static UINT16 video_ram[0x0400];
|
||||
static UINT8 color_ram[0x0400];
|
||||
|
||||
/********************
|
||||
* NVRAM Handler *
|
||||
********************/
|
||||
|
||||
static NVRAM_HANDLER( drw80pkr )
|
||||
static MACHINE_START( drw80pkr )
|
||||
{
|
||||
if (read_or_write)
|
||||
{
|
||||
mame_fwrite(file, pkr_io_ram, DATA_NVRAM_SIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (file)
|
||||
{
|
||||
mame_fread(file, pkr_io_ram, DATA_NVRAM_SIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(pkr_io_ram, 0, DATA_NVRAM_SIZE);
|
||||
}
|
||||
}
|
||||
machine->device<nvram_device>("nvram")->set_base(pkr_io_ram, sizeof(pkr_io_ram));
|
||||
}
|
||||
|
||||
|
||||
/*****************
|
||||
* Write Handlers *
|
||||
******************/
|
||||
@ -451,6 +433,8 @@ static MACHINE_CONFIG_START( drw80pkr, driver_device )
|
||||
MDRV_CPU_IO_MAP(drw80pkr_io_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||
|
||||
MDRV_MACHINE_START(drw80pkr)
|
||||
|
||||
// video hardware
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -466,7 +450,8 @@ static MACHINE_CONFIG_START( drw80pkr, driver_device )
|
||||
MDRV_PALETTE_INIT(drw80pkr)
|
||||
MDRV_VIDEO_START(drw80pkr)
|
||||
MDRV_VIDEO_UPDATE(drw80pkr)
|
||||
MDRV_NVRAM_HANDLER(drw80pkr)
|
||||
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
// sound hardware
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/esrip/esrip.h"
|
||||
#include "machine/6840ptm.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/tms5220.h"
|
||||
#include "includes/esripsys.h"
|
||||
@ -680,6 +681,8 @@ static DRIVER_INIT( esripsys )
|
||||
fdt_b = auto_alloc_array(machine, UINT8, FDT_RAM_SIZE);
|
||||
cmos_ram = auto_alloc_array(machine, UINT8, CMOS_RAM_SIZE);
|
||||
|
||||
machine->device<nvram_device>("nvram")->set_base(cmos_ram, CMOS_RAM_SIZE);
|
||||
|
||||
memory_set_bankptr(machine, "bank2", &rom[0x0000]);
|
||||
memory_set_bankptr(machine, "bank3", &rom[0x4000]);
|
||||
memory_set_bankptr(machine, "bank4", &rom[0x8000]);
|
||||
@ -715,16 +718,6 @@ static DRIVER_INIT( esripsys )
|
||||
state_save_register_global(machine, _fbsel);
|
||||
}
|
||||
|
||||
static NVRAM_HANDLER( esripsys )
|
||||
{
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, cmos_ram, CMOS_RAM_SIZE);
|
||||
else if (file)
|
||||
mame_fread(file, cmos_ram, CMOS_RAM_SIZE);
|
||||
else
|
||||
memset(cmos_ram, 0x00, CMOS_RAM_SIZE);
|
||||
}
|
||||
|
||||
static const esrip_config rip_config =
|
||||
{
|
||||
fdt_rip_r,
|
||||
@ -749,7 +742,7 @@ static MACHINE_CONFIG_START( esripsys, driver_device )
|
||||
MDRV_CPU_ADD("sound_cpu", M6809E, XTAL_8MHz)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_cpu_map)
|
||||
|
||||
MDRV_NVRAM_HANDLER(esripsys)
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
/* Video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -217,6 +217,7 @@
|
||||
#include "emu.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "includes/exidy440.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
|
||||
/* constants */
|
||||
@ -234,28 +235,6 @@ static READ8_HANDLER( showdown_bank0_r );
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* EEROM save/load
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static NVRAM_HANDLER( exidy440 )
|
||||
{
|
||||
UINT8 *rom = memory_region(machine, "maincpu");
|
||||
if (read_or_write)
|
||||
/* the EEROM lives in the uppermost 8k of the top bank */
|
||||
mame_fwrite(file, &rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
||||
else
|
||||
{
|
||||
if (file)
|
||||
mame_fread(file, &rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
||||
else
|
||||
memset(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0, 0x2000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Coin handling
|
||||
@ -453,6 +432,13 @@ static WRITE8_HANDLER( topsecex_yscroll_w )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_START( exidy440 )
|
||||
{
|
||||
/* the EEROM lives in the uppermost 8k of the top bank */
|
||||
UINT8 *rom = memory_region(machine, "maincpu");
|
||||
machine->device<nvram_device>("nvram")->set_base(&rom[0x10000 + 15 * 0x4000 + 0x2000], 0x2000);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( exidy440 )
|
||||
{
|
||||
exidy440_bank = 0xff;
|
||||
@ -1004,8 +990,9 @@ static MACHINE_CONFIG_START( exidy440, driver_device )
|
||||
MDRV_CPU_PROGRAM_MAP(exidy440_map)
|
||||
MDRV_CPU_VBLANK_INT("screen", exidy440_vblank_interrupt)
|
||||
|
||||
MDRV_MACHINE_START(exidy440)
|
||||
MDRV_MACHINE_RESET(exidy440)
|
||||
MDRV_NVRAM_HANDLER(exidy440)
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_FRAGMENT_ADD(exidy440_video)
|
||||
|
@ -351,6 +351,7 @@ Notes:
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/ticket.h"
|
||||
#include "includes/itech32.h"
|
||||
#include "sound/es5506.h"
|
||||
@ -379,9 +380,6 @@ static UINT8 sound_int_state;
|
||||
|
||||
static UINT16 *main_rom;
|
||||
static UINT16 *main_ram;
|
||||
static size_t main_ram_size;
|
||||
static UINT32 *nvram;
|
||||
static size_t nvram_size;
|
||||
|
||||
static offs_t itech020_prot_address;
|
||||
|
||||
@ -909,39 +907,16 @@ static READ32_DEVICE_HANDLER( timekeeper_32be_r )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static NVRAM_HANDLER( itech32 )
|
||||
void itech32_state::nvram_init(nvram_device &nvram, void *base, size_t length)
|
||||
{
|
||||
int i;
|
||||
// if nvram is the main RAM, don't overwrite exception vectors
|
||||
int start = (base == main_ram) ? 0x80 : 0x00;
|
||||
for (int i = start; i < length; i++)
|
||||
((UINT8 *)base)[i] = mame_rand(machine);
|
||||
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, main_ram, main_ram_size);
|
||||
else if (file)
|
||||
mame_fread(file, main_ram, main_ram_size);
|
||||
else
|
||||
{
|
||||
for (i = 0x80; i < main_ram_size; i++)
|
||||
((UINT8 *)main_ram)[i] = mame_rand(machine);
|
||||
|
||||
/* due to accessing uninitialized RAM, we need this hack */
|
||||
// due to accessing uninitialized RAM, we need this hack
|
||||
if (is_drivedge)
|
||||
((UINT32 *)main_ram)[0x2ce4/4] = 0x0000001e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static NVRAM_HANDLER( itech020 )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, nvram, nvram_size);
|
||||
else if (file)
|
||||
mame_fread(file, nvram, nvram_size);
|
||||
else
|
||||
{
|
||||
for (i = 0; i < nvram_size; i++)
|
||||
((UINT8 *)nvram)[i] = mame_rand(machine);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -953,7 +928,7 @@ static NVRAM_HANDLER( itech020 )
|
||||
|
||||
/*------ Time Killers memory layout ------*/
|
||||
static ADDRESS_MAP_START( timekill_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x000000, 0x003fff) AM_RAM AM_BASE(&main_ram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x040000, 0x040001) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x048000, 0x048001) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x050000, 0x050001) AM_READ_PORT("SYSTEM") AM_WRITE(timekill_intensity_w)
|
||||
@ -971,7 +946,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/*------ BloodStorm and later games memory layout ------*/
|
||||
static ADDRESS_MAP_START( bloodstm_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(&main_ram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE(int1_ack_w)
|
||||
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P3")
|
||||
@ -1036,7 +1011,7 @@ static ADDRESS_MAP_START( drivedge_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
|
||||
AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
|
||||
#endif
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SHARE("nvram")
|
||||
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("80000")
|
||||
AM_RANGE(0x082000, 0x082003) AM_READ_PORT("82000")
|
||||
AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
|
||||
@ -1073,7 +1048,7 @@ ADDRESS_MAP_END
|
||||
|
||||
/*------ 68EC020-based memory layout ------*/
|
||||
static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE((UINT32 **)&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE((UINT32 **)&main_ram)
|
||||
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE(int1_ack32_w)
|
||||
AM_RANGE(0x100000, 0x100003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x180000, 0x180003) AM_READ_PORT("P3")
|
||||
@ -1086,7 +1061,7 @@ static ADDRESS_MAP_START( itech020_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE(itech020_video_r, itech020_video_w) AM_BASE((UINT32 **)&itech32_video)
|
||||
AM_RANGE(0x578000, 0x57ffff) AM_READNOP /* touched by protection */
|
||||
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE(itech020_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_BASE(&nvram) AM_SIZE(&nvram_size)
|
||||
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_SHARE("nvram")
|
||||
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
|
||||
AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
|
||||
/* ! */ AM_RANGE(0x680800, 0x68083f) AM_READONLY AM_WRITENOP /* Serial DUART Channel A/B & Top LED sign - To Do! */
|
||||
@ -1739,7 +1714,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map)
|
||||
|
||||
MDRV_MACHINE_RESET(itech32)
|
||||
MDRV_NVRAM_HANDLER(itech32)
|
||||
MDRV_NVRAM_ADD_CUSTOM("nvram", itech32_state, nvram_init)
|
||||
|
||||
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH)
|
||||
|
||||
@ -1810,8 +1785,6 @@ static MACHINE_CONFIG_DERIVED( sftm, bloodstm )
|
||||
MDRV_CPU_PROGRAM_MAP(sound_020_map)
|
||||
MDRV_CPU_VBLANK_INT_HACK(irq1_line_assert,4)
|
||||
|
||||
MDRV_NVRAM_HANDLER(itech020)
|
||||
|
||||
/* via */
|
||||
MDRV_DEVICE_REMOVE("via6522_0")
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -501,6 +501,7 @@
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/ticket.h"
|
||||
#include "video/tms34061.h"
|
||||
#include "video/tlc34076.h"
|
||||
@ -533,9 +534,6 @@ static UINT8 sound_data;
|
||||
static UINT8 pia_porta_data;
|
||||
static UINT8 pia_portb_data;
|
||||
|
||||
static UINT8 *main_ram;
|
||||
static size_t main_ram_size;
|
||||
|
||||
static const rectangle *visarea;
|
||||
|
||||
|
||||
@ -859,27 +857,6 @@ static WRITE16_HANDLER( palette16_w )
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* NVRAM read/write
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static NVRAM_HANDLER( itech8 )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, main_ram, main_ram_size);
|
||||
else if (file)
|
||||
mame_fread(file, main_ram, main_ram_size);
|
||||
else
|
||||
for (i = 0; i < main_ram_size; i++)
|
||||
main_ram[i] = mame_rand(machine);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Main CPU memory handlers
|
||||
@ -897,7 +874,7 @@ static ADDRESS_MAP_START( tmslo_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x11a0, 0x11a0) AM_WRITE(itech8_nmi_ack_w)
|
||||
AM_RANGE(0x11c0, 0x11df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
||||
AM_RANGE(0x11e0, 0x11ff) AM_WRITE(itech8_palette_w)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -913,7 +890,7 @@ static ADDRESS_MAP_START( tmshi_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x01a0, 0x01a0) AM_WRITE(itech8_nmi_ack_w)
|
||||
AM_RANGE(0x01c0, 0x01df) AM_READWRITE(itech8_blitter_r, blitter_w)
|
||||
AM_RANGE(0x01e0, 0x01ff) AM_WRITE(itech8_palette_w)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -929,7 +906,7 @@ static ADDRESS_MAP_START( gtg2_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w)
|
||||
AM_RANGE(0x01e0, 0x01e0) AM_WRITE(tms34061_latch_w)
|
||||
AM_RANGE(0x1000, 0x1fff) AM_READWRITE(itech8_tms34061_r, itech8_tms34061_w)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_BASE(&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -937,7 +914,7 @@ ADDRESS_MAP_END
|
||||
/*------ Ninja Clowns layout ------*/
|
||||
static ADDRESS_MAP_START( ninclown_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION("maincpu", 0)
|
||||
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_BASE((UINT16 **)&main_ram) AM_SIZE(&main_ram_size)
|
||||
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x004000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100080, 0x100081) AM_WRITE8(sound_data_w, 0xff00)
|
||||
AM_RANGE(0x100100, 0x100101) AM_READ_PORT("40") AM_WRITE(grom_bank16_w) AM_BASE((UINT16 **)&itech8_grom_bank)
|
||||
@ -1722,7 +1699,7 @@ static MACHINE_CONFIG_START( itech8_core_lo, driver_device )
|
||||
MDRV_CPU_VBLANK_INT("screen", generate_nmi)
|
||||
|
||||
MDRV_MACHINE_RESET(itech8)
|
||||
MDRV_NVRAM_HANDLER(itech8)
|
||||
MDRV_NVRAM_ADD_RANDOM_FILL("nvram")
|
||||
|
||||
MDRV_TICKET_DISPENSER_ADD("ticket", 200, TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW)
|
||||
|
||||
|
@ -169,24 +169,6 @@ static CUSTOM_INPUT( adpcm_irq_state_r )
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* CMOS read/write
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static NVRAM_HANDLER( midyunit )
|
||||
{
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, midyunit_cmos_ram, 0x8000);
|
||||
else if (file)
|
||||
mame_fread(file, midyunit_cmos_ram, 0x8000);
|
||||
else
|
||||
memset(midyunit_cmos_ram, 0, 0x8000);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Memory maps
|
||||
@ -1022,7 +1004,7 @@ static MACHINE_CONFIG_START( zunit, driver_device )
|
||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||
|
||||
MDRV_MACHINE_RESET(midyunit)
|
||||
MDRV_NVRAM_HANDLER(midyunit)
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||
@ -1055,7 +1037,7 @@ static MACHINE_CONFIG_START( yunit_core, driver_device )
|
||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||
|
||||
MDRV_MACHINE_RESET(midyunit)
|
||||
MDRV_NVRAM_HANDLER(midyunit)
|
||||
MDRV_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
|
||||
|
@ -57,8 +57,6 @@ static UINT8 keypad_select;
|
||||
static UINT8 bitlatch[10];
|
||||
|
||||
static UINT32 *ram_base;
|
||||
static UINT32 *zpram;
|
||||
static size_t zpram_size;
|
||||
static UINT8 cmos_protected;
|
||||
|
||||
static UINT32 *linkram;
|
||||
@ -181,38 +179,22 @@ static WRITE32_DEVICE_HANDLER( zeus2_timekeeper_w )
|
||||
|
||||
static READ32_HANDLER( zpram_r )
|
||||
{
|
||||
return zpram[offset] | 0xffffff00;
|
||||
midzeus_state *state = space->machine->driver_data<midzeus_state>();
|
||||
return state->m_nvram[offset] | 0xffffff00;
|
||||
}
|
||||
|
||||
|
||||
static WRITE32_HANDLER( zpram_w )
|
||||
{
|
||||
midzeus_state *state = space->machine->driver_data<midzeus_state>();
|
||||
if (bitlatch[2])
|
||||
COMBINE_DATA(&zpram[offset]);
|
||||
COMBINE_DATA(&state->m_nvram[offset]);
|
||||
else
|
||||
logerror("%06X:zpram_w with bitlatch[2] = %d\n", cpu_get_pc(space->cpu), bitlatch[2]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* NVRAM handler (Zeus 2 only)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static NVRAM_HANDLER( midzeus2 )
|
||||
{
|
||||
if (read_or_write)
|
||||
mame_fwrite(file, zpram, zpram_size);
|
||||
else if (file)
|
||||
mame_fread(file, zpram, zpram_size);
|
||||
else
|
||||
memset(zpram, 0xff, zpram_size);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Miscellaneous bit latches
|
||||
@ -608,7 +590,7 @@ static ADDRESS_MAP_START( zeus2_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x880000, 0x88007f) AM_READWRITE(zeus2_r, zeus2_w) AM_BASE(&zeusbase)
|
||||
AM_RANGE(0x8a0000, 0x8a003f) AM_READWRITE(linkram_r, linkram_w) AM_BASE(&linkram)
|
||||
AM_RANGE(0x8d0000, 0x8d000a) AM_READWRITE(bitlatches_r, bitlatches_w)
|
||||
AM_RANGE(0x900000, 0x91ffff) AM_READWRITE(zpram_r, zpram_w) AM_BASE(&zpram) AM_SIZE(&zpram_size) AM_MIRROR(0x020000)
|
||||
AM_RANGE(0x900000, 0x91ffff) AM_READWRITE(zpram_r, zpram_w) AM_SHARE("nvram") AM_MIRROR(0x020000)
|
||||
AM_RANGE(0x990000, 0x99000f) AM_READWRITE(midway_ioasic_r, midway_ioasic_w)
|
||||
AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE(analog_r, analog_w)
|
||||
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
|
||||
@ -1151,7 +1133,7 @@ static MACHINE_CONFIG_DERIVED( invasn, midzeus )
|
||||
MDRV_CPU_IO_MAP(pic_io_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( midzeus2, driver_device )
|
||||
static MACHINE_CONFIG_START( midzeus2, midzeus_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD("maincpu", TMS32032, CPU_CLOCK)
|
||||
@ -1160,7 +1142,7 @@ static MACHINE_CONFIG_START( midzeus2, driver_device )
|
||||
|
||||
MDRV_MACHINE_START(midzeus)
|
||||
MDRV_MACHINE_RESET(midzeus)
|
||||
MDRV_NVRAM_HANDLER(midzeus2)
|
||||
MDRV_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -89,6 +89,7 @@
|
||||
#include "emu.h"
|
||||
#include "deprecat.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "video/segaic24.h"
|
||||
#include "cpu/i960/i960.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
@ -101,7 +102,7 @@
|
||||
#include "includes/model2.h"
|
||||
|
||||
UINT32 *model2_bufferram, *model2_colorxlat;
|
||||
static UINT32 *model2_workram, *model2_backup1, *model2_backup2;
|
||||
static UINT32 *model2_workram;
|
||||
UINT32 *model2_textureram0, *model2_textureram1, *model2_lumaram;
|
||||
UINT32 *model2_paletteram32;
|
||||
static UINT32 model2_intreq;
|
||||
@ -278,34 +279,6 @@ static void copro_fifoout_push(running_device *device, UINT32 data)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static NVRAM_HANDLER( model2 )
|
||||
{
|
||||
if (read_or_write)
|
||||
{
|
||||
mame_fwrite(file, model2_backup1, 0x3fff);
|
||||
if (model2_backup2)
|
||||
mame_fwrite(file, model2_backup2, 0xff);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (file)
|
||||
{
|
||||
mame_fread(file, model2_backup1, 0x3fff);
|
||||
if (model2_backup2)
|
||||
mame_fread(file, model2_backup2, 0xff);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Virtua Striker needs the nvram to be defaulted with 1s or the ranking gets un-inited. */
|
||||
memset(model2_backup1, 0xff, 0x4000);
|
||||
if (model2_backup2)
|
||||
memset(model2_backup2, 0xff, 0x100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Timers - these count down at 25 MHz and pull IRQ2 when they hit 0 */
|
||||
static READ32_HANDLER( timers_r )
|
||||
{
|
||||
@ -1402,7 +1375,7 @@ static ADDRESS_MAP_START( model2_base_mem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x01810000, 0x0181bfff) AM_RAM AM_BASE(&model2_colorxlat)
|
||||
AM_RANGE(0x0181c000, 0x0181c003) AM_WRITE(model2_3d_zclip_w)
|
||||
AM_RANGE(0x01a10000, 0x01a1ffff) AM_READWRITE(network_r, network_w)
|
||||
AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_BASE( &model2_backup1 ) // Backup sram
|
||||
AM_RANGE(0x01d00000, 0x01d03fff) AM_RAM AM_SHARE("backup1") // Backup sram
|
||||
AM_RANGE(0x02000000, 0x03ffffff) AM_ROM AM_REGION("user1", 0)
|
||||
|
||||
// "extra" data
|
||||
@ -1439,7 +1412,7 @@ static ADDRESS_MAP_START( model2o_mem, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x01c00014, 0x01c00017) AM_READ_PORT("1c00014")
|
||||
AM_RANGE(0x01c0001c, 0x01c0001f) AM_READ( desert_unk_r )
|
||||
AM_RANGE(0x01c00040, 0x01c00043) AM_READ( daytona_unk_r )
|
||||
AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_BASE( &model2_backup2 )
|
||||
AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_SHARE("backup2")
|
||||
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE( model2_serial_r, model2o_serial_w )
|
||||
|
||||
AM_IMPORT_FROM(model2_base_mem)
|
||||
@ -2024,7 +1997,8 @@ static MACHINE_CONFIG_START( model2o, driver_device )
|
||||
MDRV_MACHINE_RESET(model2o)
|
||||
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
MDRV_NVRAM_HANDLER( model2 )
|
||||
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||
MDRV_NVRAM_ADD_1FILL("backup2")
|
||||
|
||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||
MDRV_TIMER_PTR((FPTR)0)
|
||||
@ -2080,7 +2054,7 @@ static MACHINE_CONFIG_START( model2a, driver_device )
|
||||
MDRV_MACHINE_RESET(model2)
|
||||
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
MDRV_NVRAM_HANDLER( model2 )
|
||||
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||
|
||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||
MDRV_TIMER_PTR((FPTR)0)
|
||||
@ -2181,7 +2155,7 @@ static MACHINE_CONFIG_START( model2b, driver_device )
|
||||
MDRV_MACHINE_RESET(model2b)
|
||||
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
MDRV_NVRAM_HANDLER( model2 )
|
||||
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||
|
||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||
MDRV_TIMER_PTR((FPTR)0)
|
||||
@ -2226,7 +2200,7 @@ static MACHINE_CONFIG_START( model2c, driver_device )
|
||||
MDRV_MACHINE_RESET(model2c)
|
||||
|
||||
MDRV_EEPROM_93C46_ADD("eeprom")
|
||||
MDRV_NVRAM_HANDLER( model2 )
|
||||
MDRV_NVRAM_ADD_1FILL("backup1")
|
||||
|
||||
MDRV_TIMER_ADD("timer0", model2_timer_cb)
|
||||
MDRV_TIMER_PTR((FPTR)0)
|
||||
|
@ -603,6 +603,7 @@ ALL VROM ROMs are 16M MASK
|
||||
#include "cpu/powerpc/ppc.h"
|
||||
#include "machine/eeprom.h"
|
||||
#include "machine/53c810.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/scsp.h"
|
||||
#include "includes/model3.h"
|
||||
|
||||
@ -614,7 +615,6 @@ int model3_step;
|
||||
UINT32 *model3_vrom;
|
||||
|
||||
static UINT64 *work_ram;
|
||||
static UINT64 *model3_backup;
|
||||
static int model3_crom_bank = 0;
|
||||
static int model3_controls_bank;
|
||||
static UINT32 real3d_device_id;
|
||||
@ -1164,21 +1164,6 @@ static const eeprom_interface eeprom_intf =
|
||||
5 /* reset_delay (Lost World needs this, very similar to wbeachvl in playmark.c) */
|
||||
};
|
||||
|
||||
static NVRAM_HANDLER( model3 )
|
||||
{
|
||||
if (read_or_write)
|
||||
{
|
||||
mame_fwrite(file, model3_backup, 0x1ffff);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (file)
|
||||
{
|
||||
mame_fread(file, model3_backup, 0x1ffff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static const SCSIConfigTable scsi_dev_table =
|
||||
{
|
||||
1, /* 1 SCSI device */
|
||||
@ -1792,26 +1777,19 @@ static ADDRESS_MAP_START( model3_mem, ADDRESS_SPACE_PROGRAM, 64)
|
||||
AM_RANGE(0x8e000000, 0x8e0fffff) AM_WRITE( real3d_display_list_w )
|
||||
AM_RANGE(0x98000000, 0x980fffff) AM_WRITE( real3d_polygon_ram_w )
|
||||
|
||||
AM_RANGE(0xf0040000, 0xf004003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
||||
AM_RANGE(0xf0080000, 0xf0080007) AM_READWRITE( model3_sound_r, model3_sound_w )
|
||||
AM_RANGE(0xf00c0000, 0xf00dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */
|
||||
AM_RANGE(0xf0100000, 0xf010003f) AM_READWRITE( model3_sys_r, model3_sys_w )
|
||||
AM_RANGE(0xf0140000, 0xf014003f) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
||||
AM_RANGE(0xf0040000, 0xf004003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
||||
AM_RANGE(0xf0080000, 0xf0080007) AM_MIRROR(0x0e000000) AM_READWRITE( model3_sound_r, model3_sound_w )
|
||||
AM_RANGE(0xf00c0000, 0xf00dffff) AM_MIRROR(0x0e000000) AM_RAM AM_SHARE("backup") /* backup SRAM */
|
||||
AM_RANGE(0xf0100000, 0xf010003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_sys_r, model3_sys_w )
|
||||
AM_RANGE(0xf0140000, 0xf014003f) AM_MIRROR(0x0e000000) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
||||
AM_RANGE(0xf0180000, 0xf019ffff) AM_MIRROR(0x0e000000) AM_RAM /* Security Board RAM */
|
||||
AM_RANGE(0xf01a0000, 0xf01a003f) AM_MIRROR(0x0e000000) AM_READ( model3_security_r ) /* Security board */
|
||||
|
||||
AM_RANGE(0xf1000000, 0xf10f7fff) AM_READWRITE( model3_char_r, model3_char_w ) /* character RAM */
|
||||
AM_RANGE(0xf10f8000, 0xf10fffff) AM_READWRITE( model3_tile_r, model3_tile_w ) /* tilemaps */
|
||||
AM_RANGE(0xf1100000, 0xf111ffff) AM_READWRITE( model3_palette_r, model3_palette_w ) AM_BASE(&paletteram64) /* palette */
|
||||
AM_RANGE(0xf1180000, 0xf11800ff) AM_READWRITE( model3_vid_reg_r, model3_vid_reg_w )
|
||||
|
||||
AM_RANGE(0xfe040000, 0xfe04003f) AM_READWRITE( model3_ctrl_r, model3_ctrl_w )
|
||||
AM_RANGE(0xfe080000, 0xfe080007) AM_READWRITE( model3_sound_r, model3_sound_w )
|
||||
AM_RANGE(0xfe0c0000, 0xfe0dffff) AM_RAM AM_BASE(&model3_backup) /* backup SRAM */
|
||||
AM_RANGE(0xfe100000, 0xfe10003f) AM_READWRITE( model3_sys_r, model3_sys_w )
|
||||
AM_RANGE(0xfe140000, 0xfe14003f) AM_READWRITE( model3_rtc_r, model3_rtc_w )
|
||||
|
||||
AM_RANGE(0xfe180000, 0xfe19ffff) AM_RAM /* Security Board RAM */
|
||||
AM_RANGE(0xfe1a0000, 0xfe1a003f) AM_READ( model3_security_r ) /* Security board */
|
||||
|
||||
AM_RANGE(0xff800000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -5007,7 +4985,7 @@ static MACHINE_CONFIG_START( model3_10, driver_device )
|
||||
MDRV_MACHINE_RESET(model3_10)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
MDRV_NVRAM_ADD_1FILL("backup")
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -5047,7 +5025,7 @@ static MACHINE_CONFIG_START( model3_15, driver_device )
|
||||
MDRV_MACHINE_RESET(model3_15)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
MDRV_NVRAM_ADD_1FILL("backup")
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -5087,7 +5065,7 @@ static MACHINE_CONFIG_START( model3_20, driver_device )
|
||||
MDRV_MACHINE_RESET(model3_20)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
MDRV_NVRAM_ADD_1FILL("backup")
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
@ -5127,7 +5105,7 @@ static MACHINE_CONFIG_START( model3_21, driver_device )
|
||||
MDRV_MACHINE_RESET(model3_21)
|
||||
|
||||
MDRV_EEPROM_ADD("eeprom", eeprom_intf)
|
||||
MDRV_NVRAM_HANDLER(model3)
|
||||
MDRV_NVRAM_ADD_1FILL("backup")
|
||||
|
||||
|
||||
MDRV_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -2,11 +2,12 @@ class bbusters_state : public driver_device
|
||||
{
|
||||
public:
|
||||
bbusters_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
: driver_device(machine, config),
|
||||
eprom_data(*this, "eeprom") { }
|
||||
|
||||
UINT16 *videoram;
|
||||
UINT16 *ram;
|
||||
UINT16 *eprom_data;
|
||||
optional_shared_ptr<UINT16> eprom_data;
|
||||
int sound_status;
|
||||
int gun_select;
|
||||
|
||||
|
@ -18,6 +18,8 @@ public:
|
||||
itech32_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
void nvram_init(nvram_device &nvram, void *base, size_t length);
|
||||
|
||||
UINT16 *videoram;
|
||||
};
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
#include "cpu/tms34010/tms34010.h"
|
||||
#include "machine/nvram.h"
|
||||
|
||||
/*----------- defined in machine/midyunit.c -----------*/
|
||||
|
||||
|
@ -74,6 +74,8 @@ static VIDEO_START( common )
|
||||
local_videoram = auto_alloc_array_clear(machine, UINT16, 0x80000/2);
|
||||
pen_map = auto_alloc_array(machine, pen_t, 65536);
|
||||
|
||||
machine->device<nvram_device>("nvram")->set_base(midyunit_cmos_ram, 0x2000 * 4);
|
||||
|
||||
/* reset all the globals */
|
||||
midyunit_cmos_page = 0;
|
||||
autoerase_enable = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user