Previous 199869 Revisions Next

r21157 Monday 18th February, 2013 at 09:12:24 UTC by Miodrag Milanović
drivers cleanup (nw)
[src/mame/drivers]asuka.c fastfred.c
[src/mame/includes]actfancr.h asuka.h copsnrob.h dec0.h dec8.h deco32.h fastfred.h galivan.h nmk16.h spbactn.h
[src/mame/machine]bonzeadv.c
[src/mame/video]fastfred.c

trunk/src/mame/machine/bonzeadv.c
r21156r21157
302302   level08
303303};
304304
305static void WriteLevelData( running_machine &machine )
305void asuka_state::WriteLevelData()
306306{
307   asuka_state *state = machine.driver_data<asuka_state>();
308307   int i;
309308
310309   for (i = 0; i < 13; i++)
311310   {
312      UINT16 v = CLEV[state->m_current_round][i];
311      UINT16 v = CLEV[m_current_round][i];
313312
314      state->m_cval[2 * i + 0] = v & 0xff;
315      state->m_cval[2 * i + 1] = v >> 8;
313      m_cval[2 * i + 0] = v & 0xff;
314      m_cval[2 * i + 1] = v >> 8;
316315   }
317316}
318317
319static void WriteRestartPos( running_machine &machine, int level )
318void asuka_state::WriteRestartPos(int level )
320319{
321320   /*
322321       Cval0/1 = scroll x position
r21156r21157
328327       on the map, which is then given to the C-Chip in order
329328       for the restart position to be returned.
330329   */
330   int x = m_cval[0] + 256 * m_cval[1] + m_cval[4] + 256 * m_cval[5];
331   int y = m_cval[2] + 256 * m_cval[3] + m_cval[6] + 256 * m_cval[7];
331332
332   asuka_state *state = machine.driver_data<asuka_state>();
333   int x = state->m_cval[0] + 256 * state->m_cval[1] + state->m_cval[4] + 256 * state->m_cval[5];
334   int y = state->m_cval[2] + 256 * state->m_cval[3] + state->m_cval[6] + 256 * state->m_cval[7];
335
336333   const struct cchip_mapping* thisLevel = levelData[level];
337334
338335   while (thisLevel->xmin != 0xff)
r21156r21157
340337      if (x >= thisLevel->xmin && x < thisLevel->xmax &&
341338         y >= thisLevel->ymin && y < thisLevel->ymax)
342339      {
343         state->m_cval[0] = thisLevel->sx & 0xff;
344         state->m_cval[1] = thisLevel->sx >> 8;
345         state->m_cval[2] = thisLevel->sy & 0xff;
346         state->m_cval[3] = thisLevel->sy >> 8;
347         state->m_cval[4] = thisLevel->px & 0xff;
348         state->m_cval[5] = thisLevel->px >> 8;
349         state->m_cval[6] = thisLevel->py & 0xff;
350         state->m_cval[7] = thisLevel->py >> 8;
340         m_cval[0] = thisLevel->sx & 0xff;
341         m_cval[1] = thisLevel->sx >> 8;
342         m_cval[2] = thisLevel->sy & 0xff;
343         m_cval[3] = thisLevel->sy >> 8;
344         m_cval[4] = thisLevel->px & 0xff;
345         m_cval[5] = thisLevel->px >> 8;
346         m_cval[6] = thisLevel->py & 0xff;
347         m_cval[7] = thisLevel->py >> 8;
351348
352349         // Restart position found ok
353         state->m_restart_status = 0;
350         m_restart_status = 0;
354351
355352         return;
356353      }
r21156r21157
359356   }
360357
361358   // No restart position found for this position (cval0-7 confirmed unchanged in this case)
362   state->m_restart_status = 0xff;
359   m_restart_status = 0xff;
363360}
364361
365362
r21156r21157
369366 *
370367 *************************************/
371368
372WRITE16_HANDLER( bonzeadv_cchip_ctrl_w )
369WRITE16_MEMBER(asuka_state::bonzeadv_cchip_ctrl_w)
373370{
374371   /* value 2 is written here */
375372}
376373
377WRITE16_HANDLER( bonzeadv_cchip_bank_w )
374WRITE16_MEMBER(asuka_state::bonzeadv_cchip_bank_w)
378375{
379   asuka_state *state = space.machine().driver_data<asuka_state>();
380   state->m_current_bank = data & 7;
376   m_current_bank = data & 7;
381377}
382378
383WRITE16_HANDLER( bonzeadv_cchip_ram_w )
379WRITE16_MEMBER(asuka_state::bonzeadv_cchip_ram_w)
384380{
385   asuka_state *state = space.machine().driver_data<asuka_state>();
386
387381//  if (space.device().safe_pc()!=0xa028)
388382//  logerror("%08x:  write %04x %04x cchip\n", space.device().safe_pc(), offset, data);
389383
390   if (state->m_current_bank == 0)
384   if (m_current_bank == 0)
391385   {
392386      if (offset == 0x08)
393387      {
394         state->m_cc_port = data;
388         m_cc_port = data;
395389
396         coin_lockout_w(space.machine(), 1, data & 0x80);
397         coin_lockout_w(space.machine(), 0, data & 0x40);
398         coin_counter_w(space.machine(), 1, data & 0x20);
399         coin_counter_w(space.machine(), 0, data & 0x10);
390         coin_lockout_w(machine(), 1, data & 0x80);
391         coin_lockout_w(machine(), 0, data & 0x40);
392         coin_counter_w(machine(), 1, data & 0x20);
393         coin_counter_w(machine(), 0, data & 0x10);
400394      }
401395
402396      if (offset == 0x0e && data != 0x00)
403397      {
404         WriteRestartPos(space.machine(), state->m_current_round);
398         WriteRestartPos(m_current_round);
405399      }
406400
407401      if (offset == 0x0f && data != 0x00)
408402      {
409         WriteLevelData(space.machine());
403         WriteLevelData();
410404      }
411405
412406      if (offset == 0x10)
413407      {
414         state->m_current_round = data;
408         m_current_round = data;
415409      }
416410
417411      if (offset >= 0x11 && offset <= 0x2a)
418412      {
419         state->m_cval[offset - 0x11] = data;
413         m_cval[offset - 0x11] = data;
420414      }
421415   }
422416}
r21156r21157
427421 *
428422 *************************************/
429423
430READ16_HANDLER( bonzeadv_cchip_ctrl_r )
424READ16_MEMBER(asuka_state::bonzeadv_cchip_ctrl_r)
431425{
432426   /*
433427       Bit 2 = Error signal
r21156r21157
436430   return 0x01; /* Return 0x05 for C-Chip error */
437431}
438432
439READ16_HANDLER( bonzeadv_cchip_ram_r )
433READ16_MEMBER(asuka_state::bonzeadv_cchip_ram_r)
440434{
441   asuka_state *state = space.machine().driver_data<asuka_state>();
442
443435//  logerror("%08x:  read %04x cchip\n", space.device().safe_pc(), offset);
444436
445   if (state->m_current_bank == 0)
437   if (m_current_bank == 0)
446438   {
447439      switch (offset)
448440      {
449      case 0x03: return state->ioport("800007")->read();    /* STARTn + SERVICE1 */
450      case 0x04: return state->ioport("800009")->read();    /* COINn */
451      case 0x05: return state->ioport("80000B")->read();    /* Player controls + TILT */
452      case 0x06: return state->ioport("80000D")->read();    /* Player controls (cocktail) */
453      case 0x08: return state->m_cc_port;
441      case 0x03: return ioport("800007")->read();    /* STARTn + SERVICE1 */
442      case 0x04: return ioport("800009")->read();    /* COINn */
443      case 0x05: return ioport("80000B")->read();    /* Player controls + TILT */
444      case 0x06: return ioport("80000D")->read();    /* Player controls (cocktail) */
445      case 0x08: return m_cc_port;
454446      }
455447
456448      if (offset == 0x0e)
457449      {
458         return state->m_restart_status; /* 0xff signals error, 0 signals ok */
450         return m_restart_status; /* 0xff signals error, 0 signals ok */
459451      }
460452
461453      if (offset >= 0x11 && offset <= 0x2a)
462454      {
463         return state->m_cval[offset - 0x11];
455         return m_cval[offset - 0x11];
464456      }
465457   }
466458
trunk/src/mame/video/fastfred.c
r21156r21157
113113 *
114114 *************************************/
115115
116WRITE8_HANDLER( fastfred_videoram_w )
117{
118   fastfred_state *state = space.machine().driver_data<fastfred_state>();
119   state->m_videoram[offset] = data;
120   state->m_bg_tilemap->mark_tile_dirty(offset);
116WRITE8_MEMBER(fastfred_state::fastfred_videoram_w )
117{   
118   m_videoram[offset] = data;
119   m_bg_tilemap->mark_tile_dirty(offset);
121120}
122121
123122
124WRITE8_HANDLER( fastfred_attributes_w )
123WRITE8_MEMBER(fastfred_state::fastfred_attributes_w )
125124{
126   fastfred_state *state = space.machine().driver_data<fastfred_state>();
127   if (state->m_attributesram[offset] != data)
125   if (m_attributesram[offset] != data)
128126   {
129127      if (offset & 0x01)
130128      {
r21156r21157
132130         int i;
133131
134132         for (i = offset / 2; i < 0x0400; i += 32)
135            state->m_bg_tilemap->mark_tile_dirty(i);
133            m_bg_tilemap->mark_tile_dirty(i);
136134      }
137135      else
138136      {
139137         /* coloumn scroll */
140         state->m_bg_tilemap->set_scrolly(offset / 2, data);
138         m_bg_tilemap->set_scrolly(offset / 2, data);
141139      }
142140
143      state->m_attributesram[offset] = data;
141      m_attributesram[offset] = data;
144142   }
145143}
146144
147145
148WRITE8_HANDLER( fastfred_charbank1_w )
146WRITE8_MEMBER(fastfred_state::fastfred_charbank1_w )
149147{
150   fastfred_state *state = space.machine().driver_data<fastfred_state>();
151   UINT16 new_data = (state->m_charbank & 0x0200) | ((data & 0x01) << 8);
148   UINT16 new_data = (m_charbank & 0x0200) | ((data & 0x01) << 8);
152149
153   if (new_data != state->m_charbank)
150   if (new_data != m_charbank)
154151   {
155      state->m_bg_tilemap->mark_all_dirty();
152      m_bg_tilemap->mark_all_dirty();
156153
157      state->m_charbank = new_data;
154      m_charbank = new_data;
158155   }
159156}
160157
161WRITE8_HANDLER( fastfred_charbank2_w )
158WRITE8_MEMBER(fastfred_state::fastfred_charbank2_w )
162159{
163   fastfred_state *state = space.machine().driver_data<fastfred_state>();
164   UINT16 new_data = (state->m_charbank & 0x0100) | ((data & 0x01) << 9);
160   UINT16 new_data = (m_charbank & 0x0100) | ((data & 0x01) << 9);
165161
166   if (new_data != state->m_charbank)
162   if (new_data != m_charbank)
167163   {
168      state->m_bg_tilemap->mark_all_dirty();
164      m_bg_tilemap->mark_all_dirty();
169165
170      state->m_charbank = new_data;
166      m_charbank = new_data;
171167   }
172168}
173169
174170
175WRITE8_HANDLER( fastfred_colorbank1_w )
171WRITE8_MEMBER(fastfred_state::fastfred_colorbank1_w )
176172{
177   fastfred_state *state = space.machine().driver_data<fastfred_state>();
178   UINT8 new_data = (state->m_colorbank & 0x10) | ((data & 0x01) << 3);
173   UINT8 new_data = (m_colorbank & 0x10) | ((data & 0x01) << 3);
179174
180   if (new_data != state->m_colorbank)
175   if (new_data != m_colorbank)
181176   {
182      state->m_bg_tilemap->mark_all_dirty();
177      m_bg_tilemap->mark_all_dirty();
183178
184      state->m_colorbank = new_data;
179      m_colorbank = new_data;
185180   }
186181}
187182
188WRITE8_HANDLER( fastfred_colorbank2_w )
183WRITE8_MEMBER(fastfred_state::fastfred_colorbank2_w )
189184{
190   fastfred_state *state = space.machine().driver_data<fastfred_state>();
191   UINT8 new_data = (state->m_colorbank & 0x08) | ((data & 0x01) << 4);
185   UINT8 new_data = (m_colorbank & 0x08) | ((data & 0x01) << 4);
192186
193   if (new_data != state->m_colorbank)
187   if (new_data != m_colorbank)
194188   {
195      state->m_bg_tilemap->mark_all_dirty();
189      m_bg_tilemap->mark_all_dirty();
196190
197      state->m_colorbank = new_data;
191      m_colorbank = new_data;
198192   }
199193}
200194
201195
202196
203WRITE8_HANDLER( fastfred_flip_screen_x_w )
197WRITE8_MEMBER(fastfred_state::fastfred_flip_screen_x_w )
204198{
205   fastfred_state *state = space.machine().driver_data<fastfred_state>();
206   if (state->flip_screen_x() != (data & 0x01))
199   if (flip_screen_x() != (data & 0x01))
207200   {
208      state->flip_screen_x_set(data & 0x01);
201      flip_screen_x_set(data & 0x01);
209202
210      state->m_bg_tilemap->set_flip((state->flip_screen_x() ? TILEMAP_FLIPX : 0) | (state->flip_screen_y() ? TILEMAP_FLIPY : 0));
203      m_bg_tilemap->set_flip((flip_screen_x() ? TILEMAP_FLIPX : 0) | (flip_screen_y() ? TILEMAP_FLIPY : 0));
211204   }
212205}
213206
214WRITE8_HANDLER( fastfred_flip_screen_y_w )
207WRITE8_MEMBER(fastfred_state::fastfred_flip_screen_y_w )
215208{
216   fastfred_state *state = space.machine().driver_data<fastfred_state>();
217   if (state->flip_screen_y() != (data & 0x01))
209   if (flip_screen_y() != (data & 0x01))
218210   {
219      state->flip_screen_y_set(data & 0x01);
211      flip_screen_y_set(data & 0x01);
220212
221      state->m_bg_tilemap->set_flip((state->flip_screen_x() ? TILEMAP_FLIPX : 0) | (state->flip_screen_y() ? TILEMAP_FLIPY : 0));
213      m_bg_tilemap->set_flip((flip_screen_x() ? TILEMAP_FLIPX : 0) | (flip_screen_y() ? TILEMAP_FLIPY : 0));
222214   }
223215}
224216
r21156r21157
325317   SET_TILE_INFO_MEMBER(3, tile_index & 0x1ff, 0, 0);
326318}
327319
328WRITE8_HANDLER( imago_fg_videoram_w )
320WRITE8_MEMBER(fastfred_state::imago_fg_videoram_w )
329321{
330   fastfred_state *state = space.machine().driver_data<fastfred_state>();
331   state->m_imago_fg_videoram[offset] = data;
332   state->m_fg_tilemap->mark_tile_dirty(offset);
322   m_imago_fg_videoram[offset] = data;
323   m_fg_tilemap->mark_tile_dirty(offset);
333324}
334325
335WRITE8_HANDLER( imago_charbank_w )
326WRITE8_MEMBER(fastfred_state::imago_charbank_w )
336327{
337   fastfred_state *state = space.machine().driver_data<fastfred_state>();
338   if( state->m_charbank != data )
328   if( m_charbank != data )
339329   {
340      state->m_charbank = data;
341      state->m_bg_tilemap->mark_all_dirty();
330      m_charbank = data;
331      m_bg_tilemap->mark_all_dirty();
342332   }
343333}
344334
trunk/src/mame/includes/copsnrob.h
r21156r21157
4040   UINT32 screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4141};
4242
43/*----------- defined in machine/copsnrob.c -----------*/
44DECLARE_READ8_HANDLER( copsnrob_gun_position_r );
45
4643/*----------- defined in audio/copsnrob.c -----------*/
4744DISCRETE_SOUND_EXTERN( copsnrob );
trunk/src/mame/includes/spbactn.h
r21156r21157
5959   int draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool alt_sprites);
6060
6161   // temp hack
62   DECLARE_READ16_HANDLER(temp_read_handler_r)
62   DECLARE_READ16_MEMBER(temp_read_handler_r)
6363   {
6464      return 0xffff;
6565   }
trunk/src/mame/includes/fastfred.h
r21156r21157
6666   INTERRUPT_GEN_MEMBER(vblank_irq);
6767   INTERRUPT_GEN_MEMBER(sound_timer_irq);
6868   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
69};
69   DECLARE_WRITE8_MEMBER(fastfred_videoram_w);
70   DECLARE_WRITE8_MEMBER(fastfred_attributes_w);
71   DECLARE_WRITE8_MEMBER(fastfred_charbank1_w);
72   DECLARE_WRITE8_MEMBER(fastfred_charbank2_w);
73   DECLARE_WRITE8_MEMBER(fastfred_colorbank1_w);
74   DECLARE_WRITE8_MEMBER(fastfred_colorbank2_w);
75   DECLARE_WRITE8_MEMBER(fastfred_flip_screen_x_w);
76   DECLARE_WRITE8_MEMBER(fastfred_flip_screen_y_w);
7077
71/*----------- defined in video/fastfred.c -----------*/
72
73DECLARE_WRITE8_HANDLER( fastfred_videoram_w );
74DECLARE_WRITE8_HANDLER( fastfred_attributes_w );
75DECLARE_WRITE8_HANDLER( fastfred_charbank1_w );
76DECLARE_WRITE8_HANDLER( fastfred_charbank2_w );
77DECLARE_WRITE8_HANDLER( fastfred_colorbank1_w );
78DECLARE_WRITE8_HANDLER( fastfred_colorbank2_w );
79DECLARE_WRITE8_HANDLER( fastfred_flip_screen_x_w );
80DECLARE_WRITE8_HANDLER( fastfred_flip_screen_y_w );
81
82DECLARE_WRITE8_HANDLER( imago_fg_videoram_w );
83DECLARE_WRITE8_HANDLER( imago_charbank_w );
78   DECLARE_WRITE8_MEMBER(imago_fg_videoram_w);
79   DECLARE_WRITE8_MEMBER(imago_charbank_w);   
80};
trunk/src/mame/includes/actfancr.h
r21156r21157
3737   void register_savestate(  );
3838};
3939
40
41/*----------- defined in video/actfancr.c -----------*/
42
43DECLARE_WRITE8_HANDLER( actfancr_pf1_data_w );
44DECLARE_READ8_HANDLER( actfancr_pf1_data_r );
45DECLARE_WRITE8_HANDLER( actfancr_pf1_control_w );
46DECLARE_WRITE8_HANDLER( actfancr_pf2_data_w );
47DECLARE_READ8_HANDLER( actfancr_pf2_data_r );
48DECLARE_WRITE8_HANDLER( actfancr_pf2_control_w );
trunk/src/mame/includes/dec8.h
r21156r21157
135135   TIMER_CALLBACK_MEMBER(dec8_i8751_timer_callback);
136136   void srdarwin_draw_sprites(  bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
137137};
138
139/*----------- defined in video/dec8.c -----------*/
140DECLARE_WRITE8_HANDLER( dec8_bac06_0_w );
141DECLARE_WRITE8_HANDLER( dec8_bac06_1_w );
142DECLARE_WRITE8_HANDLER( dec8_pf1_data_w );
143DECLARE_READ8_HANDLER( dec8_pf1_data_r );
trunk/src/mame/includes/galivan.h
r21156r21157
6060   UINT32 screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6161   void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
6262};
63
64/*----------- defined in video/galivan.c -----------*/
65
66DECLARE_WRITE8_HANDLER( ninjemak_scrollx_w );
67DECLARE_WRITE8_HANDLER( ninjemak_scrolly_w );
trunk/src/mame/includes/asuka.h
r21156r21157
5252   void screen_eof_asuka(screen_device &screen, bool state);
5353   INTERRUPT_GEN_MEMBER(cadash_interrupt);
5454   TIMER_CALLBACK_MEMBER(cadash_interrupt5);
55   
56   /*----------- defined in machine/bonzeadv.c -----------*/
57   void WriteLevelData();
58   void WriteRestartPos(int level );
59
60   DECLARE_READ16_MEMBER( bonzeadv_cchip_ctrl_r );
61   DECLARE_READ16_MEMBER( bonzeadv_cchip_ram_r );
62   DECLARE_WRITE16_MEMBER( bonzeadv_cchip_ctrl_w );
63   DECLARE_WRITE16_MEMBER( bonzeadv_cchip_bank_w );
64   DECLARE_WRITE16_MEMBER( bonzeadv_cchip_ram_w );   
5565};
56
57/*----------- defined in machine/bonzeadv.c -----------*/
58
59DECLARE_READ16_HANDLER( bonzeadv_cchip_ctrl_r );
60DECLARE_READ16_HANDLER( bonzeadv_cchip_ram_r );
61DECLARE_WRITE16_HANDLER( bonzeadv_cchip_ctrl_w );
62DECLARE_WRITE16_HANDLER( bonzeadv_cchip_bank_w );
63DECLARE_WRITE16_HANDLER( bonzeadv_cchip_ram_w );
trunk/src/mame/includes/nmk16.h
r21156r21157
7070   DECLARE_WRITE8_MEMBER(okibank_w);
7171   DECLARE_WRITE8_MEMBER(raphero_sound_rombank_w);
7272   DECLARE_READ16_MEMBER(vandykeb_r);
73   DECLARE_READ16_HANDLER(tdragonb_prot_r);
73   DECLARE_READ16_MEMBER(tdragonb_prot_r);
7474   DECLARE_READ16_MEMBER(afega_unknown_r);
7575   DECLARE_WRITE16_MEMBER(afega_scroll0_w);
7676   DECLARE_WRITE16_MEMBER(afega_scroll1_w);
trunk/src/mame/includes/deco32.h
r21156r21157
154154   void dragngun_draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT32 *spritedata);
155155};
156156
157/*----------- defined in video/deco32.c -----------*/
158DECLARE_WRITE32_HANDLER( deco32_pf1_data_w );
159DECLARE_WRITE32_HANDLER( deco32_pf2_data_w );
160DECLARE_WRITE32_HANDLER( deco32_pf3_data_w );
161DECLARE_WRITE32_HANDLER( deco32_pf4_data_w );
trunk/src/mame/includes/dec0.h
r21156r21157
115115   UINT32 screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
116116   UINT32 screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117117};
118
119/*----------- defined in machine/dec0.c -----------*/
120
121DECLARE_READ16_HANDLER( slyspy_controls_r );
122
123extern void dec0_i8751_write(running_machine &machine, int data);
124extern void dec0_i8751_reset(running_machine &machine);
trunk/src/mame/drivers/asuka.c
r21156r21157
320320   AM_RANGE(0x3d0000, 0x3d0001) AM_READNOP
321321   AM_RANGE(0x3e0000, 0x3e0001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
322322   AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
323   AM_RANGE(0x800000, 0x8007ff) AM_READWRITE_LEGACY(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
324   AM_RANGE(0x800802, 0x800803) AM_READWRITE_LEGACY(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
325   AM_RANGE(0x800c00, 0x800c01) AM_WRITE_LEGACY(bonzeadv_cchip_bank_w)
323   AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
324   AM_RANGE(0x800802, 0x800803) AM_READWRITE(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
325   AM_RANGE(0x800c00, 0x800c01) AM_WRITE(bonzeadv_cchip_bank_w)
326326   AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w)    /* tilemaps */
327327   AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
328328   AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE_LEGACY("pc090oj", pc090oj_word_r, pc090oj_word_w)  /* sprite ram */
trunk/src/mame/drivers/fastfred.c
r21156r21157
173173static ADDRESS_MAP_START( fastfred_map, AS_PROGRAM, 8, fastfred_state )
174174   AM_RANGE(0x0000, 0xbfff) AM_ROM
175175   AM_RANGE(0xc000, 0xc7ff) AM_RAM
176   AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
177   AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
176   AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
177   AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
178178   AM_RANGE(0xd840, 0xd85f) AM_RAM AM_SHARE("spriteram")
179179   AM_RANGE(0xd860, 0xdbff) AM_RAM // Unused, but initialized
180180   AM_RANGE(0xe000, 0xe000) AM_READ_PORT("BUTTONS") AM_WRITEONLY AM_SHARE("bgcolor")
181181   AM_RANGE(0xe800, 0xe800) AM_READ_PORT("JOYS")
182182   AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW") AM_WRITENOP
183183   AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
184   AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
185   AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
186   AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(fastfred_charbank1_w)
187   AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(fastfred_charbank2_w)
188   AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
189   AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
190   AM_RANGE(0xf116, 0xf116) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
191   AM_RANGE(0xf117, 0xf117) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
184   AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
185   AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
186   AM_RANGE(0xf004, 0xf004) AM_WRITE(fastfred_charbank1_w)
187   AM_RANGE(0xf005, 0xf005) AM_WRITE(fastfred_charbank2_w)
188   AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
189   AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
190   AM_RANGE(0xf116, 0xf116) AM_WRITE(fastfred_flip_screen_x_w)
191   AM_RANGE(0xf117, 0xf117) AM_WRITE(fastfred_flip_screen_y_w)
192192   AM_RANGE(0xf800, 0xf800) AM_READWRITE(watchdog_reset_r, soundlatch_byte_w)
193193ADDRESS_MAP_END
194194
r21156r21157
196196static ADDRESS_MAP_START( jumpcoas_map, AS_PROGRAM, 8, fastfred_state )
197197   AM_RANGE(0x0000, 0x7fff) AM_ROM
198198   AM_RANGE(0xc000, 0xc7ff) AM_RAM
199   AM_RANGE(0xd000, 0xd03f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
199   AM_RANGE(0xd000, 0xd03f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
200200   AM_RANGE(0xd040, 0xd05f) AM_RAM AM_SHARE("spriteram")
201201   AM_RANGE(0xd060, 0xd3ff) AM_RAM
202   AM_RANGE(0xd800, 0xdbff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
202   AM_RANGE(0xd800, 0xdbff) AM_MIRROR(0x400) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
203203   AM_RANGE(0xe000, 0xe000) AM_WRITEONLY AM_SHARE("bgcolor")
204204   AM_RANGE(0xe800, 0xe800) AM_READ_PORT("DSW1")
205205   AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSW2")
r21156r21157
207207   AM_RANGE(0xe803, 0xe803) AM_READ_PORT("JOYS")
208208   AM_RANGE(0xf000, 0xf000) AM_WRITENOP // Unused, but initialized
209209   AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
210   AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
211   AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
212   AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(fastfred_charbank1_w)
213   AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(fastfred_charbank2_w)
214   AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
215   AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
216   AM_RANGE(0xf116, 0xf116) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
217   AM_RANGE(0xf117, 0xf117) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
210   AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
211   AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
212   AM_RANGE(0xf004, 0xf004) AM_WRITE(fastfred_charbank1_w)
213   AM_RANGE(0xf005, 0xf005) AM_WRITE(fastfred_charbank2_w)
214   AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
215   AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
216   AM_RANGE(0xf116, 0xf116) AM_WRITE(fastfred_flip_screen_x_w)
217   AM_RANGE(0xf117, 0xf117) AM_WRITE(fastfred_flip_screen_y_w)
218218   //AM_RANGE(0xf800, 0xf800) AM_READ(watchdog_reset_r)  // Why doesn't this work???
219219   AM_RANGE(0xf800, 0xf801) AM_READNOP AM_DEVWRITE_LEGACY("ay8910.1", ay8910_address_data_w)
220220ADDRESS_MAP_END
r21156r21157
227227   AM_RANGE(0xb000, 0xb3ff) AM_RAM // same fg videoram (which one of the 2 is really used?)
228228   AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(imago_sprites_dma_w)
229229   AM_RANGE(0xc000, 0xc7ff) AM_RAM
230   AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE_LEGACY(imago_fg_videoram_w) AM_SHARE("imago_fg_vram")
231   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE_LEGACY(fastfred_videoram_w) AM_SHARE("videoram")
232   AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE_LEGACY(fastfred_attributes_w) AM_SHARE("attributesram")
230   AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(imago_fg_videoram_w) AM_SHARE("imago_fg_vram")
231   AM_RANGE(0xd000, 0xd3ff) AM_RAM_WRITE(fastfred_videoram_w) AM_SHARE("videoram")
232   AM_RANGE(0xd800, 0xd83f) AM_RAM_WRITE(fastfred_attributes_w) AM_SHARE("attributesram")
233233   AM_RANGE(0xd840, 0xd85f) AM_RAM AM_SHARE("spriteram")
234234   AM_RANGE(0xd860, 0xd8ff) AM_RAM // Unused, but initialized
235235   AM_RANGE(0xe000, 0xe000) AM_READ_PORT("BUTTONS")
236236   AM_RANGE(0xe800, 0xe800) AM_READ_PORT("JOYS")
237237   AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW") AM_WRITENOP // writes 1 when level starts, 0 when game over
238238   AM_RANGE(0xf001, 0xf001) AM_WRITE(nmi_mask_w)
239   AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(fastfred_colorbank1_w)
240   AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(fastfred_colorbank2_w)
239   AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
240   AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
241241   AM_RANGE(0xf004, 0xf004) AM_WRITE(imago_dma_irq_w)
242   AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(imago_charbank_w)
243   AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(fastfred_flip_screen_x_w)
244   AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(fastfred_flip_screen_y_w)
242   AM_RANGE(0xf005, 0xf005) AM_WRITE(imago_charbank_w)
243   AM_RANGE(0xf006, 0xf006) AM_WRITE(fastfred_flip_screen_x_w)
244   AM_RANGE(0xf007, 0xf007) AM_WRITE(fastfred_flip_screen_y_w)
245245   AM_RANGE(0xf400, 0xf400) AM_WRITENOP // writes 0 or 2
246246   AM_RANGE(0xf401, 0xf401) AM_WRITE(imago_sprites_bank_w)
247247   AM_RANGE(0xf800, 0xf800) AM_READNOP AM_WRITE(soundlatch_byte_w)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team