Previous 199869 Revisions Next

r20648 Friday 1st February, 2013 at 11:37:47 UTC by Miodrag Milanović
modernized reset of pre/postload calls, just few legacy left (no whatsnew)
[src/mame/audio]8080bw.c
[src/mame/drivers]astrocde.c atetris.c cave.c crystal.c darius.c djmain.c dynax.c fcrash.c mjsister.c mw8080bw.c mystwarr.c ninjaw.c othunder.c pengadvb.c psikyo4.c renegade.c slapshot.c taito_f2.c taito_h.c taito_x.c taito_z.c taitoair.c topspeed.c vegas.c warriorb.c wgp.c xexex.c xmen.c
[src/mame/includes]40love.h 8080bw.h astrocde.h atetris.h cave.h chaknpop.h cps1.h darius.h djmain.h dynax.h gradius3.h gridlee.h hyprduel.h mw8080bw.h mystwarr.h nemesis.h ninjaw.h othunder.h psikyo4.h renegade.h simpsons.h slapshot.h tail2nos.h taito_f2.h taito_h.h taito_z.h taitoair.h tnzs.h toaplan1.h toaplan2.h topspeed.h tumbleb.h twincobr.h warriorb.h wgp.h williams.h xexex.h xmen.h
[src/mame/machine]simpsons.c tnzs.c toaplan1.c twincobr.c williams.c
[src/mame/video]40love.c cave.c chaknpop.c cps1.c gradius3.c gridlee.c hyprduel.c nemesis.c tail2nos.c taitoic.c taitoic.h toaplan1.c toaplan2.c tumbleb.c twincobr.c

trunk/src/mame/video/nemesis.c
r20647r20648
263263}
264264
265265
266static void nemesis_postload(running_machine &machine)
266void nemesis_state::nemesis_postload()
267267{
268   nemesis_state *state = machine.driver_data<nemesis_state>();
269268   int i, offs;
270269
271   for (offs = 0; offs < state->m_charram.bytes(); offs++)
270   for (offs = 0; offs < m_charram.bytes(); offs++)
272271   {
273272      for (i = 0; i < 8; i++)
274273      {
275274         int w = sprite_data[i].width;
276275         int h = sprite_data[i].height;
277         machine.gfx[sprite_data[i].char_type]->mark_dirty(offs * 4 / (w * h));
276         machine().gfx[sprite_data[i].char_type]->mark_dirty(offs * 4 / (w * h));
278277      }
279278   }
280   state->m_background->mark_all_dirty();
281   state->m_foreground->mark_all_dirty();
279   m_background->mark_all_dirty();
280   m_foreground->mark_all_dirty();
282281}
283282
284283
r20647r20648
308307   machine().gfx[7]->set_source((UINT8 *)m_charram.target());
309308
310309   /* Set up save state */
311   machine().save().register_postload(save_prepost_delegate(FUNC(nemesis_postload), &machine()));
310   machine().save().register_postload(save_prepost_delegate(FUNC(nemesis_state::nemesis_postload), this));
312311}
313312
314313
trunk/src/mame/video/gridlee.c
r20647r20648
3838 *
3939 *************************************/
4040
41static void expand_pixels(running_machine &machine)
41void gridlee_state::expand_pixels()
4242{
43   gridlee_state *state = machine.driver_data<gridlee_state>();
44   UINT8 *videoram = state->m_videoram;
43   UINT8 *videoram = m_videoram;
4544   int offset = 0;
4645
4746   for(offset = 0; offset < 0x77ff; offset++)
4847   {
49      state->m_local_videoram[offset * 2 + 0] = videoram[offset] >> 4;
50      state->m_local_videoram[offset * 2 + 1] = videoram[offset] & 15;
48      m_local_videoram[offset * 2 + 0] = videoram[offset] >> 4;
49      m_local_videoram[offset * 2 + 1] = videoram[offset] & 15;
5150   }
5251}
5352
r20647r20648
6968
7069   state_save_register_global(machine(), m_cocktail_flip);
7170   state_save_register_global(machine(), m_palettebank_vis);
72   machine().save().register_postload(save_prepost_delegate(FUNC(expand_pixels), &machine()));
71   machine().save().register_postload(save_prepost_delegate(FUNC(gridlee_state::expand_pixels), this));
7372}
7473
7574
trunk/src/mame/video/twincobr.c
r20647r20648
1717#include "includes/twincobr.h"
1818
1919
20static void twincobr_restore_screen(running_machine &machine);
21
2220/* 6845 used for video sync signals only */
2321MC6845_INTERFACE( twincobr_mc6845_intf )
2422{
r20647r20648
134132   state_save_register_global(machine(), m_bg_ram_bank);
135133   state_save_register_global(machine(), m_flip_screen);
136134   state_save_register_global(machine(), m_wardner_sprite_hack);
137   machine().save().register_postload(save_prepost_delegate(FUNC(twincobr_restore_screen), &machine()));
135   machine().save().register_postload(save_prepost_delegate(FUNC(twincobr_state::twincobr_restore_screen), this));
138136}
139137
140static void twincobr_restore_screen(running_machine &machine)
138void twincobr_state::twincobr_restore_screen()
141139{
142   twincobr_state *state = machine.driver_data<twincobr_state>();
143
144   twincobr_display(machine, state->m_display_on);
145   twincobr_flipscreen(machine, state->m_flip_screen);
140   twincobr_display(machine(), m_display_on);
141   twincobr_flipscreen(machine(), m_flip_screen);
146142}
147143
148144
trunk/src/mame/video/chaknpop.c
r20647r20648
6060  Memory handlers
6161***************************************************************************/
6262
63static void tx_tilemap_mark_all_dirty( running_machine &machine )
63void chaknpop_state::tx_tilemap_mark_all_dirty()
6464{
65   chaknpop_state *state = machine.driver_data<chaknpop_state>();
66
67   state->m_tx_tilemap->mark_all_dirty();
68   state->m_tx_tilemap->set_flip(state->m_flip_x | state->m_flip_y);
65   m_tx_tilemap->mark_all_dirty();
66   m_tx_tilemap->set_flip(m_flip_x | m_flip_y);
6967}
7068
7169READ8_MEMBER(chaknpop_state::chaknpop_gfxmode_r)
r20647r20648
9593      }
9694
9795      if (all_dirty)
98         tx_tilemap_mark_all_dirty(machine());
96         tx_tilemap_mark_all_dirty();
9997   }
10098}
10199
r20647r20648
112110      m_attr_ram[offset] = data;
113111
114112      if (offset == TX_COLOR1 || offset == TX_COLOR2)
115         tx_tilemap_mark_all_dirty(machine());
113         tx_tilemap_mark_all_dirty();
116114   }
117115}
118116
r20647r20648
165163   save_pointer(NAME(m_vram4), 0x2000);
166164
167165   membank("bank1")->set_entry(0);
168   tx_tilemap_mark_all_dirty(machine());
166   tx_tilemap_mark_all_dirty();
169167
170   machine().save().register_postload(save_prepost_delegate(FUNC(tx_tilemap_mark_all_dirty), &machine()));
168   machine().save().register_postload(save_prepost_delegate(FUNC(chaknpop_state::tx_tilemap_mark_all_dirty), this));
171169}
172170
173171
trunk/src/mame/video/cps1.c
r20647r20648
18051805}
18061806
18071807
1808void cps1_get_video_base( running_machine &machine )
1808void cps_state::cps1_get_video_base()
18091809{
1810   cps_state *state = machine.driver_data<cps_state>();
18111810   int layercontrol, videocontrol, scroll1xoff, scroll2xoff, scroll3xoff;
18121811
18131812   /* Re-calculate the VIDEO RAM base */
1814   if (state->m_scroll1 != cps1_base(machine, CPS1_SCROLL1_BASE, state->m_scroll_size))
1813   if (m_scroll1 != cps1_base(machine(), CPS1_SCROLL1_BASE, m_scroll_size))
18151814   {
1816      state->m_scroll1 = cps1_base(machine, CPS1_SCROLL1_BASE, state->m_scroll_size);
1817      state->m_bg_tilemap[0]->mark_all_dirty();
1815      m_scroll1 = cps1_base(machine(), CPS1_SCROLL1_BASE, m_scroll_size);
1816      m_bg_tilemap[0]->mark_all_dirty();
18181817   }
1819   if (state->m_scroll2 != cps1_base(machine, CPS1_SCROLL2_BASE, state->m_scroll_size))
1818   if (m_scroll2 != cps1_base(machine(), CPS1_SCROLL2_BASE, m_scroll_size))
18201819   {
1821      state->m_scroll2 = cps1_base(machine, CPS1_SCROLL2_BASE, state->m_scroll_size);
1822      state->m_bg_tilemap[1]->mark_all_dirty();
1820      m_scroll2 = cps1_base(machine(), CPS1_SCROLL2_BASE, m_scroll_size);
1821      m_bg_tilemap[1]->mark_all_dirty();
18231822   }
1824   if (state->m_scroll3 != cps1_base(machine, CPS1_SCROLL3_BASE, state->m_scroll_size))
1823   if (m_scroll3 != cps1_base(machine(), CPS1_SCROLL3_BASE, m_scroll_size))
18251824   {
1826      state->m_scroll3 = cps1_base(machine, CPS1_SCROLL3_BASE, state->m_scroll_size);
1827      state->m_bg_tilemap[2]->mark_all_dirty();
1825      m_scroll3 = cps1_base(machine(), CPS1_SCROLL3_BASE, m_scroll_size);
1826      m_bg_tilemap[2]->mark_all_dirty();
18281827   }
18291828
18301829   /* Some of the sf2 hacks use only sprite port 0x9100 and the scroll layers are offset */
1831   if (state->m_game_config->bootleg_kludge == 1)
1830   if (m_game_config->bootleg_kludge == 1)
18321831   {
1833      state->m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100;
1834      state->m_obj = cps1_base(machine, CPS1_OBJ_BASE, state->m_obj_size);
1832      m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100;
1833      m_obj = cps1_base(machine(), CPS1_OBJ_BASE, m_obj_size);
18351834      scroll1xoff = -0x0c;
18361835      scroll2xoff = -0x0e;
18371836      scroll3xoff = -0x10;
18381837   }
18391838   else
18401839   {
1841      state->m_obj = cps1_base(machine, CPS1_OBJ_BASE, state->m_obj_size);
1840      m_obj = cps1_base(machine(), CPS1_OBJ_BASE, m_obj_size);
18421841      scroll1xoff = 0;
18431842      scroll2xoff = 0;
18441843      scroll3xoff = 0;
18451844   }
18461845
1847   state->m_other = cps1_base(machine, CPS1_OTHER_BASE, state->m_other_size);
1846   m_other = cps1_base(machine(), CPS1_OTHER_BASE, m_other_size);
18481847
18491848   /* Get scroll values */
1850   state->m_scroll1x = state->m_cps_a_regs[CPS1_SCROLL1_SCROLLX] + scroll1xoff;
1851   state->m_scroll1y = state->m_cps_a_regs[CPS1_SCROLL1_SCROLLY];
1852   state->m_scroll2x = state->m_cps_a_regs[CPS1_SCROLL2_SCROLLX] + scroll2xoff;
1853   state->m_scroll2y = state->m_cps_a_regs[CPS1_SCROLL2_SCROLLY];
1854   state->m_scroll3x = state->m_cps_a_regs[CPS1_SCROLL3_SCROLLX] + scroll3xoff;
1855   state->m_scroll3y = state->m_cps_a_regs[CPS1_SCROLL3_SCROLLY];
1856   state->m_stars1x = state->m_cps_a_regs[CPS1_STARS1_SCROLLX];
1857   state->m_stars1y = state->m_cps_a_regs[CPS1_STARS1_SCROLLY];
1858   state->m_stars2x = state->m_cps_a_regs[CPS1_STARS2_SCROLLX];
1859   state->m_stars2y = state->m_cps_a_regs[CPS1_STARS2_SCROLLY];
1849   m_scroll1x = m_cps_a_regs[CPS1_SCROLL1_SCROLLX] + scroll1xoff;
1850   m_scroll1y = m_cps_a_regs[CPS1_SCROLL1_SCROLLY];
1851   m_scroll2x = m_cps_a_regs[CPS1_SCROLL2_SCROLLX] + scroll2xoff;
1852   m_scroll2y = m_cps_a_regs[CPS1_SCROLL2_SCROLLY];
1853   m_scroll3x = m_cps_a_regs[CPS1_SCROLL3_SCROLLX] + scroll3xoff;
1854   m_scroll3y = m_cps_a_regs[CPS1_SCROLL3_SCROLLY];
1855   m_stars1x = m_cps_a_regs[CPS1_STARS1_SCROLLX];
1856   m_stars1y = m_cps_a_regs[CPS1_STARS1_SCROLLY];
1857   m_stars2x = m_cps_a_regs[CPS1_STARS2_SCROLLX];
1858   m_stars2y = m_cps_a_regs[CPS1_STARS2_SCROLLY];
18601859
18611860   /* Get layer enable bits */
1862   layercontrol = state->m_cps_b_regs[state->m_game_config->layer_control / 2];
1863   videocontrol = state->m_cps_a_regs[CPS1_VIDEOCONTROL];
1864   state->m_bg_tilemap[0]->enable(layercontrol & state->m_game_config->layer_enable_mask[0]);
1865   state->m_bg_tilemap[1]->enable((layercontrol & state->m_game_config->layer_enable_mask[1]) && (videocontrol & 4));
1866   state->m_bg_tilemap[2]->enable((layercontrol & state->m_game_config->layer_enable_mask[2]) && (videocontrol & 8));
1867   state->m_stars_enabled[0] = layercontrol & state->m_game_config->layer_enable_mask[3];
1868   state->m_stars_enabled[1] = layercontrol & state->m_game_config->layer_enable_mask[4];
1861   layercontrol = m_cps_b_regs[m_game_config->layer_control / 2];
1862   videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
1863   m_bg_tilemap[0]->enable(layercontrol & m_game_config->layer_enable_mask[0]);
1864   m_bg_tilemap[1]->enable((layercontrol & m_game_config->layer_enable_mask[1]) && (videocontrol & 4));
1865   m_bg_tilemap[2]->enable((layercontrol & m_game_config->layer_enable_mask[2]) && (videocontrol & 8));
1866   m_stars_enabled[0] = layercontrol & m_game_config->layer_enable_mask[3];
1867   m_stars_enabled[1] = layercontrol & m_game_config->layer_enable_mask[4];
18691868
18701869#ifdef MAME_DEBUG
18711870{
18721871   int enablemask = 0;
18731872
1874   if (state->m_game_config->layer_enable_mask[0] == state->m_game_config->layer_enable_mask[1])
1875      enablemask = state->m_game_config->layer_enable_mask[0];
1873   if (m_game_config->layer_enable_mask[0] == m_game_config->layer_enable_mask[1])
1874      enablemask = m_game_config->layer_enable_mask[0];
18761875
1877   if (state->m_game_config->layer_enable_mask[0] == state->m_game_config->layer_enable_mask[2])
1878      enablemask = state->m_game_config->layer_enable_mask[0];
1876   if (m_game_config->layer_enable_mask[0] == m_game_config->layer_enable_mask[2])
1877      enablemask = m_game_config->layer_enable_mask[0];
18791878
1880   if (state->m_game_config->layer_enable_mask[1] == state->m_game_config->layer_enable_mask[2])
1881      enablemask = state->m_game_config->layer_enable_mask[1];
1879   if (m_game_config->layer_enable_mask[1] == m_game_config->layer_enable_mask[2])
1880      enablemask = m_game_config->layer_enable_mask[1];
18821881
18831882   if (enablemask)
18841883   {
r20647r20648
18861885         popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
18871886   }
18881887
1889   enablemask = state->m_game_config->layer_enable_mask[0] | state->m_game_config->layer_enable_mask[1]
1890         | state->m_game_config->layer_enable_mask[2]
1891         | state->m_game_config->layer_enable_mask[3] | state->m_game_config->layer_enable_mask[4];
1888   enablemask = m_game_config->layer_enable_mask[0] | m_game_config->layer_enable_mask[1]
1889         | m_game_config->layer_enable_mask[2]
1890         | m_game_config->layer_enable_mask[3] | m_game_config->layer_enable_mask[4];
18921891
18931892   if (((layercontrol & ~enablemask) & 0x003e) != 0)
18941893      popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
r20647r20648
21342133   m_scroll3 = NULL;
21352134   m_obj = NULL;
21362135   m_other = NULL;
2137   cps1_get_video_base(machine());   /* Calculate base pointers */
2138   cps1_get_video_base(machine());   /* Calculate old base pointers */
2136   cps1_get_video_base();   /* Calculate base pointers */
2137   cps1_get_video_base();   /* Calculate old base pointers */
21392138
21402139   /* state save register */
21412140   save_item(NAME(m_scanline1));
r20647r20648
21662165      save_pointer(NAME(m_cps2_buffered_obj), m_cps2_obj_size / 2);
21672166   }
21682167
2169   machine().save().register_postload(save_prepost_delegate(FUNC(cps1_get_video_base), &machine()));
2168   machine().save().register_postload(save_prepost_delegate(FUNC(cps_state::cps1_get_video_base), this));
21702169}
21712170
21722171VIDEO_START_MEMBER(cps_state,cps1)
r20647r20648
27912790   layercontrol = m_cps_b_regs[m_game_config->layer_control / 2];
27922791
27932792   /* Get video memory base registers */
2794   cps1_get_video_base(machine());
2793   cps1_get_video_base();
27952794
27962795   /* Find the offset of the last sprite in the sprite table */
27972796   cps1_find_last_sprite(machine());
r20647r20648
29382937   if (state)
29392938   {
29402939      /* Get video memory base registers */
2941      cps1_get_video_base(machine());
2940      cps1_get_video_base();
29422941
29432942      if (m_cps_version == 1)
29442943      {
trunk/src/mame/video/tumbleb.c
r20647r20648
211211}
212212
213213
214static void tumbleb_tilemap_redraw(running_machine &machine)
214void tumbleb_state::tumbleb_tilemap_redraw()
215215{
216   tumbleb_state *state = machine.driver_data<tumbleb_state>();
217
218   state->m_pf1_tilemap->mark_all_dirty();
219   state->m_pf1_alt_tilemap->mark_all_dirty();
220   state->m_pf2_tilemap->mark_all_dirty();
221   if (state->m_pf2_alt_tilemap)
222      state->m_pf2_alt_tilemap->mark_all_dirty();
216   m_pf1_tilemap->mark_all_dirty();
217   m_pf1_alt_tilemap->mark_all_dirty();
218   m_pf2_tilemap->mark_all_dirty();
219   if (m_pf2_alt_tilemap)
220      m_pf2_alt_tilemap->mark_all_dirty();
223221}
224222
225223VIDEO_START_MEMBER(tumbleb_state,pangpang)
r20647r20648
231229   m_pf1_tilemap->set_transparent_pen(0);
232230   m_pf1_alt_tilemap->set_transparent_pen(0);
233231
234   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_tilemap_redraw), &machine()));
232   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_state::tumbleb_tilemap_redraw), this));
235233}
236234
237235
r20647r20648
244242   m_pf1_tilemap->set_transparent_pen(0);
245243   m_pf1_alt_tilemap->set_transparent_pen(0);
246244
247   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_tilemap_redraw), &machine()));
245   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_state::tumbleb_tilemap_redraw), this));
248246}
249247
250248VIDEO_START_MEMBER(tumbleb_state,sdfight)
r20647r20648
256254   m_pf1_tilemap->set_transparent_pen(0);
257255   m_pf1_alt_tilemap->set_transparent_pen(0);
258256
259   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_tilemap_redraw), &machine()));
257   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_state::tumbleb_tilemap_redraw), this));
260258}
261259
262260VIDEO_START_MEMBER(tumbleb_state,fncywld)
r20647r20648
268266   m_pf1_tilemap->set_transparent_pen(15);
269267   m_pf1_alt_tilemap->set_transparent_pen(15);
270268
271   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_tilemap_redraw), &machine()));
269   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_state::tumbleb_tilemap_redraw), this));
272270}
273271
274272
r20647r20648
280278
281279   m_pf1_alt_tilemap->set_transparent_pen(0);
282280
283   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_tilemap_redraw), &machine()));
281   machine().save().register_postload(save_prepost_delegate(FUNC(tumbleb_state::tumbleb_tilemap_redraw), this));
284282}
285283
286284/******************************************************************************/
trunk/src/mame/video/hyprduel.c
r20647r20648
325325}
326326
327327
328static void hyprduel_postload(running_machine &machine)
328void hyprduel_state::hyprduel_postload()
329329{
330   hyprduel_state *state = machine.driver_data<hyprduel_state>();
331330   int i;
332331
333332   for (i = 0; i < 3; i++)
334333   {
335      UINT16 wx = state->m_window[i * 2 + 1];
336      UINT16 wy = state->m_window[i * 2 + 0];
334      UINT16 wx = m_window[i * 2 + 1];
335      UINT16 wy = m_window[i * 2 + 0];
337336
338      state->m_bg_tilemap[i]->set_scrollx(0, state->m_scroll[i * 2 + 1] - wx - (wx & 7));
339      state->m_bg_tilemap[i]->set_scrolly(0, state->m_scroll[i * 2 + 0] - wy - (wy & 7));
337      m_bg_tilemap[i]->set_scrollx(0, m_scroll[i * 2 + 1] - wx - (wx & 7));
338      m_bg_tilemap[i]->set_scrolly(0, m_scroll[i * 2 + 0] - wy - (wy & 7));
340339
341      state->m_bg_tilemap[i]->mark_all_dirty();
340      m_bg_tilemap[i]->mark_all_dirty();
342341   }
343342}
344343
r20647r20648
386385   /* Set up save state */
387386   save_item(NAME(m_sprite_xoffs));
388387   save_item(NAME(m_sprite_yoffs));
389   machine().save().register_postload(save_prepost_delegate(FUNC(hyprduel_postload), &machine()));
388   machine().save().register_postload(save_prepost_delegate(FUNC(hyprduel_state::hyprduel_postload), this));
390389}
391390
392391VIDEO_START_MEMBER(hyprduel_state,hyprduel_14220)
trunk/src/mame/video/toaplan1.c
r20647r20648
283283   state->m_pf4_tilemap->set_scrolly(0, (state->m_pf4_scrolly >> 7) - (state->m_tiles_offsety - state->m_scrolly_offs));
284284}
285285
286static void rallybik_flipscreen(running_machine &machine)
286void toaplan1_state::rallybik_flipscreen()
287287{
288   toaplan1_state *state = machine.driver_data<toaplan1_state>();
289   address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
288   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
290289
291   state->rallybik_bcu_flipscreen_w(space, 0, state->m_bcu_flipscreen, 0xffff);
290   rallybik_bcu_flipscreen_w(space, 0, m_bcu_flipscreen, 0xffff);
292291}
293292
294static void toaplan1_flipscreen(running_machine &machine)
293void toaplan1_state::toaplan1_flipscreen()
295294{
296   toaplan1_state *state = machine.driver_data<toaplan1_state>();
297   address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
295   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
298296
299   state->toaplan1_bcu_flipscreen_w(space, 0, state->m_bcu_flipscreen, 0xffff);
297   toaplan1_bcu_flipscreen_w(space, 0, m_bcu_flipscreen, 0xffff);
300298}
301299
302300static void register_common(running_machine &machine)
r20647r20648
350348
351349   register_common(machine());
352350
353   machine().save().register_postload(save_prepost_delegate(FUNC(rallybik_flipscreen), &machine()));
351   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan1_state::rallybik_flipscreen), this));
354352}
355353
356354VIDEO_START_MEMBER(toaplan1_state,toaplan1)
r20647r20648
372370
373371   register_common(machine());
374372
375   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan1_flipscreen), &machine()));
373   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan1_state::toaplan1_flipscreen), this));
376374}
377375
378376
trunk/src/mame/video/toaplan2.c
r20647r20648
7272   state->save_item(NAME(state->m_tx_flip));
7373}
7474
75static void truxton2_postload(running_machine &machine)
75void toaplan2_state::truxton2_postload()
7676{
7777   for (int i = 0; i < 1024; i++)
78      machine.gfx[2]->mark_dirty(i);
78      machine().gfx[2]->mark_dirty(i);
7979}
8080
8181VIDEO_START_MEMBER(toaplan2_state,toaplan2)
r20647r20648
108108
109109   /* Create the Text tilemap for this game */
110110   machine().gfx[2]->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
111   machine().save().register_postload(save_prepost_delegate(FUNC(truxton2_postload), &machine()));
111   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this));
112112
113113   truxton2_create_tx_tilemap(machine());
114114   m_tx_tilemap->set_scrolldx(0x1d4 +1, 0x2a);
r20647r20648
166166   /* Create the Text tilemap for this game */
167167   m_tx_gfxram16.allocate(RAIZING_TX_GFXRAM_SIZE/2);
168168   machine().gfx[2]->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
169   machine().save().register_postload(save_prepost_delegate(FUNC(truxton2_postload), &machine()));
169   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this));
170170
171171   truxton2_create_tx_tilemap(machine());
172172   m_tx_tilemap->set_scrolldx(0x1d4, 0x2a);
trunk/src/mame/video/40love.c
r20647r20648
8686
8787***************************************************************************/
8888
89static void redraw_pixels(running_machine &machine)
89void fortyl_state::redraw_pixels()
9090{
91   fortyl_state *state = machine.driver_data<fortyl_state>();
92   state->m_pix_redraw = 1;
93   state->m_bg_tilemap->mark_all_dirty();
91   m_pix_redraw = 1;
92   m_bg_tilemap->mark_all_dirty();
9493}
9594
9695
r20647r20648
122121   save_item(NAME(*m_tmp_bitmap1));
123122   save_item(NAME(*m_tmp_bitmap2));
124123   save_item(NAME(m_pixram_sel));
125   machine().save().register_postload(save_prepost_delegate(FUNC(redraw_pixels), &machine()));
124   machine().save().register_postload(save_prepost_delegate(FUNC(fortyl_state::redraw_pixels), this));
126125}
127126
128127
trunk/src/mame/video/tail2nos.c
r20647r20648
4040
4141***************************************************************************/
4242
43static void tail2nos_postload(running_machine &machine)
43void tail2nos_state::tail2nos_postload()
4444{
45   tail2nos_state *state = machine.driver_data<tail2nos_state>();
4645   int i;
4746
48   state->m_bg_tilemap->mark_all_dirty();
47   m_bg_tilemap->mark_all_dirty();
4948
5049   for (i = 0; i < 0x20000; i += 64)
5150   {
52      machine.gfx[2]->mark_dirty(i / 64);
51      machine().gfx[2]->mark_dirty(i / 64);
5352   }
5453}
5554
r20647r20648
6261   m_zoomdata = (UINT16 *)memregion("gfx3")->base();
6362
6463   save_pointer(NAME(m_zoomdata), 0x20000 / 2);
65   machine().save().register_postload(save_prepost_delegate(FUNC(tail2nos_postload), &machine()));
64   machine().save().register_postload(save_prepost_delegate(FUNC(tail2nos_state::tail2nos_postload), this));
6665}
6766
6867
trunk/src/mame/video/taitoic.c
r20647r20648
954954}
955955
956956
957static void pc080sn_restore_scroll(pc080sn_state *pc080sn)
957void pc080sn_device::pc080sn_restore_scroll()
958958{
959   pc080sn_state *pc080sn = pc080sn_get_safe_token(this);
959960   int flip;
960961
961962   pc080sn->bgscrollx[0] = -pc080sn->ctrl[0];
r20647r20648
10371038
10381039   save_pointer(NAME(pc080sn->ram), PC080SN_RAM_SIZE / 2);
10391040   save_item(NAME(pc080sn->ctrl));
1040   machine().save().register_postload(save_prepost_delegate(FUNC(pc080sn_restore_scroll), pc080sn));
1041   machine().save().register_postload(save_prepost_delegate(FUNC(pc080sn_device::pc080sn_restore_scroll), this));
10411042
10421043}
10431044
r20647r20648
18791880}
18801881
18811882
1882static void tc0080vco_postload(tc0080vco_state *tc0080vco)
1883void tc0080vco_device::tc0080vco_postload()
18831884{
1885   tc0080vco_state *tc0080vco = tc0080vco_get_safe_token(this);
1886   
18841887   tc0080vco->flipscreen = tc0080vco->scroll_ram[0] & 0x0c00;
18851888
18861889   tc0080vco->tilemap[0]->set_flip(tc0080vco->flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
r20647r20648
19781981   machine().gfx[tc0080vco->tx_gfx] = auto_alloc(machine(), gfx_element(machine(), tc0080vco_charlayout, (UINT8 *)tc0080vco->char_ram, 64, 0));
19791982
19801983   save_pointer(NAME(tc0080vco->ram), TC0080VCO_RAM_SIZE / 2);
1981   machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_postload), tc0080vco));
1984   machine().save().register_postload(save_prepost_delegate(FUNC(tc0080vco_device::tc0080vco_postload), this));
19821985}
19831986
19841987/***************************************************************************/
r20647r20648
22142217}
22152218
22162219
2217static void tc0100scn_postload(tc0100scn_state *tc0100scn)
2220void tc0100scn_device::tc0100scn_postload()
22182221{
2222   tc0100scn_state *tc0100scn = tc0100scn_get_safe_token(this);
2223
22192224   tc0100scn_set_layer_ptrs(tc0100scn);
22202225   tc0100scn_restore_scroll(tc0100scn);
22212226
r20647r20648
26032608   save_item(NAME(tc0100scn->ctrl));
26042609   save_item(NAME(tc0100scn->dblwidth));
26052610   save_item(NAME(tc0100scn->gfxbank));
2606   machine().save().register_postload(save_prepost_delegate(FUNC(tc0100scn_postload), tc0100scn));
2611   machine().save().register_postload(save_prepost_delegate(FUNC(tc0100scn_device::tc0100scn_postload), this));
26072612}
26082613
26092614//-------------------------------------------------
r20647r20648
37083713   return tc0480scp->pri_reg;
37093714}
37103715
3711static void tc0480scp_postload(tc0480scp_state *tc0480scp)
3716void tc0480scp_device::tc0480scp_postload()
37123717{
3718   tc0480scp_state *tc0480scp = tc0480scp_get_safe_token(this);
3719   
37133720   int reg;
37143721   int flip = tc0480scp->ctrl[0xf] & 0x40;
37153722
r20647r20648
38913898   save_pointer(NAME(tc0480scp->ram), TC0480SCP_RAM_SIZE / 2);
38923899   save_item(NAME(tc0480scp->ctrl));
38933900   save_item(NAME(tc0480scp->dblwidth));
3894   machine().save().register_postload(save_prepost_delegate(FUNC(tc0480scp_postload), tc0480scp));
3901   machine().save().register_postload(save_prepost_delegate(FUNC(tc0480scp_device::tc0480scp_postload), this));
38953902}
38963903
38973904//-------------------------------------------------
r20647r20648
47874794    DEVICE HANDLERS
47884795*****************************************************************************/
47894796
4790static void tc0110pcr_restore_colors(tc0110pcr_state *tc0110pcr)
4797void tc0110pcr_device::tc0110pcr_restore_colors()
47914798{
4799   tc0110pcr_state *tc0110pcr = tc0110pcr_get_safe_token(this);
4800
47924801   int i, color, r = 0, g = 0, b = 0;
47934802
47944803   for (i = 0; i < (256 * 16); i++)
r20647r20648
49434952    DEVICE INTERFACE
49444953*****************************************************************************/
49454954
4946static DEVICE_START( tc0110pcr )
4947{
4948   tc0110pcr_state *tc0110pcr = tc0110pcr_get_safe_token(device);
4949   const tc0110pcr_interface *intf = tc0110pcr_get_interface(device);
4950
4951   tc0110pcr->m_machine = &device->machine();
4952
4953   tc0110pcr->pal_offs = intf->pal_offs;
4954
4955   tc0110pcr->ram = auto_alloc_array(device->machine(), UINT16, TC0110PCR_RAM_SIZE);
4956
4957   device->save_pointer(NAME(tc0110pcr->ram), TC0110PCR_RAM_SIZE);
4958   device->save_item(NAME(tc0110pcr->type));
4959   device->machine().save().register_postload(save_prepost_delegate(FUNC(tc0110pcr_restore_colors), tc0110pcr));
4960}
4961
4962static DEVICE_RESET( tc0110pcr )
4963{
4964   tc0110pcr_state *tc0110pcr =  tc0110pcr_get_safe_token(device);
4965   tc0110pcr->type = 0;    /* default, xBBBBBGGGGGRRRRR */
4966}
4967
49684955const device_type TC0110PCR = &device_creator<tc0110pcr_device>;
49694956
49704957tc0110pcr_device::tc0110pcr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
r20647r20648
49894976
49904977void tc0110pcr_device::device_start()
49914978{
4992   DEVICE_START_NAME( tc0110pcr )(this);
4979   tc0110pcr_state *tc0110pcr = tc0110pcr_get_safe_token(this);
4980   const tc0110pcr_interface *intf = tc0110pcr_get_interface(this);
4981
4982   tc0110pcr->m_machine = &machine();
4983
4984   tc0110pcr->pal_offs = intf->pal_offs;
4985
4986   tc0110pcr->ram = auto_alloc_array(machine(), UINT16, TC0110PCR_RAM_SIZE);
4987
4988   save_pointer(NAME(tc0110pcr->ram), TC0110PCR_RAM_SIZE);
4989   save_item(NAME(tc0110pcr->type));
4990   machine().save().register_postload(save_prepost_delegate(FUNC(tc0110pcr_device::tc0110pcr_restore_colors), this));
4991
49934992}
49944993
49954994//-------------------------------------------------
r20647r20648
49984997
49994998void tc0110pcr_device::device_reset()
50004999{
5001   DEVICE_RESET_NAME( tc0110pcr )(this);
5000   tc0110pcr_state *tc0110pcr =  tc0110pcr_get_safe_token(this);
5001   tc0110pcr->type = 0;    /* default, xBBBBBGGGGGRRRRR */
50025002}
50035003
50045004
trunk/src/mame/video/taitoic.h
r20647r20648
105105
106106   // access to legacy token
107107   void *token() const { assert(m_token != NULL); return m_token; }
108   void pc080sn_restore_scroll();
108109protected:
109110   // device-level overrides
110111   virtual void device_config_complete();
r20647r20648
147148
148149   // access to legacy token
149150   void *token() const { assert(m_token != NULL); return m_token; }
151   void tc0080vco_postload();
150152protected:
151153   // device-level overrides
152154   virtual void device_config_complete();
r20647r20648
170172
171173   // access to legacy token
172174   void *token() const { assert(m_token != NULL); return m_token; }
175   void tc0100scn_postload();
173176protected:
174177   // device-level overrides
175178   virtual void device_config_complete();
r20647r20648
237240
238241   // access to legacy token
239242   void *token() const { assert(m_token != NULL); return m_token; }
243   void tc0480scp_postload();
240244protected:
241245   // device-level overrides
242246   virtual void device_config_complete();
r20647r20648
282286
283287   // access to legacy token
284288   void *token() const { assert(m_token != NULL); return m_token; }
289   void tc0110pcr_restore_colors();
285290protected:
286291   // device-level overrides
287292   virtual void device_config_complete();
trunk/src/mame/video/gradius3.c
r20647r20648
5858
5959***************************************************************************/
6060
61static void gradius3_postload(running_machine &machine)
61void gradius3_state::gradius3_postload()
6262{
6363   int i;
6464
6565   for (i = 0; i < 0x20000; i += 16)
6666   {
67      machine.gfx[0]->mark_dirty(i / 16);
67      machine().gfx[0]->mark_dirty(i / 16);
6868   }
6969}
7070
r20647r20648
8787
8888   machine().gfx[0]->set_source((UINT8 *)m_gfxram.target());
8989
90   machine().save().register_postload(save_prepost_delegate(FUNC(gradius3_postload), &machine()));
90   machine().save().register_postload(save_prepost_delegate(FUNC(gradius3_state::gradius3_postload), this));
9191}
9292
9393
trunk/src/mame/video/cave.c
r20647r20648
753753   state->save_item(NAME(state->m_blit.clip_top));
754754   state->save_item(NAME(state->m_blit.clip_bottom));
755755
756   machine.save().register_postload(save_prepost_delegate(FUNC(cave_get_sprite_info), &machine));
756   machine.save().register_postload(save_prepost_delegate(FUNC(cave_state::cave_get_sprite_info), state));
757757}
758758
759759static void cave_sprite_check( screen_device &screen, const rectangle &clip )
r20647r20648
16421642
16431643/**************************************************************/
16441644
1645void cave_get_sprite_info( running_machine &machine )
1645void cave_state::cave_get_sprite_info()
16461646{
1647   cave_state *state = machine.driver_data<cave_state>();
1648   if (state->m_kludge == 3)   /* mazinger metmqstr */
1647   if (m_kludge == 3)   /* mazinger metmqstr */
16491648   {
1650      if (machine.video().skip_this_frame() == 0)
1649      if (machine().video().skip_this_frame() == 0)
16511650      {
1652         state->m_spriteram_bank = state->m_spriteram_bank_delay;
1653         (*state->m_get_sprite_info)(machine);
1651         m_spriteram_bank = m_spriteram_bank_delay;
1652         (*m_get_sprite_info)(machine());
16541653      }
1655      state->m_spriteram_bank_delay = state->m_videoregs[4] & 1;
1654      m_spriteram_bank_delay = m_videoregs[4] & 1;
16561655   }
16571656   else
16581657   {
1659      if (machine.video().skip_this_frame() == 0)
1658      if (machine().video().skip_this_frame() == 0)
16601659      {
1661         state->m_spriteram_bank = state->m_videoregs[4] & 1;
1662         (*state->m_get_sprite_info)(machine);
1660         m_spriteram_bank = m_videoregs[4] & 1;
1661         (*m_get_sprite_info)(machine());
16631662      }
16641663   }
16651664}
trunk/src/mame/includes/cave.h
r20647r20648
204204   INTERRUPT_GEN_MEMBER(cave_interrupt);
205205   TIMER_CALLBACK_MEMBER(cave_vblank_end);
206206   TIMER_DEVICE_CALLBACK_MEMBER(cave_vblank_start);
207   void cave_get_sprite_info();
207208};
208209
209210/*----------- defined in video/cave.c -----------*/
210void cave_get_sprite_info(running_machine &machine);
211211void sailormn_tilebank_w(running_machine &machine, int bank);
trunk/src/mame/includes/astrocde.h
r20647r20648
124124   UINT32 screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125125   TIMER_CALLBACK_MEMBER(interrupt_off);
126126   TIMER_CALLBACK_MEMBER(scanline_callback);
127   void profbank_banksw_restore();
127128};
128129
129130/*----------- defined in audio/wow.c -----------*/
trunk/src/mame/includes/renegade.h
r20647r20648
7474   virtual void video_start();
7575   UINT32 screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7676   TIMER_DEVICE_CALLBACK_MEMBER(renegade_interrupt);
77   void setbank();
7778};
trunk/src/mame/includes/othunder.h
r20647r20648
6666   UINT32 screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6767   INTERRUPT_GEN_MEMBER(vblank_interrupt);
6868   TIMER_CALLBACK_MEMBER(ad_interrupt);
69   void reset_sound_region();
6970};
trunk/src/mame/includes/tail2nos.h
r20647r20648
3939   virtual void machine_reset();
4040   virtual void video_start();
4141   UINT32 screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   void tail2nos_postload();
4243};
4344
4445/*----------- defined in video/tail2nos.c -----------*/
trunk/src/mame/includes/slapshot.h
r20647r20648
6868   void screen_eof_taito_no_buffer(screen_device &screen, bool state);
6969   INTERRUPT_GEN_MEMBER(slapshot_interrupt);
7070   TIMER_CALLBACK_MEMBER(slapshot_interrupt6);
71   void reset_sound_region();
7172};
trunk/src/mame/includes/darius.h
r20647r20648
9595   UINT32 screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9696   UINT32 screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9797   UINT32 screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
98   void darius_postload();
9899};
trunk/src/mame/includes/topspeed.h
r20647r20648
6060   TIMER_CALLBACK_MEMBER(topspeed_interrupt6);
6161   TIMER_CALLBACK_MEMBER(topspeed_cpub_interrupt6);
6262   DECLARE_WRITE8_MEMBER(topspeed_tc0140syt_comm_w);
63   void topspeed_postload();
6364};
trunk/src/mame/includes/wgp.h
r20647r20648
7373   TIMER_CALLBACK_MEMBER(wgp_interrupt4);
7474   TIMER_CALLBACK_MEMBER(wgp_interrupt6);
7575   TIMER_CALLBACK_MEMBER(wgp_cpub_interrupt6);
76   void wgp_postload();
7677};
trunk/src/mame/includes/gradius3.h
r20647r20648
5151   UINT32 screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5252   INTERRUPT_GEN_MEMBER(cpuA_interrupt);
5353   TIMER_DEVICE_CALLBACK_MEMBER(gradius3_sub_scanline);
54   void gradius3_postload();
5455};
5556
5657/*----------- defined in video/gradius3.c -----------*/
trunk/src/mame/includes/mystwarr.h
r20647r20648
7575   TIMER_DEVICE_CALLBACK_MEMBER(mystwarr_interrupt);
7676   TIMER_DEVICE_CALLBACK_MEMBER(metamrph_interrupt);
7777   TIMER_DEVICE_CALLBACK_MEMBER(mchamp_interrupt);
78   void reset_sound_region();
7879};
trunk/src/mame/includes/taito_f2.h
r20647r20648
144144   void screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_device &screen, bool state);
145145   INTERRUPT_GEN_MEMBER(taitof2_interrupt);
146146   TIMER_CALLBACK_MEMBER(taitof2_interrupt6);
147   void reset_driveout_sound_region();
147148};
trunk/src/mame/includes/cps1.h
r20647r20648
257257   DECLARE_WRITE16_MEMBER(sf2mdt_layer_w);
258258   DECLARE_WRITE16_MEMBER(sf2mdta_layer_w);
259259   UINT32 screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
260   void cps1_get_video_base();
260261};
261262
262263/*----------- defined in drivers/cps1.c -----------*/
r20647r20648
267268
268269
269270/*----------- defined in video/cps1.c -----------*/
270void cps1_get_video_base(running_machine &machine);
271271void cps2_set_sprite_priorities(running_machine &machine);
272272void cps2_objram_latch(running_machine &machine);
273273
trunk/src/mame/includes/40love.h
r20647r20648
9797   DECLARE_MACHINE_RESET(ta7630);
9898   UINT32 screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9999   TIMER_CALLBACK_MEMBER(nmi_callback);
100   void redraw_pixels();
100101};
trunk/src/mame/includes/8080bw.h
r20647r20648
131131   DECLARE_WRITE8_MEMBER(polaris_sh_port_1_w);
132132   DECLARE_WRITE8_MEMBER(polaris_sh_port_2_w);
133133   DECLARE_WRITE8_MEMBER(polaris_sh_port_3_w);
134   
135   void schaser_reinit_555_time_remain();
134136};
135137
136138
trunk/src/mame/includes/atetris.h
r20647r20648
3333   virtual void video_start();
3434   UINT32 screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3535   TIMER_CALLBACK_MEMBER(interrupt_gen);
36   void reset_bank();
3637};
trunk/src/mame/includes/williams.h
r20647r20648
127127   DECLARE_READ8_MEMBER(tshoot_input_port_0_3_r);
128128   DECLARE_WRITE8_MEMBER(tshoot_maxvol_w);
129129   DECLARE_WRITE8_MEMBER(tshoot_lamp_w);
130   void williams2_postload();
131   void defender_postload();
130132};
131133
132134
trunk/src/mame/includes/twincobr.h
r20647r20648
107107   UINT32 screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108108   INTERRUPT_GEN_MEMBER(twincobr_interrupt);
109109   INTERRUPT_GEN_MEMBER(wardner_interrupt);
110   void twincobr_restore_screen();
111   void twincobr_restore_dsp();
110112};
111113
112114
trunk/src/mame/includes/dynax.h
r20647r20648
490490   TIMER_DEVICE_CALLBACK_MEMBER(majxtal7_vblank_interrupt);
491491   TIMER_DEVICE_CALLBACK_MEMBER(tenkai_interrupt);
492492   TIMER_DEVICE_CALLBACK_MEMBER(mjmyster_irq);
493   void tenkai_update_rombank();
494   void gekisha_bank_postload();
493495};
494496
495497//----------- defined in drivers/dynax.c -----------
trunk/src/mame/includes/djmain.h
r20647r20648
5656   UINT32 screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5757   INTERRUPT_GEN_MEMBER(vb_interrupt);
5858   DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
59   void sndram_set_bank();
5960};
6061
6162/*----------- defined in video/djmain.c -----------*/
trunk/src/mame/includes/chaknpop.h
r20647r20648
5353   virtual void video_start();
5454   virtual void palette_init();
5555   UINT32 screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
56   void tx_tilemap_mark_all_dirty();
5657};
trunk/src/mame/includes/tnzs.h
r20647r20648
100100   void screen_eof_tnzs(screen_device &screen, bool state);
101101   INTERRUPT_GEN_MEMBER(arknoid2_interrupt);
102102   TIMER_CALLBACK_MEMBER(kludge_callback);
103   void tnzs_postload();
103104};
trunk/src/mame/includes/nemesis.h
r20647r20648
8989   INTERRUPT_GEN_MEMBER(blkpnthr_interrupt);
9090   TIMER_DEVICE_CALLBACK_MEMBER(konamigt_interrupt);
9191   TIMER_DEVICE_CALLBACK_MEMBER(gx400_interrupt);
92   void nemesis_postload();
9293};
trunk/src/mame/includes/gridlee.h
r20647r20648
6060   TIMER_CALLBACK_MEMBER(irq_timer_tick);
6161   TIMER_CALLBACK_MEMBER(firq_off_tick);
6262   TIMER_CALLBACK_MEMBER(firq_timer_tick);
63   void expand_pixels();
6364};
6465
6566
trunk/src/mame/includes/simpsons.h
r20647r20648
4444   TIMER_CALLBACK_MEMBER(nmi_callback);
4545   TIMER_CALLBACK_MEMBER(dmaend_callback);
4646   DECLARE_READ8_MEMBER(simpsons_sound_r);
47   void simpsons_postload();
4748};
4849
4950
trunk/src/mame/includes/ninjaw.h
r20647r20648
4848   UINT32 screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4949   UINT32 screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5050   UINT32 screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   void ninjaw_postload();
5152};
trunk/src/mame/includes/mw8080bw.h
r20647r20648
173173   DECLARE_WRITE8_MEMBER(invad2ct_audio_2_w);
174174   DECLARE_WRITE8_MEMBER(invad2ct_audio_3_w);
175175   DECLARE_WRITE8_MEMBER(invad2ct_audio_4_w);
176   void maze_update_discrete();
176177};
177178
178179
trunk/src/mame/includes/taito_h.h
r20647r20648
3030   UINT32 screen_update_syvalion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3131   UINT32 screen_update_recordbr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3232   UINT32 screen_update_dleague(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
33   void reset_sound_region();
3334};
trunk/src/mame/includes/hyprduel.h
r20647r20648
9494   TIMER_CALLBACK_MEMBER(magerror_irq_callback);
9595   TIMER_CALLBACK_MEMBER(hyprduel_blit_done);
9696   TIMER_DEVICE_CALLBACK_MEMBER(hyprduel_interrupt);
97   void hyprduel_postload();
9798};
trunk/src/mame/includes/psikyo4.h
r20647r20648
5353   UINT32 screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5454   UINT32 screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5555   INTERRUPT_GEN_MEMBER(psikyosh_interrupt);
56   void hotgmck_pcm_bank_postload();
5657};
trunk/src/mame/includes/toaplan1.h
r20647r20648
144144   void screen_eof_toaplan1(screen_device &screen, bool state);
145145   void screen_eof_samesame(screen_device &screen, bool state);
146146   INTERRUPT_GEN_MEMBER(toaplan1_interrupt);
147   void rallybik_flipscreen();
148   void toaplan1_flipscreen();
149   void demonwld_restore_dsp();
147150};
148151
149152
trunk/src/mame/includes/xexex.h
r20647r20648
6868   UINT32 screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6969   TIMER_CALLBACK_MEMBER(dmaend_callback);
7070   TIMER_DEVICE_CALLBACK_MEMBER(xexex_interrupt);
71   void xexex_postload();
7172};
7273
7374/*----------- defined in video/xexex.c -----------*/
trunk/src/mame/includes/xmen.h
r20647r20648
5454   UINT32 screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5555   void screen_eof_xmen6p(screen_device &screen, bool state);
5656   TIMER_DEVICE_CALLBACK_MEMBER(xmen_scanline);
57   void sound_reset_bank();
5758};
5859
5960/*----------- defined in video/xmen.c -----------*/
trunk/src/mame/includes/toaplan2.h
r20647r20648
132132   INTERRUPT_GEN_MEMBER(toaplan2_vblank_irq4);
133133   INTERRUPT_GEN_MEMBER(bbakraid_snd_interrupt);
134134   TIMER_CALLBACK_MEMBER(toaplan2_raise_irq);
135   void truxton2_postload();
135136};
trunk/src/mame/includes/tumbleb.h
r20647r20648
108108   UINT32 screen_update_semibase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
109109   UINT32 screen_update_sdfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
110110   INTERRUPT_GEN_MEMBER(tumbleb2_interrupt);
111   void tumbleb_tilemap_redraw();
111112};
trunk/src/mame/includes/taito_z.h
r20647r20648
8888   INTERRUPT_GEN_MEMBER(sci_interrupt);
8989   TIMER_CALLBACK_MEMBER(taitoz_interrupt6);
9090   TIMER_CALLBACK_MEMBER(taitoz_cpub_interrupt5);
91   void taitoz_postload();
9192};
trunk/src/mame/includes/taitoair.h
r20647r20648
8383   virtual void machine_reset();
8484   virtual void video_start();
8585   UINT32 screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
86   void reset_sound_region();
8687};
trunk/src/mame/includes/warriorb.h
r20647r20648
4242   virtual void video_start();
4343   UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4444   UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   void reset_sound_region();
4546};
trunk/src/mame/drivers/xmen.c
r20647r20648
9292   }
9393}
9494
95static void sound_reset_bank( running_machine &machine )
95void xmen_state::sound_reset_bank()
9696{
97   xmen_state *state = machine.driver_data<xmen_state>();
98   state->membank("bank4")->set_entry(state->m_sound_curbank & 0x07);
97   membank("bank4")->set_entry(m_sound_curbank & 0x07);
9998}
10099
101100WRITE8_MEMBER(xmen_state::sound_bankswitch_w)
102101{
103102   m_sound_curbank = data;
104   sound_reset_bank(machine());
103   sound_reset_bank();
105104}
106105
107106
r20647r20648
311310   save_item(NAME(m_layer_colorbase));
312311   save_item(NAME(m_layerpri));
313312   save_item(NAME(m_vblank_irq_mask));
314   machine().save().register_postload(save_prepost_delegate(FUNC(sound_reset_bank), &machine()));
313   machine().save().register_postload(save_prepost_delegate(FUNC(xmen_state::sound_reset_bank), this));
315314}
316315
317316void xmen_state::machine_reset()
trunk/src/mame/drivers/cave.c
r20647r20648
127127{
128128   m_vblank_irq = 1;
129129   update_irq_state(machine());
130   cave_get_sprite_info(machine());
130   cave_get_sprite_info();
131131   m_agallet_vblank_irq = 1;
132132   machine().scheduler().timer_set(attotime::from_usec(2000), timer_expired_delegate(FUNC(cave_state::cave_vblank_end),this));
133133}
trunk/src/mame/drivers/psikyo4.c
r20647r20648
938938ROM_END
939939
940940
941static void hotgmck_pcm_bank_postload(running_machine &machine)
941void psikyo4_state::hotgmck_pcm_bank_postload()
942942{
943   set_hotgmck_pcm_bank(machine, 0);
944   set_hotgmck_pcm_bank(machine, 1);
943   set_hotgmck_pcm_bank(machine(), 0);
944   set_hotgmck_pcm_bank(machine(), 1);
945945}
946946
947947static void install_hotgmck_pcm_bank(running_machine &machine)
r20647r20648
957957   set_hotgmck_pcm_bank(machine, 1);
958958
959959   machine.device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x5800008, 0x580000b, write32_delegate(FUNC(psikyo4_state::hotgmck_pcm_bank_w),state));
960   machine.save().register_postload(save_prepost_delegate(FUNC(hotgmck_pcm_bank_postload), &machine));
960   machine.save().register_postload(save_prepost_delegate(FUNC(psikyo4_state::hotgmck_pcm_bank_postload), state));
961961}
962962
963963DRIVER_INIT_MEMBER(psikyo4_state,hotgmck)
trunk/src/mame/drivers/taito_x.c
r20647r20648
337337   DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
338338   DECLARE_DRIVER_INIT(kyustrkr);
339339   DECLARE_MACHINE_START(taitox);
340   void reset_sound_region();
340341};
341342
342343READ16_MEMBER(taitox_state::superman_dsw_input_r)
r20647r20648
412413
413414/**************************************************************************/
414415
415static void reset_sound_region(running_machine &machine)
416void taitox_state::reset_sound_region()
416417{
417   taitox_state *state = machine.driver_data<taitox_state>();
418
419   state->membank("bank2")->set_base(state->memregion("audiocpu")->base() + (state->m_banknum * 0x4000) + 0x10000 );
418   membank("bank2")->set_base(memregion("audiocpu")->base() + (m_banknum * 0x4000) + 0x10000 );
420419}
421420
422421WRITE8_MEMBER(taitox_state::sound_bankswitch_w)
423422{
424423   m_banknum = (data - 1) & 3;
425   reset_sound_region(machine());
424   reset_sound_region();
426425}
427426
428427
r20647r20648
806805{
807806   m_banknum = -1;
808807   save_item(NAME(m_banknum));
809   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
808   machine().save().register_postload(save_prepost_delegate(FUNC(taitox_state::reset_sound_region), this));
810809}
811810
812811static const tc0140syt_interface taitox_tc0140syt_intf =
trunk/src/mame/drivers/warriorb.c
r20647r20648
164164                          SOUND
165165***********************************************************/
166166
167static void reset_sound_region( running_machine &machine )
167void warriorb_state::reset_sound_region()
168168{
169   warriorb_state *state = machine.driver_data<warriorb_state>();
170   state->membank("bank10")->set_entry(state->m_banknum);
169   membank("bank10")->set_entry(m_banknum);
171170}
172171
173172WRITE8_MEMBER(warriorb_state::sound_bankswitch_w)
174173{
175174   m_banknum = data & 7;
176   reset_sound_region(machine());
175   reset_sound_region();
177176}
178177
179178WRITE16_MEMBER(warriorb_state::warriorb_sound_w)
r20647r20648
524523
525524   save_item(NAME(m_banknum));
526525   save_item(NAME(m_pandata));
527   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
526   machine().save().register_postload(save_prepost_delegate(FUNC(warriorb_state::reset_sound_region), this));
528527}
529528
530529void warriorb_state::machine_reset()
trunk/src/mame/drivers/astrocde.c
r20647r20648
454454}
455455
456456
457static void profbank_banksw_restore(running_machine &machine)
457void astrocde_state::profbank_banksw_restore()
458458{
459   astrocde_state *state = machine.driver_data<astrocde_state>();
460   address_space &space = machine.device("maincpu")->memory().space(AS_IO);
459   address_space &space = machine().device("maincpu")->memory().space(AS_IO);
461460
462   state->profpac_banksw_w(space, 0, state->m_profpac_bank);
461   profpac_banksw_w(space, 0, m_profpac_bank);
463462}
464463
465464
r20647r20648
17911790
17921791   /* reset banking */
17931792   profpac_banksw_w(iospace, 0, 0);
1794   machine().save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine()));
1793   machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
17951794}
17961795
17971796
r20647r20648
18071806
18081807   /* reset banking */
18091808   profpac_banksw_w(iospace, 0, 0);
1810   machine().save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine()));
1809   machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
18111810}
18121811
18131812
r20647r20648
18281827
18291828   /* reset banking */
18301829   profpac_banksw_w(iospace, 0, 0);
1831   machine().save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine()));
1830   machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
18321831}
18331832
18341833
trunk/src/mame/drivers/othunder.c
r20647r20648
383383            SOUND
384384*****************************************/
385385
386static void reset_sound_region( running_machine &machine )
386void othunder_state::reset_sound_region()
387387{
388   othunder_state *state = machine.driver_data<othunder_state>();
389   state->membank("bank10")->set_entry(state->m_banknum);
388   membank("bank10")->set_entry(m_banknum);
390389}
391390
392391
393392WRITE8_MEMBER(othunder_state::sound_bankswitch_w)
394393{
395394   m_banknum = data & 7;
396   reset_sound_region(machine());
395   reset_sound_region();
397396}
398397
399398WRITE16_MEMBER(othunder_state::othunder_sound_w)
r20647r20648
685684   save_item(NAME(m_ad_irq));
686685   save_item(NAME(m_banknum));
687686   save_item(NAME(m_pan));
688   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
687   machine().save().register_postload(save_prepost_delegate(FUNC(othunder_state::reset_sound_region), this));
689688}
690689
691690void othunder_state::machine_reset()
trunk/src/mame/drivers/taito_z.c
r20647r20648
30253025                   SAVE STATES
30263026***********************************************************/
30273027
3028static void taitoz_postload(running_machine &machine)
3028void taitoz_state::taitoz_postload()
30293029{
3030   parse_cpu_control(machine);
3031   reset_sound_region(machine);
3030   parse_cpu_control(machine());
3031   reset_sound_region(machine());
30323032}
30333033
30343034MACHINE_START_MEMBER(taitoz_state,bshark)
r20647r20648
30583058
30593059   machine().root_device().membank("bank10")->configure_entries(0, banks, machine().root_device().memregion("audiocpu")->base() + 0xc000, 0x4000);
30603060
3061   machine().save().register_postload(save_prepost_delegate(FUNC(taitoz_postload), &machine()));
3061   machine().save().register_postload(save_prepost_delegate(FUNC(taitoz_state::taitoz_postload), this));
30623062
30633063   MACHINE_START_CALL_MEMBER(bshark);
30643064}
trunk/src/mame/drivers/ninjaw.c
r20647r20648
789789};
790790
791791
792static void ninjaw_postload(running_machine &machine)
792void ninjaw_state::ninjaw_postload()
793793{
794   parse_control(machine);
795   reset_sound_region(machine);
794   parse_control(machine());
795   reset_sound_region(machine());
796796}
797797
798798void ninjaw_state::machine_start()
r20647r20648
819819   save_item(NAME(m_cpua_ctrl));
820820   save_item(NAME(m_banknum));
821821   save_item(NAME(m_pandata));
822   machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_postload), &machine()));
822   machine().save().register_postload(save_prepost_delegate(FUNC(ninjaw_state::ninjaw_postload), this));
823823}
824824
825825void ninjaw_state::machine_reset()
trunk/src/mame/drivers/mystwarr.c
r20647r20648
551551/**********************************************************************************/
552552
553553
554static void reset_sound_region(running_machine &machine)
554void mystwarr_state::reset_sound_region()
555555{
556   mystwarr_state *state = machine.driver_data<mystwarr_state>();
557   state->membank("bank2")->set_base(state->memregion("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000);
556   membank("bank2")->set_base(memregion("soundcpu")->base() + 0x10000 + m_cur_sound_region*0x4000);
558557}
559558
560559WRITE8_MEMBER(mystwarr_state::sound_bankswitch_w)
561560{
562561   m_cur_sound_region = (data & 0xf);
563   reset_sound_region(machine());
562   reset_sound_region();
564563}
565564
566565/* sound memory maps
r20647r20648
838837{
839838   /* set default bankswitch */
840839   m_cur_sound_region = 2;
841   reset_sound_region(machine());
840   reset_sound_region();
842841
843842   m_mw_irq_control = 0;
844843
845844   state_save_register_global(machine(), m_mw_irq_control);
846845   state_save_register_global(machine(), m_cur_sound_region);
847   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
846   machine().save().register_postload(save_prepost_delegate(FUNC(mystwarr_state::reset_sound_region), this));
848847}
849848
850849MACHINE_RESET_MEMBER(mystwarr_state,mystwarr)
trunk/src/mame/drivers/wgp.c
r20647r20648
910910graphics glitches.
911911***********************************************************/
912912
913static void wgp_postload(running_machine &machine)
913void wgp_state::wgp_postload()
914914{
915   parse_control(machine);
916   reset_sound_region(machine);
915   parse_control(machine());
916   reset_sound_region(machine());
917917}
918918
919919void wgp_state::machine_reset()
r20647r20648
948948   save_item(NAME(m_cpua_ctrl));
949949   save_item(NAME(m_banknum));
950950   save_item(NAME(m_port_sel));
951   machine().save().register_postload(save_prepost_delegate(FUNC(wgp_postload), &machine()));
951   machine().save().register_postload(save_prepost_delegate(FUNC(wgp_state::wgp_postload), this));
952952}
953953
954954static const tc0100scn_interface wgp_tc0100scn_intf =
trunk/src/mame/drivers/fcrash.c
r20647r20648
361361   layercontrol = m_cps_b_regs[m_layer_enable_reg / 2];
362362
363363   /* Get video memory base registers */
364   cps1_get_video_base(machine());
364   cps1_get_video_base();
365365
366366   /* Build palette */
367367   fcrash_build_palette(machine());
trunk/src/mame/drivers/darius.c
r20647r20648
820820   "maincpu", "audiocpu"
821821};
822822
823static void darius_postload(running_machine &machine)
823void darius_state::darius_postload()
824824{
825   parse_control(machine);
826   reset_sound_region(machine);
825   parse_control(machine());
826   reset_sound_region(machine());
827827}
828828
829829void darius_state::machine_start()
r20647r20648
872872   save_item(NAME(m_nmi_enable));
873873   save_item(NAME(m_vol));
874874   save_item(NAME(m_pan));
875   machine().save().register_postload(save_prepost_delegate(FUNC(darius_postload), &machine()));
875   machine().save().register_postload(save_prepost_delegate(FUNC(darius_state::darius_postload), this));
876876}
877877
878878
trunk/src/mame/drivers/mw8080bw.c
r20647r20648
862862/* schematic says 12.5 Hz, but R/C values shown give 8.5Hz */
863863#define MAZE_555_B1_PERIOD      PERIOD_OF_555_ASTABLE(RES_K(33) /* R200 */, RES_K(68) /* R201 */, CAP_U(1) /* C201 */)
864864
865static void maze_update_discrete(running_machine &machine)
865void mw8080bw_state::maze_update_discrete()
866866{
867   mw8080bw_state *state = machine.driver_data<mw8080bw_state>();
868   maze_write_discrete(machine.device("discrete"), state->m_maze_tone_timing_state);
867   maze_write_discrete(machine().device("discrete"), m_maze_tone_timing_state);
869868}
870869
871870
r20647r20648
886885
887886   /* setup for save states */
888887   save_item(NAME(m_maze_tone_timing_state));
889   machine().save().register_postload(save_prepost_delegate(FUNC(maze_update_discrete), &machine()));
888   machine().save().register_postload(save_prepost_delegate(FUNC(mw8080bw_state::maze_update_discrete), this));
890889
891890   MACHINE_START_CALL_MEMBER(mw8080bw);
892891}
trunk/src/mame/drivers/pengadvb.c
r20647r20648
4646   DECLARE_DRIVER_INIT(pengadvb);
4747   virtual void machine_start();
4848   virtual void machine_reset();
49   void pengadvb_postload();
4950};
5051
5152
r20647r20648
244245   DEVCB_DRIVER_LINE_MEMBER(pengadvb_state,vdp_interrupt)
245246};
246247
247static void pengadvb_postload(running_machine &machine)
248void pengadvb_state::pengadvb_postload()
248249{
249   mem_map_banks(machine);
250   mem_map_banks(machine());
250251}
251252
252253void pengadvb_state::machine_start()
r20647r20648
254255   state_save_register_global_pointer(machine(), m_main_mem, 0x4000);
255256   state_save_register_global(machine(), m_mem_map);
256257   state_save_register_global_array(machine(), m_mem_banks);
257   machine().save().register_postload(save_prepost_delegate(FUNC(pengadvb_postload), &machine()));
258   machine().save().register_postload(save_prepost_delegate(FUNC(pengadvb_state::pengadvb_postload), this));
258259}
259260
260261void pengadvb_state::machine_reset()
trunk/src/mame/drivers/taitoair.c
r20647r20648
371371
372372
373373
374static void reset_sound_region( running_machine &machine )
374void taitoair_state::reset_sound_region()
375375{
376   taitoair_state *state = machine.driver_data<taitoair_state>();
377   state->membank("bank1")->set_entry(state->m_banknum);
376   membank("bank1")->set_entry(m_banknum);
378377}
379378
380379WRITE8_MEMBER(taitoair_state::sound_bankswitch_w)
381380{
382381   m_banknum = data & 3;
383   reset_sound_region(machine());
382   reset_sound_region();
384383}
385384
386385
r20647r20648
682681      state_save_register_item(machine(), "globals", NULL, i, m_q.p[i].y);
683682   }
684683
685   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
684   machine().save().register_postload(save_prepost_delegate(FUNC(taitoair_state::reset_sound_region), this));
686685}
687686
688687void taitoair_state::machine_reset()
trunk/src/mame/drivers/taito_h.c
r20647r20648
228228   }
229229}
230230
231static void reset_sound_region(running_machine &machine)
231void taitoh_state::reset_sound_region()
232232{
233   taitoh_state *state = machine.driver_data<taitoh_state>();
234   state->membank("bank1")->set_entry(state->m_banknum);
233   membank("bank1")->set_entry(m_banknum);
235234}
236235
237236WRITE8_MEMBER(taitoh_state::sound_bankswitch_w)
238237{
239238   m_banknum = data & 3;
240   reset_sound_region(machine());
239   reset_sound_region();
241240}
242241
243242
r20647r20648
532531   m_tc0080vco = machine().device("tc0080vco");
533532
534533   save_item(NAME(m_banknum));
535   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
534   machine().save().register_postload(save_prepost_delegate(FUNC(taitoh_state::reset_sound_region), this));
536535}
537536
538537
trunk/src/mame/drivers/mjsister.c
r20647r20648
6262   virtual void video_start();
6363   UINT32 screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6464   TIMER_CALLBACK_MEMBER(dac_callback);
65   void mjsister_redraw();
6566};
6667
6768
r20647r20648
441442 *
442443 *************************************/
443444
444static void mjsister_redraw(mjsister_state *state)
445void mjsister_state::mjsister_redraw()
445446{
446447   /* we can skip saving tmpbitmaps because we can redraw them from vram */
447   state->m_screen_redraw = 1;
448   m_screen_redraw = 1;
448449}
449450
450451void mjsister_state::machine_start()
r20647r20648
469470   save_item(NAME(m_dac_bank));
470471   save_item(NAME(m_dac_adr_s));
471472   save_item(NAME(m_dac_adr_e));
472   machine().save().register_postload(save_prepost_delegate(FUNC(mjsister_redraw), this));
473   machine().save().register_postload(save_prepost_delegate(FUNC(mjsister_state::mjsister_redraw), this));
473474}
474475
475476void mjsister_state::machine_reset()
trunk/src/mame/drivers/djmain.c
r20647r20648
101101
102102//---------
103103
104static void sndram_set_bank(running_machine &machine)
104void djmain_state::sndram_set_bank()
105105{
106   djmain_state *state = machine.driver_data<djmain_state>();
107   state->m_sndram = state->memregion("shared")->base() + 0x80000 * state->m_sndram_bank;
106   m_sndram = memregion("shared")->base() + 0x80000 * m_sndram_bank;
108107}
109108
110109WRITE32_MEMBER(djmain_state::sndram_bank_w)
r20647r20648
112111   if (ACCESSING_BITS_16_31)
113112   {
114113      m_sndram_bank = (data >> 16) & 0x1f;
115      sndram_set_bank(machine());
114      sndram_set_bank();
116115   }
117116}
118117
r20647r20648
14091408   state_save_register_global(machine(), m_v_ctrl);
14101409   state_save_register_global_array(machine(), m_obj_regs);
14111410
1412   machine().save().register_postload(save_prepost_delegate(FUNC(sndram_set_bank), &machine()));
1411   machine().save().register_postload(save_prepost_delegate(FUNC(djmain_state::sndram_set_bank), this));
14131412}
14141413
14151414
r20647r20648
14171416{
14181417   /* reset sound ram bank */
14191418   m_sndram_bank = 0;
1420   sndram_set_bank(machine());
1419   sndram_set_bank();
14211420
14221421   /* reset the IDE controller */
14231422   machine().device("ide")->reset();
trunk/src/mame/drivers/renegade.c
r20647r20648
281281   0x68, 0x60
282282};
283283
284static void setbank(running_machine &machine)
284void renegade_state::setbank()
285285{
286   renegade_state *state = machine.driver_data<renegade_state>();
287   UINT8 *RAM = state->memregion("maincpu")->base();
288   state->membank("bank1")->set_base(&RAM[state->m_bank ? 0x10000 : 0x4000]);
286   UINT8 *RAM = memregion("maincpu")->base();
287   membank("bank1")->set_base(&RAM[m_bank ? 0x10000 : 0x4000]);
289288}
290289
291290void renegade_state::machine_start()
r20647r20648
296295   state_save_register_global(machine(), m_mcu_key);
297296
298297   state_save_register_global(machine(), m_bank);
299   machine().save().register_postload(save_prepost_delegate(FUNC(setbank), &machine()));
298   machine().save().register_postload(save_prepost_delegate(FUNC(renegade_state::setbank), this));
300299}
301300
302301DRIVER_INIT_MEMBER(renegade_state,renegade)
r20647r20648
660659   if ((data & 1) != m_bank)
661660   {
662661      m_bank = data & 1;
663      setbank(machine());
662      setbank();
664663   }
665664}
666665
r20647r20648
925924void renegade_state::machine_reset()
926925{
927926   m_bank = 0;
928   setbank(machine());
927   setbank();
929928}
930929
931930
trunk/src/mame/drivers/slapshot.c
r20647r20648
238238                SOUND
239239*****************************************************/
240240
241static void reset_sound_region( running_machine &machine )
241void slapshot_state::reset_sound_region()
242242{
243   slapshot_state *state = machine.driver_data<slapshot_state>();
244   state->membank("bank10")->set_entry(state->m_banknum);
243   membank("bank10")->set_entry(m_banknum);
245244}
246245
247246WRITE8_MEMBER(slapshot_state::sound_bankswitch_w)
248247{
249248   m_banknum = data & 7;
250   reset_sound_region(machine());
249   reset_sound_region();
251250}
252251
253
254
255
256
257
258252WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
259253{
260254   if (offset == 0)
r20647r20648
532526
533527   m_banknum = 0;
534528   save_item(NAME(m_banknum));
535   machine().save().register_postload(save_prepost_delegate(FUNC(reset_sound_region), &machine()));
529   machine().save().register_postload(save_prepost_delegate(FUNC(slapshot_state::reset_sound_region), this));
536530}
537531
538532
trunk/src/mame/drivers/topspeed.c
r20647r20648
672672                     MACHINE DRIVERS
673673***********************************************************/
674674
675static void topspeed_postload(running_machine &machine)
675void topspeed_state::topspeed_postload()
676676{
677   parse_control(machine);
678   reset_sound_region(machine);
677   parse_control(machine());
678   reset_sound_region(machine());
679679}
680680
681681void topspeed_state::machine_start()
r20647r20648
697697   save_item(NAME(m_cpua_ctrl));
698698   save_item(NAME(m_ioc220_port));
699699   save_item(NAME(m_banknum));
700   machine().save().register_postload(save_prepost_delegate(FUNC(topspeed_postload), &machine()));
700   machine().save().register_postload(save_prepost_delegate(FUNC(topspeed_state::topspeed_postload), this));
701701}
702702
703703void topspeed_state::machine_reset()
trunk/src/mame/drivers/dynax.c
r20647r20648
13511351   }
13521352}
13531353
1354static void tenkai_update_rombank( running_machine &machine )
1354void dynax_state::tenkai_update_rombank()
13551355{
1356   dynax_state *state = machine.driver_data<dynax_state>();
1357   state->m_romptr = state->memregion("maincpu")->base() + 0x10000 + 0x8000 * state->m_rombank;
1358//  logerror("rombank = %02x\n", state->m_rombank);
1356   m_romptr = memregion("maincpu")->base() + 0x10000 + 0x8000 * m_rombank;
1357//  logerror("rombank = %02x\n", m_rombank);
13591358}
13601359
13611360READ8_MEMBER(dynax_state::tenkai_p3_r)
r20647r20648
13661365WRITE8_MEMBER(dynax_state::tenkai_p3_w)
13671366{
13681367   m_rombank = ((data & 0x04) << 1) | (m_rombank & 0x07);
1369   tenkai_update_rombank(machine());
1368   tenkai_update_rombank();
13701369}
13711370WRITE8_MEMBER(dynax_state::tenkai_p4_w)
13721371{
13731372   m_rombank = (m_rombank & 0x08) | ((data & 0x0e) >> 1);
1374   tenkai_update_rombank(machine());
1373   tenkai_update_rombank();
13751374}
13761375
13771376READ8_MEMBER(dynax_state::tenkai_p5_r)
r20647r20648
13981397WRITE8_MEMBER(dynax_state::tenkai_p8_w)
13991398{
14001399   m_rombank = ((data & 0x08) << 1) | (m_rombank & 0x0f);
1401   tenkai_update_rombank(machine());
1400   tenkai_update_rombank();
14021401}
14031402
14041403READ8_MEMBER(dynax_state::tenkai_p8_r)
r20647r20648
49754974{
49764975   MACHINE_START_CALL_MEMBER(dynax);
49774976
4978   machine().save().register_postload(save_prepost_delegate(FUNC(tenkai_update_rombank), &machine()));
4977   machine().save().register_postload(save_prepost_delegate(FUNC(dynax_state::tenkai_update_rombank), this));
49794978}
49804979
49814980WRITE_LINE_MEMBER(dynax_state::tenkai_rtc_irq)
r20647r20648
50365035                                Mahjong Gekisha
50375036***************************************************************************/
50385037
5039static void gekisha_bank_postload(running_machine &machine)
5038void dynax_state::gekisha_bank_postload()
50405039{
5041   dynax_state *state = machine.driver_data<dynax_state>();
5042
5043   gekisha_set_rombank(machine, state->m_rombank);
5040   gekisha_set_rombank(machine(), m_rombank);
50445041}
50455042
50465043MACHINE_START_MEMBER(dynax_state,gekisha)
50475044{
50485045   MACHINE_START_CALL_MEMBER(dynax);
50495046
5050   machine().save().register_postload(save_prepost_delegate(FUNC(gekisha_bank_postload), &machine()));
5047   machine().save().register_postload(save_prepost_delegate(FUNC(dynax_state::gekisha_bank_postload), this));
50515048}
50525049
50535050MACHINE_RESET_MEMBER(dynax_state,gekisha)
trunk/src/mame/drivers/vegas.c
r20647r20648
504504   virtual void machine_reset();
505505   UINT32 screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
506506   TIMER_CALLBACK_MEMBER(nile_timer_callback);
507   void remap_dynamic_addresses();
507508};
508509
509510
510
511511/*************************************
512512 *
513 *  Prototypes
514 *
515 *************************************/
516
517
518static void remap_dynamic_addresses(running_machine &machine);
519
520
521
522/*************************************
523 *
524513 *  Video start and update
525514 *
526515 *************************************/
r20647r20648
576565   state_save_register_global(machine(), m_sio_led_state);
577566   state_save_register_global(machine(), m_pending_analog_read);
578567   state_save_register_global(machine(), m_cmos_unlocked);
579   machine().save().register_postload(save_prepost_delegate(FUNC(remap_dynamic_addresses), &machine()));
568   machine().save().register_postload(save_prepost_delegate(FUNC(vegas_state::remap_dynamic_addresses), this));
580569}
581570
582571
r20647r20648
732721   {
733722      case 0x04:      /* address register */
734723         state->m_pci_ide_regs[offset] &= 0xfffffff0;
735         remap_dynamic_addresses(space.machine());
724         state->remap_dynamic_addresses();
736725         break;
737726
738727      case 0x05:      /* address register */
739728         state->m_pci_ide_regs[offset] &= 0xfffffffc;
740         remap_dynamic_addresses(space.machine());
729         state->remap_dynamic_addresses();
741730         break;
742731
743732      case 0x08:      /* address register */
744733         state->m_pci_ide_regs[offset] &= 0xfffffff0;
745         remap_dynamic_addresses(space.machine());
734         state->remap_dynamic_addresses();
746735         break;
747736
748737      case 0x14:      /* interrupt pending */
r20647r20648
810799            state->m_pci_3dfx_regs[offset] &= 0xff000000;
811800         else
812801            state->m_pci_3dfx_regs[offset] &= 0xfe000000;
813         remap_dynamic_addresses(space.machine());
802         state->remap_dynamic_addresses();
814803         break;
815804
816805      case 0x05:      /* address register */
817806         if (voodoo_type >= TYPE_VOODOO_BANSHEE)
818807         {
819808            state->m_pci_3dfx_regs[offset] &= 0xfe000000;
820            remap_dynamic_addresses(space.machine());
809            state->remap_dynamic_addresses();
821810         }
822811         break;
823812
r20647r20648
825814         if (voodoo_type >= TYPE_VOODOO_BANSHEE)
826815         {
827816            state->m_pci_3dfx_regs[offset] &= 0xffffff00;
828            remap_dynamic_addresses(space.machine());
817            state->remap_dynamic_addresses();
829818         }
830819         break;
831820
r20647r20648
833822         if (voodoo_type >= TYPE_VOODOO_BANSHEE)
834823         {
835824            state->m_pci_3dfx_regs[offset] &= 0xffff0000;
836            remap_dynamic_addresses(space.machine());
825            state->remap_dynamic_addresses();
837826         }
838827         break;
839828
r20647r20648
11271116
11281117      case NREG_PCIINIT1+0:   /* PCI master */
11291118         if (((olddata & 0xe) == 0xa) != ((state->m_nile_regs[offset] & 0xe) == 0xa))
1130            remap_dynamic_addresses(space.machine());
1119            state->remap_dynamic_addresses();
11311120         logit = 0;
11321121         break;
11331122
r20647r20648
12151204      case NREG_DCS8:
12161205      case NREG_PCIW0:
12171206      case NREG_PCIW1:
1218         remap_dynamic_addresses(space.machine());
1207         state->remap_dynamic_addresses();
12191208         break;
12201209   }
12211210
r20647r20648
15521541}
15531542
15541543
1555static void remap_dynamic_addresses(running_machine &machine)
1544void vegas_state::remap_dynamic_addresses()
15561545{
1557   vegas_state *state = machine.driver_data<vegas_state>();
1558   dynamic_address *dynamic = state->m_dynamic;
1559   device_t *ethernet = machine.device("ethernet");
1560   device_t *ide = machine.device("ide");
1561   int voodoo_type = voodoo_get_type(state->m_voodoo);
1546   dynamic_address *dynamic = m_dynamic;
1547   device_t *ethernet = machine().device("ethernet");
1548   device_t *ide = machine().device("ide");
1549   int voodoo_type = voodoo_get_type(m_voodoo);
15621550   offs_t base;
15631551   int addr;
15641552
15651553   /* unmap everything we know about */
1566   for (addr = 0; addr < state->m_dynamic_count; addr++)
1567      machine.device("maincpu")->memory().space(AS_PROGRAM).unmap_readwrite(dynamic[addr].start, dynamic[addr].end);
1554   for (addr = 0; addr < m_dynamic_count; addr++)
1555      machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_readwrite(dynamic[addr].start, dynamic[addr].end);
15681556
15691557   /* the build the list of stuff */
1570   state->m_dynamic_count = 0;
1558   m_dynamic_count = 0;
15711559
15721560   /* DCS2 */
1573   base = state->m_nile_regs[NREG_DCS2] & 0x1fffff00;
1574   if (base >= state->m_rambase.bytes())
1561   base = m_nile_regs[NREG_DCS2] & 0x1fffff00;
1562   if (base >= m_rambase.bytes())
15751563   {
1576      add_dynamic_address(state, base + 0x0000, base + 0x0003, sio_irq_clear_r, sio_irq_clear_w);
1577      add_dynamic_address(state, base + 0x1000, base + 0x1003, sio_irq_enable_r, sio_irq_enable_w);
1578      add_dynamic_address(state, base + 0x2000, base + 0x2003, sio_irq_cause_r, NULL);
1579      add_dynamic_address(state, base + 0x3000, base + 0x3003, sio_irq_status_r, NULL);
1580      add_dynamic_address(state, base + 0x4000, base + 0x4003, sio_led_r, sio_led_w);
1581      add_dynamic_address(state, base + 0x5000, base + 0x5007, NOP_HANDLER, NULL);
1582      add_dynamic_address(state, base + 0x6000, base + 0x6003, NULL, cmos_unlock_w);
1583      add_dynamic_address(state, base + 0x7000, base + 0x7003, NULL, vegas_watchdog_w);
1564      add_dynamic_address(this, base + 0x0000, base + 0x0003, sio_irq_clear_r, sio_irq_clear_w);
1565      add_dynamic_address(this, base + 0x1000, base + 0x1003, sio_irq_enable_r, sio_irq_enable_w);
1566      add_dynamic_address(this, base + 0x2000, base + 0x2003, sio_irq_cause_r, NULL);
1567      add_dynamic_address(this, base + 0x3000, base + 0x3003, sio_irq_status_r, NULL);
1568      add_dynamic_address(this, base + 0x4000, base + 0x4003, sio_led_r, sio_led_w);
1569      add_dynamic_address(this, base + 0x5000, base + 0x5007, NOP_HANDLER, NULL);
1570      add_dynamic_address(this, base + 0x6000, base + 0x6003, NULL, cmos_unlock_w);
1571      add_dynamic_address(this, base + 0x7000, base + 0x7003, NULL, vegas_watchdog_w);
15841572   }
15851573
15861574   /* DCS3 */
1587   base = state->m_nile_regs[NREG_DCS3] & 0x1fffff00;
1588   if (base >= state->m_rambase.bytes())
1589      add_dynamic_address(state, base + 0x0000, base + 0x0003, analog_port_r, analog_port_w);
1575   base = m_nile_regs[NREG_DCS3] & 0x1fffff00;
1576   if (base >= m_rambase.bytes())
1577      add_dynamic_address(this, base + 0x0000, base + 0x0003, analog_port_r, analog_port_w);
15901578
15911579   /* DCS4 */
1592   base = state->m_nile_regs[NREG_DCS4] & 0x1fffff00;
1593   if (base >= state->m_rambase.bytes())
1594      add_dynamic_address(state, base + 0x0000, base + 0x7fff, timekeeper_r, timekeeper_w);
1580   base = m_nile_regs[NREG_DCS4] & 0x1fffff00;
1581   if (base >= m_rambase.bytes())
1582      add_dynamic_address(this, base + 0x0000, base + 0x7fff, timekeeper_r, timekeeper_w);
15951583
15961584   /* DCS5 */
1597   base = state->m_nile_regs[NREG_DCS5] & 0x1fffff00;
1598   if (base >= state->m_rambase.bytes())
1599      add_dynamic_address(state, base + 0x0000, base + 0x0003, sio_r, sio_w);
1585   base = m_nile_regs[NREG_DCS5] & 0x1fffff00;
1586   if (base >= m_rambase.bytes())
1587      add_dynamic_address(this, base + 0x0000, base + 0x0003, sio_r, sio_w);
16001588
16011589   /* DCS6 */
1602   base = state->m_nile_regs[NREG_DCS6] & 0x1fffff00;
1603   if (base >= state->m_rambase.bytes())
1590   base = m_nile_regs[NREG_DCS6] & 0x1fffff00;
1591   if (base >= m_rambase.bytes())
16041592   {
1605      add_dynamic_address(state, base + 0x0000, base + 0x003f, midway_ioasic_packed_r, midway_ioasic_packed_w);
1606      add_dynamic_address(state, base + 0x1000, base + 0x1003, NULL, asic_fifo_w);
1607      if (state->m_dcs_idma_cs != 0)
1608         add_dynamic_address(state, base + 0x3000, base + 0x3003, NULL, dcs3_fifo_full_w);
1609      if (state->m_dcs_idma_cs == 6)
1593      add_dynamic_address(this, base + 0x0000, base + 0x003f, midway_ioasic_packed_r, midway_ioasic_packed_w);
1594      add_dynamic_address(this, base + 0x1000, base + 0x1003, NULL, asic_fifo_w);
1595      if (m_dcs_idma_cs != 0)
1596         add_dynamic_address(this, base + 0x3000, base + 0x3003, NULL, dcs3_fifo_full_w);
1597      if (m_dcs_idma_cs == 6)
16101598      {
1611         add_dynamic_address(state, base + 0x5000, base + 0x5003, NULL, dsio_idma_addr_w);
1612         add_dynamic_address(state, base + 0x7000, base + 0x7003, dsio_idma_data_r, dsio_idma_data_w);
1599         add_dynamic_address(this, base + 0x5000, base + 0x5003, NULL, dsio_idma_addr_w);
1600         add_dynamic_address(this, base + 0x7000, base + 0x7003, dsio_idma_data_r, dsio_idma_data_w);
16131601      }
16141602   }
16151603
16161604   /* DCS7 */
1617   base = state->m_nile_regs[NREG_DCS7] & 0x1fffff00;
1618   if (base >= state->m_rambase.bytes())
1605   base = m_nile_regs[NREG_DCS7] & 0x1fffff00;
1606   if (base >= m_rambase.bytes())
16191607   {
1620      add_dynamic_device_address(state, ethernet, base + 0x1000, base + 0x100f, ethernet_r, ethernet_w);
1621      if (state->m_dcs_idma_cs == 7)
1608      add_dynamic_device_address(this, ethernet, base + 0x1000, base + 0x100f, ethernet_r, ethernet_w);
1609      if (m_dcs_idma_cs == 7)
16221610      {
1623         add_dynamic_address(state, base + 0x5000, base + 0x5003, NULL, dsio_idma_addr_w);
1624         add_dynamic_address(state, base + 0x7000, base + 0x7003, dsio_idma_data_r, dsio_idma_data_w);
1611         add_dynamic_address(this, base + 0x5000, base + 0x5003, NULL, dsio_idma_addr_w);
1612         add_dynamic_address(this, base + 0x7000, base + 0x7003, dsio_idma_data_r, dsio_idma_data_w);
16251613      }
16261614   }
16271615
16281616   /* PCI config space */
1629   if ((state->m_nile_regs[NREG_PCIINIT1] & 0xe) == 0xa)
1617   if ((m_nile_regs[NREG_PCIINIT1] & 0xe) == 0xa)
16301618   {
1631      base = state->m_nile_regs[NREG_PCIW1] & 0x1fffff00;
1632      if (base >= state->m_rambase.bytes())
1619      base = m_nile_regs[NREG_PCIW1] & 0x1fffff00;
1620      if (base >= m_rambase.bytes())
16331621      {
1634         add_dynamic_address(state, base + (1 << (21 + 4)) + 0x0000, base + (1 << (21 + 4)) + 0x00ff, pci_3dfx_r, pci_3dfx_w);
1635         add_dynamic_address(state, base + (1 << (21 + 5)) + 0x0000, base + (1 << (21 + 5)) + 0x00ff, pci_ide_r, pci_ide_w);
1622         add_dynamic_address(this, base + (1 << (21 + 4)) + 0x0000, base + (1 << (21 + 4)) + 0x00ff, pci_3dfx_r, pci_3dfx_w);
1623         add_dynamic_address(this, base + (1 << (21 + 5)) + 0x0000, base + (1 << (21 + 5)) + 0x00ff, pci_ide_r, pci_ide_w);
16361624      }
16371625   }
16381626
r20647r20648
16401628   else
16411629   {
16421630      /* IDE controller */
1643      base = state->m_pci_ide_regs[0x04] & 0xfffffff0;
1644      if (base >= state->m_rambase.bytes() && base < 0x20000000)
1645         add_dynamic_device_address(state, ide, base + 0x0000, base + 0x000f, ide_main_r, ide_main_w);
1631      base = m_pci_ide_regs[0x04] & 0xfffffff0;
1632      if (base >= m_rambase.bytes() && base < 0x20000000)
1633         add_dynamic_device_address(this, ide, base + 0x0000, base + 0x000f, ide_main_r, ide_main_w);
16461634
1647      base = state->m_pci_ide_regs[0x05] & 0xfffffffc;
1648      if (base >= state->m_rambase.bytes() && base < 0x20000000)
1649         add_dynamic_device_address(state, ide, base + 0x0000, base + 0x0003, ide_alt_r, ide_alt_w);
1635      base = m_pci_ide_regs[0x05] & 0xfffffffc;
1636      if (base >= m_rambase.bytes() && base < 0x20000000)
1637         add_dynamic_device_address(this, ide, base + 0x0000, base + 0x0003, ide_alt_r, ide_alt_w);
16501638
1651      base = state->m_pci_ide_regs[0x08] & 0xfffffff0;
1652      if (base >= state->m_rambase.bytes() && base < 0x20000000)
1653         add_dynamic_device_address(state, ide, base + 0x0000, base + 0x0007, ide_bus_master32_r, ide_bus_master32_w);
1639      base = m_pci_ide_regs[0x08] & 0xfffffff0;
1640      if (base >= m_rambase.bytes() && base < 0x20000000)
1641         add_dynamic_device_address(this, ide, base + 0x0000, base + 0x0007, ide_bus_master32_r, ide_bus_master32_w);
16541642
16551643      /* 3dfx card */
1656      base = state->m_pci_3dfx_regs[0x04] & 0xfffffff0;
1657      if (base >= state->m_rambase.bytes() && base < 0x20000000)
1644      base = m_pci_3dfx_regs[0x04] & 0xfffffff0;
1645      if (base >= m_rambase.bytes() && base < 0x20000000)
16581646      {
16591647         if (voodoo_type == TYPE_VOODOO_2)
1660            add_dynamic_device_address(state, state->m_voodoo, base + 0x000000, base + 0xffffff, voodoo_r, voodoo_w);
1648            add_dynamic_device_address(this, m_voodoo, base + 0x000000, base + 0xffffff, voodoo_r, voodoo_w);
16611649         else
1662            add_dynamic_device_address(state, state->m_voodoo, base + 0x000000, base + 0x1ffffff, banshee_r, banshee_w);
1650            add_dynamic_device_address(this, m_voodoo, base + 0x000000, base + 0x1ffffff, banshee_r, banshee_w);
16631651      }
16641652
16651653      if (voodoo_type >= TYPE_VOODOO_BANSHEE)
16661654      {
1667         base = state->m_pci_3dfx_regs[0x05] & 0xfffffff0;
1668         if (base >= state->m_rambase.bytes() && base < 0x20000000)
1669            add_dynamic_device_address(state, state->m_voodoo, base + 0x0000000, base + 0x1ffffff, banshee_fb_r, banshee_fb_w);
1655         base = m_pci_3dfx_regs[0x05] & 0xfffffff0;
1656         if (base >= m_rambase.bytes() && base < 0x20000000)
1657            add_dynamic_device_address(this, m_voodoo, base + 0x0000000, base + 0x1ffffff, banshee_fb_r, banshee_fb_w);
16701658
1671         base = state->m_pci_3dfx_regs[0x06] & 0xfffffff0;
1672         if (base >= state->m_rambase.bytes() && base < 0x20000000)
1673            add_dynamic_device_address(state, state->m_voodoo, base + 0x0000000, base + 0x00000ff, banshee_io_r, banshee_io_w);
1659         base = m_pci_3dfx_regs[0x06] & 0xfffffff0;
1660         if (base >= m_rambase.bytes() && base < 0x20000000)
1661            add_dynamic_device_address(this, m_voodoo, base + 0x0000000, base + 0x00000ff, banshee_io_r, banshee_io_w);
16741662
1675         base = state->m_pci_3dfx_regs[0x0c] & 0xffff0000;
1676         if (base >= state->m_rambase.bytes() && base < 0x20000000)
1677            add_dynamic_device_address(state, state->m_voodoo, base + 0x0000000, base + 0x000ffff, banshee_rom_r, NULL);
1663         base = m_pci_3dfx_regs[0x0c] & 0xffff0000;
1664         if (base >= m_rambase.bytes() && base < 0x20000000)
1665            add_dynamic_device_address(this, m_voodoo, base + 0x0000000, base + 0x000ffff, banshee_rom_r, NULL);
16781666      }
16791667   }
16801668
16811669   /* now remap everything */
16821670   if (LOG_DYNAMIC) logerror("remap_dynamic_addresses:\n");
1683   address_space &space = machine.device<cpu_device>("maincpu")->space(AS_PROGRAM);
1684   for (addr = 0; addr < state->m_dynamic_count; addr++)
1671   address_space &space = machine().device<cpu_device>("maincpu")->space(AS_PROGRAM);
1672   for (addr = 0; addr < m_dynamic_count; addr++)
16851673   {
16861674      if (LOG_DYNAMIC) logerror("  installing: %08X-%08X %s,%s\n", dynamic[addr].start, dynamic[addr].end, dynamic[addr].rdname, dynamic[addr].wrname);
16871675
r20647r20648
16981686
16991687   if (LOG_DYNAMIC)
17001688   {
1701      ++state->m_count;
1702      popmessage("Remaps = %d", state->m_count);
1689      ++m_count;
1690      popmessage("Remaps = %d", m_count);
17031691   }
17041692}
17051693
trunk/src/mame/drivers/taito_f2.c
r20647r20648
607607}
608608
609609
610static void reset_driveout_sound_region( running_machine &machine )
610void taitof2_state::reset_driveout_sound_region()
611611{
612   taitof2_state *state = machine.driver_data<taitof2_state>();
613   state->m_oki->set_bank_base(state->m_oki_bank * 0x40000);
612   m_oki->set_bank_base(m_oki_bank * 0x40000);
614613}
615614
616615WRITE8_MEMBER(taitof2_state::oki_bank_w)
r20647r20648
620619      m_oki_bank = (data & 3);
621620   }
622621
623   reset_driveout_sound_region(machine());
622   reset_driveout_sound_region();
624623}
625624
626625WRITE16_MEMBER(taitof2_state::driveout_sound_command_w)
r20647r20648
53735372   save_item(NAME(m_driveout_sound_latch));
53745373   save_item(NAME(m_oki_bank));
53755374   save_item(NAME(m_nibble));
5376   machine().save().register_postload(save_prepost_delegate(FUNC(reset_driveout_sound_region), &machine()));
5375   machine().save().register_postload(save_prepost_delegate(FUNC(taitof2_state::reset_driveout_sound_region), this));
53775376}
53785377
53795378
trunk/src/mame/drivers/crystal.c
r20647r20648
195195   INTERRUPT_GEN_MEMBER(crystal_interrupt);
196196   TIMER_CALLBACK_MEMBER(Timercb);
197197   IRQ_CALLBACK_MEMBER(icallback);
198   void crystal_banksw_postload();
198199};
199200
200201static void IntReq( running_machine &machine, int num )
r20647r20648
564565#endif
565566}
566567
567static void crystal_banksw_postload(running_machine &machine)
568void crystal_state::crystal_banksw_postload()
568569{
569   crystal_state *state = machine.driver_data<crystal_state>();
570
571   if (state->m_Bank <= 2)
572      state->membank("bank1")->set_base(state->memregion("user1")->base() + state->m_Bank * 0x1000000);
570   if (m_Bank <= 2)
571      membank("bank1")->set_base(memregion("user1")->base() + m_Bank * 0x1000000);
573572   else
574      state->membank("bank1")->set_base(state->memregion("user2")->base());
573      membank("bank1")->set_base(memregion("user2")->base());
575574}
576575
577576void crystal_state::machine_start()
r20647r20648
600599   save_item(NAME(m_PIO));
601600   save_item(NAME(m_DMActrl));
602601   save_item(NAME(m_OldPort4));
603   machine().save().register_postload(save_prepost_delegate(FUNC(crystal_banksw_postload), &machine()));
602   machine().save().register_postload(save_prepost_delegate(FUNC(crystal_state::crystal_banksw_postload), this));
604603}
605604
606605void crystal_state::machine_reset()
trunk/src/mame/drivers/xexex.c
r20647r20648
440440   0, 0
441441};
442442
443static void xexex_postload(running_machine &machine)
443void xexex_state::xexex_postload()
444444{
445   parse_control2(machine);
446   reset_sound_region(machine);
445   parse_control2(machine());
446   reset_sound_region(machine());
447447}
448448
449449void xexex_state::machine_start()
r20647r20648
477477
478478   save_item(NAME(m_cur_control2));
479479   save_item(NAME(m_cur_sound_region));
480   machine().save().register_postload(save_prepost_delegate(FUNC(xexex_postload), &machine()));
480   machine().save().register_postload(save_prepost_delegate(FUNC(xexex_state::xexex_postload), this));
481481
482482   m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(xexex_state::dmaend_callback),this));
483483}
trunk/src/mame/drivers/atetris.c
r20647r20648
9494 *
9595 *************************************/
9696
97static void reset_bank(running_machine &machine)
97void atetris_state::reset_bank()
9898{
99   atetris_state *state = machine.driver_data<atetris_state>();
100
101   memcpy(state->m_slapstic_base, &state->m_slapstic_source[state->m_current_bank * 0x4000], 0x4000);
99   memcpy(m_slapstic_base, &m_slapstic_source[m_current_bank * 0x4000], 0x4000);
102100}
103101
104102
r20647r20648
110108   /* Set up save state */
111109   save_item(NAME(m_current_bank));
112110   save_item(NAME(m_nvram_write_enable));
113   machine().save().register_postload(save_prepost_delegate(FUNC(reset_bank), &machine()));
111   machine().save().register_postload(save_prepost_delegate(FUNC(atetris_state::reset_bank), this));
114112}
115113
116114
r20647r20648
119117   /* reset the slapstic */
120118   slapstic_reset();
121119   m_current_bank = slapstic_bank() & 1;
122   reset_bank(machine());
120   reset_bank();
123121
124122   /* start interrupts going (32V clocked by 16V) */
125123   m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(48), 48);
trunk/src/mame/audio/8080bw.c
r20647r20648
971971}
972972
973973
974static void schaser_reinit_555_time_remain(_8080bw_state *state)
974void _8080bw_state::schaser_reinit_555_time_remain()
975975{
976   address_space &space = state->m_maincpu->space(AS_PROGRAM);
977   state->m_schaser_effect_555_time_remain = attotime::from_double(state->m_schaser_effect_555_time_remain_savable);
978   state->schaser_sh_port_2_w(space, 0, state->m_port_2_last_extra);
976   address_space &space = m_maincpu->space(AS_PROGRAM);
977   m_schaser_effect_555_time_remain = attotime::from_double(m_schaser_effect_555_time_remain_savable);
978   schaser_sh_port_2_w(space, 0, m_port_2_last_extra);
979979}
980980
981981
r20647r20648
985985   save_item(NAME(m_schaser_effect_555_is_low));
986986   save_item(NAME(m_schaser_effect_555_time_remain_savable));
987987   save_item(NAME(m_port_2_last_extra));
988   machine().save().register_postload(save_prepost_delegate(FUNC(schaser_reinit_555_time_remain), this));
988   machine().save().register_postload(save_prepost_delegate(FUNC(_8080bw_state::schaser_reinit_555_time_remain), this));
989989}
990990
991991
trunk/src/mame/machine/simpsons.c
r20647r20648
6666   device->machine().root_device().membank("bank1")->set_entry(lines & 0x3f);
6767}
6868
69static void simpsons_postload(running_machine &machine)
69void simpsons_state::simpsons_postload()
7070{
71   simpsons_state *state = machine.driver_data<simpsons_state>();
72
73   simpsons_video_banking(machine, state->m_video_bank);
71   simpsons_video_banking(machine(), m_video_bank);
7472}
7573
7674void simpsons_state::machine_start()
r20647r20648
9391   save_item(NAME(m_layerpri));
9492   save_pointer(NAME(m_xtraram), 0x1000);
9593   save_pointer(NAME(m_spriteram), 0x1000 / 2);
96   machine().save().register_postload(save_prepost_delegate(FUNC(simpsons_postload), &machine()));
94   machine().save().register_postload(save_prepost_delegate(FUNC(simpsons_state::simpsons_postload), this));
9795}
9896
9997void simpsons_state::machine_reset()
trunk/src/mame/machine/toaplan1.c
r20647r20648
148148   }
149149}
150150
151static void demonwld_restore_dsp(running_machine &machine)
151void toaplan1_state::demonwld_restore_dsp()
152152{
153   toaplan1_state *state = machine.driver_data<toaplan1_state>();
154   demonwld_dsp(machine, state->m_dsp_on);
153   demonwld_dsp(machine(), m_dsp_on);
155154}
156155
157156WRITE16_MEMBER(toaplan1_state::demonwld_dsp_ctrl_w)
r20647r20648
413412   state->save_item(NAME(state->m_main_ram_seg));
414413   state->save_item(NAME(state->m_dsp_BIO));
415414   state->save_item(NAME(state->m_dsp_execute));
416   machine.save().register_postload(save_prepost_delegate(FUNC(demonwld_restore_dsp), &machine));
415   machine.save().register_postload(save_prepost_delegate(FUNC(toaplan1_state::demonwld_restore_dsp), state));
417416}
418417
419418MACHINE_RESET_MEMBER(toaplan1_state,vimana)
trunk/src/mame/machine/williams.c
r20647r20648
433433 *
434434 *************************************/
435435
436static void williams2_postload(running_machine &machine)
436void williams_state::williams2_postload()
437437{
438   williams_state *state = machine.driver_data<williams_state>();
439   address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
440   state->williams2_bank_select_w(space, 0, state->m_vram_bank);
438   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
439   williams2_bank_select_w(space, 0, m_vram_bank);
441440}
442441
443442
r20647r20648
449448
450449   /* register for save states */
451450   state_save_register_global(machine(), m_vram_bank);
452   machine().save().register_postload(save_prepost_delegate(FUNC(williams2_postload), &machine()));
451   machine().save().register_postload(save_prepost_delegate(FUNC(williams_state::williams2_postload), this));
453452}
454453
455454
r20647r20648
734733 *
735734 *************************************/
736735
737static void defender_postload(running_machine &machine)
736void williams_state::defender_postload()
738737{
739   williams_state *state = machine.driver_data<williams_state>();
740   address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
741   state->defender_bank_select_w(space, 0, state->m_vram_bank);
738   address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
739   defender_bank_select_w(space, 0, m_vram_bank);
742740}
743741
744742
r20647r20648
749747   /* configure the banking and make sure it is reset to 0 */
750748   machine().root_device().membank("bank1")->configure_entries(0, 9, &machine().root_device().memregion("maincpu")->base()[0x10000], 0x1000);
751749
752   machine().save().register_postload(save_prepost_delegate(FUNC(defender_postload), &machine()));
750   machine().save().register_postload(save_prepost_delegate(FUNC(williams_state::defender_postload), this));
753751}
754752
755753
trunk/src/mame/machine/tnzs.c
r20647r20648
666666   m_mcu_type = -1;
667667}
668668
669static void tnzs_postload(running_machine &machine)
669void tnzs_state::tnzs_postload()
670670{
671   tnzs_state *state = machine.driver_data<tnzs_state>();
672   state->membank("subbank")->set_entry(state->m_bank2);
671   membank("subbank")->set_entry(m_bank2);
673672}
674673
675674
r20647r20648
693692   save_item(NAME(m_bank1));
694693   save_item(NAME(m_bank2));
695694
696   machine().save().register_postload(save_prepost_delegate(FUNC(tnzs_postload), &machine()));
695   machine().save().register_postload(save_prepost_delegate(FUNC(tnzs_state::tnzs_postload), this));
697696}
698697
699698MACHINE_START_MEMBER(tnzs_state,tnzs)
trunk/src/mame/machine/twincobr.c
r20647r20648
191191   }
192192}
193193
194static void twincobr_restore_dsp(running_machine &machine)
194void twincobr_state::twincobr_restore_dsp()
195195{
196   twincobr_state *state = machine.driver_data<twincobr_state>();
197   twincobr_dsp(machine, state->m_dsp_on);
196   twincobr_dsp(machine(), m_dsp_on);
198197}
199198
200199
r20647r20648
336335   state_save_register_global(machine, state->m_fsharkbt_8741);
337336   state_save_register_global(machine, state->m_wardner_membank);
338337
339   machine.save().register_postload(save_prepost_delegate(FUNC(twincobr_restore_dsp), &machine));
338   machine.save().register_postload(save_prepost_delegate(FUNC(twincobr_state::twincobr_restore_dsp), state));
340339}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team