summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2008-11-17 06:21:26 +0000
committer Aaron Giles <aaron@aarongiles.com>2008-11-17 06:21:26 +0000
commita5bf427929fd25fe7ff335bc4d1f4d49c2e4bac3 (patch)
tree74095b00b4d2ec554c7dfe813d036e4fc213adbc
parent8aa46743d1926d2566e0423b23172de1a15b3a7b (diff)
Added "tag" parameter to state_save_register_item_* calls. Removed
state_save_combine_module_and_tag() function in favor of passing the tag when registering. Revisited all save state item registrations and changed them to use the tag where appropriate.
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.c154
-rw-r--r--src/emu/cpu/alph8201/alph8201.c38
-rw-r--r--src/emu/cpu/arm/arm.c8
-rw-r--r--src/emu/cpu/arm7/arm7.c2
-rw-r--r--src/emu/cpu/arm7/arm7core.c16
-rw-r--r--src/emu/cpu/ccpu/ccpu.c38
-rw-r--r--src/emu/cpu/cdp1802/cdp1802.c36
-rw-r--r--src/emu/cpu/cop400/cop410.c38
-rw-r--r--src/emu/cpu/cop400/cop420.c50
-rw-r--r--src/emu/cpu/cubeqcpu/cubeqcpu.c164
-rw-r--r--src/emu/cpu/dsp56k/dsp56k.c2
-rw-r--r--src/emu/cpu/e132xs/e132xs.c18
-rw-r--r--src/emu/cpu/g65816/g65816.c48
-rw-r--r--src/emu/cpu/h6280/h6280.c46
-rw-r--r--src/emu/cpu/h83002/h83002.c22
-rw-r--r--src/emu/cpu/hd6309/hd6309.c26
-rw-r--r--src/emu/cpu/i386/i386.c106
-rw-r--r--src/emu/cpu/i8085/i8085.c60
-rw-r--r--src/emu/cpu/i86/i286.c68
-rw-r--r--src/emu/cpu/i86/i86.c46
-rw-r--r--src/emu/cpu/i8x41/i8x41.c30
-rw-r--r--src/emu/cpu/i960/i960.c20
-rw-r--r--src/emu/cpu/jaguar/jaguar.c16
-rw-r--r--src/emu/cpu/konami/konami.c24
-rw-r--r--src/emu/cpu/m37710/m37710.c96
-rw-r--r--src/emu/cpu/m6502/m6502.c26
-rw-r--r--src/emu/cpu/m6800/m6800.c98
-rw-r--r--src/emu/cpu/m68000/m68k.h2
-rw-r--r--src/emu/cpu/m68000/m68kcpu.c40
-rw-r--r--src/emu/cpu/m68000/m68kmame.c12
-rw-r--r--src/emu/cpu/m6805/m6805.c22
-rw-r--r--src/emu/cpu/m6809/m6809.c24
-rw-r--r--src/emu/cpu/mb88xx/mb88xx.c42
-rw-r--r--src/emu/cpu/mcs48/mcs48.c38
-rw-r--r--src/emu/cpu/mcs51/mcs51.c30
-rw-r--r--src/emu/cpu/mips/mips3com.c18
-rw-r--r--src/emu/cpu/mips/psx.c40
-rw-r--r--src/emu/cpu/nec/nec.c38
-rw-r--r--src/emu/cpu/pic16c5x/pic16c5x.c54
-rw-r--r--src/emu/cpu/powerpc/ppccom.c48
-rw-r--r--src/emu/cpu/s2650/s2650.c24
-rw-r--r--src/emu/cpu/saturn/saturn.c46
-rw-r--r--src/emu/cpu/sh2/sh2comn.c48
-rw-r--r--src/emu/cpu/sh4/sh4.c128
-rw-r--r--src/emu/cpu/sharc/sharc.c184
-rw-r--r--src/emu/cpu/ssp1601/ssp1601.c22
-rw-r--r--src/emu/cpu/t11/t11.c30
-rw-r--r--src/emu/cpu/tlcs90/tlcs90.c2
-rw-r--r--src/emu/cpu/tms32010/tms32010.c30
-rw-r--r--src/emu/cpu/tms32025/tms32025.c64
-rw-r--r--src/emu/cpu/tms32031/tms32031.c20
-rw-r--r--src/emu/cpu/tms34010/tms34010.c22
-rw-r--r--src/emu/cpu/tms7000/tms7000.c22
-rw-r--r--src/emu/cpu/tms9900/99xxcore.h90
-rw-r--r--src/emu/cpu/upd7810/upd7810.c124
-rw-r--r--src/emu/cpu/v30mz/v30mz.c36
-rw-r--r--src/emu/cpu/v60/v60.c16
-rw-r--r--src/emu/cpu/v810/v810.c8
-rw-r--r--src/emu/cpu/vtlb.c9
-rw-r--r--src/emu/cpu/z180/z180.c50
-rw-r--r--src/emu/cpu/z80/z80.c50
-rw-r--r--src/emu/cpuexec.c29
-rw-r--r--src/emu/machine/6526cia.c64
-rw-r--r--src/emu/machine/6532riot.c27
-rw-r--r--src/emu/machine/6821pia.c64
-rw-r--r--src/emu/machine/6840ptm.c38
-rw-r--r--src/emu/machine/6850acia.c46
-rw-r--r--src/emu/machine/68681.c84
-rw-r--r--src/emu/machine/74123.c12
-rw-r--r--src/emu/machine/74181.c6
-rw-r--r--src/emu/machine/7474.c18
-rw-r--r--src/emu/machine/8255ppi.c35
-rw-r--r--src/emu/machine/8257dma.c22
-rw-r--r--src/emu/machine/adc083x.c26
-rw-r--r--src/emu/machine/at28c16.c14
-rw-r--r--src/emu/machine/cdp1852.c14
-rw-r--r--src/emu/machine/cr589.c9
-rw-r--r--src/emu/machine/ds2401.c12
-rw-r--r--src/emu/machine/generic.c8
-rw-r--r--src/emu/machine/i2cmem.c26
-rw-r--r--src/emu/machine/idectrl.c93
-rw-r--r--src/emu/machine/intelfsh.c8
-rw-r--r--src/emu/machine/latch8.c7
-rw-r--r--src/emu/machine/microtch.c24
-rw-r--r--src/emu/machine/pd4990a.c46
-rw-r--r--src/emu/machine/pit8253.c43
-rw-r--r--src/emu/machine/scsicd.c17
-rw-r--r--src/emu/machine/scsidev.c9
-rw-r--r--src/emu/machine/scsihd.c7
-rw-r--r--src/emu/machine/smc91c9x.c23
-rw-r--r--src/emu/machine/timekpr.c24
-rw-r--r--src/emu/machine/upd4701.c28
-rw-r--r--src/emu/machine/wd33c93.c2
-rw-r--r--src/emu/machine/x2212.c13
-rw-r--r--src/emu/machine/x76f041.c36
-rw-r--r--src/emu/machine/x76f100.c30
-rw-r--r--src/emu/machine/z80ctc.c15
-rw-r--r--src/emu/machine/z80dma.c34
-rw-r--r--src/emu/machine/z80pio.c23
-rw-r--r--src/emu/memory.c6
-rw-r--r--src/emu/sound/2151intf.c2
-rw-r--r--src/emu/sound/2203intf.c4
-rw-r--r--src/emu/sound/2413intf.c2
-rw-r--r--src/emu/sound/2608intf.c4
-rw-r--r--src/emu/sound/2610intf.c8
-rw-r--r--src/emu/sound/2612intf.c2
-rw-r--r--src/emu/sound/3812intf.c6
-rw-r--r--src/emu/sound/5110intf.c2
-rw-r--r--src/emu/sound/5220intf.c2
-rw-r--r--src/emu/sound/astrocde.c28
-rw-r--r--src/emu/sound/ay8910.c60
-rw-r--r--src/emu/sound/ay8910.h2
-rw-r--r--src/emu/sound/bsmt2000.c31
-rw-r--r--src/emu/sound/c352.c38
-rw-r--r--src/emu/sound/cdda.c16
-rw-r--r--src/emu/sound/cem3394.c24
-rw-r--r--src/emu/sound/dac.c2
-rw-r--r--src/emu/sound/discrete.c11
-rw-r--r--src/emu/sound/dmadac.c12
-rw-r--r--src/emu/sound/es5503.c23
-rw-r--r--src/emu/sound/es8712.c28
-rw-r--r--src/emu/sound/fm.c160
-rw-r--r--src/emu/sound/fm.h8
-rw-r--r--src/emu/sound/fmopl.c111
-rw-r--r--src/emu/sound/fmopl.h6
-rw-r--r--src/emu/sound/hc55516.c26
-rw-r--r--src/emu/sound/iremga20.c22
-rw-r--r--src/emu/sound/k054539.c6
-rw-r--r--src/emu/sound/msm5205.c16
-rw-r--r--src/emu/sound/multipcm.c60
-rw-r--r--src/emu/sound/namco.c26
-rw-r--r--src/emu/sound/namco52.c12
-rw-r--r--src/emu/sound/nes_apu.c90
-rw-r--r--src/emu/sound/okim6295.c33
-rw-r--r--src/emu/sound/pokey.c74
-rw-r--r--src/emu/sound/psx.c74
-rw-r--r--src/emu/sound/qsound.c24
-rw-r--r--src/emu/sound/rf5c400.c40
-rw-r--r--src/emu/sound/samples.c14
-rw-r--r--src/emu/sound/segapcm.c4
-rw-r--r--src/emu/sound/sn76477.c154
-rw-r--r--src/emu/sound/sn76496.c34
-rw-r--r--src/emu/sound/snkwave.c8
-rw-r--r--src/emu/sound/tms5110.c62
-rw-r--r--src/emu/sound/tms5110.h2
-rw-r--r--src/emu/sound/tms5220.c96
-rw-r--r--src/emu/sound/tms5220.h2
-rw-r--r--src/emu/sound/upd7759.c58
-rw-r--r--src/emu/sound/vlm5030.c38
-rw-r--r--src/emu/sound/ym2151.c164
-rw-r--r--src/emu/sound/ym2151.h2
-rw-r--r--src/emu/sound/ym2413.c119
-rw-r--r--src/emu/sound/ym2413.h2
-rw-r--r--src/emu/sound/ymdeltat.c16
-rw-r--r--src/emu/sound/ymdeltat.h2
-rw-r--r--src/emu/sound/ymf271.c133
-rw-r--r--src/emu/sound/ymz280b.c60
-rw-r--r--src/emu/state.c62
-rw-r--r--src/emu/state.h41
-rw-r--r--src/emu/streams.c8
-rw-r--r--src/emu/tilemap.c24
-rw-r--r--src/emu/timer.c43
-rw-r--r--src/emu/video.c37
-rw-r--r--src/emu/video/cdp1869.c48
-rw-r--r--src/emu/video/generic.c6
-rw-r--r--src/emu/video/mc6845.c48
-rw-r--r--src/emu/video/tms9928a.c30
-rw-r--r--src/emu/video/v9938.c90
-rw-r--r--src/emu/video/voodoo.c249
-rw-r--r--src/emu/watchdog.c4
-rw-r--r--src/mame/audio/flower.c16
-rw-r--r--src/mame/audio/segasnd.c64
-rw-r--r--src/mame/audio/tiamc1.c18
-rw-r--r--src/mame/drivers/hornet.c6
-rw-r--r--src/mame/drivers/ksys573.c8
-rw-r--r--src/mame/drivers/meritm.c10
-rw-r--r--src/mame/drivers/seattle.c4
-rw-r--r--src/mame/machine/balsente.c16
-rw-r--r--src/mame/machine/konamiic.c6
-rw-r--r--src/mame/machine/konppc.c32
-rw-r--r--src/mame/machine/mb14241.c4
-rw-r--r--src/mame/machine/mcr.c8
-rw-r--r--src/mame/machine/mhavoc.c20
-rw-r--r--src/mame/machine/namcoio.c28
-rw-r--r--src/mame/machine/naomibd.c13
-rw-r--r--src/mame/machine/rainbow.c4
-rw-r--r--src/mame/machine/slapstic.c12
-rw-r--r--src/mame/machine/steppers.c16
-rw-r--r--src/mame/machine/ticket.c4
-rw-r--r--src/mame/machine/zs01.c30
-rw-r--r--src/mame/video/atarimo.c84
-rw-r--r--src/mame/video/atarirle.c20
-rw-r--r--src/mame/video/avgdvg.c62
-rw-r--r--src/mame/video/bfm_adr2.c4
-rw-r--r--src/mame/video/gaelco3d.c4
-rw-r--r--src/mame/video/konamiic.c26
-rw-r--r--src/mame/video/m92.c4
-rw-r--r--src/mame/video/psx.c2
-rw-r--r--src/mame/video/segaic16.c16
-rw-r--r--src/mame/video/segasyse.c16
-rw-r--r--src/mame/video/taitoic.c10
-rw-r--r--src/mame/video/vertigo.c60
-rw-r--r--src/mame/video/ygv608.c12
203 files changed, 3474 insertions, 3691 deletions
diff --git a/src/emu/cpu/adsp2100/adsp2100.c b/src/emu/cpu/adsp2100/adsp2100.c
index ab77dd06fa0..f6fb8aea7db 100644
--- a/src/emu/cpu/adsp2100/adsp2100.c
+++ b/src/emu/cpu/adsp2100/adsp2100.c
@@ -613,85 +613,85 @@ static adsp2100_state *adsp21xx_init(const device_config *device, int index, int
adsp->shift_xregs[7] = &adsp->core.sr.srx.sr1;
/* "core" */
- state_save_register_item("adsp2100", index, adsp->core.ax0.u);
- state_save_register_item("adsp2100", index, adsp->core.ax1.u);
- state_save_register_item("adsp2100", index, adsp->core.ay0.u);
- state_save_register_item("adsp2100", index, adsp->core.ay1.u);
- state_save_register_item("adsp2100", index, adsp->core.ar.u);
- state_save_register_item("adsp2100", index, adsp->core.af.u);
- state_save_register_item("adsp2100", index, adsp->core.mx0.u);
- state_save_register_item("adsp2100", index, adsp->core.mx1.u);
- state_save_register_item("adsp2100", index, adsp->core.my0.u);
- state_save_register_item("adsp2100", index, adsp->core.my1.u);
- state_save_register_item("adsp2100", index, adsp->core.mr.mr);
- state_save_register_item("adsp2100", index, adsp->core.mf.u);
- state_save_register_item("adsp2100", index, adsp->core.si.u);
- state_save_register_item("adsp2100", index, adsp->core.se.u);
- state_save_register_item("adsp2100", index, adsp->core.sb.u);
- state_save_register_item("adsp2100", index, adsp->core.sr.sr);
- state_save_register_item("adsp2100", index, adsp->core.zero.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.ax0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.ax1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.ay0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.ay1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.ar.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.af.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.mx0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.mx1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.my0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.my1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.mr.mr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.mf.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.si.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.se.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.sb.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.sr.sr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->core.zero.u);
/* "alt" */
- state_save_register_item("adsp2100", index, adsp->alt.ax0.u);
- state_save_register_item("adsp2100", index, adsp->alt.ax1.u);
- state_save_register_item("adsp2100", index, adsp->alt.ay0.u);
- state_save_register_item("adsp2100", index, adsp->alt.ay1.u);
- state_save_register_item("adsp2100", index, adsp->alt.ar.u);
- state_save_register_item("adsp2100", index, adsp->alt.af.u);
- state_save_register_item("adsp2100", index, adsp->alt.mx0.u);
- state_save_register_item("adsp2100", index, adsp->alt.mx1.u);
- state_save_register_item("adsp2100", index, adsp->alt.my0.u);
- state_save_register_item("adsp2100", index, adsp->alt.my1.u);
- state_save_register_item("adsp2100", index, adsp->alt.mr.mr);
- state_save_register_item("adsp2100", index, adsp->alt.mf.u);
- state_save_register_item("adsp2100", index, adsp->alt.si.u);
- state_save_register_item("adsp2100", index, adsp->alt.se.u);
- state_save_register_item("adsp2100", index, adsp->alt.sb.u);
- state_save_register_item("adsp2100", index, adsp->alt.sr.sr);
- state_save_register_item("adsp2100", index, adsp->alt.zero.u);
-
- state_save_register_item_array("adsp2100", index, adsp->i);
- state_save_register_item_array("adsp2100", index, adsp->m);
- state_save_register_item_array("adsp2100", index, adsp->l);
- state_save_register_item_array("adsp2100", index, adsp->lmask);
- state_save_register_item_array("adsp2100", index, adsp->base);
- state_save_register_item("adsp2100", index, adsp->px);
-
- state_save_register_item("adsp2100", index, adsp->pc);
- state_save_register_item("adsp2100", index, adsp->ppc);
- state_save_register_item("adsp2100", index, adsp->loop);
- state_save_register_item("adsp2100", index, adsp->loop_condition);
- state_save_register_item("adsp2100", index, adsp->cntr);
- state_save_register_item("adsp2100", index, adsp->astat);
- state_save_register_item("adsp2100", index, adsp->sstat);
- state_save_register_item("adsp2100", index, adsp->mstat);
- state_save_register_item("adsp2100", index, adsp->astat_clear);
- state_save_register_item("adsp2100", index, adsp->idle);
-
- state_save_register_item_array("adsp2100", index, adsp->loop_stack);
- state_save_register_item_array("adsp2100", index, adsp->cntr_stack);
- state_save_register_item_array("adsp2100", index, adsp->pc_stack);
- state_save_register_item_2d_array("adsp2100", index, adsp->stat_stack);
-
- state_save_register_item("adsp2100", index, adsp->pc_sp);
- state_save_register_item("adsp2100", index, adsp->cntr_sp);
- state_save_register_item("adsp2100", index, adsp->stat_sp);
- state_save_register_item("adsp2100", index, adsp->loop_sp);
-
- state_save_register_item("adsp2100", index, adsp->flagout);
- state_save_register_item("adsp2100", index, adsp->flagin);
- state_save_register_item("adsp2100", index, adsp->fl0);
- state_save_register_item("adsp2100", index, adsp->fl1);
- state_save_register_item("adsp2100", index, adsp->fl2);
- state_save_register_item("adsp2100", index, adsp->idma_addr);
- state_save_register_item("adsp2100", index, adsp->idma_cache);
- state_save_register_item("adsp2100", index, adsp->idma_offs);
-
- state_save_register_item("adsp2100", index, adsp->imask);
- state_save_register_item("adsp2100", index, adsp->icntl);
- state_save_register_item("adsp2100", index, adsp->ifc);
- state_save_register_item_array("adsp2100", index, adsp->irq_state);
- state_save_register_item_array("adsp2100", index, adsp->irq_latch);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.ax0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.ax1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.ay0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.ay1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.ar.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.af.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.mx0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.mx1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.my0.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.my1.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.mr.mr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.mf.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.si.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.se.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.sb.u);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.sr.sr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->alt.zero.u);
+
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->i);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->m);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->l);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->lmask);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->base);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->px);
+
+ state_save_register_item("adsp2100", device->tag, 0, adsp->pc);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->ppc);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->loop);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->loop_condition);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->cntr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->astat);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->sstat);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->mstat);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->astat_clear);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->idle);
+
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->loop_stack);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->cntr_stack);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->pc_stack);
+ state_save_register_item_2d_array("adsp2100", device->tag, 0, adsp->stat_stack);
+
+ state_save_register_item("adsp2100", device->tag, 0, adsp->pc_sp);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->cntr_sp);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->stat_sp);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->loop_sp);
+
+ state_save_register_item("adsp2100", device->tag, 0, adsp->flagout);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->flagin);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->fl0);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->fl1);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->fl2);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->idma_addr);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->idma_cache);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->idma_offs);
+
+ state_save_register_item("adsp2100", device->tag, 0, adsp->imask);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->icntl);
+ state_save_register_item("adsp2100", device->tag, 0, adsp->ifc);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->irq_state);
+ state_save_register_item_array("adsp2100", device->tag, 0, adsp->irq_latch);
return adsp;
}
diff --git a/src/emu/cpu/alph8201/alph8201.c b/src/emu/cpu/alph8201/alph8201.c
index b8704afc22f..d615b65b384 100644
--- a/src/emu/cpu/alph8201/alph8201.c
+++ b/src/emu/cpu/alph8201/alph8201.c
@@ -664,27 +664,27 @@ static const s_opcode opcode_8301[256]=
****************************************************************************/
static CPU_INIT( ALPHA8201 )
{
- state_save_register_item_array("ALPHA8201", index, R.RAM);
- state_save_register_item("ALPHA8201", index, R.PREVPC);
- state_save_register_item("ALPHA8201", index, PC);
- state_save_register_item("ALPHA8201", index, regPTR);
- state_save_register_item("ALPHA8201", index, ZF);
- state_save_register_item("ALPHA8201", index, CF);
- state_save_register_item("ALPHA8201", index, R.mb);
+ state_save_register_item_array("ALPHA8201", device->tag, 0, R.RAM);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.PREVPC);
+ state_save_register_item("ALPHA8201", device->tag, 0, PC);
+ state_save_register_item("ALPHA8201", device->tag, 0, regPTR);
+ state_save_register_item("ALPHA8201", device->tag, 0, ZF);
+ state_save_register_item("ALPHA8201", device->tag, 0, CF);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.mb);
#if HANDLE_HALT_LINE
- state_save_register_item("ALPHA8201", index, R.halt);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.halt);
#endif
- state_save_register_item("ALPHA8201", index, IX0);
- state_save_register_item("ALPHA8201", index, IX1);
- state_save_register_item("ALPHA8201", index, IX2);
- state_save_register_item("ALPHA8201", index, LP0);
- state_save_register_item("ALPHA8201", index, LP1);
- state_save_register_item("ALPHA8201", index, LP2);
- state_save_register_item("ALPHA8201", index, R.A);
- state_save_register_item("ALPHA8201", index, R.B);
- state_save_register_item("ALPHA8201", index, R.retptr);
- state_save_register_item("ALPHA8201", index, R.savec);
- state_save_register_item("ALPHA8201", index, R.savez);
+ state_save_register_item("ALPHA8201", device->tag, 0, IX0);
+ state_save_register_item("ALPHA8201", device->tag, 0, IX1);
+ state_save_register_item("ALPHA8201", device->tag, 0, IX2);
+ state_save_register_item("ALPHA8201", device->tag, 0, LP0);
+ state_save_register_item("ALPHA8201", device->tag, 0, LP1);
+ state_save_register_item("ALPHA8201", device->tag, 0, LP2);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.A);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.B);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.retptr);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.savec);
+ state_save_register_item("ALPHA8201", device->tag, 0, R.savez);
}
/****************************************************************************
* Reset registers to their initial values
diff --git a/src/emu/cpu/arm/arm.c b/src/emu/cpu/arm/arm.c
index ec40e96e378..53a1ecc1c27 100644
--- a/src/emu/cpu/arm/arm.c
+++ b/src/emu/cpu/arm/arm.c
@@ -515,10 +515,10 @@ static CPU_INIT( arm )
arm.irq_callback = irqcallback;
arm.device = device;
- state_save_register_item_array("arm", index, arm.sArmRegister);
- state_save_register_item_array("arm", index, arm.coproRegister);
- state_save_register_item("arm", index, arm.pendingIrq);
- state_save_register_item("arm", index, arm.pendingFiq);
+ state_save_register_item_array("arm", device->tag, 0, arm.sArmRegister);
+ state_save_register_item_array("arm", device->tag, 0, arm.coproRegister);
+ state_save_register_item("arm", device->tag, 0, arm.pendingIrq);
+ state_save_register_item("arm", device->tag, 0, arm.pendingFiq);
}
/***************************************************************************/
diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c
index 715d699ea41..dbcbb77e502 100644
--- a/src/emu/cpu/arm7/arm7.c
+++ b/src/emu/cpu/arm7/arm7.c
@@ -85,7 +85,7 @@ static int ARM7_ICOUNT;
static CPU_INIT( arm7 )
{
// must call core
- arm7_core_init("arm7", index);
+ arm7_core_init("arm7", device);
ARM7.irq_callback = irqcallback;
ARM7.device = device;
diff --git a/src/emu/cpu/arm7/arm7core.c b/src/emu/cpu/arm7/arm7core.c
index cafc8225102..6a9a32aa173 100644
--- a/src/emu/cpu/arm7/arm7core.c
+++ b/src/emu/cpu/arm7/arm7core.c
@@ -508,15 +508,15 @@ static int storeDec(UINT32 pat, UINT32 rbv)
***************************************************************************/
// CPU INIT
-static void arm7_core_init(const char *cpuname, int index)
+static void arm7_core_init(const char *cpuname, const device_config *device)
{
- state_save_register_item_array(cpuname, index, ARM7.sArmRegister);
- state_save_register_item(cpuname, index, ARM7.pendingIrq);
- state_save_register_item(cpuname, index, ARM7.pendingFiq);
- state_save_register_item(cpuname, index, ARM7.pendingAbtD);
- state_save_register_item(cpuname, index, ARM7.pendingAbtP);
- state_save_register_item(cpuname, index, ARM7.pendingUnd);
- state_save_register_item(cpuname, index, ARM7.pendingSwi);
+ state_save_register_item_array(cpuname, device->tag, 0, ARM7.sArmRegister);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingIrq);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingFiq);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingAbtD);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingAbtP);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingUnd);
+ state_save_register_item(cpuname, device->tag, 0, ARM7.pendingSwi);
}
// CPU RESET
diff --git a/src/emu/cpu/ccpu/ccpu.c b/src/emu/cpu/ccpu/ccpu.c
index 2ad896d58b2..5940a0dd1f7 100644
--- a/src/emu/cpu/ccpu/ccpu.c
+++ b/src/emu/cpu/ccpu/ccpu.c
@@ -141,25 +141,25 @@ static CPU_INIT( ccpu )
ccpu.external_input = configdata->external_input ? configdata->external_input : read_jmi;
ccpu.vector_callback = configdata->vector_callback;
- state_save_register_item("ccpu", clock, ccpu.PC);
- state_save_register_item("ccpu", clock, ccpu.A);
- state_save_register_item("ccpu", clock, ccpu.B);
- state_save_register_item("ccpu", clock, ccpu.I);
- state_save_register_item("ccpu", clock, ccpu.J);
- state_save_register_item("ccpu", clock, ccpu.P);
- state_save_register_item("ccpu", clock, ccpu.X);
- state_save_register_item("ccpu", clock, ccpu.Y);
- state_save_register_item("ccpu", clock, ccpu.T);
- state_save_register_item("ccpu", clock, ccpu.a0flag);
- state_save_register_item("ccpu", clock, ccpu.ncflag);
- state_save_register_item("ccpu", clock, ccpu.cmpacc);
- state_save_register_item("ccpu", clock, ccpu.cmpval);
- state_save_register_item("ccpu", clock, ccpu.miflag);
- state_save_register_item("ccpu", clock, ccpu.nextmiflag);
- state_save_register_item("ccpu", clock, ccpu.nextnextmiflag);
- state_save_register_item("ccpu", clock, ccpu.drflag);
- state_save_register_item("ccpu", clock, ccpu.waiting);
- state_save_register_item("ccpu", clock, ccpu.watchdog);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.PC);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.A);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.B);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.I);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.J);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.P);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.X);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.Y);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.T);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.a0flag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.ncflag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.cmpacc);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.cmpval);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.miflag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.nextmiflag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.nextnextmiflag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.drflag);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.waiting);
+ state_save_register_item("ccpu", device->tag, 0, ccpu.watchdog);
}
diff --git a/src/emu/cpu/cdp1802/cdp1802.c b/src/emu/cpu/cdp1802/cdp1802.c
index fdc18f76251..1abfd5e78b3 100644
--- a/src/emu/cpu/cdp1802/cdp1802.c
+++ b/src/emu/cpu/cdp1802/cdp1802.c
@@ -74,24 +74,24 @@ static CPU_INIT( cdp1802 )
cdp1802.dmain = CLEAR_LINE;
cdp1802.dmaout = CLEAR_LINE;
- state_save_register_item("cdp1802", index, cdp1802.p);
- state_save_register_item("cdp1802", index, cdp1802.x);
- state_save_register_item("cdp1802", index, cdp1802.d);
- state_save_register_item("cdp1802", index, cdp1802.b);
- state_save_register_item("cdp1802", index, cdp1802.t);
- state_save_register_item_array("cdp1802", index, cdp1802.r);
- state_save_register_item("cdp1802", index, cdp1802.df);
- state_save_register_item("cdp1802", index, cdp1802.ie);
- state_save_register_item("cdp1802", index, cdp1802.q);
- state_save_register_item("cdp1802", index, cdp1802.n);
- state_save_register_item("cdp1802", index, cdp1802.i);
- state_save_register_item("cdp1802", index, cdp1802.state);
- state_save_register_item("cdp1802", index, cdp1802.prevmode);
- state_save_register_item("cdp1802", index, cdp1802.mode);
- state_save_register_item("cdp1802", index, cdp1802.irq);
- state_save_register_item("cdp1802", index, cdp1802.dmain);
- state_save_register_item("cdp1802", index, cdp1802.dmaout);
- state_save_register_item("cdp1802", index, cdp1802.ef);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.p);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.x);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.d);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.b);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.t);
+ state_save_register_item_array("cdp1802", device->tag, 0, cdp1802.r);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.df);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.ie);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.q);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.n);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.i);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.state);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.prevmode);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.mode);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.irq);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.dmain);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.dmaout);
+ state_save_register_item("cdp1802", device->tag, 0, cdp1802.ef);
}
INLINE void cdp1802_add(int left, int right)
diff --git a/src/emu/cpu/cop400/cop410.c b/src/emu/cpu/cop400/cop410.c
index 728f95dfe3e..f9a4a208fad 100644
--- a/src/emu/cpu/cop400/cop410.c
+++ b/src/emu/cpu/cop400/cop410.c
@@ -255,25 +255,25 @@ static CPU_INIT( cop410 )
/* register for state saving */
- state_save_register_item("cop410", index, PC);
- state_save_register_item("cop410", index, R.PREVPC);
- state_save_register_item("cop410", index, A);
- state_save_register_item("cop410", index, B);
- state_save_register_item("cop410", index, C);
- state_save_register_item("cop410", index, EN);
- state_save_register_item("cop410", index, G);
- state_save_register_item("cop410", index, Q);
- state_save_register_item("cop410", index, SA);
- state_save_register_item("cop410", index, SB);
- state_save_register_item("cop410", index, SIO);
- state_save_register_item("cop410", index, SKL);
- state_save_register_item("cop410", index, skip);
- state_save_register_item("cop410", index, skipLBI);
- state_save_register_item("cop410", index, R.G_mask);
- state_save_register_item("cop410", index, R.D_mask);
- state_save_register_item("cop410", index, R.si);
- state_save_register_item("cop410", index, R.microbus_int);
- state_save_register_item("cop410", index, R.halt);
+ state_save_register_item("cop410", device->tag, 0, PC);
+ state_save_register_item("cop410", device->tag, 0, R.PREVPC);
+ state_save_register_item("cop410", device->tag, 0, A);
+ state_save_register_item("cop410", device->tag, 0, B);
+ state_save_register_item("cop410", device->tag, 0, C);
+ state_save_register_item("cop410", device->tag, 0, EN);
+ state_save_register_item("cop410", device->tag, 0, G);
+ state_save_register_item("cop410", device->tag, 0, Q);
+ state_save_register_item("cop410", device->tag, 0, SA);
+ state_save_register_item("cop410", device->tag, 0, SB);
+ state_save_register_item("cop410", device->tag, 0, SIO);
+ state_save_register_item("cop410", device->tag, 0, SKL);
+ state_save_register_item("cop410", device->tag, 0, skip);
+ state_save_register_item("cop410", device->tag, 0, skipLBI);
+ state_save_register_item("cop410", device->tag, 0, R.G_mask);
+ state_save_register_item("cop410", device->tag, 0, R.D_mask);
+ state_save_register_item("cop410", device->tag, 0, R.si);
+ state_save_register_item("cop410", device->tag, 0, R.microbus_int);
+ state_save_register_item("cop410", device->tag, 0, R.halt);
}
static CPU_INIT( cop411 )
diff --git a/src/emu/cpu/cop400/cop420.c b/src/emu/cpu/cop400/cop420.c
index 3ace3888c59..7b580722843 100644
--- a/src/emu/cpu/cop400/cop420.c
+++ b/src/emu/cpu/cop400/cop420.c
@@ -367,31 +367,31 @@ static CPU_INIT( cop420 )
/* register for state saving */
- state_save_register_item("cop420", index, PC);
- state_save_register_item("cop420", index, R.PREVPC);
- state_save_register_item("cop420", index, A);
- state_save_register_item("cop420", index, B);
- state_save_register_item("cop420", index, C);
- state_save_register_item("cop420", index, EN);
- state_save_register_item("cop420", index, G);
- state_save_register_item("cop420", index, Q);
- state_save_register_item("cop420", index, SA);
- state_save_register_item("cop420", index, SB);
- state_save_register_item("cop420", index, SC);
- state_save_register_item("cop420", index, SIO);
- state_save_register_item("cop420", index, SKL);
- state_save_register_item("cop420", index, skip);
- state_save_register_item("cop420", index, skipLBI);
- state_save_register_item("cop420", index, R.timerlatch);
- state_save_register_item("cop420", index, R.counter);
- state_save_register_item("cop420", index, R.G_mask);
- state_save_register_item("cop420", index, R.D_mask);
- state_save_register_item("cop420", index, R.IN_mask);
- state_save_register_item("cop420", index, R.si);
- state_save_register_item("cop420", index, R.last_skip);
- state_save_register_item_array("cop420", index, R.in);
- state_save_register_item("cop420", index, R.microbus_int);
- state_save_register_item("cop420", index, R.halt);
+ state_save_register_item("cop420", device->tag, 0, PC);
+ state_save_register_item("cop420", device->tag, 0, R.PREVPC);
+ state_save_register_item("cop420", device->tag, 0, A);
+ state_save_register_item("cop420", device->tag, 0, B);
+ state_save_register_item("cop420", device->tag, 0, C);
+ state_save_register_item("cop420", device->tag, 0, EN);
+ state_save_register_item("cop420", device->tag, 0, G);
+ state_save_register_item("cop420", device->tag, 0, Q);
+ state_save_register_item("cop420", device->tag, 0, SA);
+ state_save_register_item("cop420", device->tag, 0, SB);
+ state_save_register_item("cop420", device->tag, 0, SC);
+ state_save_register_item("cop420", device->tag, 0, SIO);
+ state_save_register_item("cop420", device->tag, 0, SKL);
+ state_save_register_item("cop420", device->tag, 0, skip);
+ state_save_register_item("cop420", device->tag, 0, skipLBI);
+ state_save_register_item("cop420", device->tag, 0, R.timerlatch);
+ state_save_register_item("cop420", device->tag, 0, R.counter);
+ state_save_register_item("cop420", device->tag, 0, R.G_mask);
+ state_save_register_item("cop420", device->tag, 0, R.D_mask);
+ state_save_register_item("cop420", device->tag, 0, R.IN_mask);
+ state_save_register_item("cop420", device->tag, 0, R.si);
+ state_save_register_item("cop420", device->tag, 0, R.last_skip);
+ state_save_register_item_array("cop420", device->tag, 0, R.in);
+ state_save_register_item("cop420", device->tag, 0, R.microbus_int);
+ state_save_register_item("cop420", device->tag, 0, R.halt);
}
static CPU_INIT( cop421 )
diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.c b/src/emu/cpu/cubeqcpu/cubeqcpu.c
index e92a6ab7fbe..ba2b92f21e1 100644
--- a/src/emu/cpu/cubeqcpu/cubeqcpu.c
+++ b/src/emu/cpu/cubeqcpu/cubeqcpu.c
@@ -313,26 +313,26 @@ static STATE_POSTLOAD( cquestsnd_postload )
}
-static void cquestsnd_state_register(int index, const char *type)
+static void cquestsnd_state_register(const device_config *device, const char *type)
{
- state_save_register_item_array(type, index, cquestsnd.ram);
- state_save_register_item(type, index, cquestsnd.q);
- state_save_register_item(type, index, cquestsnd.f);
- state_save_register_item(type, index, cquestsnd.y);
- state_save_register_item(type, index, cquestsnd.cflag);
- state_save_register_item(type, index, cquestsnd.vflag);
-
- state_save_register_item(type, index, cquestsnd.pc);
- state_save_register_item(type, index, cquestsnd.platch);
- state_save_register_item(type, index, cquestsnd.rtnlatch);
- state_save_register_item(type, index, cquestsnd.adrcntr);
- state_save_register_item(type, index, cquestsnd.adrlatch);
- state_save_register_item(type, index, cquestsnd.dinlatch);
- state_save_register_item(type, index, cquestsnd.ramwlatch);
- state_save_register_item(type, index, cquestsnd.prev_ipram);
- state_save_register_item(type, index, cquestsnd.prev_ipwrt);
-
- state_save_register_postload(Machine, cquestsnd_postload, NULL);
+ state_save_register_item_array(type, device->tag, 0, cquestsnd.ram);
+ state_save_register_item(type, device->tag, 0, cquestsnd.q);
+ state_save_register_item(type, device->tag, 0, cquestsnd.f);
+ state_save_register_item(type, device->tag, 0, cquestsnd.y);
+ state_save_register_item(type, device->tag, 0, cquestsnd.cflag);
+ state_save_register_item(type, device->tag, 0, cquestsnd.vflag);
+
+ state_save_register_item(type, device->tag, 0, cquestsnd.pc);
+ state_save_register_item(type, device->tag, 0, cquestsnd.platch);
+ state_save_register_item(type, device->tag, 0, cquestsnd.rtnlatch);
+ state_save_register_item(type, device->tag, 0, cquestsnd.adrcntr);
+ state_save_register_item(type, device->tag, 0, cquestsnd.adrlatch);
+ state_save_register_item(type, device->tag, 0, cquestsnd.dinlatch);
+ state_save_register_item(type, device->tag, 0, cquestsnd.ramwlatch);
+ state_save_register_item(type, device->tag, 0, cquestsnd.prev_ipram);
+ state_save_register_item(type, device->tag, 0, cquestsnd.prev_ipwrt);
+
+ state_save_register_postload(device->machine, cquestsnd_postload, (void *)device);
}
static CPU_INIT( cquestsnd )
@@ -347,7 +347,7 @@ static CPU_INIT( cquestsnd )
/* Allocate RAM shared with 68000 */
cquestsnd.sram = malloc(4096);
- cquestsnd_state_register(index, "cquestsnd");
+ cquestsnd_state_register(device, "cquestsnd");
}
@@ -372,35 +372,35 @@ static STATE_POSTLOAD( cquestrot_postload )
}
-static void cquestrot_state_register(int index, const char *type)
+static void cquestrot_state_register(const device_config *device, const char *type)
{
- state_save_register_item_array(type, index, cquestrot.ram);
- state_save_register_item(type, index, cquestrot.q);
- state_save_register_item(type, index, cquestrot.f);
- state_save_register_item(type, index, cquestrot.y);
- state_save_register_item(type, index, cquestrot.cflag);
- state_save_register_item(type, index, cquestrot.vflag);
-
- state_save_register_item(type, index, cquestrot.pc);
- state_save_register_item(type, index, cquestrot.seqcnt);
- state_save_register_item(type, index, cquestrot.dsrclatch);
- state_save_register_item(type, index, cquestrot.rsrclatch);
- state_save_register_item(type, index, cquestrot.dynaddr);
- state_save_register_item(type, index, cquestrot.dyndata);
- state_save_register_item(type, index, cquestrot.yrlatch);
- state_save_register_item(type, index, cquestrot.ydlatch);
- state_save_register_item(type, index, cquestrot.dinlatch);
- state_save_register_item(type, index, cquestrot.divreg);
- state_save_register_item(type, index, cquestrot.linedata);
- state_save_register_item(type, index, cquestrot.lineaddr);
- state_save_register_item(type, index, cquestrot.prev_dred);
- state_save_register_item(type, index, cquestrot.prev_dwrt);
- state_save_register_item(type, index, cquestrot.wc);
-
- state_save_register_item_pointer(type, index, cquestrot.dram, 16384);
- state_save_register_item_pointer(type, index, cquestrot.sram, 2048);
-
- state_save_register_postload(Machine, cquestrot_postload, NULL);
+ state_save_register_item_array(type, device->tag, 0, cquestrot.ram);
+ state_save_register_item(type, device->tag, 0, cquestrot.q);
+ state_save_register_item(type, device->tag, 0, cquestrot.f);
+ state_save_register_item(type, device->tag, 0, cquestrot.y);
+ state_save_register_item(type, device->tag, 0, cquestrot.cflag);
+ state_save_register_item(type, device->tag, 0, cquestrot.vflag);
+
+ state_save_register_item(type, device->tag, 0, cquestrot.pc);
+ state_save_register_item(type, device->tag, 0, cquestrot.seqcnt);
+ state_save_register_item(type, device->tag, 0, cquestrot.dsrclatch);
+ state_save_register_item(type, device->tag, 0, cquestrot.rsrclatch);
+ state_save_register_item(type, device->tag, 0, cquestrot.dynaddr);
+ state_save_register_item(type, device->tag, 0, cquestrot.dyndata);
+ state_save_register_item(type, device->tag, 0, cquestrot.yrlatch);
+ state_save_register_item(type, device->tag, 0, cquestrot.ydlatch);
+ state_save_register_item(type, device->tag, 0, cquestrot.dinlatch);
+ state_save_register_item(type, device->tag, 0, cquestrot.divreg);
+ state_save_register_item(type, device->tag, 0, cquestrot.linedata);
+ state_save_register_item(type, device->tag, 0, cquestrot.lineaddr);
+ state_save_register_item(type, device->tag, 0, cquestrot.prev_dred);
+ state_save_register_item(type, device->tag, 0, cquestrot.prev_dwrt);
+ state_save_register_item(type, device->tag, 0, cquestrot.wc);
+
+ state_save_register_item_pointer(type, device->tag, 0, cquestrot.dram, 16384);
+ state_save_register_item_pointer(type, device->tag, 0, cquestrot.sram, 2048);
+
+ state_save_register_postload(device->machine, cquestrot_postload, (void *)device);
}
static CPU_INIT( cquestrot )
@@ -411,7 +411,7 @@ static CPU_INIT( cquestrot )
cquestrot.dram = malloc(16384 * sizeof(UINT16)); /* Shared with 68000 */
cquestrot.sram = malloc(2048 * sizeof(UINT16)); /* Private */
- cquestrot_state_register(index, "cquestrot");
+ cquestrot_state_register(device, "cquestrot");
}
@@ -444,39 +444,39 @@ static STATE_POSTLOAD( cquestlin_postload )
}
-static void cquestlin_state_register(int index, const char *type)
+static void cquestlin_state_register(const device_config *device, const char *type)
{
- state_save_register_item_array(type, index, cquestlin.ram);
- state_save_register_item(type, index, cquestlin.q);
- state_save_register_item(type, index, cquestlin.f);
- state_save_register_item(type, index, cquestlin.y);
- state_save_register_item(type, index, cquestlin.cflag);
- state_save_register_item(type, index, cquestlin.vflag);
-
- state_save_register_item(type, index, cquestlin.pc[0]);
- state_save_register_item(type, index, cquestlin.pc[1]);
- state_save_register_item(type, index, cquestlin.seqcnt);
- state_save_register_item(type, index, cquestlin.clatch);
- state_save_register_item(type, index, cquestlin.zlatch);
- state_save_register_item(type, index, cquestlin.xcnt);
- state_save_register_item(type, index, cquestlin.ycnt);
- state_save_register_item(type, index, cquestlin.sreg);
- state_save_register_item(type, index, cquestlin.fadlatch);
- state_save_register_item(type, index, cquestlin.badlatch);
- state_save_register_item(type, index, cquestlin.sramdlatch);
- state_save_register_item(type, index, cquestlin.fglatch);
- state_save_register_item(type, index, cquestlin.bglatch);
- state_save_register_item(type, index, cquestlin.gt0reg);
- state_save_register_item(type, index, cquestlin.fdxreg);
- state_save_register_item(type, index, cquestlin.field);
- state_save_register_item(type, index, cquestlin.clkcnt);
-
- state_save_register_item_pointer(type, index, cquestlin.sram, 4096);
- state_save_register_item_pointer(type, index, cquestlin.ptr_ram, 1024);
- state_save_register_item_pointer(type, index, cquestlin.e_stack, 32768);
- state_save_register_item_pointer(type, index, cquestlin.o_stack, 32768);
-
- state_save_register_postload(Machine, cquestlin_postload, NULL);
+ state_save_register_item_array(type, device->tag, 0, cquestlin.ram);
+ state_save_register_item(type, device->tag, 0, cquestlin.q);
+ state_save_register_item(type, device->tag, 0, cquestlin.f);
+ state_save_register_item(type, device->tag, 0, cquestlin.y);
+ state_save_register_item(type, device->tag, 0, cquestlin.cflag);
+ state_save_register_item(type, device->tag, 0, cquestlin.vflag);
+
+ state_save_register_item(type, device->tag, 0, cquestlin.pc[0]);
+ state_save_register_item(type, device->tag, 0, cquestlin.pc[1]);
+ state_save_register_item(type, device->tag, 0, cquestlin.seqcnt);
+ state_save_register_item(type, device->tag, 0, cquestlin.clatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.zlatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.xcnt);
+ state_save_register_item(type, device->tag, 0, cquestlin.ycnt);
+ state_save_register_item(type, device->tag, 0, cquestlin.sreg);
+ state_save_register_item(type, device->tag, 0, cquestlin.fadlatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.badlatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.sramdlatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.fglatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.bglatch);
+ state_save_register_item(type, device->tag, 0, cquestlin.gt0reg);
+ state_save_register_item(type, device->tag, 0, cquestlin.fdxreg);
+ state_save_register_item(type, device->tag, 0, cquestlin.field);
+ state_save_register_item(type, device->tag, 0, cquestlin.clkcnt);
+
+ state_save_register_item_pointer(type, device->tag, 0, cquestlin.sram, 4096);
+ state_save_register_item_pointer(type, device->tag, 0, cquestlin.ptr_ram, 1024);
+ state_save_register_item_pointer(type, device->tag, 0, cquestlin.e_stack, 32768);
+ state_save_register_item_pointer(type, device->tag, 0, cquestlin.o_stack, 32768);
+
+ state_save_register_postload(device->machine, cquestlin_postload, (void *)device);
}
static CPU_INIT( cquestlin )
@@ -489,7 +489,7 @@ static CPU_INIT( cquestlin )
cquestlin.e_stack = malloc(32768 * sizeof(UINT32)); /* Stack DRAM: 32kx20 */
cquestlin.o_stack = malloc(32768 * sizeof(UINT32)); /* Stack DRAM: 32kx20 */
- cquestlin_state_register(index, "cquestlin");
+ cquestlin_state_register(device, "cquestlin");
}
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c
index 1a82df81115..c61ed5c18c0 100644
--- a/src/emu/cpu/dsp56k/dsp56k.c
+++ b/src/emu/cpu/dsp56k/dsp56k.c
@@ -395,7 +395,7 @@ static CPU_INIT( dsp56k )
core.reset_state = FALSE;
/* Save the core's state */
- // state_save_register_item("dsp56k", index, modA_state);
+ // state_save_register_item("dsp56k", device->tag, 0, modA_state);
// ...
//core.config = device->static_config;
diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c
index 075ba0e3179..55177c51c16 100644
--- a/src/emu/cpu/e132xs/e132xs.c
+++ b/src/emu/cpu/e132xs/e132xs.c
@@ -1568,15 +1568,15 @@ static void set_irq_line(int irqline, int state)
static void hyperstone_init(const device_config *device, int index, int clock, cpu_irq_callback irqcallback, int scale_mask)
{
- state_save_register_item_array("E132XS", index, hyperstone.global_regs);
- state_save_register_item_array("E132XS", index, hyperstone.local_regs);
- state_save_register_item("E132XS", index, hyperstone.ppc);
- state_save_register_item("E132XS", index, hyperstone.trap_entry);
- state_save_register_item("E132XS", index, hyperstone.delay.delay_pc);
- state_save_register_item("E132XS", index, hyperstone.instruction_length);
- state_save_register_item("E132XS", index, hyperstone.intblock);
- state_save_register_item("E132XS", index, hyperstone.delay.delay_cmd);
- state_save_register_item("E132XS", index, hyperstone.tr_clocks_per_tick);
+ state_save_register_item_array("E132XS", device->tag, 0, hyperstone.global_regs);
+ state_save_register_item_array("E132XS", device->tag, 0, hyperstone.local_regs);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.ppc);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.trap_entry);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.delay.delay_pc);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.instruction_length);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.intblock);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.delay.delay_cmd);
+ state_save_register_item("E132XS", device->tag, 0, hyperstone.tr_clocks_per_tick);
hyperstone.irq_callback = irqcallback;
hyperstone.device = device;
diff --git a/src/emu/cpu/g65816/g65816.c b/src/emu/cpu/g65816/g65816.c
index d0d00663895..b4b94d535d9 100644
--- a/src/emu/cpu/g65816/g65816.c
+++ b/src/emu/cpu/g65816/g65816.c
@@ -331,30 +331,30 @@ static CPU_INIT( g65816 )
g65816_set_irq_callback(irqcallback);
g65816i_cpu.device = device;
- state_save_register_item("G65816", index, g65816i_cpu.a);
- state_save_register_item("G65816", index, g65816i_cpu.b);
- state_save_register_item("G65816", index, g65816i_cpu.x);
- state_save_register_item("G65816", index, g65816i_cpu.y);
- state_save_register_item("G65816", index, g65816i_cpu.s);
- state_save_register_item("G65816", index, g65816i_cpu.pc);
- state_save_register_item("G65816", index, g65816i_cpu.ppc);
- state_save_register_item("G65816", index, g65816i_cpu.pb);
- state_save_register_item("G65816", index, g65816i_cpu.db);
- state_save_register_item("G65816", index, g65816i_cpu.d);
- state_save_register_item("G65816", index, g65816i_cpu.flag_e);
- state_save_register_item("G65816", index, g65816i_cpu.flag_m);
- state_save_register_item("G65816", index, g65816i_cpu.flag_x);
- state_save_register_item("G65816", index, g65816i_cpu.flag_n);
- state_save_register_item("G65816", index, g65816i_cpu.flag_v);
- state_save_register_item("G65816", index, g65816i_cpu.flag_d);
- state_save_register_item("G65816", index, g65816i_cpu.flag_i);
- state_save_register_item("G65816", index, g65816i_cpu.flag_z);
- state_save_register_item("G65816", index, g65816i_cpu.flag_c);
- state_save_register_item("G65816", index, g65816i_cpu.line_irq);
- state_save_register_item("G65816", index, g65816i_cpu.line_nmi);
- state_save_register_item("G65816", index, g65816i_cpu.ir);
- state_save_register_item("G65816", index, g65816i_cpu.irq_delay);
- state_save_register_item("G65816", index, g65816i_cpu.stopped);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.a);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.b);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.x);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.y);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.s);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.pc);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.ppc);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.pb);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.db);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.d);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_e);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_m);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_x);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_n);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_v);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_d);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_i);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_z);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.flag_c);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.line_irq);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.line_nmi);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.ir);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.irq_delay);
+ state_save_register_item("G65816", device->tag, 0, g65816i_cpu.stopped);
state_save_register_postload(device->machine, g65816_restore_state, NULL);
}
diff --git a/src/emu/cpu/h6280/h6280.c b/src/emu/cpu/h6280/h6280.c
index 5257c7611c8..0077c17af6a 100644
--- a/src/emu/cpu/h6280/h6280.c
+++ b/src/emu/cpu/h6280/h6280.c
@@ -159,32 +159,32 @@ static void set_irq_line(int irqline, int state);
/*****************************************************************************/
static CPU_INIT( h6280 )
{
- state_save_register_item("h6280", index, h6280.ppc.w.l);
- state_save_register_item("h6280", index, h6280.pc.w.l);
- state_save_register_item("h6280", index, h6280.sp.w.l);
- state_save_register_item("h6280", index, h6280.zp.w.l);
- state_save_register_item("h6280", index, h6280.ea.w.l);
- state_save_register_item("h6280", index, h6280.a);
- state_save_register_item("h6280", index, h6280.x);
- state_save_register_item("h6280", index, h6280.y);
- state_save_register_item("h6280", index, h6280.p);
- state_save_register_item_array("h6280", index, h6280.mmr);
- state_save_register_item("h6280", index, h6280.irq_mask);
- state_save_register_item("h6280", index, h6280.timer_status);
- state_save_register_item("h6280", index, h6280.timer_ack);
- state_save_register_item("h6280", index, h6280.clocks_per_cycle);
- state_save_register_item("h6280", index, h6280.timer_value);
- state_save_register_item("h6280", index, h6280.timer_load);
- state_save_register_item("h6280", index, h6280.nmi_state);
- state_save_register_item("h6280", index, h6280.irq_state[0]);
- state_save_register_item("h6280", index, h6280.irq_state[1]);
- state_save_register_item("h6280", index, h6280.irq_state[2]);
- state_save_register_item("h6280", index, h6280.irq_pending);
+ state_save_register_item("h6280", device->tag, 0, h6280.ppc.w.l);
+ state_save_register_item("h6280", device->tag, 0, h6280.pc.w.l);
+ state_save_register_item("h6280", device->tag, 0, h6280.sp.w.l);
+ state_save_register_item("h6280", device->tag, 0, h6280.zp.w.l);
+ state_save_register_item("h6280", device->tag, 0, h6280.ea.w.l);
+ state_save_register_item("h6280", device->tag, 0, h6280.a);
+ state_save_register_item("h6280", device->tag, 0, h6280.x);
+ state_save_register_item("h6280", device->tag, 0, h6280.y);
+ state_save_register_item("h6280", device->tag, 0, h6280.p);
+ state_save_register_item_array("h6280", device->tag, 0, h6280.mmr);
+ state_save_register_item("h6280", device->tag, 0, h6280.irq_mask);
+ state_save_register_item("h6280", device->tag, 0, h6280.timer_status);
+ state_save_register_item("h6280", device->tag, 0, h6280.timer_ack);
+ state_save_register_item("h6280", device->tag, 0, h6280.clocks_per_cycle);
+ state_save_register_item("h6280", device->tag, 0, h6280.timer_value);
+ state_save_register_item("h6280", device->tag, 0, h6280.timer_load);
+ state_save_register_item("h6280", device->tag, 0, h6280.nmi_state);
+ state_save_register_item("h6280", device->tag, 0, h6280.irq_state[0]);
+ state_save_register_item("h6280", device->tag, 0, h6280.irq_state[1]);
+ state_save_register_item("h6280", device->tag, 0, h6280.irq_state[2]);
+ state_save_register_item("h6280", device->tag, 0, h6280.irq_pending);
#if LAZY_FLAGS
- state_save_register_item("h6280", index, h6280.NZ);
+ state_save_register_item("h6280", device->tag, 0, h6280.NZ);
#endif
- state_save_register_item("h6280", index, h6280.io_buffer);
+ state_save_register_item("h6280", device->tag, 0, h6280.io_buffer);
h6280.irq_callback = irqcallback;
h6280.device = device;
diff --git a/src/emu/cpu/h83002/h83002.c b/src/emu/cpu/h83002/h83002.c
index d1e86f61a50..bf2d14db2df 100644
--- a/src/emu/cpu/h83002/h83002.c
+++ b/src/emu/cpu/h83002/h83002.c
@@ -326,17 +326,17 @@ static CPU_INIT( h8 )
h8.irq_cb = irqcallback;
h8.device = device;
- state_save_register_item("H8/3002", index, h8.h8err);
- state_save_register_item_array("H8/3002", index, h8.regs);
- state_save_register_item("H8/3002", index, h8.pc);
- state_save_register_item("H8/3002", index, h8.ppc);
- state_save_register_item("H8/3002", index, h8.h8_IRQrequestH);
- state_save_register_item("H8/3002", index, h8.h8_IRQrequestL);
- state_save_register_item("H8/3002", index, h8.ccr);
-
- state_save_register_item_array("H8/3002", index, h8.per_regs);
- state_save_register_item("H8/3002", index, h8.h8TSTR);
- state_save_register_item_array("H8/3002", index, h8.h8TCNT);
+ state_save_register_item("H8/3002", device->tag, 0, h8.h8err);
+ state_save_register_item_array("H8/3002", device->tag, 0, h8.regs);
+ state_save_register_item("H8/3002", device->tag, 0, h8.pc);
+ state_save_register_item("H8/3002", device->tag, 0, h8.ppc);
+ state_save_register_item("H8/3002", device->tag, 0, h8.h8_IRQrequestH);
+ state_save_register_item("H8/3002", device->tag, 0, h8.h8_IRQrequestL);
+ state_save_register_item("H8/3002", device->tag, 0, h8.ccr);
+
+ state_save_register_item_array("H8/3002", device->tag, 0, h8.per_regs);
+ state_save_register_item("H8/3002", device->tag, 0, h8.h8TSTR);
+ state_save_register_item_array("H8/3002", device->tag, 0, h8.h8TCNT);
state_save_register_postload(device->machine, h8_onstateload, NULL);
diff --git a/src/emu/cpu/hd6309/hd6309.c b/src/emu/cpu/hd6309/hd6309.c
index 272985da935..846c44f80f1 100644
--- a/src/emu/cpu/hd6309/hd6309.c
+++ b/src/emu/cpu/hd6309/hd6309.c
@@ -529,20 +529,20 @@ static CPU_INIT( hd6309 )
m68_state->regTable[2] = &(B);
m68_state->regTable[3] = &m68_state->dummy_byte;
- state_save_register_item("hd6309", index, PC);
- state_save_register_item("hd6309", index, U);
- state_save_register_item("hd6309", index, S);
- state_save_register_item("hd6309", index, X);
- state_save_register_item("hd6309", index, Y);
- state_save_register_item("hd6309", index, V);
- state_save_register_item("hd6309", index, DP);
- state_save_register_item("hd6309", index, CC);
- state_save_register_item("hd6309", index, MD);
+ state_save_register_item("hd6309", device->tag, 0, PC);
+ state_save_register_item("hd6309", device->tag, 0, U);
+ state_save_register_item("hd6309", device->tag, 0, S);
+ state_save_register_item("hd6309", device->tag, 0, X);
+ state_save_register_item("hd6309", device->tag, 0, Y);
+ state_save_register_item("hd6309", device->tag, 0, V);
+ state_save_register_item("hd6309", device->tag, 0, DP);
+ state_save_register_item("hd6309", device->tag, 0, CC);
+ state_save_register_item("hd6309", device->tag, 0, MD);
state_save_register_postload(device->machine, hd6309_postload, (void *) device);
- state_save_register_item("hd6309", index, m68_state->int_state);
- state_save_register_item("hd6309", index, m68_state->nmi_state);
- state_save_register_item("hd6309", index, m68_state->irq_state[0]);
- state_save_register_item("hd6309", index, m68_state->irq_state[1]);
+ state_save_register_item("hd6309", device->tag, 0, m68_state->int_state);
+ state_save_register_item("hd6309", device->tag, 0, m68_state->nmi_state);
+ state_save_register_item("hd6309", device->tag, 0, m68_state->irq_state[0]);
+ state_save_register_item("hd6309", device->tag, 0, m68_state->irq_state[1]);
}
/****************************************************************************/
diff --git a/src/emu/cpu/i386/i386.c b/src/emu/cpu/i386/i386.c
index a12a54ecfc6..5d15124e233 100644
--- a/src/emu/cpu/i386/i386.c
+++ b/src/emu/cpu/i386/i386.c
@@ -525,59 +525,59 @@ static CPU_INIT( i386 )
I.irq_callback = irqcallback;
I.device = device;
- state_save_register_item_array(state_type, index, I.reg.d);
- state_save_register_item(state_type, index, I.sreg[ES].selector);
- state_save_register_item(state_type, index, I.sreg[ES].base);
- state_save_register_item(state_type, index, I.sreg[ES].limit);
- state_save_register_item(state_type, index, I.sreg[ES].flags);
- state_save_register_item(state_type, index, I.sreg[CS].selector);
- state_save_register_item(state_type, index, I.sreg[CS].base);
- state_save_register_item(state_type, index, I.sreg[CS].limit);
- state_save_register_item(state_type, index, I.sreg[CS].flags);
- state_save_register_item(state_type, index, I.sreg[SS].selector);
- state_save_register_item(state_type, index, I.sreg[SS].base);
- state_save_register_item(state_type, index, I.sreg[SS].limit);
- state_save_register_item(state_type, index, I.sreg[SS].flags);
- state_save_register_item(state_type, index, I.sreg[DS].selector);
- state_save_register_item(state_type, index, I.sreg[DS].base);
- state_save_register_item(state_type, index, I.sreg[DS].limit);
- state_save_register_item(state_type, index, I.sreg[DS].flags);
- state_save_register_item(state_type, index, I.sreg[FS].selector);
- state_save_register_item(state_type, index, I.sreg[FS].base);
- state_save_register_item(state_type, index, I.sreg[FS].limit);
- state_save_register_item(state_type, index, I.sreg[FS].flags);
- state_save_register_item(state_type, index, I.sreg[GS].selector);
- state_save_register_item(state_type, index, I.sreg[GS].base);
- state_save_register_item(state_type, index, I.sreg[GS].limit);
- state_save_register_item(state_type, index, I.sreg[GS].flags);
- state_save_register_item(state_type, index, I.eip);
- state_save_register_item(state_type, index, I.prev_eip);
- state_save_register_item(state_type, index, I.CF);
- state_save_register_item(state_type, index, I.DF);
- state_save_register_item(state_type, index, I.SF);
- state_save_register_item(state_type, index, I.OF);
- state_save_register_item(state_type, index, I.ZF);
- state_save_register_item(state_type, index, I.PF);
- state_save_register_item(state_type, index, I.AF);
- state_save_register_item(state_type, index, I.IF);
- state_save_register_item(state_type, index, I.TF);
- state_save_register_item_array(state_type, index, I.cr);
- state_save_register_item_array(state_type, index, I.dr);
- state_save_register_item_array(state_type, index, I.tr);
- state_save_register_item(state_type, index, I.idtr.base);
- state_save_register_item(state_type, index, I.idtr.limit);
- state_save_register_item(state_type, index, I.gdtr.base);
- state_save_register_item(state_type, index, I.gdtr.limit);
- state_save_register_item(state_type, index, I.task.base);
- state_save_register_item(state_type, index, I.task.segment);
- state_save_register_item(state_type, index, I.task.limit);
- state_save_register_item(state_type, index, I.task.flags);
- state_save_register_item(state_type, index, I.ldtr.base);
- state_save_register_item(state_type, index, I.ldtr.segment);
- state_save_register_item(state_type, index, I.ldtr.limit);
- state_save_register_item(state_type, index, I.ldtr.flags);
- state_save_register_item(state_type, index, I.irq_state);
- state_save_register_item(state_type, index, I.performed_intersegment_jump);
+ state_save_register_item_array(state_type, device->tag, 0, I.reg.d);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[ES].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[ES].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[ES].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[ES].flags);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[CS].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[CS].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[CS].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[CS].flags);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[SS].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[SS].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[SS].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[SS].flags);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[DS].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[DS].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[DS].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[DS].flags);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[FS].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[FS].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[FS].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[FS].flags);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[GS].selector);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[GS].base);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[GS].limit);
+ state_save_register_item(state_type, device->tag, 0, I.sreg[GS].flags);
+ state_save_register_item(state_type, device->tag, 0, I.eip);
+ state_save_register_item(state_type, device->tag, 0, I.prev_eip);
+ state_save_register_item(state_type, device->tag, 0, I.CF);
+ state_save_register_item(state_type, device->tag, 0, I.DF);
+ state_save_register_item(state_type, device->tag, 0, I.SF);
+ state_save_register_item(state_type, device->tag, 0, I.OF);
+ state_save_register_item(state_type, device->tag, 0, I.ZF);
+ state_save_register_item(state_type, device->tag, 0, I.PF);
+ state_save_register_item(state_type, device->tag, 0, I.AF);
+ state_save_register_item(state_type, device->tag, 0, I.IF);
+ state_save_register_item(state_type, device->tag, 0, I.TF);
+ state_save_register_item_array(state_type, device->tag, 0, I.cr);
+ state_save_register_item_array(state_type, device->tag, 0, I.dr);
+ state_save_register_item_array(state_type, device->tag, 0, I.tr);
+ state_save_register_item(state_type, device->tag, 0, I.idtr.base);
+ state_save_register_item(state_type, device->tag, 0, I.idtr.limit);
+ state_save_register_item(state_type, device->tag, 0, I.gdtr.base);
+ state_save_register_item(state_type, device->tag, 0, I.gdtr.limit);
+ state_save_register_item(state_type, device->tag, 0, I.task.base);
+ state_save_register_item(state_type, device->tag, 0, I.task.segment);
+ state_save_register_item(state_type, device->tag, 0, I.task.limit);
+ state_save_register_item(state_type, device->tag, 0, I.task.flags);
+ state_save_register_item(state_type, device->tag, 0, I.ldtr.base);
+ state_save_register_item(state_type, device->tag, 0, I.ldtr.segment);
+ state_save_register_item(state_type, device->tag, 0, I.ldtr.limit);
+ state_save_register_item(state_type, device->tag, 0, I.ldtr.flags);
+ state_save_register_item(state_type, device->tag, 0, I.irq_state);
+ state_save_register_item(state_type, device->tag, 0, I.performed_intersegment_jump);
state_save_register_postload(device->machine, i386_postload, NULL);
}
diff --git a/src/emu/cpu/i8085/i8085.c b/src/emu/cpu/i8085/i8085.c
index 7df157cf818..2f46ff19b25 100644
--- a/src/emu/cpu/i8085/i8085.c
+++ b/src/emu/cpu/i8085/i8085.c
@@ -1363,21 +1363,21 @@ static CPU_INIT( i8085 )
I.irq_callback = irqcallback;
I.device = device;
- state_save_register_item("i8085", index, I.AF.w.l);
- state_save_register_item("i8085", index, I.BC.w.l);
- state_save_register_item("i8085", index, I.DE.w.l);
- state_save_register_item("i8085", index, I.HL.w.l);
- state_save_register_item("i8085", index, I.SP.w.l);
- state_save_register_item("i8085", index, I.PC.w.l);
- state_save_register_item("i8085", index, I.HALT);
- state_save_register_item("i8085", index, I.IM);
- state_save_register_item("i8085", index, I.IREQ);
- state_save_register_item("i8085", index, I.ISRV);
- state_save_register_item("i8085", index, I.INTR);
- state_save_register_item("i8085", index, I.IRQ2);
- state_save_register_item("i8085", index, I.IRQ1);
- state_save_register_item("i8085", index, I.STATUS);
- state_save_register_item_array("i8085", index, I.irq_state);
+ state_save_register_item("i8085", device->tag, 0, I.AF.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.BC.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.DE.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.HL.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.SP.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.PC.w.l);
+ state_save_register_item("i8085", device->tag, 0, I.HALT);
+ state_save_register_item("i8085", device->tag, 0, I.IM);
+ state_save_register_item("i8085", device->tag, 0, I.IREQ);
+ state_save_register_item("i8085", device->tag, 0, I.ISRV);
+ state_save_register_item("i8085", device->tag, 0, I.INTR);
+ state_save_register_item("i8085", device->tag, 0, I.IRQ2);
+ state_save_register_item("i8085", device->tag, 0, I.IRQ1);
+ state_save_register_item("i8085", device->tag, 0, I.STATUS);
+ state_save_register_item_array("i8085", device->tag, 0, I.irq_state);
}
/****************************************************************************
@@ -1600,21 +1600,21 @@ static CPU_INIT( i8080 )
I.irq_callback = irqcallback;
I.device = device;
- state_save_register_item("i8080", index, I.AF.w.l);
- state_save_register_item("i8080", index, I.BC.w.l);
- state_save_register_item("i8080", index, I.DE.w.l);
- state_save_register_item("i8080", index, I.HL.w.l);
- state_save_register_item("i8080", index, I.SP.w.l);
- state_save_register_item("i8080", index, I.PC.w.l);
- state_save_register_item("i8080", index, I.HALT);
- state_save_register_item("i8085", index, I.IM);
- state_save_register_item("i8080", index, I.IREQ);
- state_save_register_item("i8080", index, I.ISRV);
- state_save_register_item("i8080", index, I.INTR);
- state_save_register_item("i8080", index, I.IRQ2);
- state_save_register_item("i8080", index, I.IRQ1);
- state_save_register_item("i8080", index, I.STATUS);
- state_save_register_item_array("i8080", index, I.irq_state);
+ state_save_register_item("i8080", device->tag, 0, I.AF.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.BC.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.DE.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.HL.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.SP.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.PC.w.l);
+ state_save_register_item("i8080", device->tag, 0, I.HALT);
+ state_save_register_item("i8085", device->tag, 0, I.IM);
+ state_save_register_item("i8080", device->tag, 0, I.IREQ);
+ state_save_register_item("i8080", device->tag, 0, I.ISRV);
+ state_save_register_item("i8080", device->tag, 0, I.INTR);
+ state_save_register_item("i8080", device->tag, 0, I.IRQ2);
+ state_save_register_item("i8080", device->tag, 0, I.IRQ1);
+ state_save_register_item("i8080", device->tag, 0, I.STATUS);
+ state_save_register_item_array("i8080", device->tag, 0, I.irq_state);
}
static void i8080_set_irq_line(int irqline, int state)
diff --git a/src/emu/cpu/i86/i286.c b/src/emu/cpu/i86/i286.c
index 59c1715dee8..295adc42172 100644
--- a/src/emu/cpu/i86/i286.c
+++ b/src/emu/cpu/i86/i286.c
@@ -251,40 +251,40 @@ static CPU_DISASSEMBLE( i80286 )
static CPU_INIT( i80286 )
{
static const char type[] = "80286";
- state_save_register_item_array(type, index, I.regs.w);
- state_save_register_item(type, index, I.amask);
- state_save_register_item(type, index, I.pc);
- state_save_register_item(type, index, I.prevpc);
- state_save_register_item(type, index, I.msw);
- state_save_register_item_array(type, index, I.base);
- state_save_register_item_array(type, index, I.sregs);
- state_save_register_item_array(type, index, I.limit);
- state_save_register_item_array(type, index, I.rights);
- state_save_register_item(type, index, I.gdtr.base);
- state_save_register_item(type, index, I.gdtr.limit);
- state_save_register_item(type, index, I.idtr.base);
- state_save_register_item(type, index, I.idtr.limit);
- state_save_register_item(type, index, I.ldtr.sel);
- state_save_register_item(type, index, I.ldtr.base);
- state_save_register_item(type, index, I.ldtr.limit);
- state_save_register_item(type, index, I.ldtr.rights);
- state_save_register_item(type, index, I.tr.sel);
- state_save_register_item(type, index, I.tr.base);
- state_save_register_item(type, index, I.tr.limit);
- state_save_register_item(type, index, I.tr.rights);
- state_save_register_item(type, index, I.AuxVal);
- state_save_register_item(type, index, I.OverVal);
- state_save_register_item(type, index, I.SignVal);
- state_save_register_item(type, index, I.ZeroVal);
- state_save_register_item(type, index, I.CarryVal);
- state_save_register_item(type, index, I.DirVal);
- state_save_register_item(type, index, I.ParityVal);
- state_save_register_item(type, index, I.TF);
- state_save_register_item(type, index, I.IF);
- state_save_register_item(type, index, I.int_vector);
- state_save_register_item(type, index, I.nmi_state);
- state_save_register_item(type, index, I.irq_state);
- state_save_register_item(type, index, I.extra_cycles);
+ state_save_register_item_array(type, device->tag, 0, I.regs.w);
+ state_save_register_item(type, device->tag, 0, I.amask);
+ state_save_register_item(type, device->tag, 0, I.pc);
+ state_save_register_item(type, device->tag, 0, I.prevpc);
+ state_save_register_item(type, device->tag, 0, I.msw);
+ state_save_register_item_array(type, device->tag, 0, I.base);
+ state_save_register_item_array(type, device->tag, 0, I.sregs);
+ state_save_register_item_array(type, device->tag, 0, I.limit);
+ state_save_register_item_array(type, device->tag, 0, I.rights);
+ state_save_register_item(type, device->tag, 0, I.gdtr.base);
+ state_save_register_item(type, device->tag, 0, I.gdtr.limit);
+ state_save_register_item(type, device->tag, 0, I.idtr.base);
+ state_save_register_item(type, device->tag, 0, I.idtr.limit);
+ state_save_register_item(type, device->tag, 0, I.ldtr.sel);
+ state_save_register_item(type, device->tag, 0, I.ldtr.base);
+ state_save_register_item(type, device->tag, 0, I.ldtr.limit);
+ state_save_register_item(type, device->tag, 0, I.ldtr.rights);
+ state_save_register_item(type, device->tag, 0, I.tr.sel);
+ state_save_register_item(type, device->tag, 0, I.tr.base);
+ state_save_register_item(type, device->tag, 0, I.tr.limit);
+ state_save_register_item(type, device->tag, 0, I.tr.rights);
+ state_save_register_item(type, device->tag, 0, I.AuxVal);
+ state_save_register_item(type, device->tag, 0, I.OverVal);
+ state_save_register_item(type, device->tag, 0, I.SignVal);
+ state_save_register_item(type, device->tag, 0, I.ZeroVal);
+ state_save_register_item(type, device->tag, 0, I.CarryVal);
+ state_save_register_item(type, device->tag, 0, I.DirVal);
+ state_save_register_item(type, device->tag, 0, I.ParityVal);
+ state_save_register_item(type, device->tag, 0, I.TF);
+ state_save_register_item(type, device->tag, 0, I.IF);
+ state_save_register_item(type, device->tag, 0, I.int_vector);
+ state_save_register_item(type, device->tag, 0, I.nmi_state);
+ state_save_register_item(type, device->tag, 0, I.irq_state);
+ state_save_register_item(type, device->tag, 0, I.extra_cycles);
I.irq_callback = irqcallback;
I.device = device;
diff --git a/src/emu/cpu/i86/i86.c b/src/emu/cpu/i86/i86.c
index 76677a230a7..ff52ca71ed2 100644
--- a/src/emu/cpu/i86/i86.c
+++ b/src/emu/cpu/i86/i86.c
@@ -90,30 +90,30 @@ static struct i80x86_timing timing;
/***************************************************************************/
-static void i8086_state_register(int index)
+static void i8086_state_register(const device_config *device)
{
static const char type[] = "I8086";
- state_save_register_item_array(type, index, I.regs.w);
- state_save_register_item(type, index, I.pc);
- state_save_register_item(type, index, I.prevpc);
- state_save_register_item_array(type, index, I.base);
- state_save_register_item_array(type, index, I.sregs);
- state_save_register_item(type, index, I.flags);
- state_save_register_item(type, index, I.AuxVal);
- state_save_register_item(type, index, I.OverVal);
- state_save_register_item(type, index, I.SignVal);
- state_save_register_item(type, index, I.ZeroVal);
- state_save_register_item(type, index, I.CarryVal);
- state_save_register_item(type, index, I.DirVal);
- state_save_register_item(type, index, I.ParityVal);
- state_save_register_item(type, index, I.TF);
- state_save_register_item(type, index, I.IF);
- state_save_register_item(type, index, I.MF);
- state_save_register_item(type, index, I.int_vector);
- state_save_register_item(type, index, I.nmi_state);
- state_save_register_item(type, index, I.irq_state);
- state_save_register_item(type, index, I.extra_cycles);
- state_save_register_item(type, index, I.test_state); /* PJB 03/05 */
+ state_save_register_item_array(type, device->tag, 0, I.regs.w);
+ state_save_register_item(type, device->tag, 0, I.pc);
+ state_save_register_item(type, device->tag, 0, I.prevpc);
+ state_save_register_item_array(type, device->tag, 0, I.base);
+ state_save_register_item_array(type, device->tag, 0, I.sregs);
+ state_save_register_item(type, device->tag, 0, I.flags);
+ state_save_register_item(type, device->tag, 0, I.AuxVal);
+ state_save_register_item(type, device->tag, 0, I.OverVal);
+ state_save_register_item(type, device->tag, 0, I.SignVal);
+ state_save_register_item(type, device->tag, 0, I.ZeroVal);
+ state_save_register_item(type, device->tag, 0, I.CarryVal);
+ state_save_register_item(type, device->tag, 0, I.DirVal);
+ state_save_register_item(type, device->tag, 0, I.ParityVal);
+ state_save_register_item(type, device->tag, 0, I.TF);
+ state_save_register_item(type, device->tag, 0, I.IF);
+ state_save_register_item(type, device->tag, 0, I.MF);
+ state_save_register_item(type, device->tag, 0, I.int_vector);
+ state_save_register_item(type, device->tag, 0, I.nmi_state);
+ state_save_register_item(type, device->tag, 0, I.irq_state);
+ state_save_register_item(type, device->tag, 0, I.extra_cycles);
+ state_save_register_item(type, device->tag, 0, I.test_state); /* PJB 03/05 */
}
static CPU_INIT( i8086 )
@@ -144,7 +144,7 @@ static CPU_INIT( i8086 )
I.irq_callback = irqcallback;
I.device = device;
- i8086_state_register(index);
+ i8086_state_register(device);
configure_memory_16bit();
}
diff --git a/src/emu/cpu/i8x41/i8x41.c b/src/emu/cpu/i8x41/i8x41.c
index 1bf19f08522..4a9a0039d52 100644
--- a/src/emu/cpu/i8x41/i8x41.c
+++ b/src/emu/cpu/i8x41/i8x41.c
@@ -842,21 +842,21 @@ static CPU_INIT( i8x41 )
upi41_state->subtype = 8041;
upi41_state->ram_mask = I8X41_intRAM_MASK;
- state_save_register_item("i8x41", index, upi41_state->ppc);
- state_save_register_item("i8x41", index, upi41_state->pc);
- state_save_register_item("i8x41", index, upi41_state->timer);
- state_save_register_item("i8x41", index, upi41_state->prescaler);
- state_save_register_item("i8x41", index, upi41_state->subtype);
- state_save_register_item("i8x41", index, upi41_state->a);
- state_save_register_item("i8x41", index, upi41_state->psw);
- state_save_register_item("i8x41", index, upi41_state->state);
- state_save_register_item("i8x41", index, upi41_state->enable);
- state_save_register_item("i8x41", index, upi41_state->control);
- state_save_register_item("i8x41", index, upi41_state->dbbi);
- state_save_register_item("i8x41", index, upi41_state->dbbo);
- state_save_register_item("i8x41", index, upi41_state->p1);
- state_save_register_item("i8x41", index, upi41_state->p2);
- state_save_register_item("i8x41", index, upi41_state->p2_hs);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->ppc);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->pc);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->timer);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->prescaler);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->subtype);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->a);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->psw);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->state);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->enable);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->control);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->dbbi);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->dbbo);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->p1);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->p2);
+ state_save_register_item("i8x41", device->tag, 0, upi41_state->p2_hs);
}
static CPU_INIT( i8042 )
diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c
index e271d43cd4e..d2fed18b72e 100644
--- a/src/emu/cpu/i960/i960.c
+++ b/src/emu/cpu/i960/i960.c
@@ -2075,16 +2075,16 @@ static CPU_INIT( i960 )
i960_state->irq_cb = irqcallback;
i960_state->device = device;
- state_save_register_item("i960", index, i960_state->PIP);
- state_save_register_item("i960", index, i960_state->SAT);
- state_save_register_item("i960", index, i960_state->PRCB);
- state_save_register_item("i960", index, i960_state->PC);
- state_save_register_item("i960", index, i960_state->AC);
- state_save_register_item("i960", index, i960_state->ICR);
- state_save_register_item_array("i960", index, i960_state->r);
- state_save_register_item_array("i960", index, i960_state->fp);
- state_save_register_item_2d_array("i960", index, i960_state->rcache);
- state_save_register_item_array("i960", index, i960_state->rcache_frame_addr);
+ state_save_register_item("i960", device->tag, 0, i960_state->PIP);
+ state_save_register_item("i960", device->tag, 0, i960_state->SAT);
+ state_save_register_item("i960", device->tag, 0, i960_state->PRCB);
+ state_save_register_item("i960", device->tag, 0, i960_state->PC);
+ state_save_register_item("i960", device->tag, 0, i960_state->AC);
+ state_save_register_item("i960", device->tag, 0, i960_state->ICR);
+ state_save_register_item_array("i960", device->tag, 0, i960_state->r);
+ state_save_register_item_array("i960", device->tag, 0, i960_state->fp);
+ state_save_register_item_2d_array("i960", device->tag, 0, i960_state->rcache);
+ state_save_register_item_array("i960", device->tag, 0, i960_state->rcache_frame_addr);
}
static CPU_DISASSEMBLE( i960 )
diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/emu/cpu/jaguar/jaguar.c
index b11bed0a66d..0e5ad40ba7b 100644
--- a/src/emu/cpu/jaguar/jaguar.c
+++ b/src/emu/cpu/jaguar/jaguar.c
@@ -423,13 +423,13 @@ static STATE_POSTLOAD( jaguar_postload )
check_irqs();
}
-static void jaguar_state_register(int index, const char *type)
+static void jaguar_state_register(const device_config *device, const char *type)
{
- state_save_register_item_array(type, index, jaguar.r);
- state_save_register_item_array(type, index, jaguar.a);
- state_save_register_item_array(type, index, jaguar.ctrl);
- state_save_register_item(type, index, jaguar.ppc);
- state_save_register_postload(Machine, jaguar_postload, NULL);
+ state_save_register_item_array(type, device->tag, 0, jaguar.r);
+ state_save_register_item_array(type, device->tag, 0, jaguar.a);
+ state_save_register_item_array(type, device->tag, 0, jaguar.ctrl);
+ state_save_register_item(type, device->tag, 0, jaguar.ppc);
+ state_save_register_postload(device->machine, jaguar_postload, NULL);
}
static CPU_INIT( jaguargpu )
@@ -438,7 +438,7 @@ static CPU_INIT( jaguargpu )
memset(&jaguar, 0, sizeof(jaguar));
- jaguar_state_register(index, "jaguargpu");
+ jaguar_state_register(device, "jaguargpu");
jaguar.irq_callback = irqcallback;
jaguar.device = device;
@@ -452,7 +452,7 @@ static CPU_INIT( jaguardsp )
memset(&jaguar, 0, sizeof(jaguar));
- jaguar_state_register(index, "jaguardsp");
+ jaguar_state_register(device, "jaguardsp");
jaguar.irq_callback = irqcallback;
jaguar.device = device;
diff --git a/src/emu/cpu/konami/konami.c b/src/emu/cpu/konami/konami.c
index 79aec9cc01c..e009e0f523b 100644
--- a/src/emu/cpu/konami/konami.c
+++ b/src/emu/cpu/konami/konami.c
@@ -393,18 +393,18 @@ static CPU_INIT( konami )
konami.irq_callback = irqcallback;
konami.device = device;
- state_save_register_item("KONAMI", index, PC);
- state_save_register_item("KONAMI", index, U);
- state_save_register_item("KONAMI", index, S);
- state_save_register_item("KONAMI", index, X);
- state_save_register_item("KONAMI", index, Y);
- state_save_register_item("KONAMI", index, D);
- state_save_register_item("KONAMI", index, DP);
- state_save_register_item("KONAMI", index, CC);
- state_save_register_item("KONAMI", index, konami.int_state);
- state_save_register_item("KONAMI", index, konami.nmi_state);
- state_save_register_item("KONAMI", index, konami.irq_state[0]);
- state_save_register_item("KONAMI", index, konami.irq_state[1]);
+ state_save_register_item("KONAMI", device->tag, 0, PC);
+ state_save_register_item("KONAMI", device->tag, 0, U);
+ state_save_register_item("KONAMI", device->tag, 0, S);
+ state_save_register_item("KONAMI", device->tag, 0, X);
+ state_save_register_item("KONAMI", device->tag, 0, Y);
+ state_save_register_item("KONAMI", device->tag, 0, D);
+ state_save_register_item("KONAMI", device->tag, 0, DP);
+ state_save_register_item("KONAMI", device->tag, 0, CC);
+ state_save_register_item("KONAMI", device->tag, 0, konami.int_state);
+ state_save_register_item("KONAMI", device->tag, 0, konami.nmi_state);
+ state_save_register_item("KONAMI", device->tag, 0, konami.irq_state[0]);
+ state_save_register_item("KONAMI", device->tag, 0, konami.irq_state[1]);
}
static CPU_RESET( konami )
diff --git a/src/emu/cpu/m37710/m37710.c b/src/emu/cpu/m37710/m37710.c
index d8eb66debac..4412df65611 100644
--- a/src/emu/cpu/m37710/m37710.c
+++ b/src/emu/cpu/m37710/m37710.c
@@ -992,54 +992,54 @@ static CPU_INIT( m37710 )
for (i=0; i<8; i++)
m37710i_cpu.timers[i] = timer_alloc(m37710_timer_cb, (void*)(FPTR)i);
- state_save_register_item("M377xx", index, m37710i_cpu.a);
- state_save_register_item("M377xx", index, m37710i_cpu.b);
- state_save_register_item("M377xx", index, m37710i_cpu.ba);
- state_save_register_item("M377xx", index, m37710i_cpu.bb);
- state_save_register_item("M377xx", index, m37710i_cpu.x);
- state_save_register_item("M377xx", index, m37710i_cpu.y);
- state_save_register_item("M377xx", index, m37710i_cpu.s);
- state_save_register_item("M377xx", index, m37710i_cpu.pc);
- state_save_register_item("M377xx", index, m37710i_cpu.ppc);
- state_save_register_item("M377xx", index, m37710i_cpu.pb);
- state_save_register_item("M377xx", index, m37710i_cpu.db);
- state_save_register_item("M377xx", index, m37710i_cpu.d);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_e);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_m);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_x);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_n);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_v);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_d);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_i);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_z);
- state_save_register_item("M377xx", index, m37710i_cpu.flag_c);
- state_save_register_item("M377xx", index, m37710i_cpu.line_irq);
- state_save_register_item("M377xx", index, m37710i_cpu.ipl);
- state_save_register_item("M377xx", index, m37710i_cpu.ir);
- state_save_register_item("M377xx", index, m37710i_cpu.im);
- state_save_register_item("M377xx", index, m37710i_cpu.im2);
- state_save_register_item("M377xx", index, m37710i_cpu.im3);
- state_save_register_item("M377xx", index, m37710i_cpu.im4);
- state_save_register_item("M377xx", index, m37710i_cpu.irq_delay);
- state_save_register_item("M377xx", index, m37710i_cpu.irq_level);
- state_save_register_item("M377xx", index, m37710i_cpu.stopped);
- state_save_register_item_array("M377xx", index, m37710i_cpu.m37710_regs);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[0].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[0].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[1].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[1].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[2].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[2].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[3].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[3].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[4].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[4].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[5].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[5].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[6].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[6].attoseconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[7].seconds);
- state_save_register_item("M377xx", index, m37710i_cpu.reload[7].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.a);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.b);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.ba);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.bb);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.x);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.y);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.s);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.pc);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.ppc);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.pb);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.db);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.d);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_e);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_m);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_x);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_n);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_v);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_d);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_i);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_z);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.flag_c);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.line_irq);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.ipl);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.ir);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.im);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.im2);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.im3);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.im4);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.irq_delay);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.irq_level);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.stopped);
+ state_save_register_item_array("M377xx", device->tag, 0, m37710i_cpu.m37710_regs);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[0].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[0].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[1].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[1].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[2].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[2].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[3].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[3].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[4].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[4].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[5].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[5].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[6].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[6].attoseconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[7].seconds);
+ state_save_register_item("M377xx", device->tag, 0, m37710i_cpu.reload[7].attoseconds);
state_save_register_postload(device->machine, m37710_restore_state, NULL);
}
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index ffdd13adb57..cc7c8cb8545 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -147,23 +147,23 @@ static void m6502_common_init(const device_config *device, int index, int clock,
m6502->rdmem_id = default_rdmem_id;
m6502->wrmem_id = default_wdmem_id;
- state_save_register_item(type, index, m6502->pc.w.l);
- state_save_register_item(type, index, m6502->sp.w.l);
- state_save_register_item(type, index, m6502->p);
- state_save_register_item(type, index, m6502->a);
- state_save_register_item(type, index, m6502->x);
- state_save_register_item(type, index, m6502->y);
- state_save_register_item(type, index, m6502->pending_irq);
- state_save_register_item(type, index, m6502->after_cli);
- state_save_register_item(type, index, m6502->nmi_state);
- state_save_register_item(type, index, m6502->irq_state);
- state_save_register_item(type, index, m6502->so_state);
+ state_save_register_item(type, device->tag, 0, m6502->pc.w.l);
+ state_save_register_item(type, device->tag, 0, m6502->sp.w.l);
+ state_save_register_item(type, device->tag, 0, m6502->p);
+ state_save_register_item(type, device->tag, 0, m6502->a);
+ state_save_register_item(type, device->tag, 0, m6502->x);
+ state_save_register_item(type, device->tag, 0, m6502->y);
+ state_save_register_item(type, device->tag, 0, m6502->pending_irq);
+ state_save_register_item(type, device->tag, 0, m6502->after_cli);
+ state_save_register_item(type, device->tag, 0, m6502->nmi_state);
+ state_save_register_item(type, device->tag, 0, m6502->irq_state);
+ state_save_register_item(type, device->tag, 0, m6502->so_state);
#if (HAS_M6510) || (HAS_M6510T) || (HAS_M8502) || (HAS_M7501)
if (subtype == SUBTYPE_6510)
{
- state_save_register_item(type, index, m6502->port);
- state_save_register_item(type, index, m6502->ddr);
+ state_save_register_item(type, device->tag, 0, m6502->port);
+ state_save_register_item(type, device->tag, 0, m6502->ddr);
}
#endif
}
diff --git a/src/emu/cpu/m6800/m6800.c b/src/emu/cpu/m6800/m6800.c
index bdbcb2ff905..e8f55377567 100644
--- a/src/emu/cpu/m6800/m6800.c
+++ b/src/emu/cpu/m6800/m6800.c
@@ -838,49 +838,49 @@ static TIMER_CALLBACK(m6800_rx_tick)
/****************************************************************************
* Reset registers to their initial values
****************************************************************************/
-static void state_register(m68_state_t *m68_state, const char *type, int index)
+static void state_register(m68_state_t *m68_state, const char *type)
{
- state_save_register_item(type, index, m68_state->ppc.w.l);
- state_save_register_item(type, index, m68_state->pc.w.l);
- state_save_register_item(type, index, m68_state->s.w.l);
- state_save_register_item(type, index, m68_state->x.w.l);
- state_save_register_item(type, index, m68_state->d.w.l);
- state_save_register_item(type, index, m68_state->cc);
- state_save_register_item(type, index, m68_state->wai_state);
- state_save_register_item(type, index, m68_state->nmi_state);
- state_save_register_item_array(type, index, m68_state->irq_state);
- state_save_register_item(type, index, m68_state->ic_eddge);
-
- state_save_register_item(type, index, m68_state->port1_ddr);
- state_save_register_item(type, index, m68_state->port2_ddr);
- state_save_register_item(type, index, m68_state->port3_ddr);
- state_save_register_item(type, index, m68_state->port4_ddr);
- state_save_register_item(type, index, m68_state->port1_data);
- state_save_register_item(type, index, m68_state->port2_data);
- state_save_register_item(type, index, m68_state->port3_data);
- state_save_register_item(type, index, m68_state->port4_data);
- state_save_register_item(type, index, m68_state->tcsr);
- state_save_register_item(type, index, m68_state->pending_tcsr);
- state_save_register_item(type, index, m68_state->irq2);
- state_save_register_item(type, index, m68_state->ram_ctrl);
-
- state_save_register_item(type, index, m68_state->counter.d);
- state_save_register_item(type, index, m68_state->output_compare.d);
- state_save_register_item(type, index, m68_state->input_capture);
- state_save_register_item(type, index, m68_state->timer_over.d);
-
- state_save_register_item(type, index, m68_state->clock);
- state_save_register_item(type, index, m68_state->trcsr);
- state_save_register_item(type, index, m68_state->rmcr);
- state_save_register_item(type, index, m68_state->rdr);
- state_save_register_item(type, index, m68_state->tdr);
- state_save_register_item(type, index, m68_state->rsr);
- state_save_register_item(type, index, m68_state->tsr);
- state_save_register_item(type, index, m68_state->rxbits);
- state_save_register_item(type, index, m68_state->txbits);
- state_save_register_item(type, index, m68_state->txstate);
- state_save_register_item(type, index, m68_state->trcsr_read);
- state_save_register_item(type, index, m68_state->tx);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->ppc.w.l);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->pc.w.l);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->s.w.l);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->x.w.l);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->d.w.l);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->cc);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->wai_state);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->nmi_state);
+ state_save_register_item_array(type, m68_state->device->tag, 0, m68_state->irq_state);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->ic_eddge);
+
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port1_ddr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port2_ddr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port3_ddr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port4_ddr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port1_data);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port2_data);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port3_data);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->port4_data);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->tcsr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->pending_tcsr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->irq2);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->ram_ctrl);
+
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->counter.d);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->output_compare.d);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->input_capture);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->timer_over.d);
+
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->clock);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->trcsr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->rmcr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->rdr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->tdr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->rsr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->tsr);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->rxbits);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->txbits);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->txstate);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->trcsr_read);
+ state_save_register_item(type, m68_state->device->tag, 0, m68_state->tx);
}
static CPU_INIT( m6800 )
@@ -891,7 +891,7 @@ static CPU_INIT( m6800 )
m68_state->cycles = cycles_6800;
m68_state->irq_callback = irqcallback;
m68_state->device = device;
- state_register(m68_state, "m6800", index);
+ state_register(m68_state, "m6800");
}
static CPU_RESET( m6800 )
@@ -1321,7 +1321,7 @@ static CPU_INIT( m6801 )
m68_state->m6800_rx_timer = timer_alloc(m6800_rx_tick, m68_state);
m68_state->m6800_tx_timer = timer_alloc(m6800_tx_tick, m68_state);
- state_register(m68_state, "m6801", index);
+ state_register(m68_state, "m6801");
}
#endif
@@ -1337,7 +1337,7 @@ static CPU_INIT( m6802 )
m68_state->cycles = cycles_6800;
m68_state->irq_callback = irqcallback;
m68_state->device = device;
- state_register(m68_state, "m6802", index);
+ state_register(m68_state, "m6802");
}
#endif
@@ -1358,7 +1358,7 @@ static CPU_INIT( m6803 )
m68_state->m6800_rx_timer = timer_alloc(m6800_rx_tick, m68_state);
m68_state->m6800_tx_timer = timer_alloc(m6800_tx_tick, m68_state);
- state_register(m68_state, "m6803", index);
+ state_register(m68_state, "m6803");
}
#endif
@@ -1692,7 +1692,7 @@ static CPU_INIT( m6808 )
m68_state->cycles = cycles_6800;
m68_state->irq_callback = irqcallback;
m68_state->device = device;
- state_register(m68_state, "m6808", index);
+ state_register(m68_state, "m6808");
}
#endif
@@ -1714,7 +1714,7 @@ static CPU_INIT( hd63701 )
m68_state->m6800_rx_timer = timer_alloc(m6800_rx_tick, m68_state);
m68_state->m6800_tx_timer = timer_alloc(m6800_tx_tick, m68_state);
- state_register(m68_state, "hd63701", index);
+ state_register(m68_state, "hd63701");
}
/****************************************************************************
@@ -2059,7 +2059,7 @@ static CPU_INIT( nsc8105 )
// m68_state->subtype = SUBTYPE_NSC8105;
m68_state->insn = nsc8105_insn;
m68_state->cycles = cycles_nsc8105;
- state_register(m68_state, "nsc8105", index);
+ state_register(m68_state, "nsc8105");
}
/****************************************************************************
diff --git a/src/emu/cpu/m68000/m68k.h b/src/emu/cpu/m68000/m68k.h
index 9b02524a807..bd89041b95d 100644
--- a/src/emu/cpu/m68000/m68k.h
+++ b/src/emu/cpu/m68000/m68k.h
@@ -226,7 +226,7 @@ unsigned int m68k_get_context(void* dst);
void m68k_set_context(void* dst);
/* Register the CPU state information */
-void m68k_state_register(m68ki_cpu_core *m68k, const char *type, int index);
+void m68k_state_register(m68ki_cpu_core *m68k, const char *type);
/* Peek at the internals of a CPU context. This can either be a context
diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/emu/cpu/m68000/m68kcpu.c
index c004be60759..96810b35edd 100644
--- a/src/emu/cpu/m68000/m68kcpu.c
+++ b/src/emu/cpu/m68000/m68kcpu.c
@@ -941,28 +941,28 @@ static void m68k_post_load(running_machine *machine, void *param)
m68ki_jump(m68k, REG_PC);
}
-void m68k_state_register(m68ki_cpu_core *m68k, const char *type, int index)
+void m68k_state_register(m68ki_cpu_core *m68k, const char *type)
{
/* Note, D covers A because the dar array is common, REG_A=REG_D+8 */
- state_save_register_item_array(type, index, REG_D);
- state_save_register_item(type, index, REG_PPC);
- state_save_register_item(type, index, REG_PC);
- state_save_register_item(type, index, REG_USP);
- state_save_register_item(type, index, REG_ISP);
- state_save_register_item(type, index, REG_MSP);
- state_save_register_item(type, index, m68k->vbr);
- state_save_register_item(type, index, m68k->sfc);
- state_save_register_item(type, index, m68k->dfc);
- state_save_register_item(type, index, m68k->cacr);
- state_save_register_item(type, index, m68k->caar);
- state_save_register_item(type, index, m68k_substate.sr);
- state_save_register_item(type, index, m68k->int_level);
- state_save_register_item(type, index, m68k_substate.stopped);
- state_save_register_item(type, index, m68k_substate.halted);
- state_save_register_item(type, index, m68k->pref_addr);
- state_save_register_item(type, index, m68k->pref_data);
- state_save_register_presave(Machine, m68k_prepare_substate, m68k);
- state_save_register_postload(Machine, m68k_post_load, m68k);
+ state_save_register_item_array(type, m68k->device->tag, 0, REG_D);
+ state_save_register_item(type, m68k->device->tag, 0, REG_PPC);
+ state_save_register_item(type, m68k->device->tag, 0, REG_PC);
+ state_save_register_item(type, m68k->device->tag, 0, REG_USP);
+ state_save_register_item(type, m68k->device->tag, 0, REG_ISP);
+ state_save_register_item(type, m68k->device->tag, 0, REG_MSP);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->vbr);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->sfc);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->dfc);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->cacr);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->caar);
+ state_save_register_item(type, m68k->device->tag, 0, m68k_substate.sr);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->int_level);
+ state_save_register_item(type, m68k->device->tag, 0, m68k_substate.stopped);
+ state_save_register_item(type, m68k->device->tag, 0, m68k_substate.halted);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->pref_addr);
+ state_save_register_item(type, m68k->device->tag, 0, m68k->pref_data);
+ state_save_register_presave(m68k->device->machine, m68k_prepare_substate, m68k);
+ state_save_register_postload(m68k->device->machine, m68k_post_load, m68k);
}
/* ======================================================================== */
diff --git a/src/emu/cpu/m68000/m68kmame.c b/src/emu/cpu/m68000/m68kmame.c
index 19885870550..cb0320fe0c3 100644
--- a/src/emu/cpu/m68000/m68kmame.c
+++ b/src/emu/cpu/m68000/m68kmame.c
@@ -161,7 +161,7 @@ static CPU_INIT( m68000 )
m68k->memory = interface_d16;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68000);
- m68k_state_register(m68k, "m68000", index);
+ m68k_state_register(m68k, "m68000");
m68k_set_int_ack_callback(m68k, (void *)device, (int (*)(void *param, int int_level)) irqcallback);
}
@@ -206,7 +206,7 @@ static CPU_INIT( m68008 )
m68k->memory = interface_d8;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68008);
- m68k_state_register(m68k, "m68008", index);
+ m68k_state_register(m68k, "m68008");
m68k_set_int_ack_callback(m68k, (void *)device, irqcallback);
}
@@ -253,7 +253,7 @@ static CPU_INIT( m68010 )
m68k->memory = interface_d16;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68010);
- m68k_state_register(m68k, "m68010", index);
+ m68k_state_register(m68k, "m68010");
m68k_set_int_ack_callback(m68k, (void *)device, (int (*)(void *param, int int_level)) irqcallback);
}
@@ -276,7 +276,7 @@ static CPU_INIT( m68020 )
m68k->memory = interface_d32;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68020);
- m68k_state_register(m68k, "m68020", index);
+ m68k_state_register(m68k, "m68020");
m68k_set_int_ack_callback(m68k, (void *)device, (int (*)(void *param, int int_level)) irqcallback);
}
@@ -322,7 +322,7 @@ static CPU_INIT( m68ec020 )
m68k->memory = interface_d32;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68EC020);
- m68k_state_register(m68k, "m68ec020", index);
+ m68k_state_register(m68k, "m68ec020");
m68k_set_int_ack_callback(m68k, (void *)device, (int (*)(void *param, int int_level)) irqcallback);
}
@@ -346,7 +346,7 @@ static CPU_INIT( m68040 )
m68k->memory = interface_d32;
m68k_init(m68k);
m68k_set_cpu_type(m68k, M68K_CPU_TYPE_68040);
- m68k_state_register(m68k, "m68040", index);
+ m68k_state_register(m68k, "m68040");
m68k_set_int_ack_callback(m68k, (void *)device, (int (*)(void *param, int int_level)) irqcallback);
}
diff --git a/src/emu/cpu/m6805/m6805.c b/src/emu/cpu/m6805/m6805.c
index 7810bcfd990..324f46fb75b 100644
--- a/src/emu/cpu/m6805/m6805.c
+++ b/src/emu/cpu/m6805/m6805.c
@@ -429,20 +429,20 @@ static void Interrupt(void)
}
}
-static void state_register(const char *type, int index)
+static void state_register(const char *type, const device_config *device)
{
- state_save_register_item(type, index, A);
- state_save_register_item(type, index, PC);
- state_save_register_item(type, index, S);
- state_save_register_item(type, index, X);
- state_save_register_item(type, index, CC);
- state_save_register_item(type, index, m6805.pending_interrupts);
- state_save_register_item_array(type, index, m6805.irq_state);
+ state_save_register_item(type, device->tag, 0, A);
+ state_save_register_item(type, device->tag, 0, PC);
+ state_save_register_item(type, device->tag, 0, S);
+ state_save_register_item(type, device->tag, 0, X);
+ state_save_register_item(type, device->tag, 0, CC);
+ state_save_register_item(type, device->tag, 0, m6805.pending_interrupts);
+ state_save_register_item_array(type, device->tag, 0, m6805.irq_state);
}
static CPU_INIT( m6805 )
{
- state_register("m6805", index);
+ state_register("m6805", device);
m6805.irq_callback = irqcallback;
m6805.device = device;
}
@@ -808,7 +808,7 @@ static CPU_EXECUTE( m6805 )
#if (HAS_M68705)
static CPU_INIT( m68705 )
{
- state_register("m68705", index);
+ state_register("m68705", device);
m6805.irq_callback = irqcallback;
m6805.device = device;
}
@@ -836,7 +836,7 @@ static void m68705_set_irq_line(int irqline, int state)
#if (HAS_HD63705)
static CPU_INIT( hd63705 )
{
- state_register("hd63705", index);
+ state_register("hd63705", device);
m6805.irq_callback = irqcallback;
m6805.device = device;
}
diff --git a/src/emu/cpu/m6809/m6809.c b/src/emu/cpu/m6809/m6809.c
index 8fecbc085a1..a0da7bc1fc1 100644
--- a/src/emu/cpu/m6809/m6809.c
+++ b/src/emu/cpu/m6809/m6809.c
@@ -374,18 +374,18 @@ static CPU_INIT( m6809 )
m68_state->irq_callback = irqcallback;
m68_state->device = device;
- state_save_register_item("m6809", index, PC);
- state_save_register_item("m6809", index, PPC);
- state_save_register_item("m6809", index, D);
- state_save_register_item("m6809", index, DP);
- state_save_register_item("m6809", index, U);
- state_save_register_item("m6809", index, S);
- state_save_register_item("m6809", index, X);
- state_save_register_item("m6809", index, Y);
- state_save_register_item("m6809", index, CC);
- state_save_register_item_array("m6809", index, m68_state->irq_state);
- state_save_register_item("m6809", index, m68_state->int_state);
- state_save_register_item("m6809", index, m68_state->nmi_state);
+ state_save_register_item("m6809", device->tag, 0, PC);
+ state_save_register_item("m6809", device->tag, 0, PPC);
+ state_save_register_item("m6809", device->tag, 0, D);
+ state_save_register_item("m6809", device->tag, 0, DP);
+ state_save_register_item("m6809", device->tag, 0, U);
+ state_save_register_item("m6809", device->tag, 0, S);
+ state_save_register_item("m6809", device->tag, 0, X);
+ state_save_register_item("m6809", device->tag, 0, Y);
+ state_save_register_item("m6809", device->tag, 0, CC);
+ state_save_register_item_array("m6809", device->tag, 0, m68_state->irq_state);
+ state_save_register_item("m6809", device->tag, 0, m68_state->int_state);
+ state_save_register_item("m6809", device->tag, 0, m68_state->nmi_state);
}
diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/emu/cpu/mb88xx/mb88xx.c
index 9c272af9908..c72a735e782 100644
--- a/src/emu/cpu/mb88xx/mb88xx.c
+++ b/src/emu/cpu/mb88xx/mb88xx.c
@@ -129,27 +129,27 @@ static CPU_INIT( mb88 )
mb88.irqcallback = irqcallback;
mb88.device = device;
- state_save_register_item("mb88", clock, mb88.PC);
- state_save_register_item("mb88", clock, mb88.PA);
- state_save_register_item("mb88", clock, mb88.SP[0]);
- state_save_register_item("mb88", clock, mb88.SP[1]);
- state_save_register_item("mb88", clock, mb88.SP[2]);
- state_save_register_item("mb88", clock, mb88.SP[3]);
- state_save_register_item("mb88", clock, mb88.SI);
- state_save_register_item("mb88", clock, mb88.A);
- state_save_register_item("mb88", clock, mb88.X);
- state_save_register_item("mb88", clock, mb88.Y);
- state_save_register_item("mb88", clock, mb88.st);
- state_save_register_item("mb88", clock, mb88.zf);
- state_save_register_item("mb88", clock, mb88.cf);
- state_save_register_item("mb88", clock, mb88.vf);
- state_save_register_item("mb88", clock, mb88.sf);
- state_save_register_item("mb88", clock, mb88.nf);
- state_save_register_item("mb88", clock, mb88.pio);
- state_save_register_item("mb88", clock, mb88.TH);
- state_save_register_item("mb88", clock, mb88.TL);
- state_save_register_item("mb88", clock, mb88.SB);
- state_save_register_item("mb88", clock, mb88.pending_interrupt);
+ state_save_register_item("mb88", device->tag, 0, mb88.PC);
+ state_save_register_item("mb88", device->tag, 0, mb88.PA);
+ state_save_register_item("mb88", device->tag, 0, mb88.SP[0]);
+ state_save_register_item("mb88", device->tag, 0, mb88.SP[1]);
+ state_save_register_item("mb88", device->tag, 0, mb88.SP[2]);
+ state_save_register_item("mb88", device->tag, 0, mb88.SP[3]);
+ state_save_register_item("mb88", device->tag, 0, mb88.SI);
+ state_save_register_item("mb88", device->tag, 0, mb88.A);
+ state_save_register_item("mb88", device->tag, 0, mb88.X);
+ state_save_register_item("mb88", device->tag, 0, mb88.Y);
+ state_save_register_item("mb88", device->tag, 0, mb88.st);
+ state_save_register_item("mb88", device->tag, 0, mb88.zf);
+ state_save_register_item("mb88", device->tag, 0, mb88.cf);
+ state_save_register_item("mb88", device->tag, 0, mb88.vf);
+ state_save_register_item("mb88", device->tag, 0, mb88.sf);
+ state_save_register_item("mb88", device->tag, 0, mb88.nf);
+ state_save_register_item("mb88", device->tag, 0, mb88.pio);
+ state_save_register_item("mb88", device->tag, 0, mb88.TH);
+ state_save_register_item("mb88", device->tag, 0, mb88.TL);
+ state_save_register_item("mb88", device->tag, 0, mb88.SB);
+ state_save_register_item("mb88", device->tag, 0, mb88.pending_interrupt);
}
static CPU_RESET( mb88 )
diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/emu/cpu/mcs48/mcs48.c
index fd346e3588b..fbeb33ead4b 100644
--- a/src/emu/cpu/mcs48/mcs48.c
+++ b/src/emu/cpu/mcs48/mcs48.c
@@ -708,25 +708,25 @@ static void mcs48_init(const device_config *device, int index, int clock, cpu_ir
mcs48->device = device;
mcs48->int_rom_size = romsize;
- state_save_register_item("mcs48", index, mcs48->prevpc.w.l);
- state_save_register_item("mcs48", index, PC);
- state_save_register_item("mcs48", index, A);
- state_save_register_item("mcs48", index, PSW);
- state_save_register_item("mcs48", index, mcs48->p1);
- state_save_register_item("mcs48", index, mcs48->p2);
- state_save_register_item("mcs48", index, mcs48->f1);
- state_save_register_item("mcs48", index, mcs48->ea);
- state_save_register_item("mcs48", index, mcs48->timer);
- state_save_register_item("mcs48", index, mcs48->prescaler);
- state_save_register_item("mcs48", index, mcs48->t1_history);
- state_save_register_item("mcs48", index, mcs48->irq_state);
- state_save_register_item("mcs48", index, mcs48->irq_in_progress);
- state_save_register_item("mcs48", index, mcs48->timer_overflow);
- state_save_register_item("mcs48", index, mcs48->timer_flag);
- state_save_register_item("mcs48", index, mcs48->tirq_enabled);
- state_save_register_item("mcs48", index, mcs48->xirq_enabled);
- state_save_register_item("mcs48", index, mcs48->timecount_enabled);
- state_save_register_item("mcs48", index, mcs48->a11);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->prevpc.w.l);
+ state_save_register_item("mcs48", device->tag, 0, PC);
+ state_save_register_item("mcs48", device->tag, 0, A);
+ state_save_register_item("mcs48", device->tag, 0, PSW);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->p1);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->p2);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->f1);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->ea);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->timer);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->prescaler);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->t1_history);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->irq_state);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->irq_in_progress);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->timer_overflow);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->timer_flag);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->tirq_enabled);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->xirq_enabled);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->timecount_enabled);
+ state_save_register_item("mcs48", device->tag, 0, mcs48->a11);
}
diff --git a/src/emu/cpu/mcs51/mcs51.c b/src/emu/cpu/mcs51/mcs51.c
index 187d829ed8e..72f43ea77ff 100644
--- a/src/emu/cpu/mcs51/mcs51.c
+++ b/src/emu/cpu/mcs51/mcs51.c
@@ -2067,18 +2067,18 @@ static CPU_INIT( mcs51 )
mcs51_state->sfr_write = mcs51_sfr_write;
/* Save states */
- state_save_register_item("mcs51", index, mcs51_state->ppc);
- state_save_register_item("mcs51", index, mcs51_state->pc);
- state_save_register_item("mcs51", index, mcs51_state->rwm );
- state_save_register_item("mcs51", index, mcs51_state->cur_irq_prio );
- state_save_register_item("mcs51", index, mcs51_state->last_line_state );
- state_save_register_item("mcs51", index, mcs51_state->t0_cnt );
- state_save_register_item("mcs51", index, mcs51_state->t1_cnt );
- state_save_register_item("mcs51", index, mcs51_state->t2_cnt );
- state_save_register_item("mcs51", index, mcs51_state->t2ex_cnt );
- state_save_register_item("mcs51", index, mcs51_state->recalc_parity );
- state_save_register_item_array("mcs51", index, mcs51_state->irq_prio );
- state_save_register_item("mcs51", index, mcs51_state->irq_active );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->ppc);
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->pc);
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->rwm );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->cur_irq_prio );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->last_line_state );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->t0_cnt );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->t1_cnt );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->t2_cnt );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->t2ex_cnt );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->recalc_parity );
+ state_save_register_item_array("mcs51", device->tag, 0, mcs51_state->irq_prio );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->irq_active );
}
static CPU_INIT( i80c51 )
@@ -2376,9 +2376,9 @@ static CPU_INIT( ds5002fp )
mcs51_state->sfr_read = ds5002fp_sfr_read;
mcs51_state->sfr_write = ds5002fp_sfr_write;
- state_save_register_item("mcs51", index, mcs51_state->ds5002fp.previous_ta );
- state_save_register_item("mcs51", index, mcs51_state->ds5002fp.ta_window );
- state_save_register_item("mcs51", index, mcs51_state->ds5002fp.range );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->ds5002fp.previous_ta );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->ds5002fp.ta_window );
+ state_save_register_item("mcs51", device->tag, 0, mcs51_state->ds5002fp.range );
}
diff --git a/src/emu/cpu/mips/mips3com.c b/src/emu/cpu/mips/mips3com.c
index d3b03b0aa78..4ad94373e77 100644
--- a/src/emu/cpu/mips/mips3com.c
+++ b/src/emu/cpu/mips/mips3com.c
@@ -100,17 +100,17 @@ void mips3com_init(mips3_state *mips, mips3_flavor flavor, int bigendian, const
mips3com_reset(mips);
/* register for save states */
- state_save_register_item("mips3", index, mips->pc);
- state_save_register_item_array("mips3", index, mips->r);
- state_save_register_item_2d_array("mips3", index, mips->cpr);
- state_save_register_item_2d_array("mips3", index, mips->ccr);
- state_save_register_item("mips3", index, mips->llbit);
- state_save_register_item("mips3", index, mips->count_zero_time);
+ state_save_register_item("mips3", device->tag, 0, mips->pc);
+ state_save_register_item_array("mips3", device->tag, 0, mips->r);
+ state_save_register_item_2d_array("mips3", device->tag, 0, mips->cpr);
+ state_save_register_item_2d_array("mips3", device->tag, 0, mips->ccr);
+ state_save_register_item("mips3", device->tag, 0, mips->llbit);
+ state_save_register_item("mips3", device->tag, 0, mips->count_zero_time);
for (tlbindex = 0; tlbindex < ARRAY_LENGTH(mips->tlb); tlbindex++)
{
- state_save_register_item("mips3", index * ARRAY_LENGTH(mips->tlb) + tlbindex, mips->tlb[tlbindex].page_mask);
- state_save_register_item("mips3", index * ARRAY_LENGTH(mips->tlb) + tlbindex, mips->tlb[tlbindex].entry_hi);
- state_save_register_item_array("mips3", index * ARRAY_LENGTH(mips->tlb) + tlbindex, mips->tlb[tlbindex].entry_lo);
+ state_save_register_item("mips3", device->tag, tlbindex, mips->tlb[tlbindex].page_mask);
+ state_save_register_item("mips3", device->tag, tlbindex, mips->tlb[tlbindex].entry_hi);
+ state_save_register_item_array("mips3", device->tag, tlbindex, mips->tlb[tlbindex].entry_lo);
}
}
diff --git a/src/emu/cpu/mips/psx.c b/src/emu/cpu/mips/psx.c
index 5f2c2ebc141..62d5b0c125a 100644
--- a/src/emu/cpu/mips/psx.c
+++ b/src/emu/cpu/mips/psx.c
@@ -1559,26 +1559,26 @@ static STATE_POSTLOAD( mips_postload )
mips_update_scratchpad(machine);
}
-static void mips_state_register( const char *type, int index )
+static void mips_state_register( const char *type, const device_config *device )
{
- state_save_register_item( type, index, mipscpu.op );
- state_save_register_item( type, index, mipscpu.pc );
- state_save_register_item( type, index, mipscpu.delayv );
- state_save_register_item( type, index, mipscpu.delayr );
- state_save_register_item( type, index, mipscpu.hi );
- state_save_register_item( type, index, mipscpu.lo );
- state_save_register_item( type, index, mipscpu.biu );
- state_save_register_item_array( type, index, mipscpu.r );
- state_save_register_item_array( type, index, mipscpu.cp0r );
- state_save_register_item_array( type, index, mipscpu.cp2cr );
- state_save_register_item_array( type, index, mipscpu.cp2dr );
- state_save_register_item_array( type, index, mipscpu.icacheTag );
- state_save_register_item_array( type, index, mipscpu.icache );
- state_save_register_item_array( type, index, mipscpu.dcache );
- state_save_register_item( type, index, mipscpu.multiplier_operation );
- state_save_register_item( type, index, mipscpu.multiplier_operand1 );
- state_save_register_item( type, index, mipscpu.multiplier_operand2 );
- state_save_register_postload( Machine, mips_postload, NULL );
+ state_save_register_item( type, device->tag, 0, mipscpu.op );
+ state_save_register_item( type, device->tag, 0, mipscpu.pc );
+ state_save_register_item( type, device->tag, 0, mipscpu.delayv );
+ state_save_register_item( type, device->tag, 0, mipscpu.delayr );
+ state_save_register_item( type, device->tag, 0, mipscpu.hi );
+ state_save_register_item( type, device->tag, 0, mipscpu.lo );
+ state_save_register_item( type, device->tag, 0, mipscpu.biu );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.r );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.cp0r );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.cp2cr );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.cp2dr );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.icacheTag );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.icache );
+ state_save_register_item_array( type, device->tag, 0, mipscpu.dcache );
+ state_save_register_item( type, device->tag, 0, mipscpu.multiplier_operation );
+ state_save_register_item( type, device->tag, 0, mipscpu.multiplier_operand1 );
+ state_save_register_item( type, device->tag, 0, mipscpu.multiplier_operand2 );
+ state_save_register_postload( device->machine, mips_postload, NULL );
}
static CPU_INIT( mips )
@@ -1586,7 +1586,7 @@ static CPU_INIT( mips )
mipscpu.irq_callback = irqcallback;
mipscpu.device = device;
- mips_state_register( "psxcpu", index );
+ mips_state_register( "psxcpu", device );
}
static CPU_RESET( mips )
diff --git a/src/emu/cpu/nec/nec.c b/src/emu/cpu/nec/nec.c
index 77b8b586756..90e4153f5e8 100644
--- a/src/emu/cpu/nec/nec.c
+++ b/src/emu/cpu/nec/nec.c
@@ -1118,25 +1118,25 @@ static void nec_init(const device_config *device, int index, int clock, cpu_irq_
I.config = config;
- state_save_register_item_array(names[type], index, I.regs.w);
- state_save_register_item_array(names[type], index, I.sregs);
-
- state_save_register_item(names[type], index, I.ip);
- state_save_register_item(names[type], index, I.TF);
- state_save_register_item(names[type], index, I.IF);
- state_save_register_item(names[type], index, I.DF);
- state_save_register_item(names[type], index, I.MF);
- state_save_register_item(names[type], index, I.SignVal);
- state_save_register_item(names[type], index, I.int_vector);
- state_save_register_item(names[type], index, I.pending_irq);
- state_save_register_item(names[type], index, I.nmi_state);
- state_save_register_item(names[type], index, I.irq_state);
- state_save_register_item(names[type], index, I.poll_state);
- state_save_register_item(names[type], index, I.AuxVal);
- state_save_register_item(names[type], index, I.OverVal);
- state_save_register_item(names[type], index, I.ZeroVal);
- state_save_register_item(names[type], index, I.CarryVal);
- state_save_register_item(names[type], index, I.ParityVal);
+ state_save_register_item_array(names[type], device->tag, 0, I.regs.w);
+ state_save_register_item_array(names[type], device->tag, 0, I.sregs);
+
+ state_save_register_item(names[type], device->tag, 0, I.ip);
+ state_save_register_item(names[type], device->tag, 0, I.TF);
+ state_save_register_item(names[type], device->tag, 0, I.IF);
+ state_save_register_item(names[type], device->tag, 0, I.DF);
+ state_save_register_item(names[type], device->tag, 0, I.MF);
+ state_save_register_item(names[type], device->tag, 0, I.SignVal);
+ state_save_register_item(names[type], device->tag, 0, I.int_vector);
+ state_save_register_item(names[type], device->tag, 0, I.pending_irq);
+ state_save_register_item(names[type], device->tag, 0, I.nmi_state);
+ state_save_register_item(names[type], device->tag, 0, I.irq_state);
+ state_save_register_item(names[type], device->tag, 0, I.poll_state);
+ state_save_register_item(names[type], device->tag, 0, I.AuxVal);
+ state_save_register_item(names[type], device->tag, 0, I.OverVal);
+ state_save_register_item(names[type], device->tag, 0, I.ZeroVal);
+ state_save_register_item(names[type], device->tag, 0, I.CarryVal);
+ state_save_register_item(names[type], device->tag, 0, I.ParityVal);
I.irq_callback = irqcallback;
I.device = device;
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.c b/src/emu/cpu/pic16c5x/pic16c5x.c
index bc3d8f7a687..ff6b028d1e3 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.c
+++ b/src/emu/cpu/pic16c5x/pic16c5x.c
@@ -691,33 +691,33 @@ static const opcode_fn opcode_000_other[16]=
static CPU_INIT( pic16C5x )
{
- state_save_register_item("pic16C5x", index, old_data);
- state_save_register_item("pic16C5x", index, R.W);
- state_save_register_item("pic16C5x", index, R.ALU);
- state_save_register_item("pic16C5x", index, R.OPTION);
- state_save_register_item("pic16C5x", index, R.TMR0);
- state_save_register_item("pic16C5x", index, R.PCL);
- state_save_register_item("pic16C5x", index, R.STATUS);
- state_save_register_item("pic16C5x", index, R.FSR);
- state_save_register_item("pic16C5x", index, R.PORTA);
- state_save_register_item("pic16C5x", index, R.PORTB);
- state_save_register_item("pic16C5x", index, R.PORTC);
- state_save_register_item("pic16C5x", index, R.TRISA);
- state_save_register_item("pic16C5x", index, R.TRISB);
- state_save_register_item("pic16C5x", index, R.TRISC);
- state_save_register_item("pic16C5x", index, old_T0);
- state_save_register_item("pic16C5x", index, picRAMmask);
- state_save_register_item("pic16C5x", index, R.WDT);
- state_save_register_item("pic16C5x", index, R.prescaler);
- state_save_register_item("pic16C5x", index, R.STACK[0]);
- state_save_register_item("pic16C5x", index, R.STACK[1]);
- state_save_register_item("pic16C5x", index, R.PC);
- state_save_register_item("pic16C5x", index, R.PREVPC);
- state_save_register_item("pic16C5x", index, R.CONFIG);
- state_save_register_item("pic16C5x", index, R.opcode.d);
- state_save_register_item("pic16C5x", index, delay_timer);
- state_save_register_item("pic16C5x", index, picmodel);
- state_save_register_item("pic16C5x", index, pic16C5x_reset_vector);
+ state_save_register_item("pic16C5x", device->tag, 0, old_data);
+ state_save_register_item("pic16C5x", device->tag, 0, R.W);
+ state_save_register_item("pic16C5x", device->tag, 0, R.ALU);
+ state_save_register_item("pic16C5x", device->tag, 0, R.OPTION);
+ state_save_register_item("pic16C5x", device->tag, 0, R.TMR0);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PCL);
+ state_save_register_item("pic16C5x", device->tag, 0, R.STATUS);
+ state_save_register_item("pic16C5x", device->tag, 0, R.FSR);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PORTA);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PORTB);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PORTC);
+ state_save_register_item("pic16C5x", device->tag, 0, R.TRISA);
+ state_save_register_item("pic16C5x", device->tag, 0, R.TRISB);
+ state_save_register_item("pic16C5x", device->tag, 0, R.TRISC);
+ state_save_register_item("pic16C5x", device->tag, 0, old_T0);
+ state_save_register_item("pic16C5x", device->tag, 0, picRAMmask);
+ state_save_register_item("pic16C5x", device->tag, 0, R.WDT);
+ state_save_register_item("pic16C5x", device->tag, 0, R.prescaler);
+ state_save_register_item("pic16C5x", device->tag, 0, R.STACK[0]);
+ state_save_register_item("pic16C5x", device->tag, 0, R.STACK[1]);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PC);
+ state_save_register_item("pic16C5x", device->tag, 0, R.PREVPC);
+ state_save_register_item("pic16C5x", device->tag, 0, R.CONFIG);
+ state_save_register_item("pic16C5x", device->tag, 0, R.opcode.d);
+ state_save_register_item("pic16C5x", device->tag, 0, delay_timer);
+ state_save_register_item("pic16C5x", device->tag, 0, picmodel);
+ state_save_register_item("pic16C5x", device->tag, 0, pic16C5x_reset_vector);
}
diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c
index 42fcbea6599..e65d5f9cb5d 100644
--- a/src/emu/cpu/powerpc/ppccom.c
+++ b/src/emu/cpu/powerpc/ppccom.c
@@ -221,36 +221,36 @@ void ppccom_init(powerpc_state *ppc, powerpc_flavor flavor, UINT8 cap, int tb_di
ppccom_reset(ppc);
/* register for save states */
- state_save_register_item("ppc", index, ppc->pc);
- state_save_register_item_array("ppc", index, ppc->r);
- state_save_register_item_array("ppc", index, ppc->f);
- state_save_register_item_array("ppc", index, ppc->cr);
- state_save_register_item("ppc", index, ppc->xerso);
- state_save_register_item("ppc", index, ppc->fpscr);
- state_save_register_item("ppc", index, ppc->msr);
- state_save_register_item_array("ppc", index, ppc->sr);
- state_save_register_item_array("ppc", index, ppc->spr);
- state_save_register_item_array("ppc", index, ppc->dcr);
+ state_save_register_item("ppc", device->tag, 0, ppc->pc);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->r);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->f);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->cr);
+ state_save_register_item("ppc", device->tag, 0, ppc->xerso);
+ state_save_register_item("ppc", device->tag, 0, ppc->fpscr);
+ state_save_register_item("ppc", device->tag, 0, ppc->msr);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->sr);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->spr);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->dcr);
if (cap & PPCCAP_4XX)
{
- state_save_register_item_array("ppc", index, ppc->spu.regs);
- state_save_register_item("ppc", index, ppc->spu.txbuf);
- state_save_register_item("ppc", index, ppc->spu.rxbuf);
- state_save_register_item_array("ppc", index, ppc->spu.rxbuffer);
- state_save_register_item("ppc", index, ppc->spu.rxin);
- state_save_register_item("ppc", index, ppc->spu.rxout);
- state_save_register_item("ppc", index, ppc->pit_reload);
- state_save_register_item("ppc", index, ppc->irqstate);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->spu.regs);
+ state_save_register_item("ppc", device->tag, 0, ppc->spu.txbuf);
+ state_save_register_item("ppc", device->tag, 0, ppc->spu.rxbuf);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->spu.rxbuffer);
+ state_save_register_item("ppc", device->tag, 0, ppc->spu.rxin);
+ state_save_register_item("ppc", device->tag, 0, ppc->spu.rxout);
+ state_save_register_item("ppc", device->tag, 0, ppc->pit_reload);
+ state_save_register_item("ppc", device->tag, 0, ppc->irqstate);
}
if (cap & PPCCAP_603_MMU)
{
- state_save_register_item("ppc", index, ppc->mmu603_cmp);
- state_save_register_item_array("ppc", index, ppc->mmu603_hash);
- state_save_register_item_array("ppc", index, ppc->mmu603_r);
+ state_save_register_item("ppc", device->tag, 0, ppc->mmu603_cmp);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->mmu603_hash);
+ state_save_register_item_array("ppc", device->tag, 0, ppc->mmu603_r);
}
- state_save_register_item("ppc", index, ppc->irq_pending);
- state_save_register_item("ppc", index, ppc->tb_zero_cycles);
- state_save_register_item("ppc", index, ppc->dec_zero_cycles);
+ state_save_register_item("ppc", device->tag, 0, ppc->irq_pending);
+ state_save_register_item("ppc", device->tag, 0, ppc->tb_zero_cycles);
+ state_save_register_item("ppc", device->tag, 0, ppc->dec_zero_cycles);
}
diff --git a/src/emu/cpu/s2650/s2650.c b/src/emu/cpu/s2650/s2650.c
index 976f92254af..4d3273d8812 100644
--- a/src/emu/cpu/s2650/s2650.c
+++ b/src/emu/cpu/s2650/s2650.c
@@ -771,18 +771,18 @@ static CPU_INIT( s2650 )
S.irq_callback = irqcallback;
S.device = device;
- state_save_register_item("s2650", index, S.ppc);
- state_save_register_item("s2650", index, S.page);
- state_save_register_item("s2650", index, S.iar);
- state_save_register_item("s2650", index, S.ea);
- state_save_register_item("s2650", index, S.psl);
- state_save_register_item("s2650", index, S.psu);
- state_save_register_item("s2650", index, S.r);
- state_save_register_item_array("s2650", index, S.reg);
- state_save_register_item("s2650", index, S.halt);
- state_save_register_item("s2650", index, S.ir);
- state_save_register_item_array("s2650", index, S.ras);
- state_save_register_item("s2650", index, S.irq_state);
+ state_save_register_item("s2650", device->tag, 0, S.ppc);
+ state_save_register_item("s2650", device->tag, 0, S.page);
+ state_save_register_item("s2650", device->tag, 0, S.iar);
+ state_save_register_item("s2650", device->tag, 0, S.ea);
+ state_save_register_item("s2650", device->tag, 0, S.psl);
+ state_save_register_item("s2650", device->tag, 0, S.psu);
+ state_save_register_item("s2650", device->tag, 0, S.r);
+ state_save_register_item_array("s2650", device->tag, 0, S.reg);
+ state_save_register_item("s2650", device->tag, 0, S.halt);
+ state_save_register_item("s2650", device->tag, 0, S.ir);
+ state_save_register_item_array("s2650", device->tag, 0, S.ras);
+ state_save_register_item("s2650", device->tag, 0, S.irq_state);
}
static CPU_RESET( s2650 )
diff --git a/src/emu/cpu/saturn/saturn.c b/src/emu/cpu/saturn/saturn.c
index 233ae0245a8..65b0fdf81f2 100644
--- a/src/emu/cpu/saturn/saturn.c
+++ b/src/emu/cpu/saturn/saturn.c
@@ -104,29 +104,29 @@ static CPU_INIT( saturn )
saturn.irq_callback = irqcallback;
saturn.device = device;
- state_save_register_item_array("saturn",index,saturn.reg[R0]);
- state_save_register_item_array("saturn",index,saturn.reg[R1]);
- state_save_register_item_array("saturn",index,saturn.reg[R2]);
- state_save_register_item_array("saturn",index,saturn.reg[R3]);
- state_save_register_item_array("saturn",index,saturn.reg[R4]);
- state_save_register_item_array("saturn",index,saturn.reg[A]);
- state_save_register_item_array("saturn",index,saturn.reg[B]);
- state_save_register_item_array("saturn",index,saturn.reg[C]);
- state_save_register_item_array("saturn",index,saturn.reg[D]);
- state_save_register_item_array("saturn",index,saturn.d);
- state_save_register_item("saturn",index,saturn.pc);
- state_save_register_item("saturn",index,saturn.oldpc);
- state_save_register_item_array("saturn",index,saturn.rstk);
- state_save_register_item("saturn",index,saturn.out);
- state_save_register_item("saturn",index,saturn.carry);
- state_save_register_item("saturn",index,saturn.st);
- state_save_register_item("saturn",index,saturn.hst);
- state_save_register_item("saturn",index,saturn.nmi_state);
- state_save_register_item("saturn",index,saturn.irq_state);
- state_save_register_item("saturn",index,saturn.irq_enable);
- state_save_register_item("saturn",index,saturn.in_irq);
- state_save_register_item("saturn",index,saturn.pending_irq);
- state_save_register_item("saturn",index,saturn.sleeping);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[R0]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[R1]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[R2]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[R3]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[R4]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[A]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[B]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[C]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.reg[D]);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.d);
+ state_save_register_item("saturn",device->tag, 0,saturn.pc);
+ state_save_register_item("saturn",device->tag, 0,saturn.oldpc);
+ state_save_register_item_array("saturn",device->tag, 0,saturn.rstk);
+ state_save_register_item("saturn",device->tag, 0,saturn.out);
+ state_save_register_item("saturn",device->tag, 0,saturn.carry);
+ state_save_register_item("saturn",device->tag, 0,saturn.st);
+ state_save_register_item("saturn",device->tag, 0,saturn.hst);
+ state_save_register_item("saturn",device->tag, 0,saturn.nmi_state);
+ state_save_register_item("saturn",device->tag, 0,saturn.irq_state);
+ state_save_register_item("saturn",device->tag, 0,saturn.irq_enable);
+ state_save_register_item("saturn",device->tag, 0,saturn.in_irq);
+ state_save_register_item("saturn",device->tag, 0,saturn.pending_irq);
+ state_save_register_item("saturn",device->tag, 0,saturn.sleeping);
}
static CPU_RESET( saturn )
diff --git a/src/emu/cpu/sh2/sh2comn.c b/src/emu/cpu/sh2/sh2comn.c
index d82f1ea2901..7d6d23e7a2e 100644
--- a/src/emu/cpu/sh2/sh2comn.c
+++ b/src/emu/cpu/sh2/sh2comn.c
@@ -736,29 +736,29 @@ void sh2_common_init(int alloc, const device_config *device, int index, int cloc
sh2->device = device;
sh2->internal = cpu_get_address_space(device, ADDRESS_SPACE_PROGRAM);
- state_save_register_item("sh2", index, sh2->pc);
- state_save_register_item("sh2", index, sh2->r[15]);
- state_save_register_item("sh2", index, sh2->sr);
- state_save_register_item("sh2", index, sh2->pr);
- state_save_register_item("sh2", index, sh2->gbr);
- state_save_register_item("sh2", index, sh2->vbr);
- state_save_register_item("sh2", index, sh2->mach);
- state_save_register_item("sh2", index, sh2->macl);
- state_save_register_item("sh2", index, sh2->r[ 0]);
- state_save_register_item("sh2", index, sh2->r[ 1]);
- state_save_register_item("sh2", index, sh2->r[ 2]);
- state_save_register_item("sh2", index, sh2->r[ 3]);
- state_save_register_item("sh2", index, sh2->r[ 4]);
- state_save_register_item("sh2", index, sh2->r[ 5]);
- state_save_register_item("sh2", index, sh2->r[ 6]);
- state_save_register_item("sh2", index, sh2->r[ 7]);
- state_save_register_item("sh2", index, sh2->r[ 8]);
- state_save_register_item("sh2", index, sh2->r[ 9]);
- state_save_register_item("sh2", index, sh2->r[10]);
- state_save_register_item("sh2", index, sh2->r[11]);
- state_save_register_item("sh2", index, sh2->r[12]);
- state_save_register_item("sh2", index, sh2->r[13]);
- state_save_register_item("sh2", index, sh2->r[14]);
- state_save_register_item("sh2", index, sh2->ea);
+ state_save_register_item("sh2", device->tag, 0, sh2->pc);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[15]);
+ state_save_register_item("sh2", device->tag, 0, sh2->sr);
+ state_save_register_item("sh2", device->tag, 0, sh2->pr);
+ state_save_register_item("sh2", device->tag, 0, sh2->gbr);
+ state_save_register_item("sh2", device->tag, 0, sh2->vbr);
+ state_save_register_item("sh2", device->tag, 0, sh2->mach);
+ state_save_register_item("sh2", device->tag, 0, sh2->macl);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 0]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 1]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 2]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 3]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 4]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 5]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 6]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 7]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 8]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[ 9]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[10]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[11]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[12]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[13]);
+ state_save_register_item("sh2", device->tag, 0, sh2->r[14]);
+ state_save_register_item("sh2", device->tag, 0, sh2->ea);
}
diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c
index 66675ff1d2e..d78b10b448c 100644
--- a/src/emu/cpu/sh4/sh4.c
+++ b/src/emu/cpu/sh4/sh4.c
@@ -3406,70 +3406,70 @@ static CPU_INIT( sh4 )
sh4.irln = 15;
sh4.test_irq = 0;
- state_save_register_item("sh4", index, sh4.pc);
- state_save_register_item("sh4", index, sh4.r[15]);
- state_save_register_item("sh4", index, sh4.sr);
- state_save_register_item("sh4", index, sh4.pr);
- state_save_register_item("sh4", index, sh4.gbr);
- state_save_register_item("sh4", index, sh4.vbr);
- state_save_register_item("sh4", index, sh4.mach);
- state_save_register_item("sh4", index, sh4.macl);
- state_save_register_item("sh4", index, sh4.spc);
- state_save_register_item("sh4", index, sh4.ssr);
- state_save_register_item("sh4", index, sh4.sgr);
- state_save_register_item("sh4", index, sh4.fpscr);
- state_save_register_item("sh4", index, sh4.r[ 0]);
- state_save_register_item("sh4", index, sh4.r[ 1]);
- state_save_register_item("sh4", index, sh4.r[ 2]);
- state_save_register_item("sh4", index, sh4.r[ 3]);
- state_save_register_item("sh4", index, sh4.r[ 4]);
- state_save_register_item("sh4", index, sh4.r[ 5]);
- state_save_register_item("sh4", index, sh4.r[ 6]);
- state_save_register_item("sh4", index, sh4.r[ 7]);
- state_save_register_item("sh4", index, sh4.r[ 8]);
- state_save_register_item("sh4", index, sh4.r[ 9]);
- state_save_register_item("sh4", index, sh4.r[10]);
- state_save_register_item("sh4", index, sh4.r[11]);
- state_save_register_item("sh4", index, sh4.r[12]);
- state_save_register_item("sh4", index, sh4.r[13]);
- state_save_register_item("sh4", index, sh4.r[14]);
- state_save_register_item("sh4", index, sh4.fr[ 0]);
- state_save_register_item("sh4", index, sh4.fr[ 1]);
- state_save_register_item("sh4", index, sh4.fr[ 2]);
- state_save_register_item("sh4", index, sh4.fr[ 3]);
- state_save_register_item("sh4", index, sh4.fr[ 4]);
- state_save_register_item("sh4", index, sh4.fr[ 5]);
- state_save_register_item("sh4", index, sh4.fr[ 6]);
- state_save_register_item("sh4", index, sh4.fr[ 7]);
- state_save_register_item("sh4", index, sh4.fr[ 8]);
- state_save_register_item("sh4", index, sh4.fr[ 9]);
- state_save_register_item("sh4", index, sh4.fr[10]);
- state_save_register_item("sh4", index, sh4.fr[11]);
- state_save_register_item("sh4", index, sh4.fr[12]);
- state_save_register_item("sh4", index, sh4.fr[13]);
- state_save_register_item("sh4", index, sh4.fr[14]);
- state_save_register_item("sh4", index, sh4.fr[15]);
- state_save_register_item("sh4", index, sh4.xf[ 0]);
- state_save_register_item("sh4", index, sh4.xf[ 1]);
- state_save_register_item("sh4", index, sh4.xf[ 2]);
- state_save_register_item("sh4", index, sh4.xf[ 3]);
- state_save_register_item("sh4", index, sh4.xf[ 4]);
- state_save_register_item("sh4", index, sh4.xf[ 5]);
- state_save_register_item("sh4", index, sh4.xf[ 6]);
- state_save_register_item("sh4", index, sh4.xf[ 7]);
- state_save_register_item("sh4", index, sh4.xf[ 8]);
- state_save_register_item("sh4", index, sh4.xf[ 9]);
- state_save_register_item("sh4", index, sh4.xf[10]);
- state_save_register_item("sh4", index, sh4.xf[11]);
- state_save_register_item("sh4", index, sh4.xf[12]);
- state_save_register_item("sh4", index, sh4.xf[13]);
- state_save_register_item("sh4", index, sh4.xf[14]);
- state_save_register_item("sh4", index, sh4.xf[15]);
- state_save_register_item("sh4", index, sh4.ea);
- state_save_register_item("sh4", index, sh4.fpul);
- state_save_register_item("sh4", index, sh4.dbr);
- state_save_register_item_array("sh4", index, sh4.exception_priority);
- state_save_register_item_array("sh4", index, sh4.exception_requesting);
+ state_save_register_item("sh4", device->tag, 0, sh4.pc);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[15]);
+ state_save_register_item("sh4", device->tag, 0, sh4.sr);
+ state_save_register_item("sh4", device->tag, 0, sh4.pr);
+ state_save_register_item("sh4", device->tag, 0, sh4.gbr);
+ state_save_register_item("sh4", device->tag, 0, sh4.vbr);
+ state_save_register_item("sh4", device->tag, 0, sh4.mach);
+ state_save_register_item("sh4", device->tag, 0, sh4.macl);
+ state_save_register_item("sh4", device->tag, 0, sh4.spc);
+ state_save_register_item("sh4", device->tag, 0, sh4.ssr);
+ state_save_register_item("sh4", device->tag, 0, sh4.sgr);
+ state_save_register_item("sh4", device->tag, 0, sh4.fpscr);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 0]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 1]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 2]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 3]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 4]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 5]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 6]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 7]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 8]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[ 9]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[10]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[11]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[12]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[13]);
+ state_save_register_item("sh4", device->tag, 0, sh4.r[14]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 0]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 1]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 2]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 3]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 4]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 5]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 6]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 7]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 8]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[ 9]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[10]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[11]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[12]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[13]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[14]);
+ state_save_register_item("sh4", device->tag, 0, sh4.fr[15]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 0]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 1]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 2]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 3]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 4]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 5]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 6]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 7]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 8]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[ 9]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[10]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[11]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[12]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[13]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[14]);
+ state_save_register_item("sh4", device->tag, 0, sh4.xf[15]);
+ state_save_register_item("sh4", device->tag, 0, sh4.ea);
+ state_save_register_item("sh4", device->tag, 0, sh4.fpul);
+ state_save_register_item("sh4", device->tag, 0, sh4.dbr);
+ state_save_register_item_array("sh4", device->tag, 0, sh4.exception_priority);
+ state_save_register_item_array("sh4", device->tag, 0, sh4.exception_requesting);
}
diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c
index 445cf018704..b991b1d9d67 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/emu/cpu/sharc/sharc.c
@@ -434,120 +434,120 @@ static CPU_INIT( sharc )
sharc.internal_ram_block0 = &sharc.internal_ram[0];
sharc.internal_ram_block1 = &sharc.internal_ram[0x20000/2];
- state_save_register_item("sharc", index, sharc.pc);
- state_save_register_item_pointer("sharc", index, (&sharc.r[0].r), ARRAY_LENGTH(sharc.r));
- state_save_register_item_pointer("sharc", index, (&sharc.reg_alt[0].r), ARRAY_LENGTH(sharc.reg_alt));
- state_save_register_item("sharc", index, sharc.mrf);
- state_save_register_item("sharc", index, sharc.mrb);
-
- state_save_register_item_array("sharc", index, sharc.pcstack);
- state_save_register_item_array("sharc", index, sharc.lcstack);
- state_save_register_item_array("sharc", index, sharc.lastack);
- state_save_register_item("sharc", index, sharc.lstkp);
-
- state_save_register_item("sharc", index, sharc.faddr);
- state_save_register_item("sharc", index, sharc.daddr);
- state_save_register_item("sharc", index, sharc.pcstk);
- state_save_register_item("sharc", index, sharc.pcstkp);
- state_save_register_item("sharc", index, sharc.laddr);
- state_save_register_item("sharc", index, sharc.curlcntr);
- state_save_register_item("sharc", index, sharc.lcntr);
-
- state_save_register_item_array("sharc", index, sharc.dag1.i);
- state_save_register_item_array("sharc", index, sharc.dag1.m);
- state_save_register_item_array("sharc", index, sharc.dag1.b);
- state_save_register_item_array("sharc", index, sharc.dag1.l);
- state_save_register_item_array("sharc", index, sharc.dag2.i);
- state_save_register_item_array("sharc", index, sharc.dag2.m);
- state_save_register_item_array("sharc", index, sharc.dag2.b);
- state_save_register_item_array("sharc", index, sharc.dag2.l);
- state_save_register_item_array("sharc", index, sharc.dag1_alt.i);
- state_save_register_item_array("sharc", index, sharc.dag1_alt.m);
- state_save_register_item_array("sharc", index, sharc.dag1_alt.b);
- state_save_register_item_array("sharc", index, sharc.dag1_alt.l);
- state_save_register_item_array("sharc", index, sharc.dag2_alt.i);
- state_save_register_item_array("sharc", index, sharc.dag2_alt.m);
- state_save_register_item_array("sharc", index, sharc.dag2_alt.b);
- state_save_register_item_array("sharc", index, sharc.dag2_alt.l);
+ state_save_register_item("sharc", device->tag, 0, sharc.pc);
+ state_save_register_item_pointer("sharc", device->tag, 0, (&sharc.r[0].r), ARRAY_LENGTH(sharc.r));
+ state_save_register_item_pointer("sharc", device->tag, 0, (&sharc.reg_alt[0].r), ARRAY_LENGTH(sharc.reg_alt));
+ state_save_register_item("sharc", device->tag, 0, sharc.mrf);
+ state_save_register_item("sharc", device->tag, 0, sharc.mrb);
+
+ state_save_register_item_array("sharc", device->tag, 0, sharc.pcstack);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.lcstack);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.lastack);
+ state_save_register_item("sharc", device->tag, 0, sharc.lstkp);
+
+ state_save_register_item("sharc", device->tag, 0, sharc.faddr);
+ state_save_register_item("sharc", device->tag, 0, sharc.daddr);
+ state_save_register_item("sharc", device->tag, 0, sharc.pcstk);
+ state_save_register_item("sharc", device->tag, 0, sharc.pcstkp);
+ state_save_register_item("sharc", device->tag, 0, sharc.laddr);
+ state_save_register_item("sharc", device->tag, 0, sharc.curlcntr);
+ state_save_register_item("sharc", device->tag, 0, sharc.lcntr);
+
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1.i);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1.m);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1.b);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1.l);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2.i);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2.m);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2.b);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2.l);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1_alt.i);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1_alt.m);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1_alt.b);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag1_alt.l);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2_alt.i);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2_alt.m);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2_alt.b);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.dag2_alt.l);
for (saveindex = 0; saveindex < ARRAY_LENGTH(sharc.dma); saveindex++)
{
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].control);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].int_index);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].int_modifier);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].int_count);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].chain_ptr);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].gen_purpose);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].ext_index);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].ext_modifier);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.dma) + saveindex, sharc.dma[saveindex].ext_count);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].control);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].int_index);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].int_modifier);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].int_count);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].chain_ptr);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].gen_purpose);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].ext_index);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].ext_modifier);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.dma[saveindex].ext_count);
}
- state_save_register_item("sharc", index, sharc.mode1);
- state_save_register_item("sharc", index, sharc.mode2);
- state_save_register_item("sharc", index, sharc.astat);
- state_save_register_item("sharc", index, sharc.stky);
- state_save_register_item("sharc", index, sharc.irptl);
- state_save_register_item("sharc", index, sharc.imask);
- state_save_register_item("sharc", index, sharc.imaskp);
- state_save_register_item("sharc", index, sharc.ustat1);
- state_save_register_item("sharc", index, sharc.ustat2);
+ state_save_register_item("sharc", device->tag, 0, sharc.mode1);
+ state_save_register_item("sharc", device->tag, 0, sharc.mode2);
+ state_save_register_item("sharc", device->tag, 0, sharc.astat);
+ state_save_register_item("sharc", device->tag, 0, sharc.stky);
+ state_save_register_item("sharc", device->tag, 0, sharc.irptl);
+ state_save_register_item("sharc", device->tag, 0, sharc.imask);
+ state_save_register_item("sharc", device->tag, 0, sharc.imaskp);
+ state_save_register_item("sharc", device->tag, 0, sharc.ustat1);
+ state_save_register_item("sharc", device->tag, 0, sharc.ustat2);
- state_save_register_item_array("sharc", index, sharc.flag);
+ state_save_register_item_array("sharc", device->tag, 0, sharc.flag);
- state_save_register_item("sharc", index, sharc.syscon);
- state_save_register_item("sharc", index, sharc.sysstat);
+ state_save_register_item("sharc", device->tag, 0, sharc.syscon);
+ state_save_register_item("sharc", device->tag, 0, sharc.sysstat);
for (saveindex = 0; saveindex < ARRAY_LENGTH(sharc.status_stack); saveindex++)
{
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.status_stack) + saveindex, sharc.status_stack[saveindex].mode1);
- state_save_register_item("sharc", index * ARRAY_LENGTH(sharc.status_stack) + saveindex, sharc.status_stack[saveindex].astat);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.status_stack[saveindex].mode1);
+ state_save_register_item("sharc", device->tag, saveindex, sharc.status_stack[saveindex].astat);
}
- state_save_register_item("sharc", index, sharc.status_stkp);
+ state_save_register_item("sharc", device->tag, 0, sharc.status_stkp);
- state_save_register_item("sharc", index, sharc.px);
+ state_save_register_item("sharc", device->tag, 0, sharc.px);
- state_save_register_item_pointer("sharc", index, sharc.internal_ram, 2 * 0x10000);
+ state_save_register_item_pointer("sharc", device->tag, 0, sharc.internal_ram, 2 * 0x10000);
- state_save_register_item("sharc", index, sharc.opcode);
- state_save_register_item("sharc", index, sharc.fetch_opcode);
- state_save_register_item("sharc", index, sharc.decode_opcode);
+ state_save_register_item("sharc", device->tag, 0, sharc.opcode);
+ state_save_register_item("sharc", device->tag, 0, sharc.fetch_opcode);
+ state_save_register_item("sharc", device->tag, 0, sharc.decode_opcode);
- state_save_register_item("sharc", index, sharc.nfaddr);
+ state_save_register_item("sharc", device->tag, 0, sharc.nfaddr);
- state_save_register_item("sharc", index, sharc.idle);
- state_save_register_item("sharc", index, sharc.irq_active);
- state_save_register_item("sharc", index, sharc.active_irq_num);
+ state_save_register_item("sharc", device->tag, 0, sharc.idle);
+ state_save_register_item("sharc", device->tag, 0, sharc.irq_active);
+ state_save_register_item("sharc", device->tag, 0, sharc.active_irq_num);
- state_save_register_item("sharc", index, sharc.dmaop_src);
- state_save_register_item("sharc", index, sharc.dmaop_dst);
- state_save_register_item("sharc", index, sharc.dmaop_chain_ptr);
- state_save_register_item("sharc", index, sharc.dmaop_src_modifier);
- state_save_register_item("sharc", index, sharc.dmaop_dst_modifier);
- state_save_register_item("sharc", index, sharc.dmaop_src_count);
- state_save_register_item("sharc", index, sharc.dmaop_dst_count);
- state_save_register_item("sharc", index, sharc.dmaop_pmode);
- state_save_register_item("sharc", index, sharc.dmaop_cycles);
- state_save_register_item("sharc", index, sharc.dmaop_channel);
- state_save_register_item("sharc", index, sharc.dmaop_chained_direction);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_src);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_dst);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_chain_ptr);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_src_modifier);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_dst_modifier);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_src_count);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_dst_count);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_pmode);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_cycles);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_channel);
+ state_save_register_item("sharc", device->tag, 0, sharc.dmaop_chained_direction);
- state_save_register_item("sharc", index, sharc.interrupt_active);
+ state_save_register_item("sharc", device->tag, 0, sharc.interrupt_active);
- state_save_register_item("sharc", index, sharc.iop_latency_cycles);
- state_save_register_item("sharc", index, sharc.iop_latency_reg);
- state_save_register_item("sharc", index, sharc.iop_latency_data);
+ state_save_register_item("sharc", device->tag, 0, sharc.iop_latency_cycles);
+ state_save_register_item("sharc", device->tag, 0, sharc.iop_latency_reg);
+ state_save_register_item("sharc", device->tag, 0, sharc.iop_latency_data);
- state_save_register_item("sharc", index, sharc.delay_slot1);
- state_save_register_item("sharc", index, sharc.delay_slot2);
+ state_save_register_item("sharc", device->tag, 0, sharc.delay_slot1);
+ state_save_register_item("sharc", device->tag, 0, sharc.delay_slot2);
- state_save_register_item("sharc", index, sharc.systemreg_latency_cycles);
- state_save_register_item("sharc", index, sharc.systemreg_latency_reg);
- state_save_register_item("sharc", index, sharc.systemreg_latency_data);
- state_save_register_item("sharc", index, sharc.systemreg_previous_data);
+ state_save_register_item("sharc", device->tag, 0, sharc.systemreg_latency_cycles);
+ state_save_register_item("sharc", device->tag, 0, sharc.systemreg_latency_reg);
+ state_save_register_item("sharc", device->tag, 0, sharc.systemreg_latency_data);
+ state_save_register_item("sharc", device->tag, 0, sharc.systemreg_previous_data);
- state_save_register_item("sharc", index, sharc.astat_old);
- state_save_register_item("sharc", index, sharc.astat_old_old);
- state_save_register_item("sharc", index, sharc.astat_old_old_old);
+ state_save_register_item("sharc", device->tag, 0, sharc.astat_old);
+ state_save_register_item("sharc", device->tag, 0, sharc.astat_old_old);
+ state_save_register_item("sharc", device->tag, 0, sharc.astat_old_old_old);
}
static CPU_RESET( sharc )
diff --git a/src/emu/cpu/ssp1601/ssp1601.c b/src/emu/cpu/ssp1601/ssp1601.c
index 7020215dc99..bea127462c5 100644
--- a/src/emu/cpu/ssp1601/ssp1601.c
+++ b/src/emu/cpu/ssp1601/ssp1601.c
@@ -498,17 +498,17 @@ static UINT32 ptr2_read(int op)
static CPU_INIT( ssp1601 )
{
- state_save_register_item(CHIP_NAME, index, rX);
- state_save_register_item(CHIP_NAME, index, rY);
- state_save_register_item(CHIP_NAME, index, rA32);
- state_save_register_item(CHIP_NAME, index, rST);
- state_save_register_item(CHIP_NAME, index, rSTACK);
- state_save_register_item(CHIP_NAME, index, rPC);
- state_save_register_item(CHIP_NAME, index, rP.d);
- state_save_register_item(CHIP_NAME, index, PPC);
- state_save_register_item_array(CHIP_NAME, index, ssp1601.stack);
- state_save_register_item_array(CHIP_NAME, index, ssp1601.r);
- state_save_register_item_array(CHIP_NAME, index, ssp1601.RAM);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rX);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rY);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rA32);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rST);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rSTACK);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rPC);
+ state_save_register_item(CHIP_NAME, device->tag, 0, rP.d);
+ state_save_register_item(CHIP_NAME, device->tag, 0, PPC);
+ state_save_register_item_array(CHIP_NAME, device->tag, 0, ssp1601.stack);
+ state_save_register_item_array(CHIP_NAME, device->tag, 0, ssp1601.r);
+ state_save_register_item_array(CHIP_NAME, device->tag, 0, ssp1601.RAM);
/* clear the state */
memset(&ssp1601, 0, sizeof(ssp1601));
diff --git a/src/emu/cpu/t11/t11.c b/src/emu/cpu/t11/t11.c
index 985beee2579..3a1f511583a 100644
--- a/src/emu/cpu/t11/t11.c
+++ b/src/emu/cpu/t11/t11.c
@@ -297,21 +297,21 @@ static CPU_INIT( t11 )
t11.irq_callback = irqcallback;
t11.device = device;
- state_save_register_item("t11", index, t11.ppc.w.l);
- state_save_register_item("t11", index, t11.reg[0].w.l);
- state_save_register_item("t11", index, t11.reg[1].w.l);
- state_save_register_item("t11", index, t11.reg[2].w.l);
- state_save_register_item("t11", index, t11.reg[3].w.l);
- state_save_register_item("t11", index, t11.reg[4].w.l);
- state_save_register_item("t11", index, t11.reg[5].w.l);
- state_save_register_item("t11", index, t11.reg[6].w.l);
- state_save_register_item("t11", index, t11.reg[7].w.l);
- state_save_register_item("t11", index, t11.psw.w.l);
- state_save_register_item("t11", index, t11.op);
- state_save_register_item("t11", index, t11.initial_pc);
- state_save_register_item("t11", index, t11.wait_state);
- state_save_register_item("t11", index, t11.irq_state);
- state_save_register_item("t11", index, t11.interrupt_cycles);
+ state_save_register_item("t11", device->tag, 0, t11.ppc.w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[0].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[1].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[2].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[3].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[4].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[5].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[6].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.reg[7].w.l);
+ state_save_register_item("t11", device->tag, 0, t11.psw.w.l);
+ state_save_register_item("t11", device->tag, 0, t11.op);
+ state_save_register_item("t11", device->tag, 0, t11.initial_pc);
+ state_save_register_item("t11", device->tag, 0, t11.wait_state);
+ state_save_register_item("t11", device->tag, 0, t11.irq_state);
+ state_save_register_item("t11", device->tag, 0, t11.interrupt_cycles);
}
diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c
index 270f0a2307f..81e9b520840 100644
--- a/src/emu/cpu/tlcs90/tlcs90.c
+++ b/src/emu/cpu/tlcs90/tlcs90.c
@@ -2626,7 +2626,7 @@ static CPU_INIT( t90 )
{
int i, p;
-// state_save_register_item("z80", index, Z80.prvpc.w.l);
+// state_save_register_item("z80", device->tag, 0, Z80.prvpc.w.l);
for (i = 0; i < 256; i++)
{
diff --git a/src/emu/cpu/tms32010/tms32010.c b/src/emu/cpu/tms32010/tms32010.c
index d9fae9616cf..e7678d8ea5e 100644
--- a/src/emu/cpu/tms32010/tms32010.c
+++ b/src/emu/cpu/tms32010/tms32010.c
@@ -711,21 +711,21 @@ static const opcode_fn opcode_7F_other[32]=
****************************************************************************/
static CPU_INIT( tms32010 )
{
- state_save_register_item("tms32010", index, R.PC);
- state_save_register_item("tms32010", index, R.PREVPC);
- state_save_register_item("tms32010", index, R.STR);
- state_save_register_item("tms32010", index, R.ACC.d);
- state_save_register_item("tms32010", index, R.ALU.d);
- state_save_register_item("tms32010", index, R.Preg.d);
- state_save_register_item("tms32010", index, R.Treg);
- state_save_register_item("tms32010", index, R.AR[0]);
- state_save_register_item("tms32010", index, R.AR[1]);
- state_save_register_item("tms32010", index, R.STACK[0]);
- state_save_register_item("tms32010", index, R.STACK[1]);
- state_save_register_item("tms32010", index, R.STACK[2]);
- state_save_register_item("tms32010", index, R.STACK[3]);
- state_save_register_item("tms32010", index, R.INTF);
- state_save_register_item("tms32010", index, R.opcode.d);
+ state_save_register_item("tms32010", device->tag, 0, R.PC);
+ state_save_register_item("tms32010", device->tag, 0, R.PREVPC);
+ state_save_register_item("tms32010", device->tag, 0, R.STR);
+ state_save_register_item("tms32010", device->tag, 0, R.ACC.d);
+ state_save_register_item("tms32010", device->tag, 0, R.ALU.d);
+ state_save_register_item("tms32010", device->tag, 0, R.Preg.d);
+ state_save_register_item("tms32010", device->tag, 0, R.Treg);
+ state_save_register_item("tms32010", device->tag, 0, R.AR[0]);
+ state_save_register_item("tms32010", device->tag, 0, R.AR[1]);
+ state_save_register_item("tms32010", device->tag, 0, R.STACK[0]);
+ state_save_register_item("tms32010", device->tag, 0, R.STACK[1]);
+ state_save_register_item("tms32010", device->tag, 0, R.STACK[2]);
+ state_save_register_item("tms32010", device->tag, 0, R.STACK[3]);
+ state_save_register_item("tms32010", device->tag, 0, R.INTF);
+ state_save_register_item("tms32010", device->tag, 0, R.opcode.d);
}
/****************************************************************************
diff --git a/src/emu/cpu/tms32025/tms32025.c b/src/emu/cpu/tms32025/tms32025.c
index 7289dec59de..22cac92ed95 100644
--- a/src/emu/cpu/tms32025/tms32025.c
+++ b/src/emu/cpu/tms32025/tms32025.c
@@ -1734,38 +1734,38 @@ static CPU_INIT( tms32025 )
R.irq_callback = irqcallback;
R.device = device;
- state_save_register_item("tms32025", index, R.PC);
- state_save_register_item("tms32025", index, R.STR0);
- state_save_register_item("tms32025", index, R.STR1);
- state_save_register_item("tms32025", index, R.PFC);
- state_save_register_item("tms32025", index, R.IFR);
- state_save_register_item("tms32025", index, R.RPTC);
- state_save_register_item("tms32025", index, R.ACC.d);
- state_save_register_item("tms32025", index, R.ALU.d);
- state_save_register_item("tms32025", index, R.Preg.d);
- state_save_register_item("tms32025", index, R.Treg);
- state_save_register_item("tms32025", index, R.AR[0]);
- state_save_register_item("tms32025", index, R.AR[1]);
- state_save_register_item("tms32025", index, R.AR[2]);
- state_save_register_item("tms32025", index, R.AR[3]);
- state_save_register_item("tms32025", index, R.AR[4]);
- state_save_register_item("tms32025", index, R.AR[5]);
- state_save_register_item("tms32025", index, R.AR[6]);
- state_save_register_item("tms32025", index, R.AR[7]);
- state_save_register_item("tms32025", index, R.STACK[0]);
- state_save_register_item("tms32025", index, R.STACK[1]);
- state_save_register_item("tms32025", index, R.STACK[2]);
- state_save_register_item("tms32025", index, R.STACK[3]);
- state_save_register_item("tms32025", index, R.STACK[4]);
- state_save_register_item("tms32025", index, R.STACK[5]);
- state_save_register_item("tms32025", index, R.STACK[6]);
- state_save_register_item("tms32025", index, R.STACK[7]);
-
- state_save_register_item("tms32025", index, R.idle);
- state_save_register_item("tms32025", index, R.hold);
- state_save_register_item("tms32025", index, R.external_mem_access);
- state_save_register_item("tms32025", index, R.init_load_addr);
- state_save_register_item("tms32025", index, R.PREVPC);
+ state_save_register_item("tms32025", device->tag, 0, R.PC);
+ state_save_register_item("tms32025", device->tag, 0, R.STR0);
+ state_save_register_item("tms32025", device->tag, 0, R.STR1);
+ state_save_register_item("tms32025", device->tag, 0, R.PFC);
+ state_save_register_item("tms32025", device->tag, 0, R.IFR);
+ state_save_register_item("tms32025", device->tag, 0, R.RPTC);
+ state_save_register_item("tms32025", device->tag, 0, R.ACC.d);
+ state_save_register_item("tms32025", device->tag, 0, R.ALU.d);
+ state_save_register_item("tms32025", device->tag, 0, R.Preg.d);
+ state_save_register_item("tms32025", device->tag, 0, R.Treg);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[0]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[1]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[2]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[3]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[4]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[5]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[6]);
+ state_save_register_item("tms32025", device->tag, 0, R.AR[7]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[0]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[1]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[2]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[3]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[4]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[5]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[6]);
+ state_save_register_item("tms32025", device->tag, 0, R.STACK[7]);
+
+ state_save_register_item("tms32025", device->tag, 0, R.idle);
+ state_save_register_item("tms32025", device->tag, 0, R.hold);
+ state_save_register_item("tms32025", device->tag, 0, R.external_mem_access);
+ state_save_register_item("tms32025", device->tag, 0, R.init_load_addr);
+ state_save_register_item("tms32025", device->tag, 0, R.PREVPC);
}
/****************************************************************************
diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/emu/cpu/tms32031/tms32031.c
index 1f278dd1401..b1c1fa2f22c 100644
--- a/src/emu/cpu/tms32031/tms32031.c
+++ b/src/emu/cpu/tms32031/tms32031.c
@@ -429,20 +429,20 @@ static CPU_INIT( tms32031 )
tms32031.iack_w = configdata->iack_w;
}
- state_save_register_item("tms32031", index, tms32031.pc);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.pc);
for (i=0;i<36;i++)
{
sprintf(namebuf,"tms32031.r[%d]",i);
- state_save_register_generic("tms32031", index, namebuf, tms32031.r[i].i8, UINT8, 8);
+ state_save_register_generic("tms32031", device->tag, 0, namebuf, tms32031.r[i].i8, UINT8, 8);
}
- state_save_register_item("tms32031", index, tms32031.bkmask);
- state_save_register_item("tms32031", index, tms32031.op);
- state_save_register_item("tms32031", index, tms32031.irq_state);
- state_save_register_item("tms32031", index, tms32031.delayed);
- state_save_register_item("tms32031", index, tms32031.irq_pending);
- state_save_register_item("tms32031", index, tms32031.mcu_mode);
- state_save_register_item("tms32031", index, tms32031.is_idling);
- state_save_register_item("tms32031", index, tms32031.interrupt_cycles);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.bkmask);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.op);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.irq_state);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.delayed);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.irq_pending);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.mcu_mode);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.is_idling);
+ state_save_register_item("tms32031", device->tag, 0, tms32031.interrupt_cycles);
}
diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/emu/cpu/tms34010/tms34010.c
index 1500deff0ba..14d23c125a9 100644
--- a/src/emu/cpu/tms34010/tms34010.c
+++ b/src/emu/cpu/tms34010/tms34010.c
@@ -633,17 +633,17 @@ static CPU_INIT( tms34010 )
/* allocate the shiftreg */
tms->shiftreg = auto_malloc(SHIFTREG_SIZE);
- state_save_register_item("tms34010", index, tms->pc);
- state_save_register_item("tms34010", index, tms->st);
- state_save_register_item("tms34010", index, tms->reset_deferred);
- state_save_register_item_pointer("tms34010", index, tms->shiftreg, SHIFTREG_SIZE / 2);
- state_save_register_item_array("tms34010", index, tms->IOregs);
- state_save_register_item("tms34010", index, tms->convsp);
- state_save_register_item("tms34010", index, tms->convdp);
- state_save_register_item("tms34010", index, tms->convmp);
- state_save_register_item("tms34010", index, tms->pixelshift);
- state_save_register_item("tms34010", index, tms->gfxcycles);
- state_save_register_item_pointer("tms34010", index, (&tms->regs[0].reg), ARRAY_LENGTH(tms->regs));
+ state_save_register_item("tms34010", device->tag, 0, tms->pc);
+ state_save_register_item("tms34010", device->tag, 0, tms->st);
+ state_save_register_item("tms34010", device->tag, 0, tms->reset_deferred);
+ state_save_register_item_pointer("tms34010", device->tag, 0, tms->shiftreg, SHIFTREG_SIZE / 2);
+ state_save_register_item_array("tms34010", device->tag, 0, tms->IOregs);
+ state_save_register_item("tms34010", device->tag, 0, tms->convsp);
+ state_save_register_item("tms34010", device->tag, 0, tms->convdp);
+ state_save_register_item("tms34010", device->tag, 0, tms->convmp);
+ state_save_register_item("tms34010", device->tag, 0, tms->pixelshift);
+ state_save_register_item("tms34010", device->tag, 0, tms->gfxcycles);
+ state_save_register_item_pointer("tms34010", device->tag, 0, (&tms->regs[0].reg), ARRAY_LENGTH(tms->regs));
state_save_register_postload(device->machine, tms34010_state_postload, tms);
}
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c
index eb81b746124..cf3cbd051e5 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/emu/cpu/tms7000/tms7000.c
@@ -187,8 +187,6 @@ static CPU_SET_CONTEXT( tms7000 )
static CPU_INIT( tms7000 )
{
- int cpu = cpunum_get_active();
-
tms7000.irq_callback = irqcallback;
tms7000.device = device;
@@ -196,23 +194,23 @@ static CPU_INIT( tms7000 )
memset(tms7000.rf, 0, 0x80);
/* Save register state */
- state_save_register_item("tms7000", cpu, pPC);
- state_save_register_item("tms7000", cpu, pSP);
- state_save_register_item("tms7000", cpu, pSR);
+ state_save_register_item("tms7000", device->tag, 0, pPC);
+ state_save_register_item("tms7000", device->tag, 0, pSP);
+ state_save_register_item("tms7000", device->tag, 0, pSR);
/* Save Interrupt state */
- state_save_register_item_array("tms7000", cpu, tms7000.irq_state);
+ state_save_register_item_array("tms7000", device->tag, 0, tms7000.irq_state);
/* Save register and perpherial file state */
- state_save_register_item_array("tms7000", cpu, tms7000.rf);
- state_save_register_item_array("tms7000", cpu, tms7000.pf);
+ state_save_register_item_array("tms7000", device->tag, 0, tms7000.rf);
+ state_save_register_item_array("tms7000", device->tag, 0, tms7000.pf);
/* Save timer state */
- state_save_register_item("tms7000", cpu, tms7000.t1_prescaler);
- state_save_register_item("tms7000", cpu, tms7000.t1_capture_latch);
- state_save_register_item("tms7000", cpu, tms7000.t1_decrementer);
+ state_save_register_item("tms7000", device->tag, 0, tms7000.t1_prescaler);
+ state_save_register_item("tms7000", device->tag, 0, tms7000.t1_capture_latch);
+ state_save_register_item("tms7000", device->tag, 0, tms7000.t1_decrementer);
- state_save_register_item("tms7000", cpu, tms7000.idle_state);
+ state_save_register_item("tms7000", device->tag, 0, tms7000.idle_state);
}
static CPU_RESET( tms7000 )
diff --git a/src/emu/cpu/tms9900/99xxcore.h b/src/emu/cpu/tms9900/99xxcore.h
index 865c8583c03..5df63473f8d 100644
--- a/src/emu/cpu/tms9900/99xxcore.h
+++ b/src/emu/cpu/tms9900/99xxcore.h
@@ -1203,78 +1203,78 @@ static void set_flag1(int val);
/**************************************************************************/
-static void register_for_save_state(int index)
+static void register_for_save_state(const device_config *device)
{
- state_save_register_item("tms99xx", index, I.WP);
- state_save_register_item("tms99xx", index, I.PC);
- state_save_register_item("tms99xx", index, I.STATUS);
- state_save_register_item("tms99xx", index, I.interrupt_pending);
+ state_save_register_item("tms99xx", device->tag, 0, I.WP);
+ state_save_register_item("tms99xx", device->tag, 0, I.PC);
+ state_save_register_item("tms99xx", device->tag, 0, I.STATUS);
+ state_save_register_item("tms99xx", device->tag, 0, I.interrupt_pending);
#if ! ((TMS99XX_MODEL == TMS9940_ID) || (TMS99XX_MODEL == TMS9985_ID))
- state_save_register_item("tms99xx", index, I.load_state);
+ state_save_register_item("tms99xx", device->tag, 0, I.load_state);
#endif
#if (TMS99XX_MODEL == TI990_10_ID) || (TMS99XX_MODEL == TMS9900_ID) || (TMS99XX_MODEL == TMS9980_ID)
- state_save_register_item("tms99xx", index, I.irq_level);
- state_save_register_item("tms99xx", index, I.irq_state);
+ state_save_register_item("tms99xx", device->tag, 0, I.irq_level);
+ state_save_register_item("tms99xx", device->tag, 0, I.irq_state);
#elif (TMS99XX_MODEL == TMS9995_ID)
- state_save_register_item("tms99xx", index, I.irq_level);
- state_save_register_item("tms99xx", index, I.int_state);
- state_save_register_item("tms99xx", index, I.int_latch);
+ state_save_register_item("tms99xx", device->tag, 0, I.irq_level);
+ state_save_register_item("tms99xx", device->tag, 0, I.int_state);
+ state_save_register_item("tms99xx", device->tag, 0, I.int_latch);
#endif
- state_save_register_item("tms99xx", index, I.IDLE);
+ state_save_register_item("tms99xx", device->tag, 0, I.IDLE);
#if HAS_MAPPING
- state_save_register_item("tms99xx", index, I.mapping_on);
- state_save_register_item_array("tms99xx", index, I.map_files[0].L);
- state_save_register_item_array("tms99xx", index, I.map_files[0].B);
- state_save_register_item_array("tms99xx", index, I.map_files[0].limit);
- state_save_register_item_array("tms99xx", index, I.map_files[0].bias);
- state_save_register_item_array("tms99xx", index, I.map_files[1].L);
- state_save_register_item_array("tms99xx", index, I.map_files[1].B);
- state_save_register_item_array("tms99xx", index, I.map_files[1].limit);
- state_save_register_item_array("tms99xx", index, I.map_files[1].bias);
- state_save_register_item_array("tms99xx", index, I.map_files[2].L);
- state_save_register_item_array("tms99xx", index, I.map_files[2].B);
- state_save_register_item_array("tms99xx", index, I.map_files[2].limit);
- state_save_register_item_array("tms99xx", index, I.map_files[2].bias);
- state_save_register_item("tms99xx", index, I.cur_map);
- state_save_register_item("tms99xx", index, I.cur_src_map);
- state_save_register_item("tms99xx", index, I.cur_dst_map);
+ state_save_register_item("tms99xx", device->tag, 0, I.mapping_on);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[0].L);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[0].B);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[0].limit);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[0].bias);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[1].L);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[1].B);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[1].limit);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[1].bias);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[2].L);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[2].B);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[2].limit);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.map_files[2].bias);
+ state_save_register_item("tms99xx", device->tag, 0, I.cur_map);
+ state_save_register_item("tms99xx", device->tag, 0, I.cur_src_map);
+ state_save_register_item("tms99xx", device->tag, 0, I.cur_dst_map);
#if (TMS99XX_MODEL == TI990_10_ID)
- state_save_register_item("tms99xx", index, I.reset_maperr);
- state_save_register_item("tms99xx", index, I.mapper_address_latch);
- state_save_register_item("tms99xx", index, I.mapper_cru_read_register);
- state_save_register_item("tms99xx", index, I.diaglat);
- state_save_register_item_array("tms99xx", index, I.latch_control);
+ state_save_register_item("tms99xx", device->tag, 0, I.reset_maperr);
+ state_save_register_item("tms99xx", device->tag, 0, I.mapper_address_latch);
+ state_save_register_item("tms99xx", device->tag, 0, I.mapper_cru_read_register);
+ state_save_register_item("tms99xx", device->tag, 0, I.diaglat);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.latch_control);
#endif
#endif
#if (TMS99XX_MODEL == TI990_10_ID)
- state_save_register_item("tms99xx", index, I.error_interrupt_register);
+ state_save_register_item("tms99xx", device->tag, 0, I.error_interrupt_register);
#endif
#if (TMS99XX_MODEL == TMS9985_ID) || (TMS99XX_MODEL == TMS9995_ID)
- state_save_register_item_array("tms99xx", index, I.RAM);
+ state_save_register_item_array("tms99xx", device->tag, 0, I.RAM);
#endif
#if (TMS99XX_MODEL == TMS9940_ID) || (TMS99XX_MODEL == TMS9985_ID) || (TMS99XX_MODEL == TMS9995_ID)
- state_save_register_item("tms99xx", index, I.decrementer_enabled);
- state_save_register_item("tms99xx", index, I.decrementer_interval);
- state_save_register_item("tms99xx", index, I.decrementer_count);
+ state_save_register_item("tms99xx", device->tag, 0, I.decrementer_enabled);
+ state_save_register_item("tms99xx", device->tag, 0, I.decrementer_interval);
+ state_save_register_item("tms99xx", device->tag, 0, I.decrementer_count);
#endif
#if (TMS99XX_MODEL == TMS9995_ID)
- state_save_register_item("tms99xx", index, I.flag);
- state_save_register_item("tms99xx", index, I.MID_flag);
- state_save_register_item("tms99xx", index, I.memory_wait_states_byte);
- state_save_register_item("tms99xx", index, I.memory_wait_states_word);
- state_save_register_item("tms99xx", index, I.is_mp9537);
+ state_save_register_item("tms99xx", device->tag, 0, I.flag);
+ state_save_register_item("tms99xx", device->tag, 0, I.MID_flag);
+ state_save_register_item("tms99xx", device->tag, 0, I.memory_wait_states_byte);
+ state_save_register_item("tms99xx", device->tag, 0, I.memory_wait_states_word);
+ state_save_register_item("tms99xx", device->tag, 0, I.is_mp9537);
#endif
- state_save_register_item("tms99xx", index, I.disable_interrupt_recognition);
+ state_save_register_item("tms99xx", device->tag, 0, I.disable_interrupt_recognition);
}
@@ -1282,7 +1282,7 @@ static CPU_INIT( tms99xx )
{
const TMS99XX_RESET_PARAM *param = (const TMS99XX_RESET_PARAM *) device->static_config;
- register_for_save_state(index);
+ register_for_save_state(device);
I.irq_level = 16;
I.irq_callback = irqcallback;
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/emu/cpu/upd7810/upd7810.c
index 17e8c6fe88b..d095fd975c2 100644
--- a/src/emu/cpu/upd7810/upd7810.c
+++ b/src/emu/cpu/upd7810/upd7810.c
@@ -1535,68 +1535,68 @@ static CPU_INIT( upd7810 )
upd7810.irq_callback = irqcallback;
upd7810.device = device;
- state_save_register_item("upd7810", index, upd7810.ppc.w.l);
- state_save_register_item("upd7810", index, upd7810.pc.w.l);
- state_save_register_item("upd7810", index, upd7810.sp.w.l);
- state_save_register_item("upd7810", index, upd7810.psw);
- state_save_register_item("upd7810", index, upd7810.op);
- state_save_register_item("upd7810", index, upd7810.op2);
- state_save_register_item("upd7810", index, upd7810.iff);
- state_save_register_item("upd7810", index, upd7810.ea.w.l);
- state_save_register_item("upd7810", index, upd7810.va.w.l);
- state_save_register_item("upd7810", index, upd7810.bc.w.l);
- state_save_register_item("upd7810", index, upd7810.de.w.l);
- state_save_register_item("upd7810", index, upd7810.hl.w.l);
- state_save_register_item("upd7810", index, upd7810.ea2.w.l);
- state_save_register_item("upd7810", index, upd7810.va2.w.l);
- state_save_register_item("upd7810", index, upd7810.bc2.w.l);
- state_save_register_item("upd7810", index, upd7810.de2.w.l);
- state_save_register_item("upd7810", index, upd7810.hl2.w.l);
- state_save_register_item("upd7810", index, upd7810.cnt.d);
- state_save_register_item("upd7810", index, upd7810.tm.d);
- state_save_register_item("upd7810", index, upd7810.ecnt.d);
- state_save_register_item("upd7810", index, upd7810.etm.d);
- state_save_register_item("upd7810", index, upd7810.ma);
- state_save_register_item("upd7810", index, upd7810.mb);
- state_save_register_item("upd7810", index, upd7810.mcc);
- state_save_register_item("upd7810", index, upd7810.mc);
- state_save_register_item("upd7810", index, upd7810.mm);
- state_save_register_item("upd7810", index, upd7810.mf);
- state_save_register_item("upd7810", index, upd7810.tmm);
- state_save_register_item("upd7810", index, upd7810.etmm);
- state_save_register_item("upd7810", index, upd7810.eom);
- state_save_register_item("upd7810", index, upd7810.sml);
- state_save_register_item("upd7810", index, upd7810.smh);
- state_save_register_item("upd7810", index, upd7810.anm);
- state_save_register_item("upd7810", index, upd7810.mkl);
- state_save_register_item("upd7810", index, upd7810.mkh);
- state_save_register_item("upd7810", index, upd7810.zcm);
- state_save_register_item("upd7810", index, upd7810.pa_out);
- state_save_register_item("upd7810", index, upd7810.pb_out);
- state_save_register_item("upd7810", index, upd7810.pc_out);
- state_save_register_item("upd7810", index, upd7810.pd_out);
- state_save_register_item("upd7810", index, upd7810.pf_out);
- state_save_register_item("upd7810", index, upd7810.cr0);
- state_save_register_item("upd7810", index, upd7810.cr1);
- state_save_register_item("upd7810", index, upd7810.cr2);
- state_save_register_item("upd7810", index, upd7810.cr3);
- state_save_register_item("upd7810", index, upd7810.txb);
- state_save_register_item("upd7810", index, upd7810.rxb);
- state_save_register_item("upd7810", index, upd7810.txd);
- state_save_register_item("upd7810", index, upd7810.rxd);
- state_save_register_item("upd7810", index, upd7810.sck);
- state_save_register_item("upd7810", index, upd7810.ti);
- state_save_register_item("upd7810", index, upd7810.to);
- state_save_register_item("upd7810", index, upd7810.ci);
- state_save_register_item("upd7810", index, upd7810.co0);
- state_save_register_item("upd7810", index, upd7810.co1);
- state_save_register_item("upd7810", index, upd7810.irr);
- state_save_register_item("upd7810", index, upd7810.itf);
- state_save_register_item("upd7810", index, upd7810.ovc0);
- state_save_register_item("upd7810", index, upd7810.ovc1);
- state_save_register_item("upd7810", index, upd7810.ovcf);
- state_save_register_item("upd7810", index, upd7810.ovcs);
- state_save_register_item("upd7810", index, upd7810.edges);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ppc.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pc.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.sp.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.psw);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.op);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.op2);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.iff);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ea.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.va.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.bc.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.de.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.hl.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ea2.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.va2.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.bc2.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.de2.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.hl2.w.l);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.cnt.d);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.tm.d);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ecnt.d);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.etm.d);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ma);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mb);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mcc);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mc);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mm);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mf);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.tmm);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.etmm);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.eom);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.sml);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.smh);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.anm);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mkl);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.mkh);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.zcm);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pa_out);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pb_out);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pc_out);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pd_out);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.pf_out);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.cr0);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.cr1);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.cr2);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.cr3);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.txb);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.rxb);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.txd);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.rxd);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.sck);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ti);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.to);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ci);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.co0);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.co1);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.irr);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.itf);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ovc0);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ovc1);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ovcf);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.ovcs);
+ state_save_register_item("upd7810", device->tag, 0, upd7810.edges);
}
#include "7810tbl.c"
diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/emu/cpu/v30mz/v30mz.c
index f820bc27ad6..68c28a03e54 100644
--- a/src/emu/cpu/v30mz/v30mz.c
+++ b/src/emu/cpu/v30mz/v30mz.c
@@ -928,24 +928,24 @@ static void nec_init(const device_config *device, int index, int clock, cpu_irq_
{
static const char *const names[]={"V20","V30","V33","V30MZ"};
- state_save_register_item_array(names[type], index, I.regs.w);
- state_save_register_item_array(names[type], index, I.sregs);
-
- state_save_register_item(names[type], index, I.ip);
- state_save_register_item(names[type], index, I.TF);
- state_save_register_item(names[type], index, I.IF);
- state_save_register_item(names[type], index, I.DF);
- state_save_register_item(names[type], index, I.MF);
- state_save_register_item(names[type], index, I.SignVal);
- state_save_register_item(names[type], index, I.int_vector);
- state_save_register_item(names[type], index, I.pending_irq);
- state_save_register_item(names[type], index, I.nmi_state);
- state_save_register_item(names[type], index, I.irq_state);
- state_save_register_item(names[type], index, I.AuxVal);
- state_save_register_item(names[type], index, I.OverVal);
- state_save_register_item(names[type], index, I.ZeroVal);
- state_save_register_item(names[type], index, I.CarryVal);
- state_save_register_item(names[type], index, I.ParityVal);
+ state_save_register_item_array(names[type], device->tag, 0, I.regs.w);
+ state_save_register_item_array(names[type], device->tag, 0, I.sregs);
+
+ state_save_register_item(names[type], device->tag, 0, I.ip);
+ state_save_register_item(names[type], device->tag, 0, I.TF);
+ state_save_register_item(names[type], device->tag, 0, I.IF);
+ state_save_register_item(names[type], device->tag, 0, I.DF);
+ state_save_register_item(names[type], device->tag, 0, I.MF);
+ state_save_register_item(names[type], device->tag, 0, I.SignVal);
+ state_save_register_item(names[type], device->tag, 0, I.int_vector);
+ state_save_register_item(names[type], device->tag, 0, I.pending_irq);
+ state_save_register_item(names[type], device->tag, 0, I.nmi_state);
+ state_save_register_item(names[type], device->tag, 0, I.irq_state);
+ state_save_register_item(names[type], device->tag, 0, I.AuxVal);
+ state_save_register_item(names[type], device->tag, 0, I.OverVal);
+ state_save_register_item(names[type], device->tag, 0, I.ZeroVal);
+ state_save_register_item(names[type], device->tag, 0, I.CarryVal);
+ state_save_register_item(names[type], device->tag, 0, I.ParityVal);
I.irq_callback = irqcallback;
I.device = device;
diff --git a/src/emu/cpu/v60/v60.c b/src/emu/cpu/v60/v60.c
index ac903e7e1a5..8a4c0510b59 100644
--- a/src/emu/cpu/v60/v60.c
+++ b/src/emu/cpu/v60/v60.c
@@ -308,14 +308,14 @@ static void base_init(const char *type, const device_config *device, int index,
v60.irq_line = CLEAR_LINE;
v60.nmi_line = CLEAR_LINE;
- state_save_register_item_array(type, index, v60.reg);
- state_save_register_item(type, index, v60.irq_line);
- state_save_register_item(type, index, v60.nmi_line);
- state_save_register_item(type, index, v60.PPC);
- state_save_register_item(type, index, _CY);
- state_save_register_item(type, index, _OV);
- state_save_register_item(type, index, _S);
- state_save_register_item(type, index, _Z);
+ state_save_register_item_array(type, device->tag, 0, v60.reg);
+ state_save_register_item(type, device->tag, 0, v60.irq_line);
+ state_save_register_item(type, device->tag, 0, v60.nmi_line);
+ state_save_register_item(type, device->tag, 0, v60.PPC);
+ state_save_register_item(type, device->tag, 0, _CY);
+ state_save_register_item(type, device->tag, 0, _OV);
+ state_save_register_item(type, device->tag, 0, _S);
+ state_save_register_item(type, device->tag, 0, _Z);
}
static CPU_INIT( v60 )
diff --git a/src/emu/cpu/v810/v810.c b/src/emu/cpu/v810/v810.c
index 5e158476433..90b87007165 100644
--- a/src/emu/cpu/v810/v810.c
+++ b/src/emu/cpu/v810/v810.c
@@ -953,10 +953,10 @@ static CPU_INIT( v810 )
v810.irq_cb = irqcallback;
v810.device = device;
- state_save_register_item_array("v810", index, v810.reg);
- state_save_register_item("v810", index, v810.irq_line);
- state_save_register_item("v810", index, v810.nmi_line);
- state_save_register_item("v810", index, v810.PPC);
+ state_save_register_item_array("v810", device->tag, 0, v810.reg);
+ state_save_register_item("v810", device->tag, 0, v810.irq_line);
+ state_save_register_item("v810", device->tag, 0, v810.nmi_line);
+ state_save_register_item("v810", device->tag, 0, v810.PPC);
}
diff --git a/src/emu/cpu/vtlb.c b/src/emu/cpu/vtlb.c
index f8992e1dcbc..563f40110c1 100644
--- a/src/emu/cpu/vtlb.c
+++ b/src/emu/cpu/vtlb.c
@@ -57,7 +57,6 @@ struct _vtlb_state
vtlb_state *vtlb_alloc(const device_config *cpu, int space, int fixed_entries, int dynamic_entries)
{
- char tempname[100];
vtlb_state *vtlb;
/* allocate memory for the core structure */
@@ -78,24 +77,22 @@ vtlb_state *vtlb_alloc(const device_config *cpu, int space, int fixed_entries, i
assert(vtlb->translate != NULL);
assert(vtlb->addrwidth > vtlb->pageshift);
- state_save_combine_module_and_tag(tempname, "vtlb", cpu->tag);
-
/* allocate the entry array */
vtlb->live = malloc_or_die(sizeof(vtlb->live[0]) * (fixed_entries + dynamic_entries));
memset(vtlb->live, 0, sizeof(vtlb->live[0]) * (fixed_entries + dynamic_entries));
- state_save_register_item_pointer(tempname, space, vtlb->live, fixed_entries + dynamic_entries);
+ state_save_register_item_pointer("vtlb", cpu->tag, space, vtlb->live, fixed_entries + dynamic_entries);
/* allocate the lookup table */
vtlb->table = malloc_or_die(sizeof(vtlb->table[0]) << (vtlb->addrwidth - vtlb->pageshift));
memset(vtlb->table, 0, sizeof(vtlb->table[0]) << (vtlb->addrwidth - vtlb->pageshift));
- state_save_register_item_pointer(tempname, space, vtlb->table, 1 << (vtlb->addrwidth - vtlb->pageshift));
+ state_save_register_item_pointer("vtlb", cpu->tag, space, vtlb->table, 1 << (vtlb->addrwidth - vtlb->pageshift));
/* allocate the fixed page count array */
if (fixed_entries > 0)
{
vtlb->fixedpages = malloc_or_die(sizeof(vtlb->fixedpages[0]) * fixed_entries);
memset(vtlb->fixedpages, 0, sizeof(vtlb->fixedpages[0]) * fixed_entries);
- state_save_register_item_pointer(tempname, space, vtlb->fixedpages, fixed_entries);
+ state_save_register_item_pointer("vtlb", cpu->tag, space, vtlb->fixedpages, fixed_entries);
}
return vtlb;
}
diff --git a/src/emu/cpu/z180/z180.c b/src/emu/cpu/z180/z180.c
index bd1a78a8e11..9cd282fc739 100644
--- a/src/emu/cpu/z180/z180.c
+++ b/src/emu/cpu/z180/z180.c
@@ -1905,31 +1905,31 @@ static CPU_INIT( z180 )
Z180.irq_callback = irqcallback;
Z180.device = device;
- state_save_register_item("z180", index, Z180.AF.w.l);
- state_save_register_item("z180", index, Z180.BC.w.l);
- state_save_register_item("z180", index, Z180.DE.w.l);
- state_save_register_item("z180", index, Z180.HL.w.l);
- state_save_register_item("z180", index, Z180.IX.w.l);
- state_save_register_item("z180", index, Z180.IY.w.l);
- state_save_register_item("z180", index, Z180.PC.w.l);
- state_save_register_item("z180", index, Z180.SP.w.l);
- state_save_register_item("z180", index, Z180.AF2.w.l);
- state_save_register_item("z180", index, Z180.BC2.w.l);
- state_save_register_item("z180", index, Z180.DE2.w.l);
- state_save_register_item("z180", index, Z180.HL2.w.l);
- state_save_register_item("z180", index, Z180.R);
- state_save_register_item("z180", index, Z180.R2);
- state_save_register_item("z180", index, Z180.IFF1);
- state_save_register_item("z180", index, Z180.IFF2);
- state_save_register_item("z180", index, Z180.HALT);
- state_save_register_item("z180", index, Z180.IM);
- state_save_register_item("z180", index, Z180.I);
- state_save_register_item("z180", index, Z180.nmi_state);
- state_save_register_item("z180", index, Z180.nmi_pending);
- state_save_register_item("z180", index, Z180.irq_state[0]);
- state_save_register_item("z180", index, Z180.irq_state[1]);
- state_save_register_item("z180", index, Z180.irq_state[2]);
- state_save_register_item("z180", index, Z180.after_EI);
+ state_save_register_item("z180", device->tag, 0, Z180.AF.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.BC.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.DE.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.HL.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.IX.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.IY.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.PC.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.SP.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.AF2.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.BC2.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.DE2.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.HL2.w.l);
+ state_save_register_item("z180", device->tag, 0, Z180.R);
+ state_save_register_item("z180", device->tag, 0, Z180.R2);
+ state_save_register_item("z180", device->tag, 0, Z180.IFF1);
+ state_save_register_item("z180", device->tag, 0, Z180.IFF2);
+ state_save_register_item("z180", device->tag, 0, Z180.HALT);
+ state_save_register_item("z180", device->tag, 0, Z180.IM);
+ state_save_register_item("z180", device->tag, 0, Z180.I);
+ state_save_register_item("z180", device->tag, 0, Z180.nmi_state);
+ state_save_register_item("z180", device->tag, 0, Z180.nmi_pending);
+ state_save_register_item("z180", device->tag, 0, Z180.irq_state[0]);
+ state_save_register_item("z180", device->tag, 0, Z180.irq_state[1]);
+ state_save_register_item("z180", device->tag, 0, Z180.irq_state[2]);
+ state_save_register_item("z180", device->tag, 0, Z180.after_EI);
}
/****************************************************************************
diff --git a/src/emu/cpu/z80/z80.c b/src/emu/cpu/z80/z80.c
index 206361fc1fe..4c90ebe43e6 100644
--- a/src/emu/cpu/z80/z80.c
+++ b/src/emu/cpu/z80/z80.c
@@ -3518,31 +3518,31 @@ static CPU_INIT( z80 )
if( (i & 0x0f) == 0x0f ) SZHV_dec[i] |= HF;
}
- state_save_register_item("z80", index, z80->prvpc.w.l);
- state_save_register_item("z80", index, z80->pc.w.l);
- state_save_register_item("z80", index, z80->sp.w.l);
- state_save_register_item("z80", index, z80->af.w.l);
- state_save_register_item("z80", index, z80->bc.w.l);
- state_save_register_item("z80", index, z80->de.w.l);
- state_save_register_item("z80", index, z80->hl.w.l);
- state_save_register_item("z80", index, z80->ix.w.l);
- state_save_register_item("z80", index, z80->iy.w.l);
- state_save_register_item("z80", index, z80->memptr.w.l);
- state_save_register_item("z80", index, z80->af2.w.l);
- state_save_register_item("z80", index, z80->bc2.w.l);
- state_save_register_item("z80", index, z80->de2.w.l);
- state_save_register_item("z80", index, z80->hl2.w.l);
- state_save_register_item("z80", index, z80->r);
- state_save_register_item("z80", index, z80->r2);
- state_save_register_item("z80", index, z80->iff1);
- state_save_register_item("z80", index, z80->iff2);
- state_save_register_item("z80", index, z80->halt);
- state_save_register_item("z80", index, z80->im);
- state_save_register_item("z80", index, z80->i);
- state_save_register_item("z80", index, z80->nmi_state);
- state_save_register_item("z80", index, z80->nmi_pending);
- state_save_register_item("z80", index, z80->irq_state);
- state_save_register_item("z80", index, z80->after_ei);
+ state_save_register_item("z80", device->tag, 0, z80->prvpc.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->pc.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->sp.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->af.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->bc.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->de.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->hl.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->ix.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->iy.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->memptr.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->af2.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->bc2.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->de2.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->hl2.w.l);
+ state_save_register_item("z80", device->tag, 0, z80->r);
+ state_save_register_item("z80", device->tag, 0, z80->r2);
+ state_save_register_item("z80", device->tag, 0, z80->iff1);
+ state_save_register_item("z80", device->tag, 0, z80->iff2);
+ state_save_register_item("z80", device->tag, 0, z80->halt);
+ state_save_register_item("z80", device->tag, 0, z80->im);
+ state_save_register_item("z80", device->tag, 0, z80->i);
+ state_save_register_item("z80", device->tag, 0, z80->nmi_state);
+ state_save_register_item("z80", device->tag, 0, z80->nmi_pending);
+ state_save_register_item("z80", device->tag, 0, z80->irq_state);
+ state_save_register_item("z80", device->tag, 0, z80->after_ei);
/* Reset registers to their initial values */
memset(z80, 0, sizeof(*z80));
diff --git a/src/emu/cpuexec.c b/src/emu/cpuexec.c
index abd79549ae6..1beb9f7440b 100644
--- a/src/emu/cpuexec.c
+++ b/src/emu/cpuexec.c
@@ -1376,27 +1376,26 @@ static void register_save_states(const device_config *device)
cpu_class_data *classdata = device->classtoken;
int line;
- state_save_register_item("cpu", classdata->header.index, classdata->suspend);
- state_save_register_item("cpu", classdata->header.index, classdata->nextsuspend);
- state_save_register_item("cpu", classdata->header.index, classdata->eatcycles);
- state_save_register_item("cpu", classdata->header.index, classdata->nexteatcycles);
- state_save_register_item("cpu", classdata->header.index, classdata->trigger);
+ state_save_register_item("cpu", device->tag, 0, classdata->suspend);
+ state_save_register_item("cpu", device->tag, 0, classdata->nextsuspend);
+ state_save_register_item("cpu", device->tag, 0, classdata->eatcycles);
+ state_save_register_item("cpu", device->tag, 0, classdata->nexteatcycles);
+ state_save_register_item("cpu", device->tag, 0, classdata->trigger);
- state_save_register_item("cpu", classdata->header.index, classdata->iloops);
+ state_save_register_item("cpu", device->tag, 0, classdata->iloops);
- state_save_register_item("cpu", classdata->header.index, classdata->totalcycles);
- state_save_register_item("cpu", classdata->header.index, classdata->localtime.seconds);
- state_save_register_item("cpu", classdata->header.index, classdata->localtime.attoseconds);
- state_save_register_item("cpu", classdata->header.index, classdata->clock);
- state_save_register_item("cpu", classdata->header.index, classdata->clockscale);
+ state_save_register_item("cpu", device->tag, 0, classdata->totalcycles);
+ state_save_register_item("cpu", device->tag, 0, classdata->localtime.seconds);
+ state_save_register_item("cpu", device->tag, 0, classdata->localtime.attoseconds);
+ state_save_register_item("cpu", device->tag, 0, classdata->clock);
+ state_save_register_item("cpu", device->tag, 0, classdata->clockscale);
for (line = 0; line < ARRAY_LENGTH(classdata->input); line++)
{
cpu_input_data *inputline = &classdata->input[line];
- int index = classdata->header.index * ARRAY_LENGTH(classdata->input) + line;
- state_save_register_item("cpu", index, inputline->vector);
- state_save_register_item("cpu", index, inputline->curvector);
- state_save_register_item("cpu", index, inputline->curstate);
+ state_save_register_item("cpu", device->tag, line, inputline->vector);
+ state_save_register_item("cpu", device->tag, line, inputline->curvector);
+ state_save_register_item("cpu", device->tag, line, inputline->curstate);
}
}
diff --git a/src/emu/machine/6526cia.c b/src/emu/machine/6526cia.c
index 5b384322b22..5662006da73 100644
--- a/src/emu/machine/6526cia.c
+++ b/src/emu/machine/6526cia.c
@@ -187,38 +187,38 @@ void cia_config(running_machine *machine, int which, const cia6526_interface *in
add_exit_callback(machine, cia_exit);
/* state save support */
- state_save_register_item("6526cia", which, cia->port[0].ddr);
- state_save_register_item("6526cia", which, cia->port[0].latch);
- state_save_register_item("6526cia", which, cia->port[0].in);
- state_save_register_item("6526cia", which, cia->port[0].out);
- state_save_register_item("6526cia", which, cia->port[0].mask_value);
- state_save_register_item("6526cia", which, cia->port[1].ddr);
- state_save_register_item("6526cia", which, cia->port[1].latch);
- state_save_register_item("6526cia", which, cia->port[1].in);
- state_save_register_item("6526cia", which, cia->port[1].out);
- state_save_register_item("6526cia", which, cia->port[1].mask_value);
- state_save_register_item("6526cia", which, cia->timer[0].latch);
- state_save_register_item("6526cia", which, cia->timer[0].count);
- state_save_register_item("6526cia", which, cia->timer[0].mode);
- state_save_register_item("6526cia", which, cia->timer[0].irq);
- state_save_register_item("6526cia", which, cia->timer[1].latch);
- state_save_register_item("6526cia", which, cia->timer[1].count);
- state_save_register_item("6526cia", which, cia->timer[1].mode);
- state_save_register_item("6526cia", which, cia->timer[1].irq);
- state_save_register_item("6526cia", which, cia->tod);
- state_save_register_item("6526cia", which, cia->tod_latch);
- state_save_register_item("6526cia", which, cia->tod_latched);
- state_save_register_item("6526cia", which, cia->tod_running);
- state_save_register_item("6526cia", which, cia->alarm);
- state_save_register_item("6526cia", which, cia->icr);
- state_save_register_item("6526cia", which, cia->ics);
- state_save_register_item("6526cia", which, cia->irq);
- state_save_register_item("6526cia", which, cia->loaded);
- state_save_register_item("6526cia", which, cia->sdr);
- state_save_register_item("6526cia", which, cia->sp);
- state_save_register_item("6526cia", which, cia->cnt);
- state_save_register_item("6526cia", which, cia->shift);
- state_save_register_item("6526cia", which, cia->serial);
+ state_save_register_item("6526cia", NULL, which, cia->port[0].ddr);
+ state_save_register_item("6526cia", NULL, which, cia->port[0].latch);
+ state_save_register_item("6526cia", NULL, which, cia->port[0].in);
+ state_save_register_item("6526cia", NULL, which, cia->port[0].out);
+ state_save_register_item("6526cia", NULL, which, cia->port[0].mask_value);
+ state_save_register_item("6526cia", NULL, which, cia->port[1].ddr);
+ state_save_register_item("6526cia", NULL, which, cia->port[1].latch);
+ state_save_register_item("6526cia", NULL, which, cia->port[1].in);
+ state_save_register_item("6526cia", NULL, which, cia->port[1].out);
+ state_save_register_item("6526cia", NULL, which, cia->port[1].mask_value);
+ state_save_register_item("6526cia", NULL, which, cia->timer[0].latch);
+ state_save_register_item("6526cia", NULL, which, cia->timer[0].count);
+ state_save_register_item("6526cia", NULL, which, cia->timer[0].mode);
+ state_save_register_item("6526cia", NULL, which, cia->timer[0].irq);
+ state_save_register_item("6526cia", NULL, which, cia->timer[1].latch);
+ state_save_register_item("6526cia", NULL, which, cia->timer[1].count);
+ state_save_register_item("6526cia", NULL, which, cia->timer[1].mode);
+ state_save_register_item("6526cia", NULL, which, cia->timer[1].irq);
+ state_save_register_item("6526cia", NULL, which, cia->tod);
+ state_save_register_item("6526cia", NULL, which, cia->tod_latch);
+ state_save_register_item("6526cia", NULL, which, cia->tod_latched);
+ state_save_register_item("6526cia", NULL, which, cia->tod_running);
+ state_save_register_item("6526cia", NULL, which, cia->alarm);
+ state_save_register_item("6526cia", NULL, which, cia->icr);
+ state_save_register_item("6526cia", NULL, which, cia->ics);
+ state_save_register_item("6526cia", NULL, which, cia->irq);
+ state_save_register_item("6526cia", NULL, which, cia->loaded);
+ state_save_register_item("6526cia", NULL, which, cia->sdr);
+ state_save_register_item("6526cia", NULL, which, cia->sp);
+ state_save_register_item("6526cia", NULL, which, cia->cnt);
+ state_save_register_item("6526cia", NULL, which, cia->shift);
+ state_save_register_item("6526cia", NULL, which, cia->serial);
}
void cia_set_port_mask_value(int which, int port, int data)
diff --git a/src/emu/machine/6532riot.c b/src/emu/machine/6532riot.c
index 28c0fee7111..c24abfc6f45 100644
--- a/src/emu/machine/6532riot.c
+++ b/src/emu/machine/6532riot.c
@@ -428,7 +428,6 @@ static DEVICE_START( riot6532 )
{
const riot6532_config *config = device->inline_config;
riot6532_state *riot = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
@@ -450,23 +449,21 @@ static DEVICE_START( riot6532 )
riot->timer = timer_alloc(timer_end_callback, (void *)device);
/* register for save states */
- state_save_combine_module_and_tag(unique_tag, "riot6532", device->tag);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[0].in);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[0].out);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[0].ddr);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[1].in);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[1].out);
+ state_save_register_item("riot6532", device->tag, 0, riot->port[1].ddr);
- state_save_register_item(unique_tag, 0, riot->port[0].in);
- state_save_register_item(unique_tag, 0, riot->port[0].out);
- state_save_register_item(unique_tag, 0, riot->port[0].ddr);
- state_save_register_item(unique_tag, 0, riot->port[1].in);
- state_save_register_item(unique_tag, 0, riot->port[1].out);
- state_save_register_item(unique_tag, 0, riot->port[1].ddr);
+ state_save_register_item("riot6532", device->tag, 0, riot->irqstate);
+ state_save_register_item("riot6532", device->tag, 0, riot->irqenable);
- state_save_register_item(unique_tag, 0, riot->irqstate);
- state_save_register_item(unique_tag, 0, riot->irqenable);
+ state_save_register_item("riot6532", device->tag, 0, riot->pa7dir);
+ state_save_register_item("riot6532", device->tag, 0, riot->pa7prev);
- state_save_register_item(unique_tag, 0, riot->pa7dir);
- state_save_register_item(unique_tag, 0, riot->pa7prev);
-
- state_save_register_item(unique_tag, 0, riot->timershift);
- state_save_register_item(unique_tag, 0, riot->timerstate);
+ state_save_register_item("riot6532", device->tag, 0, riot->timershift);
+ state_save_register_item("riot6532", device->tag, 0, riot->timerstate);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/6821pia.c b/src/emu/machine/6821pia.c
index be6010b40cc..b4ca8cd2199 100644
--- a/src/emu/machine/6821pia.c
+++ b/src/emu/machine/6821pia.c
@@ -127,38 +127,38 @@ void pia_config(int which, const pia6821_interface *intf)
p->intf = intf;
- state_save_register_item("6821pia", which, p->in_a);
- state_save_register_item("6821pia", which, p->in_ca1);
- state_save_register_item("6821pia", which, p->in_ca2);
- state_save_register_item("6821pia", which, p->out_a);
- state_save_register_item("6821pia", which, p->out_ca2);
- state_save_register_item("6821pia", which, p->port_a_z_mask);
- state_save_register_item("6821pia", which, p->ddr_a);
- state_save_register_item("6821pia", which, p->ctl_a);
- state_save_register_item("6821pia", which, p->irq_a1);
- state_save_register_item("6821pia", which, p->irq_a2);
- state_save_register_item("6821pia", which, p->irq_a_state);
- state_save_register_item("6821pia", which, p->in_b);
- state_save_register_item("6821pia", which, p->in_cb1);
- state_save_register_item("6821pia", which, p->in_cb2);
- state_save_register_item("6821pia", which, p->out_b);
- state_save_register_item("6821pia", which, p->out_cb2);
- state_save_register_item("6821pia", which, p->last_out_cb2_z);
- state_save_register_item("6821pia", which, p->ddr_b);
- state_save_register_item("6821pia", which, p->ctl_b);
- state_save_register_item("6821pia", which, p->irq_b1);
- state_save_register_item("6821pia", which, p->irq_b2);
- state_save_register_item("6821pia", which, p->irq_b_state);
- state_save_register_item("6821pia", which, p->in_a_pushed);
- state_save_register_item("6821pia", which, p->out_a_needs_pulled);
- state_save_register_item("6821pia", which, p->in_ca1_pushed);
- state_save_register_item("6821pia", which, p->in_ca2_pushed);
- state_save_register_item("6821pia", which, p->out_ca2_needs_pulled);
- state_save_register_item("6821pia", which, p->in_b_pushed);
- state_save_register_item("6821pia", which, p->out_b_needs_pulled);
- state_save_register_item("6821pia", which, p->in_cb1_pushed);
- state_save_register_item("6821pia", which, p->in_cb2_pushed);
- state_save_register_item("6821pia", which, p->out_cb2_needs_pulled);
+ state_save_register_item("6821pia", NULL, which, p->in_a);
+ state_save_register_item("6821pia", NULL, which, p->in_ca1);
+ state_save_register_item("6821pia", NULL, which, p->in_ca2);
+ state_save_register_item("6821pia", NULL, which, p->out_a);
+ state_save_register_item("6821pia", NULL, which, p->out_ca2);
+ state_save_register_item("6821pia", NULL, which, p->port_a_z_mask);
+ state_save_register_item("6821pia", NULL, which, p->ddr_a);
+ state_save_register_item("6821pia", NULL, which, p->ctl_a);
+ state_save_register_item("6821pia", NULL, which, p->irq_a1);
+ state_save_register_item("6821pia", NULL, which, p->irq_a2);
+ state_save_register_item("6821pia", NULL, which, p->irq_a_state);
+ state_save_register_item("6821pia", NULL, which, p->in_b);
+ state_save_register_item("6821pia", NULL, which, p->in_cb1);
+ state_save_register_item("6821pia", NULL, which, p->in_cb2);
+ state_save_register_item("6821pia", NULL, which, p->out_b);
+ state_save_register_item("6821pia", NULL, which, p->out_cb2);
+ state_save_register_item("6821pia", NULL, which, p->last_out_cb2_z);
+ state_save_register_item("6821pia", NULL, which, p->ddr_b);
+ state_save_register_item("6821pia", NULL, which, p->ctl_b);
+ state_save_register_item("6821pia", NULL, which, p->irq_b1);
+ state_save_register_item("6821pia", NULL, which, p->irq_b2);
+ state_save_register_item("6821pia", NULL, which, p->irq_b_state);
+ state_save_register_item("6821pia", NULL, which, p->in_a_pushed);
+ state_save_register_item("6821pia", NULL, which, p->out_a_needs_pulled);
+ state_save_register_item("6821pia", NULL, which, p->in_ca1_pushed);
+ state_save_register_item("6821pia", NULL, which, p->in_ca2_pushed);
+ state_save_register_item("6821pia", NULL, which, p->out_ca2_needs_pulled);
+ state_save_register_item("6821pia", NULL, which, p->in_b_pushed);
+ state_save_register_item("6821pia", NULL, which, p->out_b_needs_pulled);
+ state_save_register_item("6821pia", NULL, which, p->in_cb1_pushed);
+ state_save_register_item("6821pia", NULL, which, p->in_cb2_pushed);
+ state_save_register_item("6821pia", NULL, which, p->out_cb2_needs_pulled);
}
diff --git a/src/emu/machine/6840ptm.c b/src/emu/machine/6840ptm.c
index d2997e161cb..1897b0a6029 100644
--- a/src/emu/machine/6840ptm.c
+++ b/src/emu/machine/6840ptm.c
@@ -402,25 +402,25 @@ void ptm6840_config(running_machine *machine, int which, const ptm6840_interface
timer_enable(ptm[which].timer[i], FALSE);
}
- state_save_register_item("6840ptm", which, currptr->lsb_buffer);
- state_save_register_item("6840ptm", which, currptr->msb_buffer);
- state_save_register_item("6840ptm", which, currptr->status_read_since_int);
- state_save_register_item("6840ptm", which, currptr->status_reg);
- state_save_register_item("6840ptm", which, currptr->t3_divisor);
- state_save_register_item("6840ptm", which, currptr->t3_scaler);
- state_save_register_item("6840ptm", which, currptr->internal_clock);
- state_save_register_item("6840ptm", which, currptr->IRQ);
-
- state_save_register_item_array("6840ptm", which, currptr->control_reg);
- state_save_register_item_array("6840ptm", which, currptr->output);
- state_save_register_item_array("6840ptm", which, currptr->gate);
- state_save_register_item_array("6840ptm", which, currptr->clock);
- state_save_register_item_array("6840ptm", which, currptr->mode);
- state_save_register_item_array("6840ptm", which, currptr->fired);
- state_save_register_item_array("6840ptm", which, currptr->enabled);
- state_save_register_item_array("6840ptm", which, currptr->external_clock);
- state_save_register_item_array("6840ptm", which, currptr->counter);
- state_save_register_item_array("6840ptm", which, currptr->latch);
+ state_save_register_item("6840ptm", NULL, which, currptr->lsb_buffer);
+ state_save_register_item("6840ptm", NULL, which, currptr->msb_buffer);
+ state_save_register_item("6840ptm", NULL, which, currptr->status_read_since_int);
+ state_save_register_item("6840ptm", NULL, which, currptr->status_reg);
+ state_save_register_item("6840ptm", NULL, which, currptr->t3_divisor);
+ state_save_register_item("6840ptm", NULL, which, currptr->t3_scaler);
+ state_save_register_item("6840ptm", NULL, which, currptr->internal_clock);
+ state_save_register_item("6840ptm", NULL, which, currptr->IRQ);
+
+ state_save_register_item_array("6840ptm", NULL, which, currptr->control_reg);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->output);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->gate);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->clock);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->mode);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->fired);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->enabled);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->external_clock);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->counter);
+ state_save_register_item_array("6840ptm", NULL, which, currptr->latch);
ptm6840_reset(which);
}
diff --git a/src/emu/machine/6850acia.c b/src/emu/machine/6850acia.c
index 3248cda5f2d..6ff5de7f5ff 100644
--- a/src/emu/machine/6850acia.c
+++ b/src/emu/machine/6850acia.c
@@ -186,29 +186,29 @@ void acia6850_config(int which, const struct acia6850_interface *intf)
timer_reset(acia_p->rx_timer, attotime_never);
timer_reset(acia_p->tx_timer, attotime_never);
- state_save_register_item("acia6850", which, acia_p->ctrl);
- state_save_register_item("acia6850", which, acia_p->status);
- state_save_register_item("acia6850", which, acia_p->rx_clock);
- state_save_register_item("acia6850", which, acia_p->tx_clock);
- state_save_register_item("acia6850", which, acia_p->rx_counter);
- state_save_register_item("acia6850", which, acia_p->tx_counter);
- state_save_register_item("acia6850", which, acia_p->rx_shift);
- state_save_register_item("acia6850", which, acia_p->tx_shift);
- state_save_register_item("acia6850", which, acia_p->rdr);
- state_save_register_item("acia6850", which, acia_p->tdr);
- state_save_register_item("acia6850", which, acia_p->rx_bits);
- state_save_register_item("acia6850", which, acia_p->tx_bits);
- state_save_register_item("acia6850", which, acia_p->rx_parity);
- state_save_register_item("acia6850", which, acia_p->tx_parity);
- state_save_register_item("acia6850", which, acia_p->tx_int);
-
- state_save_register_item("acia6850", which, acia_p->divide);
- state_save_register_item("acia6850", which, acia_p->overrun);
- state_save_register_item("acia6850", which, acia_p->reset);
- state_save_register_item("acia6850", which, acia_p->first_reset);
- state_save_register_item("acia6850", which, acia_p->rts);
- state_save_register_item("acia6850", which, acia_p->brk);
- state_save_register_item("acia6850", which, acia_p->status_read);
+ state_save_register_item("acia6850", NULL, which, acia_p->ctrl);
+ state_save_register_item("acia6850", NULL, which, acia_p->status);
+ state_save_register_item("acia6850", NULL, which, acia_p->rx_clock);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_clock);
+ state_save_register_item("acia6850", NULL, which, acia_p->rx_counter);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_counter);
+ state_save_register_item("acia6850", NULL, which, acia_p->rx_shift);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_shift);
+ state_save_register_item("acia6850", NULL, which, acia_p->rdr);
+ state_save_register_item("acia6850", NULL, which, acia_p->tdr);
+ state_save_register_item("acia6850", NULL, which, acia_p->rx_bits);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_bits);
+ state_save_register_item("acia6850", NULL, which, acia_p->rx_parity);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_parity);
+ state_save_register_item("acia6850", NULL, which, acia_p->tx_int);
+
+ state_save_register_item("acia6850", NULL, which, acia_p->divide);
+ state_save_register_item("acia6850", NULL, which, acia_p->overrun);
+ state_save_register_item("acia6850", NULL, which, acia_p->reset);
+ state_save_register_item("acia6850", NULL, which, acia_p->first_reset);
+ state_save_register_item("acia6850", NULL, which, acia_p->rts);
+ state_save_register_item("acia6850", NULL, which, acia_p->brk);
+ state_save_register_item("acia6850", NULL, which, acia_p->status_read);
}
diff --git a/src/emu/machine/68681.c b/src/emu/machine/68681.c
index fd9bcf67ca8..45382339355 100644
--- a/src/emu/machine/68681.c
+++ b/src/emu/machine/68681.c
@@ -537,54 +537,50 @@ void duart68681_rx_data( const device_config* device, int ch, UINT8 data )
static DEVICE_START(duart68681)
{
duart68681_state *duart68681 = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
-
- state_save_combine_module_and_tag(unique_tag, "DUART 68681", device->tag);
-
- state_save_register_item(unique_tag, 0, duart68681->ACR);
- state_save_register_item(unique_tag, 0, duart68681->IMR);
- state_save_register_item(unique_tag, 0, duart68681->ISR);
- state_save_register_item(unique_tag, 0, duart68681->IVR);
- state_save_register_item(unique_tag, 0, duart68681->OPCR);
- state_save_register_item(unique_tag, 0, duart68681->CTR);
- state_save_register_item(unique_tag, 0, duart68681->IP_last_state);
-
- state_save_register_item(unique_tag, 0, duart68681->channel[0].CR);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].CSR);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].MR1);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].MR2);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].MR_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].SR);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].baud_rate);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].rx_enabled);
- state_save_register_item_array(unique_tag, 0, duart68681->channel[0].rx_fifo);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].rx_fifo_read_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].rx_fifo_write_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].rx_fifo_num);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].tx_enabled);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].tx_data);
- state_save_register_item(unique_tag, 0, duart68681->channel[0].tx_ready);
-
- state_save_register_item(unique_tag, 0, duart68681->channel[1].CR);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].CSR);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].MR1);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].MR2);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].MR_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].SR);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].baud_rate);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].rx_enabled);
- state_save_register_item_array(unique_tag, 0, duart68681->channel[1].rx_fifo);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].rx_fifo_read_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].rx_fifo_write_ptr);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].rx_fifo_num);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].tx_enabled);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].tx_data);
- state_save_register_item(unique_tag, 0, duart68681->channel[1].tx_ready);
+
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->ACR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->IMR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->ISR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->IVR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->OPCR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->CTR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->IP_last_state);
+
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].CR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].CSR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].MR1);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].MR2);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].MR_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].SR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].baud_rate);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].rx_enabled);
+ state_save_register_item_array("DUART68681", device->tag, 0, duart68681->channel[0].rx_fifo);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].rx_fifo_read_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].rx_fifo_write_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].rx_fifo_num);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].tx_enabled);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].tx_data);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[0].tx_ready);
+
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].CR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].CSR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].MR1);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].MR2);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].MR_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].SR);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].baud_rate);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].rx_enabled);
+ state_save_register_item_array("DUART68681", device->tag, 0, duart68681->channel[1].rx_fifo);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].rx_fifo_read_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].rx_fifo_write_ptr);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].rx_fifo_num);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].tx_enabled);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].tx_data);
+ state_save_register_item("DUART68681", device->tag, 0, duart68681->channel[1].tx_ready);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/74123.c b/src/emu/machine/74123.c
index a2bc6878094..ac047477a2d 100644
--- a/src/emu/machine/74123.c
+++ b/src/emu/machine/74123.c
@@ -189,11 +189,8 @@ WRITE8_DEVICE_HANDLER( ttl74123_reset_w )
static DEVICE_START( ttl74123 )
{
ttl74123_t *chip = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
- assert(strlen(device->tag) < 20);
-
chip->intf = device->static_config;
assert_always(chip->intf, "No interface specified");
@@ -208,12 +205,9 @@ static DEVICE_START( ttl74123 )
chip->clear = chip->intf->clear;
/* register for state saving */
-
- state_save_combine_module_and_tag(unique_tag, "ttl74123", device->tag);
-
- state_save_register_item(unique_tag, 0, chip->a);
- state_save_register_item(unique_tag, 0, chip->b);
- state_save_register_item(unique_tag, 0, chip->clear);
+ state_save_register_item("ttl74123", device->tag, 0, chip->a);
+ state_save_register_item("ttl74123", device->tag, 0, chip->b);
+ state_save_register_item("ttl74123", device->tag, 0, chip->clear);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/74181.c b/src/emu/machine/74181.c
index 7f55b258028..0e82952eb95 100644
--- a/src/emu/machine/74181.c
+++ b/src/emu/machine/74181.c
@@ -39,9 +39,9 @@ void TTL74181_config(running_machine *machine, int which, void *intf)
c->dirty = 1;
- state_save_register_item_array("TTL74181", which, c->inputs);
- state_save_register_item_array("TTL74181", which, c->outputs);
- state_save_register_item ("TTL74181", which, c->dirty);
+ state_save_register_item_array("TTL74181", NULL, which, c->inputs);
+ state_save_register_item_array("TTL74181", NULL, which, c->outputs);
+ state_save_register_item ("TTL74181", NULL, which, c->dirty);
}
diff --git a/src/emu/machine/7474.c b/src/emu/machine/7474.c
index 700bb7bb879..76f23060a56 100644
--- a/src/emu/machine/7474.c
+++ b/src/emu/machine/7474.c
@@ -161,13 +161,13 @@ void TTL7474_config(int which, const struct TTL7474_interface *intf)
chip->last_output = -1;
chip->last_output_comp = -1;
- state_save_register_item("ttl7474", which, chip->clear);
- state_save_register_item("ttl7474", which, chip->preset);
- state_save_register_item("ttl7474", which, chip->clock);
- state_save_register_item("ttl7474", which, chip->d);
- state_save_register_item("ttl7474", which, chip->output);
- state_save_register_item("ttl7474", which, chip->output_comp);
- state_save_register_item("ttl7474", which, chip->last_clock);
- state_save_register_item("ttl7474", which, chip->last_output);
- state_save_register_item("ttl7474", which, chip->last_output_comp);
+ state_save_register_item("ttl7474", NULL, which, chip->clear);
+ state_save_register_item("ttl7474", NULL, which, chip->preset);
+ state_save_register_item("ttl7474", NULL, which, chip->clock);
+ state_save_register_item("ttl7474", NULL, which, chip->d);
+ state_save_register_item("ttl7474", NULL, which, chip->output);
+ state_save_register_item("ttl7474", NULL, which, chip->output_comp);
+ state_save_register_item("ttl7474", NULL, which, chip->last_clock);
+ state_save_register_item("ttl7474", NULL, which, chip->last_output);
+ state_save_register_item("ttl7474", NULL, which, chip->last_output_comp);
}
diff --git a/src/emu/machine/8255ppi.c b/src/emu/machine/8255ppi.c
index 4b34137f43d..62e330d1fee 100644
--- a/src/emu/machine/8255ppi.c
+++ b/src/emu/machine/8255ppi.c
@@ -506,7 +506,6 @@ UINT8 ppi8255_get_port_c( const device_config *device ) {
static DEVICE_START( ppi8255 ) {
ppi8255_t *ppi8255 = get_safe_token(device);
- char unique_tag[30];
ppi8255->intf = device->static_config;
@@ -519,24 +518,22 @@ static DEVICE_START( ppi8255 ) {
ppi8255->port_write[2] = ppi8255->intf->port_c_write;
/* register for state saving */
- state_save_combine_module_and_tag(unique_tag, "ppi8255", device->tag);
-
- state_save_register_item(unique_tag, 0, ppi8255->group_a_mode);
- state_save_register_item(unique_tag, 0, ppi8255->group_b_mode);
- state_save_register_item(unique_tag, 0, ppi8255->port_a_dir);
- state_save_register_item(unique_tag, 0, ppi8255->port_b_dir);
- state_save_register_item(unique_tag, 0, ppi8255->port_ch_dir);
- state_save_register_item(unique_tag, 0, ppi8255->port_cl_dir);
- state_save_register_item(unique_tag, 0, ppi8255->obf_a);
- state_save_register_item(unique_tag, 0, ppi8255->obf_b);
- state_save_register_item(unique_tag, 0, ppi8255->ibf_a);
- state_save_register_item(unique_tag, 0, ppi8255->ibf_b);
- state_save_register_item(unique_tag, 0, ppi8255->inte_a);
- state_save_register_item(unique_tag, 0, ppi8255->inte_b);
- state_save_register_item_array(unique_tag, 0, ppi8255->in_mask);
- state_save_register_item_array(unique_tag, 0, ppi8255->out_mask);
- state_save_register_item_array(unique_tag, 0, ppi8255->read);
- state_save_register_item_array(unique_tag, 0, ppi8255->latch);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->group_a_mode);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->group_b_mode);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->port_a_dir);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->port_b_dir);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->port_ch_dir);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->port_cl_dir);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->obf_a);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->obf_b);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->ibf_a);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->ibf_b);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->inte_a);
+ state_save_register_item("ppi8255", device->tag, 0, ppi8255->inte_b);
+ state_save_register_item_array("ppi8255", device->tag, 0, ppi8255->in_mask);
+ state_save_register_item_array("ppi8255", device->tag, 0, ppi8255->out_mask);
+ state_save_register_item_array("ppi8255", device->tag, 0, ppi8255->read);
+ state_save_register_item_array("ppi8255", device->tag, 0, ppi8255->latch);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/8257dma.c b/src/emu/machine/8257dma.c
index 04cbd587936..81e31479cca 100644
--- a/src/emu/machine/8257dma.c
+++ b/src/emu/machine/8257dma.c
@@ -362,12 +362,10 @@ WRITE8_DEVICE_HANDLER( dma8257_drq_w )
static DEVICE_START( dma8257 )
{
dma8257_t *dma8257 = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
//dma8257->device_type = device_type;
dma8257->intf = device->static_config;
@@ -376,18 +374,16 @@ static DEVICE_START( dma8257 )
dma8257->timer = timer_alloc(dma8257_timerproc, (void *) device);
dma8257->msbflip_timer = timer_alloc(dma8257_msbflip_timerproc, (void *) device);
- state_save_combine_module_and_tag(unique_tag, "dma8257", device->tag);
+ state_save_register_item_array("dma8257", device->tag, 0, dma8257->address);
+ state_save_register_item_array("dma8257", device->tag, 0, dma8257->count);
+ state_save_register_item_array("dma8257", device->tag, 0, dma8257->rwmode);
+ state_save_register_item_array("dma8257", device->tag, 0, dma8257->registers);
- state_save_register_item_array(unique_tag, 0, dma8257->address);
- state_save_register_item_array(unique_tag, 0, dma8257->count);
- state_save_register_item_array(unique_tag, 0, dma8257->rwmode);
- state_save_register_item_array(unique_tag, 0, dma8257->registers);
-
- state_save_register_item(unique_tag, 0, dma8257->mode);
- state_save_register_item(unique_tag, 0, dma8257->rr);
- state_save_register_item(unique_tag, 0, dma8257->msb);
- state_save_register_item(unique_tag, 0, dma8257->drq);
- state_save_register_item(unique_tag, 0, dma8257->status);
+ state_save_register_item("dma8257", device->tag, 0, dma8257->mode);
+ state_save_register_item("dma8257", device->tag, 0, dma8257->rr);
+ state_save_register_item("dma8257", device->tag, 0, dma8257->msb);
+ state_save_register_item("dma8257", device->tag, 0, dma8257->drq);
+ state_save_register_item("dma8257", device->tag, 0, dma8257->status);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/adc083x.c b/src/emu/machine/adc083x.c
index 16eca986fbf..20c9fdfd654 100644
--- a/src/emu/machine/adc083x.c
+++ b/src/emu/machine/adc083x.c
@@ -114,19 +114,19 @@ void adc083x_init( int chip, int type, double (*input_callback)(int input) )
break;
}
- state_save_register_item( "adc083x", chip, c->CS );
- state_save_register_item( "adc083x", chip, c->CLK );
- state_save_register_item( "adc083x", chip, c->DI );
- state_save_register_item( "adc083x", chip, c->SE );
- state_save_register_item( "adc083x", chip, c->SARS );
- state_save_register_item( "adc083x", chip, c->DO );
- state_save_register_item( "adc083x", chip, c->SGL );
- state_save_register_item( "adc083x", chip, c->ODD );
- state_save_register_item( "adc083x", chip, c->SEL1 );
- state_save_register_item( "adc083x", chip, c->SEL0 );
- state_save_register_item( "adc083x", chip, c->state );
- state_save_register_item( "adc083x", chip, c->bit );
- state_save_register_item( "adc083x", chip, c->output );
+ state_save_register_item( "adc083x", NULL, chip, c->CS );
+ state_save_register_item( "adc083x", NULL, chip, c->CLK );
+ state_save_register_item( "adc083x", NULL, chip, c->DI );
+ state_save_register_item( "adc083x", NULL, chip, c->SE );
+ state_save_register_item( "adc083x", NULL, chip, c->SARS );
+ state_save_register_item( "adc083x", NULL, chip, c->DO );
+ state_save_register_item( "adc083x", NULL, chip, c->SGL );
+ state_save_register_item( "adc083x", NULL, chip, c->ODD );
+ state_save_register_item( "adc083x", NULL, chip, c->SEL1 );
+ state_save_register_item( "adc083x", NULL, chip, c->SEL0 );
+ state_save_register_item( "adc083x", NULL, chip, c->state );
+ state_save_register_item( "adc083x", NULL, chip, c->bit );
+ state_save_register_item( "adc083x", NULL, chip, c->output );
}
void adc083x_cs_write( int chip, int cs )
diff --git a/src/emu/machine/at28c16.c b/src/emu/machine/at28c16.c
index 46d81b090fa..503856d635d 100644
--- a/src/emu/machine/at28c16.c
+++ b/src/emu/machine/at28c16.c
@@ -120,7 +120,6 @@ static DEVICE_START(at28c16)
{
at28c16_state *c = get_safe_token(device);
const at28c16_config *config;
- char unique_tag[50];
/* validate some basic stuff */
assert(device != NULL);
@@ -148,14 +147,11 @@ static DEVICE_START(at28c16)
}
/* create the name for save states */
- assert( strlen( device->tag ) < 30 );
- state_save_combine_module_and_tag( unique_tag, "at28c16", device->tag );
-
- state_save_register_item_pointer( unique_tag, 0, c->data, SIZE_DATA );
- state_save_register_item_pointer( unique_tag, 0, c->id, SIZE_ID );
- state_save_register_item( unique_tag, 0, c->a9_12v );
- state_save_register_item( unique_tag, 0, c->oe_12v );
- state_save_register_item( unique_tag, 0, c->last_write );
+ state_save_register_item_pointer( "at28c16", device->tag, 0, c->data, SIZE_DATA );
+ state_save_register_item_pointer( "at28c16", device->tag, 0, c->id, SIZE_ID );
+ state_save_register_item( "at28c16", device->tag, 0, c->a9_12v );
+ state_save_register_item( "at28c16", device->tag, 0, c->oe_12v );
+ state_save_register_item( "at28c16", device->tag, 0, c->last_write );
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/cdp1852.c b/src/emu/machine/cdp1852.c
index 6ecd2a089bb..9970376bf95 100644
--- a/src/emu/machine/cdp1852.c
+++ b/src/emu/machine/cdp1852.c
@@ -120,12 +120,10 @@ WRITE8_DEVICE_HANDLER( cdp1852_data_w )
static DEVICE_START( cdp1852 )
{
cdp1852_t *cdp1852 = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
cdp1852->intf = device->static_config;
@@ -149,13 +147,11 @@ static DEVICE_START( cdp1852 )
}
/* register for state saving */
- state_save_combine_module_and_tag(unique_tag, "CDP1852", device->tag);
-
- state_save_register_item(unique_tag, 0, cdp1852->new_data);
- state_save_register_item(unique_tag, 0, cdp1852->data);
- state_save_register_item(unique_tag, 0, cdp1852->next_data);
- state_save_register_item(unique_tag, 0, cdp1852->sr);
- state_save_register_item(unique_tag, 0, cdp1852->next_sr);
+ state_save_register_item("cdp1852", device->tag, 0, cdp1852->new_data);
+ state_save_register_item("cdp1852", device->tag, 0, cdp1852->data);
+ state_save_register_item("cdp1852", device->tag, 0, cdp1852->next_data);
+ state_save_register_item("cdp1852", device->tag, 0, cdp1852->sr);
+ state_save_register_item("cdp1852", device->tag, 0, cdp1852->next_sr);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/cr589.c b/src/emu/machine/cr589.c
index 64efaa5da67..9bbee3395b0 100644
--- a/src/emu/machine/cr589.c
+++ b/src/emu/machine/cr589.c
@@ -111,16 +111,13 @@ static void cr589_write_data( SCSIInstance *scsiInstance, UINT8 *data, int dataL
static void cr589_alloc_instance( SCSIInstance *scsiInstance, const char *diskregion )
{
SCSICr589 *our_this = SCSIThis( &SCSIClassCr589, scsiInstance );
- char tag[256];
our_this->download = 0;
memcpy( &our_this->buffer[ identity_offset ], "MATSHITACD-ROM CR-589 GS0N", 28 );
- state_save_combine_module_and_tag(tag, "cr589", diskregion);
-
- state_save_register_item( tag, 0, our_this->download );
- state_save_register_item_array( tag, 0, our_this->buffer );
- state_save_register_item( tag, 0, our_this->bufferOffset );
+ state_save_register_item( "cr589", diskregion, 0, our_this->download );
+ state_save_register_item_array( "cr589", diskregion, 0, our_this->buffer );
+ state_save_register_item( "cr589", diskregion, 0, our_this->bufferOffset );
}
static int cr589_dispatch( int operation, void *file, INT64 intparm, void *ptrparm )
diff --git a/src/emu/machine/ds2401.c b/src/emu/machine/ds2401.c
index 51d8d9acd57..53281ffc197 100644
--- a/src/emu/machine/ds2401.c
+++ b/src/emu/machine/ds2401.c
@@ -156,12 +156,12 @@ void ds2401_init( int which, const UINT8 *data )
c->t_pdh = ATTOTIME_IN_USEC( 15 );
c->t_pdl = ATTOTIME_IN_USEC( 60 );
- state_save_register_item( "ds2401", which, c->state );
- state_save_register_item( "ds2401", which, c->bit );
- state_save_register_item( "ds2401", which, c->byte );
- state_save_register_item( "ds2401", which, c->shift );
- state_save_register_item( "ds2401", which, c->rx );
- state_save_register_item( "ds2401", which, c->tx );
+ state_save_register_item( "ds2401", NULL, which, c->state );
+ state_save_register_item( "ds2401", NULL, which, c->bit );
+ state_save_register_item( "ds2401", NULL, which, c->byte );
+ state_save_register_item( "ds2401", NULL, which, c->shift );
+ state_save_register_item( "ds2401", NULL, which, c->rx );
+ state_save_register_item( "ds2401", NULL, which, c->tx );
c->timer = timer_alloc( ds2401_tick , NULL);
c->reset_timer = timer_alloc( ds2401_reset , NULL);
diff --git a/src/emu/machine/generic.c b/src/emu/machine/generic.c
index dd2fd6e6ac0..c685343b697 100644
--- a/src/emu/machine/generic.c
+++ b/src/emu/machine/generic.c
@@ -72,9 +72,9 @@ void generic_machine_init(running_machine *machine)
}
/* register coin save state */
- state_save_register_item_array("coin", 0, coin_count);
- state_save_register_item_array("coin", 0, coinlockedout);
- state_save_register_item_array("coin", 0, lastcoin);
+ state_save_register_item_array("coin", NULL, 0, coin_count);
+ state_save_register_item_array("coin", NULL, 0, coinlockedout);
+ state_save_register_item_array("coin", NULL, 0, lastcoin);
/* reset NVRAM size and pointers */
generic_nvram_size = 0;
@@ -87,7 +87,7 @@ void generic_machine_init(running_machine *machine)
/* register a reset callback and save state for interrupt enable */
add_reset_callback(machine, interrupt_reset);
- state_save_register_item_array("cpu", 0, interrupt_enable);
+ state_save_register_item_array("cpu", NULL, 0, interrupt_enable);
/* register for configuration */
config_register(machine, "counters", counters_load, counters_save);
diff --git a/src/emu/machine/i2cmem.c b/src/emu/machine/i2cmem.c
index a7462f6fcb3..e64f79a529a 100644
--- a/src/emu/machine/i2cmem.c
+++ b/src/emu/machine/i2cmem.c
@@ -121,19 +121,19 @@ void i2cmem_init( int chip, int slave_address, int page_size, int data_size, uns
c->data = data;
c->page = page;
- state_save_register_item( "i2cmem", chip, c->scl );
- state_save_register_item( "i2cmem", chip, c->sdaw );
- state_save_register_item( "i2cmem", chip, c->e0 );
- state_save_register_item( "i2cmem", chip, c->e1 );
- state_save_register_item( "i2cmem", chip, c->e2 );
- state_save_register_item( "i2cmem", chip, c->wc );
- state_save_register_item( "i2cmem", chip, c->sdar );
- state_save_register_item( "i2cmem", chip, c->state );
- state_save_register_item( "i2cmem", chip, c->bits );
- state_save_register_item( "i2cmem", chip, c->shift );
- state_save_register_item( "i2cmem", chip, c->devsel );
- state_save_register_item( "i2cmem", chip, c->byteaddr );
- state_save_register_item_pointer( "i2cmem", chip, c->data, c->data_size );
+ state_save_register_item( "i2cmem", NULL, chip, c->scl );
+ state_save_register_item( "i2cmem", NULL, chip, c->sdaw );
+ state_save_register_item( "i2cmem", NULL, chip, c->e0 );
+ state_save_register_item( "i2cmem", NULL, chip, c->e1 );
+ state_save_register_item( "i2cmem", NULL, chip, c->e2 );
+ state_save_register_item( "i2cmem", NULL, chip, c->wc );
+ state_save_register_item( "i2cmem", NULL, chip, c->sdar );
+ state_save_register_item( "i2cmem", NULL, chip, c->state );
+ state_save_register_item( "i2cmem", NULL, chip, c->bits );
+ state_save_register_item( "i2cmem", NULL, chip, c->shift );
+ state_save_register_item( "i2cmem", NULL, chip, c->devsel );
+ state_save_register_item( "i2cmem", NULL, chip, c->byteaddr );
+ state_save_register_item_pointer( "i2cmem", NULL, chip, c->data, c->data_size );
}
static int select_device( struct i2cmem_chip *c )
diff --git a/src/emu/machine/idectrl.c b/src/emu/machine/idectrl.c
index 20a21c72cd8..b4391bdb660 100644
--- a/src/emu/machine/idectrl.c
+++ b/src/emu/machine/idectrl.c
@@ -1670,7 +1670,6 @@ static DEVICE_START( ide_controller )
ide_state *ide = get_safe_token(device);
const hard_disk_info *hdinfo;
const ide_config *config;
- char unique_tag[50];
/* validate some basic stuff */
assert(device != NULL);
@@ -1707,55 +1706,51 @@ static DEVICE_START( ide_controller )
ide->last_status_timer = timer_alloc(NULL, NULL);
ide->reset_timer = timer_alloc(reset_callback, (void *)device);
- /* create the name for save states */
- assert(strlen(device->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "ide_controller", device->tag);
-
/* register ide states */
- state_save_register_item(unique_tag, 0, ide->adapter_control);
- state_save_register_item(unique_tag, 0, ide->status);
- state_save_register_item(unique_tag, 0, ide->error);
- state_save_register_item(unique_tag, 0, ide->command);
- state_save_register_item(unique_tag, 0, ide->interrupt_pending);
- state_save_register_item(unique_tag, 0, ide->precomp_offset);
-
- state_save_register_item_array(unique_tag, 0, ide->buffer);
- state_save_register_item_array(unique_tag, 0, ide->features);
- state_save_register_item(unique_tag, 0, ide->buffer_offset);
- state_save_register_item(unique_tag, 0, ide->sector_count);
-
- state_save_register_item(unique_tag, 0, ide->block_count);
- state_save_register_item(unique_tag, 0, ide->sectors_until_int);
-
- state_save_register_item(unique_tag, 0, ide->dma_active);
- state_save_register_item(unique_tag, 0, ide->dma_cpu);
- state_save_register_item(unique_tag, 0, ide->dma_address_xor);
- state_save_register_item(unique_tag, 0, ide->dma_last_buffer);
- state_save_register_item(unique_tag, 0, ide->dma_address);
- state_save_register_item(unique_tag, 0, ide->dma_descriptor);
- state_save_register_item(unique_tag, 0, ide->dma_bytes_left);
-
- state_save_register_item(unique_tag, 0, ide->bus_master_command);
- state_save_register_item(unique_tag, 0, ide->bus_master_status);
- state_save_register_item(unique_tag, 0, ide->bus_master_descriptor);
-
- state_save_register_item(unique_tag, 0, ide->cur_cylinder);
- state_save_register_item(unique_tag, 0, ide->cur_sector);
- state_save_register_item(unique_tag, 0, ide->cur_head);
- state_save_register_item(unique_tag, 0, ide->cur_head_reg);
-
- state_save_register_item(unique_tag, 0, ide->cur_lba);
-
- state_save_register_item(unique_tag, 0, ide->num_cylinders);
- state_save_register_item(unique_tag, 0, ide->num_sectors);
- state_save_register_item(unique_tag, 0, ide->num_heads);
-
- state_save_register_item(unique_tag, 0, ide->config_unknown);
- state_save_register_item_array(unique_tag, 0, ide->config_register);
- state_save_register_item(unique_tag, 0, ide->config_register_num);
-
- state_save_register_item(unique_tag, 0, ide->master_password_enable);
- state_save_register_item(unique_tag, 0, ide->user_password_enable);
+ state_save_register_item("ide_controller", device->tag, 0, ide->adapter_control);
+ state_save_register_item("ide_controller", device->tag, 0, ide->status);
+ state_save_register_item("ide_controller", device->tag, 0, ide->error);
+ state_save_register_item("ide_controller", device->tag, 0, ide->command);
+ state_save_register_item("ide_controller", device->tag, 0, ide->interrupt_pending);
+ state_save_register_item("ide_controller", device->tag, 0, ide->precomp_offset);
+
+ state_save_register_item_array("ide_controller", device->tag, 0, ide->buffer);
+ state_save_register_item_array("ide_controller", device->tag, 0, ide->features);
+ state_save_register_item("ide_controller", device->tag, 0, ide->buffer_offset);
+ state_save_register_item("ide_controller", device->tag, 0, ide->sector_count);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->block_count);
+ state_save_register_item("ide_controller", device->tag, 0, ide->sectors_until_int);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_active);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_cpu);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_address_xor);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_last_buffer);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_address);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_descriptor);
+ state_save_register_item("ide_controller", device->tag, 0, ide->dma_bytes_left);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->bus_master_command);
+ state_save_register_item("ide_controller", device->tag, 0, ide->bus_master_status);
+ state_save_register_item("ide_controller", device->tag, 0, ide->bus_master_descriptor);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->cur_cylinder);
+ state_save_register_item("ide_controller", device->tag, 0, ide->cur_sector);
+ state_save_register_item("ide_controller", device->tag, 0, ide->cur_head);
+ state_save_register_item("ide_controller", device->tag, 0, ide->cur_head_reg);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->cur_lba);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->num_cylinders);
+ state_save_register_item("ide_controller", device->tag, 0, ide->num_sectors);
+ state_save_register_item("ide_controller", device->tag, 0, ide->num_heads);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->config_unknown);
+ state_save_register_item_array("ide_controller", device->tag, 0, ide->config_register);
+ state_save_register_item("ide_controller", device->tag, 0, ide->config_register_num);
+
+ state_save_register_item("ide_controller", device->tag, 0, ide->master_password_enable);
+ state_save_register_item("ide_controller", device->tag, 0, ide->user_password_enable);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/intelfsh.c b/src/emu/machine/intelfsh.c
index 7d29e128ff3..7cdd4b98a71 100644
--- a/src/emu/machine/intelfsh.c
+++ b/src/emu/machine/intelfsh.c
@@ -134,10 +134,10 @@ void intelflash_init(int chip, int type, void *data)
c->timer = timer_alloc(erase_finished, c);
c->flash_memory = data;
- state_save_register_item( "intelfsh", chip, c->status );
- state_save_register_item( "intelfsh", chip, c->flash_mode );
- state_save_register_item( "intelfsh", chip, c->flash_master_lock );
- state_save_register_memory( "intelfsh", chip, "flash_memory", c->flash_memory, c->bits/8, c->size / (c->bits/8) );
+ state_save_register_item( "intelfsh", NULL, chip, c->status );
+ state_save_register_item( "intelfsh", NULL, chip, c->flash_mode );
+ state_save_register_item( "intelfsh", NULL, chip, c->flash_master_lock );
+ state_save_register_memory( "intelfsh", NULL, chip, "flash_memory", c->flash_memory, c->bits/8, c->size / (c->bits/8) );
}
UINT32 intelflash_read(int chip, UINT32 address)
diff --git a/src/emu/machine/latch8.c b/src/emu/machine/latch8.c
index 1cea0e12a9f..6d0a366768b 100644
--- a/src/emu/machine/latch8.c
+++ b/src/emu/machine/latch8.c
@@ -186,12 +186,9 @@ WRITE8_DEVICE_HANDLER( latch8_bit7_w ) { latch8_bitx_w(device, 0, offset, data);
static DEVICE_START( latch8 )
{
latch8_t *latch8 = get_safe_token(device);
- char unique_tag[30];
int i;
/* validate arguments */
- assert(strlen(device->tag) < 20);
-
latch8->intf = device->inline_config;
latch8->value = 0x0;
@@ -224,9 +221,7 @@ static DEVICE_START( latch8 )
latch8->has_read = 1;
}
- state_save_combine_module_and_tag(unique_tag, "latch8", device->tag);
-
- state_save_register_item(unique_tag, 0, latch8->value);
+ state_save_register_item("latch8", device->tag, 0, latch8->value);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/microtch.c b/src/emu/machine/microtch.c
index f98639ccf74..4f4c6299e1c 100644
--- a/src/emu/machine/microtch.c
+++ b/src/emu/machine/microtch.c
@@ -119,18 +119,18 @@ void microtouch_init(void (*tx_cb)(UINT8 data),
microtouch.timer = timer_alloc(microtouch_timer_callback, NULL);
timer_adjust_periodic(microtouch.timer, ATTOTIME_IN_HZ(167*5), 0, ATTOTIME_IN_HZ(167*5));
- state_save_register_item("microtouch", 0, microtouch.reset_done);
- state_save_register_item("microtouch", 0, microtouch.format_tablet);
- state_save_register_item("microtouch", 0, microtouch.mode_inactive);
- state_save_register_item("microtouch", 0, microtouch.mode_stream);
- state_save_register_item("microtouch", 0, microtouch.last_touch_state);
- state_save_register_item("microtouch", 0, microtouch.last_x);
- state_save_register_item("microtouch", 0, microtouch.last_y);
- state_save_register_item_array("microtouch", 0, microtouch.rx_buffer);
- state_save_register_item("microtouch", 0, microtouch.rx_buffer_ptr);
- state_save_register_item_array("microtouch", 0, microtouch.tx_buffer);
- state_save_register_item("microtouch", 0, microtouch.tx_buffer_num);
- state_save_register_item("microtouch", 0, microtouch.tx_buffer_ptr);
+ state_save_register_item("microtouch", NULL, 0, microtouch.reset_done);
+ state_save_register_item("microtouch", NULL, 0, microtouch.format_tablet);
+ state_save_register_item("microtouch", NULL, 0, microtouch.mode_inactive);
+ state_save_register_item("microtouch", NULL, 0, microtouch.mode_stream);
+ state_save_register_item("microtouch", NULL, 0, microtouch.last_touch_state);
+ state_save_register_item("microtouch", NULL, 0, microtouch.last_x);
+ state_save_register_item("microtouch", NULL, 0, microtouch.last_y);
+ state_save_register_item_array("microtouch", NULL, 0, microtouch.rx_buffer);
+ state_save_register_item("microtouch", NULL, 0, microtouch.rx_buffer_ptr);
+ state_save_register_item_array("microtouch", NULL, 0, microtouch.tx_buffer);
+ state_save_register_item("microtouch", NULL, 0, microtouch.tx_buffer_num);
+ state_save_register_item("microtouch", NULL, 0, microtouch.tx_buffer_ptr);
};
diff --git a/src/emu/machine/pd4990a.c b/src/emu/machine/pd4990a.c
index 433c899027d..1cf12eaa76e 100644
--- a/src/emu/machine/pd4990a.c
+++ b/src/emu/machine/pd4990a.c
@@ -342,27 +342,27 @@ void pd4990a_init(void)
clock_line = 0;
command_line =0;
- state_save_register_item("pd4990a", 0, pd4990a.seconds);
- state_save_register_item("pd4990a", 0, pd4990a.minutes);
- state_save_register_item("pd4990a", 0, pd4990a.hours);
- state_save_register_item("pd4990a", 0, pd4990a.days);
- state_save_register_item("pd4990a", 0, pd4990a.month);
- state_save_register_item("pd4990a", 0, pd4990a.year);
- state_save_register_item("pd4990a", 0, pd4990a.weekday);
-
- state_save_register_item("pd4990a", 0, shiftlo);
- state_save_register_item("pd4990a", 0, shifthi);
-
- state_save_register_item("pd4990a", 0, retraces);
- state_save_register_item("pd4990a", 0, testwaits);
- state_save_register_item("pd4990a", 0, maxwaits);
- state_save_register_item("pd4990a", 0, testbit);
-
- state_save_register_item("pd4990a", 0, outputbit);
- state_save_register_item("pd4990a", 0, bitno);
- state_save_register_item("pd4990a", 0, reading);
- state_save_register_item("pd4990a", 0, writting);
-
- state_save_register_item("pd4990a", 0, clock_line);
- state_save_register_item("pd4990a", 0, command_line);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.seconds);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.minutes);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.hours);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.days);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.month);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.year);
+ state_save_register_item("pd4990a", NULL, 0, pd4990a.weekday);
+
+ state_save_register_item("pd4990a", NULL, 0, shiftlo);
+ state_save_register_item("pd4990a", NULL, 0, shifthi);
+
+ state_save_register_item("pd4990a", NULL, 0, retraces);
+ state_save_register_item("pd4990a", NULL, 0, testwaits);
+ state_save_register_item("pd4990a", NULL, 0, maxwaits);
+ state_save_register_item("pd4990a", NULL, 0, testbit);
+
+ state_save_register_item("pd4990a", NULL, 0, outputbit);
+ state_save_register_item("pd4990a", NULL, 0, bitno);
+ state_save_register_item("pd4990a", NULL, 0, reading);
+ state_save_register_item("pd4990a", NULL, 0, writting);
+
+ state_save_register_item("pd4990a", NULL, 0, clock_line);
+ state_save_register_item("pd4990a", NULL, 0, command_line);
}
diff --git a/src/emu/machine/pit8253.c b/src/emu/machine/pit8253.c
index 2638f4fc442..ef48df4e7ad 100644
--- a/src/emu/machine/pit8253.c
+++ b/src/emu/machine/pit8253.c
@@ -1046,15 +1046,12 @@ void pit8253_set_clock_signal(const device_config *device, int timerno, int stat
static device_start_err common_start( const device_config *device, int device_type ) {
pit8253_t *pit8253 = get_safe_token(device);
- char unique_tag[30];
int timerno;
pit8253->config = device->static_config;
pit8253->device_type = device_type;
/* register for state saving */
- state_save_combine_module_and_tag(unique_tag, device_tags[device_type], device->tag);
-
for (timerno = 0; timerno < MAX_TIMER; timerno++)
{
struct pit8253_timer *timer = get_timer(pit8253,timerno);
@@ -1066,26 +1063,26 @@ static device_start_err common_start( const device_config *device, int device_ty
timer_adjust_oneshot(timer->updatetimer, attotime_never, timerno);
/* set up state save values */
- state_save_register_item(unique_tag, timerno, timer->clockin);
- state_save_register_item(unique_tag, timerno, timer->control);
- state_save_register_item(unique_tag, timerno, timer->status);
- state_save_register_item(unique_tag, timerno, timer->lowcount);
- state_save_register_item(unique_tag, timerno, timer->latch);
- state_save_register_item(unique_tag, timerno, timer->count);
- state_save_register_item(unique_tag, timerno, timer->value);
- state_save_register_item(unique_tag, timerno, timer->wmsb);
- state_save_register_item(unique_tag, timerno, timer->rmsb);
- state_save_register_item(unique_tag, timerno, timer->output);
- state_save_register_item(unique_tag, timerno, timer->gate);
- state_save_register_item(unique_tag, timerno, timer->latched_count);
- state_save_register_item(unique_tag, timerno, timer->latched_status);
- state_save_register_item(unique_tag, timerno, timer->null_count);
- state_save_register_item(unique_tag, timerno, timer->phase);
- state_save_register_item(unique_tag, timerno, timer->cycles_to_output);
- state_save_register_item(unique_tag, timerno, timer->last_updated.seconds);
- state_save_register_item(unique_tag, timerno, timer->last_updated.attoseconds);
- state_save_register_item(unique_tag, timerno, timer->programmed);
- state_save_register_item(unique_tag, timerno, timer->clock);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->clockin);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->control);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->status);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->lowcount);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->latch);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->count);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->value);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->wmsb);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->rmsb);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->output);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->gate);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->latched_count);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->latched_status);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->null_count);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->phase);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->cycles_to_output);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->last_updated.seconds);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->last_updated.attoseconds);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->programmed);
+ state_save_register_item(device_tags[device_type], device->tag, timerno, timer->clock);
}
return DEVICE_START_OK;
diff --git a/src/emu/machine/scsicd.c b/src/emu/machine/scsicd.c
index d467bcae744..4bda069f444 100644
--- a/src/emu/machine/scsicd.c
+++ b/src/emu/machine/scsicd.c
@@ -674,7 +674,6 @@ static void scsicd_write_data( SCSIInstance *scsiInstance, UINT8 *data, int data
static void scsicd_alloc_instance( SCSIInstance *scsiInstance, const char *diskregion )
{
SCSICd *our_this = SCSIThis( &SCSIClassCDROM, scsiInstance );
- char tag[256];
our_this->lba = 0;
our_this->blocks = 0;
@@ -684,15 +683,13 @@ static void scsicd_alloc_instance( SCSIInstance *scsiInstance, const char *diskr
our_this->cur_subblock = 0;
our_this->play_err_flag = 0;
- state_save_combine_module_and_tag(tag, "scsicd", diskregion);
-
- state_save_register_item( tag, 0, our_this->lba );
- state_save_register_item( tag, 0, our_this->blocks );
- state_save_register_item( tag, 0, our_this->last_lba );
- state_save_register_item( tag, 0, our_this->bytes_per_sector );
- state_save_register_item( tag, 0, our_this->num_subblocks );
- state_save_register_item( tag, 0, our_this->cur_subblock );
- state_save_register_item( tag, 0, our_this->play_err_flag );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->lba );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->blocks );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->last_lba );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->bytes_per_sector );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->num_subblocks );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->cur_subblock );
+ state_save_register_item( "scsicd", diskregion, 0, our_this->play_err_flag );
#ifdef MESS
/* TODO: get rid of this ifdef MESS section */
diff --git a/src/emu/machine/scsidev.c b/src/emu/machine/scsidev.c
index 12d7b4a02a7..732cde3f66f 100644
--- a/src/emu/machine/scsidev.c
+++ b/src/emu/machine/scsidev.c
@@ -101,13 +101,10 @@ static int scsidev_get_command( SCSIInstance *scsiInstance, void **command )
static void scsidev_alloc_instance( SCSIInstance *scsiInstance, const char *diskregion )
{
SCSIDev *our_this = SCSIThis( &SCSIClassDevice, scsiInstance );
- char tag[256];
- state_save_combine_module_and_tag(tag, "scsidev", diskregion);
-
- state_save_register_item_array( tag, 0, our_this->command );
- state_save_register_item( tag, 0, our_this->commandLength );
- state_save_register_item( tag, 0, our_this->phase );
+ state_save_register_item_array( "scsidev", diskregion, 0, our_this->command );
+ state_save_register_item( "scsidev", diskregion, 0, our_this->commandLength );
+ state_save_register_item( "scsidev", diskregion, 0, our_this->phase );
}
static int scsidev_dispatch( int operation, void *file, INT64 intparm, void *ptrparm )
diff --git a/src/emu/machine/scsihd.c b/src/emu/machine/scsihd.c
index 1a857b385c3..bf7a43fe9cb 100644
--- a/src/emu/machine/scsihd.c
+++ b/src/emu/machine/scsihd.c
@@ -226,15 +226,12 @@ static void scsihd_write_data( SCSIInstance *scsiInstance, UINT8 *data, int data
static void scsihd_alloc_instance( SCSIInstance *scsiInstance, const char *diskregion )
{
SCSIHd *our_this = SCSIThis( &SCSIClassHARDDISK, scsiInstance );
- char tag[256];
our_this->lba = 0;
our_this->blocks = 0;
- state_save_combine_module_and_tag(tag, "scsihd", diskregion);
-
- state_save_register_item( tag, 0, our_this->lba );
- state_save_register_item( tag, 0, our_this->blocks );
+ state_save_register_item( "scsihd", diskregion, 0, our_this->lba );
+ state_save_register_item( "scsihd", diskregion, 0, our_this->blocks );
#ifdef MESS
/* TODO: get rid of this ifdef MESS section */
diff --git a/src/emu/machine/smc91c9x.c b/src/emu/machine/smc91c9x.c
index 5fd574ce591..4106c70ab18 100644
--- a/src/emu/machine/smc91c9x.c
+++ b/src/emu/machine/smc91c9x.c
@@ -512,7 +512,6 @@ static DEVICE_START( smc91c9x )
{
const smc91c9x_config *config = device->inline_config;
smc91c9x_state *smc = get_safe_token(device);
- char unique_tag[50];
/* validate some basic stuff */
assert(device != NULL);
@@ -525,20 +524,16 @@ static DEVICE_START( smc91c9x )
smc->device = device;
smc->irq_handler = config->interrupt;
- /* create the name for save states */
- assert(strlen(device->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "smc91c9x", device->tag);
-
/* register ide states */
- state_save_register_item_array(unique_tag, 0, smc->reg);
- state_save_register_item_array(unique_tag, 0, smc->regmask);
- state_save_register_item(unique_tag, 0, smc->irq_state);
- state_save_register_item(unique_tag, 0, smc->alloc_count);
- state_save_register_item(unique_tag, 0, smc->fifo_count);
- state_save_register_item_array(unique_tag, 0, smc->rx);
- state_save_register_item_array(unique_tag, 0, smc->tx);
- state_save_register_item(unique_tag, 0, smc->sent);
- state_save_register_item(unique_tag, 0, smc->recd);
+ state_save_register_item_array("smc91c9x", device->tag, 0, smc->reg);
+ state_save_register_item_array("smc91c9x", device->tag, 0, smc->regmask);
+ state_save_register_item("smc91c9x", device->tag, 0, smc->irq_state);
+ state_save_register_item("smc91c9x", device->tag, 0, smc->alloc_count);
+ state_save_register_item("smc91c9x", device->tag, 0, smc->fifo_count);
+ state_save_register_item_array("smc91c9x", device->tag, 0, smc->rx);
+ state_save_register_item_array("smc91c9x", device->tag, 0, smc->tx);
+ state_save_register_item("smc91c9x", device->tag, 0, smc->sent);
+ state_save_register_item("smc91c9x", device->tag, 0, smc->recd);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/timekpr.c b/src/emu/machine/timekpr.c
index ad326d37b01..61d287227c8 100644
--- a/src/emu/machine/timekpr.c
+++ b/src/emu/machine/timekpr.c
@@ -286,7 +286,6 @@ static DEVICE_START(timekeeper)
{
timekeeper_state *c = get_safe_token(device);
const timekeeper_config *config;
- char unique_tag[50];
emu_timer *timer;
attotime duration;
mame_system_time systime;
@@ -322,19 +321,16 @@ static DEVICE_START(timekeeper)
}
}
- assert( strlen( device->tag ) < 30 );
- state_save_combine_module_and_tag( unique_tag, "timekeeper", device->tag );
-
- state_save_register_item( unique_tag, 0, c->control );
- state_save_register_item( unique_tag, 0, c->seconds );
- state_save_register_item( unique_tag, 0, c->minutes );
- state_save_register_item( unique_tag, 0, c->hours );
- state_save_register_item( unique_tag, 0, c->day );
- state_save_register_item( unique_tag, 0, c->date );
- state_save_register_item( unique_tag, 0, c->month );
- state_save_register_item( unique_tag, 0, c->year );
- state_save_register_item( unique_tag, 0, c->century );
- state_save_register_item_pointer( unique_tag, 0, c->data, c->size );
+ state_save_register_item( "timekeeper", device->tag, 0, c->control );
+ state_save_register_item( "timekeeper", device->tag, 0, c->seconds );
+ state_save_register_item( "timekeeper", device->tag, 0, c->minutes );
+ state_save_register_item( "timekeeper", device->tag, 0, c->hours );
+ state_save_register_item( "timekeeper", device->tag, 0, c->day );
+ state_save_register_item( "timekeeper", device->tag, 0, c->date );
+ state_save_register_item( "timekeeper", device->tag, 0, c->month );
+ state_save_register_item( "timekeeper", device->tag, 0, c->year );
+ state_save_register_item( "timekeeper", device->tag, 0, c->century );
+ state_save_register_item_pointer( "timekeeper", device->tag, 0, c->data, c->size );
timer = timer_alloc( timekeeper_tick, c );
duration = ATTOTIME_IN_SEC(1);
diff --git a/src/emu/machine/upd4701.c b/src/emu/machine/upd4701.c
index 9acd21e232e..6e28d082c66 100644
--- a/src/emu/machine/upd4701.c
+++ b/src/emu/machine/upd4701.c
@@ -58,20 +58,20 @@ void uPD4701_init( int chip )
c->latchswitches = 0;
c->cf = 1;
- state_save_register_item( "uPD4701", chip, c->cs );
- state_save_register_item( "uPD4701", chip, c->xy );
- state_save_register_item( "uPD4701", chip, c->ul );
- state_save_register_item( "uPD4701", chip, c->resetx );
- state_save_register_item( "uPD4701", chip, c->resety );
- state_save_register_item( "uPD4701", chip, c->latchx );
- state_save_register_item( "uPD4701", chip, c->latchy );
- state_save_register_item( "uPD4701", chip, c->startx );
- state_save_register_item( "uPD4701", chip, c->starty );
- state_save_register_item( "uPD4701", chip, c->x );
- state_save_register_item( "uPD4701", chip, c->y );
- state_save_register_item( "uPD4701", chip, c->switches );
- state_save_register_item( "uPD4701", chip, c->latchswitches );
- state_save_register_item( "uPD4701", chip, c->cf );
+ state_save_register_item( "uPD4701", NULL, chip, c->cs );
+ state_save_register_item( "uPD4701", NULL, chip, c->xy );
+ state_save_register_item( "uPD4701", NULL, chip, c->ul );
+ state_save_register_item( "uPD4701", NULL, chip, c->resetx );
+ state_save_register_item( "uPD4701", NULL, chip, c->resety );
+ state_save_register_item( "uPD4701", NULL, chip, c->latchx );
+ state_save_register_item( "uPD4701", NULL, chip, c->latchy );
+ state_save_register_item( "uPD4701", NULL, chip, c->startx );
+ state_save_register_item( "uPD4701", NULL, chip, c->starty );
+ state_save_register_item( "uPD4701", NULL, chip, c->x );
+ state_save_register_item( "uPD4701", NULL, chip, c->y );
+ state_save_register_item( "uPD4701", NULL, chip, c->switches );
+ state_save_register_item( "uPD4701", NULL, chip, c->latchswitches );
+ state_save_register_item( "uPD4701", NULL, chip, c->cf );
}
void uPD4701_ul_w( int chip, int ul )
diff --git a/src/emu/machine/wd33c93.c b/src/emu/machine/wd33c93.c
index c7b2fe59829..f88ec32f560 100644
--- a/src/emu/machine/wd33c93.c
+++ b/src/emu/machine/wd33c93.c
@@ -800,7 +800,7 @@ extern void wd33c93_init( const struct WD33C93interface *interface )
scsi_data.temp_input = auto_malloc( TEMP_INPUT_LEN );
-// state_save_register_item_array("wd33c93", 0, scsi_data);
+// state_save_register_item_array("wd33c93", NULL, 0, scsi_data);
}
extern void wd33c93_exit( const struct WD33C93interface *interface )
diff --git a/src/emu/machine/x2212.c b/src/emu/machine/x2212.c
index d199908078f..62c3b55727f 100644
--- a/src/emu/machine/x2212.c
+++ b/src/emu/machine/x2212.c
@@ -80,7 +80,6 @@ static DEVICE_START(x2212)
{
x2212_state *c = get_safe_token(device);
const x2212_config *config;
- char unique_tag[50];
/* validate some basic stuff */
assert(device != NULL);
@@ -100,14 +99,10 @@ static DEVICE_START(x2212)
c->default_data = memory_region( device->machine, config->data );
}
- /* create the name for save states */
- assert( strlen( device->tag ) < 30 );
- state_save_combine_module_and_tag( unique_tag, "x2212", device->tag );
-
- state_save_register_item_pointer( unique_tag, 0, c->sram, SIZE_DATA );
- state_save_register_item_pointer( unique_tag, 0, c->e2prom, SIZE_DATA );
- state_save_register_item( unique_tag, 0, c->store );
- state_save_register_item( unique_tag, 0, c->array_recall );
+ state_save_register_item_pointer( "x2212", device->tag, 0, c->sram, SIZE_DATA );
+ state_save_register_item_pointer( "x2212", device->tag, 0, c->e2prom, SIZE_DATA );
+ state_save_register_item( "x2212", device->tag, 0, c->store );
+ state_save_register_item( "x2212", device->tag, 0, c->array_recall );
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/x76f041.c b/src/emu/machine/x76f041.c
index 33b247b9a5e..837941e2a68 100644
--- a/src/emu/machine/x76f041.c
+++ b/src/emu/machine/x76f041.c
@@ -153,24 +153,24 @@ void x76f041_init( int chip, UINT8 *data )
c->configuration_registers = &data[ offset ]; offset += SIZE_CONFIGURATION_REGISTERS;
c->data = &data[ offset ]; offset += SIZE_DATA;
- state_save_register_item( "x76f041", chip, c->cs );
- state_save_register_item( "x76f041", chip, c->rst );
- state_save_register_item( "x76f041", chip, c->scl );
- state_save_register_item( "x76f041", chip, c->sdaw );
- state_save_register_item( "x76f041", chip, c->sdar );
- state_save_register_item( "x76f041", chip, c->state );
- state_save_register_item( "x76f041", chip, c->shift );
- state_save_register_item( "x76f041", chip, c->bit );
- state_save_register_item( "x76f041", chip, c->byte );
- state_save_register_item( "x76f041", chip, c->command );
- state_save_register_item( "x76f041", chip, c->address );
- state_save_register_item_array( "x76f041", chip, c->write_buffer );
- state_save_register_item_pointer( "x76f041", chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
- state_save_register_item_pointer( "x76f041", chip, c->write_password, SIZE_WRITE_PASSWORD );
- state_save_register_item_pointer( "x76f041", chip, c->read_password, SIZE_READ_PASSWORD );
- state_save_register_item_pointer( "x76f041", chip, c->configuration_password, SIZE_CONFIGURATION_PASSWORD );
- state_save_register_item_pointer( "x76f041", chip, c->configuration_registers, SIZE_CONFIGURATION_REGISTERS );
- state_save_register_item_pointer( "x76f041", chip, c->data, SIZE_DATA );
+ state_save_register_item( "x76f041", NULL, chip, c->cs );
+ state_save_register_item( "x76f041", NULL, chip, c->rst );
+ state_save_register_item( "x76f041", NULL, chip, c->scl );
+ state_save_register_item( "x76f041", NULL, chip, c->sdaw );
+ state_save_register_item( "x76f041", NULL, chip, c->sdar );
+ state_save_register_item( "x76f041", NULL, chip, c->state );
+ state_save_register_item( "x76f041", NULL, chip, c->shift );
+ state_save_register_item( "x76f041", NULL, chip, c->bit );
+ state_save_register_item( "x76f041", NULL, chip, c->byte );
+ state_save_register_item( "x76f041", NULL, chip, c->command );
+ state_save_register_item( "x76f041", NULL, chip, c->address );
+ state_save_register_item_array( "x76f041", NULL, chip, c->write_buffer );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->write_password, SIZE_WRITE_PASSWORD );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->read_password, SIZE_READ_PASSWORD );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->configuration_password, SIZE_CONFIGURATION_PASSWORD );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->configuration_registers, SIZE_CONFIGURATION_REGISTERS );
+ state_save_register_item_pointer( "x76f041", NULL, chip, c->data, SIZE_DATA );
}
void x76f041_cs_write( int chip, int cs )
diff --git a/src/emu/machine/x76f100.c b/src/emu/machine/x76f100.c
index af2f5e4b892..8382bf84b80 100644
--- a/src/emu/machine/x76f100.c
+++ b/src/emu/machine/x76f100.c
@@ -117,21 +117,21 @@ void x76f100_init( int chip, UINT8 *data )
c->read_password = &data[ offset ]; offset += SIZE_READ_PASSWORD;
c->data = &data[ offset ]; offset += SIZE_DATA;
- state_save_register_item( "x76f100", chip, c->cs );
- state_save_register_item( "x76f100", chip, c->rst );
- state_save_register_item( "x76f100", chip, c->scl );
- state_save_register_item( "x76f100", chip, c->sdaw );
- state_save_register_item( "x76f100", chip, c->sdar );
- state_save_register_item( "x76f100", chip, c->state );
- state_save_register_item( "x76f100", chip, c->shift );
- state_save_register_item( "x76f100", chip, c->bit );
- state_save_register_item( "x76f100", chip, c->byte );
- state_save_register_item( "x76f100", chip, c->command );
- state_save_register_item_array( "x76f100", chip, c->write_buffer );
- state_save_register_item_pointer( "x76f100", chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
- state_save_register_item_pointer( "x76f100", chip, c->write_password, SIZE_WRITE_PASSWORD );
- state_save_register_item_pointer( "x76f100", chip, c->read_password, SIZE_READ_PASSWORD );
- state_save_register_item_pointer( "x76f100", chip, c->data, SIZE_DATA );
+ state_save_register_item( "x76f100", NULL, chip, c->cs );
+ state_save_register_item( "x76f100", NULL, chip, c->rst );
+ state_save_register_item( "x76f100", NULL, chip, c->scl );
+ state_save_register_item( "x76f100", NULL, chip, c->sdaw );
+ state_save_register_item( "x76f100", NULL, chip, c->sdar );
+ state_save_register_item( "x76f100", NULL, chip, c->state );
+ state_save_register_item( "x76f100", NULL, chip, c->shift );
+ state_save_register_item( "x76f100", NULL, chip, c->bit );
+ state_save_register_item( "x76f100", NULL, chip, c->byte );
+ state_save_register_item( "x76f100", NULL, chip, c->command );
+ state_save_register_item_array( "x76f100", NULL, chip, c->write_buffer );
+ state_save_register_item_pointer( "x76f100", NULL, chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
+ state_save_register_item_pointer( "x76f100", NULL, chip, c->write_password, SIZE_WRITE_PASSWORD );
+ state_save_register_item_pointer( "x76f100", NULL, chip, c->read_password, SIZE_READ_PASSWORD );
+ state_save_register_item_pointer( "x76f100", NULL, chip, c->data, SIZE_DATA );
}
void x76f100_cs_write( int chip, int cs )
diff --git a/src/emu/machine/z80ctc.c b/src/emu/machine/z80ctc.c
index d37a6ac6518..5cbfde3ff07 100644
--- a/src/emu/machine/z80ctc.c
+++ b/src/emu/machine/z80ctc.c
@@ -465,7 +465,6 @@ static DEVICE_START( z80ctc )
const z80ctc_interface *intf = device->static_config;
astring *tempstring = astring_alloc();
z80ctc *ctc = get_safe_token(device);
- char unique_tag[30];
int cpunum = -1;
int ch;
@@ -495,17 +494,15 @@ static DEVICE_START( z80ctc )
ctc->channel[3].zc = NULL;
/* register for save states */
- state_save_combine_module_and_tag(unique_tag, "z80ctc", device->tag);
-
- state_save_register_item(unique_tag, 0, ctc->vector);
+ state_save_register_item("z80ctc", device->tag, 0, ctc->vector);
for (ch = 0; ch < 4; ch++)
{
ctc_channel *channel = &ctc->channel[ch];
- state_save_register_item(unique_tag, ch, channel->mode);
- state_save_register_item(unique_tag, ch, channel->tconst);
- state_save_register_item(unique_tag, ch, channel->down);
- state_save_register_item(unique_tag, ch, channel->extclk);
- state_save_register_item(unique_tag, ch, channel->int_state);
+ state_save_register_item("z80ctc", device->tag, ch, channel->mode);
+ state_save_register_item("z80ctc", device->tag, ch, channel->tconst);
+ state_save_register_item("z80ctc", device->tag, ch, channel->down);
+ state_save_register_item("z80ctc", device->tag, ch, channel->extclk);
+ state_save_register_item("z80ctc", device->tag, ch, channel->int_state);
}
astring_free(tempstring);
diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c
index c9c929acadf..67df6e93d6b 100644
--- a/src/emu/machine/z80dma.c
+++ b/src/emu/machine/z80dma.c
@@ -419,34 +419,30 @@ WRITE8_DEVICE_HANDLER( z80dma_rdy_w)
static DEVICE_START( z80dma )
{
z80dma_t *z80dma = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
z80dma->intf = device->static_config;
z80dma->timer = timer_alloc(z80dma_timerproc, (void *) device);
- state_save_combine_module_and_tag(unique_tag, "z80dma", device->tag);
-
- state_save_register_item_array(unique_tag, 0, z80dma->regs);
- state_save_register_item_array(unique_tag, 0, z80dma->regs_follow);
-
- state_save_register_item(unique_tag, 0, z80dma->num_follow);
- state_save_register_item(unique_tag, 0, z80dma->cur_follow);
- state_save_register_item(unique_tag, 0, z80dma->status);
- state_save_register_item(unique_tag, 0, z80dma->dma_enabled);
-
- state_save_register_item(unique_tag, 0, z80dma->addressA);
- state_save_register_item(unique_tag, 0, z80dma->addressB);
- state_save_register_item(unique_tag, 0, z80dma->count);
- state_save_register_item(unique_tag, 0, z80dma->rdy);
- state_save_register_item(unique_tag, 0, z80dma->is_read);
- state_save_register_item(unique_tag, 0, z80dma->cur_cycle);
- state_save_register_item(unique_tag, 0, z80dma->latch);
+ state_save_register_item_array("z80dma", device->tag, 0, z80dma->regs);
+ state_save_register_item_array("z80dma", device->tag, 0, z80dma->regs_follow);
+
+ state_save_register_item("z80dma", device->tag, 0, z80dma->num_follow);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->cur_follow);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->status);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->dma_enabled);
+
+ state_save_register_item("z80dma", device->tag, 0, z80dma->addressA);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->addressB);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->count);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->rdy);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->is_read);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->cur_cycle);
+ state_save_register_item("z80dma", device->tag, 0, z80dma->latch);
return DEVICE_START_OK;
}
diff --git a/src/emu/machine/z80pio.c b/src/emu/machine/z80pio.c
index 8949e561fc0..c1c32273c43 100644
--- a/src/emu/machine/z80pio.c
+++ b/src/emu/machine/z80pio.c
@@ -537,7 +537,6 @@ static DEVICE_START( z80pio )
{
const z80pio_interface *intf = device->static_config;
z80pio_t *z80pio = get_safe_token( device );
- char unique_tag[30];
z80pio->intr = intf->intr;
z80pio->port_read[0] = intf->portAread;
@@ -548,18 +547,16 @@ static DEVICE_START( z80pio )
z80pio->rdyr[1] = intf->rdyB;
/* register for save states */
- state_save_combine_module_and_tag(unique_tag, "z80pio", device->tag);
-
- state_save_register_item_array(unique_tag, 0, z80pio->vector);
- state_save_register_item_array(unique_tag, 0, z80pio->mode);
- state_save_register_item_array(unique_tag, 0, z80pio->enable);
- state_save_register_item_array(unique_tag, 0, z80pio->mask);
- state_save_register_item_array(unique_tag, 0, z80pio->dir);
- state_save_register_item_array(unique_tag, 0, z80pio->rdy);
- state_save_register_item_array(unique_tag, 0, z80pio->in);
- state_save_register_item_array(unique_tag, 0, z80pio->out);
- state_save_register_item_array(unique_tag, 0, z80pio->strobe);
- state_save_register_item_array(unique_tag, 0, z80pio->int_state);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->vector);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->mode);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->enable);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->mask);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->dir);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->rdy);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->in);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->out);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->strobe);
+ state_save_register_item_array("z80pio", device->tag, 0, z80pio->int_state);
return DEVICE_START_OK;
}
diff --git a/src/emu/memory.c b/src/emu/memory.c
index 768e772bce1..c9227e604d6 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -1971,7 +1971,7 @@ static void bank_assign_static(int banknum, int cpunum, int spacenum, read_or_wr
{
/* if we're allowed to, wire up state saving for the entry */
if (state_save_registration_allowed())
- state_save_register_item("memory", banknum, bank->curentry);
+ state_save_register_item("memory", NULL, banknum, bank->curentry);
/* fill in information about the bank */
bank->used = TRUE;
@@ -2632,8 +2632,8 @@ static void register_for_save(int cpunum, int spacenum, offs_t bytestart, void *
int bytes_per_element = cpudata[cpunum].space[spacenum].dbits/8;
char name[256];
- sprintf(name, "%d.%08x-%08x", spacenum, bytestart, (int)(bytestart + numbytes - 1));
- state_save_register_memory("memory", cpunum, name, base, bytes_per_element, (UINT32)numbytes / bytes_per_element);
+ sprintf(name, "%08x-%08x", bytestart, (int)(bytestart + numbytes - 1));
+ state_save_register_memory("memory", address_space_names[spacenum], cpunum, name, base, bytes_per_element, (UINT32)numbytes / bytes_per_element);
}
diff --git a/src/emu/sound/2151intf.c b/src/emu/sound/2151intf.c
index c92b11ea4db..17bf04792dc 100644
--- a/src/emu/sound/2151intf.c
+++ b/src/emu/sound/2151intf.c
@@ -53,7 +53,7 @@ static SND_START( ym2151 )
/* stream setup */
info->stream = stream_create(0,2,rate,info,ym2151_update);
- info->chip = ym2151_init(sndindex,clock,rate);
+ info->chip = ym2151_init(tag,clock,rate);
state_save_register_postload(Machine, ym2151intf_postload, info);
diff --git a/src/emu/sound/2203intf.c b/src/emu/sound/2203intf.c
index 1ca584d0c86..b39d749136b 100644
--- a/src/emu/sound/2203intf.c
+++ b/src/emu/sound/2203intf.c
@@ -124,7 +124,7 @@ static SND_START( ym2203 )
memset(info, 0, sizeof(*info));
info->intf = intf;
- info->psg = ay8910_start_ym(SOUND_YM2203, sndindex, clock, &intf->ay8910_intf);
+ info->psg = ay8910_start_ym(SOUND_YM2203, tag, clock, &intf->ay8910_intf);
if (!info->psg) return NULL;
/* Timer Handler set */
@@ -135,7 +135,7 @@ static SND_START( ym2203 )
info->stream = stream_create(0,1,rate,info,ym2203_stream_update);
/* Initialize FM emurator */
- info->chip = ym2203_init(info,sndindex,clock,rate,timer_handler,IRQHandler,&psgintf);
+ info->chip = ym2203_init(info,tag,clock,rate,timer_handler,IRQHandler,&psgintf);
state_save_register_postload(Machine, ym2203_intf_postload, info);
diff --git a/src/emu/sound/2413intf.c b/src/emu/sound/2413intf.c
index d1c067741e6..d27de1de7fb 100644
--- a/src/emu/sound/2413intf.c
+++ b/src/emu/sound/2413intf.c
@@ -57,7 +57,7 @@ static SND_START( ym2413 )
memset(info, 0, sizeof(*info));
/* emulator create */
- info->chip = ym2413_init(clock, rate, sndindex);
+ info->chip = ym2413_init(clock, rate, tag);
if (!info->chip)
return NULL;
diff --git a/src/emu/sound/2608intf.c b/src/emu/sound/2608intf.c
index 2a7fc130a0f..1ea8ce16972 100644
--- a/src/emu/sound/2608intf.c
+++ b/src/emu/sound/2608intf.c
@@ -141,7 +141,7 @@ static SND_START( ym2608 )
info->intf = intf;
/* FIXME: Force to use simgle output */
- info->psg = ay8910_start_ym(SOUND_YM2608, sndindex, clock, &intf->ay8910_intf);
+ info->psg = ay8910_start_ym(SOUND_YM2608, tag, clock, &intf->ay8910_intf);
if (!info->psg) return NULL;
/* Timer Handler set */
@@ -155,7 +155,7 @@ static SND_START( ym2608 )
pcmsizea = memory_region_length(Machine, tag);
/* initialize YM2608 */
- info->chip = ym2608_init(info,sndindex,clock,rate,
+ info->chip = ym2608_init(info,tag,clock,rate,
pcmbufa,pcmsizea,
timer_handler,IRQHandler,&psgintf);
diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c
index 2687cf709e4..906066788d2 100644
--- a/src/emu/sound/2610intf.c
+++ b/src/emu/sound/2610intf.c
@@ -142,7 +142,7 @@ static SND_START( ym2610 )
memset(info, 0, sizeof(*info));
info->intf = intf;
- info->psg = ay8910_start_ym(SOUND_YM2610, sndindex, clock, &generic_ay8910);
+ info->psg = ay8910_start_ym(SOUND_YM2610, tag, clock, &generic_ay8910);
if (!info->psg) return NULL;
/* Timer Handler set */
@@ -165,7 +165,7 @@ static SND_START( ym2610 )
}
/**** initialize YM2610 ****/
- info->chip = ym2610_init(info,sndindex,clock,rate,
+ info->chip = ym2610_init(info,tag,clock,rate,
pcmbufa,pcmsizea,pcmbufb,pcmsizeb,
timer_handler,IRQHandler,&psgintf);
@@ -208,7 +208,7 @@ static SND_START( ym2610b )
memset(info, 0, sizeof(*info));
info->intf = intf;
- info->psg = ay8910_start_ym(SOUND_YM2610B, sndindex, clock, &generic_ay8910);
+ info->psg = ay8910_start_ym(SOUND_YM2610B, tag, clock, &generic_ay8910);
if (!info->psg) return NULL;
/* Timer Handler set */
@@ -231,7 +231,7 @@ static SND_START( ym2610b )
}
/**** initialize YM2610 ****/
- info->chip = ym2610_init(info,sndindex,clock,rate,
+ info->chip = ym2610_init(info,tag,clock,rate,
pcmbufa,pcmsizea,pcmbufb,pcmsizeb,
timer_handler,IRQHandler,&psgintf);
if (info->chip)
diff --git a/src/emu/sound/2612intf.c b/src/emu/sound/2612intf.c
index 36333b3aa44..8ef38e4c316 100644
--- a/src/emu/sound/2612intf.c
+++ b/src/emu/sound/2612intf.c
@@ -107,7 +107,7 @@ static SND_START( ym2612 )
info->stream = stream_create(0,2,rate,info,ym2612_stream_update);
/**** initialize YM2612 ****/
- info->chip = ym2612_init(info,sndindex,clock,rate,timer_handler,IRQHandler);
+ info->chip = ym2612_init(info,tag,clock,rate,timer_handler,IRQHandler);
state_save_register_postload(Machine, ym2612_intf_postload, info);
diff --git a/src/emu/sound/3812intf.c b/src/emu/sound/3812intf.c
index faa9f575059..1278fdcaa67 100644
--- a/src/emu/sound/3812intf.c
+++ b/src/emu/sound/3812intf.c
@@ -91,7 +91,7 @@ static SND_START( ym3812 )
info->intf = config ? config : &dummy;
/* stream system initialize */
- info->chip = ym3812_init(sndindex,clock,rate);
+ info->chip = ym3812_init(tag,clock,rate);
if (!info->chip)
return NULL;
@@ -260,7 +260,7 @@ static SND_START( ym3526 )
info->intf = config ? config : &dummy;
/* stream system initialize */
- info->chip = ym3526_init(sndindex,clock,rate);
+ info->chip = ym3526_init(tag,clock,rate);
if (!info->chip)
return NULL;
@@ -464,7 +464,7 @@ static SND_START( y8950 )
info->index = sndindex;
/* stream system initialize */
- info->chip = y8950_init(sndindex,clock,rate);
+ info->chip = y8950_init(tag,clock,rate);
if (!info->chip)
return NULL;
diff --git a/src/emu/sound/5110intf.c b/src/emu/sound/5110intf.c
index 9edcbbc9799..d18d79d38eb 100644
--- a/src/emu/sound/5110intf.c
+++ b/src/emu/sound/5110intf.c
@@ -76,7 +76,7 @@ static SND_START( tms5110 )
info->intf = config ? config : &dummy;
info->tag = tag;
- info->chip = tms5110_create(sndindex, TMS5110_IS_5110A);
+ info->chip = tms5110_create(tag, TMS5110_IS_5110A);
if (!info->chip)
return NULL;
sndintrf_register_token(info);
diff --git a/src/emu/sound/5220intf.c b/src/emu/sound/5220intf.c
index 4ce6768740a..61892a6040a 100644
--- a/src/emu/sound/5220intf.c
+++ b/src/emu/sound/5220intf.c
@@ -50,7 +50,7 @@ static SND_START( tms5220 )
memset(info, 0, sizeof(*info));
info->intf = config ? config : &dummy;
- info->chip = tms5220_create(sndindex);
+ info->chip = tms5220_create(tag);
if (!info->chip)
return NULL;
sndintrf_register_token(info);
diff --git a/src/emu/sound/astrocde.c b/src/emu/sound/astrocde.c
index 7caa144e60a..b093028f49f 100644
--- a/src/emu/sound/astrocde.c
+++ b/src/emu/sound/astrocde.c
@@ -226,26 +226,26 @@ static SND_RESET( astrocade )
*
*************************************/
-static void astrocade_state_save_register(struct astrocade_info *chip, int sndindex)
+static void astrocade_state_save_register(struct astrocade_info *chip, const char *tag)
{
- state_save_register_item_array("globals", sndindex, chip->reg);
+ state_save_register_item_array("globals", tag, 0, chip->reg);
- state_save_register_item_array("astrocade", sndindex, chip->reg);
+ state_save_register_item_array("astrocade", tag, 0, chip->reg);
- state_save_register_item("astrocade", sndindex, chip->master_count);
- state_save_register_item("astrocade", sndindex, chip->vibrato_clock);
+ state_save_register_item("astrocade", tag, 0, chip->master_count);
+ state_save_register_item("astrocade", tag, 0, chip->vibrato_clock);
- state_save_register_item("astrocade", sndindex, chip->noise_clock);
- state_save_register_item("astrocade", sndindex, chip->noise_state);
+ state_save_register_item("astrocade", tag, 0, chip->noise_clock);
+ state_save_register_item("astrocade", tag, 0, chip->noise_state);
- state_save_register_item("astrocade", sndindex, chip->a_count);
- state_save_register_item("astrocade", sndindex, chip->a_state);
+ state_save_register_item("astrocade", tag, 0, chip->a_count);
+ state_save_register_item("astrocade", tag, 0, chip->a_state);
- state_save_register_item("astrocade", sndindex, chip->b_count);
- state_save_register_item("astrocade", sndindex, chip->b_state);
+ state_save_register_item("astrocade", tag, 0, chip->b_count);
+ state_save_register_item("astrocade", tag, 0, chip->b_state);
- state_save_register_item("astrocade", sndindex, chip->c_count);
- state_save_register_item("astrocade", sndindex, chip->c_state);
+ state_save_register_item("astrocade", tag, 0, chip->c_count);
+ state_save_register_item("astrocade", tag, 0, chip->c_state);
}
@@ -274,7 +274,7 @@ static SND_START( astrocade )
/* reset state */
SND_RESET_NAME( astrocade )(chip);
- astrocade_state_save_register(chip, sndindex);
+ astrocade_state_save_register(chip, tag);
return chip;
}
diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c
index 5050a7d8f87..7c479a78464 100644
--- a/src/emu/sound/ay8910.c
+++ b/src/emu/sound/ay8910.c
@@ -160,7 +160,7 @@ struct _ay_ym_param
typedef struct _ay8910_context ay8910_context;
struct _ay8910_context
{
- int index;
+ const char *tag;
int streams;
int ready;
sound_stream *channel;
@@ -450,11 +450,11 @@ static void ay8910_write_reg(ay8910_context *psg, int r, int v)
if (psg->intf->portAwrite)
(*psg->intf->portAwrite)(space, 0, psg->regs[AY_PORTA]);
else
- logerror("warning - write %02x to 8910 #%d Port A\n",psg->regs[AY_PORTA],psg->index);
+ logerror("warning - write %02x to 8910 '%s' Port A\n",psg->regs[AY_PORTA],psg->tag);
}
else
{
- logerror("warning: write to 8910 #%d Port A set as input - ignored\n",psg->index);
+ logerror("warning: write to 8910 '%s' Port A set as input - ignored\n",psg->tag);
}
break;
case AY_PORTB:
@@ -463,11 +463,11 @@ static void ay8910_write_reg(ay8910_context *psg, int r, int v)
if (psg->intf->portBwrite)
(*psg->intf->portBwrite)(space, 0, psg->regs[AY_PORTB]);
else
- logerror("warning - write %02x to 8910 #%d Port B\n",psg->regs[AY_PORTB],psg->index);
+ logerror("warning - write %02x to 8910 '%s' Port B\n",psg->regs[AY_PORTB],psg->tag);
}
else
{
- logerror("warning: write to 8910 #%d Port B set as input - ignored\n",psg->index);
+ logerror("warning: write to 8910 '%s' Port B set as input - ignored\n",psg->tag);
}
break;
}
@@ -628,27 +628,27 @@ static void build_mixer_table(ay8910_context *psg)
build_3D_table(psg->intf->res_load[0], psg->par, psg->par_env, normalize, 3, psg->zero_is_off, psg->vol3d_table);
}
-static void ay8910_statesave(ay8910_context *psg, int sndindex)
+static void ay8910_statesave(ay8910_context *psg, const char *tag)
{
- state_save_register_item("AY8910", sndindex, psg->register_latch);
- state_save_register_item_array("AY8910", sndindex, psg->regs);
- state_save_register_item("AY8910", sndindex, psg->last_enable);
+ state_save_register_item("AY8910", tag, 0, psg->register_latch);
+ state_save_register_item_array("AY8910", tag, 0, psg->regs);
+ state_save_register_item("AY8910", tag, 0, psg->last_enable);
- state_save_register_item_array("AY8910", sndindex, psg->count);
- state_save_register_item("AY8910", sndindex, psg->count_noise);
- state_save_register_item("AY8910", sndindex, psg->count_env);
+ state_save_register_item_array("AY8910", tag, 0, psg->count);
+ state_save_register_item("AY8910", tag, 0, psg->count_noise);
+ state_save_register_item("AY8910", tag, 0, psg->count_env);
- state_save_register_item("AY8910", sndindex, psg->env_volume);
+ state_save_register_item("AY8910", tag, 0, psg->env_volume);
- state_save_register_item_array("AY8910", sndindex, psg->output);
- state_save_register_item("AY8910", sndindex, psg->output_noise);
+ state_save_register_item_array("AY8910", tag, 0, psg->output);
+ state_save_register_item("AY8910", tag, 0, psg->output_noise);
- state_save_register_item("AY8910", sndindex, psg->env_step);
- state_save_register_item("AY8910", sndindex, psg->hold);
- state_save_register_item("AY8910", sndindex, psg->alternate);
- state_save_register_item("AY8910", sndindex, psg->attack);
- state_save_register_item("AY8910", sndindex, psg->holding);
- state_save_register_item("AY8910", sndindex, psg->rng);
+ state_save_register_item("AY8910", tag, 0, psg->env_step);
+ state_save_register_item("AY8910", tag, 0, psg->hold);
+ state_save_register_item("AY8910", tag, 0, psg->alternate);
+ state_save_register_item("AY8910", tag, 0, psg->attack);
+ state_save_register_item("AY8910", tag, 0, psg->holding);
+ state_save_register_item("AY8910", tag, 0, psg->rng);
}
/*************************************
@@ -659,13 +659,13 @@ static void ay8910_statesave(ay8910_context *psg, int sndindex)
*
*************************************/
-void *ay8910_start_ym(sound_type chip_type, int sndindex, int clock, const ay8910_interface *intf)
+void *ay8910_start_ym(sound_type chip_type, const char *tag, int clock, const ay8910_interface *intf)
{
ay8910_context *info;
info = auto_malloc(sizeof(*info));
memset(info, 0, sizeof(*info));
- info->index = sndindex;
+ info->tag = tag;
info->intf = intf;
if ((info->intf->flags & AY8910_SINGLE_OUTPUT) != 0)
{
@@ -709,7 +709,7 @@ void *ay8910_start_ym(sound_type chip_type, int sndindex, int clock, const ay891
info->channel = stream_create(0,info->streams,clock / 8 ,info,ay8910_update);
ay8910_set_clock_ym(info,clock);
- ay8910_statesave(info, sndindex);
+ ay8910_statesave(info, tag);
return info;
}
@@ -792,7 +792,7 @@ int ay8910_read_ym(void *chip)
{
case AY_PORTA:
if ((psg->regs[AY_ENABLE] & 0x40) != 0)
- logerror("warning: read from 8910 #%d Port A set as output\n",psg->index);
+ logerror("warning: read from 8910 '%s' Port A set as output\n",psg->tag);
/*
even if the port is set as output, we still need to return the external
data. Some games, like kidniki, need this to work.
@@ -800,15 +800,15 @@ int ay8910_read_ym(void *chip)
if (psg->intf->portAread)
psg->regs[AY_PORTA] = (*psg->intf->portAread)(space, 0);
else
- logerror("PC %04x: warning - read 8910 #%d Port A\n",cpu_get_pc(Machine->activecpu),psg->index);
+ logerror("PC %04x: warning - read 8910 '%s' Port A\n",cpu_get_pc(Machine->activecpu),psg->tag);
break;
case AY_PORTB:
if ((psg->regs[AY_ENABLE] & 0x80) != 0)
- logerror("warning: read from 8910 #%d Port B set as output\n",psg->index);
+ logerror("warning: read from 8910 '%s' Port B set as output\n",psg->tag);
if (psg->intf->portBread)
psg->regs[AY_PORTB] = (*psg->intf->portBread)(space, 0);
else
- logerror("PC %04x: warning - read 8910 #%d Port B\n",cpu_get_pc(Machine->activecpu),psg->index);
+ logerror("PC %04x: warning - read 8910 '%s' Port B\n",cpu_get_pc(Machine->activecpu),psg->tag);
break;
}
return psg->regs[r];
@@ -829,7 +829,7 @@ static SND_START( ay8910 )
NULL, NULL, NULL, NULL
};
const ay8910_interface *intf = (config ? config : &generic_ay8910);
- return ay8910_start_ym(SOUND_AY8910, sndindex+16, clock, intf);
+ return ay8910_start_ym(SOUND_AY8910, tag, clock, intf);
}
static SND_START( ym2149 )
@@ -841,7 +841,7 @@ static SND_START( ym2149 )
NULL, NULL, NULL, NULL
};
const ay8910_interface *intf = (config ? config : &generic_ay8910);
- return ay8910_start_ym(SOUND_YM2149, sndindex+16, clock, intf);
+ return ay8910_start_ym(SOUND_YM2149, tag, clock, intf);
}
static SND_STOP( ay8910 )
diff --git a/src/emu/sound/ay8910.h b/src/emu/sound/ay8910.h
index 381ada7e11b..19ef1718174 100644
--- a/src/emu/sound/ay8910.h
+++ b/src/emu/sound/ay8910.h
@@ -126,7 +126,7 @@ WRITE16_HANDLER( ay8910_write_port_4_msb_w );
/*********** An interface for SSG of YM2203 ***********/
-void *ay8910_start_ym(sound_type chip_type, int sndindex, int clock, const ay8910_interface *intf);
+void *ay8910_start_ym(sound_type chip_type, const char *tag, int clock, const ay8910_interface *intf);
void ay8910_stop_ym(void *chip);
void ay8910_reset_ym(void *chip);
diff --git a/src/emu/sound/bsmt2000.c b/src/emu/sound/bsmt2000.c
index 203da7b91ac..0f4a3ca4fc9 100644
--- a/src/emu/sound/bsmt2000.c
+++ b/src/emu/sound/bsmt2000.c
@@ -125,27 +125,26 @@ static SND_START( bsmt2000 )
chip->total_banks = memory_region_length(Machine, tag) / 0x10000;
/* register chip-wide data for save states */
- state_save_register_item("bsmt2000", sndindex * 16, chip->last_register);
- state_save_register_item("bsmt2000", sndindex * 16, chip->stereo);
- state_save_register_item("bsmt2000", sndindex * 16, chip->voices);
- state_save_register_item("bsmt2000", sndindex * 16, chip->adpcm);
- state_save_register_item("bsmt2000", sndindex * 16, chip->adpcm_current);
- state_save_register_item("bsmt2000", sndindex * 16, chip->adpcm_delta_n);
+ state_save_register_item("bsmt2000", tag, 0, chip->last_register);
+ state_save_register_item("bsmt2000", tag, 0, chip->stereo);
+ state_save_register_item("bsmt2000", tag, 0, chip->voices);
+ state_save_register_item("bsmt2000", tag, 0, chip->adpcm);
+ state_save_register_item("bsmt2000", tag, 0, chip->adpcm_current);
+ state_save_register_item("bsmt2000", tag, 0, chip->adpcm_delta_n);
/* register voice-specific data for save states */
for (voicenum = 0; voicenum < MAX_VOICES; voicenum++)
{
bsmt2000_voice *voice = &chip->voice[voicenum];
- int index = sndindex * 16 + voicenum;
-
- state_save_register_item("bsmt2000", index, voice->pos);
- state_save_register_item("bsmt2000", index, voice->rate);
- state_save_register_item("bsmt2000", index, voice->loopend);
- state_save_register_item("bsmt2000", index, voice->loopstart);
- state_save_register_item("bsmt2000", index, voice->bank);
- state_save_register_item("bsmt2000", index, voice->leftvol);
- state_save_register_item("bsmt2000", index, voice->rightvol);
- state_save_register_item("bsmt2000", index, voice->fraction);
+
+ state_save_register_item("bsmt2000", tag, voicenum, voice->pos);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->rate);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->loopend);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->loopstart);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->bank);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->leftvol);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->rightvol);
+ state_save_register_item("bsmt2000", tag, voicenum, voice->fraction);
}
/* reset the chip -- this also configures the default mode */
diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c
index d0c986f83ae..52811bc01c3 100644
--- a/src/emu/sound/c352.c
+++ b/src/emu/sound/c352.c
@@ -482,7 +482,7 @@ static void c352_write_reg16(struct c352_info *info, unsigned long address, unsi
}
}
-static void c352_init(struct c352_info *info, int sndindex)
+static void c352_init(struct c352_info *info, const char *tag)
{
int i;
double x_max = 32752.0;
@@ -515,23 +515,23 @@ static void c352_init(struct c352_info *info, int sndindex)
sprintf(cname, "C352 v %02d", i);
- state_save_register_item(cname, sndindex, info->c352_ch[i].vol_l);
- state_save_register_item(cname, sndindex, info->c352_ch[i].vol_r);
- state_save_register_item(cname, sndindex, info->c352_ch[i].vol_l2);
- state_save_register_item(cname, sndindex, info->c352_ch[i].vol_r2);
- state_save_register_item(cname, sndindex, info->c352_ch[i].bank);
- state_save_register_item(cname, sndindex, info->c352_ch[i].noise);
- state_save_register_item(cname, sndindex, info->c352_ch[i].noisebuf);
- state_save_register_item(cname, sndindex, info->c352_ch[i].noisecnt);
- state_save_register_item(cname, sndindex, info->c352_ch[i].pitch);
- state_save_register_item(cname, sndindex, info->c352_ch[i].start_addr);
- state_save_register_item(cname, sndindex, info->c352_ch[i].end_addr);
- state_save_register_item(cname, sndindex, info->c352_ch[i].repeat_addr);
- state_save_register_item(cname, sndindex, info->c352_ch[i].flag);
- state_save_register_item(cname, sndindex, info->c352_ch[i].start);
- state_save_register_item(cname, sndindex, info->c352_ch[i].repeat);
- state_save_register_item(cname, sndindex, info->c352_ch[i].current_addr);
- state_save_register_item(cname, sndindex, info->c352_ch[i].pos);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].vol_l);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].vol_r);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].vol_l2);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].vol_r2);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].bank);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].noise);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].noisebuf);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].noisecnt);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].pitch);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].start_addr);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].end_addr);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].repeat_addr);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].flag);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].start);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].repeat);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].current_addr);
+ state_save_register_item(cname, tag, 0, info->c352_ch[i].pos);
}
}
@@ -549,7 +549,7 @@ static SND_START( c352 )
info->stream = stream_create(0, 4, info->sample_rate_base, info, c352_update);
- c352_init(info, sndindex);
+ c352_init(info, tag);
return info;
}
diff --git a/src/emu/sound/cdda.c b/src/emu/sound/cdda.c
index 93270960615..1fa210534e6 100644
--- a/src/emu/sound/cdda.c
+++ b/src/emu/sound/cdda.c
@@ -58,14 +58,14 @@ static SND_START( cdda )
info->stream = stream_create(0, 2, 44100, info, cdda_update);
- state_save_register_item( "CDDA", sndindex, info->audio_playing );
- state_save_register_item( "CDDA", sndindex, info->audio_pause );
- state_save_register_item( "CDDA", sndindex, info->audio_ended_normally );
- state_save_register_item( "CDDA", sndindex, info->audio_lba );
- state_save_register_item( "CDDA", sndindex, info->audio_length );
- state_save_register_item_pointer( "CDDA", sndindex, info->audio_cache, CD_MAX_SECTOR_DATA * MAX_SECTORS );
- state_save_register_item( "CDDA", sndindex, info->audio_samples );
- state_save_register_item( "CDDA", sndindex, info->audio_bptr );
+ state_save_register_item( "CDDA", tag, 0, info->audio_playing );
+ state_save_register_item( "CDDA", tag, 0, info->audio_pause );
+ state_save_register_item( "CDDA", tag, 0, info->audio_ended_normally );
+ state_save_register_item( "CDDA", tag, 0, info->audio_lba );
+ state_save_register_item( "CDDA", tag, 0, info->audio_length );
+ state_save_register_item_pointer( "CDDA", tag, 0, info->audio_cache, CD_MAX_SECTOR_DATA * MAX_SECTORS );
+ state_save_register_item( "CDDA", tag, 0, info->audio_samples );
+ state_save_register_item( "CDDA", tag, 0, info->audio_bptr );
return info;
}
diff --git a/src/emu/sound/cem3394.c b/src/emu/sound/cem3394.c
index 94fa3031d5d..34851a66b0d 100644
--- a/src/emu/sound/cem3394.c
+++ b/src/emu/sound/cem3394.c
@@ -338,18 +338,18 @@ static SND_START( cem3394 )
chip->mixer_buffer = auto_malloc(chip->sample_rate * sizeof(INT16));
chip->external_buffer = auto_malloc(chip->sample_rate * sizeof(INT16));
- state_save_register_item_array("cem3394", sndindex, chip->values);
- state_save_register_item("cem3394", sndindex, chip->wave_select);
- state_save_register_item("cem3394", sndindex, chip->volume);
- state_save_register_item("cem3394", sndindex, chip->mixer_internal);
- state_save_register_item("cem3394", sndindex, chip->mixer_external);
- state_save_register_item("cem3394", sndindex, chip->position);
- state_save_register_item("cem3394", sndindex, chip->step);
- state_save_register_item("cem3394", sndindex, chip->filter_position);
- state_save_register_item("cem3394", sndindex, chip->filter_step);
- state_save_register_item("cem3394", sndindex, chip->modulation_depth);
- state_save_register_item("cem3394", sndindex, chip->last_ext);
- state_save_register_item("cem3394", sndindex, chip->pulse_width);
+ state_save_register_item_array("cem3394", tag, 0, chip->values);
+ state_save_register_item("cem3394", tag, 0, chip->wave_select);
+ state_save_register_item("cem3394", tag, 0, chip->volume);
+ state_save_register_item("cem3394", tag, 0, chip->mixer_internal);
+ state_save_register_item("cem3394", tag, 0, chip->mixer_external);
+ state_save_register_item("cem3394", tag, 0, chip->position);
+ state_save_register_item("cem3394", tag, 0, chip->step);
+ state_save_register_item("cem3394", tag, 0, chip->filter_position);
+ state_save_register_item("cem3394", tag, 0, chip->filter_step);
+ state_save_register_item("cem3394", tag, 0, chip->modulation_depth);
+ state_save_register_item("cem3394", tag, 0, chip->last_ext);
+ state_save_register_item("cem3394", tag, 0, chip->pulse_width);
return chip;
}
diff --git a/src/emu/sound/dac.c b/src/emu/sound/dac.c
index a4432dc1e1e..5edd52fb165 100644
--- a/src/emu/sound/dac.c
+++ b/src/emu/sound/dac.c
@@ -111,7 +111,7 @@ static SND_START( dac )
info->channel = stream_create(0,1,clock ? clock : DEFAULT_SAMPLE_RATE,info,DAC_update);
info->output = 0;
- state_save_register_item("dac", sndindex, info->output);
+ state_save_register_item("dac", tag, 0, info->output);
return info;
}
diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c
index e341fcb2e08..7a539f4c74a 100644
--- a/src/emu/sound/discrete.c
+++ b/src/emu/sound/discrete.c
@@ -66,7 +66,7 @@ discrete_info *discrete_current_context = NULL;
*
*************************************/
-static void init_nodes(discrete_info *info, discrete_sound_block *block_list);
+static void init_nodes(discrete_info *info, discrete_sound_block *block_list, const char *tag);
static void find_input_nodes(discrete_info *info, discrete_sound_block *block_list);
static void setup_output_nodes(discrete_info *info);
static void setup_disc_logs(discrete_info *info);
@@ -308,7 +308,7 @@ static SND_START( discrete )
memset(info->indexed_node, 0, DISCRETE_MAX_NODES * sizeof(info->indexed_node[0]));
/* initialize the node data */
- init_nodes(info, intf);
+ init_nodes(info, intf, tag);
/* now go back and find pointers to all input nodes */
find_input_nodes(info, intf);
@@ -411,9 +411,6 @@ static SND_RESET( discrete )
/* otherwise, just step it */
else if (node->module.step)
(*node->module.step)(node);
-
- /* and register save state */
- state_save_register_item_array("discrete", nodenum | (info->sndindex << 16 ), node->output);
}
discrete_current_context = NULL;
@@ -521,7 +518,7 @@ static void discrete_stream_update(void *param, stream_sample_t **inputs, stream
*
*************************************/
-static void init_nodes(discrete_info *info, discrete_sound_block *block_list)
+static void init_nodes(discrete_info *info, discrete_sound_block *block_list, const char *tag)
{
int nodenum;
@@ -629,6 +626,8 @@ static void init_nodes(discrete_info *info, discrete_sound_block *block_list)
info->discrete_input_streams++;
}
+ /* and register save state */
+ state_save_register_item_array("discrete", tag, nodenum, node->output);
}
/* if no outputs, give an error */
diff --git a/src/emu/sound/dmadac.c b/src/emu/sound/dmadac.c
index 9ed3d9d7748..d6d8cabf490 100644
--- a/src/emu/sound/dmadac.c
+++ b/src/emu/sound/dmadac.c
@@ -109,12 +109,12 @@ static SND_START( dmadac )
info->channel = stream_create(0, 1, DEFAULT_SAMPLE_RATE, info, dmadac_update);
/* register with the save state system */
- state_save_register_item("dmadac", sndindex, info->bufin);
- state_save_register_item("dmadac", sndindex, info->bufout);
- state_save_register_item("dmadac", sndindex, info->volume);
- state_save_register_item("dmadac", sndindex, info->enabled);
- state_save_register_item("dmadac", sndindex, info->frequency);
- state_save_register_item_pointer("dmadac", sndindex, info->buffer, BUFFER_SIZE);
+ state_save_register_item("dmadac", tag, 0, info->bufin);
+ state_save_register_item("dmadac", tag, 0, info->bufout);
+ state_save_register_item("dmadac", tag, 0, info->volume);
+ state_save_register_item("dmadac", tag, 0, info->enabled);
+ state_save_register_item("dmadac", tag, 0, info->frequency);
+ state_save_register_item_pointer("dmadac", tag, 0, info->buffer, BUFFER_SIZE);
return info;
}
diff --git a/src/emu/sound/es5503.c b/src/emu/sound/es5503.c
index 87211575535..e4362b1da2f 100644
--- a/src/emu/sound/es5503.c
+++ b/src/emu/sound/es5503.c
@@ -245,19 +245,16 @@ static SND_START( es5503 )
for (osc = 0; osc < 32; osc++)
{
- char sname[32];
- sprintf(sname, "ES5503 %d osc %d", sndindex, osc);
-
- state_save_register_item(sname, sndindex, chip->oscillators[osc].freq);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].wtsize);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].control);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].vol);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].data);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].wavetblpointer);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].wavetblsize);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].resolution);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].accumulator);
- state_save_register_item(sname, sndindex, chip->oscillators[osc].irqpend);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].freq);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].wtsize);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].control);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].vol);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].data);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].wavetblpointer);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].wavetblsize);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].resolution);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].accumulator);
+ state_save_register_item("es5503", tag, osc, chip->oscillators[osc].irqpend);
chip->oscillators[osc].data = 0x80;
chip->oscillators[osc].irqpend = 0;
diff --git a/src/emu/sound/es8712.c b/src/emu/sound/es8712.c
index f265f0b5445..100b87e9849 100644
--- a/src/emu/sound/es8712.c
+++ b/src/emu/sound/es8712.c
@@ -183,25 +183,21 @@ static void es8712_update(void *param, stream_sample_t **inputs, stream_sample_t
***********************************************************************************************/
-static void es8712_state_save_register(struct es8712 *chip, int sndindex)
+static void es8712_state_save_register(struct es8712 *chip, const char *tag)
{
- char buf[20];
+ state_save_register_item("es8712", tag, 0, chip->bank_offset);
- sprintf(buf,"ES8712");
+ state_save_register_item("es8712", tag, 0, chip->playing);
+ state_save_register_item("es8712", tag, 0, chip->sample);
+ state_save_register_item("es8712", tag, 0, chip->count);
+ state_save_register_item("es8712", tag, 0, chip->signal);
+ state_save_register_item("es8712", tag, 0, chip->step);
- state_save_register_item(buf, sndindex, chip->bank_offset);
+ state_save_register_item("es8712", tag, 0, chip->base_offset);
- state_save_register_item(buf, sndindex, chip->playing);
- state_save_register_item(buf, sndindex, chip->sample);
- state_save_register_item(buf, sndindex, chip->count);
- state_save_register_item(buf, sndindex, chip->signal);
- state_save_register_item(buf, sndindex, chip->step);
-
- state_save_register_item(buf, sndindex, chip->base_offset);
-
- state_save_register_item(buf, sndindex, chip->start);
- state_save_register_item(buf, sndindex, chip->end);
- state_save_register_item(buf, sndindex, chip->repeat);
+ state_save_register_item("es8712", tag, 0, chip->start);
+ state_save_register_item("es8712", tag, 0, chip->end);
+ state_save_register_item("es8712", tag, 0, chip->repeat);
}
@@ -234,7 +230,7 @@ static SND_START( es8712 )
/* initialize the rest of the structure */
chip->signal = -2;
- es8712_state_save_register(chip, sndindex);
+ es8712_state_save_register(chip, tag);
/* success */
return chip;
diff --git a/src/emu/sound/fm.c b/src/emu/sound/fm.c
index baff332ba87..05f89aea7c0 100644
--- a/src/emu/sound/fm.c
+++ b/src/emu/sound/fm.c
@@ -1846,48 +1846,43 @@ INLINE void CSMKeyControll(UINT8 type, FM_CH *CH)
#ifdef __STATE_H__
/* FM channel save , internal state only */
-static void FMsave_state_channel(const char *name,int num,FM_CH *CH,int num_ch)
+static void FMsave_state_channel(const char *name,const char *tag,FM_CH *CH,int num_ch)
{
int slot , ch;
- char state_name[20];
- static const char slot_array[4] = { 1 , 3 , 2 , 4 };
for(ch=0;ch<num_ch;ch++,CH++)
{
/* channel */
- sprintf(state_name,"%s.CH%d",name,ch);
- state_save_register_item_array(state_name, num, CH->op1_out);
- state_save_register_item(state_name, num, CH->fc);
+ state_save_register_item_array(name, tag, ch, CH->op1_out);
+ state_save_register_item(name, tag, ch, CH->fc);
/* slots */
for(slot=0;slot<4;slot++)
{
FM_SLOT *SLOT = &CH->SLOT[slot];
-
- sprintf(state_name,"%s.CH%d.SLOT%d",name,ch,slot_array[slot]);
- state_save_register_item(state_name, num, SLOT->phase);
- state_save_register_item(state_name, num, SLOT->state);
- state_save_register_item(state_name, num, SLOT->volume);
+ state_save_register_item(name, tag, ch * 4 + slot, SLOT->phase);
+ state_save_register_item(name, tag, ch * 4 + slot, SLOT->state);
+ state_save_register_item(name, tag, ch * 4 + slot, SLOT->volume);
}
}
}
-static void FMsave_state_st(const char *state_name,int num,FM_ST *ST)
+static void FMsave_state_st(const char *state_name,const char *tag,FM_ST *ST)
{
#if FM_BUSY_FLAG_SUPPORT
- state_save_register_item(state_name, num, ST->busy_expiry_time.seconds );
- state_save_register_item(state_name, num, ST->busy_expiry_time.attoseconds );
+ state_save_register_item(state_name, tag, 0, ST->busy_expiry_time.seconds );
+ state_save_register_item(state_name, tag, 0, ST->busy_expiry_time.attoseconds );
#endif
- state_save_register_item(state_name, num, ST->address );
- state_save_register_item(state_name, num, ST->irq );
- state_save_register_item(state_name, num, ST->irqmask );
- state_save_register_item(state_name, num, ST->status );
- state_save_register_item(state_name, num, ST->mode );
- state_save_register_item(state_name, num, ST->prescaler_sel );
- state_save_register_item(state_name, num, ST->fn_h );
- state_save_register_item(state_name, num, ST->TA );
- state_save_register_item(state_name, num, ST->TAC );
- state_save_register_item(state_name, num, ST->TB );
- state_save_register_item(state_name, num, ST->TBC );
+ state_save_register_item(state_name, tag, 0, ST->address );
+ state_save_register_item(state_name, tag, 0, ST->irq );
+ state_save_register_item(state_name, tag, 0, ST->irqmask );
+ state_save_register_item(state_name, tag, 0, ST->status );
+ state_save_register_item(state_name, tag, 0, ST->mode );
+ state_save_register_item(state_name, tag, 0, ST->prescaler_sel );
+ state_save_register_item(state_name, tag, 0, ST->fn_h );
+ state_save_register_item(state_name, tag, 0, ST->TA );
+ state_save_register_item(state_name, tag, 0, ST->TAC );
+ state_save_register_item(state_name, tag, 0, ST->TB );
+ state_save_register_item(state_name, tag, 0, ST->TBC );
}
#endif /* _STATE_H */
@@ -2406,17 +2401,15 @@ void ym2203_postload(void *chip)
}
}
-static void YM2203_save_state(YM2203 *F2203, int index)
+static void YM2203_save_state(YM2203 *F2203, const char *tag)
{
- static const char statename[] = "YM2203";
-
- state_save_register_item_array(statename, index, F2203->REGS);
- FMsave_state_st(statename,index,&F2203->OPN.ST);
- FMsave_state_channel(statename,index,F2203->CH,3);
+ state_save_register_item_array("ym2203", tag, 0, F2203->REGS);
+ FMsave_state_st("ym2203",tag,&F2203->OPN.ST);
+ FMsave_state_channel("ym2203",tag,F2203->CH,3);
/* 3slots */
- state_save_register_item_array (statename, index, F2203->OPN.SL3.fc);
- state_save_register_item (statename, index, F2203->OPN.SL3.fn_h);
- state_save_register_item_array (statename, index, F2203->OPN.SL3.kcode);
+ state_save_register_item_array ("ym2203", tag, 0, F2203->OPN.SL3.fc);
+ state_save_register_item ("ym2203", tag, 0, F2203->OPN.SL3.fn_h);
+ state_save_register_item_array ("ym2203", tag, 0, F2203->OPN.SL3.kcode);
}
#endif /* _STATE_H */
@@ -2425,7 +2418,7 @@ static void YM2203_save_state(YM2203 *F2203, int index)
'clock' is the chip clock in Hz
'rate' is sampling rate
*/
-void * ym2203_init(void *param, int index, int clock, int rate,
+void * ym2203_init(void *param, const char *tag, int clock, int rate,
FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg)
{
YM2203 *F2203;
@@ -2454,7 +2447,7 @@ void * ym2203_init(void *param, int index, int clock, int rate,
ym2203_reset_chip(F2203);
#ifdef __STATE_H__
- YM2203_save_state(F2203, index);
+ YM2203_save_state(F2203, tag);
#endif
return F2203;
}
@@ -2819,22 +2812,19 @@ static void FM_ADPCMAWrite(YM2610 *F2610,int r,int v)
#ifdef __STATE_H__
/* FM channel save , internal state only */
-static void FMsave_state_adpcma(const char *name,int num,ADPCM_CH *adpcm)
+static void FMsave_state_adpcma(const char *name,const char *tag,ADPCM_CH *adpcm)
{
int ch;
- char state_name[20];
for(ch=0;ch<6;ch++,adpcm++)
{
- sprintf(state_name,"%s.CH%d",name,ch);
-
- state_save_register_item(state_name, num, adpcm->flag);
- state_save_register_item(state_name, num, adpcm->now_data);
- state_save_register_item(state_name, num, adpcm->now_addr);
- state_save_register_item(state_name, num, adpcm->now_step);
- state_save_register_item(state_name, num, adpcm->adpcm_acc);
- state_save_register_item(state_name, num, adpcm->adpcm_step);
- state_save_register_item(state_name, num, adpcm->adpcm_out);
+ state_save_register_item(name, tag, ch, adpcm->flag);
+ state_save_register_item(name, tag, ch, adpcm->now_data);
+ state_save_register_item(name, tag, ch, adpcm->now_addr);
+ state_save_register_item(name, tag, ch, adpcm->now_step);
+ state_save_register_item(name, tag, ch, adpcm->adpcm_acc);
+ state_save_register_item(name, tag, ch, adpcm->adpcm_step);
+ state_save_register_item(name, tag, ch, adpcm->adpcm_out);
}
}
#endif /* _STATE_H */
@@ -3621,23 +3611,21 @@ void ym2608_postload(void *chip)
}
}
-static void YM2608_save_state(YM2608 *F2608, int index)
+static void YM2608_save_state(YM2608 *F2608, const char *tag)
{
- static const char statename[] = "YM2608";
-
- state_save_register_item_array(statename, index, F2608->REGS);
- FMsave_state_st(statename,index,&F2608->OPN.ST);
- FMsave_state_channel(statename,index,F2608->CH,6);
+ state_save_register_item_array("ym2608", tag, 0, F2608->REGS);
+ FMsave_state_st("ym2608",tag,&F2608->OPN.ST);
+ FMsave_state_channel("ym2608",tag,F2608->CH,6);
/* 3slots */
- state_save_register_item_array(statename, index, F2608->OPN.SL3.fc);
- state_save_register_item(statename, index, F2608->OPN.SL3.fn_h);
- state_save_register_item_array(statename, index, F2608->OPN.SL3.kcode);
+ state_save_register_item_array("ym2608", tag, 0, F2608->OPN.SL3.fc);
+ state_save_register_item("ym2608", tag, 0, F2608->OPN.SL3.fn_h);
+ state_save_register_item_array("ym2608", tag, 0, F2608->OPN.SL3.kcode);
/* address register1 */
- state_save_register_item(statename, index, F2608->addr_A1);
+ state_save_register_item("ym2608", tag, 0, F2608->addr_A1);
/* rythm(ADPCMA) */
- FMsave_state_adpcma(statename,index,F2608->adpcm);
+ FMsave_state_adpcma("ym2608",tag,F2608->adpcm);
/* Delta-T ADPCM unit */
- YM_DELTAT_savestate(statename,index,&F2608->deltaT);
+ YM_DELTAT_savestate("ym2608",tag,&F2608->deltaT);
}
#endif /* _STATE_H */
@@ -3652,7 +3640,7 @@ static void YM2608_deltat_status_reset(void *chip, UINT8 changebits)
FM_STATUS_RESET(&(F2608->OPN.ST), changebits);
}
/* YM2608(OPNA) */
-void * ym2608_init(void *param, int index, int clock, int rate,
+void * ym2608_init(void *param, const char *tag, int clock, int rate,
void *pcmrom,int pcmsize,
FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg)
{
@@ -3704,7 +3692,7 @@ void * ym2608_init(void *param, int index, int clock, int rate,
Init_ADPCMATable();
#ifdef __STATE_H__
- YM2608_save_state(F2608, index);
+ YM2608_save_state(F2608, tag);
#endif
return F2608;
}
@@ -4306,25 +4294,23 @@ void ym2610_postload(void *chip)
}
}
-static void YM2610_save_state(YM2610 *F2610, int index)
+static void YM2610_save_state(YM2610 *F2610, const char *tag)
{
- static const char statename[] = "YM2610";
-
- state_save_register_item_array(statename, index, F2610->REGS);
- FMsave_state_st(statename,index,&F2610->OPN.ST);
- FMsave_state_channel(statename,index,F2610->CH,6);
+ state_save_register_item_array("ym2610", tag, 0, F2610->REGS);
+ FMsave_state_st("ym2610",tag,&F2610->OPN.ST);
+ FMsave_state_channel("ym2610",tag,F2610->CH,6);
/* 3slots */
- state_save_register_item_array(statename, index, F2610->OPN.SL3.fc);
- state_save_register_item(statename, index, F2610->OPN.SL3.fn_h);
- state_save_register_item_array(statename, index, F2610->OPN.SL3.kcode);
+ state_save_register_item_array("ym2610", tag, 0, F2610->OPN.SL3.fc);
+ state_save_register_item("ym2610", tag, 0, F2610->OPN.SL3.fn_h);
+ state_save_register_item_array("ym2610", tag, 0, F2610->OPN.SL3.kcode);
/* address register1 */
- state_save_register_item(statename, index, F2610->addr_A1);
+ state_save_register_item("ym2610", tag, 0, F2610->addr_A1);
- state_save_register_item(statename, index, F2610->adpcm_arrivedEndAddress);
+ state_save_register_item("ym2610", tag, 0, F2610->adpcm_arrivedEndAddress);
/* rythm(ADPCMA) */
- FMsave_state_adpcma(statename,index,F2610->adpcm);
+ FMsave_state_adpcma("ym2610",tag,F2610->adpcm);
/* Delta-T ADPCM unit */
- YM_DELTAT_savestate(statename,index,&F2610->deltaT);
+ YM_DELTAT_savestate("ym2610",tag,&F2610->deltaT);
}
#endif /* _STATE_H */
@@ -4339,7 +4325,7 @@ static void YM2610_deltat_status_reset(void *chip, UINT8 changebits)
F2610->adpcm_arrivedEndAddress &= (~changebits);
}
-void *ym2610_init(void *param, int index, int clock, int rate,
+void *ym2610_init(void *param, const char *tag, int clock, int rate,
void *pcmroma,int pcmsizea,void *pcmromb,int pcmsizeb,
FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg)
@@ -4384,7 +4370,7 @@ void *ym2610_init(void *param, int index, int clock, int rate,
Init_ADPCMATable();
#ifdef __STATE_H__
- YM2610_save_state(F2610, index);
+ YM2610_save_state(F2610, tag);
#endif
return F2610;
}
@@ -4791,24 +4777,22 @@ void ym2612_postload(void *chip)
}
}
-static void YM2612_save_state(YM2612 *F2612, int index)
+static void YM2612_save_state(YM2612 *F2612, const char *tag)
{
- static const char statename[] = "YM2612";
-
- state_save_register_item_array(statename, index, F2612->REGS);
- FMsave_state_st(statename,index,&F2612->OPN.ST);
- FMsave_state_channel(statename,index,F2612->CH,6);
+ state_save_register_item_array("ym2612", tag, 0, F2612->REGS);
+ FMsave_state_st("ym2612",tag,&F2612->OPN.ST);
+ FMsave_state_channel("ym2612",tag,F2612->CH,6);
/* 3slots */
- state_save_register_item_array(statename, index, F2612->OPN.SL3.fc);
- state_save_register_item(statename, index, F2612->OPN.SL3.fn_h);
- state_save_register_item_array(statename, index, F2612->OPN.SL3.kcode);
+ state_save_register_item_array("ym2612", tag, 0, F2612->OPN.SL3.fc);
+ state_save_register_item("ym2612", tag, 0, F2612->OPN.SL3.fn_h);
+ state_save_register_item_array("ym2612", tag, 0, F2612->OPN.SL3.kcode);
/* address register1 */
- state_save_register_item(statename, index, F2612->addr_A1);
+ state_save_register_item("ym2612", tag, 0, F2612->addr_A1);
}
#endif /* _STATE_H */
/* initialize YM2612 emulator(s) */
-void * ym2612_init(void *param, int index, int clock, int rate,
+void * ym2612_init(void *param, const char *tag, int clock, int rate,
FM_TIMERHANDLER timer_handler,FM_IRQHANDLER IRQHandler)
{
YM2612 *F2612;
@@ -4838,7 +4822,7 @@ void * ym2612_init(void *param, int index, int clock, int rate,
ym2612_reset_chip(F2612);
#ifdef __STATE_H__
- YM2612_save_state(F2612, index);
+ YM2612_save_state(F2612, tag);
#endif
return F2612;
}
diff --git a/src/emu/sound/fm.h b/src/emu/sound/fm.h
index 6e8650de0e1..2e30518315c 100644
--- a/src/emu/sound/fm.h
+++ b/src/emu/sound/fm.h
@@ -127,7 +127,7 @@ typedef void (*FM_IRQHANDLER)(void *param,int irq);
** 'IRQHandler' IRQ callback handler when changed IRQ level
** return 0 = success
*/
-void * ym2203_init(void *param, int index, int baseclock, int rate,
+void * ym2203_init(void *param, const char *tag, int baseclock, int rate,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg);
/*
@@ -170,7 +170,7 @@ void ym2203_postload(void *chip);
#if BUILD_YM2608
/* -------------------- YM2608(OPNA) Interface -------------------- */
-void * ym2608_init(void *param, int index, int baseclock, int rate,
+void * ym2608_init(void *param, const char *tag, int baseclock, int rate,
void *pcmroma,int pcmsizea,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg);
void ym2608_shutdown(void *chip);
@@ -185,7 +185,7 @@ void ym2608_postload(void *chip);
#if (BUILD_YM2610||BUILD_YM2610B)
/* -------------------- YM2610(OPNB) Interface -------------------- */
-void * ym2610_init(void *param, int index, int baseclock, int rate,
+void * ym2610_init(void *param, const char *tag, int baseclock, int rate,
void *pcmroma,int pcmasize,void *pcmromb,int pcmbsize,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler, const ssg_callbacks *ssg);
void ym2610_shutdown(void *chip);
@@ -203,7 +203,7 @@ void ym2610_postload(void *chip);
#endif /* (BUILD_YM2610||BUILD_YM2610B) */
#if (BUILD_YM2612||BUILD_YM3438)
-void * ym2612_init(void *param, int index, int baseclock, int rate,
+void * ym2612_init(void *param, const char *tag, int baseclock, int rate,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
void ym2612_shutdown(void *chip);
void ym2612_reset_chip(void *chip);
diff --git a/src/emu/sound/fmopl.c b/src/emu/sound/fmopl.c
index 2ab9ed18719..906e742df2f 100644
--- a/src/emu/sound/fmopl.c
+++ b/src/emu/sound/fmopl.c
@@ -1872,48 +1872,43 @@ static STATE_POSTLOAD( OPL_postload )
}
-static void OPLsave_state_channel(const char *name, int num, OPL_CH *CH)
+static void OPLsave_state_channel(const char *name, const char *tag, OPL_CH *CH)
{
int slot, ch;
- char state_name[20];
- static const char slot_array[2] = { 1, 2 };
for( ch=0 ; ch < 9 ; ch++, CH++ )
{
/* channel */
- sprintf(state_name, "%s.CH%d", name,ch);
- state_save_register_item(state_name, num, CH->block_fnum);
- state_save_register_item(state_name, num, CH->kcode);
+ state_save_register_item(name, tag, ch, CH->block_fnum);
+ state_save_register_item(name, tag, ch, CH->kcode);
/* slots */
for( slot=0 ; slot < 2 ; slot++ )
{
OPL_SLOT *SLOT = &CH->SLOT[slot];
- sprintf(state_name, "%s.CH%d.SLOT%d", name, ch, slot_array[slot]);
-
- state_save_register_item(state_name, num, SLOT->ar);
- state_save_register_item(state_name, num, SLOT->dr);
- state_save_register_item(state_name, num, SLOT->rr);
- state_save_register_item(state_name, num, SLOT->KSR);
- state_save_register_item(state_name, num, SLOT->ksl);
- state_save_register_item(state_name, num, SLOT->mul);
-
- state_save_register_item(state_name, num, SLOT->Cnt);
- state_save_register_item(state_name, num, SLOT->FB);
- state_save_register_item_array(state_name, num, SLOT->op1_out);
- state_save_register_item(state_name, num, SLOT->CON);
-
- state_save_register_item(state_name, num, SLOT->eg_type);
- state_save_register_item(state_name, num, SLOT->state);
- state_save_register_item(state_name, num, SLOT->TL);
- state_save_register_item(state_name, num, SLOT->volume);
- state_save_register_item(state_name, num, SLOT->sl);
- state_save_register_item(state_name, num, SLOT->key);
-
- state_save_register_item(state_name, num, SLOT->AMmask);
- state_save_register_item(state_name, num, SLOT->vib);
-
- state_save_register_item(state_name, num, SLOT->wavetable);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->ar);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->dr);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->rr);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->KSR);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->ksl);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->mul);
+
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->Cnt);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->FB);
+ state_save_register_item_array(name, tag, ch * 2 + slot, SLOT->op1_out);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->CON);
+
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->eg_type);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->state);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->TL);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->volume);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->sl);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->key);
+
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->AMmask);
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->vib);
+
+ state_save_register_item(name, tag, ch * 2 + slot, SLOT->wavetable);
}
}
}
@@ -1921,48 +1916,48 @@ static void OPLsave_state_channel(const char *name, int num, OPL_CH *CH)
/* Register savestate for a virtual YM3812/YM3526Y8950 */
-static void OPL_save_state(FM_OPL *OPL, const char *statename, int index)
+static void OPL_save_state(FM_OPL *OPL, const char *statename, const char *tag)
{
- OPLsave_state_channel(statename, index, OPL->P_CH);
+ OPLsave_state_channel(statename, tag, OPL->P_CH);
- state_save_register_item(statename, index, OPL->eg_cnt);
- state_save_register_item(statename, index, OPL->eg_timer);
+ state_save_register_item(statename, tag, 0, OPL->eg_cnt);
+ state_save_register_item(statename, tag, 0, OPL->eg_timer);
- state_save_register_item(statename, index, OPL->rhythm);
+ state_save_register_item(statename, tag, 0, OPL->rhythm);
- state_save_register_item(statename, index, OPL->lfo_am_depth);
- state_save_register_item(statename, index, OPL->lfo_pm_depth_range);
- state_save_register_item(statename, index, OPL->lfo_am_cnt);
- state_save_register_item(statename, index, OPL->lfo_pm_cnt);
+ state_save_register_item(statename, tag, 0, OPL->lfo_am_depth);
+ state_save_register_item(statename, tag, 0, OPL->lfo_pm_depth_range);
+ state_save_register_item(statename, tag, 0, OPL->lfo_am_cnt);
+ state_save_register_item(statename, tag, 0, OPL->lfo_pm_cnt);
- state_save_register_item(statename, index, OPL->noise_rng);
- state_save_register_item(statename, index, OPL->noise_p);
+ state_save_register_item(statename, tag, 0, OPL->noise_rng);
+ state_save_register_item(statename, tag, 0, OPL->noise_p);
if( OPL->type & OPL_TYPE_WAVESEL )
{
- state_save_register_item(statename, index, OPL->wavesel);
+ state_save_register_item(statename, tag, 0, OPL->wavesel);
}
- state_save_register_item_array(statename, index, OPL->T);
- state_save_register_item_array(statename, index, OPL->st);
+ state_save_register_item_array(statename, tag, 0, OPL->T);
+ state_save_register_item_array(statename, tag, 0, OPL->st);
#if BUILD_Y8950
if ( (OPL->type & OPL_TYPE_ADPCM) && (OPL->deltat) )
{
- YM_DELTAT_savestate(statename, index, OPL->deltat);
+ YM_DELTAT_savestate(statename, tag, OPL->deltat);
}
if ( OPL->type & OPL_TYPE_IO )
{
- state_save_register_item(statename, index, OPL->portDirection);
- state_save_register_item(statename, index, OPL->portLatch);
+ state_save_register_item(statename, tag, 0, OPL->portDirection);
+ state_save_register_item(statename, tag, 0, OPL->portLatch);
}
#endif
- state_save_register_item(statename, index, OPL->address);
- state_save_register_item(statename, index, OPL->status);
- state_save_register_item(statename, index, OPL->statusmask);
- state_save_register_item(statename, index, OPL->mode);
+ state_save_register_item(statename, tag, 0, OPL->address);
+ state_save_register_item(statename, tag, 0, OPL->status);
+ state_save_register_item(statename, tag, 0, OPL->statusmask);
+ state_save_register_item(statename, tag, 0, OPL->mode);
state_save_register_postload(Machine, OPL_postload, OPL);
}
@@ -2164,13 +2159,13 @@ static int OPLTimerOver(FM_OPL *OPL,int c)
#if (BUILD_YM3812)
-void * ym3812_init(int sndindex, UINT32 clock, UINT32 rate)
+void * ym3812_init(const char *tag, UINT32 clock, UINT32 rate)
{
/* emulator create */
FM_OPL *YM3812 = OPLCreate(OPL_TYPE_YM3812,clock,rate);
if (YM3812)
{
- OPL_save_state(YM3812, "YM3812", sndindex);
+ OPL_save_state(YM3812, "YM3812", tag);
ym3812_reset_chip(YM3812);
}
return YM3812;
@@ -2300,13 +2295,13 @@ void ym3812_update_one(void *chip, OPLSAMPLE *buffer, int length)
#if (BUILD_YM3526)
-void *ym3526_init(int sndindex, UINT32 clock, UINT32 rate)
+void *ym3526_init(const char *tag, UINT32 clock, UINT32 rate)
{
/* emulator create */
FM_OPL *YM3526 = OPLCreate(OPL_TYPE_YM3526,clock,rate);
if (YM3526)
{
- OPL_save_state(YM3526, "YM3526", sndindex);
+ OPL_save_state(YM3526, "YM3526", tag);
ym3526_reset_chip(YM3526);
}
return YM3526;
@@ -2447,7 +2442,7 @@ static void Y8950_deltat_status_reset(void *chip, UINT8 changebits)
OPL_STATUS_RESET(Y8950, changebits);
}
-void *y8950_init(int sndindex, UINT32 clock, UINT32 rate)
+void *y8950_init(const char *tag, UINT32 clock, UINT32 rate)
{
/* emulator create */
FM_OPL *Y8950 = OPLCreate(OPL_TYPE_Y8950,clock,rate);
@@ -2462,7 +2457,7 @@ void *y8950_init(int sndindex, UINT32 clock, UINT32 rate)
/*Y8950->deltat->write_time = 10.0 / clock;*/ /* a single byte write takes 10 cycles of main clock */
/*Y8950->deltat->read_time = 8.0 / clock;*/ /* a single byte read takes 8 cycles of main clock */
/* reset */
- OPL_save_state(Y8950, "Y8950", sndindex);
+ OPL_save_state(Y8950, "Y8950", tag);
y8950_reset_chip(Y8950);
}
diff --git a/src/emu/sound/fmopl.h b/src/emu/sound/fmopl.h
index 9ba0f56cdb5..777ecb7ecaf 100644
--- a/src/emu/sound/fmopl.h
+++ b/src/emu/sound/fmopl.h
@@ -41,7 +41,7 @@ typedef unsigned char (*OPL_PORTHANDLER_R)(void *param);
#if BUILD_YM3812
-void *ym3812_init(int sndindex, UINT32 clock, UINT32 rate);
+void *ym3812_init(const char *tag, UINT32 clock, UINT32 rate);
void ym3812_shutdown(void *chip);
void ym3812_reset_chip(void *chip);
int ym3812_write(void *chip, int a, int v);
@@ -65,7 +65,7 @@ void ym3812_set_update_handler(void *chip, OPL_UPDATEHANDLER UpdateHandler, void
** 'clock' is the chip clock in Hz
** 'rate' is sampling rate
*/
-void *ym3526_init(int sndindex, UINT32 clock, UINT32 rate);
+void *ym3526_init(const char *tag, UINT32 clock, UINT32 rate);
/* shutdown the YM3526 emulators*/
void ym3526_shutdown(void *chip);
void ym3526_reset_chip(void *chip);
@@ -95,7 +95,7 @@ void y8950_set_port_handler(void *chip, OPL_PORTHANDLER_W PortHandler_w, OPL_POR
void y8950_set_keyboard_handler(void *chip, OPL_PORTHANDLER_W KeyboardHandler_w, OPL_PORTHANDLER_R KeyboardHandler_r, void *param);
void y8950_set_delta_t_memory(void *chip, void * deltat_mem_ptr, int deltat_mem_size );
-void * y8950_init(int sndindex, UINT32 clock, UINT32 rate);
+void * y8950_init(const char *tag, UINT32 clock, UINT32 rate);
void y8950_shutdown(void *chip);
void y8950_reset_chip(void *chip);
int y8950_write(void *chip, int a, int v);
diff --git a/src/emu/sound/hc55516.c b/src/emu/sound/hc55516.c
index 0066a5810fe..e27106806b2 100644
--- a/src/emu/sound/hc55516.c
+++ b/src/emu/sound/hc55516.c
@@ -52,7 +52,7 @@ static void hc55516_update(void *param, stream_sample_t **inputs, stream_sample_
-static void *start_common(int sndindex, int clock, const void *config,
+static void *start_common(const char *tag, int clock, const void *config,
UINT8 _shiftreg_mask, int _active_clock_hi)
{
struct hc55516_data *chip;
@@ -74,15 +74,15 @@ static void *start_common(int sndindex, int clock, const void *config,
/* create the stream */
chip->channel = stream_create(0, 1, SAMPLE_RATE, chip, hc55516_update);
- state_save_register_item("hc55516", sndindex, chip->last_clock_state);
- state_save_register_item("hc55516", sndindex, chip->digit);
- state_save_register_item("hc55516", sndindex, chip->new_digit);
- state_save_register_item("hc55516", sndindex, chip->shiftreg);
- state_save_register_item("hc55516", sndindex, chip->curr_sample);
- state_save_register_item("hc55516", sndindex, chip->next_sample);
- state_save_register_item("hc55516", sndindex, chip->update_count);
- state_save_register_item("hc55516", sndindex, chip->filter);
- state_save_register_item("hc55516", sndindex, chip->integrator);
+ state_save_register_item("hc55516", tag, 0, chip->last_clock_state);
+ state_save_register_item("hc55516", tag, 0, chip->digit);
+ state_save_register_item("hc55516", tag, 0, chip->new_digit);
+ state_save_register_item("hc55516", tag, 0, chip->shiftreg);
+ state_save_register_item("hc55516", tag, 0, chip->curr_sample);
+ state_save_register_item("hc55516", tag, 0, chip->next_sample);
+ state_save_register_item("hc55516", tag, 0, chip->update_count);
+ state_save_register_item("hc55516", tag, 0, chip->filter);
+ state_save_register_item("hc55516", tag, 0, chip->integrator);
/* success */
return chip;
@@ -91,19 +91,19 @@ static void *start_common(int sndindex, int clock, const void *config,
static SND_START( hc55516 )
{
- return start_common(sndindex, clock, config, 0x07, TRUE);
+ return start_common(tag, clock, config, 0x07, TRUE);
}
static SND_START( mc3417 )
{
- return start_common(sndindex, clock, config, 0x07, FALSE);
+ return start_common(tag, clock, config, 0x07, FALSE);
}
static SND_START( mc3418 )
{
- return start_common(sndindex, clock, config, 0x0f, FALSE);
+ return start_common(tag, clock, config, 0x0f, FALSE);
}
diff --git a/src/emu/sound/iremga20.c b/src/emu/sound/iremga20.c
index 74ff17967e8..6a9fd9cd55c 100644
--- a/src/emu/sound/iremga20.c
+++ b/src/emu/sound/iremga20.c
@@ -245,20 +245,18 @@ static SND_START( iremga20 )
chip->stream = stream_create( 0, 2, clock/4, chip, IremGA20_update );
- state_save_register_item_array("irem_ga20", sndindex, chip->regs);
+ state_save_register_item_array("irem_ga20", tag, sndindex, chip->regs);
for (i = 0; i < 4; i++)
{
- char buf[20];
- sprintf(buf, "irem_ga20.ch%d", i);
- state_save_register_item(buf, sndindex, chip->channel[i].rate);
- state_save_register_item(buf, sndindex, chip->channel[i].size);
- state_save_register_item(buf, sndindex, chip->channel[i].start);
- state_save_register_item(buf, sndindex, chip->channel[i].pos);
- state_save_register_item(buf, sndindex, chip->channel[i].end);
- state_save_register_item(buf, sndindex, chip->channel[i].volume);
- state_save_register_item(buf, sndindex, chip->channel[i].pan);
- state_save_register_item(buf, sndindex, chip->channel[i].effect);
- state_save_register_item(buf, sndindex, chip->channel[i].play);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].rate);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].size);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].start);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].pos);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].end);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].volume);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].pan);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].effect);
+ state_save_register_item("irem_ga20", tag, i, chip->channel[i].play);
}
return chip;
diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c
index 0846087baf4..4660ded5997 100644
--- a/src/emu/sound/k054539.c
+++ b/src/emu/sound/k054539.c
@@ -464,9 +464,9 @@ static void k054539_init_chip(const char *tag, struct k054539_info *info, int cl
info->stream = stream_create(0, 2, clock, info, k054539_update);
- state_save_register_item_array("K054539", sndindex, info->regs);
- state_save_register_item_pointer("K054539", sndindex, info->ram, 0x4000);
- state_save_register_item("K054539", sndindex, info->cur_ptr);
+ state_save_register_item_array("K054539", tag, 0, info->regs);
+ state_save_register_item_pointer("K054539", tag, 0, info->ram, 0x4000);
+ state_save_register_item("K054539", tag, 0, info->cur_ptr);
}
static void k054539_w(int chip, offs_t offset, UINT8 data) //*
diff --git a/src/emu/sound/msm5205.c b/src/emu/sound/msm5205.c
index f1473b6923b..3a13e468d71 100644
--- a/src/emu/sound/msm5205.c
+++ b/src/emu/sound/msm5205.c
@@ -189,14 +189,14 @@ static SND_START( msm5205 )
SND_RESET_NAME( msm5205 )(voice);
/* register for save states */
- state_save_register_item("msm5205", sndindex, voice->clock);
- state_save_register_item("msm5205", sndindex, voice->data);
- state_save_register_item("msm5205", sndindex, voice->vclk);
- state_save_register_item("msm5205", sndindex, voice->reset);
- state_save_register_item("msm5205", sndindex, voice->prescaler);
- state_save_register_item("msm5205", sndindex, voice->bitwidth);
- state_save_register_item("msm5205", sndindex, voice->signal);
- state_save_register_item("msm5205", sndindex, voice->step);
+ state_save_register_item("msm5205", tag, 0, voice->clock);
+ state_save_register_item("msm5205", tag, 0, voice->data);
+ state_save_register_item("msm5205", tag, 0, voice->vclk);
+ state_save_register_item("msm5205", tag, 0, voice->reset);
+ state_save_register_item("msm5205", tag, 0, voice->prescaler);
+ state_save_register_item("msm5205", tag, 0, voice->bitwidth);
+ state_save_register_item("msm5205", tag, 0, voice->signal);
+ state_save_register_item("msm5205", tag, 0, voice->step);
/* success */
return voice;
diff --git a/src/emu/sound/multipcm.c b/src/emu/sound/multipcm.c
index f45626c237d..de63b07d1ce 100644
--- a/src/emu/sound/multipcm.c
+++ b/src/emu/sound/multipcm.c
@@ -491,7 +491,6 @@ static SND_START( multipcm )
{
struct _MultiPCM *ptChip;
int i;
- char mname[20];
ptChip=(struct _MultiPCM *)auto_malloc(sizeof(struct _MultiPCM));
@@ -601,44 +600,39 @@ static SND_START( multipcm )
ptChip->Samples[i].AM=ptSample[11];
}
- sprintf(mname, "MultiPCM %d", sndindex);
- state_save_register_item(mname, sndindex, ptChip->CurSlot);
- state_save_register_item(mname, sndindex, ptChip->Address);
- state_save_register_item(mname, sndindex, ptChip->BankL);
- state_save_register_item(mname, sndindex, ptChip->BankR);
+ state_save_register_item("multipcm", tag, 0, ptChip->CurSlot);
+ state_save_register_item("multipcm", tag, 0, ptChip->Address);
+ state_save_register_item("multipcm", tag, 0, ptChip->BankL);
+ state_save_register_item("multipcm", tag, 0, ptChip->BankR);
for(i=0;i<28;++i)
{
- char mname2[20];
-
ptChip->Slots[i].Num=i;
ptChip->Slots[i].Playing=0;
- sprintf(mname2, "MultiPCM %d v %d", sndindex, i);
-
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].Num);
- state_save_register_item_array(mname2, sndindex, ptChip->Slots[i].Regs);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].Playing);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].Base);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].offset);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].step);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].Pan);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].TL);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].DstTL);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].TLStep);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].Prev);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.volume);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.state);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.step);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.AR);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.D1R);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.D2R);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.RR);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].EG.DL);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].PLFO.phase);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].PLFO.phase_step);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].ALFO.phase);
- state_save_register_item(mname2, sndindex, ptChip->Slots[i].ALFO.phase_step);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].Num);
+ state_save_register_item_array("multipcm", tag, i, ptChip->Slots[i].Regs);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].Playing);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].Base);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].offset);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].step);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].Pan);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].TL);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].DstTL);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].TLStep);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].Prev);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.volume);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.state);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.step);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.AR);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.D1R);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.D2R);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.RR);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].EG.DL);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].PLFO.phase);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].PLFO.phase_step);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].ALFO.phase);
+ state_save_register_item("multipcm", tag, i, ptChip->Slots[i].ALFO.phase_step);
}
LFO_Init();
diff --git a/src/emu/sound/namco.c b/src/emu/sound/namco.c
index 4c7ae4d164c..166fa0305d7 100644
--- a/src/emu/sound/namco.c
+++ b/src/emu/sound/namco.c
@@ -396,15 +396,15 @@ static SND_START( namco )
chip->sound_enable = 1;
/* register with the save state system */
- state_save_register_item("namco", sndindex, chip->num_voices);
- state_save_register_item("namco", sndindex, chip->sound_enable);
- state_save_register_item_pointer("namco", sndindex, chip->waveform[0],
+ state_save_register_item("namco", tag, 0, chip->num_voices);
+ state_save_register_item("namco", tag, 0, chip->sound_enable);
+ state_save_register_item_pointer("namco", tag, 0, chip->waveform[0],
MAX_VOLUME * 32 * 8 * (1+chip->wave_size));
/* reset all the voices */
for (voice = chip->channel_list; voice < chip->last_channel; voice++)
{
- int state_index = sndindex * MAX_VOICES + (voice - chip->channel_list);
+ int voicenum = voice - chip->channel_list;
voice->frequency = 0;
voice->volume[0] = voice->volume[1] = 0;
@@ -417,15 +417,15 @@ static SND_START( namco )
voice->noise_hold = 0;
/* register with the save state system */
- state_save_register_item("namco", state_index, voice->frequency);
- state_save_register_item("namco", state_index, voice->counter);
- state_save_register_item_array("namco", state_index, voice->volume);
- state_save_register_item("namco", state_index, voice->noise_sw);
- state_save_register_item("namco", state_index, voice->noise_state);
- state_save_register_item("namco", state_index, voice->noise_seed);
- state_save_register_item("namco", state_index, voice->noise_hold);
- state_save_register_item("namco", state_index, voice->noise_counter);
- state_save_register_item("namco", state_index, voice->waveform_select);
+ state_save_register_item("namco", tag, voicenum, voice->frequency);
+ state_save_register_item("namco", tag, voicenum, voice->counter);
+ state_save_register_item_array("namco", tag, voicenum, voice->volume);
+ state_save_register_item("namco", tag, voicenum, voice->noise_sw);
+ state_save_register_item("namco", tag, voicenum, voice->noise_state);
+ state_save_register_item("namco", tag, voicenum, voice->noise_seed);
+ state_save_register_item("namco", tag, voicenum, voice->noise_hold);
+ state_save_register_item("namco", tag, voicenum, voice->noise_counter);
+ state_save_register_item("namco", tag, voicenum, voice->waveform_select);
}
return chip;
diff --git a/src/emu/sound/namco52.c b/src/emu/sound/namco52.c
index fb1229148ab..777c257ce2c 100644
--- a/src/emu/sound/namco52.c
+++ b/src/emu/sound/namco52.c
@@ -159,12 +159,12 @@ static SND_START( namco_52xx )
SND_RESET_NAME( namco_52xx )(chip);
- state_save_register_item("namco52xx", sndindex, chip->n52_pb_cycle);
- state_save_register_item("namco52xx", sndindex, chip->n52_step);
- state_save_register_item("namco52xx", sndindex, chip->n52_start);
- state_save_register_item("namco52xx", sndindex, chip->n52_end);
- state_save_register_item("namco52xx", sndindex, chip->n52_length);
- state_save_register_item("namco52xx", sndindex, chip->n52_pos);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_pb_cycle);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_step);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_start);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_end);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_length);
+ state_save_register_item("namco52xx", tag, 0, chip->n52_pos);
return chip;
}
diff --git a/src/emu/sound/nes_apu.c b/src/emu/sound/nes_apu.c
index f2b5fe87084..27faf585219 100644
--- a/src/emu/sound/nes_apu.c
+++ b/src/emu/sound/nes_apu.c
@@ -701,56 +701,56 @@ static SND_START( nesapu )
/* register for save */
for (i = 0; i < 2; i++)
{
- state_save_register_item_array("apu", sndindex + i * 100, info->APU.squ[i].regs);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].vbl_length);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].freq);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].phaseacc);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].output_vol);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].env_phase);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].sweep_phase);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].adder);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].env_vol);
- state_save_register_item("apu", sndindex + i * 100, info->APU.squ[i].enabled);
+ state_save_register_item_array("apu", tag, i, info->APU.squ[i].regs);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].vbl_length);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].freq);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].phaseacc);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].output_vol);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].env_phase);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].sweep_phase);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].adder);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].env_vol);
+ state_save_register_item("apu", tag, i, info->APU.squ[i].enabled);
}
- state_save_register_item_array("apu", sndindex, info->APU.tri.regs);
- state_save_register_item("apu", sndindex, info->APU.tri.linear_length);
- state_save_register_item("apu", sndindex, info->APU.tri.vbl_length);
- state_save_register_item("apu", sndindex, info->APU.tri.write_latency);
- state_save_register_item("apu", sndindex, info->APU.tri.phaseacc);
- state_save_register_item("apu", sndindex, info->APU.tri.output_vol);
- state_save_register_item("apu", sndindex, info->APU.tri.adder);
- state_save_register_item("apu", sndindex, info->APU.tri.counter_started);
- state_save_register_item("apu", sndindex, info->APU.tri.enabled);
-
- state_save_register_item_array("apu", sndindex, info->APU.noi.regs);
- state_save_register_item("apu", sndindex, info->APU.noi.cur_pos);
- state_save_register_item("apu", sndindex, info->APU.noi.vbl_length);
- state_save_register_item("apu", sndindex, info->APU.noi.phaseacc);
- state_save_register_item("apu", sndindex, info->APU.noi.output_vol);
- state_save_register_item("apu", sndindex, info->APU.noi.env_phase);
- state_save_register_item("apu", sndindex, info->APU.noi.env_vol);
- state_save_register_item("apu", sndindex, info->APU.noi.enabled);
-
- state_save_register_item_array("apu", sndindex, info->APU.dpcm.regs);
- state_save_register_item("apu", sndindex, info->APU.dpcm.address);
- state_save_register_item("apu", sndindex, info->APU.dpcm.length);
- state_save_register_item("apu", sndindex, info->APU.dpcm.bits_left);
- state_save_register_item("apu", sndindex, info->APU.dpcm.phaseacc);
- state_save_register_item("apu", sndindex, info->APU.dpcm.output_vol);
- state_save_register_item("apu", sndindex, info->APU.dpcm.cur_byte);
- state_save_register_item("apu", sndindex, info->APU.dpcm.enabled);
- state_save_register_item("apu", sndindex, info->APU.dpcm.irq_occurred);
- state_save_register_item("apu", sndindex, info->APU.dpcm.vol);
-
- state_save_register_item_array("apu", sndindex, info->APU.regs);
+ state_save_register_item_array("apu", tag, 0, info->APU.tri.regs);
+ state_save_register_item("apu", tag, 0, info->APU.tri.linear_length);
+ state_save_register_item("apu", tag, 0, info->APU.tri.vbl_length);
+ state_save_register_item("apu", tag, 0, info->APU.tri.write_latency);
+ state_save_register_item("apu", tag, 0, info->APU.tri.phaseacc);
+ state_save_register_item("apu", tag, 0, info->APU.tri.output_vol);
+ state_save_register_item("apu", tag, 0, info->APU.tri.adder);
+ state_save_register_item("apu", tag, 0, info->APU.tri.counter_started);
+ state_save_register_item("apu", tag, 0, info->APU.tri.enabled);
+
+ state_save_register_item_array("apu", tag, 0, info->APU.noi.regs);
+ state_save_register_item("apu", tag, 0, info->APU.noi.cur_pos);
+ state_save_register_item("apu", tag, 0, info->APU.noi.vbl_length);
+ state_save_register_item("apu", tag, 0, info->APU.noi.phaseacc);
+ state_save_register_item("apu", tag, 0, info->APU.noi.output_vol);
+ state_save_register_item("apu", tag, 0, info->APU.noi.env_phase);
+ state_save_register_item("apu", tag, 0, info->APU.noi.env_vol);
+ state_save_register_item("apu", tag, 0, info->APU.noi.enabled);
+
+ state_save_register_item_array("apu", tag, 0, info->APU.dpcm.regs);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.address);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.length);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.bits_left);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.phaseacc);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.output_vol);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.cur_byte);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.enabled);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.irq_occurred);
+ state_save_register_item("apu", tag, 0, info->APU.dpcm.vol);
+
+ state_save_register_item_array("apu", tag, 0, info->APU.regs);
#ifdef USE_QUEUE
- state_save_register_item_array("apu", sndindex, info->APU.queue);
- state_save_register_item("apu", sndindex, info->APU.head);
- state_save_register_item("apu", sndindex, info->APU.tail);
+ state_save_register_item_array("apu", tag, 0, info->APU.queue);
+ state_save_register_item("apu", tag, 0, info->APU.head);
+ state_save_register_item("apu", tag, 0, info->APU.tail);
#else
- state_save_register_item("apu", sndindex, info->APU.buf_pos);
+ state_save_register_item("apu", tag, 0, info->APU.buf_pos);
#endif
return info;
diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c
index c1dab587bbf..77798e0c2c1 100644
--- a/src/emu/sound/okim6295.c
+++ b/src/emu/sound/okim6295.c
@@ -280,32 +280,25 @@ static void okim6295_update(void *param, stream_sample_t **inputs, stream_sample
***********************************************************************************************/
-static void adpcm_state_save_register(struct ADPCMVoice *voice, int i)
+static void adpcm_state_save_register(struct ADPCMVoice *voice, const char *tag, int index)
{
- char buf[20];
-
- sprintf(buf,"ADPCM");
-
- state_save_register_item(buf, i, voice->playing);
- state_save_register_item(buf, i, voice->sample);
- state_save_register_item(buf, i, voice->count);
- state_save_register_item(buf, i, voice->adpcm.signal);
- state_save_register_item(buf, i, voice->adpcm.step);
- state_save_register_item(buf, i, voice->volume);
- state_save_register_item(buf, i, voice->base_offset);
+ state_save_register_item("okim6295", tag, index, voice->playing);
+ state_save_register_item("okim6295", tag, index, voice->sample);
+ state_save_register_item("okim6295", tag, index, voice->count);
+ state_save_register_item("okim6295", tag, index, voice->adpcm.signal);
+ state_save_register_item("okim6295", tag, index, voice->adpcm.step);
+ state_save_register_item("okim6295", tag, index, voice->volume);
+ state_save_register_item("okim6295", tag, index, voice->base_offset);
}
-static void okim6295_state_save_register(struct okim6295 *info, int sndindex)
+static void okim6295_state_save_register(struct okim6295 *info, const char *tag)
{
int j;
- char buf[20];
-
- sprintf(buf,"OKIM6295");
- state_save_register_item(buf, sndindex, info->command);
- state_save_register_item(buf, sndindex, info->bank_offset);
+ state_save_register_item("okim6295", tag, 0, info->command);
+ state_save_register_item("okim6295", tag, 0, info->bank_offset);
for (j = 0; j < OKIM6295_VOICES; j++)
- adpcm_state_save_register(&info->voice[j], sndindex * 4 + j);
+ adpcm_state_save_register(&info->voice[j], tag, j);
}
@@ -345,7 +338,7 @@ static SND_START( okim6295 )
reset_adpcm(&info->voice[voice].adpcm);
}
- okim6295_state_save_register(info, sndindex);
+ okim6295_state_save_register(info, tag);
/* success */
return info;
diff --git a/src/emu/sound/pokey.c b/src/emu/sound/pokey.c
index 3f95a3bd078..68b2ab3d408 100644
--- a/src/emu/sound/pokey.c
+++ b/src/emu/sound/pokey.c
@@ -566,43 +566,43 @@ static void rand_init(UINT8 *rng, int size, int left, int right, int add)
}
-static void register_for_save(struct POKEYregisters *chip, int index)
+static void register_for_save(struct POKEYregisters *chip, const char *tag)
{
- state_save_register_item_array("pokey", index, chip->counter);
- state_save_register_item_array("pokey", index, chip->divisor);
- state_save_register_item_array("pokey", index, chip->volume);
- state_save_register_item_array("pokey", index, chip->output);
- state_save_register_item_array("pokey", index, chip->audible);
- state_save_register_item("pokey", index, chip->samplepos_fract);
- state_save_register_item("pokey", index, chip->samplepos_whole);
- state_save_register_item("pokey", index, chip->polyadjust);
- state_save_register_item("pokey", index, chip->p4);
- state_save_register_item("pokey", index, chip->p5);
- state_save_register_item("pokey", index, chip->p9);
- state_save_register_item("pokey", index, chip->p17);
- state_save_register_item("pokey", index, chip->r9);
- state_save_register_item("pokey", index, chip->r17);
- state_save_register_item("pokey", index, chip->clockmult);
- state_save_register_item("pokey", index, chip->timer_period[0].seconds);
- state_save_register_item("pokey", index, chip->timer_period[0].attoseconds);
- state_save_register_item("pokey", index, chip->timer_period[1].seconds);
- state_save_register_item("pokey", index, chip->timer_period[1].attoseconds);
- state_save_register_item("pokey", index, chip->timer_period[2].seconds);
- state_save_register_item("pokey", index, chip->timer_period[2].attoseconds);
- state_save_register_item_array("pokey", index, chip->timer_param);
- state_save_register_item_array("pokey", index, chip->AUDF);
- state_save_register_item_array("pokey", index, chip->AUDC);
- state_save_register_item_array("pokey", index, chip->POTx);
- state_save_register_item("pokey", index, chip->AUDCTL);
- state_save_register_item("pokey", index, chip->ALLPOT);
- state_save_register_item("pokey", index, chip->KBCODE);
- state_save_register_item("pokey", index, chip->RANDOM);
- state_save_register_item("pokey", index, chip->SERIN);
- state_save_register_item("pokey", index, chip->SEROUT);
- state_save_register_item("pokey", index, chip->IRQST);
- state_save_register_item("pokey", index, chip->IRQEN);
- state_save_register_item("pokey", index, chip->SKSTAT);
- state_save_register_item("pokey", index, chip->SKCTL);
+ state_save_register_item_array("pokey", tag, 0, chip->counter);
+ state_save_register_item_array("pokey", tag, 0, chip->divisor);
+ state_save_register_item_array("pokey", tag, 0, chip->volume);
+ state_save_register_item_array("pokey", tag, 0, chip->output);
+ state_save_register_item_array("pokey", tag, 0, chip->audible);
+ state_save_register_item("pokey", tag, 0, chip->samplepos_fract);
+ state_save_register_item("pokey", tag, 0, chip->samplepos_whole);
+ state_save_register_item("pokey", tag, 0, chip->polyadjust);
+ state_save_register_item("pokey", tag, 0, chip->p4);
+ state_save_register_item("pokey", tag, 0, chip->p5);
+ state_save_register_item("pokey", tag, 0, chip->p9);
+ state_save_register_item("pokey", tag, 0, chip->p17);
+ state_save_register_item("pokey", tag, 0, chip->r9);
+ state_save_register_item("pokey", tag, 0, chip->r17);
+ state_save_register_item("pokey", tag, 0, chip->clockmult);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[0].seconds);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[0].attoseconds);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[1].seconds);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[1].attoseconds);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[2].seconds);
+ state_save_register_item("pokey", tag, 0, chip->timer_period[2].attoseconds);
+ state_save_register_item_array("pokey", tag, 0, chip->timer_param);
+ state_save_register_item_array("pokey", tag, 0, chip->AUDF);
+ state_save_register_item_array("pokey", tag, 0, chip->AUDC);
+ state_save_register_item_array("pokey", tag, 0, chip->POTx);
+ state_save_register_item("pokey", tag, 0, chip->AUDCTL);
+ state_save_register_item("pokey", tag, 0, chip->ALLPOT);
+ state_save_register_item("pokey", tag, 0, chip->KBCODE);
+ state_save_register_item("pokey", tag, 0, chip->RANDOM);
+ state_save_register_item("pokey", tag, 0, chip->SERIN);
+ state_save_register_item("pokey", tag, 0, chip->SEROUT);
+ state_save_register_item("pokey", tag, 0, chip->IRQST);
+ state_save_register_item("pokey", tag, 0, chip->IRQEN);
+ state_save_register_item("pokey", tag, 0, chip->SKSTAT);
+ state_save_register_item("pokey", tag, 0, chip->SKCTL);
}
@@ -666,7 +666,7 @@ static SND_START( pokey )
chip->channel = stream_create(0, 1, sample_rate, chip, pokey_update);
- register_for_save(chip, sndindex);
+ register_for_save(chip, tag);
return chip;
}
diff --git a/src/emu/sound/psx.c b/src/emu/sound/psx.c
index 6f061d348cb..94a68ad2573 100644
--- a/src/emu/sound/psx.c
+++ b/src/emu/sound/psx.c
@@ -308,43 +308,43 @@ static SND_START( psxspu )
chip->m_p_n_spuram = auto_malloc( SPU_RAM_SIZE );
- state_save_register_item( "psx", sndindex, chip->m_n_mainvolumeleft );
- state_save_register_item( "psx", sndindex, chip->m_n_mainvolumeright );
- state_save_register_item( "psx", sndindex, chip->m_n_reverberationdepthleft );
- state_save_register_item( "psx", sndindex, chip->m_n_reverberationdepthright );
- state_save_register_item( "psx", sndindex, chip->m_n_voiceon );
- state_save_register_item( "psx", sndindex, chip->m_n_voiceoff );
- state_save_register_item( "psx", sndindex, chip->m_n_modulationmode );
- state_save_register_item( "psx", sndindex, chip->m_n_noisemode );
- state_save_register_item( "psx", sndindex, chip->m_n_reverbmode );
- state_save_register_item( "psx", sndindex, chip->m_n_channelonoff );
- state_save_register_item( "psx", sndindex, chip->m_n_reverbworkareastart );
- state_save_register_item( "psx", sndindex, chip->m_n_irqaddress );
- state_save_register_item( "psx", sndindex, chip->m_n_spuoffset );
- state_save_register_item( "psx", sndindex, chip->m_n_spudata );
- state_save_register_item( "psx", sndindex, chip->m_n_spucontrol );
- state_save_register_item( "psx", sndindex, chip->m_n_spustatus );
- state_save_register_item( "psx", sndindex, chip->m_n_cdvolumeleft );
- state_save_register_item( "psx", sndindex, chip->m_n_cdvolumeright );
- state_save_register_item( "psx", sndindex, chip->m_n_externalvolumeleft );
- state_save_register_item( "psx", sndindex, chip->m_n_externalvolumeright );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_volumeleft );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_volumeright );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_pitch );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_address );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_attackdecaysustain );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_sustainrelease );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_adsrvolume );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_repeataddress );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_effect );
- state_save_register_item_pointer( "psx", sndindex, chip->m_p_n_spuram, SPU_RAM_SIZE/2 );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_blockaddress );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_blockoffset );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_blockstatus );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_blockbuffer );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_s1 );
- state_save_register_item_array( "psx", sndindex, chip->m_p_n_s2 );
- state_save_register_item_array( "psx", sndindex, chip->m_n_loop );
+ state_save_register_item( "psx", tag, 0, chip->m_n_mainvolumeleft );
+ state_save_register_item( "psx", tag, 0, chip->m_n_mainvolumeright );
+ state_save_register_item( "psx", tag, 0, chip->m_n_reverberationdepthleft );
+ state_save_register_item( "psx", tag, 0, chip->m_n_reverberationdepthright );
+ state_save_register_item( "psx", tag, 0, chip->m_n_voiceon );
+ state_save_register_item( "psx", tag, 0, chip->m_n_voiceoff );
+ state_save_register_item( "psx", tag, 0, chip->m_n_modulationmode );
+ state_save_register_item( "psx", tag, 0, chip->m_n_noisemode );
+ state_save_register_item( "psx", tag, 0, chip->m_n_reverbmode );
+ state_save_register_item( "psx", tag, 0, chip->m_n_channelonoff );
+ state_save_register_item( "psx", tag, 0, chip->m_n_reverbworkareastart );
+ state_save_register_item( "psx", tag, 0, chip->m_n_irqaddress );
+ state_save_register_item( "psx", tag, 0, chip->m_n_spuoffset );
+ state_save_register_item( "psx", tag, 0, chip->m_n_spudata );
+ state_save_register_item( "psx", tag, 0, chip->m_n_spucontrol );
+ state_save_register_item( "psx", tag, 0, chip->m_n_spustatus );
+ state_save_register_item( "psx", tag, 0, chip->m_n_cdvolumeleft );
+ state_save_register_item( "psx", tag, 0, chip->m_n_cdvolumeright );
+ state_save_register_item( "psx", tag, 0, chip->m_n_externalvolumeleft );
+ state_save_register_item( "psx", tag, 0, chip->m_n_externalvolumeright );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_volumeleft );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_volumeright );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_pitch );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_address );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_attackdecaysustain );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_sustainrelease );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_adsrvolume );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_repeataddress );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_effect );
+ state_save_register_item_pointer( "psx", tag, 0, chip->m_p_n_spuram, SPU_RAM_SIZE/2 );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_blockaddress );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_blockoffset );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_blockstatus );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_blockbuffer );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_s1 );
+ state_save_register_item_array( "psx", tag, 0, chip->m_p_n_s2 );
+ state_save_register_item_array( "psx", tag, 0, chip->m_n_loop );
chip->intf->spu_install_read_handler( 4, spu_read );
chip->intf->spu_install_write_handler( 4, spu_write );
diff --git a/src/emu/sound/qsound.c b/src/emu/sound/qsound.c
index 58137508918..be43c8fa130 100644
--- a/src/emu/sound/qsound.c
+++ b/src/emu/sound/qsound.c
@@ -136,18 +136,18 @@ static SND_START( qsound )
/* state save */
for (i=0; i<QSOUND_CHANNELS; i++)
{
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].bank);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].address);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].pitch);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].loop);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].end);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].vol);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].pan);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].key);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].lvol);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].rvol);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].lastdt);
- state_save_register_item("QSound", sndindex*QSOUND_CHANNELS+i, chip->channel[i].offset);
+ state_save_register_item("QSound", tag, i, chip->channel[i].bank);
+ state_save_register_item("QSound", tag, i, chip->channel[i].address);
+ state_save_register_item("QSound", tag, i, chip->channel[i].pitch);
+ state_save_register_item("QSound", tag, i, chip->channel[i].loop);
+ state_save_register_item("QSound", tag, i, chip->channel[i].end);
+ state_save_register_item("QSound", tag, i, chip->channel[i].vol);
+ state_save_register_item("QSound", tag, i, chip->channel[i].pan);
+ state_save_register_item("QSound", tag, i, chip->channel[i].key);
+ state_save_register_item("QSound", tag, i, chip->channel[i].lvol);
+ state_save_register_item("QSound", tag, i, chip->channel[i].rvol);
+ state_save_register_item("QSound", tag, i, chip->channel[i].lastdt);
+ state_save_register_item("QSound", tag, i, chip->channel[i].offset);
}
return chip;
diff --git a/src/emu/sound/rf5c400.c b/src/emu/sound/rf5c400.c
index d75523a8d9c..515c98a831b 100644
--- a/src/emu/sound/rf5c400.c
+++ b/src/emu/sound/rf5c400.c
@@ -313,26 +313,26 @@ static void rf5c400_init_chip(const char *tag, struct rf5c400_info *info, int sn
for (i = 0; i < ARRAY_LENGTH(info->channels); i++)
{
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].startH);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].startL);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].freq);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].endL);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].endHloopH);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].loopL);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].pan);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].effect);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].volume);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].attack);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].decay);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].release);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].cutoff);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].pos);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].step);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].keyon);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].env_phase);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].env_level);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].env_step);
- state_save_register_item("rf5c400", sndindex * ARRAY_LENGTH(info->channels) + i, info->channels[i].env_scale);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].startH);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].startL);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].freq);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].endL);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].endHloopH);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].loopL);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].pan);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].effect);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].volume);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].attack);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].decay);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].release);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].cutoff);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].pos);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].step);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].keyon);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].env_phase);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].env_level);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].env_step);
+ state_save_register_item("rf5c400", tag, i, info->channels[i].env_scale);
}
info->stream = stream_create(0, 2, clock/384, info, rf5c400_update);
diff --git a/src/emu/sound/samples.c b/src/emu/sound/samples.c
index 250f268d871..5141d5b5105 100644
--- a/src/emu/sound/samples.c
+++ b/src/emu/sound/samples.c
@@ -558,13 +558,13 @@ static SND_START( samples )
info->channel[i].paused = 0;
/* register with the save state system */
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].source_length);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].source_num);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].pos);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].frac);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].step);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].loop);
- state_save_register_item("samples", sndindex * MAX_CHANNELS + i, info->channel[i].paused);
+ state_save_register_item("samples", tag, i, info->channel[i].source_length);
+ state_save_register_item("samples", tag, i, info->channel[i].source_num);
+ state_save_register_item("samples", tag, i, info->channel[i].pos);
+ state_save_register_item("samples", tag, i, info->channel[i].frac);
+ state_save_register_item("samples", tag, i, info->channel[i].step);
+ state_save_register_item("samples", tag, i, info->channel[i].loop);
+ state_save_register_item("samples", tag, i, info->channel[i].paused);
}
state_save_register_postload(Machine, samples_postload, info);
diff --git a/src/emu/sound/segapcm.c b/src/emu/sound/segapcm.c
index 183f1d11cb2..ab2c42bcc73 100644
--- a/src/emu/sound/segapcm.c
+++ b/src/emu/sound/segapcm.c
@@ -104,8 +104,8 @@ static SND_START( segapcm )
spcm->stream = stream_create(0, 2, clock / 128, spcm, SEGAPCM_update);
- state_save_register_item_array("segapcm", sndindex, spcm->low);
- state_save_register_item_pointer("segapcm", sndindex, spcm->ram, 0x800);
+ state_save_register_item_array("segapcm", tag, 0, spcm->low);
+ state_save_register_item_pointer("segapcm", tag, 0, spcm->ram, 0x800);
return spcm;
}
diff --git a/src/emu/sound/sn76477.c b/src/emu/sound/sn76477.c
index d8d51b629c3..3aac55fc402 100644
--- a/src/emu/sound/sn76477.c
+++ b/src/emu/sound/sn76477.c
@@ -65,7 +65,7 @@
#define LOG_WAV_GAIN_FACTOR 1000
-#define LOG_WAV_FILE_NAME "sn76477_%d.wav"
+#define LOG_WAV_FILE_NAME "sn76477_%s.wav"
#define LOG(n,x) do { if (VERBOSE >= (n)) logerror x; } while (0)
@@ -256,7 +256,7 @@ struct SN76477
/* others */
sound_stream *channel; /* returned by stream_create() */
- UINT32 index;
+ const char *tag;
int sample_rate; /* from machine->sample_rate */
wav_file *file; /* handle of the wave file to produce */
@@ -643,7 +643,7 @@ static void log_enable_line(struct SN76477 *sn)
"Enabled", "Inhibited"
};
- LOG(1, ("SN76477 #%d: Enable line (9): %d [%s]\n", sn->index, sn->enable, desc[sn->enable]));
+ LOG(1, ("SN76477 '%s': Enable line (9): %d [%s]\n", sn->tag, sn->enable, desc[sn->enable]));
}
@@ -655,7 +655,7 @@ static void log_mixer_mode(struct SN76477 *sn)
"SLF/Noise", "SLF/VCO/Noise", "SLF/VCO", "Inhibit"
};
- LOG(1, ("SN76477 #%d: Mixer mode (25-27): %d [%s]\n", sn->index, sn->mixer_mode, desc[sn->mixer_mode]));
+ LOG(1, ("SN76477 '%s': Mixer mode (25-27): %d [%s]\n", sn->tag, sn->mixer_mode, desc[sn->mixer_mode]));
}
@@ -666,7 +666,7 @@ static void log_envelope_mode(struct SN76477 *sn)
"VCO", "One-Shot", "Mixer Only", "VCO with Alternating Polarity"
};
- LOG(1, ("SN76477 #%d: Envelope mode (1,28): %d [%s]\n", sn->index, sn->envelope_mode, desc[sn->envelope_mode]));
+ LOG(1, ("SN76477 '%s': Envelope mode (1,28): %d [%s]\n", sn->tag, sn->envelope_mode, desc[sn->envelope_mode]));
}
@@ -677,7 +677,7 @@ static void log_vco_mode(struct SN76477 *sn)
"External (Pin 16)", "Internal (SLF)"
};
- LOG(1, ("SN76477 #%d: VCO mode (22): %d [%s]\n", sn->index, sn->vco_mode, desc[sn->vco_mode]));
+ LOG(1, ("SN76477 '%s': VCO mode (22): %d [%s]\n", sn->tag, sn->vco_mode, desc[sn->vco_mode]));
}
@@ -687,16 +687,16 @@ static void log_one_shot_time(struct SN76477 *sn)
{
if (compute_one_shot_cap_charging_rate(sn) > 0)
{
- LOG(1, ("SN76477 #%d: One-shot time (23,24): %.4f sec\n", sn->index, ONE_SHOT_CAP_VOLTAGE_RANGE * (1 / compute_one_shot_cap_charging_rate(sn))));
+ LOG(1, ("SN76477 '%s': One-shot time (23,24): %.4f sec\n", sn->tag, ONE_SHOT_CAP_VOLTAGE_RANGE * (1 / compute_one_shot_cap_charging_rate(sn))));
}
else
{
- LOG(1, ("SN76477 #%d: One-shot time (23,24): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': One-shot time (23,24): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: One-shot time (23,24): External (cap = %.2fV)\n", sn->index, sn->one_shot_cap_voltage));
+ LOG(1, ("SN76477 '%s': One-shot time (23,24): External (cap = %.2fV)\n", sn->tag, sn->one_shot_cap_voltage));
}
}
@@ -710,29 +710,29 @@ static void log_slf_freq(struct SN76477 *sn)
double charging_time = (1 / compute_slf_cap_charging_rate(sn)) * SLF_CAP_VOLTAGE_RANGE;
double discharging_time = (1 / compute_slf_cap_discharging_rate(sn)) * SLF_CAP_VOLTAGE_RANGE;
- LOG(1, ("SN76477 #%d: SLF frequency (20,21): %.2f Hz\n", sn->index, 1 / (charging_time + discharging_time)));
+ LOG(1, ("SN76477 '%s': SLF frequency (20,21): %.2f Hz\n", sn->tag, 1 / (charging_time + discharging_time)));
}
else
{
- LOG(1, ("SN76477 #%d: SLF frequency (20,21): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': SLF frequency (20,21): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: SLF frequency (20,21): External (cap = %.2fV)\n", sn->index, sn->slf_cap_voltage));
+ LOG(1, ("SN76477 '%s': SLF frequency (20,21): External (cap = %.2fV)\n", sn->tag, sn->slf_cap_voltage));
}
}
static void log_vco_pitch_voltage(struct SN76477 *sn)
{
- LOG(1, ("SN76477 #%d: VCO pitch voltage (19): %.2fV\n", sn->index, sn->pitch_voltage));
+ LOG(1, ("SN76477 '%s': VCO pitch voltage (19): %.2fV\n", sn->tag, sn->pitch_voltage));
}
static void log_vco_duty_cycle(struct SN76477 *sn)
{
- LOG(1, ("SN76477 #%d: VCO duty cycle (16,19): %.0f%%\n", sn->index, compute_vco_duty_cycle(sn) * 100.0));
+ LOG(1, ("SN76477 '%s': VCO duty cycle (16,19): %.0f%%\n", sn->tag, compute_vco_duty_cycle(sn) * 100.0));
}
@@ -745,16 +745,16 @@ static void log_vco_freq(struct SN76477 *sn)
double min_freq = compute_vco_cap_charging_discharging_rate(sn) / (2 * VCO_CAP_VOLTAGE_RANGE);
double max_freq = compute_vco_cap_charging_discharging_rate(sn) / (2 * VCO_TO_SLF_VOLTAGE_DIFF);
- LOG(1, ("SN76477 #%d: VCO frequency (17,18): %.2f Hz - %.1f Hz\n", sn->index, min_freq, max_freq));
+ LOG(1, ("SN76477 '%s': VCO frequency (17,18): %.2f Hz - %.1f Hz\n", sn->tag, min_freq, max_freq));
}
else
{
- LOG(1, ("SN76477 #%d: VCO frequency (17,18): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': VCO frequency (17,18): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: VCO frequency (17,18): External (cap = %.2fV)\n", sn->index, sn->vco_cap_voltage));
+ LOG(1, ("SN76477 '%s': VCO frequency (17,18): External (cap = %.2fV)\n", sn->tag, sn->vco_cap_voltage));
}
}
@@ -766,13 +766,13 @@ static void log_vco_ext_voltage(struct SN76477 *sn)
double min_freq = compute_vco_cap_charging_discharging_rate(sn) / (2 * VCO_CAP_VOLTAGE_RANGE);
double max_freq = compute_vco_cap_charging_discharging_rate(sn) / (2 * VCO_TO_SLF_VOLTAGE_DIFF);
- LOG(1, ("SN76477 #%d: VCO ext. voltage (16): %.2fV (%.2f Hz)\n", sn->index,
+ LOG(1, ("SN76477 '%s': VCO ext. voltage (16): %.2fV (%.2f Hz)\n", sn->tag,
sn->vco_voltage,
min_freq + ((max_freq - min_freq) * sn->vco_voltage / VCO_MAX_EXT_VOLTAGE)));
}
else
{
- LOG(1, ("SN76477 #%d: VCO ext. voltage (16): %.2fV (saturated, no output)\n", sn->index, sn->vco_voltage));
+ LOG(1, ("SN76477 '%s': VCO ext. voltage (16): %.2fV (saturated, no output)\n", sn->tag, sn->vco_voltage));
}
}
@@ -781,17 +781,17 @@ static void log_noise_gen_freq(struct SN76477 *sn)
{
if (sn->noise_clock_ext)
{
- LOG(1, ("SN76477 #%d: Noise gen frequency (4): External\n", sn->index));
+ LOG(1, ("SN76477 '%s': Noise gen frequency (4): External\n", sn->tag));
}
else
{
if (compute_noise_gen_freq(sn) > 0)
{
- LOG(1, ("SN76477 #%d: Noise gen frequency (4): %d Hz\n", sn->index, compute_noise_gen_freq(sn)));
+ LOG(1, ("SN76477 '%s': Noise gen frequency (4): %d Hz\n", sn->tag, compute_noise_gen_freq(sn)));
}
else
{
- LOG(1, ("SN76477 #%d: Noise gen frequency (4): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': Noise gen frequency (4): N/A\n", sn->tag));
}
}
}
@@ -810,21 +810,21 @@ static void log_noise_filter_freq(struct SN76477 *sn)
double charging_time = (1 / charging_rate) * NOISE_CAP_VOLTAGE_RANGE;
double discharging_time = (1 / charging_rate) * NOISE_CAP_VOLTAGE_RANGE;
- LOG(1, ("SN76477 #%d: Noise filter frequency (5,6): %.0f Hz\n", sn->index, 1 / (charging_time + discharging_time)));
+ LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): %.0f Hz\n", sn->tag, 1 / (charging_time + discharging_time)));
}
else
{
- LOG(1, ("SN76477 #%d: Noise filter frequency (5,6): Very Large (Filtering Disabled)\n", sn->index));
+ LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): Very Large (Filtering Disabled)\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: Noise filter frequency (5,6): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: Noise filter frequency (5,6): External (cap = %.2fV)\n", sn->index, sn->noise_filter_cap));
+ LOG(1, ("SN76477 '%s': Noise filter frequency (5,6): External (cap = %.2fV)\n", sn->tag, sn->noise_filter_cap));
}
}
@@ -835,16 +835,16 @@ static void log_attack_time(struct SN76477 *sn)
{
if (compute_attack_decay_cap_charging_rate(sn) > 0)
{
- LOG(1, ("SN76477 #%d: Attack time (8,10): %.4f sec\n", sn->index, AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_charging_rate(sn))));
+ LOG(1, ("SN76477 '%s': Attack time (8,10): %.4f sec\n", sn->tag, AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_charging_rate(sn))));
}
else
{
- LOG(1, ("SN76477 #%d: Attack time (8,10): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': Attack time (8,10): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: Attack time (8,10): External (cap = %.2fV)\n", sn->index, sn->attack_decay_cap_voltage));
+ LOG(1, ("SN76477 '%s': Attack time (8,10): External (cap = %.2fV)\n", sn->tag, sn->attack_decay_cap_voltage));
}
}
@@ -855,24 +855,24 @@ static void log_decay_time(struct SN76477 *sn)
{
if (compute_attack_decay_cap_discharging_rate(sn) > 0)
{
- LOG(1, ("SN76477 #%d: Decay time (7,8): %.4f sec\n", sn->index, AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_discharging_rate(sn))));
+ LOG(1, ("SN76477 '%s': Decay time (7,8): %.4f sec\n", sn->tag, AD_CAP_VOLTAGE_RANGE * (1 / compute_attack_decay_cap_discharging_rate(sn))));
}
else
{
- LOG(1, ("SN76477 #%d: Decay time (8,10): N/A\n", sn->index));
+ LOG(1, ("SN76477 '%s': Decay time (8,10): N/A\n", sn->tag));
}
}
else
{
- LOG(1, ("SN76477 #%d: Decay time (7, 8): External (cap = %.2fV)\n", sn->index, sn->attack_decay_cap_voltage));
+ LOG(1, ("SN76477 '%s': Decay time (7, 8): External (cap = %.2fV)\n", sn->tag, sn->attack_decay_cap_voltage));
}
}
static void log_voltage_out(struct SN76477 *sn)
{
- LOG(1, ("SN76477 #%d: Voltage OUT range (11,12): %.2fV - %.2fV (clips above %.2fV)\n",
- sn->index,
+ LOG(1, ("SN76477 '%s': Voltage OUT range (11,12): %.2fV - %.2fV (clips above %.2fV)\n",
+ sn->tag,
OUT_CENTER_LEVEL_VOLTAGE + compute_center_to_peak_voltage_out(sn) * out_neg_gain[(int)(AD_CAP_VOLTAGE_MAX * 10)],
OUT_CENTER_LEVEL_VOLTAGE + compute_center_to_peak_voltage_out(sn) * out_pos_gain[(int)(AD_CAP_VOLTAGE_MAX * 10)],
OUT_HIGH_CLIP_THRESHOLD));
@@ -911,10 +911,10 @@ static void open_wav_file(struct SN76477 *sn)
{
char wav_file_name[30];
- sprintf(wav_file_name, LOG_WAV_FILE_NAME, sn->index);
+ sprintf(wav_file_name, LOG_WAV_FILE_NAME, sn->tag);
sn->file = wav_open(wav_file_name, sn->sample_rate, 2);
- LOG(1, ("SN76477 #%d: Logging output: %s\n", sn->index, wav_file_name));
+ LOG(1, ("SN76477 '%s': Logging output: %s\n", sn->tag, wav_file_name));
}
@@ -2325,58 +2325,58 @@ static void SN76477_update(void *param, stream_sample_t **inputs, stream_sample_
static void state_save_register(struct SN76477 *sn)
{
- state_save_register_item("sn76744", sn->index, sn->enable);
- state_save_register_item("sn76744", sn->index, sn->envelope_mode);
- state_save_register_item("sn76744", sn->index, sn->vco_mode);
- state_save_register_item("sn76744", sn->index, sn->mixer_mode);
+ state_save_register_item("sn76744", sn->tag, 0, sn->enable);
+ state_save_register_item("sn76744", sn->tag, 0, sn->envelope_mode);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_mode);
+ state_save_register_item("sn76744", sn->tag, 0, sn->mixer_mode);
- state_save_register_item("sn76744", sn->index, sn->one_shot_res);
- state_save_register_item("sn76744", sn->index, sn->one_shot_cap);
- state_save_register_item("sn76744", sn->index, sn->one_shot_cap_voltage_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->one_shot_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->one_shot_cap);
+ state_save_register_item("sn76744", sn->tag, 0, sn->one_shot_cap_voltage_ext);
- state_save_register_item("sn76744", sn->index, sn->slf_res);
- state_save_register_item("sn76744", sn->index, sn->slf_cap);
- state_save_register_item("sn76744", sn->index, sn->slf_cap_voltage_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->slf_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->slf_cap);
+ state_save_register_item("sn76744", sn->tag, 0, sn->slf_cap_voltage_ext);
- state_save_register_item("sn76744", sn->index, sn->vco_voltage);
- state_save_register_item("sn76744", sn->index, sn->vco_res);
- state_save_register_item("sn76744", sn->index, sn->vco_cap);
- state_save_register_item("sn76744", sn->index, sn->vco_cap_voltage_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_cap);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_cap_voltage_ext);
- state_save_register_item("sn76744", sn->index, sn->noise_clock_res);
- state_save_register_item("sn76744", sn->index, sn->noise_clock_ext);
- state_save_register_item("sn76744", sn->index, sn->noise_clock);
- state_save_register_item("sn76744", sn->index, sn->noise_filter_res);
- state_save_register_item("sn76744", sn->index, sn->noise_filter_cap);
- state_save_register_item("sn76744", sn->index, sn->noise_filter_cap_voltage_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_clock_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_clock_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_clock);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_filter_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_filter_cap);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_filter_cap_voltage_ext);
- state_save_register_item("sn76744", sn->index, sn->attack_res);
- state_save_register_item("sn76744", sn->index, sn->decay_res);
- state_save_register_item("sn76744", sn->index, sn->attack_decay_cap);
- state_save_register_item("sn76744", sn->index, sn->attack_decay_cap_voltage_ext);
+ state_save_register_item("sn76744", sn->tag, 0, sn->attack_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->decay_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->attack_decay_cap);
+ state_save_register_item("sn76744", sn->tag, 0, sn->attack_decay_cap_voltage_ext);
- state_save_register_item("sn76744", sn->index, sn->amplitude_res);
- state_save_register_item("sn76744", sn->index, sn->feedback_res);
- state_save_register_item("sn76744", sn->index, sn->pitch_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->amplitude_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->feedback_res);
+ state_save_register_item("sn76744", sn->tag, 0, sn->pitch_voltage);
- state_save_register_item("sn76744", sn->index, sn->one_shot_cap_voltage);
- state_save_register_item("sn76744", sn->index, sn->one_shot_running_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->one_shot_cap_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->one_shot_running_ff);
- state_save_register_item("sn76744", sn->index, sn->slf_cap_voltage);
- state_save_register_item("sn76744", sn->index, sn->slf_out_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->slf_cap_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->slf_out_ff);
- state_save_register_item("sn76744", sn->index, sn->vco_cap_voltage);
- state_save_register_item("sn76744", sn->index, sn->vco_out_ff);
- state_save_register_item("sn76744", sn->index, sn->vco_alt_pos_edge_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_cap_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_out_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->vco_alt_pos_edge_ff);
- state_save_register_item("sn76744", sn->index, sn->noise_filter_cap_voltage);
- state_save_register_item("sn76744", sn->index, sn->real_noise_bit_ff);
- state_save_register_item("sn76744", sn->index, sn->filtered_noise_bit_ff);
- state_save_register_item("sn76744", sn->index, sn->noise_gen_count);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_filter_cap_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->real_noise_bit_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->filtered_noise_bit_ff);
+ state_save_register_item("sn76744", sn->tag, 0, sn->noise_gen_count);
- state_save_register_item("sn76744", sn->index, sn->attack_decay_cap_voltage);
+ state_save_register_item("sn76744", sn->tag, 0, sn->attack_decay_cap_voltage);
- state_save_register_item("sn76744", sn->index, sn->rng);
+ state_save_register_item("sn76744", sn->tag, 0, sn->rng);
}
@@ -2403,7 +2403,7 @@ static SND_START( sn76477 )
sn = auto_malloc(sizeof(*sn));
memset(sn, 0, sizeof(*sn));
- sn->index = sndindex;
+ sn->tag = tag;
sn->channel = stream_create(0, 1, Machine->sample_rate, sn, SN76477_update);
diff --git a/src/emu/sound/sn76496.c b/src/emu/sound/sn76496.c
index ade3d128bb9..ef072426f32 100644
--- a/src/emu/sound/sn76496.c
+++ b/src/emu/sound/sn76496.c
@@ -278,7 +278,7 @@ static void SN76496_set_gain(struct SN76496 *R,int gain)
-static int SN76496_init(struct SN76496 *R,int sndindex,int clock)
+static int SN76496_init(struct SN76496 *R,int clock)
{
int sample_rate = clock/16;
int i;
@@ -314,14 +314,14 @@ static int SN76496_init(struct SN76496 *R,int sndindex,int clock)
}
-static void *generic_start(int sndindex, int clock, int feedbackmask, int noisetaps, int noiseinvert)
+static void *generic_start(const char *tag, int clock, int feedbackmask, int noisetaps, int noiseinvert)
{
struct SN76496 *chip;
chip = auto_malloc(sizeof(*chip));
memset(chip, 0, sizeof(*chip));
- if (SN76496_init(chip,sndindex,clock) != 0)
+ if (SN76496_init(chip,clock) != 0)
return NULL;
SN76496_set_gain(chip, 0);
@@ -329,14 +329,14 @@ static void *generic_start(int sndindex, int clock, int feedbackmask, int noiset
chip->WhitenoiseTaps = noisetaps;
chip->WhitenoiseInvert = noiseinvert;
- state_save_register_item_array("sn76496", sndindex, chip->Register);
- state_save_register_item("sn76496", sndindex, chip->LastRegister);
- state_save_register_item_array("sn76496", sndindex, chip->Volume);
- state_save_register_item("sn76496", sndindex, chip->RNG);
- state_save_register_item("sn76496", sndindex, chip->NoiseMode);
- state_save_register_item_array("sn76496", sndindex, chip->Period);
- state_save_register_item_array("sn76496", sndindex, chip->Count);
- state_save_register_item_array("sn76496", sndindex, chip->Output);
+ state_save_register_item_array("sn76496", tag, 0, chip->Register);
+ state_save_register_item("sn76496", tag, 0, chip->LastRegister);
+ state_save_register_item_array("sn76496", tag, 0, chip->Volume);
+ state_save_register_item("sn76496", tag, 0, chip->RNG);
+ state_save_register_item("sn76496", tag, 0, chip->NoiseMode);
+ state_save_register_item_array("sn76496", tag, 0, chip->Period);
+ state_save_register_item_array("sn76496", tag, 0, chip->Count);
+ state_save_register_item_array("sn76496", tag, 0, chip->Output);
return chip;
@@ -345,32 +345,32 @@ static void *generic_start(int sndindex, int clock, int feedbackmask, int noiset
static SND_START( sn76489 )
{
- return generic_start(sndindex, clock, 0x4000, 0x03, TRUE);
+ return generic_start(tag, clock, 0x4000, 0x03, TRUE);
}
static SND_START( sn76489a )
{
- return generic_start(sndindex, clock, 0x8000, 0x06, FALSE);
+ return generic_start(tag, clock, 0x8000, 0x06, FALSE);
}
static SND_START( sn76494 )
{
- return generic_start(sndindex, clock, 0x8000, 0x06, FALSE);
+ return generic_start(tag, clock, 0x8000, 0x06, FALSE);
}
static SND_START( sn76496 )
{
- return generic_start(sndindex, clock, 0x8000, 0x06, FALSE);
+ return generic_start(tag, clock, 0x8000, 0x06, FALSE);
}
static SND_START( gamegear )
{
- return generic_start(sndindex, clock, 0x8000, 0x09, FALSE);
+ return generic_start(tag, clock, 0x8000, 0x09, FALSE);
}
static SND_START( smsiii )
{
- return generic_start(sndindex, clock, 0x8000, 0x09, FALSE);
+ return generic_start(tag, clock, 0x8000, 0x09, FALSE);
}
diff --git a/src/emu/sound/snkwave.c b/src/emu/sound/snkwave.c
index 416384e37b0..3aa0ba33e06 100644
--- a/src/emu/sound/snkwave.c
+++ b/src/emu/sound/snkwave.c
@@ -123,10 +123,10 @@ static SND_START( snkwave )
chip->waveform_position = 0;
/* register with the save state system */
- state_save_register_item("snkwave", sndindex, chip->frequency);
- state_save_register_item("snkwave", sndindex, chip->counter);
- state_save_register_item("snkwave", sndindex, chip->waveform_position);
- state_save_register_item_pointer("snkwave", sndindex, chip->waveform, WAVEFORM_LENGTH);
+ state_save_register_item("snkwave", tag, 0, chip->frequency);
+ state_save_register_item("snkwave", tag, 0, chip->counter);
+ state_save_register_item("snkwave", tag, 0, chip->waveform_position);
+ state_save_register_item_pointer("snkwave", tag, 0, chip->waveform, WAVEFORM_LENGTH);
return chip;
}
diff --git a/src/emu/sound/tms5110.c b/src/emu/sound/tms5110.c
index cf9f2fd40fb..d2cc7633fde 100644
--- a/src/emu/sound/tms5110.c
+++ b/src/emu/sound/tms5110.c
@@ -176,7 +176,7 @@ void tms5110_set_variant(void *chip, int variant)
tms->variant = variant;
}
-void *tms5110_create(int index, int variant)
+void *tms5110_create(const char *tag, int variant)
{
struct tms5110 *tms;
@@ -185,45 +185,45 @@ void *tms5110_create(int index, int variant)
tms5110_set_variant(tms, variant);
- state_save_register_item_array("tms5110", index, tms->fifo);
- state_save_register_item("tms5110", index, tms->fifo_head);
- state_save_register_item("tms5110", index, tms->fifo_tail);
- state_save_register_item("tms5110", index, tms->fifo_count);
+ state_save_register_item_array("tms5110", tag, 0, tms->fifo);
+ state_save_register_item("tms5110", tag, 0, tms->fifo_head);
+ state_save_register_item("tms5110", tag, 0, tms->fifo_tail);
+ state_save_register_item("tms5110", tag, 0, tms->fifo_count);
- state_save_register_item("tms5110", index, tms->PDC);
- state_save_register_item("tms5110", index, tms->CTL_pins);
- state_save_register_item("tms5110", index, tms->speaking_now);
- state_save_register_item("tms5110", index, tms->speak_delay_frames);
- state_save_register_item("tms5110", index, tms->talk_status);
+ state_save_register_item("tms5110", tag, 0, tms->PDC);
+ state_save_register_item("tms5110", tag, 0, tms->CTL_pins);
+ state_save_register_item("tms5110", tag, 0, tms->speaking_now);
+ state_save_register_item("tms5110", tag, 0, tms->speak_delay_frames);
+ state_save_register_item("tms5110", tag, 0, tms->talk_status);
- state_save_register_item("tms5110", index, tms->old_energy);
- state_save_register_item("tms5110", index, tms->old_pitch);
- state_save_register_item_array("tms5110", index, tms->old_k);
+ state_save_register_item("tms5110", tag, 0, tms->old_energy);
+ state_save_register_item("tms5110", tag, 0, tms->old_pitch);
+ state_save_register_item_array("tms5110", tag, 0, tms->old_k);
- state_save_register_item("tms5110", index, tms->new_energy);
- state_save_register_item("tms5110", index, tms->new_pitch);
- state_save_register_item_array("tms5110", index, tms->new_k);
+ state_save_register_item("tms5110", tag, 0, tms->new_energy);
+ state_save_register_item("tms5110", tag, 0, tms->new_pitch);
+ state_save_register_item_array("tms5110", tag, 0, tms->new_k);
- state_save_register_item("tms5110", index, tms->current_energy);
- state_save_register_item("tms5110", index, tms->current_pitch);
- state_save_register_item_array("tms5110", index, tms->current_k);
+ state_save_register_item("tms5110", tag, 0, tms->current_energy);
+ state_save_register_item("tms5110", tag, 0, tms->current_pitch);
+ state_save_register_item_array("tms5110", tag, 0, tms->current_k);
- state_save_register_item("tms5110", index, tms->target_energy);
- state_save_register_item("tms5110", index, tms->target_pitch);
- state_save_register_item_array("tms5110", index, tms->target_k);
+ state_save_register_item("tms5110", tag, 0, tms->target_energy);
+ state_save_register_item("tms5110", tag, 0, tms->target_pitch);
+ state_save_register_item_array("tms5110", tag, 0, tms->target_k);
- state_save_register_item("tms5110", index, tms->interp_count);
- state_save_register_item("tms5110", index, tms->sample_count);
- state_save_register_item("tms5110", index, tms->pitch_count);
+ state_save_register_item("tms5110", tag, 0, tms->interp_count);
+ state_save_register_item("tms5110", tag, 0, tms->sample_count);
+ state_save_register_item("tms5110", tag, 0, tms->pitch_count);
- state_save_register_item("tms5110", index, tms->next_is_address);
- state_save_register_item("tms5110", index, tms->address);
- state_save_register_item("tms5110", index, tms->schedule_dummy_read);
- state_save_register_item("tms5110", index, tms->addr_bit);
+ state_save_register_item("tms5110", tag, 0, tms->next_is_address);
+ state_save_register_item("tms5110", tag, 0, tms->address);
+ state_save_register_item("tms5110", tag, 0, tms->schedule_dummy_read);
+ state_save_register_item("tms5110", tag, 0, tms->addr_bit);
- state_save_register_item_array("tms5110", index, tms->x);
+ state_save_register_item_array("tms5110", tag, 0, tms->x);
- state_save_register_item("tms5110", index, tms->RNG);
+ state_save_register_item("tms5110", tag, 0, tms->RNG);
return tms;
}
diff --git a/src/emu/sound/tms5110.h b/src/emu/sound/tms5110.h
index 91eb4c3c2cb..808be3b2c3b 100644
--- a/src/emu/sound/tms5110.h
+++ b/src/emu/sound/tms5110.h
@@ -27,7 +27,7 @@
#define TMS5110_IS_CD2802 TMS5110_IS_5110
#define TMS5110_IS_M58817 TMS5110_IS_5110
-void *tms5110_create(int index, int variant);
+void *tms5110_create(const char *tag, int variant);
void tms5110_destroy(void *chip);
void tms5110_set_variant(void *chip, int variant);
diff --git a/src/emu/sound/tms5220.c b/src/emu/sound/tms5220.c
index 71f2cc391bf..dd9b261f746 100644
--- a/src/emu/sound/tms5220.c
+++ b/src/emu/sound/tms5220.c
@@ -175,60 +175,60 @@ static INT16 clip_and_wrap(INT16 cliptemp);
#define DEBUG_5220 0
-void *tms5220_create(int index)
+void *tms5220_create(const char *tag)
{
struct tms5220 *tms;
tms = malloc_or_die(sizeof(*tms));
memset(tms, 0, sizeof(*tms));
- state_save_register_item_array("tms5220", index, tms->fifo);
- state_save_register_item("tms5220", index, tms->fifo_head);
- state_save_register_item("tms5220", index, tms->fifo_tail);
- state_save_register_item("tms5220", index, tms->fifo_count);
- state_save_register_item("tms5220", index, tms->fifo_bits_taken);
-
- state_save_register_item("tms5220", index, tms->tms5220_speaking);
- state_save_register_item("tms5220", index, tms->speak_external);
- state_save_register_item("tms5220", index, tms->talk_status);
- state_save_register_item("tms5220", index, tms->first_frame);
- state_save_register_item("tms5220", index, tms->last_frame);
- state_save_register_item("tms5220", index, tms->buffer_low);
- state_save_register_item("tms5220", index, tms->buffer_empty);
- state_save_register_item("tms5220", index, tms->irq_pin);
-
- state_save_register_item("tms5220", index, tms->old_energy);
- state_save_register_item("tms5220", index, tms->old_pitch);
- state_save_register_item_array("tms5220", index, tms->old_k);
-
- state_save_register_item("tms5220", index, tms->new_energy);
- state_save_register_item("tms5220", index, tms->new_pitch);
- state_save_register_item_array("tms5220", index, tms->new_k);
-
- state_save_register_item("tms5220", index, tms->current_energy);
- state_save_register_item("tms5220", index, tms->current_pitch);
- state_save_register_item_array("tms5220", index, tms->current_k);
-
- state_save_register_item("tms5220", index, tms->target_energy);
- state_save_register_item("tms5220", index, tms->target_pitch);
- state_save_register_item_array("tms5220", index, tms->target_k);
-
- state_save_register_item("tms5220", index, tms->previous_energy);
-
- state_save_register_item("tms5220", index, tms->interp_count);
- state_save_register_item("tms5220", index, tms->sample_count);
- state_save_register_item("tms5220", index, tms->pitch_count);
-
- state_save_register_item_array("tms5220", index, tms->u);
- state_save_register_item_array("tms5220", index, tms->x);
-
- state_save_register_item("tms5220", index, tms->RNG);
- state_save_register_item("tms5220", index, tms->excitation_data);
-
- state_save_register_item("tms5220", index, tms->schedule_dummy_read);
- state_save_register_item("tms5220", index, tms->data_register);
- state_save_register_item("tms5220", index, tms->RDB_flag);
- state_save_register_item("tms5220", index, tms->digital_select);
+ state_save_register_item_array("tms5220", tag, 0, tms->fifo);
+ state_save_register_item("tms5220", tag, 0, tms->fifo_head);
+ state_save_register_item("tms5220", tag, 0, tms->fifo_tail);
+ state_save_register_item("tms5220", tag, 0, tms->fifo_count);
+ state_save_register_item("tms5220", tag, 0, tms->fifo_bits_taken);
+
+ state_save_register_item("tms5220", tag, 0, tms->tms5220_speaking);
+ state_save_register_item("tms5220", tag, 0, tms->speak_external);
+ state_save_register_item("tms5220", tag, 0, tms->talk_status);
+ state_save_register_item("tms5220", tag, 0, tms->first_frame);
+ state_save_register_item("tms5220", tag, 0, tms->last_frame);
+ state_save_register_item("tms5220", tag, 0, tms->buffer_low);
+ state_save_register_item("tms5220", tag, 0, tms->buffer_empty);
+ state_save_register_item("tms5220", tag, 0, tms->irq_pin);
+
+ state_save_register_item("tms5220", tag, 0, tms->old_energy);
+ state_save_register_item("tms5220", tag, 0, tms->old_pitch);
+ state_save_register_item_array("tms5220", tag, 0, tms->old_k);
+
+ state_save_register_item("tms5220", tag, 0, tms->new_energy);
+ state_save_register_item("tms5220", tag, 0, tms->new_pitch);
+ state_save_register_item_array("tms5220", tag, 0, tms->new_k);
+
+ state_save_register_item("tms5220", tag, 0, tms->current_energy);
+ state_save_register_item("tms5220", tag, 0, tms->current_pitch);
+ state_save_register_item_array("tms5220", tag, 0, tms->current_k);
+
+ state_save_register_item("tms5220", tag, 0, tms->target_energy);
+ state_save_register_item("tms5220", tag, 0, tms->target_pitch);
+ state_save_register_item_array("tms5220", tag, 0, tms->target_k);
+
+ state_save_register_item("tms5220", tag, 0, tms->previous_energy);
+
+ state_save_register_item("tms5220", tag, 0, tms->interp_count);
+ state_save_register_item("tms5220", tag, 0, tms->sample_count);
+ state_save_register_item("tms5220", tag, 0, tms->pitch_count);
+
+ state_save_register_item_array("tms5220", tag, 0, tms->u);
+ state_save_register_item_array("tms5220", tag, 0, tms->x);
+
+ state_save_register_item("tms5220", tag, 0, tms->RNG);
+ state_save_register_item("tms5220", tag, 0, tms->excitation_data);
+
+ state_save_register_item("tms5220", tag, 0, tms->schedule_dummy_read);
+ state_save_register_item("tms5220", tag, 0, tms->data_register);
+ state_save_register_item("tms5220", tag, 0, tms->RDB_flag);
+ state_save_register_item("tms5220", tag, 0, tms->digital_select);
return tms;
}
diff --git a/src/emu/sound/tms5220.h b/src/emu/sound/tms5220.h
index a358697077b..c42891ceccb 100644
--- a/src/emu/sound/tms5220.h
+++ b/src/emu/sound/tms5220.h
@@ -3,7 +3,7 @@
#ifndef __TMS5220_H__
#define __TMS5220_H__
-void *tms5220_create(int index);
+void *tms5220_create(const char *tag);
void tms5220_destroy(void *chip);
void tms5220_reset_chip(void *chip);
diff --git a/src/emu/sound/upd7759.c b/src/emu/sound/upd7759.c
index 827d9ffce12..ed14c17ce6a 100644
--- a/src/emu/sound/upd7759.c
+++ b/src/emu/sound/upd7759.c
@@ -588,35 +588,35 @@ static STATE_POSTLOAD( upd7759_postload )
}
-static void register_for_save(struct upd7759_chip *chip, int index)
+static void register_for_save(struct upd7759_chip *chip, const char *tag)
{
- state_save_register_item("upd7759", index, chip->pos);
- state_save_register_item("upd7759", index, chip->step);
-
- state_save_register_item("upd7759", index, chip->fifo_in);
- state_save_register_item("upd7759", index, chip->reset);
- state_save_register_item("upd7759", index, chip->start);
- state_save_register_item("upd7759", index, chip->drq);
-
- state_save_register_item("upd7759", index, chip->state);
- state_save_register_item("upd7759", index, chip->clocks_left);
- state_save_register_item("upd7759", index, chip->nibbles_left);
- state_save_register_item("upd7759", index, chip->repeat_count);
- state_save_register_item("upd7759", index, chip->post_drq_state);
- state_save_register_item("upd7759", index, chip->post_drq_clocks);
- state_save_register_item("upd7759", index, chip->req_sample);
- state_save_register_item("upd7759", index, chip->last_sample);
- state_save_register_item("upd7759", index, chip->block_header);
- state_save_register_item("upd7759", index, chip->sample_rate);
- state_save_register_item("upd7759", index, chip->first_valid_header);
- state_save_register_item("upd7759", index, chip->offset);
- state_save_register_item("upd7759", index, chip->repeat_offset);
-
- state_save_register_item("upd7759", index, chip->adpcm_state);
- state_save_register_item("upd7759", index, chip->adpcm_data);
- state_save_register_item("upd7759", index, chip->sample);
-
- state_save_register_item("upd7759", index, chip->romoffset);
+ state_save_register_item("upd7759", tag, 0, chip->pos);
+ state_save_register_item("upd7759", tag, 0, chip->step);
+
+ state_save_register_item("upd7759", tag, 0, chip->fifo_in);
+ state_save_register_item("upd7759", tag, 0, chip->reset);
+ state_save_register_item("upd7759", tag, 0, chip->start);
+ state_save_register_item("upd7759", tag, 0, chip->drq);
+
+ state_save_register_item("upd7759", tag, 0, chip->state);
+ state_save_register_item("upd7759", tag, 0, chip->clocks_left);
+ state_save_register_item("upd7759", tag, 0, chip->nibbles_left);
+ state_save_register_item("upd7759", tag, 0, chip->repeat_count);
+ state_save_register_item("upd7759", tag, 0, chip->post_drq_state);
+ state_save_register_item("upd7759", tag, 0, chip->post_drq_clocks);
+ state_save_register_item("upd7759", tag, 0, chip->req_sample);
+ state_save_register_item("upd7759", tag, 0, chip->last_sample);
+ state_save_register_item("upd7759", tag, 0, chip->block_header);
+ state_save_register_item("upd7759", tag, 0, chip->sample_rate);
+ state_save_register_item("upd7759", tag, 0, chip->first_valid_header);
+ state_save_register_item("upd7759", tag, 0, chip->offset);
+ state_save_register_item("upd7759", tag, 0, chip->repeat_offset);
+
+ state_save_register_item("upd7759", tag, 0, chip->adpcm_state);
+ state_save_register_item("upd7759", tag, 0, chip->adpcm_data);
+ state_save_register_item("upd7759", tag, 0, chip->sample);
+
+ state_save_register_item("upd7759", tag, 0, chip->romoffset);
state_save_register_postload(Machine, upd7759_postload, chip);
}
@@ -657,7 +657,7 @@ static SND_START( upd7759 )
/* toggle the reset line to finish the reset */
SND_RESET_NAME( upd7759 )(chip);
- register_for_save(chip, sndindex);
+ register_for_save(chip, tag);
return chip;
}
diff --git a/src/emu/sound/vlm5030.c b/src/emu/sound/vlm5030.c
index 68fd6db731f..c38bed71616 100644
--- a/src/emu/sound/vlm5030.c
+++ b/src/emu/sound/vlm5030.c
@@ -663,25 +663,25 @@ static SND_START( vlm5030 )
/* don't restore "UINT8 *chip->rom" when use vlm5030_set_rom() */
- state_save_register_item(VLM_NAME,sndindex,chip->address);
- state_save_register_item(VLM_NAME,sndindex,chip->pin_BSY);
- state_save_register_item(VLM_NAME,sndindex,chip->pin_ST);
- state_save_register_item(VLM_NAME,sndindex,chip->pin_VCU);
- state_save_register_item(VLM_NAME,sndindex,chip->pin_RST);
- state_save_register_item(VLM_NAME,sndindex,chip->latch_data);
- state_save_register_item(VLM_NAME,sndindex,chip->vcu_addr_h);
- state_save_register_item(VLM_NAME,sndindex,chip->parameter);
- state_save_register_item(VLM_NAME,sndindex,chip->phase);
- state_save_register_item(VLM_NAME,sndindex,chip->interp_count);
- state_save_register_item(VLM_NAME,sndindex,chip->sample_count);
- state_save_register_item(VLM_NAME,sndindex,chip->pitch_count);
- state_save_register_item(VLM_NAME,sndindex,chip->old_energy);
- state_save_register_item(VLM_NAME,sndindex,chip->old_pitch);
- state_save_register_item_array(VLM_NAME,sndindex,chip->old_k);
- state_save_register_item(VLM_NAME,sndindex,chip->target_energy);
- state_save_register_item(VLM_NAME,sndindex,chip->target_pitch);
- state_save_register_item_array(VLM_NAME,sndindex,chip->target_k);
- state_save_register_item_array(VLM_NAME,sndindex,chip->x);
+ state_save_register_item(VLM_NAME,tag,0,chip->address);
+ state_save_register_item(VLM_NAME,tag,0,chip->pin_BSY);
+ state_save_register_item(VLM_NAME,tag,0,chip->pin_ST);
+ state_save_register_item(VLM_NAME,tag,0,chip->pin_VCU);
+ state_save_register_item(VLM_NAME,tag,0,chip->pin_RST);
+ state_save_register_item(VLM_NAME,tag,0,chip->latch_data);
+ state_save_register_item(VLM_NAME,tag,0,chip->vcu_addr_h);
+ state_save_register_item(VLM_NAME,tag,0,chip->parameter);
+ state_save_register_item(VLM_NAME,tag,0,chip->phase);
+ state_save_register_item(VLM_NAME,tag,0,chip->interp_count);
+ state_save_register_item(VLM_NAME,tag,0,chip->sample_count);
+ state_save_register_item(VLM_NAME,tag,0,chip->pitch_count);
+ state_save_register_item(VLM_NAME,tag,0,chip->old_energy);
+ state_save_register_item(VLM_NAME,tag,0,chip->old_pitch);
+ state_save_register_item_array(VLM_NAME,tag,0,chip->old_k);
+ state_save_register_item(VLM_NAME,tag,0,chip->target_energy);
+ state_save_register_item(VLM_NAME,tag,0,chip->target_pitch);
+ state_save_register_item_array(VLM_NAME,tag,0,chip->target_k);
+ state_save_register_item_array(VLM_NAME,tag,0,chip->x);
state_save_register_postload(Machine, vlm5030_restore_state, chip);
return chip;
diff --git a/src/emu/sound/ym2151.c b/src/emu/sound/ym2151.c
index a3cbebb7e79..362fe6b1e41 100644
--- a/src/emu/sound/ym2151.c
+++ b/src/emu/sound/ym2151.c
@@ -1390,104 +1390,100 @@ STATE_POSTLOAD( ym2151_postload )
set_connect(&YM2151_chip->oper[j*4], j, YM2151_chip->connect[j]);
}
-static void ym2151_state_save_register( YM2151 *chip, int sndindex )
+static void ym2151_state_save_register( YM2151 *chip, const char *tag )
{
int j;
- char buf1[20];
/* save all 32 operators of chip #i */
for (j=0; j<32; j++)
{
YM2151Operator *op;
- sprintf(buf1,"YM2151.op%02i",j);
op = &chip->oper[(j&7)*4+(j>>3)];
- state_save_register_item(buf1, sndindex, op->phase);
- state_save_register_item(buf1, sndindex, op->freq);
- state_save_register_item(buf1, sndindex, op->dt1);
- state_save_register_item(buf1, sndindex, op->mul);
- state_save_register_item(buf1, sndindex, op->dt1_i);
- state_save_register_item(buf1, sndindex, op->dt2);
+ state_save_register_item("ym2151", tag, j, op->phase);
+ state_save_register_item("ym2151", tag, j, op->freq);
+ state_save_register_item("ym2151", tag, j, op->dt1);
+ state_save_register_item("ym2151", tag, j, op->mul);
+ state_save_register_item("ym2151", tag, j, op->dt1_i);
+ state_save_register_item("ym2151", tag, j, op->dt2);
/* operators connection is saved in chip data block */
- state_save_register_item(buf1, sndindex, op->mem_value);
-
- state_save_register_item(buf1, sndindex, op->fb_shift);
- state_save_register_item(buf1, sndindex, op->fb_out_curr);
- state_save_register_item(buf1, sndindex, op->fb_out_prev);
- state_save_register_item(buf1, sndindex, op->kc);
- state_save_register_item(buf1, sndindex, op->kc_i);
- state_save_register_item(buf1, sndindex, op->pms);
- state_save_register_item(buf1, sndindex, op->ams);
- state_save_register_item(buf1, sndindex, op->AMmask);
-
- state_save_register_item(buf1, sndindex, op->state);
- state_save_register_item(buf1, sndindex, op->eg_sh_ar);
- state_save_register_item(buf1, sndindex, op->eg_sel_ar);
- state_save_register_item(buf1, sndindex, op->tl);
- state_save_register_item(buf1, sndindex, op->volume);
- state_save_register_item(buf1, sndindex, op->eg_sh_d1r);
- state_save_register_item(buf1, sndindex, op->eg_sel_d1r);
- state_save_register_item(buf1, sndindex, op->d1l);
- state_save_register_item(buf1, sndindex, op->eg_sh_d2r);
- state_save_register_item(buf1, sndindex, op->eg_sel_d2r);
- state_save_register_item(buf1, sndindex, op->eg_sh_rr);
- state_save_register_item(buf1, sndindex, op->eg_sel_rr);
-
- state_save_register_item(buf1, sndindex, op->key);
- state_save_register_item(buf1, sndindex, op->ks);
- state_save_register_item(buf1, sndindex, op->ar);
- state_save_register_item(buf1, sndindex, op->d1r);
- state_save_register_item(buf1, sndindex, op->d2r);
- state_save_register_item(buf1, sndindex, op->rr);
-
- state_save_register_item(buf1, sndindex, op->reserved0);
- state_save_register_item(buf1, sndindex, op->reserved1);
+ state_save_register_item("ym2151", tag, j, op->mem_value);
+
+ state_save_register_item("ym2151", tag, j, op->fb_shift);
+ state_save_register_item("ym2151", tag, j, op->fb_out_curr);
+ state_save_register_item("ym2151", tag, j, op->fb_out_prev);
+ state_save_register_item("ym2151", tag, j, op->kc);
+ state_save_register_item("ym2151", tag, j, op->kc_i);
+ state_save_register_item("ym2151", tag, j, op->pms);
+ state_save_register_item("ym2151", tag, j, op->ams);
+ state_save_register_item("ym2151", tag, j, op->AMmask);
+
+ state_save_register_item("ym2151", tag, j, op->state);
+ state_save_register_item("ym2151", tag, j, op->eg_sh_ar);
+ state_save_register_item("ym2151", tag, j, op->eg_sel_ar);
+ state_save_register_item("ym2151", tag, j, op->tl);
+ state_save_register_item("ym2151", tag, j, op->volume);
+ state_save_register_item("ym2151", tag, j, op->eg_sh_d1r);
+ state_save_register_item("ym2151", tag, j, op->eg_sel_d1r);
+ state_save_register_item("ym2151", tag, j, op->d1l);
+ state_save_register_item("ym2151", tag, j, op->eg_sh_d2r);
+ state_save_register_item("ym2151", tag, j, op->eg_sel_d2r);
+ state_save_register_item("ym2151", tag, j, op->eg_sh_rr);
+ state_save_register_item("ym2151", tag, j, op->eg_sel_rr);
+
+ state_save_register_item("ym2151", tag, j, op->key);
+ state_save_register_item("ym2151", tag, j, op->ks);
+ state_save_register_item("ym2151", tag, j, op->ar);
+ state_save_register_item("ym2151", tag, j, op->d1r);
+ state_save_register_item("ym2151", tag, j, op->d2r);
+ state_save_register_item("ym2151", tag, j, op->rr);
+
+ state_save_register_item("ym2151", tag, j, op->reserved0);
+ state_save_register_item("ym2151", tag, j, op->reserved1);
}
- sprintf(buf1,"YM2151.registers");
-
- state_save_register_item_array(buf1, sndindex, chip->pan);
-
- state_save_register_item(buf1, sndindex, chip->eg_cnt);
- state_save_register_item(buf1, sndindex, chip->eg_timer);
- state_save_register_item(buf1, sndindex, chip->eg_timer_add);
- state_save_register_item(buf1, sndindex, chip->eg_timer_overflow);
-
- state_save_register_item(buf1, sndindex, chip->lfo_phase);
- state_save_register_item(buf1, sndindex, chip->lfo_timer);
- state_save_register_item(buf1, sndindex, chip->lfo_timer_add);
- state_save_register_item(buf1, sndindex, chip->lfo_overflow);
- state_save_register_item(buf1, sndindex, chip->lfo_counter);
- state_save_register_item(buf1, sndindex, chip->lfo_counter_add);
- state_save_register_item(buf1, sndindex, chip->lfo_wsel);
- state_save_register_item(buf1, sndindex, chip->amd);
- state_save_register_item(buf1, sndindex, chip->pmd);
- state_save_register_item(buf1, sndindex, chip->lfa);
- state_save_register_item(buf1, sndindex, chip->lfp);
-
- state_save_register_item(buf1, sndindex, chip->test);
- state_save_register_item(buf1, sndindex, chip->ct);
-
- state_save_register_item(buf1, sndindex, chip->noise);
- state_save_register_item(buf1, sndindex, chip->noise_rng);
- state_save_register_item(buf1, sndindex, chip->noise_p);
- state_save_register_item(buf1, sndindex, chip->noise_f);
-
- state_save_register_item(buf1, sndindex, chip->csm_req);
- state_save_register_item(buf1, sndindex, chip->irq_enable);
- state_save_register_item(buf1, sndindex, chip->status);
-
- state_save_register_item(buf1, sndindex, chip->timer_A_index);
- state_save_register_item(buf1, sndindex, chip->timer_B_index);
- state_save_register_item(buf1, sndindex, chip->timer_A_index_old);
- state_save_register_item(buf1, sndindex, chip->timer_B_index_old);
+ state_save_register_item_array("ym2151", tag, 0, chip->pan);
+
+ state_save_register_item("ym2151", tag, 0, chip->eg_cnt);
+ state_save_register_item("ym2151", tag, 0, chip->eg_timer);
+ state_save_register_item("ym2151", tag, 0, chip->eg_timer_add);
+ state_save_register_item("ym2151", tag, 0, chip->eg_timer_overflow);
+
+ state_save_register_item("ym2151", tag, 0, chip->lfo_phase);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_timer);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_timer_add);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_overflow);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_counter);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_counter_add);
+ state_save_register_item("ym2151", tag, 0, chip->lfo_wsel);
+ state_save_register_item("ym2151", tag, 0, chip->amd);
+ state_save_register_item("ym2151", tag, 0, chip->pmd);
+ state_save_register_item("ym2151", tag, 0, chip->lfa);
+ state_save_register_item("ym2151", tag, 0, chip->lfp);
+
+ state_save_register_item("ym2151", tag, 0, chip->test);
+ state_save_register_item("ym2151", tag, 0, chip->ct);
+
+ state_save_register_item("ym2151", tag, 0, chip->noise);
+ state_save_register_item("ym2151", tag, 0, chip->noise_rng);
+ state_save_register_item("ym2151", tag, 0, chip->noise_p);
+ state_save_register_item("ym2151", tag, 0, chip->noise_f);
+
+ state_save_register_item("ym2151", tag, 0, chip->csm_req);
+ state_save_register_item("ym2151", tag, 0, chip->irq_enable);
+ state_save_register_item("ym2151", tag, 0, chip->status);
+
+ state_save_register_item("ym2151", tag, 0, chip->timer_A_index);
+ state_save_register_item("ym2151", tag, 0, chip->timer_B_index);
+ state_save_register_item("ym2151", tag, 0, chip->timer_A_index_old);
+ state_save_register_item("ym2151", tag, 0, chip->timer_B_index_old);
#ifdef USE_MAME_TIMERS
- state_save_register_item(buf1, sndindex, chip->irqlinestate);
+ state_save_register_item("ym2151", tag, 0, chip->irqlinestate);
#endif
- state_save_register_item_array(buf1, sndindex, chip->connect);
+ state_save_register_item_array("ym2151", tag, 0, chip->connect);
state_save_register_postload(Machine, ym2151_postload, chip);
}
@@ -1496,7 +1492,7 @@ STATE_POSTLOAD( ym2151_postload )
{
}
-static void ym2151_state_save_register( YM2151 *chip, int sndindex )
+static void ym2151_state_save_register( YM2151 *chip, const char *tag )
{
}
#endif
@@ -1509,7 +1505,7 @@ static void ym2151_state_save_register( YM2151 *chip, int sndindex )
* 'clock' is the chip clock in Hz
* 'rate' is sampling rate
*/
-void * ym2151_init(int index, int clock, int rate)
+void * ym2151_init(const char *tag, int clock, int rate)
{
YM2151 *PSG;
@@ -1519,7 +1515,7 @@ void * ym2151_init(int index, int clock, int rate)
memset(PSG, 0, sizeof(YM2151));
- ym2151_state_save_register( PSG, index );
+ ym2151_state_save_register( PSG, tag );
init_tables();
diff --git a/src/emu/sound/ym2151.h b/src/emu/sound/ym2151.h
index 2ea69d1f0e4..40ef1ec5f1b 100644
--- a/src/emu/sound/ym2151.h
+++ b/src/emu/sound/ym2151.h
@@ -54,7 +54,7 @@ typedef stream_sample_t SAMP;
** 'clock' is the chip clock in Hz
** 'rate' is sampling rate
*/
-void *ym2151_init(int index, int clock, int rate);
+void *ym2151_init(const char *tag, int clock, int rate);
/* shutdown the YM2151 emulators*/
void ym2151_shutdown(void *chip);
diff --git a/src/emu/sound/ym2413.c b/src/emu/sound/ym2413.c
index d5dcaea6fd8..87d94c958b8 100644
--- a/src/emu/sound/ym2413.c
+++ b/src/emu/sound/ym2413.c
@@ -261,7 +261,7 @@ typedef struct {
UINT8 address; /* address register */
UINT8 status; /* status flag */
- int index; /* index */
+ const char *tag; /* tag */
int clock; /* master clock (Hz) */
int rate; /* sampling rate (Hz) */
double freqbase; /* frequency base */
@@ -1252,74 +1252,71 @@ static void OPLCloseTable( void )
static void OPLL_init_save(YM2413 *chip)
{
- int chipitem = chip->index * 100;
int chnum;
- state_save_register_item_array("ym2413", chipitem, chip->instvol_r);
- state_save_register_item("ym2413", chipitem, chip->eg_cnt);
- state_save_register_item("ym2413", chipitem, chip->eg_timer);
- state_save_register_item("ym2413", chipitem, chip->eg_timer_add);
- state_save_register_item("ym2413", chipitem, chip->eg_timer_overflow);
- state_save_register_item("ym2413", chipitem, chip->rhythm);
- state_save_register_item("ym2413", chipitem, chip->lfo_am_cnt);
- state_save_register_item("ym2413", chipitem, chip->lfo_am_inc);
- state_save_register_item("ym2413", chipitem, chip->lfo_pm_cnt);
- state_save_register_item("ym2413", chipitem, chip->lfo_pm_inc);
- state_save_register_item("ym2413", chipitem, chip->noise_rng);
- state_save_register_item("ym2413", chipitem, chip->noise_p);
- state_save_register_item("ym2413", chipitem, chip->noise_f);
- state_save_register_item_2d_array("ym2413", chipitem, chip->inst_tab);
- state_save_register_item("ym2413", chipitem, chip->address);
- state_save_register_item("ym2413", chipitem, chip->status);
+ state_save_register_item_array("ym2413", chip->tag, 0, chip->instvol_r);
+ state_save_register_item("ym2413", chip->tag, 0, chip->eg_cnt);
+ state_save_register_item("ym2413", chip->tag, 0, chip->eg_timer);
+ state_save_register_item("ym2413", chip->tag, 0, chip->eg_timer_add);
+ state_save_register_item("ym2413", chip->tag, 0, chip->eg_timer_overflow);
+ state_save_register_item("ym2413", chip->tag, 0, chip->rhythm);
+ state_save_register_item("ym2413", chip->tag, 0, chip->lfo_am_cnt);
+ state_save_register_item("ym2413", chip->tag, 0, chip->lfo_am_inc);
+ state_save_register_item("ym2413", chip->tag, 0, chip->lfo_pm_cnt);
+ state_save_register_item("ym2413", chip->tag, 0, chip->lfo_pm_inc);
+ state_save_register_item("ym2413", chip->tag, 0, chip->noise_rng);
+ state_save_register_item("ym2413", chip->tag, 0, chip->noise_p);
+ state_save_register_item("ym2413", chip->tag, 0, chip->noise_f);
+ state_save_register_item_2d_array("ym2413", chip->tag, 0, chip->inst_tab);
+ state_save_register_item("ym2413", chip->tag, 0, chip->address);
+ state_save_register_item("ym2413", chip->tag, 0, chip->status);
for (chnum = 0; chnum < ARRAY_LENGTH(chip->P_CH); chnum++)
{
OPLL_CH *ch = &chip->P_CH[chnum];
- int chitem = chipitem + (chnum + 1) * 10;
int slotnum;
- state_save_register_item("ym2413", chitem, ch->block_fnum);
- state_save_register_item("ym2413", chitem, ch->fc);
- state_save_register_item("ym2413", chitem, ch->ksl_base);
- state_save_register_item("ym2413", chitem, ch->kcode);
- state_save_register_item("ym2413", chitem, ch->sus);
+ state_save_register_item("ym2413", chip->tag, chnum, ch->block_fnum);
+ state_save_register_item("ym2413", chip->tag, chnum, ch->fc);
+ state_save_register_item("ym2413", chip->tag, chnum, ch->ksl_base);
+ state_save_register_item("ym2413", chip->tag, chnum, ch->kcode);
+ state_save_register_item("ym2413", chip->tag, chnum, ch->sus);
for (slotnum = 0; slotnum < ARRAY_LENGTH(ch->SLOT); slotnum++)
{
OPLL_SLOT *sl = &ch->SLOT[slotnum];
- int slitem = chitem + (slotnum + 1);
-
- state_save_register_item("ym2413", slitem, sl->ar);
- state_save_register_item("ym2413", slitem, sl->dr);
- state_save_register_item("ym2413", slitem, sl->rr);
- state_save_register_item("ym2413", slitem, sl->KSR);
- state_save_register_item("ym2413", slitem, sl->ksl);
- state_save_register_item("ym2413", slitem, sl->ksr);
- state_save_register_item("ym2413", slitem, sl->mul);
- state_save_register_item("ym2413", slitem, sl->phase);
- state_save_register_item("ym2413", slitem, sl->freq);
- state_save_register_item("ym2413", slitem, sl->fb_shift);
- state_save_register_item_array("ym2413", slitem, sl->op1_out);
- state_save_register_item("ym2413", slitem, sl->eg_type);
- state_save_register_item("ym2413", slitem, sl->state);
- state_save_register_item("ym2413", slitem, sl->TL);
- state_save_register_item("ym2413", slitem, sl->TLL);
- state_save_register_item("ym2413", slitem, sl->volume);
- state_save_register_item("ym2413", slitem, sl->sl);
- state_save_register_item("ym2413", slitem, sl->eg_sh_dp);
- state_save_register_item("ym2413", slitem, sl->eg_sel_dp);
- state_save_register_item("ym2413", slitem, sl->eg_sh_ar);
- state_save_register_item("ym2413", slitem, sl->eg_sel_ar);
- state_save_register_item("ym2413", slitem, sl->eg_sh_dr);
- state_save_register_item("ym2413", slitem, sl->eg_sel_dr);
- state_save_register_item("ym2413", slitem, sl->eg_sh_rr);
- state_save_register_item("ym2413", slitem, sl->eg_sel_rr);
- state_save_register_item("ym2413", slitem, sl->eg_sh_rs);
- state_save_register_item("ym2413", slitem, sl->eg_sel_rs);
- state_save_register_item("ym2413", slitem, sl->key);
- state_save_register_item("ym2413", slitem, sl->AMmask);
- state_save_register_item("ym2413", slitem, sl->vib);
- state_save_register_item("ym2413", slitem, sl->wavetable);
+
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->ar);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->dr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->rr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->KSR);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->ksl);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->ksr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->mul);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->phase);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->freq);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->fb_shift);
+ state_save_register_item_array("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->op1_out);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_type);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->state);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->TL);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->TLL);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->volume);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->sl);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sh_dp);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sel_dp);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sh_ar);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sel_ar);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sh_dr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sel_dr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sh_rr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sel_rr);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sh_rs);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->eg_sel_rs);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->key);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->AMmask);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->vib);
+ state_save_register_item("ym2413", chip->tag, chnum * ARRAY_LENGTH(ch->SLOT) + slotnum, sl->wavetable);
}
}
}
@@ -2005,7 +2002,7 @@ static void OPLLResetChip(YM2413 *chip)
/* Create one of virtual YM2413 */
/* 'clock' is chip clock in Hz */
/* 'rate' is sampling rate */
-static YM2413 *OPLLCreate(int clock, int rate, int index)
+static YM2413 *OPLLCreate(int clock, int rate, const char *tag)
{
char *ptr;
YM2413 *chip;
@@ -2027,7 +2024,7 @@ static YM2413 *OPLLCreate(int clock, int rate, int index)
chip = (YM2413 *)ptr;
- chip->index = index;
+ chip->tag = tag;
chip->clock = clock;
chip->rate = rate;
@@ -2082,10 +2079,10 @@ static unsigned char OPLLRead(YM2413 *chip,int a)
-void * ym2413_init(int clock, int rate, int index)
+void * ym2413_init(int clock, int rate, const char *tag)
{
/* emulator create */
- return OPLLCreate(clock, rate, index);
+ return OPLLCreate(clock, rate, tag);
}
void ym2413_shutdown(void *chip)
diff --git a/src/emu/sound/ym2413.h b/src/emu/sound/ym2413.h
index 28ae32545a5..6f0c4c87420 100644
--- a/src/emu/sound/ym2413.h
+++ b/src/emu/sound/ym2413.h
@@ -29,7 +29,7 @@ typedef INT8 SAMP;
-void *ym2413_init(int clock, int rate, int index);
+void *ym2413_init(int clock, int rate, const char *tag);
void ym2413_shutdown(void *chip);
void ym2413_reset_chip(void *chip);
void ym2413_write(void *chip, int a, int v);
diff --git a/src/emu/sound/ymdeltat.c b/src/emu/sound/ymdeltat.c
index f37a6cacaf5..3710868eee2 100644
--- a/src/emu/sound/ymdeltat.c
+++ b/src/emu/sound/ymdeltat.c
@@ -453,16 +453,16 @@ void YM_DELTAT_postload(YM_DELTAT *DELTAT,UINT8 *regs)
DELTAT->now_data = *(DELTAT->memory + (DELTAT->now_addr>>1) );
}
-void YM_DELTAT_savestate(const char *statename,int num,YM_DELTAT *DELTAT)
+void YM_DELTAT_savestate(const char *statename,const char *tag,YM_DELTAT *DELTAT)
{
#ifdef __STATE_H__
- state_save_register_item(statename, num, DELTAT->portstate);
- state_save_register_item(statename, num, DELTAT->now_addr);
- state_save_register_item(statename, num, DELTAT->now_step);
- state_save_register_item(statename, num, DELTAT->acc);
- state_save_register_item(statename, num, DELTAT->prev_acc);
- state_save_register_item(statename, num, DELTAT->adpcmd);
- state_save_register_item(statename, num, DELTAT->adpcml);
+ state_save_register_item(statename, tag, 0, DELTAT->portstate);
+ state_save_register_item(statename, tag, 0, DELTAT->now_addr);
+ state_save_register_item(statename, tag, 0, DELTAT->now_step);
+ state_save_register_item(statename, tag, 0, DELTAT->acc);
+ state_save_register_item(statename, tag, 0, DELTAT->prev_acc);
+ state_save_register_item(statename, tag, 0, DELTAT->adpcmd);
+ state_save_register_item(statename, tag, 0, DELTAT->adpcml);
#endif
}
diff --git a/src/emu/sound/ymdeltat.h b/src/emu/sound/ymdeltat.h
index 45c00bd48f8..c12c4f15c1f 100644
--- a/src/emu/sound/ymdeltat.h
+++ b/src/emu/sound/ymdeltat.h
@@ -79,6 +79,6 @@ void YM_DELTAT_ADPCM_Reset(YM_DELTAT *DELTAT,int pan,int emulation_mode);
void YM_DELTAT_ADPCM_CALC(YM_DELTAT *DELTAT);
void YM_DELTAT_postload(YM_DELTAT *DELTAT,UINT8 *regs);
-void YM_DELTAT_savestate(const char *statename,int num,YM_DELTAT *DELTAT);
+void YM_DELTAT_savestate(const char *statename,const char *tag,YM_DELTAT *DELTAT);
#endif /* __YMDELTAT_H__ */
diff --git a/src/emu/sound/ymf271.c b/src/emu/sound/ymf271.c
index 823454216ad..49c421f272c 100644
--- a/src/emu/sound/ymf271.c
+++ b/src/emu/sound/ymf271.c
@@ -112,7 +112,7 @@ typedef struct
write8_space_func ext_mem_write;
void (*irq_callback)(running_machine *, int);
- int index;
+ const char *tag;
UINT32 clock;
sound_stream * stream;
} YMF271Chip;
@@ -1655,80 +1655,77 @@ static void init_tables(void)
static void init_state(YMF271Chip *chip)
{
- int i, instance;
+ int i;
- for (i = 0; i < sizeof(chip->slots) / sizeof(chip->slots[0]); i++)
+ for (i = 0; i < ARRAY_LENGTH(chip->slots); i++)
{
- instance = chip->index * (sizeof(chip->slots) / sizeof(chip->slots[0])) + i;
-
- state_save_register_item("ymf271", instance, chip->slots[i].extout);
- state_save_register_item("ymf271", instance, chip->slots[i].lfoFreq);
- state_save_register_item("ymf271", instance, chip->slots[i].pms);
- state_save_register_item("ymf271", instance, chip->slots[i].ams);
- state_save_register_item("ymf271", instance, chip->slots[i].detune);
- state_save_register_item("ymf271", instance, chip->slots[i].multiple);
- state_save_register_item("ymf271", instance, chip->slots[i].tl);
- state_save_register_item("ymf271", instance, chip->slots[i].keyscale);
- state_save_register_item("ymf271", instance, chip->slots[i].ar);
- state_save_register_item("ymf271", instance, chip->slots[i].decay1rate);
- state_save_register_item("ymf271", instance, chip->slots[i].decay2rate);
- state_save_register_item("ymf271", instance, chip->slots[i].decay1lvl);
- state_save_register_item("ymf271", instance, chip->slots[i].relrate);
- state_save_register_item("ymf271", instance, chip->slots[i].fns);
- state_save_register_item("ymf271", instance, chip->slots[i].block);
- state_save_register_item("ymf271", instance, chip->slots[i].feedback);
- state_save_register_item("ymf271", instance, chip->slots[i].waveform);
- state_save_register_item("ymf271", instance, chip->slots[i].accon);
- state_save_register_item("ymf271", instance, chip->slots[i].algorithm);
- state_save_register_item("ymf271", instance, chip->slots[i].ch0_level);
- state_save_register_item("ymf271", instance, chip->slots[i].ch1_level);
- state_save_register_item("ymf271", instance, chip->slots[i].ch2_level);
- state_save_register_item("ymf271", instance, chip->slots[i].ch3_level);
- state_save_register_item("ymf271", instance, chip->slots[i].startaddr);
- state_save_register_item("ymf271", instance, chip->slots[i].loopaddr);
- state_save_register_item("ymf271", instance, chip->slots[i].endaddr);
- state_save_register_item("ymf271", instance, chip->slots[i].fs);
- state_save_register_item("ymf271", instance, chip->slots[i].srcnote);
- state_save_register_item("ymf271", instance, chip->slots[i].srcb);
- state_save_register_item("ymf271", instance, chip->slots[i].step);
- state_save_register_item("ymf271", instance, chip->slots[i].stepptr);
- state_save_register_item("ymf271", instance, chip->slots[i].active);
- state_save_register_item("ymf271", instance, chip->slots[i].bits);
- state_save_register_item("ymf271", instance, chip->slots[i].volume);
- state_save_register_item("ymf271", instance, chip->slots[i].env_state);
- state_save_register_item("ymf271", instance, chip->slots[i].env_attack_step);
- state_save_register_item("ymf271", instance, chip->slots[i].env_decay1_step);
- state_save_register_item("ymf271", instance, chip->slots[i].env_decay2_step);
- state_save_register_item("ymf271", instance, chip->slots[i].env_release_step);
- state_save_register_item("ymf271", instance, chip->slots[i].feedback_modulation0);
- state_save_register_item("ymf271", instance, chip->slots[i].feedback_modulation1);
- state_save_register_item("ymf271", instance, chip->slots[i].lfo_phase);
- state_save_register_item("ymf271", instance, chip->slots[i].lfo_step);
- state_save_register_item("ymf271", instance, chip->slots[i].lfo_amplitude);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].extout);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].lfoFreq);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].pms);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ams);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].detune);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].multiple);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].tl);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].keyscale);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ar);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].decay1rate);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].decay2rate);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].decay1lvl);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].relrate);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].fns);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].block);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].feedback);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].waveform);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].accon);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].algorithm);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ch0_level);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ch1_level);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ch2_level);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].ch3_level);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].startaddr);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].loopaddr);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].endaddr);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].fs);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].srcnote);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].srcb);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].stepptr);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].active);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].bits);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].volume);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].env_state);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].env_attack_step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].env_decay1_step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].env_decay2_step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].env_release_step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].feedback_modulation0);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].feedback_modulation1);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].lfo_phase);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].lfo_step);
+ state_save_register_item("ymf271", chip->tag, i, chip->slots[i].lfo_amplitude);
}
for (i = 0; i < sizeof(chip->groups) / sizeof(chip->groups[0]); i++)
{
- instance = chip->index * (sizeof(chip->groups) / sizeof(chip->groups[0])) + i;
- state_save_register_item("ymf271", instance, chip->groups[i].sync);
- state_save_register_item("ymf271", instance, chip->groups[i].pfm);
+ state_save_register_item("ymf271", chip->tag, i, chip->groups[i].sync);
+ state_save_register_item("ymf271", chip->tag, i, chip->groups[i].pfm);
}
- state_save_register_item("ymf271", chip->index, chip->timerA);
- state_save_register_item("ymf271", chip->index, chip->timerB);
- state_save_register_item("ymf271", chip->index, chip->timerAVal);
- state_save_register_item("ymf271", chip->index, chip->timerBVal);
- state_save_register_item("ymf271", chip->index, chip->irqstate);
- state_save_register_item("ymf271", chip->index, chip->status);
- state_save_register_item("ymf271", chip->index, chip->enable);
- state_save_register_item("ymf271", chip->index, chip->reg0);
- state_save_register_item("ymf271", chip->index, chip->reg1);
- state_save_register_item("ymf271", chip->index, chip->reg2);
- state_save_register_item("ymf271", chip->index, chip->reg3);
- state_save_register_item("ymf271", chip->index, chip->pcmreg);
- state_save_register_item("ymf271", chip->index, chip->timerreg);
- state_save_register_item("ymf271", chip->index, chip->ext_address);
- state_save_register_item("ymf271", chip->index, chip->ext_read);
+ state_save_register_item("ymf271", chip->tag, 0, chip->timerA);
+ state_save_register_item("ymf271", chip->tag, 0, chip->timerB);
+ state_save_register_item("ymf271", chip->tag, 0, chip->timerAVal);
+ state_save_register_item("ymf271", chip->tag, 0, chip->timerBVal);
+ state_save_register_item("ymf271", chip->tag, 0, chip->irqstate);
+ state_save_register_item("ymf271", chip->tag, 0, chip->status);
+ state_save_register_item("ymf271", chip->tag, 0, chip->enable);
+ state_save_register_item("ymf271", chip->tag, 0, chip->reg0);
+ state_save_register_item("ymf271", chip->tag, 0, chip->reg1);
+ state_save_register_item("ymf271", chip->tag, 0, chip->reg2);
+ state_save_register_item("ymf271", chip->tag, 0, chip->reg3);
+ state_save_register_item("ymf271", chip->tag, 0, chip->pcmreg);
+ state_save_register_item("ymf271", chip->tag, 0, chip->timerreg);
+ state_save_register_item("ymf271", chip->tag, 0, chip->ext_address);
+ state_save_register_item("ymf271", chip->tag, 0, chip->ext_read);
}
static void ymf271_init(YMF271Chip *chip, UINT8 *rom, void (*cb)(running_machine *,int), read8_space_func ext_read, write8_space_func ext_write)
@@ -1755,7 +1752,7 @@ static SND_START( ymf271 )
chip = auto_malloc(sizeof(*chip));
memset(chip, 0, sizeof(*chip));
- chip->index = sndindex;
+ chip->tag = tag;
chip->clock = clock;
intf = (config != NULL) ? config : &defintrf;
diff --git a/src/emu/sound/ymz280b.c b/src/emu/sound/ymz280b.c
index eebeb728222..085258ea213 100644
--- a/src/emu/sound/ymz280b.c
+++ b/src/emu/sound/ymz280b.c
@@ -656,38 +656,38 @@ static SND_START( ymz280b )
/* state save */
{
int j;
- state_save_register_item("YMZ280B", sndindex, chip->current_register);
- state_save_register_item("YMZ280B", sndindex, chip->status_register);
- state_save_register_item("YMZ280B", sndindex, chip->irq_state);
- state_save_register_item("YMZ280B", sndindex, chip->irq_mask);
- state_save_register_item("YMZ280B", sndindex, chip->irq_enable);
- state_save_register_item("YMZ280B", sndindex, chip->keyon_enable);
- state_save_register_item("YMZ280B", sndindex, chip->rom_readback_addr);
+ state_save_register_item("ymz280b", tag, 0, chip->current_register);
+ state_save_register_item("ymz280b", tag, 0, chip->status_register);
+ state_save_register_item("ymz280b", tag, 0, chip->irq_state);
+ state_save_register_item("ymz280b", tag, 0, chip->irq_mask);
+ state_save_register_item("ymz280b", tag, 0, chip->irq_enable);
+ state_save_register_item("ymz280b", tag, 0, chip->keyon_enable);
+ state_save_register_item("ymz280b", tag, 0, chip->rom_readback_addr);
for (j = 0; j < 8; j++)
{
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].playing);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].keyon);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].looping);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].mode);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].fnum);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].level);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].pan);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].start);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].stop);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].loop_start);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].loop_end);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].position);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].signal);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].step);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].loop_signal);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].loop_step);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].loop_count);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].output_left);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].output_right);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].output_pos);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].last_sample);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].curr_sample);
- state_save_register_item("YMZ280B.voice", sndindex*8+j, chip->voice[j].irq_schedule);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].playing);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].keyon);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].looping);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].mode);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].fnum);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].level);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].pan);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].start);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].stop);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].loop_start);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].loop_end);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].position);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].signal);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].step);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].loop_signal);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].loop_step);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].loop_count);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].output_left);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].output_right);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].output_pos);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].last_sample);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].curr_sample);
+ state_save_register_item("ymz280b", tag, j, chip->voice[j].irq_schedule);
}
}
diff --git a/src/emu/state.c b/src/emu/state.c
index a2911d75e82..aa351912046 100644
--- a/src/emu/state.c
+++ b/src/emu/state.c
@@ -225,7 +225,7 @@ int state_save_registration_allowed(void)
array of data in memory
-------------------------------------------------*/
-void state_save_register_memory(const char *module, UINT32 instance, const char *name, void *val, UINT32 valsize, UINT32 valcount)
+void state_save_register_memory(const char *module, const char *tag, UINT32 index, const char *name, void *val, UINT32 valsize, UINT32 valcount)
{
ss_entry **entry, *next;
astring *totalname;
@@ -235,16 +235,19 @@ void state_save_register_memory(const char *module, UINT32 instance, const char
/* check for invalid timing */
if (!ss_registration_allowed)
{
- logerror("Attempt to register save state entry after state registration is closed! module %s name %s\n",module,name);
+ logerror("Attempt to register save state entry after state registration is closed! module %s tag %s name %s\n",module, tag, name);
if (Machine->gamedrv->flags & GAME_SUPPORTS_SAVE)
- fatalerror("Attempt to register save state entry after state registration is closed! module %s name %s\n",module,name);
+ fatalerror("Attempt to register save state entry after state registration is closed! module %s tag %s name %s\n", module, tag, name);
ss_illegal_regs++;
return;
}
/* create the full name */
totalname = astring_alloc();
- astring_printf(totalname, "%X/%s/%X/%s", ss_current_tag, module, instance, name);
+ if (tag != NULL)
+ astring_printf(totalname, "%X/%s/%s/%X/%s", ss_current_tag, module, tag, index, name);
+ else
+ astring_printf(totalname, "%X/%s/%X/%s", ss_current_tag, module, index, name);
/* look for duplicates and an entry to insert in front of */
for (entry = &ss_registry; *entry; entry = &(*entry)->next)
@@ -280,9 +283,9 @@ void state_save_register_memory(const char *module, UINT32 instance, const char
bitmap to be saved
-------------------------------------------------*/
-void state_save_register_bitmap(const char *module, UINT32 instance, const char *name, bitmap_t *val)
+void state_save_register_bitmap(const char *module, const char *tag, UINT32 index, const char *name, bitmap_t *val)
{
- state_save_register_memory(module, instance, name, val->base, val->bpp / 8, val->rowpixels * val->height);
+ state_save_register_memory(module, tag, index, name, val->base, val->bpp / 8, val->rowpixels * val->height);
}
@@ -855,53 +858,6 @@ const char *state_save_get_indexed_item(int index, void **base, UINT32 *valsize,
/*-------------------------------------------------
- state_save_combine_module_and_tag - creates
- a name from a given module and tag that can
- be used as the first agrument to the
- state_save_register_item family of functions
--------------------------------------------------*/
-
-void state_save_combine_module_and_tag(char *dest, const char *module, const char *tag)
-{
- astring *module_lower;
- astring *tag_lower;
- astring *combined;
-
- /* validate arguments */
- assert(dest != NULL);
- assert(module != NULL);
- assert(tag != NULL);
- assert(strlen(module) > 0);
- assert(strlen(tag) > 0);
-
- /* allocate objects */
- module_lower = astring_alloc();
- tag_lower = astring_alloc();
- combined = astring_alloc();
-
- /* convert both arguments to lower case for case insenstive comparisson */
- astring_tolower(astring_cpyc(module_lower, module));
- astring_tolower(astring_cpyc(tag_lower, tag));
-
- /* if the tag contains the module name, just use the tag as the combined name */
- if (astring_find(tag_lower, 0, module_lower) >= 0)
- astring_cpyc(combined, tag);
-
- /* otherwise combine the module and the tag */
- else
- astring_assemble_3(combined, module, ".", tag);
-
- /* copy the result to the destination array */
- strcpy(dest, astring_c(combined));
-
- /* free the objects */
- astring_free(module_lower);
- astring_free(tag_lower);
- astring_free(combined);
-}
-
-
-/*-------------------------------------------------
state_save_dump_registry - dump the registry
to the logfile
-------------------------------------------------*/
diff --git a/src/emu/state.h b/src/emu/state.h
index 76cf3deaf97..ddfb2312fdc 100644
--- a/src/emu/state.h
+++ b/src/emu/state.h
@@ -46,41 +46,41 @@ typedef void (*state_postload_func)(running_machine *machine, void *param);
IS_COMPATIBLE_TYPE(_valtype, INT8) || IS_COMPATIBLE_TYPE(_valtype, UINT8) || \
IS_COMPATIBLE_TYPE(_valtype, PAIR) || IS_COMPATIBLE_TYPE(_valtype, PAIR64))
-#define state_save_register_generic(_mod, _inst, _name, _val, _valsize, _count) \
+#define state_save_register_generic(_mod, _tag, _index, _name, _val, _valsize, _count) \
do { \
assert_always(IS_VALID_SAVE_TYPE(_valsize), "Invalid data type supplied for state saving.");\
- state_save_register_memory(_mod, _inst, _name, _val, sizeof(_valsize), _count); \
+ state_save_register_memory(_mod, _tag, _index, _name, _val, sizeof(_valsize), _count); \
} while (0)
-#define state_save_register_item(_mod, _inst, _val) \
- state_save_register_generic(_mod, _inst, #_val, &_val, _val, 1)
+#define state_save_register_item(_mod, _tag, _index, _val) \
+ state_save_register_generic(_mod, _tag, _index, #_val, &_val, _val, 1)
-#define state_save_register_item_pointer(_mod, _inst, _val, _count) \
- state_save_register_generic(_mod, _inst, #_val, &_val[0], _val[0], _count)
+#define state_save_register_item_pointer(_mod, _tag, _index, _val, _count) \
+ state_save_register_generic(_mod, _tag, _index, #_val, &_val[0], _val[0], _count)
-#define state_save_register_item_array(_mod, _inst, _val) \
- state_save_register_item_pointer(_mod, _inst, _val, sizeof(_val)/sizeof(_val[0]))
+#define state_save_register_item_array(_mod, _tag, _index, _val) \
+ state_save_register_item_pointer(_mod, _tag, _index, _val, sizeof(_val)/sizeof(_val[0]))
-#define state_save_register_item_2d_array(_mod, _inst, _val) \
- state_save_register_item_pointer(_mod, _inst, _val[0], sizeof(_val)/sizeof(_val[0][0]))
+#define state_save_register_item_2d_array(_mod, _tag, _index, _val) \
+ state_save_register_item_pointer(_mod, _tag, _index, _val[0], sizeof(_val)/sizeof(_val[0][0]))
-#define state_save_register_item_bitmap(_mod, _inst, _val) \
- state_save_register_bitmap(_mod, _inst, #_val, _val)
+#define state_save_register_item_bitmap(_mod, _tag, _index, _val) \
+ state_save_register_bitmap(_mod, _tag, _index, #_val, _val)
#define state_save_register_global(_val) \
- state_save_register_item("globals", 0, _val)
+ state_save_register_item("globals", NULL, 0, _val)
#define state_save_register_global_pointer(_val, _count) \
- state_save_register_item_pointer("globals", 0, _val, _count)
+ state_save_register_item_pointer("globals", NULL, 0, _val, _count)
#define state_save_register_global_array(_val) \
- state_save_register_item_array("globals", 0, _val)
+ state_save_register_item_array("globals", NULL, 0, _val)
#define state_save_register_global_2d_array(_val) \
- state_save_register_item_2d_array("globals", 0, _val)
+ state_save_register_item_2d_array("globals", NULL, 0, _val)
#define state_save_register_global_bitmap(_val) \
- state_save_register_bitmap("globals", 0, #_val, _val)
+ state_save_register_bitmap("globals", NULL, 0, #_val, _val)
@@ -98,8 +98,8 @@ int state_save_registration_allowed(void);
/* Registering functions */
int state_save_get_reg_count(void);
-void state_save_register_memory(const char *module, UINT32 instance, const char *name, void *val, UINT32 valsize, UINT32 valcount);
-void state_save_register_bitmap(const char *module, UINT32 instance, const char *name, bitmap_t *val);
+void state_save_register_memory(const char *module, const char *tag, UINT32 index, const char *name, void *val, UINT32 valsize, UINT32 valcount);
+void state_save_register_bitmap(const char *module, const char *tag, UINT32 index, const char *name, bitmap_t *val);
void state_save_register_presave(running_machine *machine, state_presave_func func, void *param);
void state_save_register_postload(running_machine *machine, state_postload_func func, void *param);
@@ -118,9 +118,6 @@ void state_save_load_continue(running_machine *machine);
void state_save_save_finish(running_machine *machine);
void state_save_load_finish(void);
-/* Helper function for creating a unique name */
-void state_save_combine_module_and_tag(char *dest, const char *module, const char *tag);
-
/* Display function */
void state_save_dump_registry(void);
diff --git a/src/emu/streams.c b/src/emu/streams.c
index fa855369857..bc67c49cad6 100644
--- a/src/emu/streams.c
+++ b/src/emu/streams.c
@@ -372,8 +372,8 @@ sound_stream *stream_create(int inputs, int outputs, int sample_rate, void *para
stream->param = param;
/* create a unique tag for saving */
- sprintf(statetag, "stream.%d", stream->index);
- state_save_register_item(statetag, 0, stream->sample_rate);
+ sprintf(statetag, "%d", stream->index);
+ state_save_register_item("stream", statetag, 0, stream->sample_rate);
state_save_register_postload(Machine, stream_postload, stream);
/* allocate space for the inputs */
@@ -390,7 +390,7 @@ sound_stream *stream_create(int inputs, int outputs, int sample_rate, void *para
{
stream->input[inputnum].owner = stream;
stream->input[inputnum].gain = 0x100;
- state_save_register_item(statetag, inputnum, stream->input[inputnum].gain);
+ state_save_register_item("stream", statetag, inputnum, stream->input[inputnum].gain);
}
/* allocate space for the outputs */
@@ -407,7 +407,7 @@ sound_stream *stream_create(int inputs, int outputs, int sample_rate, void *para
{
stream->output[outputnum].owner = stream;
stream->output[outputnum].gain = 0x100;
- state_save_register_item(statetag, outputnum, stream->output[outputnum].gain);
+ state_save_register_item("stream", statetag, outputnum, stream->output[outputnum].gain);
}
/* hook us into the master stream list */
diff --git a/src/emu/tilemap.c b/src/emu/tilemap.c
index a7ea21d780d..c3e2b33a5bd 100644
--- a/src/emu/tilemap.c
+++ b/src/emu/tilemap.c
@@ -345,18 +345,18 @@ tilemap *tilemap_create(tile_get_info_func tile_get_info, tilemap_mapper_func ma
tilemap_tailptr = &tmap->next;
/* save relevant state */
- state_save_register_item("tilemap", tilemap_instance, tmap->enable);
- state_save_register_item("tilemap", tilemap_instance, tmap->attributes);
- state_save_register_item("tilemap", tilemap_instance, tmap->palette_offset);
- state_save_register_item("tilemap", tilemap_instance, tmap->pen_data_offset);
- state_save_register_item("tilemap", tilemap_instance, tmap->scrollrows);
- state_save_register_item("tilemap", tilemap_instance, tmap->scrollcols);
- state_save_register_item_pointer("tilemap", tilemap_instance, tmap->rowscroll, rows * tileheight);
- state_save_register_item_pointer("tilemap", tilemap_instance, tmap->colscroll, cols * tilewidth);
- state_save_register_item("tilemap", tilemap_instance, tmap->dx);
- state_save_register_item("tilemap", tilemap_instance, tmap->dx_flipped);
- state_save_register_item("tilemap", tilemap_instance, tmap->dy);
- state_save_register_item("tilemap", tilemap_instance, tmap->dy_flipped);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->enable);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->attributes);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->palette_offset);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->pen_data_offset);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->scrollrows);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->scrollcols);
+ state_save_register_item_pointer("tilemap", NULL, tilemap_instance, tmap->rowscroll, rows * tileheight);
+ state_save_register_item_pointer("tilemap", NULL, tilemap_instance, tmap->colscroll, cols * tilewidth);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->dx);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->dx_flipped);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->dy);
+ state_save_register_item("tilemap", NULL, tilemap_instance, tmap->dy_flipped);
tilemap_instance++;
/* reset everything after a load */
diff --git a/src/emu/timer.c b/src/emu/timer.c
index 53a4b85928f..fd72fdd4ec5 100644
--- a/src/emu/timer.c
+++ b/src/emu/timer.c
@@ -296,8 +296,8 @@ void timer_init(running_machine *machine)
/* register with the save state system */
state_save_push_tag(0);
- state_save_register_item("timer", 0, global_basetime.seconds);
- state_save_register_item("timer", 0, global_basetime.attoseconds);
+ state_save_register_item("timer", NULL, 0, global_basetime.seconds);
+ state_save_register_item("timer", NULL, 0, global_basetime.attoseconds);
state_save_register_postload(machine, timer_postload, NULL);
state_save_pop_tag();
@@ -512,7 +512,6 @@ void timer_set_minimum_quantum(running_machine *machine, attoseconds_t quantum)
static void timer_register_save(emu_timer *timer)
{
- char buf[256];
int count = 0;
emu_timer *t;
@@ -521,19 +520,16 @@ static void timer_register_save(emu_timer *timer)
if (!strcmp(t->func, timer->func))
count++;
- /* make up a name */
- sprintf(buf, "timer.%s", timer->func);
-
/* use different instances to differentiate the bits */
state_save_push_tag(0);
- state_save_register_item(buf, count, timer->param);
- state_save_register_item(buf, count, timer->enabled);
- state_save_register_item(buf, count, timer->period.seconds);
- state_save_register_item(buf, count, timer->period.attoseconds);
- state_save_register_item(buf, count, timer->start.seconds);
- state_save_register_item(buf, count, timer->start.attoseconds);
- state_save_register_item(buf, count, timer->expire.seconds);
- state_save_register_item(buf, count, timer->expire.attoseconds);
+ state_save_register_item("timer", timer->func, count, timer->param);
+ state_save_register_item("timer", timer->func, count, timer->enabled);
+ state_save_register_item("timer", timer->func, count, timer->period.seconds);
+ state_save_register_item("timer", timer->func, count, timer->period.attoseconds);
+ state_save_register_item("timer", timer->func, count, timer->start.seconds);
+ state_save_register_item("timer", timer->func, count, timer->start.attoseconds);
+ state_save_register_item("timer", timer->func, count, timer->expire.seconds);
+ state_save_register_item("timer", timer->func, count, timer->expire.attoseconds);
state_save_pop_tag();
}
@@ -1145,7 +1141,6 @@ static void timer_logtimers(void)
static DEVICE_START( timer )
{
timer_state *state = get_safe_token(device);
- char unique_tag[50];
timer_config *config;
void *param;
@@ -1164,10 +1159,6 @@ static DEVICE_START( timer )
/* copy the pointer parameter */
state->ptr = config->ptr;
- /* create the name for save states */
- assert(strlen(device->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "timer_device", device->tag);
-
/* type based configuration */
switch (config->type)
{
@@ -1187,7 +1178,7 @@ static DEVICE_START( timer )
state->start_delay = attotime_zero;
/* register for state saves */
- state_save_register_item(unique_tag, 0, state->param);
+ state_save_register_item("timer_device", device->tag, 0, state->param);
/* allocate the backing timer */
param = (void *)device;
@@ -1215,11 +1206,11 @@ static DEVICE_START( timer )
state->start_delay = attotime_zero;
/* register for state saves */
- state_save_register_item(unique_tag, 0, state->start_delay.seconds);
- state_save_register_item(unique_tag, 0, state->start_delay.attoseconds);
- state_save_register_item(unique_tag, 0, state->period.seconds);
- state_save_register_item(unique_tag, 0, state->period.attoseconds);
- state_save_register_item(unique_tag, 0, state->param);
+ state_save_register_item("timer_device", device->tag, 0, state->start_delay.seconds);
+ state_save_register_item("timer_device", device->tag, 0, state->start_delay.attoseconds);
+ state_save_register_item("timer_device", device->tag, 0, state->period.seconds);
+ state_save_register_item("timer_device", device->tag, 0, state->period.attoseconds);
+ state_save_register_item("timer_device", device->tag, 0, state->param);
/* allocate the backing timer */
param = (void *)device;
@@ -1246,7 +1237,7 @@ static DEVICE_START( timer )
state->first_time = TRUE;
/* register for state saves */
- state_save_register_item(unique_tag, 0, state->first_time);
+ state_save_register_item("timer_device", device->tag, 0, state->first_time);
/* fire it as soon as the emulation starts */
timer_adjust_oneshot(state->timer, attotime_zero, 0);
diff --git a/src/emu/video.c b/src/emu/video.c
index be9616e90e3..099cdfb8540 100644
--- a/src/emu/video.c
+++ b/src/emu/video.c
@@ -1185,7 +1185,6 @@ void video_screen_register_vblank_callback(const device_config *screen, vblank_s
static DEVICE_START( video_screen )
{
const device_config *screen = device;
- char unique_tag[40];
screen_state *state = get_safe_token(screen);
render_container_user_settings settings;
render_container *container;
@@ -1248,26 +1247,22 @@ static DEVICE_START( video_screen )
if (screen->machine->config->video_attributes & VIDEO_UPDATE_SCANLINE)
timer_adjust_oneshot(state->scanline_timer, video_screen_get_time_until_pos(screen, 0, 0), 0);
- /* register for save states */
- assert(strlen(screen->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "video_screen", screen->tag);
-
- state_save_register_item(unique_tag, 0, state->width);
- state_save_register_item(unique_tag, 0, state->height);
- state_save_register_item(unique_tag, 0, state->visarea.min_x);
- state_save_register_item(unique_tag, 0, state->visarea.min_y);
- state_save_register_item(unique_tag, 0, state->visarea.max_x);
- state_save_register_item(unique_tag, 0, state->visarea.max_y);
- state_save_register_item(unique_tag, 0, state->last_partial_scan);
- state_save_register_item(unique_tag, 0, state->frame_period);
- state_save_register_item(unique_tag, 0, state->scantime);
- state_save_register_item(unique_tag, 0, state->pixeltime);
- state_save_register_item(unique_tag, 0, state->vblank_period);
- state_save_register_item(unique_tag, 0, state->vblank_start_time.seconds);
- state_save_register_item(unique_tag, 0, state->vblank_start_time.attoseconds);
- state_save_register_item(unique_tag, 0, state->vblank_end_time.seconds);
- state_save_register_item(unique_tag, 0, state->vblank_end_time.attoseconds);
- state_save_register_item(unique_tag, 0, state->frame_number);
+ state_save_register_item("video_screen", screen->tag, 0, state->width);
+ state_save_register_item("video_screen", screen->tag, 0, state->height);
+ state_save_register_item("video_screen", screen->tag, 0, state->visarea.min_x);
+ state_save_register_item("video_screen", screen->tag, 0, state->visarea.min_y);
+ state_save_register_item("video_screen", screen->tag, 0, state->visarea.max_x);
+ state_save_register_item("video_screen", screen->tag, 0, state->visarea.max_y);
+ state_save_register_item("video_screen", screen->tag, 0, state->last_partial_scan);
+ state_save_register_item("video_screen", screen->tag, 0, state->frame_period);
+ state_save_register_item("video_screen", screen->tag, 0, state->scantime);
+ state_save_register_item("video_screen", screen->tag, 0, state->pixeltime);
+ state_save_register_item("video_screen", screen->tag, 0, state->vblank_period);
+ state_save_register_item("video_screen", screen->tag, 0, state->vblank_start_time.seconds);
+ state_save_register_item("video_screen", screen->tag, 0, state->vblank_start_time.attoseconds);
+ state_save_register_item("video_screen", screen->tag, 0, state->vblank_end_time.seconds);
+ state_save_register_item("video_screen", screen->tag, 0, state->vblank_end_time.attoseconds);
+ state_save_register_item("video_screen", screen->tag, 0, state->frame_number);
state_save_register_postload(device->machine, video_screen_postload, (void *)device);
return DEVICE_START_OK;
diff --git a/src/emu/video/cdp1869.c b/src/emu/video/cdp1869.c
index f254332b3ca..f7a8fd56f89 100644
--- a/src/emu/video/cdp1869.c
+++ b/src/emu/video/cdp1869.c
@@ -779,13 +779,11 @@ static void cdp1869_sound_update(const device_config *device, stream_sample_t **
static DEVICE_START( cdp1869 )
{
cdp1869_t *cdp1869 = get_safe_token(device);
- char unique_tag[30];
// validate arguments
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
assert(device->static_config != NULL);
cdp1869->intf = device->static_config;
@@ -813,32 +811,30 @@ static DEVICE_START( cdp1869 )
}
// register for state saving
-
- state_save_combine_module_and_tag(unique_tag, "CDP1869", device->tag);
state_save_register_postload(device->machine, cdp1869_state_save_postload, cdp1869);
- state_save_register_item(unique_tag, 0, cdp1869->dispoff);
- state_save_register_item(unique_tag, 0, cdp1869->fresvert);
- state_save_register_item(unique_tag, 0, cdp1869->freshorz);
- state_save_register_item(unique_tag, 0, cdp1869->cmem);
- state_save_register_item(unique_tag, 0, cdp1869->dblpage);
- state_save_register_item(unique_tag, 0, cdp1869->line16);
- state_save_register_item(unique_tag, 0, cdp1869->line9);
- state_save_register_item(unique_tag, 0, cdp1869->cfc);
- state_save_register_item(unique_tag, 0, cdp1869->col);
- state_save_register_item(unique_tag, 0, cdp1869->bkg);
- state_save_register_item(unique_tag, 0, cdp1869->pma);
- state_save_register_item(unique_tag, 0, cdp1869->hma);
-
- state_save_register_item(unique_tag, 0, cdp1869->signal);
- state_save_register_item(unique_tag, 0, cdp1869->incr);
- state_save_register_item(unique_tag, 0, cdp1869->toneoff);
- state_save_register_item(unique_tag, 0, cdp1869->wnoff);
- state_save_register_item(unique_tag, 0, cdp1869->tonediv);
- state_save_register_item(unique_tag, 0, cdp1869->tonefreq);
- state_save_register_item(unique_tag, 0, cdp1869->toneamp);
- state_save_register_item(unique_tag, 0, cdp1869->wnfreq);
- state_save_register_item(unique_tag, 0, cdp1869->wnamp);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->dispoff);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->fresvert);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->freshorz);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->cmem);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->dblpage);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->line16);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->line9);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->cfc);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->col);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->bkg);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->pma);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->hma);
+
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->signal);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->incr);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->toneoff);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->wnoff);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->tonediv);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->tonefreq);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->toneamp);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->wnfreq);
+ state_save_register_item("CDP1869", device->tag, 0, cdp1869->wnamp);
return DEVICE_START_OK;
}
diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c
index 77069d8ba04..5ba34f6fcdc 100644
--- a/src/emu/video/generic.c
+++ b/src/emu/video/generic.c
@@ -295,8 +295,8 @@ void generic_video_init(running_machine *machine)
spriteram_3_size = 0;
tmpbitmap = NULL;
flip_screen_x = flip_screen_y = 0;
- state_save_register_item("video", 0, flip_screen_x);
- state_save_register_item("video", 0, flip_screen_y);
+ state_save_register_item("video", NULL, 0, flip_screen_x);
+ state_save_register_item("video", NULL, 0, flip_screen_y);
}
@@ -316,7 +316,7 @@ VIDEO_START( generic_bitmapped )
tmpbitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
/* ensure the contents of the bitmap are saved */
- state_save_register_bitmap("video", 0, "tmpbitmap", tmpbitmap);
+ state_save_register_bitmap("video", NULL, 0, "tmpbitmap", tmpbitmap);
}
diff --git a/src/emu/video/mc6845.c b/src/emu/video/mc6845.c
index 1858fe1eb78..7d73a83d74e 100644
--- a/src/emu/video/mc6845.c
+++ b/src/emu/video/mc6845.c
@@ -742,12 +742,10 @@ void mc6845_update(const device_config *device, bitmap_t *bitmap, const rectangl
static device_start_err common_start(const device_config *device, int device_type)
{
mc6845_t *mc6845 = get_safe_token(device);
- char unique_tag[30];
/* validate arguments */
assert(device != NULL);
assert(device->tag != NULL);
- assert(strlen(device->tag) < 20);
mc6845->intf = device->static_config;
mc6845->device_type = device_type;
@@ -785,32 +783,30 @@ static device_start_err common_start(const device_config *device, int device_typ
mc6845->light_pen_latch_timer = timer_alloc(light_pen_latch_timer_cb, (void *)device);
/* register for state saving */
- state_save_combine_module_and_tag(unique_tag, device_tags[device_type], device->tag);
-
state_save_register_postload(device->machine, mc6845_state_save_postload, mc6845);
- state_save_register_item(unique_tag, 0, mc6845->clock);
- state_save_register_item(unique_tag, 0, mc6845->hpixels_per_column);
- state_save_register_item(unique_tag, 0, mc6845->register_address_latch);
- state_save_register_item(unique_tag, 0, mc6845->horiz_char_total);
- state_save_register_item(unique_tag, 0, mc6845->horiz_disp);
- state_save_register_item(unique_tag, 0, mc6845->horiz_sync_pos);
- state_save_register_item(unique_tag, 0, mc6845->sync_width);
- state_save_register_item(unique_tag, 0, mc6845->vert_char_total);
- state_save_register_item(unique_tag, 0, mc6845->vert_total_adj);
- state_save_register_item(unique_tag, 0, mc6845->vert_disp);
- state_save_register_item(unique_tag, 0, mc6845->vert_sync_pos);
- state_save_register_item(unique_tag, 0, mc6845->mode_control);
- state_save_register_item(unique_tag, 0, mc6845->max_ras_addr);
- state_save_register_item(unique_tag, 0, mc6845->cursor_start_ras);
- state_save_register_item(unique_tag, 0, mc6845->cursor_end_ras);
- state_save_register_item(unique_tag, 0, mc6845->disp_start_addr);
- state_save_register_item(unique_tag, 0, mc6845->cursor_addr);
- state_save_register_item(unique_tag, 0, mc6845->light_pen_addr);
- state_save_register_item(unique_tag, 0, mc6845->light_pen_latched);
- state_save_register_item(unique_tag, 0, mc6845->cursor_state);
- state_save_register_item(unique_tag, 0, mc6845->cursor_blink_count);
- state_save_register_item(unique_tag, 0, mc6845->update_addr);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->clock);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->hpixels_per_column);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->register_address_latch);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->horiz_char_total);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->horiz_disp);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->horiz_sync_pos);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->sync_width);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->vert_char_total);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->vert_total_adj);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->vert_disp);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->vert_sync_pos);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->mode_control);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->max_ras_addr);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->cursor_start_ras);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->cursor_end_ras);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->disp_start_addr);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->cursor_addr);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->light_pen_addr);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->light_pen_latched);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->cursor_state);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->cursor_blink_count);
+ state_save_register_item(device_tags[device_type], device->tag, 0, mc6845->update_addr);
return DEVICE_START_OK;
}
diff --git a/src/emu/video/tms9928a.c b/src/emu/video/tms9928a.c
index 4cada4e09e3..9c8a710baf5 100644
--- a/src/emu/video/tms9928a.c
+++ b/src/emu/video/tms9928a.c
@@ -212,21 +212,21 @@ static void TMS9928A_start (running_machine *machine, const TMS9928a_interface *
TMS9928A_reset ();
tms.LimitSprites = 1;
- state_save_register_item("tms9928a", 0, tms.Regs[0]);
- state_save_register_item("tms9928a", 0, tms.Regs[1]);
- state_save_register_item("tms9928a", 0, tms.Regs[2]);
- state_save_register_item("tms9928a", 0, tms.Regs[3]);
- state_save_register_item("tms9928a", 0, tms.Regs[4]);
- state_save_register_item("tms9928a", 0, tms.Regs[5]);
- state_save_register_item("tms9928a", 0, tms.Regs[6]);
- state_save_register_item("tms9928a", 0, tms.Regs[7]);
- state_save_register_item("tms9928a", 0, tms.StatusReg);
- state_save_register_item("tms9928a", 0, tms.ReadAhead);
- state_save_register_item("tms9928a", 0, tms.FirstByte);
- state_save_register_item("tms9928a", 0, tms.latch);
- state_save_register_item("tms9928a", 0, tms.Addr);
- state_save_register_item("tms9928a", 0, tms.INT);
- state_save_register_item_pointer("tms9928a", 0, tms.vMem, intf->vram);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[0]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[1]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[2]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[3]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[4]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[5]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[6]);
+ state_save_register_item("tms9928a", NULL, 0, tms.Regs[7]);
+ state_save_register_item("tms9928a", NULL, 0, tms.StatusReg);
+ state_save_register_item("tms9928a", NULL, 0, tms.ReadAhead);
+ state_save_register_item("tms9928a", NULL, 0, tms.FirstByte);
+ state_save_register_item("tms9928a", NULL, 0, tms.latch);
+ state_save_register_item("tms9928a", NULL, 0, tms.Addr);
+ state_save_register_item("tms9928a", NULL, 0, tms.INT);
+ state_save_register_item_pointer("tms9928a", NULL, 0, tms.vMem, intf->vram);
}
const rectangle *TMS9928A_get_visarea (void)
diff --git a/src/emu/video/v9938.c b/src/emu/video/v9938.c
index ba4169b96ea..7b049fb333a 100644
--- a/src/emu/video/v9938.c
+++ b/src/emu/video/v9938.c
@@ -512,52 +512,52 @@ void v9938_init (running_machine *machine, int which, const device_config *scree
else
vdp->vram_exp = NULL;
- state_save_register_item("v9938", which, vdp->offset_x);
- state_save_register_item("v9938", which, vdp->offset_y);
- state_save_register_item("v9938", which, vdp->visible_y);
- state_save_register_item("v9938", which, vdp->mode);
- state_save_register_item("v9938", which, vdp->pal_write_first);
- state_save_register_item("v9938", which, vdp->cmd_write_first);
- state_save_register_item("v9938", which, vdp->pal_write);
- state_save_register_item("v9938", which, vdp->cmd_write);
- state_save_register_item_array("v9938", which, vdp->palReg);
- state_save_register_item_array("v9938", which, vdp->statReg);
- state_save_register_item_array("v9938", which, vdp->contReg);
- state_save_register_item("v9938", which, vdp->read_ahead);
- state_save_register_item_pointer("v9938", which, vdp->vram, 0x20000);
+ state_save_register_item("v9938", NULL, which, vdp->offset_x);
+ state_save_register_item("v9938", NULL, which, vdp->offset_y);
+ state_save_register_item("v9938", NULL, which, vdp->visible_y);
+ state_save_register_item("v9938", NULL, which, vdp->mode);
+ state_save_register_item("v9938", NULL, which, vdp->pal_write_first);
+ state_save_register_item("v9938", NULL, which, vdp->cmd_write_first);
+ state_save_register_item("v9938", NULL, which, vdp->pal_write);
+ state_save_register_item("v9938", NULL, which, vdp->cmd_write);
+ state_save_register_item_array("v9938", NULL, which, vdp->palReg);
+ state_save_register_item_array("v9938", NULL, which, vdp->statReg);
+ state_save_register_item_array("v9938", NULL, which, vdp->contReg);
+ state_save_register_item("v9938", NULL, which, vdp->read_ahead);
+ state_save_register_item_pointer("v9938", NULL, which, vdp->vram, 0x20000);
if ( vdp->vram_exp != NULL )
- state_save_register_item_pointer("v9938", which, vdp->vram_exp, 0x10000);
- state_save_register_item("v9938", which, vdp->INT);
- state_save_register_item("v9938", which, vdp->scanline);
- state_save_register_item("v9938", which, vdp->blink);
- state_save_register_item("v9938", which, vdp->blink_count);
- state_save_register_item("v9938", which, vdp->size);
- state_save_register_item("v9938", which, vdp->size_old);
- state_save_register_item("v9938", which, vdp->size_auto);
- state_save_register_item("v9938", which, vdp->size_now);
- state_save_register_item("v9938", which, vdp->mx_delta);
- state_save_register_item("v9938", which, vdp->my_delta);
- state_save_register_item("v9938", which, vdp->button_state);
- state_save_register_item_array("v9938", which, vdp->pal_ind16);
- state_save_register_item_array("v9938", which, vdp->pal_ind256);
- state_save_register_item("v9938", which, vdp->MMC.SX);
- state_save_register_item("v9938", which, vdp->MMC.SY);
- state_save_register_item("v9938", which, vdp->MMC.DX);
- state_save_register_item("v9938", which, vdp->MMC.DY);
- state_save_register_item("v9938", which, vdp->MMC.TX);
- state_save_register_item("v9938", which, vdp->MMC.TY);
- state_save_register_item("v9938", which, vdp->MMC.NX);
- state_save_register_item("v9938", which, vdp->MMC.NY);
- state_save_register_item("v9938", which, vdp->MMC.MX);
- state_save_register_item("v9938", which, vdp->MMC.ASX);
- state_save_register_item("v9938", which, vdp->MMC.ADX);
- state_save_register_item("v9938", which, vdp->MMC.ANX);
- state_save_register_item("v9938", which, vdp->MMC.CL);
- state_save_register_item("v9938", which, vdp->MMC.LO);
- state_save_register_item("v9938", which, vdp->MMC.CM);
- state_save_register_item("v9938", which, vdp->MMC.MXS);
- state_save_register_item("v9938", which, vdp->MMC.MXD);
- state_save_register_item("v9938", which, vdp->VdpOpsCnt);
+ state_save_register_item_pointer("v9938", NULL, which, vdp->vram_exp, 0x10000);
+ state_save_register_item("v9938", NULL, which, vdp->INT);
+ state_save_register_item("v9938", NULL, which, vdp->scanline);
+ state_save_register_item("v9938", NULL, which, vdp->blink);
+ state_save_register_item("v9938", NULL, which, vdp->blink_count);
+ state_save_register_item("v9938", NULL, which, vdp->size);
+ state_save_register_item("v9938", NULL, which, vdp->size_old);
+ state_save_register_item("v9938", NULL, which, vdp->size_auto);
+ state_save_register_item("v9938", NULL, which, vdp->size_now);
+ state_save_register_item("v9938", NULL, which, vdp->mx_delta);
+ state_save_register_item("v9938", NULL, which, vdp->my_delta);
+ state_save_register_item("v9938", NULL, which, vdp->button_state);
+ state_save_register_item_array("v9938", NULL, which, vdp->pal_ind16);
+ state_save_register_item_array("v9938", NULL, which, vdp->pal_ind256);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.SX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.SY);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.DX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.DY);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.TX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.TY);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.NX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.NY);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.MX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.ASX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.ADX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.ANX);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.CL);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.LO);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.CM);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.MXS);
+ state_save_register_item("v9938", NULL, which, vdp->MMC.MXD);
+ state_save_register_item("v9938", NULL, which, vdp->VdpOpsCnt);
}
void v9938_reset (int which)
diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c
index 17ddc8071a7..d2c1ce42f56 100644
--- a/src/emu/video/voodoo.c
+++ b/src/emu/video/voodoo.c
@@ -617,125 +617,120 @@ static STATE_POSTLOAD( voodoo_postload )
static void init_save_state(const device_config *device)
{
voodoo_state *v = get_safe_token(device);
- char unique_tag[50];
int index, subindex;
state_save_register_postload(device->machine, voodoo_postload, v);
- /* create the name for save states */
- assert(strlen(device->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "voodoo", device->tag);
-
/* register states: core */
- state_save_register_item(unique_tag, 0, v->extra_cycles);
- state_save_register_item_pointer(unique_tag, 0, (&v->reg[0].u), ARRAY_LENGTH(v->reg));
- state_save_register_item(unique_tag, 0, v->alt_regmap);
+ state_save_register_item("voodoo", device->tag, 0, v->extra_cycles);
+ state_save_register_item_pointer("voodoo", device->tag, 0, (&v->reg[0].u), ARRAY_LENGTH(v->reg));
+ state_save_register_item("voodoo", device->tag, 0, v->alt_regmap);
/* register states: pci */
- state_save_register_item(unique_tag, 0, v->pci.fifo.in);
- state_save_register_item(unique_tag, 0, v->pci.fifo.out);
- state_save_register_item(unique_tag, 0, v->pci.init_enable);
- state_save_register_item(unique_tag, 0, v->pci.stall_state);
- state_save_register_item(unique_tag, 0, v->pci.op_pending);
- state_save_register_item(unique_tag, 0, v->pci.op_end_time.seconds);
- state_save_register_item(unique_tag, 0, v->pci.op_end_time.attoseconds);
- state_save_register_item_array(unique_tag, 0, v->pci.fifo_mem);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.fifo.in);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.fifo.out);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.init_enable);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.stall_state);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.op_pending);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.op_end_time.seconds);
+ state_save_register_item("voodoo", device->tag, 0, v->pci.op_end_time.attoseconds);
+ state_save_register_item_array("voodoo", device->tag, 0, v->pci.fifo_mem);
/* register states: dac */
- state_save_register_item_array(unique_tag, 0, v->dac.reg);
- state_save_register_item(unique_tag, 0, v->dac.read_result);
+ state_save_register_item_array("voodoo", device->tag, 0, v->dac.reg);
+ state_save_register_item("voodoo", device->tag, 0, v->dac.read_result);
/* register states: fbi */
- state_save_register_item_pointer(unique_tag, 0, v->fbi.ram, v->fbi.mask + 1);
- state_save_register_item_array(unique_tag, 0, v->fbi.rgboffs);
- state_save_register_item(unique_tag, 0, v->fbi.auxoffs);
- state_save_register_item(unique_tag, 0, v->fbi.frontbuf);
- state_save_register_item(unique_tag, 0, v->fbi.backbuf);
- state_save_register_item(unique_tag, 0, v->fbi.swaps_pending);
- state_save_register_item(unique_tag, 0, v->fbi.video_changed);
- state_save_register_item(unique_tag, 0, v->fbi.yorigin);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_base);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stride);
- state_save_register_item(unique_tag, 0, v->fbi.width);
- state_save_register_item(unique_tag, 0, v->fbi.height);
- state_save_register_item(unique_tag, 0, v->fbi.xoffs);
- state_save_register_item(unique_tag, 0, v->fbi.yoffs);
- state_save_register_item(unique_tag, 0, v->fbi.vsyncscan);
- state_save_register_item(unique_tag, 0, v->fbi.rowpixels);
- state_save_register_item(unique_tag, 0, v->fbi.vblank);
- state_save_register_item(unique_tag, 0, v->fbi.vblank_count);
- state_save_register_item(unique_tag, 0, v->fbi.vblank_swap_pending);
- state_save_register_item(unique_tag, 0, v->fbi.vblank_swap);
- state_save_register_item(unique_tag, 0, v->fbi.vblank_dont_swap);
- state_save_register_item(unique_tag, 0, v->fbi.cheating_allowed);
- state_save_register_item(unique_tag, 0, v->fbi.sign);
- state_save_register_item(unique_tag, 0, v->fbi.ax);
- state_save_register_item(unique_tag, 0, v->fbi.ay);
- state_save_register_item(unique_tag, 0, v->fbi.bx);
- state_save_register_item(unique_tag, 0, v->fbi.by);
- state_save_register_item(unique_tag, 0, v->fbi.cx);
- state_save_register_item(unique_tag, 0, v->fbi.cy);
- state_save_register_item(unique_tag, 0, v->fbi.startr);
- state_save_register_item(unique_tag, 0, v->fbi.startg);
- state_save_register_item(unique_tag, 0, v->fbi.startb);
- state_save_register_item(unique_tag, 0, v->fbi.starta);
- state_save_register_item(unique_tag, 0, v->fbi.startz);
- state_save_register_item(unique_tag, 0, v->fbi.startw);
- state_save_register_item(unique_tag, 0, v->fbi.drdx);
- state_save_register_item(unique_tag, 0, v->fbi.dgdx);
- state_save_register_item(unique_tag, 0, v->fbi.dbdx);
- state_save_register_item(unique_tag, 0, v->fbi.dadx);
- state_save_register_item(unique_tag, 0, v->fbi.dzdx);
- state_save_register_item(unique_tag, 0, v->fbi.dwdx);
- state_save_register_item(unique_tag, 0, v->fbi.drdy);
- state_save_register_item(unique_tag, 0, v->fbi.dgdy);
- state_save_register_item(unique_tag, 0, v->fbi.dbdy);
- state_save_register_item(unique_tag, 0, v->fbi.dady);
- state_save_register_item(unique_tag, 0, v->fbi.dzdy);
- state_save_register_item(unique_tag, 0, v->fbi.dwdy);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.pixels_in);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.pixels_out);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.chroma_fail);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.zfunc_fail);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.afunc_fail);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.clip_fail);
- state_save_register_item(unique_tag, 0, v->fbi.lfb_stats.stipple_count);
- state_save_register_item(unique_tag, 0, v->fbi.sverts);
+ state_save_register_item_pointer("voodoo", device->tag, 0, v->fbi.ram, v->fbi.mask + 1);
+ state_save_register_item_array("voodoo", device->tag, 0, v->fbi.rgboffs);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.auxoffs);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.frontbuf);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.backbuf);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.swaps_pending);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.video_changed);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.yorigin);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_base);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stride);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.width);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.height);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.xoffs);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.yoffs);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vsyncscan);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.rowpixels);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vblank);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vblank_count);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vblank_swap_pending);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vblank_swap);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.vblank_dont_swap);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.cheating_allowed);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.sign);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.ax);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.ay);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.bx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.by);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.cx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.cy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.startr);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.startg);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.startb);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.starta);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.startz);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.startw);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.drdx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dgdx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dbdx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dadx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dzdx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dwdx);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.drdy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dgdy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dbdy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dady);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dzdy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.dwdy);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.pixels_in);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.pixels_out);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.chroma_fail);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.zfunc_fail);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.afunc_fail);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.clip_fail);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.lfb_stats.stipple_count);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.sverts);
for (index = 0; index < ARRAY_LENGTH(v->fbi.svert); index++)
{
- state_save_register_item(unique_tag, index, v->fbi.svert[index].x);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].y);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].a);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].r);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].g);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].b);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].z);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].wb);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].w0);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].s0);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].t0);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].w1);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].s1);
- state_save_register_item(unique_tag, index, v->fbi.svert[index].t1);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].x);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].y);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].a);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].r);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].g);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].b);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].z);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].wb);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].w0);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].s0);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].t0);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].w1);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].s1);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.svert[index].t1);
}
- state_save_register_item(unique_tag, 0, v->fbi.fifo.size);
- state_save_register_item(unique_tag, 0, v->fbi.fifo.in);
- state_save_register_item(unique_tag, 0, v->fbi.fifo.out);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.fifo.size);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.fifo.in);
+ state_save_register_item("voodoo", device->tag, 0, v->fbi.fifo.out);
for (index = 0; index < ARRAY_LENGTH(v->fbi.cmdfifo); index++)
{
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].enable);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].count_holes);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].base);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].end);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].rdptr);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].amin);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].amax);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].depth);
- state_save_register_item(unique_tag, index, v->fbi.cmdfifo[index].holes);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].enable);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].count_holes);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].base);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].end);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].rdptr);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].amin);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].amax);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].depth);
+ state_save_register_item("voodoo", device->tag, index, v->fbi.cmdfifo[index].holes);
}
- state_save_register_item_array(unique_tag, 0, v->fbi.fogblend);
- state_save_register_item_array(unique_tag, 0, v->fbi.fogdelta);
- state_save_register_item_array(unique_tag, 0, v->fbi.clut);
+ state_save_register_item_array("voodoo", device->tag, 0, v->fbi.fogblend);
+ state_save_register_item_array("voodoo", device->tag, 0, v->fbi.fogdelta);
+ state_save_register_item_array("voodoo", device->tag, 0, v->fbi.clut);
/* register states: tmu */
for (index = 0; index < ARRAY_LENGTH(v->tmu); index++)
@@ -744,39 +739,39 @@ static void init_save_state(const device_config *device)
if (tmu->ram == NULL)
continue;
if (tmu->ram != v->fbi.ram)
- state_save_register_item_pointer(unique_tag, index, tmu->ram, tmu->mask + 1);
- state_save_register_item(unique_tag, index, tmu->starts);
- state_save_register_item(unique_tag, index, tmu->startt);
- state_save_register_item(unique_tag, index, tmu->startw);
- state_save_register_item(unique_tag, index, tmu->dsdx);
- state_save_register_item(unique_tag, index, tmu->dtdx);
- state_save_register_item(unique_tag, index, tmu->dwdx);
- state_save_register_item(unique_tag, index, tmu->dsdy);
- state_save_register_item(unique_tag, index, tmu->dtdy);
- state_save_register_item(unique_tag, index, tmu->dwdy);
+ state_save_register_item_pointer("voodoo", device->tag, index, tmu->ram, tmu->mask + 1);
+ state_save_register_item("voodoo", device->tag, index, tmu->starts);
+ state_save_register_item("voodoo", device->tag, index, tmu->startt);
+ state_save_register_item("voodoo", device->tag, index, tmu->startw);
+ state_save_register_item("voodoo", device->tag, index, tmu->dsdx);
+ state_save_register_item("voodoo", device->tag, index, tmu->dtdx);
+ state_save_register_item("voodoo", device->tag, index, tmu->dwdx);
+ state_save_register_item("voodoo", device->tag, index, tmu->dsdy);
+ state_save_register_item("voodoo", device->tag, index, tmu->dtdy);
+ state_save_register_item("voodoo", device->tag, index, tmu->dwdy);
for (subindex = 0; subindex < ARRAY_LENGTH(tmu->ncc); subindex++)
{
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ir);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ig);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ib);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qr);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qg);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qb);
- state_save_register_item_array(unique_tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].y);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ir);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ig);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].ib);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qr);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qg);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].qb);
+ state_save_register_item_array("voodoo", device->tag, index * ARRAY_LENGTH(tmu->ncc) + subindex, tmu->ncc[subindex].y);
}
}
/* register states: banshee */
if (v->type >= VOODOO_BANSHEE)
{
- state_save_register_item_array(unique_tag, 0, v->banshee.io);
- state_save_register_item_array(unique_tag, 0, v->banshee.agp);
- state_save_register_item_array(unique_tag, 0, v->banshee.vga);
- state_save_register_item_array(unique_tag, 0, v->banshee.crtc);
- state_save_register_item_array(unique_tag, 0, v->banshee.seq);
- state_save_register_item_array(unique_tag, 0, v->banshee.gc);
- state_save_register_item_array(unique_tag, 0, v->banshee.att);
- state_save_register_item(unique_tag, 0, v->banshee.attff);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.io);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.agp);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.vga);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.crtc);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.seq);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.gc);
+ state_save_register_item_array("voodoo", device->tag, 0, v->banshee.att);
+ state_save_register_item("voodoo", device->tag, 0, v->banshee.attff);
}
}
diff --git a/src/emu/watchdog.c b/src/emu/watchdog.c
index bb1cb5bb405..67242d66384 100644
--- a/src/emu/watchdog.c
+++ b/src/emu/watchdog.c
@@ -46,8 +46,8 @@ void watchdog_init(running_machine *machine)
/* save some stuff in the default tag */
state_save_push_tag(0);
- state_save_register_item("watchdog", 0, watchdog_enabled);
- state_save_register_item("watchdog", 0, watchdog_counter);
+ state_save_register_item("watchdog", NULL, 0, watchdog_enabled);
+ state_save_register_item("watchdog", NULL, 0, watchdog_counter);
state_save_pop_tag();
}
diff --git a/src/mame/audio/flower.c b/src/mame/audio/flower.c
index bb9952dda82..89d7fc5d22b 100644
--- a/src/mame/audio/flower.c
+++ b/src/mame/audio/flower.c
@@ -182,8 +182,8 @@ void * flower_sh_start(int clock, const custom_sound_interface *config)
sound_enable = 1;
/* save globals */
- state_save_register_item("flower_custom", 0, num_voices);
- state_save_register_item("flower_custom", 0, sound_enable);
+ state_save_register_item("flower_custom", NULL, 0, num_voices);
+ state_save_register_item("flower_custom", NULL, 0, sound_enable);
/* reset all the voices */
for (i = 0; i < num_voices; i++)
@@ -195,12 +195,12 @@ void * flower_sh_start(int clock, const custom_sound_interface *config)
voice->counter = 0;
voice->rom_offset = 0;
- state_save_register_item("flower_custom", i+1, voice->frequency);
- state_save_register_item("flower_custom", i+1, voice->counter);
- state_save_register_item("flower_custom", i+1, voice->volume);
- state_save_register_item("flower_custom", i+1, voice->oneshot);
- state_save_register_item("flower_custom", i+1, voice->oneshotplaying);
- state_save_register_item("flower_custom", i+1, voice->rom_offset);
+ state_save_register_item("flower_custom", NULL, i+1, voice->frequency);
+ state_save_register_item("flower_custom", NULL, i+1, voice->counter);
+ state_save_register_item("flower_custom", NULL, i+1, voice->volume);
+ state_save_register_item("flower_custom", NULL, i+1, voice->oneshot);
+ state_save_register_item("flower_custom", NULL, i+1, voice->oneshotplaying);
+ state_save_register_item("flower_custom", NULL, i+1, voice->rom_offset);
}
return auto_malloc(1);
diff --git a/src/mame/audio/segasnd.c b/src/mame/audio/segasnd.c
index b5544d157f7..cc5d2256726 100644
--- a/src/mame/audio/segasnd.c
+++ b/src/mame/audio/segasnd.c
@@ -685,11 +685,11 @@ static void *usb_start(int clock, const custom_sound_interface *config)
configure_filter(&usb.final_filter, 100e3, 4.7e-6);
/* register for save states */
- state_save_register_item("usb", 0, usb.in_latch);
- state_save_register_item("usb", 0, usb.out_latch);
- state_save_register_item("usb", 0, usb.last_p2_value);
- state_save_register_item("usb", 0, usb.work_ram_bank);
- state_save_register_item("usb", 0, usb.t1_clock);
+ state_save_register_item("usb", NULL, 0, usb.in_latch);
+ state_save_register_item("usb", NULL, 0, usb.out_latch);
+ state_save_register_item("usb", NULL, 0, usb.last_p2_value);
+ state_save_register_item("usb", NULL, 0, usb.work_ram_bank);
+ state_save_register_item("usb", NULL, 0, usb.t1_clock);
for (tgroup = 0; tgroup < 3; tgroup++)
{
@@ -697,36 +697,36 @@ static void *usb_start(int clock, const custom_sound_interface *config)
for (tchan = 0; tchan < 3; tchan++)
{
timer8253_channel *channel = &group->chan[tchan];
- state_save_register_item("usb", tgroup * 3 + tchan, channel->holding);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->latchmode);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->latchtoggle);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->clockmode);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->bcdmode);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->output);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->lastgate);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->gate);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->subcount);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->count);
- state_save_register_item("usb", tgroup * 3 + tchan, channel->remain);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->holding);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->latchmode);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->latchtoggle);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->clockmode);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->bcdmode);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->output);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->lastgate);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->gate);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->subcount);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->count);
+ state_save_register_item("usb", NULL, tgroup * 3 + tchan, channel->remain);
}
- state_save_register_item_array("usb", tgroup, group->env);
- state_save_register_item("usb", tgroup, group->chan_filter[0].capval);
- state_save_register_item("usb", tgroup, group->chan_filter[1].capval);
- state_save_register_item("usb", tgroup, group->gate1.capval);
- state_save_register_item("usb", tgroup, group->gate2.capval);
- state_save_register_item("usb", tgroup, group->config);
+ state_save_register_item_array("usb", NULL, tgroup, group->env);
+ state_save_register_item("usb", NULL, tgroup, group->chan_filter[0].capval);
+ state_save_register_item("usb", NULL, tgroup, group->chan_filter[1].capval);
+ state_save_register_item("usb", NULL, tgroup, group->gate1.capval);
+ state_save_register_item("usb", NULL, tgroup, group->gate2.capval);
+ state_save_register_item("usb", NULL, tgroup, group->config);
}
- state_save_register_item_array("usb", 0, usb.timer_mode);
- state_save_register_item("usb", 0, usb.noise_shift);
- state_save_register_item("usb", 0, usb.noise_state);
- state_save_register_item("usb", 0, usb.noise_subcount);
- state_save_register_item("usb", 0, usb.final_filter.capval);
- state_save_register_item("usb", 0, usb.noise_filters[0].capval);
- state_save_register_item("usb", 0, usb.noise_filters[1].capval);
- state_save_register_item("usb", 0, usb.noise_filters[2].capval);
- state_save_register_item("usb", 0, usb.noise_filters[3].capval);
- state_save_register_item("usb", 0, usb.noise_filters[4].capval);
+ state_save_register_item_array("usb", NULL, 0, usb.timer_mode);
+ state_save_register_item("usb", NULL, 0, usb.noise_shift);
+ state_save_register_item("usb", NULL, 0, usb.noise_state);
+ state_save_register_item("usb", NULL, 0, usb.noise_subcount);
+ state_save_register_item("usb", NULL, 0, usb.final_filter.capval);
+ state_save_register_item("usb", NULL, 0, usb.noise_filters[0].capval);
+ state_save_register_item("usb", NULL, 0, usb.noise_filters[1].capval);
+ state_save_register_item("usb", NULL, 0, usb.noise_filters[2].capval);
+ state_save_register_item("usb", NULL, 0, usb.noise_filters[3].capval);
+ state_save_register_item("usb", NULL, 0, usb.noise_filters[4].capval);
return usb.stream;
}
diff --git a/src/mame/audio/tiamc1.c b/src/mame/audio/tiamc1.c
index 87aeae747d9..bec5110a971 100644
--- a/src/mame/audio/tiamc1.c
+++ b/src/mame/audio/tiamc1.c
@@ -295,15 +295,15 @@ void *tiamc1_sh_start(int clock, const custom_sound_interface *config)
struct timer8253struct *t = (i ? &timer1 : &timer0);
for (j = 0; j < 3; j++) {
- state_save_register_item("channel", i * 3 + j, t->channel[j].count);
- state_save_register_item("channel", i * 3 + j, t->channel[j].cnval);
- state_save_register_item("channel", i * 3 + j, t->channel[j].bcdMode);
- state_save_register_item("channel", i * 3 + j, t->channel[j].cntMode);
- state_save_register_item("channel", i * 3 + j, t->channel[j].valMode);
- state_save_register_item("channel", i * 3 + j, t->channel[j].gate);
- state_save_register_item("channel", i * 3 + j, t->channel[j].output);
- state_save_register_item("channel", i * 3 + j, t->channel[j].loadCnt);
- state_save_register_item("channel", i * 3 + j, t->channel[j].enable);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].count);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].cnval);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].bcdMode);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].cntMode);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].valMode);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].gate);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].output);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].loadCnt);
+ state_save_register_item("channel", NULL, i * 3 + j, t->channel[j].enable);
}
}
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 58f12aa3e82..6a31c90c4fc 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -457,9 +457,9 @@ static int K037122_vh_start(running_machine *machine, int chip)
machine->gfx[K037122_gfx_index[chip]]->total_colors = machine->config->total_colors / 16;
- state_save_register_item_pointer("K037122", chip, K037122_reg[chip], 0x400/sizeof(K037122_reg[chip][0]));
- state_save_register_item_pointer("K037122", chip, K037122_char_ram[chip], 0x200000/sizeof(K037122_char_ram[chip][0]));
- state_save_register_item_pointer("K037122", chip, K037122_tile_ram[chip], 0x20000/sizeof(K037122_tile_ram[chip][0]));
+ state_save_register_item_pointer("K037122", NULL, chip, K037122_reg[chip], 0x400/sizeof(K037122_reg[chip][0]));
+ state_save_register_item_pointer("K037122", NULL, chip, K037122_char_ram[chip], 0x200000/sizeof(K037122_char_ram[chip][0]));
+ state_save_register_item_pointer("K037122", NULL, chip, K037122_tile_ram[chip], 0x20000/sizeof(K037122_tile_ram[chip][0]));
state_save_register_postload(machine, K037122_postload, (void *)(FPTR)chip);
return 0;
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index b6cc4345e59..9611dce70c6 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -1506,10 +1506,10 @@ static DRIVER_INIT( konami573 )
security_cart_init( machine, 0, "user2", "user9" );
security_cart_init( machine, 1, "user8", "user10" );
- state_save_register_item_array( "KSYS573", 0, m_p_n_root_count );
- state_save_register_item_array( "KSYS573", 0, m_p_n_root_mode );
- state_save_register_item_array( "KSYS573", 0, m_p_n_root_target );
- state_save_register_item_array( "KSYS573", 0, m_p_n_root_start );
+ state_save_register_item_array( "KSYS573", NULL, 0, m_p_n_root_count );
+ state_save_register_item_array( "KSYS573", NULL, 0, m_p_n_root_mode );
+ state_save_register_item_array( "KSYS573", NULL, 0, m_p_n_root_target );
+ state_save_register_item_array( "KSYS573", NULL, 0, m_p_n_root_start );
adc083x_init( 0, ADC0834, analogue_inputs_callback );
flash_init(machine);
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index 46e5c4d17c0..393324d88dc 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -213,11 +213,11 @@ static void ds1204_init(const UINT8* key, const UINT8* nvram)
if (nvram)
memcpy(ds1204.nvram, nvram, sizeof(ds1204.nvram));
- state_save_register_item("ds1204", 0, ds1204.state);
- state_save_register_item("ds1204", 0, ds1204.read_ptr);
- state_save_register_item("ds1204", 0, ds1204.last_clk);
- state_save_register_item("ds1204", 0, ds1204.out_bit);
- state_save_register_item_array("ds1204", 0, ds1204.command);
+ state_save_register_item("ds1204", NULL, 0, ds1204.state);
+ state_save_register_item("ds1204", NULL, 0, ds1204.read_ptr);
+ state_save_register_item("ds1204", NULL, 0, ds1204.last_clk);
+ state_save_register_item("ds1204", NULL, 0, ds1204.out_bit);
+ state_save_register_item_array("ds1204", NULL, 0, ds1204.command);
};
/*************************************
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index 4b2d37ad4cf..7665358608e 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -535,8 +535,8 @@ static MACHINE_START( seattle )
state_save_register_global_array(galileo.pci_ide_regs);
for (index = 0; index < ARRAY_LENGTH(galileo.timer); index++)
{
- state_save_register_item("galileo", index, galileo.timer[index].count);
- state_save_register_item("galileo", index, galileo.timer[index].active);
+ state_save_register_item("galileo", NULL, index, galileo.timer[index].count);
+ state_save_register_item("galileo", NULL, index, galileo.timer[index].active);
}
state_save_register_global(widget.ethernet_addr);
state_save_register_global(widget.irq_num);
diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c
index 3bc050eb9fb..834ebcea002 100644
--- a/src/mame/machine/balsente.c
+++ b/src/mame/machine/balsente.c
@@ -197,14 +197,14 @@ MACHINE_RESET( balsente )
/* register for saving */
for (i = 0; i < 3; i++)
{
- state_save_register_item("8253counter", i, counter[i].timer_active);
- state_save_register_item("8253counter", i, counter[i].initial);
- state_save_register_item("8253counter", i, counter[i].count);
- state_save_register_item("8253counter", i, counter[i].gate);
- state_save_register_item("8253counter", i, counter[i].out);
- state_save_register_item("8253counter", i, counter[i].mode);
- state_save_register_item("8253counter", i, counter[i].readbyte);
- state_save_register_item("8253counter", i, counter[i].writebyte);
+ state_save_register_item("8253counter", NULL, i, counter[i].timer_active);
+ state_save_register_item("8253counter", NULL, i, counter[i].initial);
+ state_save_register_item("8253counter", NULL, i, counter[i].count);
+ state_save_register_item("8253counter", NULL, i, counter[i].gate);
+ state_save_register_item("8253counter", NULL, i, counter[i].out);
+ state_save_register_item("8253counter", NULL, i, counter[i].mode);
+ state_save_register_item("8253counter", NULL, i, counter[i].readbyte);
+ state_save_register_item("8253counter", NULL, i, counter[i].writebyte);
}
state_save_register_global(counter_control);
diff --git a/src/mame/machine/konamiic.c b/src/mame/machine/konamiic.c
index 2dfe6be557c..7e327213530 100644
--- a/src/mame/machine/konamiic.c
+++ b/src/mame/machine/konamiic.c
@@ -66,9 +66,9 @@ void K056800_init(void (* irq_callback)(running_machine *, int))
K056800_sound_cpu_timer = timer_alloc(K056800_sound_cpu_timer_tick, NULL);
timer_adjust_periodic(K056800_sound_cpu_timer, timer_period, 0, timer_period);
- state_save_register_item_array("K056800", 0, K056800_host_reg);
- state_save_register_item_array("K056800", 0, K056800_sound_reg);
- state_save_register_item("K056800", 0, K056800_sound_cpu_irq1_enable);
+ state_save_register_item_array("K056800", NULL, 0, K056800_host_reg);
+ state_save_register_item_array("K056800", NULL, 0, K056800_sound_reg);
+ state_save_register_item("K056800", NULL, 0, K056800_sound_cpu_irq1_enable);
}
READ32_HANDLER(K056800_host_r)
diff --git a/src/mame/machine/konppc.c b/src/mame/machine/konppc.c
index 17d5c230be0..ef2624e6551 100644
--- a/src/mame/machine/konppc.c
+++ b/src/mame/machine/konppc.c
@@ -62,20 +62,20 @@ void init_konami_cgboard(int num_boards, int type)
nwk_fifo[i] = auto_malloc(sizeof(UINT32) * 0x800);
nwk_ram[i] = auto_malloc(sizeof(UINT32) * 0x2000);
- state_save_register_item_array("konppc", i, dsp_comm_ppc[i]);
- state_save_register_item_array("konppc", i, dsp_comm_sharc[i]);
- state_save_register_item("konppc", i, dsp_shared_ram_bank[i]);
- state_save_register_item_pointer("konppc", i, dsp_shared_ram[i], DSP_BANK_SIZE * 2 / sizeof(dsp_shared_ram[i][0]));
- state_save_register_item("konppc", i, dsp_state[i]);
- state_save_register_item("konppc", i, texture_bank[i]);
- state_save_register_item("konppc", i, pci_bridge_enable[i]);
- state_save_register_item("konppc", i, nwk_device_sel[i]);
- state_save_register_item("konppc", i, nwk_fifo_read_ptr[i]);
- state_save_register_item("konppc", i, nwk_fifo_write_ptr[i]);
- state_save_register_item_pointer("konppc", i, nwk_fifo[i], 0x800);
- state_save_register_item_pointer("konppc", i, nwk_ram[i], 0x2000);
- }
- state_save_register_item("konppc", 0, cgboard_id);
+ state_save_register_item_array("konppc", NULL, i, dsp_comm_ppc[i]);
+ state_save_register_item_array("konppc", NULL, i, dsp_comm_sharc[i]);
+ state_save_register_item("konppc", NULL, i, dsp_shared_ram_bank[i]);
+ state_save_register_item_pointer("konppc", NULL, i, dsp_shared_ram[i], DSP_BANK_SIZE * 2 / sizeof(dsp_shared_ram[i][0]));
+ state_save_register_item("konppc", NULL, i, dsp_state[i]);
+ state_save_register_item("konppc", NULL, i, texture_bank[i]);
+ state_save_register_item("konppc", NULL, i, pci_bridge_enable[i]);
+ state_save_register_item("konppc", NULL, i, nwk_device_sel[i]);
+ state_save_register_item("konppc", NULL, i, nwk_fifo_read_ptr[i]);
+ state_save_register_item("konppc", NULL, i, nwk_fifo_write_ptr[i]);
+ state_save_register_item_pointer("konppc", NULL, i, nwk_fifo[i], 0x800);
+ state_save_register_item_pointer("konppc", NULL, i, nwk_ram[i], 0x2000);
+ }
+ state_save_register_item("konppc", NULL, 0, cgboard_id);
cgboard_type = type;
if (type == CGBOARD_TYPE_NWKTR)
@@ -432,8 +432,8 @@ void K033906_init(void)
{
K033906_reg[i] = auto_malloc(sizeof(UINT32) * 256);
K033906_ram[i] = auto_malloc(sizeof(UINT32) * 32768);
- state_save_register_item_pointer("K033906", i, K033906_reg[i], 256);
- state_save_register_item_pointer("K033906", i, K033906_ram[i], 32768);
+ state_save_register_item_pointer("K033906", NULL, i, K033906_reg[i], 256);
+ state_save_register_item_pointer("K033906", NULL, i, K033906_ram[i], 32768);
}
}
diff --git a/src/mame/machine/mb14241.c b/src/mame/machine/mb14241.c
index 3b883207cdb..bf1f56741db 100644
--- a/src/mame/machine/mb14241.c
+++ b/src/mame/machine/mb14241.c
@@ -45,6 +45,6 @@ READ8_HANDLER( mb14241_0_shift_result_r ) { return mb14241_shift_result_r(0); }
void mb14241_init(int num)
{
- state_save_register_item("mb14241", num, chips[num].shift_data);
- state_save_register_item("mb14241", num, chips[num].shift_count);
+ state_save_register_item("mb14241", NULL, num, chips[num].shift_data);
+ state_save_register_item("mb14241", NULL, num, chips[num].shift_count);
}
diff --git a/src/mame/machine/mcr.c b/src/mame/machine/mcr.c
index 29a81518e0c..430c1ecad00 100644
--- a/src/mame/machine/mcr.c
+++ b/src/mame/machine/mcr.c
@@ -311,10 +311,10 @@ MACHINE_START( mcr68 )
m6840->timer = timer_alloc(counter_fired_callback, NULL);
- state_save_register_item("m6840", i, m6840->control);
- state_save_register_item("m6840", i, m6840->latch);
- state_save_register_item("m6840", i, m6840->count);
- state_save_register_item("m6840", i, m6840->timer_active);
+ state_save_register_item("m6840", NULL, i, m6840->control);
+ state_save_register_item("m6840", NULL, i, m6840->latch);
+ state_save_register_item("m6840", NULL, i, m6840->count);
+ state_save_register_item("m6840", NULL, i, m6840->timer_active);
}
state_save_register_global(m6840_status);
diff --git a/src/mame/machine/mhavoc.c b/src/mame/machine/mhavoc.c
index c2b980332fc..20eac5d99cc 100644
--- a/src/mame/machine/mhavoc.c
+++ b/src/mame/machine/mhavoc.c
@@ -116,16 +116,16 @@ MACHINE_RESET( mhavoc )
/* set a timer going for the CPU interrupt generators */
timer_pulse(ATTOTIME_IN_HZ(MHAVOC_CLOCK_5K), NULL, 0, cpu_irq_clock);
- state_save_register_item("misc", 0, alpha_data);
- state_save_register_item("misc", 0, alpha_rcvd);
- state_save_register_item("misc", 0, alpha_xmtd);
- state_save_register_item("misc", 0, gamma_data);
- state_save_register_item("misc", 0, gamma_rcvd);
- state_save_register_item("misc", 0, gamma_xmtd);
- state_save_register_item("misc", 0, player_1);
- state_save_register_item("misc", 0, alpha_irq_clock);
- state_save_register_item("misc", 0, alpha_irq_clock_enable);
- state_save_register_item("misc", 0, gamma_irq_clock);
+ state_save_register_item("misc", NULL, 0, alpha_data);
+ state_save_register_item("misc", NULL, 0, alpha_rcvd);
+ state_save_register_item("misc", NULL, 0, alpha_xmtd);
+ state_save_register_item("misc", NULL, 0, gamma_data);
+ state_save_register_item("misc", NULL, 0, gamma_rcvd);
+ state_save_register_item("misc", NULL, 0, gamma_xmtd);
+ state_save_register_item("misc", NULL, 0, player_1);
+ state_save_register_item("misc", NULL, 0, alpha_irq_clock);
+ state_save_register_item("misc", NULL, 0, alpha_irq_clock_enable);
+ state_save_register_item("misc", NULL, 0, gamma_irq_clock);
}
diff --git a/src/mame/machine/namcoio.c b/src/mame/machine/namcoio.c
index d7affa02ea9..4da88838cd5 100644
--- a/src/mame/machine/namcoio.c
+++ b/src/mame/machine/namcoio.c
@@ -797,18 +797,18 @@ void namcoio_set_irq_line(int chipnum, int state)
static void namcoio_state_save(int chipnum)
{
- state_save_register_item_pointer("namcoio", chipnum, ((UINT8 *) (&namcoio_ram[chipnum * 16])), 16);
- state_save_register_item("namcoio", chipnum, io[chipnum].reset);
- state_save_register_item("namcoio", chipnum, io[chipnum].lastcoins);
- state_save_register_item("namcoio", chipnum, io[chipnum].lastbuttons);
- state_save_register_item("namcoio", chipnum, io[chipnum].credits);
- state_save_register_item_array("namcoio", chipnum, io[chipnum].coins);
- state_save_register_item_array("namcoio", chipnum, io[chipnum].coins_per_cred);
- state_save_register_item_array("namcoio", chipnum, io[chipnum].creds_per_coin);
- state_save_register_item("namcoio", chipnum, io[chipnum].in_count);
- state_save_register_item("namcoio", chipnum, io[chipnum].mode);
- state_save_register_item("namcoio", chipnum, io[chipnum].coincred_mode);
- state_save_register_item("namcoio", chipnum, io[chipnum].remap_joy);
+ state_save_register_item_pointer("namcoio", NULL, chipnum, ((UINT8 *) (&namcoio_ram[chipnum * 16])), 16);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].reset);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].lastcoins);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].lastbuttons);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].credits);
+ state_save_register_item_array("namcoio", NULL, chipnum, io[chipnum].coins);
+ state_save_register_item_array("namcoio", NULL, chipnum, io[chipnum].coins_per_cred);
+ state_save_register_item_array("namcoio", NULL, chipnum, io[chipnum].creds_per_coin);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].in_count);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].mode);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].coincred_mode);
+ state_save_register_item("namcoio", NULL, chipnum, io[chipnum].remap_joy);
}
void namcoio_init(int chipnum, int type, const struct namcoio_interface *intf)
@@ -850,8 +850,8 @@ static UINT8 customio_command[MAX_06XX];
static void namco_06xx_state_save(int chipnum)
{
- //state_save_register_item("namcoio06xx", chipnum, nmi_cpu[chipnum]);
- state_save_register_item("namcoio06xx", chipnum, customio_command[chipnum]);
+ //state_save_register_item("namcoio06xx", NULL, chipnum, nmi_cpu[chipnum]);
+ state_save_register_item("namcoio06xx", NULL, chipnum, customio_command[chipnum]);
}
diff --git a/src/mame/machine/naomibd.c b/src/mame/machine/naomibd.c
index a849211301b..f07478ce7fe 100644
--- a/src/mame/machine/naomibd.c
+++ b/src/mame/machine/naomibd.c
@@ -144,19 +144,14 @@ static STATE_POSTLOAD( naomibd_postload )
static void init_save_state(const device_config *device)
{
naomibd_state *v = get_safe_token(device);
- char unique_tag[50];
state_save_register_postload(device->machine, naomibd_postload, v);
- /* create the name for save states */
- assert(strlen(device->tag) < 30);
- state_save_combine_module_and_tag(unique_tag, "naomibd", device->tag);
-
/* register states */
- state_save_register_item(unique_tag, 0, v->rom_offset);
- state_save_register_item(unique_tag, 0, v->rom_offset_flags);
- state_save_register_item(unique_tag, 0, v->dma_count);
- state_save_register_item(unique_tag, 0, v->dma_offset);
+ state_save_register_item("naomibd", device->tag, 0, v->rom_offset);
+ state_save_register_item("naomibd", device->tag, 0, v->rom_offset_flags);
+ state_save_register_item("naomibd", device->tag, 0, v->dma_count);
+ state_save_register_item("naomibd", device->tag, 0, v->dma_offset);
}
diff --git a/src/mame/machine/rainbow.c b/src/mame/machine/rainbow.c
index 1ffdd22999e..f7cc562808d 100644
--- a/src/mame/machine/rainbow.c
+++ b/src/mame/machine/rainbow.c
@@ -823,10 +823,10 @@ void rainbow_cchip_init(int version)
{
CRAM[i] = auto_malloc(0x400);
- state_save_register_item_pointer("cchip", i, CRAM[i], 0x400);
+ state_save_register_item_pointer("cchip", NULL, i, CRAM[i], 0x400);
}
- state_save_register_item("cchip", 0, current_bank);
+ state_save_register_item("cchip", NULL, 0, current_bank);
timer_pulse(ATTOTIME_IN_HZ(60), NULL, 0, cchip_timer);
}
diff --git a/src/mame/machine/slapstic.c b/src/mame/machine/slapstic.c
index de89f5a6fe8..c6d8a3214b7 100644
--- a/src/mame/machine/slapstic.c
+++ b/src/mame/machine/slapstic.c
@@ -823,12 +823,12 @@ void slapstic_init(running_machine *machine, int chip)
machine->config->cpu[0].type == CPU_M68010);
/* save state */
- state_save_register_item("slapstic", 0, state);
- state_save_register_item("slapstic", 0, current_bank);
- state_save_register_item("slapstic", 0, alt_bank);
- state_save_register_item("slapstic", 0, bit_bank);
- state_save_register_item("slapstic", 0, add_bank);
- state_save_register_item("slapstic", 0, bit_xor);
+ state_save_register_item("slapstic", NULL, 0, state);
+ state_save_register_item("slapstic", NULL, 0, current_bank);
+ state_save_register_item("slapstic", NULL, 0, alt_bank);
+ state_save_register_item("slapstic", NULL, 0, bit_bank);
+ state_save_register_item("slapstic", NULL, 0, add_bank);
+ state_save_register_item("slapstic", NULL, 0, bit_xor);
}
diff --git a/src/mame/machine/steppers.c b/src/mame/machine/steppers.c
index b1b90260e5b..d52095eb1df 100644
--- a/src/mame/machine/steppers.c
+++ b/src/mame/machine/steppers.c
@@ -630,14 +630,14 @@ void stepper_config(int which, const stepper_interface *intf)
break;
}
- state_save_register_item("stepper", which, step[which].index_start);
- state_save_register_item("stepper", which, step[which].index_end);
- state_save_register_item("stepper", which, step[which].index_patt);
- state_save_register_item("stepper", which, step[which].pattern);
- state_save_register_item("stepper", which, step[which].old_pattern);
- state_save_register_item("stepper", which, step[which].step_pos);
- state_save_register_item("stepper", which, step[which].max_steps);
- state_save_register_item("stepper", which, step[which].type);
+ state_save_register_item("stepper", NULL, which, step[which].index_start);
+ state_save_register_item("stepper", NULL, which, step[which].index_end);
+ state_save_register_item("stepper", NULL, which, step[which].index_patt);
+ state_save_register_item("stepper", NULL, which, step[which].pattern);
+ state_save_register_item("stepper", NULL, which, step[which].old_pattern);
+ state_save_register_item("stepper", NULL, which, step[which].step_pos);
+ state_save_register_item("stepper", NULL, which, step[which].max_steps);
+ state_save_register_item("stepper", NULL, which, step[which].type);
}
///////////////////////////////////////////////////////////////////////////
diff --git a/src/mame/machine/ticket.c b/src/mame/machine/ticket.c
index eccd76a1bda..c7ba76f7b20 100644
--- a/src/mame/machine/ticket.c
+++ b/src/mame/machine/ticket.c
@@ -56,8 +56,8 @@ void ticket_dispenser_init(int msec, int motoronhigh, int statusactivehigh)
dispenser[i].power = 0x00;
dispenser[i].timer = timer_alloc(ticket_dispenser_toggle, &dispenser[i]);
- state_save_register_item("ticket", i, dispenser[i].status);
- state_save_register_item("ticket", i, dispenser[i].power);
+ state_save_register_item("ticket", NULL, i, dispenser[i].status);
+ state_save_register_item("ticket", NULL, i, dispenser[i].power);
}
}
diff --git a/src/mame/machine/zs01.c b/src/mame/machine/zs01.c
index dc5c10147d8..d60cff51810 100644
--- a/src/mame/machine/zs01.c
+++ b/src/mame/machine/zs01.c
@@ -123,21 +123,21 @@ void zs01_init( int chip, UINT8 *data, zs01_write_handler write, zs01_read_handl
c->write = write;
c->read = read;
- state_save_register_item( "zs01", chip, c->cs );
- state_save_register_item( "zs01", chip, c->rst );
- state_save_register_item( "zs01", chip, c->scl );
- state_save_register_item( "zs01", chip, c->sdaw );
- state_save_register_item( "zs01", chip, c->sdar );
- state_save_register_item( "zs01", chip, c->state );
- state_save_register_item( "zs01", chip, c->shift );
- state_save_register_item( "zs01", chip, c->bit );
- state_save_register_item( "zs01", chip, c->byte );
- state_save_register_item_array( "zs01", chip, c->write_buffer );
- state_save_register_item_array( "zs01", chip, c->read_buffer );
- state_save_register_item_array( "zs01", chip, c->response_key );
- state_save_register_item_pointer( "zs01", chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
- state_save_register_item_pointer( "zs01", chip, c->command_key, SIZE_KEY );
- state_save_register_item_pointer( "zs01", chip, c->data_key, SIZE_DATA );
+ state_save_register_item( "zs01", NULL, chip, c->cs );
+ state_save_register_item( "zs01", NULL, chip, c->rst );
+ state_save_register_item( "zs01", NULL, chip, c->scl );
+ state_save_register_item( "zs01", NULL, chip, c->sdaw );
+ state_save_register_item( "zs01", NULL, chip, c->sdar );
+ state_save_register_item( "zs01", NULL, chip, c->state );
+ state_save_register_item( "zs01", NULL, chip, c->shift );
+ state_save_register_item( "zs01", NULL, chip, c->bit );
+ state_save_register_item( "zs01", NULL, chip, c->byte );
+ state_save_register_item_array( "zs01", NULL, chip, c->write_buffer );
+ state_save_register_item_array( "zs01", NULL, chip, c->read_buffer );
+ state_save_register_item_array( "zs01", NULL, chip, c->response_key );
+ state_save_register_item_pointer( "zs01", NULL, chip, c->response_to_reset, SIZE_RESPONSE_TO_RESET );
+ state_save_register_item_pointer( "zs01", NULL, chip, c->command_key, SIZE_KEY );
+ state_save_register_item_pointer( "zs01", NULL, chip, c->data_key, SIZE_DATA );
}
void zs01_rst_write( int chip, int rst )
diff --git a/src/mame/video/atarimo.c b/src/mame/video/atarimo.c
index 5324c3a063c..f29d431be1d 100644
--- a/src/mame/video/atarimo.c
+++ b/src/mame/video/atarimo.c
@@ -255,59 +255,59 @@ static emu_timer *force_update_timer;
static void init_savestate(int index, atarimo_data *mo)
{
- state_save_register_item("atarimo", index, mo->gfxchanged);
- state_save_register_item("atarimo", index, mo->palettebase);
- state_save_register_item("atarimo", index, mo->bank);
- state_save_register_item("atarimo", index, mo->xscroll);
- state_save_register_item("atarimo", index, mo->yscroll);
- state_save_register_item("atarimo", index, mo->last_xpos);
- state_save_register_item("atarimo", index, mo->next_xpos);
+ state_save_register_item("atarimo", NULL, index, mo->gfxchanged);
+ state_save_register_item("atarimo", NULL, index, mo->palettebase);
+ state_save_register_item("atarimo", NULL, index, mo->bank);
+ state_save_register_item("atarimo", NULL, index, mo->xscroll);
+ state_save_register_item("atarimo", NULL, index, mo->yscroll);
+ state_save_register_item("atarimo", NULL, index, mo->last_xpos);
+ state_save_register_item("atarimo", NULL, index, mo->next_xpos);
#if 0
// These are not modified in code
// Left in for completeness
- state_save_register_item("atarimo", index, mo->reverse);
- state_save_register_item("atarimo", index, mo->split);
- state_save_register_item("atarimo", index, mo->linked);
- state_save_register_item("atarimo", index, mo->swapxy);
- state_save_register_item("atarimo", index, mo->nextneighbor);
- state_save_register_item("atarimo", index, mo->slipshift);
- state_save_register_item("atarimo", index, mo->slipoffset);
- state_save_register_item("atarimo", index, mo->slipramsize);
- state_save_register_item("atarimo", index, mo->sliprammask);
- state_save_register_item("atarimo", index, mo->entrycount);
- state_save_register_item("atarimo", index, mo->entrybits);
- state_save_register_item("atarimo", index, mo->bankcount);
- state_save_register_item("atarimo", index, mo->tilewidth);
- state_save_register_item("atarimo", index, mo->tileheight);
- state_save_register_item("atarimo", index, mo->tilexshift);
- state_save_register_item("atarimo", index, mo->tileyshift);
- state_save_register_item("atarimo", index, mo->bitmapwidth);
- state_save_register_item("atarimo", index, mo->bitmapheight);
- state_save_register_item("atarimo", index, mo->bitmapxmask);
- state_save_register_item("atarimo", index, mo->bitmapymask);
- state_save_register_item("atarimo", index, mo->spriteramsize);
- state_save_register_item("atarimo", index, mo->spriterammask);
- state_save_register_item("atarimo", index, mo->maxcolors);
- state_save_register_item("atarimo", index, mo->transpen);
- state_save_register_item("atarimo", index, mo->maxperline);
- state_save_register_item("atarimo", index, mo->specialvalue);
- state_save_register_item("atarimo", index, mo->codehighshift);
- state_save_register_item("atarimo", index, mo->dirtywidth);
- state_save_register_item("atarimo", index, mo->dirtyheight);
+ state_save_register_item("atarimo", NULL, index, mo->reverse);
+ state_save_register_item("atarimo", NULL, index, mo->split);
+ state_save_register_item("atarimo", NULL, index, mo->linked);
+ state_save_register_item("atarimo", NULL, index, mo->swapxy);
+ state_save_register_item("atarimo", NULL, index, mo->nextneighbor);
+ state_save_register_item("atarimo", NULL, index, mo->slipshift);
+ state_save_register_item("atarimo", NULL, index, mo->slipoffset);
+ state_save_register_item("atarimo", NULL, index, mo->slipramsize);
+ state_save_register_item("atarimo", NULL, index, mo->sliprammask);
+ state_save_register_item("atarimo", NULL, index, mo->entrycount);
+ state_save_register_item("atarimo", NULL, index, mo->entrybits);
+ state_save_register_item("atarimo", NULL, index, mo->bankcount);
+ state_save_register_item("atarimo", NULL, index, mo->tilewidth);
+ state_save_register_item("atarimo", NULL, index, mo->tileheight);
+ state_save_register_item("atarimo", NULL, index, mo->tilexshift);
+ state_save_register_item("atarimo", NULL, index, mo->tileyshift);
+ state_save_register_item("atarimo", NULL, index, mo->bitmapwidth);
+ state_save_register_item("atarimo", NULL, index, mo->bitmapheight);
+ state_save_register_item("atarimo", NULL, index, mo->bitmapxmask);
+ state_save_register_item("atarimo", NULL, index, mo->bitmapymask);
+ state_save_register_item("atarimo", NULL, index, mo->spriteramsize);
+ state_save_register_item("atarimo", NULL, index, mo->spriterammask);
+ state_save_register_item("atarimo", NULL, index, mo->maxcolors);
+ state_save_register_item("atarimo", NULL, index, mo->transpen);
+ state_save_register_item("atarimo", NULL, index, mo->maxperline);
+ state_save_register_item("atarimo", NULL, index, mo->specialvalue);
+ state_save_register_item("atarimo", NULL, index, mo->codehighshift);
+ state_save_register_item("atarimo", NULL, index, mo->dirtywidth);
+ state_save_register_item("atarimo", NULL, index, mo->dirtyheight);
#endif
- state_save_register_bitmap("atarimo", index, "bitmap", mo->bitmap);
+ state_save_register_bitmap("atarimo", NULL, index, "bitmap", mo->bitmap);
- state_save_register_memory("atarimo", index, "spriteram", mo->spriteram, sizeof(atarimo_entry), mo->spriteramsize);
+ state_save_register_memory("atarimo", NULL, index, "spriteram", mo->spriteram, sizeof(atarimo_entry), mo->spriteramsize);
- state_save_register_item_pointer("atarimo", index, mo->codelookup, round_to_powerof2(mo->codemask.mask));
+ state_save_register_item_pointer("atarimo", NULL, index, mo->codelookup, round_to_powerof2(mo->codemask.mask));
- state_save_register_item_pointer("atarimo", index, mo->colorlookup, round_to_powerof2(mo->colormask.mask));
+ state_save_register_item_pointer("atarimo", NULL, index, mo->colorlookup, round_to_powerof2(mo->colormask.mask));
- state_save_register_item_pointer("atarimo", index, mo->dirtygrid, mo->dirtywidth * mo->dirtyheight);
+ state_save_register_item_pointer("atarimo", NULL, index, mo->dirtygrid, mo->dirtywidth * mo->dirtyheight);
- state_save_register_item_pointer("atarimo", index, mo->gfxlookup, round_to_powerof2(mo->gfxmask.mask));
+ state_save_register_item_pointer("atarimo", NULL, index, mo->gfxlookup, round_to_powerof2(mo->gfxmask.mask));
}
diff --git a/src/mame/video/atarirle.c b/src/mame/video/atarirle.c
index 5821532e5f7..fa6d23320ef 100644
--- a/src/mame/video/atarirle.c
+++ b/src/mame/video/atarirle.c
@@ -361,19 +361,19 @@ void atarirle_init(running_machine *machine, int map, const atarirle_desc *desc)
mo->partial_scanline = -1;
/* register for save states */
- state_save_register_item_pointer("atarirle", map, mo->spriteram[0].data, ARRAY_LENGTH(mo->spriteram[0].data) * mo->spriteramsize);
- state_save_register_item_bitmap("atarirle", map, mo->vram[0][0]);
- state_save_register_item_bitmap("atarirle", map, mo->vram[0][1]);
+ state_save_register_item_pointer("atarirle", NULL, map, mo->spriteram[0].data, ARRAY_LENGTH(mo->spriteram[0].data) * mo->spriteramsize);
+ state_save_register_item_bitmap("atarirle", NULL, map, mo->vram[0][0]);
+ state_save_register_item_bitmap("atarirle", NULL, map, mo->vram[0][1]);
if (mo->vrammask.mask != 0)
{
- state_save_register_item_bitmap("atarirle", map, mo->vram[1][0]);
- state_save_register_item_bitmap("atarirle", map, mo->vram[1][1]);
+ state_save_register_item_bitmap("atarirle", NULL, map, mo->vram[1][0]);
+ state_save_register_item_bitmap("atarirle", NULL, map, mo->vram[1][1]);
}
- state_save_register_item("atarirle", map, mo->partial_scanline);
- state_save_register_item("atarirle", map, mo->control_bits);
- state_save_register_item("atarirle", map, mo->command);
- state_save_register_item("atarirle", map, mo->is32bit);
- state_save_register_item_array("atarirle", map, mo->checksums);
+ state_save_register_item("atarirle", NULL, map, mo->partial_scanline);
+ state_save_register_item("atarirle", NULL, map, mo->control_bits);
+ state_save_register_item("atarirle", NULL, map, mo->command);
+ state_save_register_item("atarirle", NULL, map, mo->is32bit);
+ state_save_register_item_array("atarirle", NULL, map, mo->checksums);
}
diff --git a/src/mame/video/avgdvg.c b/src/mame/video/avgdvg.c
index 35f2135e8e9..b2e6dfb3b67 100644
--- a/src/mame/video/avgdvg.c
+++ b/src/mame/video/avgdvg.c
@@ -1417,37 +1417,37 @@ static const vgconf avg_quantum =
static void register_state (void)
{
- state_save_register_item("AVG", 0, vg->pc);
- state_save_register_item("AVG", 0, vg->sp);
- state_save_register_item("AVG", 0, vg->dvx);
- state_save_register_item("AVG", 0, vg->dvy);
- state_save_register_item("AVG", 0, vg->dvy12);
- state_save_register_item("AVG", 0, vg->timer);
- state_save_register_item_array("AVG", 0, vg->stack);
- state_save_register_item("AVG", 0, vg->data);
- state_save_register_item("AVG", 0, vg->state_latch);
- state_save_register_item("AVG", 0, vg->int_latch);
- state_save_register_item("AVG", 0, vg->scale);
- state_save_register_item("AVG", 0, vg->bin_scale);
- state_save_register_item("AVG", 0, vg->intensity);
- state_save_register_item("AVG", 0, vg->color);
- state_save_register_item("AVG", 0, vg->enspkl);
- state_save_register_item("AVG", 0, vg->spkl_shift);
- state_save_register_item("AVG", 0, vg->map);
- state_save_register_item("AVG", 0, vg->hst);
- state_save_register_item("AVG", 0, vg->lst);
- state_save_register_item("AVG", 0, vg->izblank);
- state_save_register_item("AVG", 0, vg->op);
- state_save_register_item("AVG", 0, vg->halt);
- state_save_register_item("AVG", 0, vg->sync_halt);
- state_save_register_item("AVG", 0, vg->xdac_xor);
- state_save_register_item("AVG", 0, vg->ydac_xor);
- state_save_register_item("AVG", 0, vg->xpos);
- state_save_register_item("AVG", 0, vg->ypos);
- state_save_register_item("AVG", 0, vg->clipx_min);
- state_save_register_item("AVG", 0, vg->clipy_min);
- state_save_register_item("AVG", 0, vg->clipx_max);
- state_save_register_item("AVG", 0, vg->clipy_max);
+ state_save_register_item("AVG", NULL, 0, vg->pc);
+ state_save_register_item("AVG", NULL, 0, vg->sp);
+ state_save_register_item("AVG", NULL, 0, vg->dvx);
+ state_save_register_item("AVG", NULL, 0, vg->dvy);
+ state_save_register_item("AVG", NULL, 0, vg->dvy12);
+ state_save_register_item("AVG", NULL, 0, vg->timer);
+ state_save_register_item_array("AVG", NULL, 0, vg->stack);
+ state_save_register_item("AVG", NULL, 0, vg->data);
+ state_save_register_item("AVG", NULL, 0, vg->state_latch);
+ state_save_register_item("AVG", NULL, 0, vg->int_latch);
+ state_save_register_item("AVG", NULL, 0, vg->scale);
+ state_save_register_item("AVG", NULL, 0, vg->bin_scale);
+ state_save_register_item("AVG", NULL, 0, vg->intensity);
+ state_save_register_item("AVG", NULL, 0, vg->color);
+ state_save_register_item("AVG", NULL, 0, vg->enspkl);
+ state_save_register_item("AVG", NULL, 0, vg->spkl_shift);
+ state_save_register_item("AVG", NULL, 0, vg->map);
+ state_save_register_item("AVG", NULL, 0, vg->hst);
+ state_save_register_item("AVG", NULL, 0, vg->lst);
+ state_save_register_item("AVG", NULL, 0, vg->izblank);
+ state_save_register_item("AVG", NULL, 0, vg->op);
+ state_save_register_item("AVG", NULL, 0, vg->halt);
+ state_save_register_item("AVG", NULL, 0, vg->sync_halt);
+ state_save_register_item("AVG", NULL, 0, vg->xdac_xor);
+ state_save_register_item("AVG", NULL, 0, vg->ydac_xor);
+ state_save_register_item("AVG", NULL, 0, vg->xpos);
+ state_save_register_item("AVG", NULL, 0, vg->ypos);
+ state_save_register_item("AVG", NULL, 0, vg->clipx_min);
+ state_save_register_item("AVG", NULL, 0, vg->clipy_min);
+ state_save_register_item("AVG", NULL, 0, vg->clipx_max);
+ state_save_register_item("AVG", NULL, 0, vg->clipy_max);
}
static VIDEO_START( avg_common )
diff --git a/src/mame/video/bfm_adr2.c b/src/mame/video/bfm_adr2.c
index d7e98cb3c51..7dcbc2ae9e5 100644
--- a/src/mame/video/bfm_adr2.c
+++ b/src/mame/video/bfm_adr2.c
@@ -205,8 +205,8 @@ VIDEO_START( adder2 )
state_save_register_global(adder2_data_from_sc2);
state_save_register_global(adder2_data_to_sc2);
- state_save_register_item_array("Adder", 0, adder_ram);
- state_save_register_item_2d_array("Adder", 0, adder_screen_ram);
+ state_save_register_item_array("Adder", NULL, 0, adder_ram);
+ state_save_register_item_2d_array("Adder", NULL, 0, adder_screen_ram);
tilemap0 = tilemap_create(get_tile0_info, tilemap_scan_rows, 8, 8, 50, 35);
diff --git a/src/mame/video/gaelco3d.c b/src/mame/video/gaelco3d.c
index 5f132973f57..96ec50c6c83 100644
--- a/src/mame/video/gaelco3d.c
+++ b/src/mame/video/gaelco3d.c
@@ -98,8 +98,8 @@ VIDEO_START( gaelco3d )
state_save_register_global(polygons);
state_save_register_global(lastscan);
- state_save_register_bitmap("video", 0, "screenbits", screenbits);
- state_save_register_bitmap("video", 0, "zbuffer", zbuffer);
+ state_save_register_bitmap("video", NULL, 0, "screenbits", screenbits);
+ state_save_register_bitmap("video", NULL, 0, "zbuffer", zbuffer);
}
diff --git a/src/mame/video/konamiic.c b/src/mame/video/konamiic.c
index afdfced169d..d4f5fd1bb5d 100644
--- a/src/mame/video/konamiic.c
+++ b/src/mame/video/konamiic.c
@@ -3062,12 +3062,12 @@ void K053245_vh_start(running_machine *machine,int chip, const char *gfx_memory_
memset(K053245_ram[chip],0,K053245_ramsize[chip]);
memset(K053245_buffer[chip],0,K053245_ramsize[chip]);
- state_save_register_item_pointer("K053245", chip, K053245_ram[chip], K053245_ramsize[chip] / 2);
- state_save_register_item_pointer("K053245", chip, K053245_buffer[chip], K053245_ramsize[chip] / 2);
- state_save_register_item("K053245", chip, K053244_rombank[chip]);
- state_save_register_item("K053245", chip, K053245_dx[chip]);
- state_save_register_item("K053245", chip, K053245_dy[chip]);
- state_save_register_item_array("K053245", chip, K053244_regs[chip]);
+ state_save_register_item_pointer("K053245", NULL, chip, K053245_ram[chip], K053245_ramsize[chip] / 2);
+ state_save_register_item_pointer("K053245", NULL, chip, K053245_buffer[chip], K053245_ramsize[chip] / 2);
+ state_save_register_item("K053245", NULL, chip, K053244_rombank[chip]);
+ state_save_register_item("K053245", NULL, chip, K053245_dx[chip]);
+ state_save_register_item("K053245", NULL, chip, K053245_dy[chip]);
+ state_save_register_item_array("K053245", NULL, chip, K053244_regs[chip]);
}
void K053245_set_SpriteOffset(int chip,int offsx, int offsy)
@@ -4717,11 +4717,11 @@ static void K051316_vh_start(running_machine *machine,int chip, const char *gfx_
K051316_wraparound[chip] = 0; /* default = no wraparound */
K051316_offset[chip][0] = K051316_offset[chip][1] = 0;
- state_save_register_item_pointer("K051316", chip, K051316_ram[chip], 0x800);
- state_save_register_item_array("K051316", chip, K051316_ctrlram[chip]);
- state_save_register_item("K051316", chip, K051316_wraparound[chip]);
- state_save_register_item("K051316", chip, K051316_offset[chip][0]);
- state_save_register_item("K051316", chip, K051316_offset[chip][1]);
+ state_save_register_item_pointer("K051316", NULL, chip, K051316_ram[chip], 0x800);
+ state_save_register_item_array("K051316", NULL, chip, K051316_ctrlram[chip]);
+ state_save_register_item("K051316", NULL, chip, K051316_wraparound[chip]);
+ state_save_register_item("K051316", NULL, chip, K051316_offset[chip][0]);
+ state_save_register_item("K051316", NULL, chip, K051316_offset[chip][1]);
}
void K051316_vh_start_0(running_machine *machine,const char *gfx_memory_region,int bpp,
@@ -7549,8 +7549,8 @@ void K053250_vh_start(int chips, const char **region)
K053250_info.chip[chip].offsy = K053250_info.chip[chip].offsx = 0;
K053250_info.chip[chip].frame = -1;
- state_save_register_item_pointer("K053250", chip, K053250_info.chip[chip].ram, 0x800);
- state_save_register_item_array("K053250", chip, K053250_info.chip[chip].regs);
+ state_save_register_item_pointer("K053250", NULL, chip, K053250_info.chip[chip].ram, 0x800);
+ state_save_register_item_array("K053250", NULL, chip, K053250_info.chip[chip].regs);
}
}
diff --git a/src/mame/video/m92.c b/src/mame/video/m92.c
index c51308e02a2..0d97b3e29f6 100644
--- a/src/mame/video/m92.c
+++ b/src/mame/video/m92.c
@@ -275,8 +275,8 @@ VIDEO_START( m92 )
tilemap_set_transmask(layer->tmap, 2, 0x0001, (laynum == 2) ? 0xfffe : 0xffff);
tilemap_set_transmask(layer->wide_tmap, 2, 0x0001, (laynum == 2) ? 0xfffe : 0xffff);
- state_save_register_item("layer", laynum, layer->vram_base);
- state_save_register_item_array("layer", laynum, layer->control);
+ state_save_register_item("layer", NULL, laynum, layer->vram_base);
+ state_save_register_item_array("layer", NULL, laynum, layer->control);
}
paletteram16 = auto_malloc(0x1000);
diff --git a/src/mame/video/psx.c b/src/mame/video/psx.c
index c9b333fcfbc..7679dfba8a4 100644
--- a/src/mame/video/psx.c
+++ b/src/mame/video/psx.c
@@ -738,7 +738,7 @@ static void psx_gpu_init( running_machine *machine )
}
// icky!!!
- state_save_register_memory( "globals", 0, "m_packet", (UINT8 *)&m_packet, 1, sizeof( m_packet ) );
+ state_save_register_memory( "globals", NULL, 0, "m_packet", (UINT8 *)&m_packet, 1, sizeof( m_packet ) );
state_save_register_global_pointer( m_p_vram, m_n_vram_size );
state_save_register_global( m_n_gpu_buffer_offset );
diff --git a/src/mame/video/segaic16.c b/src/mame/video/segaic16.c
index f2dae6ba09b..3a5ceef861c 100644
--- a/src/mame/video/segaic16.c
+++ b/src/mame/video/segaic16.c
@@ -2727,13 +2727,13 @@ void segaic16_sprites_init(int which, int type, int colorbase, int xoffs)
if (buffer)
info->buffer = auto_malloc(info->ramsize);
- state_save_register_item("segaic16_sp", which, info->flip);
- state_save_register_item("segaic16_sp", which, info->shadow);
- state_save_register_item_array("segaic16_sp", which, info->bank);
- state_save_register_item("segaic16_sp", which, info->colorbase);
- state_save_register_item("segaic16_sp", which, info->xoffs);
+ state_save_register_item("segaic16_sp", NULL, which, info->flip);
+ state_save_register_item("segaic16_sp", NULL, which, info->shadow);
+ state_save_register_item_array("segaic16_sp", NULL, which, info->bank);
+ state_save_register_item("segaic16_sp", NULL, which, info->colorbase);
+ state_save_register_item("segaic16_sp", NULL, which, info->xoffs);
if (buffer)
- state_save_register_item_pointer("segaic16_sp", which, ((UINT8 *) info->buffer), info->ramsize);
+ state_save_register_item_pointer("segaic16_sp", NULL, which, ((UINT8 *) info->buffer), info->ramsize);
}
@@ -3498,8 +3498,8 @@ void segaic16_rotate_init(int which, int type, int colorbase)
/* allocate a buffer for swapping */
info->buffer = auto_malloc(info->ramsize);
- state_save_register_item("segaic16_rot", which, info->colorbase);
- state_save_register_item_pointer("segaic16_rot", which, ((UINT8 *) info->buffer), info->ramsize);
+ state_save_register_item("segaic16_rot", NULL, which, info->colorbase);
+ state_save_register_item_pointer("segaic16_rot", NULL, which, ((UINT8 *) info->buffer), info->ramsize);
}
diff --git a/src/mame/video/segasyse.c b/src/mame/video/segasyse.c
index 75f5e667ab6..ca54c607f65 100644
--- a/src/mame/video/segasyse.c
+++ b/src/mame/video/segasyse.c
@@ -123,14 +123,14 @@ static void vdp_start(running_machine *machine, UINT8 chip)
/* Save State Stuff (based on video/taitoic.c) */
- state_save_register_item_pointer("VDP", chip, segae_vdp_vram[chip], 0x8000);
- state_save_register_item_pointer("VDP", chip, vdp_cram[chip], 0x20);
- state_save_register_item_pointer("VDP", chip, segae_vdp_regs[chip], 0x20);
- state_save_register_item("VDP", chip, vdp_cmdpart[chip]);
- state_save_register_item("VDP", chip, vdp_command[chip]);
- state_save_register_item("VDP", chip, vdp_accessmode[chip]);
- state_save_register_item("VDP", chip, vdp_accessaddr[chip]);
- state_save_register_item("VDP", chip, segae_vdp_vrambank[chip]);
+ state_save_register_item_pointer("VDP", NULL, chip, segae_vdp_vram[chip], 0x8000);
+ state_save_register_item_pointer("VDP", NULL, chip, vdp_cram[chip], 0x20);
+ state_save_register_item_pointer("VDP", NULL, chip, segae_vdp_regs[chip], 0x20);
+ state_save_register_item("VDP", NULL, chip, vdp_cmdpart[chip]);
+ state_save_register_item("VDP", NULL, chip, vdp_command[chip]);
+ state_save_register_item("VDP", NULL, chip, vdp_accessmode[chip]);
+ state_save_register_item("VDP", NULL, chip, vdp_accessaddr[chip]);
+ state_save_register_item("VDP", NULL, chip, segae_vdp_vrambank[chip]);
}
/*******************************************************************************
diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c
index 613a7d54d44..3841493e95e 100644
--- a/src/mame/video/taitoic.c
+++ b/src/mame/video/taitoic.c
@@ -815,8 +815,8 @@ void PC080SN_vh_start(running_machine *machine,int chips,int gfxnum,int x_offset
PC080SN_bgscroll_ram[i][1] = PC080SN_ram[i] + 0xc000 /2;
memset(PC080SN_ram[i],0,PC080SN_RAM_SIZE);
- state_save_register_item_pointer("PC080SN", i, PC080SN_ram[i], PC080SN_RAM_SIZE/2);
- state_save_register_item_array("PC080SN", i, PC080SN_ctrl[i]);
+ state_save_register_item_pointer("PC080SN", NULL, i, PC080SN_ram[i], PC080SN_RAM_SIZE/2);
+ state_save_register_item_array("PC080SN", NULL, i, PC080SN_ctrl[i]);
state_save_register_postload(machine, PC080SN_restore_scroll, (void *)(FPTR)i);
/* use the given gfx set for bg tiles */
@@ -2328,9 +2328,9 @@ void TC0100SCN_vh_start(running_machine *machine, int chips,int gfxnum,int x_off
memset(TC0100SCN_ram[i],0,TC0100SCN_RAM_SIZE);
{
- state_save_register_item_pointer("TC0100SCN", i, TC0100SCN_ram[i], TC0100SCN_RAM_SIZE/2);
- state_save_register_item_array("TC0100SCN", i, TC0100SCN_ctrl[i]);
- state_save_register_item("TC0100SCN", i, TC0100SCN_dblwidth[i]);
+ state_save_register_item_pointer("TC0100SCN", NULL, i, TC0100SCN_ram[i], TC0100SCN_RAM_SIZE/2);
+ state_save_register_item_array("TC0100SCN", NULL, i, TC0100SCN_ctrl[i]);
+ state_save_register_item("TC0100SCN", NULL, i, TC0100SCN_dblwidth[i]);
}
state_save_register_postload(machine, TC0100SCN_postload, (void *)(FPTR)i);
diff --git a/src/mame/video/vertigo.c b/src/mame/video/vertigo.c
index 500beca08af..a24b5c0765d 100644
--- a/src/mame/video/vertigo.c
+++ b/src/mame/video/vertigo.c
@@ -243,36 +243,36 @@ void vertigo_vproc_init(running_machine *machine)
memset(&bsp, 0, sizeof(bsp));
memset(&vgen, 0, sizeof(vgen));
- state_save_register_item_array("vector_proc", 0, vs.sram);
- state_save_register_item("vector_proc", 0, vs.ramlatch);
- state_save_register_item("vector_proc", 0, vs.rom_adr);
- state_save_register_item("vector_proc", 0, vs.pc);
- state_save_register_item("vector_proc", 0, vs.ret);
-
- state_save_register_item_array("vector_proc", 0, bsp.ram);
- state_save_register_item("vector_proc", 0, bsp.d);
- state_save_register_item("vector_proc", 0, bsp.q);
- state_save_register_item("vector_proc", 0, bsp.f);
- state_save_register_item("vector_proc", 0, bsp.y);
-
- state_save_register_item("vector_proc", 0, vgen.sreg);
- state_save_register_item("vector_proc", 0, vgen.l1);
- state_save_register_item("vector_proc", 0, vgen.l2);
- state_save_register_item("vector_proc", 0, vgen.c_v);
- state_save_register_item("vector_proc", 0, vgen.c_h);
- state_save_register_item("vector_proc", 0, vgen.c_l);
- state_save_register_item("vector_proc", 0, vgen.adder_s);
- state_save_register_item("vector_proc", 0, vgen.adder_a);
- state_save_register_item("vector_proc", 0, vgen.color);
- state_save_register_item("vector_proc", 0, vgen.intensity);
- state_save_register_item("vector_proc", 0, vgen.brez);
- state_save_register_item("vector_proc", 0, vgen.vfin);
- state_save_register_item("vector_proc", 0, vgen.hud1);
- state_save_register_item("vector_proc", 0, vgen.hud2);
- state_save_register_item("vector_proc", 0, vgen.vud1);
- state_save_register_item("vector_proc", 0, vgen.vud2);
- state_save_register_item("vector_proc", 0, vgen.hc1);
- state_save_register_item("vector_proc", 0, vgen.ven);
+ state_save_register_item_array("vector_proc", NULL, 0, vs.sram);
+ state_save_register_item("vector_proc", NULL, 0, vs.ramlatch);
+ state_save_register_item("vector_proc", NULL, 0, vs.rom_adr);
+ state_save_register_item("vector_proc", NULL, 0, vs.pc);
+ state_save_register_item("vector_proc", NULL, 0, vs.ret);
+
+ state_save_register_item_array("vector_proc", NULL, 0, bsp.ram);
+ state_save_register_item("vector_proc", NULL, 0, bsp.d);
+ state_save_register_item("vector_proc", NULL, 0, bsp.q);
+ state_save_register_item("vector_proc", NULL, 0, bsp.f);
+ state_save_register_item("vector_proc", NULL, 0, bsp.y);
+
+ state_save_register_item("vector_proc", NULL, 0, vgen.sreg);
+ state_save_register_item("vector_proc", NULL, 0, vgen.l1);
+ state_save_register_item("vector_proc", NULL, 0, vgen.l2);
+ state_save_register_item("vector_proc", NULL, 0, vgen.c_v);
+ state_save_register_item("vector_proc", NULL, 0, vgen.c_h);
+ state_save_register_item("vector_proc", NULL, 0, vgen.c_l);
+ state_save_register_item("vector_proc", NULL, 0, vgen.adder_s);
+ state_save_register_item("vector_proc", NULL, 0, vgen.adder_a);
+ state_save_register_item("vector_proc", NULL, 0, vgen.color);
+ state_save_register_item("vector_proc", NULL, 0, vgen.intensity);
+ state_save_register_item("vector_proc", NULL, 0, vgen.brez);
+ state_save_register_item("vector_proc", NULL, 0, vgen.vfin);
+ state_save_register_item("vector_proc", NULL, 0, vgen.hud1);
+ state_save_register_item("vector_proc", NULL, 0, vgen.hud2);
+ state_save_register_item("vector_proc", NULL, 0, vgen.vud1);
+ state_save_register_item("vector_proc", NULL, 0, vgen.vud2);
+ state_save_register_item("vector_proc", NULL, 0, vgen.hc1);
+ state_save_register_item("vector_proc", NULL, 0, vgen.ven);
}
diff --git a/src/mame/video/ygv608.c b/src/mame/video/ygv608.c
index 14233d85d6a..fb51211a150 100644
--- a/src/mame/video/ygv608.c
+++ b/src/mame/video/ygv608.c
@@ -487,12 +487,12 @@ static STATE_POSTLOAD( ygv608_postload )
static void ygv608_register_state_save(running_machine *machine)
{
- state_save_register_item_array("ygv608", 0, ygv608.ports.b);
- state_save_register_item_array("ygv608", 0, ygv608.regs.b);
- state_save_register_item_array("ygv608", 0, ygv608.pattern_name_table);
- state_save_register_item_array("ygv608", 0, ygv608.sprite_attribute_table.b);
- state_save_register_item_2d_array("ygv608", 0, ygv608.scroll_data_table);
- state_save_register_item_2d_array("ygv608", 0, ygv608.colour_palette);
+ state_save_register_item_array("ygv608", NULL, 0, ygv608.ports.b);
+ state_save_register_item_array("ygv608", NULL, 0, ygv608.regs.b);
+ state_save_register_item_array("ygv608", NULL, 0, ygv608.pattern_name_table);
+ state_save_register_item_array("ygv608", NULL, 0, ygv608.sprite_attribute_table.b);
+ state_save_register_item_2d_array("ygv608", NULL, 0, ygv608.scroll_data_table);
+ state_save_register_item_2d_array("ygv608", NULL, 0, ygv608.colour_palette);
state_save_register_postload(machine, ygv608_postload, NULL);
}