Previous 199869 Revisions Next

r21068 Thursday 14th February, 2013 at 15:31:04 UTC by Miodrag Milanović
some atari modernization (nw)
[src/mame/drivers]atarisy1.c badlands.c galpani2.c galpanic.c gauntlet.c klax.c skullxbo.c toobin.c vindictr.c
[src/mame/includes]atarigx2.h atarisy1.h badlands.h galpani2.h galpanic.h gauntlet.h klax.h skullxbo.h toobin.h vindictr.h
[src/mame/video]atarigx2.c atarisy1.c atarisy2.c badlands.c cyberbal.c galpani2.c galpanic.c gauntlet.c klax.c skullxbo.c toobin.c vindictr.c

trunk/src/mame/includes/galpani2.h
r21067r21068
5555   TIMER_DEVICE_CALLBACK_MEMBER(galpani2_interrupt2);
5656   void galpani2_mcu_nmi1();
5757   void galpani2_mcu_nmi2();
58   /*----------- defined in video/galpani2.c -----------*/
59   inline void galpani2_bg8_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_);
60   inline void galpani2_palette_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_);
61
62   DECLARE_WRITE16_MEMBER( galpani2_palette_0_w );
63   DECLARE_WRITE16_MEMBER( galpani2_palette_1_w );
64
65   DECLARE_WRITE16_MEMBER( galpani2_bg8_0_w );
66   DECLARE_WRITE16_MEMBER( galpani2_bg8_1_w );
67
68   DECLARE_WRITE16_MEMBER( galpani2_bg15_w );
5869};
5970
6071
61/*----------- defined in video/galpani2.c -----------*/
62DECLARE_WRITE16_HANDLER( galpani2_palette_0_w );
63DECLARE_WRITE16_HANDLER( galpani2_palette_1_w );
6472
65DECLARE_WRITE16_HANDLER( galpani2_bg8_0_w );
66DECLARE_WRITE16_HANDLER( galpani2_bg8_1_w );
67
68DECLARE_WRITE16_HANDLER( galpani2_bg15_w );
trunk/src/mame/includes/galpanic.h
r21067r21068
3131   TIMER_DEVICE_CALLBACK_MEMBER(galhustl_scanline);
3232   void comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
3333   void draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
34   /*----------- defined in video/galpanic.c -----------*/
35   DECLARE_WRITE16_MEMBER( galpanic_bgvideoram_w );
36   DECLARE_WRITE16_MEMBER( galpanic_paletteram_w );   
3437};
35
36/*----------- defined in video/galpanic.c -----------*/
37DECLARE_WRITE16_HANDLER( galpanic_bgvideoram_w );
38DECLARE_WRITE16_HANDLER( galpanic_paletteram_w );
trunk/src/mame/includes/klax.h
r21067r21068
1919   DECLARE_MACHINE_RESET(klax);
2020   DECLARE_VIDEO_START(klax);
2121   UINT32 screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
22   DECLARE_WRITE16_MEMBER( klax_latch_w );   
2223};
23
24/*----------- defined in video/klax.c -----------*/
25DECLARE_WRITE16_HANDLER( klax_latch_w );
trunk/src/mame/includes/gauntlet.h
r21067r21068
3535   DECLARE_MACHINE_RESET(gauntlet);
3636   DECLARE_VIDEO_START(gauntlet);
3737   UINT32 screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
38   DECLARE_WRITE16_MEMBER( gauntlet_xscroll_w );
39   DECLARE_WRITE16_MEMBER( gauntlet_yscroll_w );
3840};
39
40/*----------- defined in video/gauntlet.c -----------*/
41DECLARE_WRITE16_HANDLER( gauntlet_xscroll_w );
42DECLARE_WRITE16_HANDLER( gauntlet_yscroll_w );
trunk/src/mame/includes/skullxbo.h
r21067r21068
2525   UINT32 screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2626   TIMER_CALLBACK_MEMBER(irq_gen);
2727   void skullxbo_scanline_update(int scanline);
28   DECLARE_WRITE16_MEMBER( skullxbo_playfieldlatch_w );
29   DECLARE_WRITE16_MEMBER( skullxbo_xscroll_w );
30   DECLARE_WRITE16_MEMBER( skullxbo_yscroll_w );
31   DECLARE_WRITE16_MEMBER( skullxbo_mobmsb_w );
2832};
29
30/*----------- defined in video/skullxbo.c -----------*/
31DECLARE_WRITE16_HANDLER( skullxbo_playfieldlatch_w );
32DECLARE_WRITE16_HANDLER( skullxbo_xscroll_w );
33DECLARE_WRITE16_HANDLER( skullxbo_yscroll_w );
34DECLARE_WRITE16_HANDLER( skullxbo_mobmsb_w );
35
36void skullxbo_scanline_update(running_machine &machine, int param);
trunk/src/mame/includes/atarisy1.h
r21067r21068
7373   void update_timers(int scanline);
7474   void decode_gfx(UINT16 *pflookup, UINT16 *molookup);
7575   int get_bank(UINT8 prom1, UINT8 prom2, int bpp);
76   DECLARE_READ16_MEMBER( atarisy1_int3state_r );
77   DECLARE_WRITE16_MEMBER( atarisy1_spriteram_w );
78   DECLARE_WRITE16_MEMBER( atarisy1_bankselect_w );
79   DECLARE_WRITE16_MEMBER( atarisy1_xscroll_w );
80   DECLARE_WRITE16_MEMBER( atarisy1_yscroll_w );
81   DECLARE_WRITE16_MEMBER( atarisy1_priority_w );
7682};
77
78DECLARE_READ16_HANDLER( atarisy1_int3state_r );
79
80DECLARE_WRITE16_HANDLER( atarisy1_spriteram_w );
81DECLARE_WRITE16_HANDLER( atarisy1_bankselect_w );
82DECLARE_WRITE16_HANDLER( atarisy1_xscroll_w );
83DECLARE_WRITE16_HANDLER( atarisy1_yscroll_w );
84DECLARE_WRITE16_HANDLER( atarisy1_priority_w );
trunk/src/mame/includes/vindictr.h
r21067r21068
2525   DECLARE_MACHINE_RESET(vindictr);
2626   DECLARE_VIDEO_START(vindictr);
2727   UINT32 screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
28   DECLARE_WRITE16_MEMBER( vindictr_paletteram_w );
2829};
29
30
31/*----------- defined in video/vindictr.c -----------*/
32
33DECLARE_WRITE16_HANDLER( vindictr_paletteram_w );
34
35void vindictr_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/badlands.h
r21067r21068
3434   DECLARE_MACHINE_RESET(badlandsb);
3535   UINT32 screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3636   INTERRUPT_GEN_MEMBER(vblank_int);
37   DECLARE_WRITE16_MEMBER( badlands_pf_bank_w );
3738};
38
39/*----------- defined in video/badlands.c -----------*/
40DECLARE_WRITE16_HANDLER( badlands_pf_bank_w );
trunk/src/mame/includes/atarigx2.h
r21067r21068
5050   DECLARE_VIDEO_START(atarigx2);
5151   UINT32 screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5252   void screen_eof_atarigx2(screen_device &screen, bool state);
53   DECLARE_WRITE16_MEMBER( atarigx2_mo_control_w );
5354};
54
55
56/*----------- defined in video/atarigx2.c -----------*/
57DECLARE_WRITE16_HANDLER( atarigx2_mo_control_w );
58void atarigx2_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/toobin.h
r21067r21068
2727   DECLARE_MACHINE_RESET(toobin);
2828   DECLARE_VIDEO_START(toobin);
2929   UINT32 screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
30   DECLARE_WRITE16_MEMBER( toobin_paletteram_w );
31   DECLARE_WRITE16_MEMBER( toobin_intensity_w );
32   DECLARE_WRITE16_MEMBER( toobin_xscroll_w );
33   DECLARE_WRITE16_MEMBER( toobin_yscroll_w );
34   DECLARE_WRITE16_MEMBER( toobin_slip_w );
3035};
31
32
33/*----------- defined in video/toobin.c -----------*/
34
35DECLARE_WRITE16_HANDLER( toobin_paletteram_w );
36DECLARE_WRITE16_HANDLER( toobin_intensity_w );
37DECLARE_WRITE16_HANDLER( toobin_xscroll_w );
38DECLARE_WRITE16_HANDLER( toobin_yscroll_w );
39DECLARE_WRITE16_HANDLER( toobin_slip_w );
trunk/src/mame/video/cyberbal.c
r21067r21068
220220 *
221221 *************************************/
222222
223WRITE16_HANDLER(cyberbal_state::paletteram_0_w)
223WRITE16_MEMBER(cyberbal_state::paletteram_0_w)
224224{
225225   COMBINE_DATA(&m_paletteram_0[offset]);
226226   set_palette_entry(offset, m_paletteram_0[offset]);
227227}
228228
229READ16_HANDLER(cyberbal_state::paletteram_0_r)
229READ16_MEMBER(cyberbal_state::paletteram_0_r)
230230{
231231   return m_paletteram_0[offset];
232232}
233233
234234
235WRITE16_HANDLER(cyberbal_state::paletteram_1_w)
235WRITE16_MEMBER(cyberbal_state::paletteram_1_w)
236236{
237237   COMBINE_DATA(&m_paletteram_1[offset]);
238238   set_palette_entry(offset + 0x800, m_paletteram_1[offset]);
239239}
240240
241READ16_HANDLER(cyberbal_state::paletteram_1_r)
241READ16_MEMBER(cyberbal_state::paletteram_1_r)
242242{
243243   return m_paletteram_1[offset];
244244}
trunk/src/mame/video/badlands.c
r21067r21068
8989 *
9090 *************************************/
9191
92WRITE16_HANDLER( badlands_pf_bank_w )
92WRITE16_MEMBER( badlands_state::badlands_pf_bank_w )
9393{
94   badlands_state *state = space.machine().driver_data<badlands_state>();
9594   if (ACCESSING_BITS_0_7)
96      if (state->m_playfield_tile_bank != (data & 1))
95      if (m_playfield_tile_bank != (data & 1))
9796      {
98         space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
99         state->m_playfield_tile_bank = data & 1;
100         state->m_playfield_tilemap->mark_all_dirty();
97         machine().primary_screen->update_partial(machine().primary_screen->vpos());
98         m_playfield_tile_bank = data & 1;
99         m_playfield_tilemap->mark_all_dirty();
101100      }
102101}
103102
trunk/src/mame/video/atarigx2.c
r21067r21068
9696 *
9797 *************************************/
9898
99WRITE16_HANDLER( atarigx2_mo_control_w )
99WRITE16_MEMBER( atarigx2_state::atarigx2_mo_control_w )
100100{
101   atarigx2_state *state = space.machine().driver_data<atarigx2_state>();
101   logerror("MOCONT = %d (scan = %d)\n", data, machine().primary_screen->vpos());
102102
103   logerror("MOCONT = %d (scan = %d)\n", data, space.machine().primary_screen->vpos());
104
105103   /* set the control value */
106   COMBINE_DATA(&state->m_current_control);
104   COMBINE_DATA(&m_current_control);
107105}
108106
109107
trunk/src/mame/video/klax.c
r21067r21068
8787 *
8888 *************************************/
8989
90WRITE16_HANDLER( klax_latch_w )
90WRITE16_MEMBER( klax_state::klax_latch_w )
9191{
9292}
9393
trunk/src/mame/video/galpani2.c
r21067r21068
2525
2626
2727#ifdef UNUSED_DEFINITION
28INLINE UINT16 galpani2_bg8_regs_r(address_space &space, offs_t offset, int n)
28inline UINT16 galpani2_state::galpani2_bg8_regs_r(address_space &space, offs_t offset, int n)
2929{
30   galpani2_state *state = space.machine().driver_data<galpani2_state>();
3130   switch (offset * 2)
3231   {
33      case 0x16:  return space.machine().rand() & 1;
32      case 0x16:  return machine().rand() & 1;
3433      default:
3534         logerror("CPU #0 PC %06X : Warning, bg8 #%d screen reg %04X read\n",space.cpu->safe_pc(),_n_,offset*2);
3635   }
37   return state->m_bg8_regs[_n_][offset];
36   return m_bg8_regs[_n_][offset];
3837}
3938
4039/*
r21067r21068
4443    c04         0003 flip, 0300 flip?
4544    c1c/e       01ff scroll, 3000 ?
4645*/
47INLINE void galpani2_bg8_regs_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
46inline void galpani2_state::galpani2_bg8_regs_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
4847{
49   galpani2_state *state = space.machine().driver_data<galpani2_state>();
50   COMBINE_DATA(&state->m_bg8_regs[_n_][offset]);
48   COMBINE_DATA(&m_bg8_regs[_n_][offset]);
5149}
5250
53READ16_HANDLER( galpani2_bg8_regs_0_r ) { return galpani2_bg8_regs_r(space, offset, 0); }
54READ16_HANDLER( galpani2_bg8_regs_1_r ) { return galpani2_bg8_regs_r(space, offset, 1); }
51READ16_MEMBER( galpani2_bg8_regs_0_r ) { return galpani2_bg8_regs_r(space, offset, 0); }
52READ16_MEMBER( galpani2_bg8_regs_1_r ) { return galpani2_bg8_regs_r(space, offset, 1); }
5553
56WRITE16_HANDLER( galpani2_bg8_regs_0_w ) { galpani2_bg8_regs_w(space, offset, data, mem_mask, 0); }
57WRITE16_HANDLER( galpani2_bg8_regs_1_w ) { galpani2_bg8_regs_w(space, offset, data, mem_mask, 1); }
54WRITE16_MEMBER( galpani2_bg8_regs_0_w ) { galpani2_bg8_regs_w(space, offset, data, mem_mask, 0); }
55WRITE16_MEMBER( galpani2_bg8_regs_1_w ) { galpani2_bg8_regs_w(space, offset, data, mem_mask, 1); }
5856#endif
5957
60INLINE void galpani2_bg8_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
58inline void galpani2_state::galpani2_bg8_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
6159{
62   galpani2_state *state = space.machine().driver_data<galpani2_state>();
6360   int x,y,pen;
64   UINT16 newword = COMBINE_DATA(&state->m_bg8[_n_][offset]);
61   UINT16 newword = COMBINE_DATA(&m_bg8[_n_][offset]);
6562   pen =   newword & 0xff;
6663   x   =   (offset % 512); /* 512 x 256 */
6764   y   =   (offset / 512);
68   state->m_bg8_bitmap[_n_]->pix16(y, x) = 0x4000 + pen;
65   m_bg8_bitmap[_n_]->pix16(y, x) = 0x4000 + pen;
6966}
7067
71WRITE16_HANDLER( galpani2_bg8_0_w ) { galpani2_bg8_w(space, offset, data, mem_mask, 0); }
72WRITE16_HANDLER( galpani2_bg8_1_w ) { galpani2_bg8_w(space, offset, data, mem_mask, 1); }
68WRITE16_MEMBER( galpani2_state::galpani2_bg8_0_w ) { galpani2_bg8_w(offset, data, mem_mask, 0); }
69WRITE16_MEMBER( galpani2_state::galpani2_bg8_1_w ) { galpani2_bg8_w(offset, data, mem_mask, 1); }
7370
74INLINE void galpani2_palette_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
71inline void galpani2_state::galpani2_palette_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _n_)
7572{
76   galpani2_state *state = space.machine().driver_data<galpani2_state>();
77   UINT16 newword = COMBINE_DATA(&state->m_palette[_n_][offset]);
78   palette_set_color_rgb( space.machine(), offset + 0x4000 + _n_ * 0x100, pal5bit(newword >> 5), pal5bit(newword >> 10), pal5bit(newword >> 0) );
73   UINT16 newword = COMBINE_DATA(&m_palette[_n_][offset]);
74   palette_set_color_rgb( machine(), offset + 0x4000 + _n_ * 0x100, pal5bit(newword >> 5), pal5bit(newword >> 10), pal5bit(newword >> 0) );
7975}
8076
81WRITE16_HANDLER( galpani2_palette_0_w ) { galpani2_palette_w(space, offset, data, mem_mask, 0); }
82WRITE16_HANDLER( galpani2_palette_1_w ) { galpani2_palette_w(space, offset, data, mem_mask, 1); }
77WRITE16_MEMBER( galpani2_state::galpani2_palette_0_w ) { galpani2_palette_w(offset, data, mem_mask, 0); }
78WRITE16_MEMBER( galpani2_state::galpani2_palette_1_w ) { galpani2_palette_w(offset, data, mem_mask, 1); }
8379
8480
8581/***************************************************************************
r21067r21068
9187***************************************************************************/
9288
9389/* 8 horizontal pages of 256x256 pixels? */
94WRITE16_HANDLER( galpani2_bg15_w )
90WRITE16_MEMBER( galpani2_state::galpani2_bg15_w )
9591{
96   galpani2_state *state = space.machine().driver_data<galpani2_state>();
97   UINT16 newword = COMBINE_DATA(&state->m_bg15[offset]);
92   UINT16 newword = COMBINE_DATA(&m_bg15[offset]);
9893
9994   int x = (offset % 256) + (offset / (256*256)) * 256 ;
10095   int y = (offset / 256) % 256;
10196
102   state->m_bg15_bitmap->pix16(y, x) = 0x4200 + (newword & 0x7fff);
97   m_bg15_bitmap->pix16(y, x) = 0x4200 + (newword & 0x7fff);
10398}
10499
105100
trunk/src/mame/video/galpanic.c
r21067r21068
2222
2323
2424
25WRITE16_HANDLER( galpanic_bgvideoram_w )
25WRITE16_MEMBER(galpanic_state::galpanic_bgvideoram_w)
2626{
27   galpanic_state *state = space.machine().driver_data<galpanic_state>();
2827   int sx,sy;
2928
3029
31   data = COMBINE_DATA(&state->m_bgvideoram[offset]);
30   data = COMBINE_DATA(&m_bgvideoram[offset]);
3231
3332   sy = offset / 256;
3433   sx = offset % 256;
3534
36   state->m_bitmap.pix16(sy, sx) = 1024 + (data >> 1);
35   m_bitmap.pix16(sy, sx) = 1024 + (data >> 1);
3736}
3837
39WRITE16_HANDLER( galpanic_paletteram_w )
38WRITE16_MEMBER(galpanic_state::galpanic_paletteram_w)
4039{
41   galpanic_state *state = space.machine().driver_data<galpanic_state>();
42   data = COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
40   data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
4341   /* bit 0 seems to be a transparency flag for the front bitmap */
44   palette_set_color_rgb(space.machine(),offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
42   palette_set_color_rgb(machine(),offset,pal5bit(data >> 6),pal5bit(data >> 11),pal5bit(data >> 1));
4543}
4644
4745
trunk/src/mame/video/gauntlet.c
r21067r21068
116116 *
117117 *************************************/
118118
119WRITE16_HANDLER( gauntlet_xscroll_w )
119WRITE16_MEMBER( gauntlet_state::gauntlet_xscroll_w )
120120{
121   gauntlet_state *state = space.machine().driver_data<gauntlet_state>();
122   UINT16 oldxscroll = *state->m_xscroll;
123   COMBINE_DATA(state->m_xscroll);
121   UINT16 oldxscroll = *m_xscroll;
122   COMBINE_DATA(m_xscroll);
124123
125124   /* if something changed, force a partial update */
126   if (*state->m_xscroll != oldxscroll)
125   if (*m_xscroll != oldxscroll)
127126   {
128      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
127      machine().primary_screen->update_partial(machine().primary_screen->vpos());
129128
130129      /* adjust the scrolls */
131      state->m_playfield_tilemap->set_scrollx(0, *state->m_xscroll);
132      atarimo_set_xscroll(0, *state->m_xscroll & 0x1ff);
130      m_playfield_tilemap->set_scrollx(0, *m_xscroll);
131      atarimo_set_xscroll(0, *m_xscroll & 0x1ff);
133132   }
134133}
135134
r21067r21068
141140 *
142141 *************************************/
143142
144WRITE16_HANDLER( gauntlet_yscroll_w )
143WRITE16_MEMBER( gauntlet_state::gauntlet_yscroll_w )
145144{
146   gauntlet_state *state = space.machine().driver_data<gauntlet_state>();
147   UINT16 oldyscroll = *state->m_yscroll;
148   COMBINE_DATA(state->m_yscroll);
145   UINT16 oldyscroll = *m_yscroll;
146   COMBINE_DATA(m_yscroll);
149147
150148   /* if something changed, force a partial update */
151   if (*state->m_yscroll != oldyscroll)
149   if (*m_yscroll != oldyscroll)
152150   {
153      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
151      machine().primary_screen->update_partial(machine().primary_screen->vpos());
154152
155153      /* if the bank changed, mark all tiles dirty */
156      if (state->m_playfield_tile_bank != (*state->m_yscroll & 3))
154      if (m_playfield_tile_bank != (*m_yscroll & 3))
157155      {
158         state->m_playfield_tile_bank = *state->m_yscroll & 3;
159         state->m_playfield_tilemap->mark_all_dirty();
156         m_playfield_tile_bank = *m_yscroll & 3;
157         m_playfield_tilemap->mark_all_dirty();
160158      }
161159
162160      /* adjust the scrolls */
163      state->m_playfield_tilemap->set_scrolly(0, *state->m_yscroll >> 7);
164      atarimo_set_yscroll(0, (*state->m_yscroll >> 7) & 0x1ff);
161      m_playfield_tilemap->set_scrolly(0, *m_yscroll >> 7);
162      atarimo_set_yscroll(0, (*m_yscroll >> 7) & 0x1ff);
165163   }
166164}
167165
trunk/src/mame/video/toobin.c
r21067r21068
107107 *
108108 *************************************/
109109
110WRITE16_HANDLER( toobin_paletteram_w )
110WRITE16_MEMBER( toobin_state::toobin_paletteram_w )
111111{
112   toobin_state *state = space.machine().driver_data<toobin_state>();
113112   int newword;
114113
115   COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
116   newword = state->m_generic_paletteram_16[offset];
114   COMBINE_DATA(&m_generic_paletteram_16[offset]);
115   newword = m_generic_paletteram_16[offset];
117116
118117   {
119118      int red =   (((newword >> 10) & 31) * 224) >> 5;
r21067r21068
124123      if (green) green += 38;
125124      if (blue) blue += 38;
126125
127      palette_set_color(space.machine(), offset & 0x3ff, MAKE_RGB(red, green, blue));
126      palette_set_color(machine(), offset & 0x3ff, MAKE_RGB(red, green, blue));
128127      if (!(newword & 0x8000))
129         palette_set_pen_contrast(space.machine(), offset & 0x3ff, state->m_brightness);
128         palette_set_pen_contrast(machine(), offset & 0x3ff, m_brightness);
130129      else
131         palette_set_pen_contrast(space.machine(), offset & 0x3ff, 1.0);
130         palette_set_pen_contrast(machine(), offset & 0x3ff, 1.0);
132131   }
133132}
134133
135134
136WRITE16_HANDLER( toobin_intensity_w )
135WRITE16_MEMBER( toobin_state::toobin_intensity_w )
137136{
138   toobin_state *state = space.machine().driver_data<toobin_state>();
139137   int i;
140138
141139   if (ACCESSING_BITS_0_7)
142140   {
143      state->m_brightness = (double)(~data & 0x1f) / 31.0;
141      m_brightness = (double)(~data & 0x1f) / 31.0;
144142
145143      for (i = 0; i < 0x400; i++)
146         if (!(state->m_generic_paletteram_16[i] & 0x8000))
147            palette_set_pen_contrast(space.machine(), i, state->m_brightness);
144         if (!(m_generic_paletteram_16[i] & 0x8000))
145            palette_set_pen_contrast(machine(), i, m_brightness);
148146   }
149147}
150148
r21067r21068
156154 *
157155 *************************************/
158156
159WRITE16_HANDLER( toobin_xscroll_w )
157WRITE16_MEMBER( toobin_state::toobin_xscroll_w )
160158{
161   toobin_state *state = space.machine().driver_data<toobin_state>();
162   UINT16 oldscroll = *state->m_xscroll;
159   UINT16 oldscroll = *m_xscroll;
163160   UINT16 newscroll = oldscroll;
164161   COMBINE_DATA(&newscroll);
165162
166163   /* if anything has changed, force a partial update */
167164   if (newscroll != oldscroll)
168      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
165      machine().primary_screen->update_partial(machine().primary_screen->vpos());
169166
170167   /* update the playfield scrolling - hscroll is clocked on the following scanline */
171   state->m_playfield_tilemap->set_scrollx(0, newscroll >> 6);
168   m_playfield_tilemap->set_scrollx(0, newscroll >> 6);
172169   atarimo_set_xscroll(0, newscroll >> 6);
173170
174171   /* update the data */
175   *state->m_xscroll = newscroll;
172   *m_xscroll = newscroll;
176173}
177174
178175
179WRITE16_HANDLER( toobin_yscroll_w )
176WRITE16_MEMBER( toobin_state::toobin_yscroll_w )
180177{
181   toobin_state *state = space.machine().driver_data<toobin_state>();
182   UINT16 oldscroll = *state->m_yscroll;
178   UINT16 oldscroll = *m_yscroll;
183179   UINT16 newscroll = oldscroll;
184180   COMBINE_DATA(&newscroll);
185181
186182   /* if anything has changed, force a partial update */
187183   if (newscroll != oldscroll)
188      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
184      machine().primary_screen->update_partial(machine().primary_screen->vpos());
189185
190186   /* if bit 4 is zero, the scroll value is clocked in right away */
191   state->m_playfield_tilemap->set_scrolly(0, newscroll >> 6);
187   m_playfield_tilemap->set_scrolly(0, newscroll >> 6);
192188   atarimo_set_yscroll(0, (newscroll >> 6) & 0x1ff);
193189
194190   /* update the data */
195   *state->m_yscroll = newscroll;
191   *m_yscroll = newscroll;
196192}
197193
198194
r21067r21068
203199 *
204200 *************************************/
205201
206WRITE16_HANDLER( toobin_slip_w )
202WRITE16_MEMBER( toobin_state::toobin_slip_w )
207203{
208204   int oldslip = atarimo_0_slipram_r(space, offset, mem_mask);
209205   int newslip = oldslip;
r21067r21068
211207
212208   /* if the SLIP is changing, force a partial update first */
213209   if (oldslip != newslip)
214      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
210      machine().primary_screen->update_partial(machine().primary_screen->vpos());
215211
216212   /* update the data */
217213   atarimo_0_slipram_w(space, offset, data, mem_mask);
trunk/src/mame/video/skullxbo.c
r21067r21068
101101 *
102102 *************************************/
103103
104WRITE16_HANDLER( skullxbo_xscroll_w )
104WRITE16_MEMBER( skullxbo_state::skullxbo_xscroll_w )
105105{
106   skullxbo_state *state = space.machine().driver_data<skullxbo_state>();
107
108106   /* combine data */
109   UINT16 oldscroll = *state->m_xscroll;
107   UINT16 oldscroll = *m_xscroll;
110108   UINT16 newscroll = oldscroll;
111109   COMBINE_DATA(&newscroll);
112110
113111   /* if something changed, force an update */
114112   if (oldscroll != newscroll)
115      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
113      machine().primary_screen->update_partial(machine().primary_screen->vpos());
116114
117115   /* adjust the actual scrolls */
118   state->m_playfield_tilemap->set_scrollx(0, 2 * (newscroll >> 7));
116   m_playfield_tilemap->set_scrollx(0, 2 * (newscroll >> 7));
119117   atarimo_set_xscroll(0, 2 * (newscroll >> 7));
120118
121119   /* update the data */
122   *state->m_xscroll = newscroll;
120   *m_xscroll = newscroll;
123121}
124122
125123
126WRITE16_HANDLER( skullxbo_yscroll_w )
124WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w )
127125{
128   skullxbo_state *state = space.machine().driver_data<skullxbo_state>();
129
130126   /* combine data */
131   int scanline = space.machine().primary_screen->vpos();
132   UINT16 oldscroll = *state->m_yscroll;
127   int scanline = machine().primary_screen->vpos();
128   UINT16 oldscroll = *m_yscroll;
133129   UINT16 newscroll = oldscroll;
134130   UINT16 effscroll;
135131   COMBINE_DATA(&newscroll);
136132
137133   /* if something changed, force an update */
138134   if (oldscroll != newscroll)
139      space.machine().primary_screen->update_partial(scanline);
135      machine().primary_screen->update_partial(scanline);
140136
141137   /* adjust the effective scroll for the current scanline */
142   if (scanline > space.machine().primary_screen->visible_area().max_y)
138   if (scanline > machine().primary_screen->visible_area().max_y)
143139      scanline = 0;
144140   effscroll = (newscroll >> 7) - scanline;
145141
146142   /* adjust the actual scrolls */
147   state->m_playfield_tilemap->set_scrolly(0, effscroll);
143   m_playfield_tilemap->set_scrolly(0, effscroll);
148144   atarimo_set_yscroll(0, effscroll & 0x1ff);
149145
150146   /* update the data */
151   *state->m_yscroll = newscroll;
147   *m_yscroll = newscroll;
152148}
153149
154150
r21067r21068
159155 *
160156 *************************************/
161157
162WRITE16_HANDLER( skullxbo_mobmsb_w )
158WRITE16_MEMBER( skullxbo_state::skullxbo_mobmsb_w )
163159{
164   space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
160   machine().primary_screen->update_partial(machine().primary_screen->vpos());
165161   atarimo_set_bank(0, (offset >> 9) & 1);
166162}
167163
r21067r21068
173169 *
174170 *************************************/
175171
176WRITE16_HANDLER( skullxbo_playfieldlatch_w )
172WRITE16_MEMBER( skullxbo_state::skullxbo_playfieldlatch_w )
177173{
178   skullxbo_state *state = space.machine().driver_data<skullxbo_state>();
179   state->set_playfield_latch(data);
174   set_playfield_latch(data);
180175}
181176
182177
trunk/src/mame/video/atarisy1.c
r21067r21068
195195 *
196196 *************************************/
197197
198WRITE16_HANDLER( atarisy1_bankselect_w )
198WRITE16_MEMBER( atarisy1_state::atarisy1_bankselect_w )
199199{
200   atarisy1_state *state = space.machine().driver_data<atarisy1_state>();
201   UINT16 oldselect = *state->m_bankselect;
200   UINT16 oldselect = *m_bankselect;
202201   UINT16 newselect = oldselect, diff;
203   int scanline = space.machine().primary_screen->vpos();
202   int scanline = machine().primary_screen->vpos();
204203
205204   /* update memory */
206205   COMBINE_DATA(&newselect);
r21067r21068
209208   /* sound CPU reset */
210209   if (diff & 0x0080)
211210   {
212      space.machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, (newselect & 0x0080) ? CLEAR_LINE : ASSERT_LINE);
213      if (!(newselect & 0x0080)) state->sound_cpu_reset();
211      machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, (newselect & 0x0080) ? CLEAR_LINE : ASSERT_LINE);
212      if (!(newselect & 0x0080)) sound_cpu_reset();
214213   }
215214
216215   /* if MO or playfield banks change, force a partial update */
217216   if (diff & 0x003c)
218      space.machine().primary_screen->update_partial(scanline);
217      machine().primary_screen->update_partial(scanline);
219218
220219   /* motion object bank select */
221220   atarimo_set_bank(0, (newselect >> 3) & 7);
222   state->update_timers(scanline);
221   update_timers(scanline);
223222
224223   /* playfield bank select */
225224   if (diff & 0x0004)
226225   {
227      state->m_playfield_tile_bank = (newselect >> 2) & 1;
228      state->m_playfield_tilemap->mark_all_dirty();
226      m_playfield_tile_bank = (newselect >> 2) & 1;
227      m_playfield_tilemap->mark_all_dirty();
229228   }
230229
231230   /* stash the new value */
232   *state->m_bankselect = newselect;
231   *m_bankselect = newselect;
233232}
234233
235234
r21067r21068
240239 *
241240 *************************************/
242241
243WRITE16_HANDLER( atarisy1_priority_w )
242WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w )
244243{
245   atarisy1_state *state = space.machine().driver_data<atarisy1_state>();
246   UINT16 oldpens = state->m_playfield_priority_pens;
244   UINT16 oldpens = m_playfield_priority_pens;
247245   UINT16 newpens = oldpens;
248246
249247   /* force a partial update in case this changes mid-screen */
250248   COMBINE_DATA(&newpens);
251249   if (oldpens != newpens)
252      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
253   state->m_playfield_priority_pens = newpens;
250      machine().primary_screen->update_partial(machine().primary_screen->vpos());
251   m_playfield_priority_pens = newpens;
254252}
255253
256254
r21067r21068
261259 *
262260 *************************************/
263261
264WRITE16_HANDLER( atarisy1_xscroll_w )
262WRITE16_MEMBER( atarisy1_state::atarisy1_xscroll_w )
265263{
266   atarisy1_state *state = space.machine().driver_data<atarisy1_state>();
267   UINT16 oldscroll = *state->m_xscroll;
264   UINT16 oldscroll = *m_xscroll;
268265   UINT16 newscroll = oldscroll;
269266
270267   /* force a partial update in case this changes mid-screen */
271268   COMBINE_DATA(&newscroll);
272269   if (oldscroll != newscroll)
273      space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
270      machine().primary_screen->update_partial(machine().primary_screen->vpos());
274271
275272   /* set the new scroll value */
276   state->m_playfield_tilemap->set_scrollx(0, newscroll);
273   m_playfield_tilemap->set_scrollx(0, newscroll);
277274
278275   /* update the data */
279   *state->m_xscroll = newscroll;
276   *m_xscroll = newscroll;
280277}
281278
282279
r21067r21068
293290}
294291
295292
296WRITE16_HANDLER( atarisy1_yscroll_w )
293WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w )
297294{
298   atarisy1_state *state = space.machine().driver_data<atarisy1_state>();
299   UINT16 oldscroll = *state->m_yscroll;
295   UINT16 oldscroll = *m_yscroll;
300296   UINT16 newscroll = oldscroll;
301   int scanline = space.machine().primary_screen->vpos();
297   int scanline = machine().primary_screen->vpos();
302298   int adjusted_scroll;
303299
304300   /* force a partial update in case this changes mid-screen */
305301   COMBINE_DATA(&newscroll);
306   space.machine().primary_screen->update_partial(scanline);
302   machine().primary_screen->update_partial(scanline);
307303
308304   /* because this latches a new value into the scroll base,
309305      we need to adjust for the scanline */
310306   adjusted_scroll = newscroll;
311   if (scanline <= space.machine().primary_screen->visible_area().max_y)
307   if (scanline <= machine().primary_screen->visible_area().max_y)
312308      adjusted_scroll -= (scanline + 1);
313   state->m_playfield_tilemap->set_scrolly(0, adjusted_scroll);
309   m_playfield_tilemap->set_scrolly(0, adjusted_scroll);
314310
315311   /* but since we've adjusted it, we must reset it to the normal value
316312      once we hit scanline 0 again */
317   state->m_yscroll_reset_timer->adjust(space.machine().primary_screen->time_until_pos(0), newscroll);
313   m_yscroll_reset_timer->adjust(machine().primary_screen->time_until_pos(0), newscroll);
318314
319315   /* update the data */
320   *state->m_yscroll = newscroll;
316   *m_yscroll = newscroll;
321317}
322318
323319
r21067r21068
328324 *
329325 *************************************/
330326
331WRITE16_HANDLER( atarisy1_spriteram_w )
327WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w )
332328{
333   atarisy1_state *state = space.machine().driver_data<atarisy1_state>();
334329   int active_bank = atarimo_get_bank(0);
335330   int oldword = atarimo_0_spriteram_r(space, offset, mem_mask);
336331   int newword = oldword;
r21067r21068
345340      {
346341         /* if the timer is in the active bank, update the display list */
347342         atarimo_0_spriteram_w(space, offset, data, 0xffff);
348         state->update_timers(space.machine().primary_screen->vpos());
343         update_timers(machine().primary_screen->vpos());
349344      }
350345
351346      /* if we're about to modify data in the active sprite bank, make sure the video is up-to-date */
r21067r21068
353348      /* renders the next scanline's sprites to the line buffers, but Road Runner still glitches */
354349      /* without the extra +1 */
355350      else
356         space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() + 2);
351         machine().primary_screen->update_partial(machine().primary_screen->vpos() + 2);
357352   }
358353
359354   /* let the MO handler do the basic work */
r21067r21068
400395 *
401396 *************************************/
402397
403READ16_HANDLER( atarisy1_int3state_r )
398READ16_MEMBER( atarisy1_state::atarisy1_int3state_r )
404399{
405   atarigen_state *atarigen = space.machine().driver_data<atarigen_state>();
406   return atarigen->m_scanline_int_state ? 0x0080 : 0x0000;
400   return m_scanline_int_state ? 0x0080 : 0x0000;
407401}
408402
409403
trunk/src/mame/video/vindictr.c
r21067r21068
105105 *
106106 *************************************/
107107
108WRITE16_HANDLER( vindictr_paletteram_w )
108WRITE16_MEMBER( vindictr_state::vindictr_paletteram_w )
109109{
110110   static const int ztable[16] =
111111      { 0x0, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11 };
112112   int c;
113113
114114   /* first blend the data */
115   vindictr_state *state = space.machine().driver_data<vindictr_state>();
116   COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
117   data = state->m_generic_paletteram_16[offset];
115   COMBINE_DATA(&m_generic_paletteram_16[offset]);
116   data = m_generic_paletteram_16[offset];
118117
119118   /* now generate colors at all 16 intensities */
120119   for (c = 0; c < 8; c++)
r21067r21068
124123      int g = ((data >> 4) & 15) * i;
125124      int b = ((data >> 0) & 15) * i;
126125
127      palette_set_color(space.machine(),offset + c*2048,MAKE_RGB(r,g,b));
126      palette_set_color(machine(),offset + c*2048,MAKE_RGB(r,g,b));
128127   }
129128}
130129
trunk/src/mame/video/atarisy2.c
r21067r21068
114114 *
115115 *************************************/
116116
117WRITE16_HANDLER( atarisy2_state::xscroll_w )
117WRITE16_MEMBER( atarisy2_state::xscroll_w )
118118{
119119   UINT16 oldscroll = *m_xscroll;
120120   UINT16 newscroll = oldscroll;
r21067r21068
145145}
146146
147147
148WRITE16_HANDLER( atarisy2_state::yscroll_w )
148WRITE16_MEMBER( atarisy2_state::yscroll_w )
149149{
150150   UINT16 oldscroll = *m_yscroll;
151151   UINT16 newscroll = oldscroll;
r21067r21068
180180 *
181181 *************************************/
182182
183WRITE16_HANDLER( atarisy2_state::paletteram_w )
183WRITE16_MEMBER( atarisy2_state::paletteram_w )
184184{
185185   static const int intensity_table[16] =
186186   {
r21067r21068
215215 *
216216 *************************************/
217217
218READ16_HANDLER( atarisy2_state::slapstic_r )
218READ16_MEMBER( atarisy2_state::slapstic_r )
219219{
220220   int result = m_slapstic_base[offset];
221221   slapstic_tweak(space, offset);
r21067r21068
226226}
227227
228228
229WRITE16_HANDLER( atarisy2_state::slapstic_w )
229WRITE16_MEMBER( atarisy2_state::slapstic_w )
230230{
231231   slapstic_tweak(space, offset);
232232
r21067r21068
242242 *
243243 *************************************/
244244
245READ16_HANDLER( atarisy2_state::videoram_r )
245READ16_MEMBER( atarisy2_state::videoram_r )
246246{
247247   int offs = offset | m_videobank;
248248   if (offs >= 0xc00 && offs < 0x1000)
r21067r21068
254254}
255255
256256
257WRITE16_HANDLER( atarisy2_state::videoram_w )
257WRITE16_MEMBER( atarisy2_state::videoram_w )
258258{
259259   int offs = offset | m_videobank;
260260
trunk/src/mame/drivers/gauntlet.c
r21067r21068
317317   AM_RANGE(0x900000, 0x901fff) AM_MIRROR(0x2c8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
318318   AM_RANGE(0x902000, 0x903fff) AM_MIRROR(0x2c8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
319319   AM_RANGE(0x904000, 0x904fff) AM_MIRROR(0x2c8000) AM_RAM
320   AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE_LEGACY(gauntlet_yscroll_w) AM_SHARE("yscroll")
320   AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(gauntlet_yscroll_w) AM_SHARE("yscroll")
321321   AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
322322   AM_RANGE(0x905f80, 0x905fff) AM_MIRROR(0x2c8000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
323323   AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
324   AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE_LEGACY(gauntlet_xscroll_w) AM_SHARE("xscroll")
324   AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE(gauntlet_xscroll_w) AM_SHARE("xscroll")
325325ADDRESS_MAP_END
326326
327327
trunk/src/mame/drivers/klax.c
r21067r21068
7777   AM_RANGE(0x000000, 0x03ffff) AM_ROM
7878   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
7979   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
80   AM_RANGE(0x260000, 0x260001) AM_READ_PORT("P1") AM_WRITE_LEGACY(klax_latch_w)
80   AM_RANGE(0x260000, 0x260001) AM_READ_PORT("P1") AM_WRITE(klax_latch_w)
8181   AM_RANGE(0x260002, 0x260003) AM_READ_PORT("P2")
8282   AM_RANGE(0x270000, 0x270001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
8383   AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
trunk/src/mame/drivers/badlands.c
r21067r21068
381381   AM_RANGE(0xfe6006, 0xfe6007) AM_READ(pedal_1_r)
382382   AM_RANGE(0xfe8000, 0xfe9fff) AM_WRITE8(sound_w, 0xff00)
383383   AM_RANGE(0xfea000, 0xfebfff) AM_READ8(sound_r, 0xff00)
384   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE_LEGACY(badlands_pf_bank_w)
384   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE(badlands_pf_bank_w)
385385   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
386386   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
387387   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
r21067r21068
641641   //AM_RANGE(0xfe0000, 0xfe1fff) AM_WRITE(watchdog_reset16_w)
642642   AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE(video_int_ack_w)
643643
644   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE_LEGACY(badlands_pf_bank_w)
644   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE(badlands_pf_bank_w)
645645   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
646646   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
647647   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
trunk/src/mame/drivers/galpani2.c
r21067r21068
290290   AM_RANGE(0x304000, 0x30401f) AM_DEVREADWRITE("kan_spr", kaneko16_sprite_device, kaneko16_sprites_regs_r, kaneko16_sprites_regs_w)
291291   AM_RANGE(0x308000, 0x308001) AM_WRITENOP                                        // ? 0 at startup
292292   AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP                                        // ? hblank effect ?
293   AM_RANGE(0x310000, 0x3101ff) AM_RAM_WRITE_LEGACY(galpani2_palette_0_w) AM_SHARE("palette.0")    // ?
293   AM_RANGE(0x310000, 0x3101ff) AM_RAM_WRITE(galpani2_palette_0_w) AM_SHARE("palette.0")    // ?
294294   AM_RANGE(0x314000, 0x314001) AM_WRITENOP                                        // ? flip backgrounds ?
295295   AM_RANGE(0x318000, 0x318001) AM_READWRITE(galpani2_eeprom_r, galpani2_eeprom_w) // EEPROM
296296   AM_RANGE(0x380000, 0x387fff) AM_RAM                                             // Palette?
297297   AM_RANGE(0x388000, 0x38ffff) AM_RAM_WRITE(paletteram_xGGGGGRRRRRBBBBB_word_w) AM_SHARE("paletteram" )   // Palette
298298   AM_RANGE(0x390000, 0x3901ff) AM_WRITENOP                                        // ? at startup of service mode
299299
300   AM_RANGE(0x400000, 0x43ffff) AM_RAM_WRITE_LEGACY(galpani2_bg8_0_w) AM_SHARE("bg8.0")    // Background 0
300   AM_RANGE(0x400000, 0x43ffff) AM_RAM_WRITE(galpani2_bg8_0_w) AM_SHARE("bg8.0")    // Background 0
301301   AM_RANGE(0x440000, 0x440001) AM_RAM AM_SHARE("bg8_scrollx.0")           // Background 0 Scroll X
302302   AM_RANGE(0x480000, 0x480001) AM_RAM AM_SHARE("bg8_scrolly.0")           // Background 0 Scroll Y
303303   AM_RANGE(0x4c0000, 0x4c0001) AM_WRITENOP                                        // ? 0 at startup only
304   AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpani2_bg8_1_w) AM_SHARE("bg8.1")    // Background 1
304   AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE(galpani2_bg8_1_w) AM_SHARE("bg8.1")    // Background 1
305305   AM_RANGE(0x540000, 0x540001) AM_RAM AM_SHARE("bg8_scrollx.1")           // Background 1 Scroll X
306306
307307   AM_RANGE(0x540572, 0x540573) AM_READNOP                                         // ? galpani2 at F0A4
r21067r21068
354354static ADDRESS_MAP_START( galpani2_mem2, AS_PROGRAM, 16, galpani2_state )
355355   AM_RANGE(0x000000, 0x03ffff) AM_ROM                                                             // ROM
356356   AM_RANGE(0x100000, 0x13ffff) AM_RAM AM_SHARE("ram2")                                        // Work RAM
357   AM_RANGE(0x400000, 0x4fffff) AM_RAM_WRITE_LEGACY(galpani2_bg15_w) AM_SHARE("bg15")  // bg15
357   AM_RANGE(0x400000, 0x4fffff) AM_RAM_WRITE(galpani2_bg15_w) AM_SHARE("bg15")  // bg15
358358   AM_RANGE(0x500000, 0x5fffff) AM_RAM                                                             // bg15
359359   AM_RANGE(0x600000, 0x600001) AM_NOP // ? 0 at startup only
360360   AM_RANGE(0x640000, 0x640001) AM_WRITENOP                                // ? 0 at startup only
trunk/src/mame/drivers/toobin.c
r21067r21068
101101   AM_RANGE(0xc00000, 0xc07fff) AM_RAM_WRITE(playfield_large_w) AM_SHARE("playfield")
102102   AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
103103   AM_RANGE(0xc09800, 0xc09fff) AM_MIRROR(0x046000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
104   AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE_LEGACY(toobin_paletteram_w) AM_SHARE("paletteram")
104   AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE(toobin_paletteram_w) AM_SHARE("paletteram")
105105   AM_RANGE(0xff6000, 0xff6001) AM_READNOP     /* who knows? read at controls time */
106106   AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x4500fe) AM_WRITE(watchdog_reset16_w)
107107   AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_WRITE8(sound_w, 0x00ff)
108   AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE_LEGACY(toobin_intensity_w)
108   AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE(toobin_intensity_w)
109109   AM_RANGE(0xff8340, 0xff8341) AM_MIRROR(0x45003e) AM_WRITE(interrupt_scan_w) AM_SHARE("interrupt_scan")
110   AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_READWRITE_LEGACY(atarimo_0_slipram_r, toobin_slip_w)
110   AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_READ_LEGACY(atarimo_0_slipram_r) AM_WRITE(toobin_slip_w)
111111   AM_RANGE(0xff83c0, 0xff83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w)
112112   AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_WRITE(sound_reset_w)
113113   AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_WRITE(eeprom_enable_w)
114   AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE_LEGACY(toobin_xscroll_w) AM_SHARE("xscroll")
115   AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE_LEGACY(toobin_yscroll_w) AM_SHARE("yscroll")
114   AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE(toobin_xscroll_w) AM_SHARE("xscroll")
115   AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE(toobin_yscroll_w) AM_SHARE("yscroll")
116116   AM_RANGE(0xff8800, 0xff8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800")
117117   AM_RANGE(0xff9000, 0xff9001) AM_MIRROR(0x4507fe) AM_READ(special_port1_r)
118118   AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_READ8(sound_r, 0x00ff)
trunk/src/mame/drivers/galpanic.c
r21067r21068
215215   AM_RANGE(0x000000, 0x3fffff) AM_ROM
216216   AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
217217   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
218   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
219   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
218   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
219   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
220220   AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE_LEGACY("pandora", pandora_spriteram_LSB_r, pandora_spriteram_LSB_w)
221221   AM_RANGE(0x702000, 0x704fff) AM_RAM
222222   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
r21067r21068
251251static ADDRESS_MAP_START( comad_map, AS_PROGRAM, 16, galpanic_state )
252252   AM_RANGE(0x000000, 0x4fffff) AM_ROM
253253   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
254   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
255   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
254   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
255   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
256256   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
257257   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
258258   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
r21067r21068
270270static ADDRESS_MAP_START( fantsia2_map, AS_PROGRAM, 16, galpanic_state )
271271   AM_RANGE(0x000000, 0x4fffff) AM_ROM
272272   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
273   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
274   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
273   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")  /* + work RAM */
274   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
275275   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
276276   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
277277   AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
r21067r21068
288288static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, galpanic_state )
289289   AM_RANGE(0x000000, 0x0fffff) AM_ROM
290290   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
291   AM_RANGE(0x520000, 0x53ffff) AM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
291   AM_RANGE(0x520000, 0x53ffff) AM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
292292   AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
293   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
293   AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
294294   AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
295295   AM_RANGE(0x680000, 0x68001f) AM_RAM // regs?
296296   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
r21067r21068
314314static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, galpanic_state )
315315   AM_RANGE(0x000000, 0x4fffff) AM_ROM
316316   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
317   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
317   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
318318   AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
319   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
319   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
320320   AM_RANGE(0x680000, 0x68001f) AM_RAM
321321   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
322322   AM_RANGE(0x701000, 0x71ffff) AM_RAM
r21067r21068
335335static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, galpanic_state )
336336   AM_RANGE(0x000000, 0x4fffff) AM_ROM
337337   AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
338   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE_LEGACY(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
338   AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram")
339339//  AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
340   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE_LEGACY(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
340   AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram")  /* 1024 colors, but only 512 seem to be used */
341341   AM_RANGE(0x680000, 0x68001f) AM_RAM
342342   AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram")
343343   AM_RANGE(0x780000, 0x78001f) AM_RAM
trunk/src/mame/drivers/skullxbo.c
r21067r21068
115115
116116static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
117117   AM_RANGE(0x000000, 0x07ffff) AM_ROM
118   AM_RANGE(0xff0000, 0xff07ff) AM_WRITE_LEGACY(skullxbo_mobmsb_w)
118   AM_RANGE(0xff0000, 0xff07ff) AM_WRITE(skullxbo_mobmsb_w)
119119   AM_RANGE(0xff0800, 0xff0bff) AM_WRITE(skullxbo_halt_until_hblank_0_w)
120120   AM_RANGE(0xff0c00, 0xff0fff) AM_WRITE(eeprom_enable_w)
121121   AM_RANGE(0xff1000, 0xff13ff) AM_WRITE(video_int_ack_w)
122122   AM_RANGE(0xff1400, 0xff17ff) AM_WRITE8(sound_w, 0x00ff)
123123   AM_RANGE(0xff1800, 0xff1bff) AM_WRITE(sound_reset_w)
124   AM_RANGE(0xff1c00, 0xff1c7f) AM_WRITE_LEGACY(skullxbo_playfieldlatch_w)
125   AM_RANGE(0xff1c80, 0xff1cff) AM_WRITE_LEGACY(skullxbo_xscroll_w) AM_SHARE("xscroll")
124   AM_RANGE(0xff1c00, 0xff1c7f) AM_WRITE(skullxbo_playfieldlatch_w)
125   AM_RANGE(0xff1c80, 0xff1cff) AM_WRITE(skullxbo_xscroll_w) AM_SHARE("xscroll")
126126   AM_RANGE(0xff1d00, 0xff1d7f) AM_WRITE(scanline_int_ack_w)
127127   AM_RANGE(0xff1d80, 0xff1dff) AM_WRITE(watchdog_reset16_w)
128   AM_RANGE(0xff1e00, 0xff1e7f) AM_WRITE_LEGACY(skullxbo_playfieldlatch_w)
129   AM_RANGE(0xff1e80, 0xff1eff) AM_WRITE_LEGACY(skullxbo_xscroll_w)
128   AM_RANGE(0xff1e00, 0xff1e7f) AM_WRITE(skullxbo_playfieldlatch_w)
129   AM_RANGE(0xff1e80, 0xff1eff) AM_WRITE(skullxbo_xscroll_w)
130130   AM_RANGE(0xff1f00, 0xff1f7f) AM_WRITE(scanline_int_ack_w)
131131   AM_RANGE(0xff1f80, 0xff1fff) AM_WRITE(watchdog_reset16_w)
132132   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
133   AM_RANGE(0xff4000, 0xff47ff) AM_WRITE_LEGACY(skullxbo_yscroll_w) AM_SHARE("yscroll")
133   AM_RANGE(0xff4000, 0xff47ff) AM_WRITE(skullxbo_yscroll_w) AM_SHARE("yscroll")
134134   AM_RANGE(0xff4800, 0xff4fff) AM_WRITE(skullxbo_mobwr_w)
135135   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(eeprom_w) AM_SHARE("eeprom")
136136   AM_RANGE(0xff5000, 0xff5001) AM_READ8(sound_r, 0x00ff)
trunk/src/mame/drivers/atarisy1.c
r21067r21068
461461static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy1_state )
462462   AM_RANGE(0x000000, 0x07ffff) AM_ROM
463463   AM_RANGE(0x080000, 0x087fff) AM_ROM /* slapstic maps here */
464   AM_RANGE(0x2e0000, 0x2e0001) AM_READ_LEGACY(atarisy1_int3state_r)
464   AM_RANGE(0x2e0000, 0x2e0001) AM_READ(atarisy1_int3state_r)
465465   AM_RANGE(0x400000, 0x401fff) AM_RAM
466   AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(atarisy1_xscroll_w) AM_SHARE("xscroll")
467   AM_RANGE(0x820000, 0x820001) AM_WRITE_LEGACY(atarisy1_yscroll_w) AM_SHARE("yscroll")
468   AM_RANGE(0x840000, 0x840001) AM_WRITE_LEGACY(atarisy1_priority_w)
469   AM_RANGE(0x860000, 0x860001) AM_WRITE_LEGACY(atarisy1_bankselect_w) AM_SHARE("bankselect")
466   AM_RANGE(0x800000, 0x800001) AM_WRITE(atarisy1_xscroll_w) AM_SHARE("xscroll")
467   AM_RANGE(0x820000, 0x820001) AM_WRITE(atarisy1_yscroll_w) AM_SHARE("yscroll")
468   AM_RANGE(0x840000, 0x840001) AM_WRITE(atarisy1_priority_w)
469   AM_RANGE(0x860000, 0x860001) AM_WRITE(atarisy1_bankselect_w) AM_SHARE("bankselect")
470470   AM_RANGE(0x880000, 0x880001) AM_WRITE(watchdog_reset16_w)
471471   AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(video_int_ack_w)
472472   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE(eeprom_enable_w)
473473   AM_RANGE(0x900000, 0x9fffff) AM_RAM
474474   AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
475   AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarisy1_spriteram_w)
475   AM_RANGE(0xa02000, 0xa02fff) AM_READ_LEGACY(atarimo_0_spriteram_r) AM_WRITE(atarisy1_spriteram_w)
476476   AM_RANGE(0xa03000, 0xa03fff) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
477477   AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
478478   AM_RANGE(0xf00000, 0xf00fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
trunk/src/mame/drivers/vindictr.c
r21067r21068
8585   AM_RANGE(0x360010, 0x360011) AM_WRITENOP
8686   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
8787   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
88   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE_LEGACY(vindictr_paletteram_w) AM_SHARE("paletteram")
88   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(vindictr_paletteram_w) AM_SHARE("paletteram")
8989   AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
9090   AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
9191   AM_RANGE(0x3f4000, 0x3f4f7f) AM_MIRROR(0x8000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")

Previous 199869 Revisions Next


© 1997-2024 The MAME Team