mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
Allow passing std::unique_ptr<TYPE> directly to save_pointer and remove now-superfluous .get() in many drivers/devices (nw)
This commit is contained in:
parent
297b99c0fa
commit
b3afc83bde
@ -69,7 +69,7 @@ void einstein_silicon_disc_device::device_start()
|
||||
memset(m_ram.get(), 0xff, 0x40000);
|
||||
|
||||
// register for save states
|
||||
save_pointer(NAME(m_ram.get()), 0x40000);
|
||||
save_pointer(NAME(m_ram), 0x40000);
|
||||
save_item(NAME(m_sector));
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ void einstein_speculator_device::device_start()
|
||||
memset(m_ram.get(), 0xff, 0x800);
|
||||
|
||||
// register for save states
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
save_item(NAME(m_nmisel));
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ void tk02_device::device_start()
|
||||
memset(m_ram.get(), 0xff, 0x800);
|
||||
|
||||
// register for save states
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
save_item(NAME(m_de));
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ void imm4_22_device::device_start()
|
||||
save_item(NAME(m_rom_mirror));
|
||||
save_item(NAME(m_memory));
|
||||
save_item(NAME(m_status));
|
||||
save_pointer(NAME(m_prom.get()), 1024U);
|
||||
save_pointer(NAME(m_prom), 1024U);
|
||||
}
|
||||
|
||||
void imm4_22_device::device_reset()
|
||||
|
@ -45,7 +45,7 @@ void imm6_26_device::device_start()
|
||||
{
|
||||
allocate();
|
||||
|
||||
save_pointer(NAME(m_data.get()), 4096U);
|
||||
save_pointer(NAME(m_data), 4096U);
|
||||
}
|
||||
|
||||
|
||||
|
@ -409,8 +409,8 @@ void gt_device_base::device_start()
|
||||
gt.buffer.reset(new u8[GT_BUFFER_SIZE * 2]);
|
||||
gt.mask.reset(new u8[GT_BUFFER_SIZE * 2]);
|
||||
|
||||
save_pointer(gt.buffer.get(), util::string_format("buffer%i", i).c_str(), GT_BUFFER_SIZE * 2);
|
||||
save_pointer(gt.mask.get(), util::string_format("mask%i", i).c_str(), GT_BUFFER_SIZE * 2);
|
||||
save_pointer(NAME(gt.buffer), GT_BUFFER_SIZE * 2, i);
|
||||
save_pointer(NAME(gt.mask), GT_BUFFER_SIZE * 2, i);
|
||||
}
|
||||
|
||||
// allocate timers
|
||||
|
@ -154,7 +154,7 @@ ioport_constructor s100_8k_sc_device::device_input_ports() const
|
||||
void s100_8k_sc_device::device_start()
|
||||
{
|
||||
m_ram = make_unique_clear<u8[]>(0x2000);
|
||||
save_pointer(NAME(m_ram.get()), 0x2000);
|
||||
save_pointer(NAME(m_ram), 0x2000);
|
||||
}
|
||||
|
||||
|
||||
|
@ -441,7 +441,7 @@ void sns_rom_sdd1_device::device_start()
|
||||
save_item(NAME(m_dma[i].size), i);
|
||||
}
|
||||
|
||||
save_pointer(NAME(m_buffer.data.get()), 0x10000);
|
||||
save_pointer(NAME(m_buffer.data), 0x10000);
|
||||
save_item(NAME(m_buffer.offset));
|
||||
save_item(NAME(m_buffer.size));
|
||||
save_item(NAME(m_buffer.ready));
|
||||
|
@ -40,7 +40,7 @@ sv803_device::sv803_device(const machine_config &mconfig, const char *tag, devic
|
||||
void sv803_device::device_start()
|
||||
{
|
||||
// register for savestates
|
||||
save_pointer(NAME(m_ram.get()), 0x4000);
|
||||
save_pointer(NAME(m_ram), 0x4000);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -81,7 +81,7 @@ void sv806_device::device_start()
|
||||
{
|
||||
// register for savestates
|
||||
save_item(NAME(m_ram_enabled));
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
}
|
||||
|
||||
|
||||
|
@ -99,8 +99,8 @@ void sv807_device::device_start()
|
||||
save_item(NAME(m_bk22));
|
||||
save_item(NAME(m_bk31));
|
||||
save_item(NAME(m_bk32));
|
||||
save_pointer(NAME(m_ram_bank1.get()), 0x8000);
|
||||
save_pointer(NAME(m_ram_bank2.get()), 0x8000);
|
||||
save_pointer(NAME(m_ram_bank1), 0x8000);
|
||||
save_pointer(NAME(m_ram_bank2), 0x8000);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -32,7 +32,7 @@ void graph_link_hle_device::device_start()
|
||||
{
|
||||
m_buffer = std::make_unique<u8 []>(BUFLEN);
|
||||
|
||||
save_pointer(NAME(m_buffer.get()), BUFLEN);
|
||||
save_pointer(NAME(m_buffer), BUFLEN);
|
||||
}
|
||||
|
||||
|
||||
|
@ -586,9 +586,9 @@ void es5510_device::device_start() {
|
||||
save_item(NAME(dol));
|
||||
save_item(NAME(dol_count));
|
||||
|
||||
save_pointer(NAME(gpr.get()), 0xc0);
|
||||
save_pointer(NAME(instr.get()), 160);
|
||||
save_pointer(NAME(dram.get()), DRAM_SIZE);
|
||||
save_pointer(NAME(gpr), 0xc0);
|
||||
save_pointer(NAME(instr), 160);
|
||||
save_pointer(NAME(dram), DRAM_SIZE);
|
||||
|
||||
save_item(NAME(dol_latch));
|
||||
save_item(NAME(dil_latch));
|
||||
|
@ -229,9 +229,9 @@ void mcs40_cpu_device_base::device_start()
|
||||
save_item(NAME(m_4289_first));
|
||||
save_item(NAME(m_a));
|
||||
save_item(NAME(m_c));
|
||||
save_pointer(NAME(m_addr_stack.get()), m_stack_ptr_mask + 1);
|
||||
save_pointer(NAME(m_addr_stack), m_stack_ptr_mask + 1);
|
||||
save_item(NAME(m_stack_ptr));
|
||||
save_pointer(NAME(m_index_regs.get()), m_index_reg_cnt >> 1);
|
||||
save_pointer(NAME(m_index_regs), m_index_reg_cnt >> 1);
|
||||
save_item(NAME(m_index_reg_bank));
|
||||
save_item(NAME(m_cr));
|
||||
save_item(NAME(m_pending_cr3));
|
||||
|
@ -75,7 +75,7 @@ void base_28fxxx_device::device_start()
|
||||
m_data = std::make_unique<u8[]>(m_size);
|
||||
|
||||
save_item(NAME(m_program_power));
|
||||
save_pointer(NAME(m_data.get()), m_size);
|
||||
save_pointer(NAME(m_data), m_size);
|
||||
|
||||
save_item(NAME(m_state));
|
||||
save_item(NAME(m_address_latch));
|
||||
|
@ -16,7 +16,7 @@
|
||||
MACROS
|
||||
***************************************************************************/
|
||||
|
||||
//#define VERBOSE 1
|
||||
#define VERBOSE 1
|
||||
//#define LOG_OUTPUT_STREAM std::cout
|
||||
#include "logmacro.h"
|
||||
|
||||
@ -582,15 +582,20 @@ void acia6850_device::output_irq(int irq)
|
||||
{
|
||||
m_irq = irq;
|
||||
|
||||
if (irq)
|
||||
{
|
||||
m_status &= ~SR_IRQ;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_status |= SR_IRQ;
|
||||
}
|
||||
|
||||
m_irq_handler(!m_irq);
|
||||
machine().scheduler().synchronize(timer_expired_delegate(FUNC(acia6850_device::delayed_output_irq), this), irq);
|
||||
}
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(acia6850_device::delayed_output_irq)
|
||||
{
|
||||
if (m_irq)
|
||||
{
|
||||
m_status &= ~SR_IRQ;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_status |= SR_IRQ;
|
||||
}
|
||||
|
||||
m_irq_handler(!m_irq);
|
||||
}
|
||||
|
@ -63,6 +63,8 @@ private:
|
||||
void output_rts(int txd);
|
||||
void output_irq(int irq);
|
||||
|
||||
TIMER_CALLBACK_MEMBER(delayed_output_irq);
|
||||
|
||||
enum
|
||||
{
|
||||
SR_RDRF = 0x01,
|
||||
|
@ -181,7 +181,7 @@ void eeprom_base_device::device_start()
|
||||
|
||||
// save states
|
||||
save_item(NAME(m_completion_time));
|
||||
save_pointer(m_data.get(), "m_data", size);
|
||||
save_pointer(NAME(m_data), size);
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,7 +72,7 @@ void er1400_device::device_start()
|
||||
save_item(NAME(m_address_register));
|
||||
|
||||
m_data_array = std::make_unique<u16[]>(100);
|
||||
save_pointer(m_data_array.get(), "m_data_array", 100);
|
||||
save_pointer(NAME(m_data_array), 100);
|
||||
|
||||
m_data_propagation_timer = timer_alloc(PROPAGATION_TIMER);
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ void mb8421_device::device_start()
|
||||
m_ram = make_unique_clear<u8[]>(0x800);
|
||||
|
||||
// state save
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
}
|
||||
|
||||
void mb8421_mb8431_16_device::device_start()
|
||||
@ -75,7 +75,7 @@ void mb8421_mb8431_16_device::device_start()
|
||||
m_ram = make_unique_clear<u16[]>(0x800);
|
||||
|
||||
// state save
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -167,7 +167,7 @@ void ram_device::device_start()
|
||||
|
||||
// register for state saving
|
||||
save_item(NAME(m_size));
|
||||
save_pointer(NAME(m_pointer.get()), m_size);
|
||||
save_pointer(NAME(m_pointer), m_size);
|
||||
}
|
||||
|
||||
|
||||
|
@ -166,7 +166,7 @@ void sdlc_logger_device::device_start()
|
||||
save_item(NAME(m_current_clock));
|
||||
save_item(NAME(m_frame_bits));
|
||||
save_item(NAME(m_expected_fcs));
|
||||
save_pointer(NAME(m_buffer.get()), BUFFER_BYTES);
|
||||
save_pointer(NAME(m_buffer), BUFFER_BYTES);
|
||||
}
|
||||
|
||||
void sdlc_logger_device::device_reset()
|
||||
|
@ -347,7 +347,7 @@ void generic_terminal_device::device_start()
|
||||
m_buffer = std::make_unique<uint8_t []>(m_width * m_height);
|
||||
m_bell_timer = timer_alloc(BELL_TIMER_ID);
|
||||
m_keyboard_cb.bind_relative_to(*owner());
|
||||
save_pointer(NAME(m_buffer.get()), m_width * m_height);
|
||||
save_pointer(NAME(m_buffer), m_width * m_height);
|
||||
save_item(NAME(m_x_pos));
|
||||
save_item(NAME(m_framecnt));
|
||||
save_item(NAME(m_y_pos));
|
||||
|
@ -53,8 +53,8 @@ void x2212_device::device_start()
|
||||
|
||||
save_item(NAME(m_store));
|
||||
save_item(NAME(m_array_recall));
|
||||
save_pointer(NAME(m_sram.get()), m_size_data);
|
||||
save_pointer(NAME(m_e2prom.get()), m_size_data);
|
||||
save_pointer(NAME(m_sram), m_size_data);
|
||||
save_pointer(NAME(m_e2prom), m_size_data);
|
||||
}
|
||||
|
||||
|
||||
|
@ -47,7 +47,7 @@ void cdda_device::device_start()
|
||||
save_item( NAME(m_audio_ended_normally) );
|
||||
save_item( NAME(m_audio_lba) );
|
||||
save_item( NAME(m_audio_length) );
|
||||
save_pointer( NAME(m_audio_cache.get()), CD_MAX_SECTOR_DATA * MAX_SECTORS );
|
||||
save_pointer( NAME(m_audio_cache), CD_MAX_SECTOR_DATA * MAX_SECTORS );
|
||||
save_item( NAME(m_audio_samples) );
|
||||
save_item( NAME(m_audio_bptr) );
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ void dmadac_sound_device::device_start()
|
||||
save_item(NAME(m_volume));
|
||||
save_item(NAME(m_enabled));
|
||||
save_item(NAME(m_frequency));
|
||||
save_pointer(NAME(m_buffer.get()), BUFFER_SIZE);
|
||||
save_pointer(NAME(m_buffer), BUFFER_SIZE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -269,7 +269,7 @@ void es5506_device::device_start()
|
||||
save_item(NAME(m_lrend));
|
||||
save_item(NAME(m_irqv));
|
||||
|
||||
save_pointer(NAME(m_scratch.get()), 2 * MAX_SAMPLE_CHUNK);
|
||||
save_pointer(NAME(m_scratch), 2 * MAX_SAMPLE_CHUNK);
|
||||
|
||||
for (j = 0; j < 32; j++)
|
||||
{
|
||||
@ -401,7 +401,7 @@ void es5505_device::device_start()
|
||||
save_item(NAME(m_lrend));
|
||||
save_item(NAME(m_irqv));
|
||||
|
||||
save_pointer(NAME(m_scratch.get()), 2 * MAX_SAMPLE_CHUNK);
|
||||
save_pointer(NAME(m_scratch), 2 * MAX_SAMPLE_CHUNK);
|
||||
|
||||
for (j = 0; j < 32; j++)
|
||||
{
|
||||
|
@ -329,7 +329,7 @@ void k054539_device::init_chip()
|
||||
save_item(NAME(flags));
|
||||
|
||||
save_item(NAME(regs));
|
||||
save_pointer(NAME(ram.get()), 0x4000);
|
||||
save_pointer(NAME(ram), 0x4000);
|
||||
save_item(NAME(reverb_pos));
|
||||
save_item(NAME(cur_ptr));
|
||||
save_item(NAME(cur_limit));
|
||||
|
@ -42,7 +42,7 @@ void segapcm_device::device_start()
|
||||
m_stream = stream_alloc(0, 2, clock() / 128);
|
||||
|
||||
save_item(NAME(m_low));
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,7 +85,7 @@ void sp0256_device::device_start()
|
||||
/* Allocate a scratch buffer for generating ~10kHz samples. */
|
||||
/* -------------------------------------------------------------------- */
|
||||
m_scratch = std::make_unique<int16_t[]>(SCBUF_SIZE);
|
||||
save_pointer(NAME(m_scratch.get()), SCBUF_SIZE);
|
||||
save_pointer(NAME(m_scratch), SCBUF_SIZE);
|
||||
|
||||
m_sc_head = m_sc_tail = 0;
|
||||
|
||||
|
@ -92,8 +92,8 @@ void zsg2_device::device_start()
|
||||
m_full_samples = make_unique_clear<int16_t[]>(m_mem_blocks * 4 + 4); // +4 is for empty block
|
||||
|
||||
// register for savestates
|
||||
save_pointer(NAME(m_mem_copy.get()), m_mem_blocks / sizeof(uint32_t));
|
||||
save_pointer(NAME(m_full_samples.get()), (m_mem_blocks * 4 + 4) / sizeof(int16_t));
|
||||
save_pointer(NAME(m_mem_copy), m_mem_blocks / sizeof(uint32_t));
|
||||
save_pointer(NAME(m_full_samples), (m_mem_blocks * 4 + 4) / sizeof(int16_t));
|
||||
save_item(NAME(m_read_address));
|
||||
|
||||
for (int ch = 0; ch < 48; ch++)
|
||||
|
@ -253,11 +253,11 @@ void sega315_5313_device::device_start()
|
||||
memset(m_internal_sprite_attribute_table.get(), 0x00, 0x400);
|
||||
|
||||
|
||||
save_pointer(NAME(m_vram.get()), 0x10000/2);
|
||||
save_pointer(NAME(m_cram.get()), 0x80/2);
|
||||
save_pointer(NAME(m_vsram.get()), 0x80/2);
|
||||
save_pointer(NAME(m_regs.get()), 0x40/2);
|
||||
save_pointer(NAME(m_internal_sprite_attribute_table.get()), 0x400/2);
|
||||
save_pointer(NAME(m_vram), 0x10000/2);
|
||||
save_pointer(NAME(m_cram), 0x80/2);
|
||||
save_pointer(NAME(m_vsram), 0x80/2);
|
||||
save_pointer(NAME(m_regs), 0x40/2);
|
||||
save_pointer(NAME(m_internal_sprite_attribute_table), 0x400/2);
|
||||
|
||||
save_item(NAME(m_command_pending));
|
||||
save_item(NAME(m_command_part1));
|
||||
@ -305,16 +305,16 @@ void sega315_5313_device::device_start()
|
||||
|
||||
// FIXME: are these all needed? I'm pretty sure some of these (most?) are just helpers which don't need to be saved,
|
||||
// but better safe than sorry...
|
||||
save_pointer(NAME(m_sprite_renderline.get()), 1024);
|
||||
save_pointer(NAME(m_highpri_renderline.get()), 320);
|
||||
save_pointer(NAME(m_video_renderline.get()), 320/4);
|
||||
save_pointer(NAME(m_palette_lookup.get()), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_sprite.get()), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_shadow.get()), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_highlight.get()), 0x40);
|
||||
save_pointer(NAME(m_render_line_raw.get()), 320/2);
|
||||
save_pointer(NAME(m_sprite_renderline), 1024);
|
||||
save_pointer(NAME(m_highpri_renderline), 320);
|
||||
save_pointer(NAME(m_video_renderline), 320/4);
|
||||
save_pointer(NAME(m_palette_lookup), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_sprite), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_shadow), 0x40);
|
||||
save_pointer(NAME(m_palette_lookup_highlight), 0x40);
|
||||
save_pointer(NAME(m_render_line_raw), 320/2);
|
||||
if (m_use_alt_timing)
|
||||
save_pointer(NAME(m_render_line.get()), 320/2);
|
||||
save_pointer(NAME(m_render_line), 320/2);
|
||||
|
||||
m_irq6_on_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega315_5313_device::irq6_on_timer_callback), this));
|
||||
m_irq4_on_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sega315_5313_device::irq4_on_timer_callback), this));
|
||||
|
@ -146,7 +146,7 @@ void bt45x_rgb_device_base::device_start()
|
||||
|
||||
m_color_ram = std::make_unique<std::array<u8, 3>[]>(m_palette_colors + m_overlay_colors);
|
||||
|
||||
//save_pointer(NAME(m_color_ram.get()), m_palette_colors + m_overlay_colors);
|
||||
//save_pointer(NAME(m_color_ram), m_palette_colors + m_overlay_colors);
|
||||
}
|
||||
|
||||
void bt45x_mono_device_base::device_start()
|
||||
@ -155,7 +155,7 @@ void bt45x_mono_device_base::device_start()
|
||||
|
||||
m_color_ram = std::make_unique<u8[]>(m_palette_colors + m_overlay_colors);
|
||||
|
||||
save_pointer(NAME(m_color_ram.get()), m_palette_colors + m_overlay_colors);
|
||||
save_pointer(NAME(m_color_ram), m_palette_colors + m_overlay_colors);
|
||||
}
|
||||
|
||||
void bt45x_device_base::device_reset()
|
||||
|
@ -61,7 +61,7 @@ void epic12_device::device_start()
|
||||
save_item(NAME(m_gfx_scroll_0_y_shadowcopy));
|
||||
save_item(NAME(m_gfx_scroll_1_x_shadowcopy));
|
||||
save_item(NAME(m_gfx_scroll_1_y_shadowcopy));
|
||||
save_pointer(NAME(m_ram16_copy.get()), m_main_ramsize/2);
|
||||
save_pointer(NAME(m_ram16_copy), m_main_ramsize/2);
|
||||
save_item(NAME(*m_bitmaps));
|
||||
}
|
||||
|
||||
|
@ -369,8 +369,8 @@ void dmg_ppu_device::common_start()
|
||||
|
||||
m_program_space = &m_lr35902->space(AS_PROGRAM);
|
||||
|
||||
save_pointer(NAME(m_oam.get()), m_oam_size);
|
||||
save_pointer(NAME(m_vram.get()), m_vram_size);
|
||||
save_pointer(NAME(m_oam), m_oam_size);
|
||||
save_pointer(NAME(m_vram), m_vram_size);
|
||||
save_item(NAME(m_window_lines_drawn));
|
||||
save_item(NAME(m_vid_regs));
|
||||
save_item(NAME(m_bg_zbuf));
|
||||
@ -515,7 +515,7 @@ void sgb_ppu_device::device_start()
|
||||
common_start();
|
||||
|
||||
m_sgb_tile_data = make_unique_clear<uint8_t[]>(0x2000);
|
||||
save_pointer(NAME(m_sgb_tile_data.get()), 0x2000);
|
||||
save_pointer(NAME(m_sgb_tile_data), 0x2000);
|
||||
|
||||
memset(m_sgb_tile_map, 0, sizeof(m_sgb_tile_map));
|
||||
|
||||
|
@ -1772,9 +1772,9 @@ void gba_lcd_device::device_start()
|
||||
|
||||
save_item(NAME(m_regs));
|
||||
|
||||
save_pointer(NAME(m_pram.get()), 0x400 / 4);
|
||||
save_pointer(NAME(m_vram.get()), 0x18000 / 4);
|
||||
save_pointer(NAME(m_oam.get()), 0x400 / 4);
|
||||
save_pointer(NAME(m_pram), 0x400 / 4);
|
||||
save_pointer(NAME(m_vram), 0x18000 / 4);
|
||||
save_pointer(NAME(m_oam), 0x400 / 4);
|
||||
|
||||
save_item(NAME(m_bg2x.status));
|
||||
save_item(NAME(m_bg2x.update));
|
||||
|
@ -48,7 +48,7 @@ void gf4500_device::device_start()
|
||||
{
|
||||
m_data = make_unique_clear<uint32_t[]>(0x140000/4);
|
||||
|
||||
save_pointer(NAME(m_data.get()), 0x140000/4);
|
||||
save_pointer(NAME(m_data), 0x140000/4);
|
||||
save_item(NAME(m_screen_x));
|
||||
save_item(NAME(m_screen_y));
|
||||
save_item(NAME(m_screen_x_max));
|
||||
|
@ -842,7 +842,7 @@ void huc6270_device::device_start()
|
||||
m_vram = make_unique_clear<uint16_t[]>(m_vram_size/sizeof(uint16_t));
|
||||
m_vram_mask = (m_vram_size >> 1) - 1;
|
||||
|
||||
save_pointer(NAME(m_vram.get()), m_vram_size/sizeof(uint16_t));
|
||||
save_pointer(NAME(m_vram), m_vram_size/sizeof(uint16_t));
|
||||
|
||||
save_item(NAME(m_register_index));
|
||||
save_item(NAME(m_mawr));
|
||||
|
@ -186,8 +186,8 @@ void mb_vcu_device::device_start()
|
||||
}
|
||||
|
||||
save_item(NAME(m_status));
|
||||
save_pointer(NAME(m_ram.get()), 0x800);
|
||||
save_pointer(NAME(m_palram.get()), 0x100);
|
||||
save_pointer(NAME(m_ram), 0x800);
|
||||
save_pointer(NAME(m_palram), 0x100);
|
||||
save_item(NAME(m_param_offset_latch));
|
||||
save_item(NAME(m_xpos));
|
||||
save_item(NAME(m_ypos));
|
||||
|
@ -270,9 +270,9 @@ void ppu2c0x_device::device_start()
|
||||
save_item(NAME(m_palette_ram));
|
||||
save_item(NAME(m_draw_phase));
|
||||
save_item(NAME(m_tilecount));
|
||||
save_pointer(NAME(m_spriteram.get()), SPRITERAM_SIZE);
|
||||
save_pointer(NAME(m_colortable.get()), ARRAY_LENGTH(default_colortable));
|
||||
save_pointer(NAME(m_colortable_mono.get()), ARRAY_LENGTH(default_colortable_mono));
|
||||
save_pointer(NAME(m_spriteram), SPRITERAM_SIZE);
|
||||
save_pointer(NAME(m_colortable), ARRAY_LENGTH(default_colortable));
|
||||
save_pointer(NAME(m_colortable_mono), ARRAY_LENGTH(default_colortable_mono));
|
||||
save_item(NAME(*m_bitmap));
|
||||
}
|
||||
|
||||
|
@ -154,7 +154,7 @@ void ppu_vt03_device::device_start()
|
||||
ppu2c0x_device::device_start();
|
||||
|
||||
m_newpal = std::make_unique<uint8_t[]>(0x100);
|
||||
save_pointer(&m_newpal[0], "m_newpal", 0x100);
|
||||
save_pointer(NAME(m_newpal), 0x100);
|
||||
|
||||
save_item(NAME(m_201x_regs));
|
||||
}
|
||||
|
@ -570,7 +570,7 @@ void psxgpu_device::psx_gpu_init( int n_gputype )
|
||||
// icky!!!
|
||||
machine().save().save_memory( this, "globals", nullptr, 0, "m_packet", (uint8_t *)&m_packet, 1, sizeof( m_packet ) );
|
||||
|
||||
save_pointer(NAME(p_vram.get()), width * height );
|
||||
save_pointer(NAME(p_vram), width * height );
|
||||
save_item(NAME(n_gpu_buffer_offset));
|
||||
save_item(NAME(n_vramx));
|
||||
save_item(NAME(n_vramy));
|
||||
|
@ -360,9 +360,9 @@ void snes_ppu_device::device_start()
|
||||
|
||||
save_item(NAME(m_regs));
|
||||
|
||||
save_pointer(NAME(m_vram.get()), SNES_VRAM_SIZE);
|
||||
save_pointer(NAME(m_cgram.get()), SNES_CGRAM_SIZE/2);
|
||||
save_pointer(NAME(m_oam_ram.get()), SNES_OAM_SIZE/2);
|
||||
save_pointer(NAME(m_vram), SNES_VRAM_SIZE);
|
||||
save_pointer(NAME(m_cgram), SNES_CGRAM_SIZE/2);
|
||||
save_pointer(NAME(m_oam_ram), SNES_OAM_SIZE/2);
|
||||
}
|
||||
|
||||
void snes_ppu_device::device_reset()
|
||||
|
@ -2217,8 +2217,8 @@ int saturn_state::stv_vdp1_start ( void )
|
||||
m_vdp1.user_cliprect.set(0, 512, 0, 256);
|
||||
|
||||
// save state
|
||||
save_pointer(NAME(m_vdp1_regs.get()), 0x020/2);
|
||||
save_pointer(NAME(m_vdp1_vram.get()), 0x100000/4);
|
||||
save_pointer(NAME(m_vdp1_regs), 0x020/2);
|
||||
save_pointer(NAME(m_vdp1_vram), 0x100000/4);
|
||||
save_item(NAME(m_vdp1.fbcr_accessed));
|
||||
save_item(NAME(m_vdp1.framebuffer_current_display));
|
||||
save_item(NAME(m_vdp1.framebuffer_current_draw));
|
||||
|
@ -6350,9 +6350,9 @@ int saturn_state::stv_vdp2_start ( void )
|
||||
stv_rbg_cache_data.is_cache_dirty = 3;
|
||||
memset( &stv_vdp2_layer_data_placement, 0, sizeof(stv_vdp2_layer_data_placement));
|
||||
|
||||
save_pointer(NAME(m_vdp2_regs.get()), 0x040000/2);
|
||||
save_pointer(NAME(m_vdp2_vram.get()), 0x100000/4);
|
||||
save_pointer(NAME(m_vdp2_cram.get()), 0x080000/4);
|
||||
save_pointer(NAME(m_vdp2_regs), 0x040000/2);
|
||||
save_pointer(NAME(m_vdp2_vram), 0x100000/4);
|
||||
save_pointer(NAME(m_vdp2_cram), 0x080000/4);
|
||||
machine().save().register_postload(save_prepost_delegate(FUNC(saturn_state::stv_vdp2_state_save_postload), this));
|
||||
|
||||
return 0;
|
||||
|
@ -57,7 +57,7 @@ void tlc34076_device::device_start()
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
m_local_paletteram[i] = std::make_unique<uint8_t[]>(0x100);
|
||||
save_pointer(NAME(m_local_paletteram[i].get()), 0x100, i);
|
||||
save_pointer(NAME(m_local_paletteram[i]), 0x100, i);
|
||||
}
|
||||
|
||||
save_item(NAME(m_regs));
|
||||
|
@ -117,8 +117,8 @@ void zeus2_device::device_start()
|
||||
save_item(NAME(zeus_quad_size));
|
||||
save_item(NAME(m_useZOffset));
|
||||
save_pointer(NAME(waveram), WAVERAM0_WIDTH * WAVERAM0_HEIGHT * 8 / 4);
|
||||
save_pointer(NAME(m_frameColor.get()), WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 2);
|
||||
save_pointer(NAME(m_frameDepth.get()), WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 2);
|
||||
save_pointer(NAME(m_frameColor), WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 2);
|
||||
save_pointer(NAME(m_frameDepth), WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 2);
|
||||
save_item(NAME(m_pal_table));
|
||||
// m_ucode
|
||||
save_item(NAME(m_curUCodeSrc));
|
||||
|
@ -571,9 +571,9 @@ public:
|
||||
|
||||
// state saving interfaces
|
||||
template<typename ItemType>
|
||||
void ATTR_COLD save_item(ItemType &value, const char *valname, int index = 0) { assert(m_save != nullptr); m_save->save_item(this, name(), tag(), index, value, valname); }
|
||||
void ATTR_COLD save_item(ItemType &&value, const char *valname, int index = 0) { assert(m_save != nullptr); m_save->save_item(this, name(), tag(), index, std::forward<ItemType>(value), valname); }
|
||||
template<typename ItemType>
|
||||
void ATTR_COLD save_pointer(ItemType *value, const char *valname, u32 count, int index = 0) { assert(m_save != nullptr); m_save->save_pointer(this, name(), tag(), index, value, valname, count); }
|
||||
void ATTR_COLD save_pointer(ItemType &&value, const char *valname, u32 count, int index = 0) { assert(m_save != nullptr); m_save->save_pointer(this, name(), tag(), index, std::forward<ItemType>(value), valname, count); }
|
||||
|
||||
// debugging
|
||||
device_debug *debug() const { return m_debug.get(); }
|
||||
|
@ -87,8 +87,8 @@ class rewinder;
|
||||
class save_manager
|
||||
{
|
||||
// type_checker is a set of templates to identify valid save types
|
||||
template<typename _ItemType> struct type_checker { static const bool is_atom = false; static const bool is_pointer = false; };
|
||||
template<typename _ItemType> struct type_checker<_ItemType*> { static const bool is_atom = false; static const bool is_pointer = true; };
|
||||
template<typename ItemType> struct type_checker { static const bool is_atom = false; static const bool is_pointer = false; };
|
||||
template<typename ItemType> struct type_checker<ItemType*> { static const bool is_atom = false; static const bool is_pointer = true; };
|
||||
|
||||
friend class ram_state;
|
||||
friend class rewinder;
|
||||
@ -119,43 +119,51 @@ public:
|
||||
void save_memory(device_t *device, const char *module, const char *tag, u32 index, const char *name, void *val, u32 valsize, u32 valcount = 1);
|
||||
|
||||
// templatized wrapper for general objects
|
||||
template<typename _ItemType>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, _ItemType &value, const char *valname)
|
||||
template<typename ItemType>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, ItemType &value, const char *valname)
|
||||
{
|
||||
if (type_checker<_ItemType>::is_pointer) throw emu_fatalerror("Called save_item on a pointer with no count!");
|
||||
if (!type_checker<_ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value, sizeof(value));
|
||||
if (type_checker<ItemType>::is_pointer) throw emu_fatalerror("Called save_item on a pointer with no count!");
|
||||
if (!type_checker<ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value, sizeof(ItemType));
|
||||
}
|
||||
|
||||
// templatized wrapper for 1-dimensional arrays
|
||||
template<typename _ItemType, std::size_t N>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, _ItemType (&value)[N], const char *valname)
|
||||
template<typename ItemType, std::size_t N>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, ItemType (&value)[N], const char *valname)
|
||||
{
|
||||
if (!type_checker<_ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value[0], sizeof(value[0]), N);
|
||||
if (!type_checker<ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value[0], sizeof(ItemType), N);
|
||||
}
|
||||
|
||||
// templatized wrapper for 2-dimensional arrays
|
||||
template<typename _ItemType, std::size_t M, std::size_t N>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, _ItemType (&value)[M][N], const char *valname)
|
||||
template<typename ItemType, std::size_t M, std::size_t N>
|
||||
void save_item(device_t *device, const char *module, const char *tag, int index, ItemType (&value)[M][N], const char *valname)
|
||||
{
|
||||
if (!type_checker<_ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value[0][0], sizeof(value[0][0]), M * N);
|
||||
if (!type_checker<ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, &value[0][0], sizeof(ItemType), M * N);
|
||||
}
|
||||
|
||||
// templatized wrapper for pointers
|
||||
template<typename _ItemType>
|
||||
void save_pointer(device_t *device, const char *module, const char *tag, int index, _ItemType *value, const char *valname, u32 count)
|
||||
template<typename ItemType>
|
||||
void save_pointer(device_t *device, const char *module, const char *tag, int index, ItemType *value, const char *valname, u32 count)
|
||||
{
|
||||
if (!type_checker<_ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, value, sizeof(*value), count);
|
||||
if (!type_checker<ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, value, sizeof(ItemType), count);
|
||||
}
|
||||
|
||||
// templatized wrapper for std::unique_ptr
|
||||
template<typename ItemType>
|
||||
void save_pointer(device_t *device, const char *module, const char *tag, int index, std::unique_ptr<ItemType[]> &value, const char *valname, u32 count)
|
||||
{
|
||||
if (!type_checker<ItemType>::is_atom) throw emu_fatalerror("Called save_item on a non-fundamental type!");
|
||||
save_memory(device, module, tag, index, valname, value.get(), sizeof(ItemType), count);
|
||||
}
|
||||
|
||||
// global memory registration
|
||||
template<typename _ItemType>
|
||||
void save_item(_ItemType &value, const char *valname, int index = 0) { save_item(nullptr, "global", nullptr, index, value, valname); }
|
||||
template<typename _ItemType>
|
||||
void save_pointer(_ItemType *value, const char *valname, u32 count, int index = 0) { save_pointer(nullptr, "global", nullptr, index, value, valname, count); }
|
||||
template<typename ItemType>
|
||||
void save_item(ItemType &value, const char *valname, int index = 0) { save_item(nullptr, "global", nullptr, index, value, valname); }
|
||||
template<typename ItemType>
|
||||
void save_pointer(ItemType *value, const char *valname, u32 count, int index = 0) { save_pointer(nullptr, "global", nullptr, index, value, valname, count); }
|
||||
|
||||
// file processing
|
||||
static save_error check_file(running_machine &machine, emu_file &file, const char *gamename, void (CLIB_DECL *errormsg)(const char *fmt, ...));
|
||||
|
@ -16,7 +16,7 @@ SAMPLES_START_CB_MEMBER( cclimber_audio_device::sh_start )
|
||||
if (m_samples_region)
|
||||
{
|
||||
m_sample_buf = std::make_unique<int16_t[]>(2 * m_samples_region.bytes());
|
||||
save_pointer(NAME(m_sample_buf.get()), 2 * m_samples_region.bytes());
|
||||
save_pointer(NAME(m_sample_buf), 2 * m_samples_region.bytes());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,7 +101,7 @@ void phoenix_sound_device::device_start()
|
||||
save_item(NAME(m_noise_state.polyoffs));
|
||||
save_item(NAME(m_noise_state.lowpass_counter));
|
||||
save_item(NAME(m_noise_state.lowpass_polybit));
|
||||
save_pointer(NAME(m_poly18.get()), (1ul << (18-5)));
|
||||
save_pointer(NAME(m_poly18), (1ul << (18-5)));
|
||||
}
|
||||
|
||||
int phoenix_sound_device::update_c24(int samplerate)
|
||||
|
@ -684,7 +684,7 @@ void pleiads_sound_device::common_start()
|
||||
save_item(NAME(m_noise.counter));
|
||||
save_item(NAME(m_noise.polyoffs));
|
||||
save_item(NAME(m_noise.freq));
|
||||
save_pointer(NAME(m_poly18.get()), (1ul << (18-5)));
|
||||
save_pointer(NAME(m_poly18), (1ul << (18-5)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -171,7 +171,7 @@ void snes_sound_device::device_start()
|
||||
m_tick_timer = timer_alloc(TIMER_TICK_ID);
|
||||
|
||||
state_register();
|
||||
save_pointer(NAME(m_ram.get()), SNES_SPCRAM_SIZE);
|
||||
save_pointer(NAME(m_ram), SNES_SPCRAM_SIZE);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -59,7 +59,7 @@ void taito_zoom_device::device_start()
|
||||
// register for savestates
|
||||
save_item(NAME(m_reg_address));
|
||||
save_item(NAME(m_tms_ctrl));
|
||||
save_pointer(NAME(m_snd_shared_ram.get()), 0x100);
|
||||
save_pointer(NAME(m_snd_shared_ram), 0x100);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -368,7 +368,7 @@ void _20pacgal_state::common_save_state()
|
||||
m_ram_48000 = make_unique_clear<uint8_t[]>(0x2000);
|
||||
|
||||
save_item(NAME(m_game_selected));
|
||||
save_pointer(NAME(m_ram_48000.get()), 0x2000);
|
||||
save_pointer(NAME(m_ram_48000), 0x2000);
|
||||
save_item(NAME(m_irq_mask));
|
||||
}
|
||||
|
||||
|
@ -202,7 +202,7 @@ void ampex_state::machine_start()
|
||||
save_item(NAME(m_attr));
|
||||
save_item(NAME(m_attr_readback));
|
||||
save_item(NAME(m_uart_loopback));
|
||||
save_pointer(NAME(m_paged_ram.get()), 0x1800 * 4);
|
||||
save_pointer(NAME(m_paged_ram), 0x1800 * 4);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(ampex_state::ampex)
|
||||
|
@ -195,7 +195,7 @@ void amusco_state::video_start()
|
||||
m_videoram = std::make_unique<uint8_t []>(videoram_size);
|
||||
std::fill_n(m_videoram.get(), videoram_size, 0);
|
||||
|
||||
save_pointer(NAME(m_videoram.get()), videoram_size);
|
||||
save_pointer(NAME(m_videoram), videoram_size);
|
||||
}
|
||||
|
||||
void amusco_state::machine_start()
|
||||
|
@ -1722,7 +1722,7 @@ void aristmk4_state::init_aristmk4()
|
||||
|
||||
void aristmk4_state::machine_start()
|
||||
{
|
||||
save_pointer(NAME(m_nvram.get()), 0x1000); // m_nvram
|
||||
save_pointer(NAME(m_nvram), 0x1000); // m_nvram
|
||||
m_credit_spend_meter.resolve();
|
||||
m_credit_out_meter.resolve();
|
||||
m_hopper_motor_out.resolve();
|
||||
|
@ -136,7 +136,7 @@ VIDEO_START_MEMBER(astinvad_state,spaceint)
|
||||
m_colorram = std::make_unique<uint8_t[]>(m_videoram.bytes());
|
||||
|
||||
save_item(NAME(m_color_latch));
|
||||
save_pointer(NAME(m_colorram.get()), m_videoram.bytes());
|
||||
save_pointer(NAME(m_colorram), m_videoram.bytes());
|
||||
}
|
||||
|
||||
|
||||
|
@ -171,7 +171,7 @@ void astrof_state::video_start()
|
||||
{
|
||||
/* allocate the color RAM -- half the size of the video RAM as A0 is not connected */
|
||||
m_colorram = std::make_unique<uint8_t[]>(m_videoram.bytes() / 2);
|
||||
save_pointer(NAME(m_colorram.get()), m_videoram.bytes() / 2);
|
||||
save_pointer(NAME(m_colorram), m_videoram.bytes() / 2);
|
||||
}
|
||||
|
||||
|
||||
|
@ -128,8 +128,8 @@ void backfire_state::video_start()
|
||||
m_left = std::make_unique<bitmap_ind16>(80*8, 32*8);
|
||||
m_right = std::make_unique<bitmap_ind16>(80*8, 32*8);
|
||||
|
||||
save_pointer(NAME(m_spriteram_1.get()), 0x2000/2);
|
||||
save_pointer(NAME(m_spriteram_2.get()), 0x2000/2);
|
||||
save_pointer(NAME(m_spriteram_1), 0x2000/2);
|
||||
save_pointer(NAME(m_spriteram_2), 0x2000/2);
|
||||
|
||||
save_item(NAME(*m_left));
|
||||
save_item(NAME(*m_right));
|
||||
|
@ -1621,8 +1621,8 @@ void bfcobra_state::init_bfcobra()
|
||||
save_item(NAME(m_z80_int));
|
||||
save_item(NAME(m_z80_inten));
|
||||
save_item(NAME(m_bank_data));
|
||||
save_pointer(NAME(m_work_ram.get()), 0xc0000);
|
||||
save_pointer(NAME(m_video_ram.get()), 0x20000);
|
||||
save_pointer(NAME(m_work_ram), 0xc0000);
|
||||
save_pointer(NAME(m_video_ram), 0x20000);
|
||||
}
|
||||
|
||||
/* TODO */
|
||||
|
@ -527,7 +527,7 @@ void cc40_state::init_sysram(int chip, u16 size)
|
||||
{
|
||||
// init to largest possible
|
||||
m_sysram[chip] = std::make_unique<u8[]>(0x2000);
|
||||
save_pointer(NAME(m_sysram[chip].get()), 0x2000, chip);
|
||||
save_pointer(NAME(m_sysram[chip]), 0x2000, chip);
|
||||
|
||||
save_item(NAME(m_sysram_size[chip]), chip);
|
||||
save_item(NAME(m_sysram_end[chip]), chip);
|
||||
|
@ -304,7 +304,7 @@ void cocoloco_state::video_start()
|
||||
{
|
||||
m_videoram = std::make_unique<uint8_t[]>(0x2000 * 8);
|
||||
|
||||
save_pointer(NAME(m_videoram.get()), 0x2000 * 8);
|
||||
save_pointer(NAME(m_videoram), 0x2000 * 8);
|
||||
save_item(NAME(m_videobank));
|
||||
}
|
||||
|
||||
|
@ -3227,9 +3227,9 @@ void coolridr_state::machine_start()
|
||||
decode[1].current_object = 0;
|
||||
debug_randompal = 9;
|
||||
|
||||
save_pointer(NAME(m_h1_vram.get()), VRAM_SIZE);
|
||||
save_pointer(NAME(m_h1_pcg.get()), VRAM_SIZE);
|
||||
save_pointer(NAME(m_h1_pal.get()), VRAM_SIZE);
|
||||
save_pointer(NAME(m_h1_vram), VRAM_SIZE);
|
||||
save_pointer(NAME(m_h1_pcg), VRAM_SIZE);
|
||||
save_pointer(NAME(m_h1_pal), VRAM_SIZE);
|
||||
}
|
||||
|
||||
void coolridr_state::machine_reset()
|
||||
|
@ -9931,7 +9931,7 @@ void cps2_state::init_gigaman2()
|
||||
init_cps2nc();
|
||||
|
||||
m_gigaman2_dummyqsound_ram = std::make_unique<uint16_t[]>(0x20000 / 2);
|
||||
save_pointer(NAME(m_gigaman2_dummyqsound_ram.get()), 0x20000 / 2);
|
||||
save_pointer(NAME(m_gigaman2_dummyqsound_ram), 0x20000 / 2);
|
||||
|
||||
space.install_readwrite_handler(0x618000, 0x619fff, read16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_r),this), write16_delegate(FUNC(cps2_state::gigaman2_dummyqsound_w), this)); // no qsound..
|
||||
|
||||
|
@ -900,11 +900,11 @@ void cps3_state::video_start()
|
||||
{
|
||||
m_ss_ram = std::make_unique<uint32_t[]>(0x10000/4);
|
||||
memset(m_ss_ram.get(), 0x00, 0x10000);
|
||||
save_pointer(NAME(m_ss_ram.get()), 0x10000/4);
|
||||
save_pointer(NAME(m_ss_ram), 0x10000/4);
|
||||
|
||||
m_char_ram = std::make_unique<uint32_t[]>(0x800000/4);
|
||||
memset(m_char_ram.get(), 0x00, 0x800000);
|
||||
save_pointer(NAME(m_char_ram.get()), 0x800000 /4);
|
||||
save_pointer(NAME(m_char_ram), 0x800000 /4);
|
||||
|
||||
/* create the char set (gfx will then be updated dynamically from RAM) */
|
||||
m_gfxdecode->set_gfx(0, std::make_unique<gfx_element>(m_palette, cps3_tiles8x8_layout, (uint8_t *)m_ss_ram.get(), 0, m_palette->entries() / 16, 0));
|
||||
|
@ -127,7 +127,7 @@ void dblcrown_state::video_start()
|
||||
m_pal_ram = std::make_unique<uint8_t[]>(0x200 * 2);
|
||||
m_vram = std::make_unique<uint8_t[]>(0x1000 * 0x10);
|
||||
|
||||
save_pointer(NAME(m_vram.get()), 0x1000 * 0x10);
|
||||
save_pointer(NAME(m_vram), 0x1000 * 0x10);
|
||||
}
|
||||
|
||||
uint32_t dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
|
@ -624,14 +624,14 @@ VIDEO_START_MEMBER(ddenlovr_state,ddenlovr)
|
||||
save_item(NAME(m_ddenlovr_blit_pen_mask));
|
||||
save_item(NAME(m_ddenlovr_blit_regs));
|
||||
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[0].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[1].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[2].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[3].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[4].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[5].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[6].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[7].get()), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[0]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[1]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[2]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[3]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[4]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[5]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[6]), 512 * 512);
|
||||
save_pointer(NAME(m_ddenlovr_pixmap[7]), 512 * 512);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(ddenlovr_state,mmpanic)
|
||||
|
@ -87,7 +87,7 @@ void deco156_state::video_start()
|
||||
/* and register the allocated ram so that save states still work */
|
||||
save_item(NAME(m_pf1_rowscroll));
|
||||
save_item(NAME(m_pf2_rowscroll));
|
||||
save_pointer(NAME(m_spriteram.get()), 0x2000/2);
|
||||
save_pointer(NAME(m_spriteram), 0x2000/2);
|
||||
}
|
||||
|
||||
|
||||
|
@ -385,7 +385,7 @@ void dgpix_state::video_start()
|
||||
{
|
||||
m_vram = std::make_unique<uint32_t[]>(0x40000*2/4);
|
||||
|
||||
save_pointer(NAME(m_vram.get()), 0x40000*2/4);
|
||||
save_pointer(NAME(m_vram), 0x40000*2/4);
|
||||
}
|
||||
|
||||
uint32_t dgpix_state::screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
|
@ -207,7 +207,7 @@ protected:
|
||||
DECLARE_VIDEO_START(flytiger)
|
||||
{
|
||||
m_paletteram_flytiger = make_unique_clear<uint8_t[]>(0x1000);
|
||||
save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000);
|
||||
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
|
||||
|
||||
m_palette_bank = 0;
|
||||
|
||||
@ -279,7 +279,7 @@ protected:
|
||||
DECLARE_VIDEO_START(pollux)
|
||||
{
|
||||
m_paletteram_flytiger = make_unique_clear<uint8_t[]>(0x1000);
|
||||
save_pointer(NAME(m_paletteram_flytiger.get()), 0x1000);
|
||||
save_pointer(NAME(m_paletteram_flytiger), 0x1000);
|
||||
|
||||
m_palette_bank = 0;
|
||||
|
||||
|
@ -284,9 +284,9 @@ void dreamwld_state::video_start()
|
||||
m_spritebuf[1] = std::make_unique<uint32_t[]>(0x2000 / 4);
|
||||
m_lineram16 = make_unique_clear<uint16_t[]>(0x400 / 2);
|
||||
|
||||
save_pointer(NAME(m_spritebuf[0].get()), 0x2000 / 4, 0);
|
||||
save_pointer(NAME(m_spritebuf[1].get()), 0x2000 / 4, 1);
|
||||
save_pointer(NAME(m_lineram16.get()), 0x400/2);
|
||||
save_pointer(NAME(m_spritebuf[0]), 0x2000 / 4, 0);
|
||||
save_pointer(NAME(m_spritebuf[1]), 0x2000 / 4, 1);
|
||||
save_pointer(NAME(m_lineram16), 0x400/2);
|
||||
|
||||
}
|
||||
|
||||
|
@ -635,9 +635,9 @@ void esripsys_state::init_esripsys()
|
||||
membank("bank4")->set_base(&rom[0x8000]);
|
||||
|
||||
/* Register stuff for state saving */
|
||||
save_pointer(NAME(m_fdt_a.get()), FDT_RAM_SIZE);
|
||||
save_pointer(NAME(m_fdt_b.get()), FDT_RAM_SIZE);
|
||||
save_pointer(NAME(m_cmos_ram.get()), CMOS_RAM_SIZE);
|
||||
save_pointer(NAME(m_fdt_a), FDT_RAM_SIZE);
|
||||
save_pointer(NAME(m_fdt_b), FDT_RAM_SIZE);
|
||||
save_pointer(NAME(m_cmos_ram), CMOS_RAM_SIZE);
|
||||
|
||||
save_item(NAME(m_g_iodata));
|
||||
save_item(NAME(m_g_ioaddr));
|
||||
|
@ -490,7 +490,7 @@ MACHINE_START_MEMBER(fromanc2_state,fromanc2)
|
||||
|
||||
save_item(NAME(m_subcpu_int_flag));
|
||||
save_item(NAME(m_subcpu_nmi_flag));
|
||||
save_pointer(NAME(m_bankedram.get()), 0x4000 * 3);
|
||||
save_pointer(NAME(m_bankedram), 0x4000 * 3);
|
||||
}
|
||||
|
||||
void fromanc2_state::machine_reset()
|
||||
|
@ -157,8 +157,8 @@ void galpani3_state::video_start()
|
||||
|
||||
save_item(NAME(m_priority_buffer_scrollx));
|
||||
save_item(NAME(m_priority_buffer_scrolly));
|
||||
save_pointer(NAME(m_spriteram32.get()), 0x4000/4);
|
||||
save_pointer(NAME(m_spc_regs.get()), 0x40/4);
|
||||
save_pointer(NAME(m_spriteram32), 0x4000/4);
|
||||
save_pointer(NAME(m_spc_regs), 0x40/4);
|
||||
}
|
||||
|
||||
#define SPRITE_DRAW_PIXEL(_pri) \
|
||||
|
@ -249,7 +249,7 @@ void gottlieb_state::machine_start()
|
||||
save_item(NAME(m_laserdisc_status));
|
||||
save_item(NAME(m_laserdisc_philips_code));
|
||||
|
||||
save_pointer(NAME(m_laserdisc_audio_buffer.get()), AUDIORAM_SIZE);
|
||||
save_pointer(NAME(m_laserdisc_audio_buffer), AUDIORAM_SIZE);
|
||||
save_item(NAME(m_laserdisc_audio_address));
|
||||
save_item(NAME(m_laserdisc_last_samples));
|
||||
save_item(NAME(m_laserdisc_last_time));
|
||||
|
@ -290,7 +290,7 @@ void gunpey_state::video_start()
|
||||
m_vram = std::make_unique<uint8_t[]>(0x400000);
|
||||
std::fill_n(&m_vram[0], 0x400000, 0xff);
|
||||
m_blitter_end_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gunpey_state::blitter_end), this));
|
||||
save_pointer(NAME(m_vram.get()), 0x400000);
|
||||
save_pointer(NAME(m_vram), 0x400000);
|
||||
}
|
||||
|
||||
uint8_t gunpey_state::draw_gfx(bitmap_ind16 &bitmap,const rectangle &cliprect,int count,uint8_t scene_gradient)
|
||||
|
@ -72,7 +72,7 @@ void harriet_state::machine_start()
|
||||
{
|
||||
m_zpram_data = std::make_unique<u8[]>(0x800);
|
||||
subdevice<nvram_device>("zpram")->set_base(m_zpram_data.get(), 0x800);
|
||||
save_pointer(NAME(m_zpram_data.get()), 0x800);
|
||||
save_pointer(NAME(m_zpram_data), 0x800);
|
||||
}
|
||||
|
||||
void harriet_state::machine_reset()
|
||||
|
@ -1022,7 +1022,7 @@ void hornet_state::machine_start()
|
||||
|
||||
save_item(NAME(m_led_reg0));
|
||||
save_item(NAME(m_led_reg1));
|
||||
save_pointer(NAME(m_jvs_sdata.get()), 1024);
|
||||
save_pointer(NAME(m_jvs_sdata), 1024);
|
||||
save_item(NAME(m_jvs_sdata_ptr));
|
||||
|
||||
m_sound_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hornet_state::sound_irq), this));
|
||||
|
@ -324,7 +324,7 @@ void igs011_state::video_start()
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
m_layer[i] = std::make_unique<uint8_t[]>(512 * 256);
|
||||
save_pointer(NAME(m_layer[i].get()), 512 * 256, i);
|
||||
save_pointer(NAME(m_layer[i]), 512 * 256, i);
|
||||
}
|
||||
|
||||
m_lhb2_pen_hi = 0;
|
||||
|
@ -273,10 +273,10 @@ void jchan_state::video_start()
|
||||
m_spritegen[1]->skns_sprite_kludge(0,0);
|
||||
|
||||
save_item(NAME(m_irq_sub_enable));
|
||||
save_pointer(NAME(m_sprite_ram32[0].get()), 0x4000/4);
|
||||
save_pointer(NAME(m_sprite_ram32[1].get()), 0x4000/4);
|
||||
save_pointer(NAME(m_sprite_regs32[0].get()), 0x40/4);
|
||||
save_pointer(NAME(m_sprite_regs32[1].get()), 0x40/4);
|
||||
save_pointer(NAME(m_sprite_ram32[0]), 0x4000/4);
|
||||
save_pointer(NAME(m_sprite_ram32[1]), 0x4000/4);
|
||||
save_pointer(NAME(m_sprite_regs32[0]), 0x40/4);
|
||||
save_pointer(NAME(m_sprite_regs32[1]), 0x40/4);
|
||||
}
|
||||
|
||||
|
||||
|
@ -652,9 +652,9 @@ void jtces40_state::video_start()
|
||||
/* register for state saving */
|
||||
save_item(NAME(m_video_bank));
|
||||
save_pointer(NAME(m_video_ram.target()), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_r.get()), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_g.get()), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_b.get()), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_r), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_g), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_pointer(NAME(m_color_ram_b), JTC_ES40_VIDEORAM_SIZE);
|
||||
save_item(NAME(m_centronics_busy));
|
||||
}
|
||||
|
||||
|
@ -583,8 +583,8 @@ void kdt6_state::machine_start()
|
||||
m_floppy1->get_device()->setup_led_cb(floppy_image_device::led_cb(&kdt6_state::drive1_led_cb, this));
|
||||
|
||||
// register for save states
|
||||
save_pointer(NAME(m_ram.get()), 0x40000);
|
||||
save_pointer(NAME(m_vram.get()), 0x10000);
|
||||
save_pointer(NAME(m_ram), 0x40000);
|
||||
save_pointer(NAME(m_vram), 0x10000);
|
||||
save_item(NAME(m_sasi_dma));
|
||||
save_item(NAME(m_dma_map));
|
||||
save_item(NAME(m_status0));
|
||||
|
@ -712,7 +712,7 @@ SAMPLES_START_CB_MEMBER(m63_state::fghtbskt_sh_start)
|
||||
uint8_t *ROM = memregion("samples")->base();
|
||||
|
||||
m_samplebuf = std::make_unique<int16_t[]>(len);
|
||||
save_pointer(NAME(m_samplebuf.get()), len);
|
||||
save_pointer(NAME(m_samplebuf), len);
|
||||
|
||||
for(i = 0; i < len; i++)
|
||||
m_samplebuf[i] = ((int8_t)(ROM[i] ^ 0x80)) * 256;
|
||||
|
@ -436,7 +436,7 @@ void m72_state::init_m72_8751()
|
||||
program.install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::main_mcu_w),this));
|
||||
membank("bank1")->configure_entry(0, m_protection_ram.get());
|
||||
|
||||
save_pointer(NAME(m_protection_ram.get()), 0x10000/2);
|
||||
save_pointer(NAME(m_protection_ram), 0x10000/2);
|
||||
save_item(NAME(m_mcu_sample_latch));
|
||||
save_item(NAME(m_mcu_sample_addr));
|
||||
save_item(NAME(m_mcu_snd_cmd_latch));
|
||||
@ -784,7 +784,7 @@ void m72_state::install_protection_handler(const uint8_t *code,const uint8_t *cr
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),this));
|
||||
membank("bank1")->configure_entry(0, m_protection_ram.get());
|
||||
|
||||
save_pointer(NAME(m_protection_ram.get()), 0x1000/2);
|
||||
save_pointer(NAME(m_protection_ram), 0x1000/2);
|
||||
}
|
||||
|
||||
void m72_state::init_bchopper()
|
||||
|
@ -865,7 +865,7 @@ void maygayv1_state::machine_start()
|
||||
i82716.dram = std::make_unique<uint16_t[]>(0x80000/2); // ???
|
||||
i82716.line_buf = std::make_unique<uint8_t[]>(512);
|
||||
|
||||
save_pointer(NAME(i82716.dram.get()), 0x40000);
|
||||
save_pointer(NAME(i82716.dram), 0x40000);
|
||||
}
|
||||
|
||||
void maygayv1_state::machine_reset()
|
||||
|
@ -474,7 +474,7 @@ void mc1000_state::machine_start()
|
||||
bankswitch();
|
||||
|
||||
/* register for state saving */
|
||||
save_pointer(NAME(m_banked_ram.get()), 0xc000);
|
||||
save_pointer(NAME(m_banked_ram), 0xc000);
|
||||
save_item(NAME(m_rom0000));
|
||||
save_item(NAME(m_mc6845_bank));
|
||||
save_item(NAME(m_mc6847_bank));
|
||||
|
@ -173,7 +173,7 @@ void merit_state::machine_start()
|
||||
m_question_address = 0;
|
||||
m_ram_palette = std::make_unique<uint8_t[]>(RAM_PALETTE_SIZE);
|
||||
|
||||
save_pointer(NAME(m_ram_palette.get()), RAM_PALETTE_SIZE);
|
||||
save_pointer(NAME(m_ram_palette), RAM_PALETTE_SIZE);
|
||||
save_item(NAME(m_lscnblk));
|
||||
save_item(NAME(m_extra_video_bank_bit));
|
||||
save_item(NAME(m_question_address));
|
||||
|
@ -1083,7 +1083,7 @@ MACHINE_START_MEMBER(meritm_state, crt260)
|
||||
MACHINE_START_CALL_MEMBER(common);
|
||||
save_item(NAME(m_bank));
|
||||
save_item(NAME(m_psd_a15));
|
||||
save_pointer(NAME(m_ram.get()), 0x8000);
|
||||
save_pointer(NAME(m_ram), 0x8000);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(meritm_state::vblank_start_tick)
|
||||
|
@ -192,7 +192,7 @@ void mlanding_state::machine_start()
|
||||
m_dma_bank->configure_entries(0, 2, m_dma_ram.get(), c_dma_bank_words * 2);
|
||||
|
||||
// Register state for saving
|
||||
save_pointer(NAME(m_dma_ram.get()), c_dma_bank_words * 2);
|
||||
save_pointer(NAME(m_dma_ram), c_dma_bank_words * 2);
|
||||
save_item(NAME(m_dma_cpu_bank));
|
||||
save_item(NAME(m_dma_busy));
|
||||
save_item(NAME(m_dsp_hold_signal));
|
||||
|
@ -156,8 +156,8 @@ void monzagp_state::machine_start()
|
||||
m_mycar_pos = 0;
|
||||
m_collisions_ff = 0;
|
||||
m_collisions_clk = 0;
|
||||
save_pointer(NAME(m_vram.get()), 0x800);
|
||||
save_pointer(NAME(m_score_ram.get()), 0x100);
|
||||
save_pointer(NAME(m_vram), 0x800);
|
||||
save_pointer(NAME(m_score_ram), 0x100);
|
||||
|
||||
m_nvram->set_base(m_score_ram.get(), 0x100);
|
||||
|
||||
|
@ -1776,9 +1776,9 @@ void mz2500_state::machine_start()
|
||||
m_phone_rom = memregion("phone")->base();
|
||||
m_iplpro_rom = memregion("iplpro")->base();
|
||||
|
||||
save_pointer(NAME(m_main_ram.get()), 0x80000);
|
||||
save_pointer(NAME(m_pcg_ram.get()), 0x2000);
|
||||
save_pointer(NAME(m_emm_ram.get()), 0x100000);
|
||||
save_pointer(NAME(m_main_ram), 0x80000);
|
||||
save_pointer(NAME(m_pcg_ram), 0x2000);
|
||||
save_pointer(NAME(m_emm_ram), 0x100000);
|
||||
|
||||
/* TODO: gfx[4] crashes as per now */
|
||||
m_gfxdecode->set_gfx(3, std::make_unique<gfx_element>(m_palette, mz2500_pcg_layout_1bpp, m_pcg_ram.get(), 0, 0x10, 0));
|
||||
|
@ -795,7 +795,7 @@ ROM_END
|
||||
void namcofl_state::common_init()
|
||||
{
|
||||
m_workram = std::make_unique<uint32_t[]>(0x100000/4);
|
||||
save_pointer(NAME(m_workram.get()), 0x100000/4),
|
||||
save_pointer(NAME(m_workram), 0x100000/4),
|
||||
|
||||
save_item(NAME(m_mcu_port6));
|
||||
save_item(NAME(m_sprbank));
|
||||
|
@ -848,7 +848,7 @@ void ngcd_state::machine_start()
|
||||
// NeoCD doesn't have memcard slots, rather, it has a larger internal memory which works the same
|
||||
m_meminternal_data = make_unique_clear<uint8_t[]>(0x2000);
|
||||
subdevice<nvram_device>("saveram")->set_base(m_meminternal_data.get(), 0x2000);
|
||||
save_pointer(NAME(m_meminternal_data.get()), 0x2000);
|
||||
save_pointer(NAME(m_meminternal_data), 0x2000);
|
||||
|
||||
m_tempcdc->reset_cd();
|
||||
}
|
||||
|
@ -201,7 +201,7 @@ MACHINE_START_MEMBER( nes_state, fds )
|
||||
|
||||
// register saves
|
||||
save_item(NAME(m_last_frame_flip));
|
||||
save_pointer(NAME(m_ciram.get()), 0x800);
|
||||
save_pointer(NAME(m_ciram), 0x800);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER( nes_state, fds )
|
||||
|
@ -692,10 +692,10 @@ void nes_vt_state::machine_start()
|
||||
save_item(NAME(m_timer_val));
|
||||
|
||||
m_ntram = std::make_unique<uint8_t[]>(0x2000);
|
||||
save_pointer(NAME(m_ntram.get()), 0x2000);
|
||||
save_pointer(NAME(m_ntram), 0x2000);
|
||||
|
||||
m_chrram = std::make_unique<uint8_t[]>(0x2000);
|
||||
save_pointer(NAME(m_chrram.get()), 0x2000);
|
||||
save_pointer(NAME(m_chrram), 0x2000);
|
||||
|
||||
m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::scanline_irq),this));
|
||||
m_ppu->set_hblank_callback(ppu2c0x_device::scanline_delegate(FUNC(nes_vt_state::hblank_irq),this));
|
||||
|
@ -346,8 +346,8 @@ void pasha2_state::video_start()
|
||||
{
|
||||
m_bitmap0[i] = make_unique_clear<uint8_t[]>(0x20000);
|
||||
m_bitmap1[i] = make_unique_clear<uint8_t[]>(0x20000);
|
||||
save_pointer(NAME(m_bitmap0[i].get()), 0x20000, i);
|
||||
save_pointer(NAME(m_bitmap1[i].get()), 0x20000, i);
|
||||
save_pointer(NAME(m_bitmap0[i]), 0x20000, i);
|
||||
save_pointer(NAME(m_bitmap1[i]), 0x20000, i);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2424,10 +2424,10 @@ void pc8801_state::machine_start()
|
||||
m_kanji_rom = memregion("kanji")->base();
|
||||
m_cg_rom = memregion("cgrom")->base();
|
||||
|
||||
save_pointer(NAME(m_work_ram.get()), 0x10000);
|
||||
save_pointer(NAME(m_hi_work_ram.get()), 0x1000);
|
||||
save_pointer(NAME(m_ext_work_ram.get()), 0x8000*0x100);
|
||||
save_pointer(NAME(m_gvram.get()), 0xc000);
|
||||
save_pointer(NAME(m_work_ram), 0x10000);
|
||||
save_pointer(NAME(m_hi_work_ram), 0x1000);
|
||||
save_pointer(NAME(m_ext_work_ram), 0x8000*0x100);
|
||||
save_pointer(NAME(m_gvram), 0xc000);
|
||||
}
|
||||
|
||||
void pc8801_state::machine_reset()
|
||||
|
@ -167,7 +167,7 @@ void pipeline_state::video_start()
|
||||
m_tilemap2->set_transparent_pen(0);
|
||||
|
||||
save_item(NAME(m_vidctrl));
|
||||
save_pointer(NAME(m_palram.get()), 0x1000);
|
||||
save_pointer(NAME(m_palram), 0x1000);
|
||||
}
|
||||
|
||||
u32 pipeline_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user