From 79c16f42604ac1fcd03ee7a69b0637147fbdabdd Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Mon, 20 Sep 2010 05:12:16 +0000 Subject: [PATCH] Death to more NVRAM_HANDLERS. --- src/mame/drivers/playch10.c | 15 ++---------- src/mame/drivers/segaorun.c | 23 ++++--------------- src/mame/drivers/segas16a.c | 21 +++-------------- src/mame/drivers/segas16b.c | 22 ++++-------------- src/mame/drivers/segas18.c | 21 ++++------------- src/mame/drivers/segaxbd.c | 42 ++++++--------------------------- src/mame/drivers/segaybd.c | 23 +++---------------- src/mame/drivers/ssv.c | 42 ++++++++++----------------------- src/mame/drivers/tetrisp2.c | 38 +++++++++--------------------- src/mame/drivers/tomcat.c | 17 ++++---------- src/mame/drivers/vamphalf.c | 21 ++++------------- src/mame/drivers/videopkr.c | 41 ++++----------------------------- src/mame/drivers/zn.c | 46 +++++++------------------------------ src/mame/includes/leland.h | 1 - src/mame/includes/namcos2.h | 1 - src/mame/includes/ssv.h | 2 -- src/mame/machine/atarigen.h | 2 -- src/mame/machine/playch10.c | 4 ++++ 18 files changed, 76 insertions(+), 306 deletions(-) diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c index 6eca1acbee5..113409108b4 100644 --- a/src/mame/drivers/playch10.c +++ b/src/mame/drivers/playch10.c @@ -294,6 +294,7 @@ Notes & Todo: #include "video/ppu2c0x.h" #include "cpu/z80/z80.h" #include "machine/rp5h01.h" +#include "machine/nvram.h" #include "sound/dac.h" #include "sound/nes_apu.h" @@ -336,18 +337,6 @@ static WRITE8_HANDLER( sprite_dma_w ) ppu2c0x_spriteram_dma( space, space->machine->device("ppu"), source ); } -static NVRAM_HANDLER( playch10 ) -{ - UINT8 *mem = memory_region( machine, "cart" ) + 0x6000; - - if ( read_or_write ) - mame_fwrite( file, mem, 0x1000 ); - else if (file) - mame_fread( file, mem, 0x1000 ); - else - memset(mem, 0, 0x1000); -} - /* Only used in single monitor bios */ static UINT8 *timedata; @@ -733,7 +722,7 @@ static MACHINE_CONFIG_START( playch10, playch10_state ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( playchnv, playch10 ) - MDRV_NVRAM_HANDLER(playch10) + MDRV_NVRAM_ADD_0FILL("nvram") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( playch10_hboard, playch10 ) diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index 999c98f5cf0..4f4fcc59cad 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -274,6 +274,7 @@ Notes: #include "machine/fd1089.h" #include "machine/segaic16.h" #include "machine/8255ppi.h" +#include "machine/nvram.h" #include "cpu/m68000/m68000.h" #include "sound/2151intf.h" #include "sound/segapcm.h" @@ -414,6 +415,8 @@ static void outrun_generic_init(running_machine *machine) state->soundcpu = machine->device("soundcpu"); state->subcpu = machine->device("sub"); state->ppi8255 = machine->device("ppi8255"); + + machine->device("nvram")->set_base(workram, 0x8000); state_save_register_global(machine, state->adc_select); state_save_register_global(machine, state->vblank_irq_state); @@ -777,22 +780,6 @@ static WRITE16_HANDLER( shangon_custom_io_w ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( outrun ) -{ - if (read_or_write) - mame_fwrite(file, workram, 0x8000); - else if (file) - mame_fread(file, workram, 0x8000); -} - - - /************************************* * * Main CPU memory handlers @@ -1161,14 +1148,14 @@ static MACHINE_CONFIG_DERIVED( outrundx, outrun_base ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( outrun, outrun_base ) - MDRV_NVRAM_HANDLER(outrun) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SEGA16SP_ADD_OUTRUN("segaspr1") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( shangon, outrun_base ) - MDRV_NVRAM_HANDLER(outrun) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_SCREEN_MODIFY("screen") MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK_25MHz/4, 400, 0, 321, 262, 0, 224) diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 5ebad5a45e0..2a4f91af889 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -152,6 +152,7 @@ Tetris - - - - EPR12169 EPR12170 - #include "machine/segacrp2.h" #include "machine/fd1089.h" #include "machine/i8243.h" +#include "machine/nvram.h" #include "cpu/mcs48/mcs48.h" #include "sound/dac.h" #include "sound/2151intf.h" @@ -995,22 +996,6 @@ static INTERRUPT_GEN( mcu_irq_assert ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( system16a ) -{ - if (read_or_write) - mame_fwrite(file, workram, 0x4000); - else if (file) - mame_fread(file, workram, 0x4000); -} - - - /************************************* * * Main CPU memory handlers @@ -1026,7 +1011,7 @@ static ADDRESS_MAP_START( system16a_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x840000, 0x840fff) AM_MIRROR(0x3bf000) AM_RAM_WRITE(segaic16_paletteram_w) AM_BASE(&segaic16_paletteram) AM_RANGE(0xc40000, 0xc43fff) AM_MIRROR(0x39c000) AM_READWRITE(misc_io_r, misc_io_w) AM_RANGE(0xc60000, 0xc6ffff) AM_READ(watchdog_reset16_r) - AM_RANGE(0xc70000, 0xc73fff) AM_MIRROR(0x38c000) AM_RAM AM_BASE(&workram) + AM_RANGE(0xc70000, 0xc73fff) AM_MIRROR(0x38c000) AM_RAM AM_BASE(&workram) AM_SHARE("nvram") ADDRESS_MAP_END @@ -1974,7 +1959,7 @@ static MACHINE_CONFIG_START( system16a, segas1x_state ) MDRV_MACHINE_START(system16a) MDRV_MACHINE_RESET(system16a) - MDRV_NVRAM_HANDLER(system16a) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_PPI8255_ADD( "ppi8255", single_ppi_intf ) diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index 409b1489af1..05078c269bb 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -877,6 +877,7 @@ CPU - 317-0092 |-------------------------------------------------------------- #include "machine/fd1089.h" #include "machine/fd1094.h" #include "machine/mc8123.h" +#include "machine/nvram.h" #include "sound/2151intf.h" #include "sound/2413intf.h" #include "sound/upd7759.h" @@ -910,6 +911,7 @@ CPU - 317-0092 |-------------------------------------------------------------- static UINT16 *workram; + /************************************* * * Prototypes @@ -1082,6 +1084,8 @@ static void system16b_generic_init(running_machine *machine, int _rom_board) /* init the FD1094 */ fd1094_driver_init(machine, "maincpu", segaic16_memory_mapper_set_decrypted); + machine->device("nvram")->set_base(workram, 0x4000); + state_save_register_global_pointer(machine, segaic16_spriteram_0, 0x00800/2); state_save_register_global_pointer(machine, segaic16_paletteram, 0x01000/2); state_save_register_global_pointer(machine, segaic16_tileram_0, 0x10000/2); @@ -1783,22 +1787,6 @@ static WRITE16_HANDLER( sjryuko_custom_io_w ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( system16b ) -{ - if (read_or_write) - mame_fwrite(file, workram, 0x4000); - else if (file) - mame_fread(file, workram, 0x4000); -} - - - /************************************* * * Main CPU memory handlers @@ -3293,7 +3281,7 @@ static MACHINE_CONFIG_START( system16b, segas1x_state ) MDRV_CPU_IO_MAP(sound_portmap) MDRV_MACHINE_RESET(system16b) - MDRV_NVRAM_HANDLER(system16b) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_GFXDECODE(segas16b) diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 385a890b37e..585d1d5b9b6 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -33,6 +33,7 @@ #include "cpu/mcs51/mcs51.h" #include "deprecat.h" #include "machine/segaic16.h" +#include "machine/nvram.h" #include "includes/segas16.h" #include "includes/genesis.h" #include "sound/2612intf.h" @@ -178,6 +179,8 @@ static void system18_generic_init(running_machine *machine, int _rom_board) state->maincpu = machine->device("maincpu"); state->soundcpu = machine->device("soundcpu"); state->mcu = machine->device("mcu"); + + machine->device("nvram")->set_base(workram, 0x4000); state_save_register_global(machine, state->mcu_data); state_save_register_global(machine, state->lghost_value); @@ -597,22 +600,6 @@ static WRITE8_HANDLER( mcu_data_w ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( system18 ) -{ - if (read_or_write) - mame_fwrite(file, workram, 0x4000); - else if (file) - mame_fread(file, workram, 0x4000); -} - - - /************************************* * * Main CPU memory handlers @@ -1300,7 +1287,7 @@ static MACHINE_CONFIG_START( system18, segas1x_state ) MDRV_CPU_IO_MAP(sound_portmap) MDRV_MACHINE_RESET(system18) - MDRV_NVRAM_HANDLER(system18) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index c4429d9b251..49dbbc29a59 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -236,6 +236,7 @@ Notes: #include "includes/segas16.h" #include "cpu/m68000/m68000.h" #include "machine/segaic16.h" +#include "machine/nvram.h" #include "sound/2151intf.h" #include "sound/segapcm.h" #include "video/segaic16.h" @@ -246,14 +247,6 @@ Notes: -/************************************* - * - * Statics - * - *************************************/ - -static UINT16 *backupram1, *backupram2; - /************************************* * * Configuration @@ -712,28 +705,6 @@ static WRITE16_HANDLER( smgp_excs_w ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( xboard ) -{ - if (read_or_write) - { - mame_fwrite(file, backupram1, 0x4000); - mame_fwrite(file, backupram2, 0x4000); - } - else if (file) - { - mame_fread(file, backupram1, 0x4000); - mame_fread(file, backupram2, 0x4000); - } -} - - - /************************************* * * Main CPU memory handlers @@ -744,8 +715,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0x3fffff) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x080000, 0x083fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE("share1") AM_BASE(&backupram1) - AM_RANGE(0x0a0000, 0x0a3fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE("share2") AM_BASE(&backupram2) + AM_RANGE(0x080000, 0x083fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE("backup1") + AM_RANGE(0x0a0000, 0x0a3fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE("backup2") AM_RANGE(0x0c0000, 0x0cffff) AM_RAM_WRITE(segaic16_tileram_0_w) AM_BASE(&segaic16_tileram_0) AM_RANGE(0x0d0000, 0x0d0fff) AM_MIRROR(0x00f000) AM_RAM_WRITE(segaic16_textram_0_w) AM_BASE(&segaic16_textram_0) AM_RANGE(0x0e0000, 0x0e0007) AM_MIRROR(0x003ff8) AM_DEVREADWRITE("5248_main", segaic16_multiply_r, segaic16_multiply_w) @@ -767,8 +738,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x2ec000, 0x2ecfff) AM_MIRROR(0x001000) AM_RAM AM_SHARE("share5") AM_BASE(&segaic16_roadram_0) AM_RANGE(0x2ee000, 0x2effff) AM_READWRITE(segaic16_road_control_0_r, segaic16_road_control_0_w) // AM_RANGE(0x2f0000, 0x2f3fff) AM_READWRITE(excs_r, excs_w) - AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_SHARE("share1") - AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("share2") + AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_SHARE("backup1") + AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("backup2") ADDRESS_MAP_END @@ -1377,7 +1348,8 @@ static MACHINE_CONFIG_START( xboard, segas1x_state ) MDRV_CPU_IO_MAP(sound_portmap) MDRV_MACHINE_RESET(xboard) - MDRV_NVRAM_HANDLER(xboard) + MDRV_NVRAM_ADD_0FILL("backup1") + MDRV_NVRAM_ADD_0FILL("backup2") MDRV_QUANTUM_TIME(HZ(6000)) MDRV_315_5248_ADD("5248_main") diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index fd3bc43106d..776c9a80436 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -27,6 +27,7 @@ Known games currently not dumped: #include "includes/segas16.h" #include "cpu/m68000/m68000.h" #include "machine/segaic16.h" +#include "machine/nvram.h" #include "sound/2151intf.h" #include "sound/segapcm.h" #include "video/segaic16.h" @@ -48,8 +49,6 @@ Known games currently not dumped: * *************************************/ -static UINT16 *backupram; - /* callbacks to handle output */ typedef void (*yboard_output_callback)(UINT16 data); static yboard_output_callback ybd_output_cb1, ybd_output_cb2; @@ -410,22 +409,6 @@ static WRITE16_HANDLER( analog_w ) -/************************************* - * - * Capacitor-backed RAM - * - *************************************/ - -static NVRAM_HANDLER( yboard ) -{ - if (read_or_write) - mame_fwrite(file, backupram, 0x4000); - else if (file) - mame_fread(file, backupram, 0x4000); -} - - - /************************************* * * Main CPU memory handlers @@ -463,7 +446,7 @@ static ADDRESS_MAP_START( subx_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_SHARE("share1") AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(&segaic16_spriteram_1) AM_RANGE(0x1f8000, 0x1fbfff) AM_RAM - AM_RANGE(0x1fc000, 0x1fffff) AM_RAM AM_BASE(&backupram) + AM_RANGE(0x1fc000, 0x1fffff) AM_RAM AM_SHARE("backupram") ADDRESS_MAP_END @@ -1021,7 +1004,7 @@ static MACHINE_CONFIG_START( yboard, segas1x_state ) MDRV_MACHINE_START(yboard) MDRV_MACHINE_RESET(yboard) - MDRV_NVRAM_HANDLER(yboard) + MDRV_NVRAM_ADD_0FILL("backupram") MDRV_QUANTUM_TIME(HZ(6000)) MDRV_TIMER_ADD("int_timer", scanline_callback) diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index 50ca977f297..27a47517e40 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -184,6 +184,7 @@ Notes: #include "cpu/v60/v60.h" #include "deprecat.h" #include "machine/eeprom.h" +#include "machine/nvram.h" #include "sound/es5506.h" #include "includes/ssv.h" @@ -350,25 +351,6 @@ static MACHINE_RESET( ssv ) } -/*************************************************************************** - - - Non-Volatile RAM - - -***************************************************************************/ - -static NVRAM_HANDLER( ssv ) -{ - ssv_state *state = machine->driver_data(); - - if (read_or_write) - mame_fwrite(file, state->nvram, state->nvram_size); - else - if (file) - mame_fread(file, state->nvram, state->nvram_size); -} - /*************************************************************************** @@ -454,7 +436,7 @@ static ADDRESS_MAP_START( drifto94_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ?? AM_RANGE(0x510000, 0x510001) AM_READ(drifto94_rand_r ) // ?? AM_RANGE(0x520000, 0x520001) AM_READ(drifto94_rand_r ) // ?? - AM_RANGE(0x580000, 0x5807ff) AM_RAM AM_BASE_MEMBER(ssv_state, nvram) AM_SIZE_MEMBER(ssv_state, nvram_size) // NVRAM + AM_RANGE(0x580000, 0x5807ff) AM_RAM AM_SHARE("nvram") // NVRAM SSV_MAP( 0xc00000 ) ADDRESS_MAP_END @@ -695,7 +677,7 @@ static ADDRESS_MAP_START( meosism_map, ADDRESS_SPACE_PROGRAM, 16 ) // AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start // AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read once, value not used // AM_RANGE(0x500004, 0x500005) AM_WRITENOP // ? 0,58,18 - AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_BASE_MEMBER(ssv_state, nvram) AM_SIZE_MEMBER(ssv_state, nvram_size) // NVRAM + AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_SHARE("nvram") // NVRAM SSV_MAP( 0xf00000 ) ADDRESS_MAP_END @@ -883,7 +865,7 @@ static ADDRESS_MAP_START( sxyreact_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x500002, 0x500003) AM_READ(sxyreact_ballswitch_r) // ? AM_RANGE(0x500004, 0x500005) AM_READWRITE(sxyreact_dial_r, sxyreact_motor_w) // Dial Value (serial) AM_RANGE(0x520000, 0x520001) AM_WRITE(sxyreact_dial_w) // Dial Value (advance 1 bit) - AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_BASE_MEMBER(ssv_state, nvram) AM_SIZE_MEMBER(ssv_state, nvram_size) // NVRAM + AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_SHARE("nvram") // NVRAM SSV_MAP( 0xe00000 ) ADDRESS_MAP_END @@ -1055,7 +1037,7 @@ static ADDRESS_MAP_START( eaglshot_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x800001) AM_WRITE(eaglshot_gfxrom_w) AM_RANGE(0x900000, 0x900001) AM_WRITE(eaglshot_trackball_w) AM_RANGE(0xa00000, 0xbfffff) AM_READ(eaglshot_gfxrom_r) - AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_BASE_MEMBER(ssv_state, nvram) AM_SIZE_MEMBER(ssv_state, nvram_size) // NVRAM + AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("nvram") // NVRAM AM_RANGE(0xd00000, 0xd00001) AM_READ(eaglshot_trackball_r) SSV_MAP( 0xf00000 ) ADDRESS_MAP_END @@ -2723,7 +2705,7 @@ static MACHINE_CONFIG_DERIVED( drifto94, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(drifto94_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2804,7 +2786,7 @@ static MACHINE_CONFIG_DERIVED( meosism, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(meosism_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2876,7 +2858,7 @@ static MACHINE_CONFIG_DERIVED( stmblade, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(drifto94_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") MDRV_SCREEN_VISIBLE_AREA(0, (0xd6-0x26)*2-1, 0, (0xfe - 0x0e)-1) @@ -2910,7 +2892,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(eaglshot_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2928,7 +2910,7 @@ static MACHINE_CONFIG_DERIVED( sxyreact, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(sxyreact_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2941,7 +2923,7 @@ static MACHINE_CONFIG_DERIVED( sxyreac2, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(sxyreact_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2954,7 +2936,7 @@ static MACHINE_CONFIG_DERIVED( cairblad, ssv ) MDRV_CPU_MODIFY("maincpu") MDRV_CPU_PROGRAM_MAP(sxyreact_map) - MDRV_NVRAM_HANDLER(ssv) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_MODIFY("screen") diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index a11e2db7327..9c1b2cab144 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -39,6 +39,7 @@ Notes: #include "sound/ymz280b.h" #include "rocknms.lh" #include "includes/tetrisp2.h" +#include "machine/nvram.h" UINT16 tetrisp2_systemregs[0x10]; static UINT16 rocknms_sub_systemregs[0x10]; @@ -222,23 +223,6 @@ static READ16_HANDLER( tetrisp2_ip_1_word_r ) ***************************************************************************/ static UINT16 *tetrisp2_nvram; -static size_t tetrisp2_nvram_size; - -static NVRAM_HANDLER( tetrisp2 ) -{ - if (read_or_write) - mame_fwrite(file,tetrisp2_nvram,tetrisp2_nvram_size); - else - { - if (file) - mame_fread(file,tetrisp2_nvram,tetrisp2_nvram_size); - else - { - /* fill in the default values */ - memset(tetrisp2_nvram,0,tetrisp2_nvram_size); - } - } -} /* The game only ever writes even bytes and reads odd bytes */ @@ -322,7 +306,7 @@ static ADDRESS_MAP_START( tetrisp2_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE(tetrisp2_vram_rot_w) AM_BASE(&tetrisp2_vram_rot) // Rotation AM_RANGE(0x650000, 0x651fff) AM_RAM_WRITE(tetrisp2_vram_rot_w) // Rotation (mirror) AM_RANGE(0x800000, 0x800003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SIZE(&tetrisp2_nvram_size) // NVRAM + AM_RANGE(0x900000, 0x903fff) AM_READWRITE(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SHARE("nvram") // NVRAM AM_RANGE(0x904000, 0x907fff) AM_READWRITE(tetrisp2_nvram_r, tetrisp2_nvram_w) // NVRAM (mirror) AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ??? @@ -384,7 +368,7 @@ static ADDRESS_MAP_START( nndmseal_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x800003) AM_DEVREADWRITE8_MODERN("oki", okim6295_device, read, write, 0x00ff ) // Sound - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SIZE(&tetrisp2_nvram_size ) // NVRAM + AM_RANGE(0x900000, 0x903fff) AM_READWRITE(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SHARE("nvram") // NVRAM AM_RANGE(0xb00000, 0xb00001) AM_WRITE(nndmseal_coincounter_w) // Coin Counter AM_RANGE(0xb20000, 0xb20001) AM_WRITE(nndmseal_b20000_w) // ??? @@ -423,7 +407,7 @@ static ADDRESS_MAP_START( rockn1_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x408000, 0x409fff) AM_RAM // ??? AM_RANGE(0x500000, 0x50ffff) AM_RAM // Line AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE(tetrisp2_vram_rot_w) AM_BASE(&tetrisp2_vram_rot) // Rotation - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SIZE(&tetrisp2_nvram_size) // NVRAM + AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SHARE("nvram") // NVRAM AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank @@ -457,7 +441,7 @@ static ADDRESS_MAP_START( rockn2_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(tetrisp2_vram_fg_w) AM_BASE(&tetrisp2_vram_fg) // Foreground AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(tetrisp2_vram_bg_w) AM_BASE(&tetrisp2_vram_bg) // Background AM_RANGE(0x808000, 0x809fff) AM_RAM // ??? - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SIZE(&tetrisp2_nvram_size) // NVRAM + AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SHARE("nvram") // NVRAM AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn2_adpcmbank_w) // Sound Bank @@ -491,7 +475,7 @@ static ADDRESS_MAP_START( rocknms_main_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(tetrisp2_vram_fg_w) AM_BASE(&tetrisp2_vram_fg) // Foreground AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(tetrisp2_vram_bg_w) AM_BASE(&tetrisp2_vram_bg) // Background // AM_RANGE(0x808000, 0x809fff) AM_RAM // ??? - AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SIZE(&tetrisp2_nvram_size) // NVRAM + AM_RANGE(0x900000, 0x903fff) AM_READWRITE(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(&tetrisp2_nvram) AM_SHARE("nvram") // NVRAM AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank @@ -1113,7 +1097,7 @@ static MACHINE_CONFIG_START( tetrisp2, driver_device ) MDRV_CPU_PROGRAM_MAP(tetrisp2_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(tetrisp2) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_WATCHDOG_VBLANK_INIT(8) /* guess */ /* video hardware */ @@ -1146,7 +1130,7 @@ static MACHINE_CONFIG_START( nndmseal, driver_device ) MDRV_CPU_PROGRAM_MAP(nndmseal_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(tetrisp2) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1177,7 +1161,7 @@ static MACHINE_CONFIG_START( rockn, driver_device ) MDRV_CPU_PROGRAM_MAP(rockn1_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(tetrisp2) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1209,7 +1193,7 @@ static MACHINE_CONFIG_START( rockn2, driver_device ) MDRV_CPU_PROGRAM_MAP(rockn2_map) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) - MDRV_NVRAM_HANDLER(tetrisp2) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -1245,7 +1229,7 @@ static MACHINE_CONFIG_START( rocknms, driver_device ) MDRV_CPU_PROGRAM_MAP(rocknms_sub_map) MDRV_CPU_VBLANK_INT("lscreen", irq2_line_hold) - MDRV_NVRAM_HANDLER(tetrisp2) + MDRV_NVRAM_ADD_0FILL("nvram") /* video hardware */ diff --git a/src/mame/drivers/tomcat.c b/src/mame/drivers/tomcat.c index 99cc9c9ba90..1b609ef5fe4 100644 --- a/src/mame/drivers/tomcat.c +++ b/src/mame/drivers/tomcat.c @@ -30,6 +30,7 @@ #include "video/vector.h" #include "video/avgdvg.h" #include "machine/timekpr.h" +#include "machine/nvram.h" #include "machine/6532riot.h" #include "sound/pokey.h" #include "sound/tms5220.h" @@ -333,6 +334,7 @@ static MACHINE_START(tomcat) ((UINT16*)tomcat_shared_ram)[0x0003] = 0x0000; tomcat_nvram = auto_alloc_array(machine, UINT8, 0x800); + machine->device("nvram")->set_base(tomcat_nvram, 0x800); state_save_register_global_pointer(machine, tomcat_nvram, 0x800); state_save_register_global(machine, tomcat_control_num); @@ -342,17 +344,6 @@ static MACHINE_START(tomcat) dsp_BIO = 0; } -static NVRAM_HANDLER(tomcat) -{ - if (read_or_write) - mame_fwrite(file, tomcat_nvram, 0x800); - else - if (file) - mame_fread(file, tomcat_nvram, 0x800); - else - memset(tomcat_nvram, 0x00, 0x800); -} - static const riot6532_interface tomcat_riot6532_intf = { DEVCB_NULL, @@ -389,12 +380,12 @@ static MACHINE_CONFIG_START( tomcat, driver_device ) MDRV_CPU_PROGRAM_MAP( sound_map) MDRV_RIOT6532_ADD("riot", XTAL_14_31818MHz / 8, tomcat_riot6532_intf) - + MDRV_QUANTUM_TIME(HZ(4000)) MDRV_MACHINE_START(tomcat) - MDRV_NVRAM_HANDLER(tomcat) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_M48T02_ADD( "m48t02" ) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 3c7d818891f..05cbe91e08f 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -52,6 +52,7 @@ #include "cpu/mcs51/mcs51.h" #include "cpu/e132xs/e132xs.h" #include "machine/eeprom.h" +#include "machine/nvram.h" #include "sound/2151intf.h" #include "sound/okim6295.h" @@ -636,21 +637,6 @@ static GFXDECODE_START( vamphalf ) GFXDECODE_END -static NVRAM_HANDLER( finalgdr ) -{ - if (read_or_write) - { - mame_fwrite(file, finalgdr_backupram, 0x80*0x100); - } - else - { - if (file) - { - mame_fread(file, finalgdr_backupram, 0x80*0x100); - } - } -} - static ADDRESS_MAP_START( qs1000_prg_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE( 0x0000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -774,7 +760,7 @@ static MACHINE_CONFIG_DERIVED( finalgdr, common ) MDRV_CPU_IO_MAP(finalgdr_io) MDRV_CPU_VBLANK_INT("screen", irq1_line_hold) - MDRV_NVRAM_HANDLER(finalgdr) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_FRAGMENT_ADD(sound_ym_oki) MACHINE_CONFIG_END @@ -784,7 +770,7 @@ static MACHINE_CONFIG_DERIVED( mrkicker, common ) MDRV_CPU_PROGRAM_MAP(common_32bit_map) MDRV_CPU_IO_MAP(mrkicker_io) - MDRV_NVRAM_HANDLER(finalgdr) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_FRAGMENT_ADD(sound_ym_oki) MACHINE_CONFIG_END @@ -1872,6 +1858,7 @@ static DRIVER_INIT( finalgdr ) finalgdr_backupram_bank = 1; finalgdr_backupram = auto_alloc_array(machine, UINT8, 0x80*0x100); memory_install_read32_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x005e874, 0x005e877, 0, 0, finalgdr_speedup_r ); + machine->device("nvram")->set_base(finalgdr_backupram, 0x80*0x100); palshift = 0; flip_bit = 1; //? diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index a30eb37b81c..b3674bc5b9a 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -283,6 +283,7 @@ #include "emu.h" #include "cpu/mcs48/mcs48.h" #include "cpu/mcs51/mcs51.h" +#include "machine/nvram.h" #include "sound/ay8910.h" #include "sound/dac.h" #include "videopkr.lh" @@ -475,42 +476,6 @@ static VIDEO_UPDATE( videopkr ) return 0; } -/******************** -* NVRAM Handler * -********************/ - -static NVRAM_HANDLER( videopkr ) -{ - if (read_or_write) - { - mame_fwrite(file, data_ram, DATA_NVRAM_SIZE); - mame_fwrite(file, &count1, 8); - mame_fwrite(file, &count2, 8); - mame_fwrite(file, &count3, 8); - mame_fwrite(file, &count4, 8); - - } - else - { - if (file) - { - mame_fread(file, data_ram, DATA_NVRAM_SIZE); - mame_fread(file, &count1, 8); - mame_fread(file, &count2, 8); - mame_fread(file, &count3, 8); - mame_fread(file, &count4, 8); - } - else - { - memset(data_ram, 0, DATA_NVRAM_SIZE); - memset(data_ram, count0, 8); - memset(data_ram, count0, 8); - memset(data_ram, count0, 8); - memset(data_ram, count0, 8); - } - } -} - /************************* * R/W Handlers * @@ -1191,6 +1156,8 @@ static MACHINE_START(videopkr) p1 = 0xff; ant_cio = 0; count0 = 0; + + machine->device("nvram")->set_base(data_ram, sizeof(data_ram)); } static const ay8910_interface ay8910_config = @@ -1221,7 +1188,7 @@ static MACHINE_CONFIG_START( videopkr, driver_device ) MDRV_CPU_PROGRAM_MAP(i8039_sound_mem) MDRV_CPU_IO_MAP(i8039_sound_port) MDRV_MACHINE_START(videopkr) - MDRV_NVRAM_HANDLER(videopkr) + MDRV_NVRAM_ADD_0FILL("nvram") MDRV_TIMER_ADD_PERIODIC("t1_timer", sound_t1_callback, HZ(50)) diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 0fb894344e4..34e1090a936 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -15,6 +15,7 @@ #include "cpu/z80/z80.h" #include "includes/psx.h" #include "machine/at28c16.h" +#include "machine/nvram.h" #include "machine/mb3773.h" #include "machine/znsec.h" #include "machine/idectrl.h" @@ -1186,6 +1187,7 @@ static WRITE32_HANDLER( taitofx1a_ymsound_w ) static DRIVER_INIT( coh1000ta ) { taitofx1_eeprom_size1 = 0x200; taitofx1_eeprom1 = auto_alloc_array(machine, UINT8, taitofx1_eeprom_size1 ); + machine->device("eeprom1")->set_base(taitofx1_eeprom1, taitofx1_eeprom_size1); memory_install_read_bank ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f7fffff, 0, 0, "bank1" ); /* banked game rom */ memory_install_write32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fb40000, 0x1fb40003, 0, 0, bank_coh1000t_w ); /* bankswitch */ @@ -1202,22 +1204,6 @@ static MACHINE_RESET( coh1000ta ) zn_machine_init(machine); } -static NVRAM_HANDLER( coh1000ta ) -{ - if (read_or_write) - { - mame_fwrite(file, taitofx1_eeprom1, taitofx1_eeprom_size1); - } - else if (file) - { - mame_fread(file, taitofx1_eeprom1, taitofx1_eeprom_size1); - } - else - { - memset(taitofx1_eeprom1, 0, taitofx1_eeprom_size1); - } -} - static ADDRESS_MAP_START( fx1a_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */ AM_RANGE(0x0000, 0x7fff) AM_ROM @@ -1252,7 +1238,7 @@ static MACHINE_CONFIG_DERIVED( coh1000ta, zn1_1mb_vram ) MDRV_CPU_ADD("audiocpu", Z80, 16000000 / 4 ) /* 4 MHz */ MDRV_CPU_PROGRAM_MAP( fx1a_sound_map) MDRV_MACHINE_RESET( coh1000ta ) - MDRV_NVRAM_HANDLER( coh1000ta ) + MDRV_NVRAM_ADD_0FILL("eeprom1") MDRV_SOUND_ADD("ymsnd", YM2610B, 16000000/2) MDRV_SOUND_CONFIG(ym2610_config) @@ -1288,6 +1274,9 @@ static DRIVER_INIT( coh1000tb ) taitofx1_eeprom_size1 = 0x400; taitofx1_eeprom1 = auto_alloc_array(machine, UINT8, taitofx1_eeprom_size1 ); taitofx1_eeprom_size2 = 0x200; taitofx1_eeprom2 = auto_alloc_array(machine, UINT8, taitofx1_eeprom_size2 ); + machine->device("eeprom1")->set_base(taitofx1_eeprom1, taitofx1_eeprom_size1); + machine->device("eeprom2")->set_base(taitofx1_eeprom2, taitofx1_eeprom_size2); + memory_install_read_bank ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1f000000, 0x1f7fffff, 0, 0, "bank1" ); /* banked game rom */ memory_install_readwrite_bank( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fb00000, 0x1fb00000 + ( taitofx1_eeprom_size1 - 1 ), 0, 0, "bank2" ); memory_install_write32_handler ( cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x1fb40000, 0x1fb40003, 0, 0, bank_coh1000t_w ); /* bankswitch */ @@ -1307,30 +1296,11 @@ static MACHINE_RESET( coh1000tb ) zn_machine_init(machine); } -static NVRAM_HANDLER( coh1000tb ) -{ - if (read_or_write) - { - mame_fwrite(file, taitofx1_eeprom1, taitofx1_eeprom_size1); - mame_fwrite(file, taitofx1_eeprom2, taitofx1_eeprom_size2); - } - else if (file) - { - mame_fread(file, taitofx1_eeprom1, taitofx1_eeprom_size1); - mame_fread(file, taitofx1_eeprom2, taitofx1_eeprom_size2); - } - else - { - memset(taitofx1_eeprom1, 0, taitofx1_eeprom_size1); - memset(taitofx1_eeprom2, 0, taitofx1_eeprom_size2); - } -} - - static MACHINE_CONFIG_DERIVED( coh1000tb, zn1_2mb_vram ) MDRV_MACHINE_RESET( coh1000tb ) - MDRV_NVRAM_HANDLER( coh1000tb ) + MDRV_NVRAM_ADD_0FILL("eeprom1") + MDRV_NVRAM_ADD_0FILL("eeprom2") MDRV_MB3773_ADD("mb3773") diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index 3203c7be74b..7041c1c3262 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -71,7 +71,6 @@ WRITE8_DEVICE_HANDLER( ataxx_eeprom_w ); WRITE8_HANDLER( leland_battery_ram_w ); WRITE8_HANDLER( ataxx_battery_ram_w ); -NVRAM_HANDLER( leland ); READ8_HANDLER( leland_master_analog_key_r ); WRITE8_HANDLER( leland_master_analog_key_w ); diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index 654d1b39117..15039bfcca7 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -148,7 +148,6 @@ READ16_HANDLER( namcos2_flap_prot_r ); /**************************************************************/ #define NAMCOS2_68K_eeprom_W namcos2_68k_eeprom_w #define NAMCOS2_68K_eeprom_R namcos2_68k_eeprom_r -NVRAM_HANDLER( namcos2 ); WRITE16_HANDLER( namcos2_68k_eeprom_w ); READ16_HANDLER( namcos2_68k_eeprom_r ); diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h index 7d4e89c7584..9e2a360ca7e 100644 --- a/src/mame/includes/ssv.h +++ b/src/mame/includes/ssv.h @@ -20,8 +20,6 @@ public: UINT16 irq_enable; UINT16 *mainram; - UINT16 *nvram; - size_t nvram_size; UINT16 *dsp_ram; UINT16 *eaglshot_gfxram; diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h index 9d021081a7b..3f4b04c1e24 100644 --- a/src/mame/machine/atarigen.h +++ b/src/mame/machine/atarigen.h @@ -183,8 +183,6 @@ WRITE32_HANDLER( atarigen_eeprom_enable32_w ); WRITE32_HANDLER( atarigen_eeprom32_w ); READ32_HANDLER( atarigen_eeprom_upper32_r ); -NVRAM_HANDLER( atarigen ); - /*--------------------------------------------------------------- SLAPSTIC HANDLING diff --git a/src/mame/machine/playch10.c b/src/mame/machine/playch10.c index d3b37c99826..8562f7109fb 100644 --- a/src/mame/machine/playch10.c +++ b/src/mame/machine/playch10.c @@ -1,6 +1,7 @@ #include "emu.h" #include "video/ppu2c0x.h" #include "machine/rp5h01.h" +#include "machine/nvram.h" #include "includes/playch10.h" /* prototypes */ @@ -91,6 +92,9 @@ MACHINE_START( pc10 ) set_videoram_bank(machine, 0, 8, 0, 8); else pc10_set_videorom_bank(machine, 0, 8, 0, 8); + nvram_device *nvram = machine->device("nvram"); + if (nvram != NULL) + nvram->set_base(memory_region( machine, "cart" ) + 0x6000, 0x1000); } MACHINE_START( playch10_hboard )