diff options
| author | 2008-11-17 06:21:26 +0000 | |
|---|---|---|
| committer | 2008-11-17 06:21:26 +0000 | |
| commit | a5bf427929fd25fe7ff335bc4d1f4d49c2e4bac3 (patch) | |
| tree | 74095b00b4d2ec554c7dfe813d036e4fc213adbc | |
| parent | 8aa46743d1926d2566e0423b23172de1a15b3a7b (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.
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); } |
