Previous 199869 Revisions Next

r32521 Saturday 4th October, 2014 at 06:25:00 UTC by Osso
misc drivers: Moved functions into driver class, cleanups (nw)
[src/mame/drivers]bfm_sc4.c bmcbowl.c coolpool.c exterm.c famibox.c vega.c warpsped.c
[src/mame/includes]bfm_sc45.h cischeat.h coolpool.h exterm.h grchamp.h vendetta.h
[src/mame/machine]gaelco3d.c
[src/mame/video]cischeat.c grchamp.c

trunk/src/mame/drivers/famibox.c
r32520r32521
120120   UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
121121   TIMER_CALLBACK_MEMBER(famicombox_attract_timer_callback);
122122   TIMER_CALLBACK_MEMBER(famicombox_gameplay_timer_callback);
123   void set_mirroring(famibox_state *state, int mirroring);
123   void set_mirroring(int mirroring);
124124   void famicombox_bankswitch(UINT8 bank);
125125   void famicombox_reset();
126126   void ppu_irq(int *ppu_regs);
r32520r32521
133133*******************************************************/
134134
135135#if 0
136void famibox_state::set_mirroring(famibox_state *state, int mirroring)
136void famibox_state::set_mirroring(int mirroring)
137137{
138138   switch(mirroring)
139139   {
trunk/src/mame/drivers/bfm_sc4.c
r32520r32521
6565   return true;
6666}
6767
68void find_mbus(sc4_state *state, UINT16* rom)
68void sc4_state::find_mbus(UINT16* rom)
6969{
7070   for (int i=0;i<(0x100000-0x40)/2;i++)
7171   {
r32520r32521
7474      if (found==true)
7575      {
7676         printf("x found at %08x\n", i*2);
77         state->m_chk41addr = i*2;
77         m_chk41addr = i*2;
7878      }
7979   }
8080}
r32520r32521
144144{
145145   DRIVER_INIT_CALL(sc4);
146146   UINT16 *rom = (UINT16 *)memregion("maincpu")->base();
147   find_mbus(this, rom);
147   find_mbus(rom);
148148}
149149
150150
trunk/src/mame/drivers/warpsped.c
r32520r32521
9191public:
9292   warpspeed_state(const machine_config &mconfig, device_type type, const char *tag)
9393      : driver_device(mconfig, type, tag),
94      m_maincpu(*this, "maincpu"),
95      m_gfxdecode(*this, "gfxdecode"),
9496      m_videoram(*this, "videoram"),
95      m_workram(*this, "workram"),
96      m_maincpu(*this, "maincpu"),
97      m_gfxdecode(*this, "gfxdecode") { }
97      m_workram(*this, "workram") { }
9898
99   required_device<cpu_device> m_maincpu;
100   required_device<gfxdecode_device> m_gfxdecode;
101   
99102   required_shared_ptr<UINT8> m_videoram;
103   required_shared_ptr<UINT8> m_workram;
104   
100105   tilemap_t   *m_text_tilemap;
101106   tilemap_t   *m_starfield_tilemap;
102   required_shared_ptr<UINT8> m_workram;
103107   UINT8       m_regs[0x28];
104108   DECLARE_WRITE8_MEMBER(warpspeed_hardware_w);
105109   DECLARE_WRITE8_MEMBER(warpspeed_vidram_w);
r32520r32521
109113   virtual void video_start();
110114   DECLARE_PALETTE_INIT(warpspeed);
111115   UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112   required_device<cpu_device> m_maincpu;
113   required_device<gfxdecode_device> m_gfxdecode;
116   void draw_circles(bitmap_ind16 &bitmap);
114117};
115118
116119WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w)
r32520r32521
192195   }
193196}
194197
195static void warpspeed_draw_circles(bitmap_ind16 &bitmap, warpspeed_state *state)
198void warpspeed_state::draw_circles(bitmap_ind16 &bitmap)
196199{
197200   for (int i = 0; i < 4; i++)
198201   {
199      UINT16 radius = state->m_regs[i*8] + state->m_regs[i*8 + 1]*256;
202      UINT16 radius = m_regs[i*8] + m_regs[i*8 + 1]*256;
200203      radius = 0xffff - radius;
201204      radius = sqrt((float)radius);
202      INT16 midx = state->m_regs[i*8 + 2] + state->m_regs[i*8 + 3]*256;
205      INT16 midx = m_regs[i*8 + 2] + m_regs[i*8 + 3]*256;
203206      midx -= 0xe70;
204      INT16 midy = state->m_regs[i*8 + 4] + state->m_regs[i*8 + 5]*256;
207      INT16 midy = m_regs[i*8 + 4] + m_regs[i*8 + 5]*256;
205208      midy -= 0xe70;
206209      if ( radius == 0 || radius == 0xffff )
207210      {
208211         continue;
209212      }
210      warpspeed_draw_circle(bitmap, midx + 128 + 16, midy + 128 + 16, radius, (state->m_regs[i*8 + 6] & 0x07) + 2);
213      warpspeed_draw_circle(bitmap, midx + 128 + 16, midy + 128 + 16, radius, (m_regs[i*8 + 6] & 0x07) + 2);
211214   }
212215}
213216
214217UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
215218{
216219   m_starfield_tilemap->draw(screen, bitmap, cliprect, 0, 0);
217   warpspeed_draw_circles(bitmap, this);
220   draw_circles(bitmap);
218221   m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0);
219222   return 0;
220223}
trunk/src/mame/drivers/bmcbowl.c
r32520r32521
141141   virtual void machine_reset();
142142   virtual void video_start();
143143   UINT32 screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144   void init_stats(const UINT8 *table, int table_len, int address);
144145};
145146
146147
r32520r32521
285286};
286287
287288
288static void init_stats(bmcbowl_state *state, const UINT8 *table, int table_len, int address)
289void bmcbowl_state::init_stats(const UINT8 *table, int table_len, int address)
289290{
290   int i;
291   for (i=0; i<table_len; i++)
292      state->m_stats_ram[address+2*i]=table[i];
291   for (int i = 0; i < table_len; i++)
292      m_stats_ram[address+2*i]=table[i];
293293}
294294#endif
295295
r32520r32521
299299   for (int i = 0; i < m_stats_ram.bytes(); i++)
300300      m_stats_ram[i] = 0xff;
301301
302   init_stats(this,bmc_nv1,ARRAY_LENGTH(bmc_nv1),0);
303   init_stats(this,bmc_nv2,ARRAY_LENGTH(bmc_nv2),0x3b0);
304   init_stats(this,bmc_nv3,ARRAY_LENGTH(bmc_nv3),0xfe2);
302   init_stats(bmc_nv1,ARRAY_LENGTH(bmc_nv1),0);
303   init_stats(bmc_nv2,ARRAY_LENGTH(bmc_nv2),0x3b0);
304   init_stats(bmc_nv3,ARRAY_LENGTH(bmc_nv3),0xfe2);
305305#endif
306306}
307307
trunk/src/mame/drivers/vega.c
r32520r32521
160160   virtual void machine_start();
161161   virtual void machine_reset();
162162   DECLARE_PALETTE_INIT(vega);
163   void draw_tilemap(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect);
163164   UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
164165};
165166
r32520r32521
489490}
490491
491492
492static void draw_tilemap(vega_state *state, screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect)
493void vega_state::draw_tilemap(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect)
493494{
494495   {
495   UINT8 *map_lookup = state->memregion("tilemaps")->base();
496   UINT8 *map_lookup = memregion("tilemaps")->base();
496497
497   int offset_y=state->m_tilemap_offset_y;
498   int offset_x=state->m_tilemap_offset_x;
498   int offset_y=m_tilemap_offset_y;
499   int offset_x=m_tilemap_offset_x;
499500
500501   //logerror("%d  %d\n",offset_x, offset_y);
501502
r32520r32521
507508         int y0=yy*32;
508509
509510
510         int id=map_lookup[((yy+xx*8)+  ((state->m_tilemap_flags&2)?0x400:0) + (state->m_tilemap_top<<6 )  )  &0x7ff];
511         int id=map_lookup[((yy+xx*8)+  ((m_tilemap_flags&2)?0x400:0) + (m_tilemap_top<<6 )  )  &0x7ff];
511512
512513         int flip=BIT(id,5);
513514
r32520r32521
528529            {
529530               //for(int x=0;x<4;++x)
530531               {
531                  state->m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 1,flip?1:0,  x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0);
532                  m_gfxdecode->gfx(1)->transpen(bitmap,cliprect, num, 0, 1,flip?1:0,  x*4+x0-offset_x, (flip?(3-y):y)*8+y0-offset_y, 0);
532533                  ++num;
533534               }
534535            }
r32520r32521
550551
551552   bitmap.fill(0, cliprect);
552553
553   draw_tilemap(this, screen, bitmap, cliprect);
554   draw_tilemap(screen, bitmap, cliprect);
554555
555556
556557   {
trunk/src/mame/drivers/coolpool.c
r32520r32521
291291   return data;
292292}
293293
294static int amerdart_trackball_direction(address_space &space, int num, int data)
294int coolpool_state::amerdart_trackball_direction(int num, int data)
295295{
296   coolpool_state *state = space.machine().driver_data<coolpool_state>();
297
298296   UINT16 result_x = (data & 0x0c) >> 2;
299297   UINT16 result_y = (data & 0x03) >> 0;
300298
301299
302   if ((state->m_dx[num] == 0) && (state->m_dy[num] < 0)) {        /* Up */
303      state->m_oldy[num]--;
300   if ((m_dx[num] == 0) && (m_dy[num] < 0)) {        /* Up */
301      m_oldy[num]--;
304302      result_x = amerdart_trackball_inc(result_x);
305303      result_y = amerdart_trackball_inc(result_y);
306304   }
307   if ((state->m_dx[num] == 0) && (state->m_dy[num] > 0)) {        /* Down */
308      state->m_oldy[num]++;
305   if ((m_dx[num] == 0) && (m_dy[num] > 0)) {        /* Down */
306      m_oldy[num]++;
309307      result_x = amerdart_trackball_dec(result_x);
310308      result_y = amerdart_trackball_dec(result_y);
311309   }
312   if ((state->m_dx[num] < 0) && (state->m_dy[num] == 0)) {        /* Left */
313      state->m_oldx[num]--;
310   if ((m_dx[num] < 0) && (m_dy[num] == 0)) {        /* Left */
311      m_oldx[num]--;
314312      result_x = amerdart_trackball_inc(result_x);
315313      result_y = amerdart_trackball_dec(result_y);
316314   }
317   if ((state->m_dx[num] > 0) && (state->m_dy[num] == 0)) {        /* Right */
318      state->m_oldx[num]++;
315   if ((m_dx[num] > 0) && (m_dy[num] == 0)) {        /* Right */
316      m_oldx[num]++;
319317      result_x = amerdart_trackball_dec(result_x);
320318      result_y = amerdart_trackball_inc(result_y);
321319   }
322   if ((state->m_dx[num] < 0) && (state->m_dy[num] < 0)) {         /* Left & Up */
323      state->m_oldx[num]--;
324      state->m_oldy[num]--;
320   if ((m_dx[num] < 0) && (m_dy[num] < 0)) {         /* Left & Up */
321      m_oldx[num]--;
322      m_oldy[num]--;
325323      result_x = amerdart_trackball_inc(result_x);
326324   }
327   if ((state->m_dx[num] < 0) && (state->m_dy[num] > 0)) {         /* Left & Down */
328      state->m_oldx[num]--;
329      state->m_oldy[num]++;
325   if ((m_dx[num] < 0) && (m_dy[num] > 0)) {         /* Left & Down */
326      m_oldx[num]--;
327      m_oldy[num]++;
330328      result_y = amerdart_trackball_dec(result_y);
331329   }
332   if ((state->m_dx[num] > 0) && (state->m_dy[num] < 0)) {         /* Right & Up */
333      state->m_oldx[num]++;
334      state->m_oldy[num]--;
330   if ((m_dx[num] > 0) && (m_dy[num] < 0)) {         /* Right & Up */
331      m_oldx[num]++;
332      m_oldy[num]--;
335333      result_y = amerdart_trackball_inc(result_y);
336334   }
337   if ((state->m_dx[num] > 0) && (state->m_dy[num] > 0)) {         /* Right & Down */
338      state->m_oldx[num]++;
339      state->m_oldy[num]++;
335   if ((m_dx[num] > 0) && (m_dy[num] > 0)) {         /* Right & Down */
336      m_oldx[num]++;
337      m_oldy[num]++;
340338      result_x = amerdart_trackball_dec(result_x);
341339   }
342340
r32520r32521
398396   m_dy[2] = (INT8)(m_newy[2] - m_oldy[2]);
399397
400398   /* Determine Trackball 1 direction state */
401   m_result = (m_result & 0xf0ff) | (amerdart_trackball_direction(space, 1, ((m_result >>  8) & 0xf)) <<  8);
399   m_result = (m_result & 0xf0ff) | (amerdart_trackball_direction(1, ((m_result >>  8) & 0xf)) <<  8);
402400
403401   /* Determine Trackball 2 direction state */
404   m_result = (m_result & 0x0fff) | (amerdart_trackball_direction(space, 2, ((m_result >> 12) & 0xf)) << 12);
402   m_result = (m_result & 0x0fff) | (amerdart_trackball_direction(2, ((m_result >> 12) & 0xf)) << 12);
405403
406404
407405//  logerror("%08X:read port 6 (X=%02X Y=%02X oldX=%02X oldY=%02X oldRes=%04X Res=%04X)\n", space.device().safe_pc(), m_newx, m_newy, m_oldx, m_oldy, m_lastresult, m_result);
trunk/src/mame/drivers/exterm.c
r32520r32521
9595 *
9696 *************************************/
9797
98static UINT16 exterm_trackball_port_r(address_space &space, int which, UINT16 mem_mask)
98UINT16 exterm_state::exterm_trackball_port_r(int which, UINT16 mem_mask)
9999{
100   exterm_state *state = space.machine().driver_data<exterm_state>();
101100   UINT16 port;
102101
103102   /* Read the fake input port */
104   UINT8 trackball_pos = state->ioport(which ? "DIAL1" : "DIAL0")->read();
103   UINT8 trackball_pos = ioport(which ? "DIAL1" : "DIAL0")->read();
105104
106105   /* Calculate the change from the last position. */
107   UINT8 trackball_diff = state->m_trackball_old[which] - trackball_pos;
106   UINT8 trackball_diff = m_trackball_old[which] - trackball_pos;
108107
109108   /* Store the new position for the next comparision. */
110   state->m_trackball_old[which] = trackball_pos;
109   m_trackball_old[which] = trackball_pos;
111110
112111   /* Move the sign bit to the high bit of the 6-bit trackball count. */
113112   if (trackball_diff & 0x80)
114113      trackball_diff |= 0x20;
115114
116115   /* Keep adding the changes.  The counters will be reset later by a hardware write. */
117   state->m_aimpos[which] = (state->m_aimpos[which] + trackball_diff) & 0x3f;
116   m_aimpos[which] = (m_aimpos[which] + trackball_diff) & 0x3f;
118117
119118   /* Combine it with the standard input bits */
120   port = state->ioport(which ? "P2" : "P1")->read();
119   port = ioport(which ? "P2" : "P1")->read();
121120
122   return (port & 0xc0ff) | (state->m_aimpos[which] << 8);
121   return (port & 0xc0ff) | (m_aimpos[which] << 8);
123122}
124123
125124
126125READ16_MEMBER(exterm_state::exterm_input_port_0_r)
127126{
128   return exterm_trackball_port_r(space, 0, mem_mask);
127   return exterm_trackball_port_r(0, mem_mask);
129128}
130129
131130
132131READ16_MEMBER(exterm_state::exterm_input_port_1_r)
133132{
134   return exterm_trackball_port_r(space, 1, mem_mask);
133   return exterm_trackball_port_r(1, mem_mask);
135134}
136135
137136
trunk/src/mame/machine/gaelco3d.c
r32520r32521
209209   /* validate arguments */
210210   assert(strlen(tag()) < 20);
211211
212   /* clear out CIA structure, and copy the interface */
213   //memset(state, 0, sizeof(*state));
214   //m_device = device;
215
216212   m_irq_handler.resolve_safe();
217213   m_sync_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gaelco_serial_device::link_cb), this));
218214
trunk/src/mame/includes/vendetta.h
r32520r32521
3232      m_palette(*this, "palette") { }
3333
3434   /* memory pointers */
35   UINT8 *    m_ram;
3635   dynamic_array<UINT8> m_paletteram;
3736
3837   /* video-related */
trunk/src/mame/includes/exterm.h
r32520r32521
1111public:
1212   exterm_state(const machine_config &mconfig, device_type type, const char *tag)
1313      : driver_device(mconfig, type, tag),
14      m_master_videoram(*this, "master_videoram"),
15      m_slave_videoram(*this, "slave_videoram"),
1614      m_maincpu(*this, "maincpu"),
1715      m_audiocpu(*this, "audiocpu"),
1816      m_audioslave(*this, "audioslave"),
1917      m_slave(*this, "slave"),
20      m_dac(*this, "dac") { }
18      m_dac(*this, "dac"),
19      m_master_videoram(*this, "master_videoram"),
20      m_slave_videoram(*this, "slave_videoram") { }
2121
22   required_device<cpu_device> m_maincpu;
23   required_device<cpu_device> m_audiocpu;
24   required_device<cpu_device> m_audioslave;
25   required_device<tms34010_device> m_slave;
26   required_device<dac_device> m_dac;
27   
28   required_shared_ptr<UINT16> m_master_videoram;
29   required_shared_ptr<UINT16> m_slave_videoram;
30   
2231   UINT8 m_aimpos[2];
2332   UINT8 m_trackball_old[2];
2433   UINT8 m_master_sound_latch;
r32520r32521
2635   UINT8 m_sound_control;
2736   UINT8 m_dac_value[2];
2837   UINT16 m_last;
29   required_shared_ptr<UINT16> m_master_videoram;
30   required_shared_ptr<UINT16> m_slave_videoram;
38
3139   DECLARE_WRITE16_MEMBER(exterm_host_data_w);
3240   DECLARE_READ16_MEMBER(exterm_host_data_r);
3341   DECLARE_READ16_MEMBER(exterm_input_port_0_r);
r32520r32521
4957   TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg_master);
5058   TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg_slave);
5159   TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg_slave);
52   required_device<cpu_device> m_maincpu;
53   required_device<cpu_device> m_audiocpu;
54   required_device<cpu_device> m_audioslave;
55   required_device<tms34010_device> m_slave;
56   required_device<dac_device> m_dac;
60   UINT16 exterm_trackball_port_r(int which, UINT16 mem_mask);
5761};
trunk/src/mame/includes/coolpool.h
r32520r32521
7676   TIMER_DEVICE_CALLBACK_MEMBER(nvram_write_timeout);
7777   TIMER_DEVICE_CALLBACK_MEMBER(amerdart_audio_int_gen);
7878   void register_state_save();
79   int amerdart_trackball_direction(int num, int data);
7980};
trunk/src/mame/includes/cischeat.h
r32520r32521
9494   TIMER_DEVICE_CALLBACK_MEMBER(bigrun_scanline);
9595   TIMER_DEVICE_CALLBACK_MEMBER(scudhamm_scanline);
9696   TIMER_DEVICE_CALLBACK_MEMBER(armchamp2_scanline);
97   void prepare_shadows(cischeat_state *state);
97   void prepare_shadows();
9898   inline void scrollram_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int which);
9999   void create_tilemaps();
100100   void cischeat_draw_road(bitmap_ind16 &bitmap, const rectangle &cliprect, int road_num, int priority1, int priority2, int transparency);
trunk/src/mame/includes/bfm_sc45.h
r32520r32521
585585   void bfm_sc4_68307_portb_w(address_space &space, bool dedicated, UINT16 data, UINT16 line_mask);
586586   UINT8 bfm_sc4_68307_porta_r(address_space &space, bool dedicated, UINT8 line_mask);
587587   UINT16 bfm_sc4_68307_portb_r(address_space &space, bool dedicated, UINT16 line_mask);
588   
589   void find_mbus(UINT16* rom);
588590
589591
590592protected:
trunk/src/mame/includes/grchamp.h
r32520r32521
8383   INTERRUPT_GEN_MEMBER(grchamp_cpu1_interrupt);
8484   TIMER_CALLBACK_MEMBER(main_to_sub_comm_sync_w);
8585   void draw_objects(int y, UINT8 *objdata);
86   int collision_check(bitmap_ind16 &bitmap, int which );
87   void draw_fog(bitmap_ind16 &bitmap, const rectangle &cliprect, int fog);
88   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
8689   required_device<cpu_device> m_maincpu;
8790   required_device<cpu_device> m_audiocpu;
8891   required_device<cpu_device> m_subcpu;
trunk/src/mame/video/grchamp.c
r32520r32521
107107}
108108
109109#if 0
110int grchamp_state::collision_check(grchamp_state *state, bitmap_ind16 &bitmap, int which )
110int grchamp_state::collision_check(bitmap_ind16 &bitmap, int which )
111111{
112112   int bgcolor = m_palette->pen(0);
113113   int sprite_transp = m_palette->pen(0x24);
r32520r32521
157157   return result?(1<<which):0;
158158}
159159
160void grchamp_state::draw_fog(grchamp_state *state, bitmap_ind16 &bitmap, const rectangle &cliprect, int fog)
160void grchamp_state::draw_fog(bitmap_ind16 &bitmap, const rectangle &cliprect, int fog)
161161{
162162   int x,y,offs;
163163
r32520r32521
174174   }
175175}
176176
177void grchamp_state::draw_sprites(grchamp_state *state, bitmap_ind16 &bitmap, const rectangle &cliprect)
177void grchamp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
178178{
179179   gfx_element *gfx = m_gfxdecode->gfx(5);
180180   int bank = (m_cpu0_out[0] & 0x20) ? 0x40 : 0x00;
trunk/src/mame/video/cischeat.c
r32520r32521
111111
112112***************************************************************************/
113113
114void cischeat_state::prepare_shadows(cischeat_state *state)
114void cischeat_state::prepare_shadows()
115115{
116116   int i;
117117   for (i = 0;i < 16;i++)
r32520r32521
246246
247247   m_bits_per_color_code = 5;
248248
249   prepare_shadows(this);
249   prepare_shadows();
250250}
251251
252252/**************************************************************************

Previous 199869 Revisions Next


© 1997-2024 The MAME Team