summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/netlist.c
diff options
context:
space:
mode:
author Couriersud <couriersud@users.noreply.github.com>2014-05-30 16:04:08 +0000
committer Couriersud <couriersud@users.noreply.github.com>2014-05-30 16:04:08 +0000
commitf4f871ada4f0f228fe520b881ca6e311f378299a (patch)
tree30a23bfa0625738d2cd8181348256143a466b168 /src/emu/machine/netlist.c
parentac79d15878a371cfab002527d3964646ba16eb9a (diff)
Netlist changes:
- Reworked the analog storage model to better support the compiler. This will most likely only pay off on larger matrices than currently used. Investment for future platforms with larger vectors - Added parameter "GS_THRESHOLD" to select the minimum matrix size for Gauss-Seidel solver - pstate: pointer will be resolved late, i.e. after all initialization is finished. State is registered during start, but some pointers are only set during post_load in the solver.
Diffstat (limited to 'src/emu/machine/netlist.c')
-rw-r--r--src/emu/machine/netlist.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/emu/machine/netlist.c b/src/emu/machine/netlist.c
index 3365144af68..55ef624f35e 100644
--- a/src/emu/machine/netlist.c
+++ b/src/emu/machine/netlist.c
@@ -439,7 +439,10 @@ ATTR_COLD void netlist_mame_device_t::save_state()
switch (s->m_dt)
{
case DT_DOUBLE:
- save_pointer((double *) s->m_ptr, s->m_name, s->m_count);
+ {
+ double *td = s->resolved<double>();
+ if (td != NULL) save_pointer(td, s->m_name, s->m_count);
+ }
break;
case DT_INT64:
save_pointer((INT64 *) s->m_ptr, s->m_name, s->m_count);