Previous 199869 Revisions Next

r22033 Saturday 23rd March, 2013 at 10:28:46 UTC by Fabio Priuli
(MESS) megadriv.c: removed a bunch of useless machine parameters and a few tagmap lookups. nw.
[src/mame/machine]mega32x.c mega32x.h megacd.c megacd.h megavdp.c

trunk/src/mame/machine/megavdp.c
r22032r22033
25132513   }
25142514
25152515
2516   if (_32xdev) _32xdev->_32x_render_videobuffer_to_screenbuffer_helper(machine, scanline);
2516   if (_32xdev) _32xdev->_32x_render_videobuffer_to_screenbuffer_helper(scanline);
25172517
25182518
25192519
trunk/src/mame/machine/mega32x.c
r22032r22033
796796
797797
798798
799void sega_32x_device::calculate_pwm_timer(running_machine &machine)
799void sega_32x_device::calculate_pwm_timer()
800800{
801801   if(m_pwm_tm_reg == 0) { m_pwm_tm_reg = 16; } // zero gives max range
802802   if(m_pwm_cycle == 0) { m_pwm_cycle = 4095; } // zero gives max range
r22032r22033
815815}
816816
817817
818void sega_32x_device::handle_pwm_callback(void)
818void sega_32x_device::handle_pwm_callback()
819819{
820820   if(m_lch_index_r < PWM_FIFO_SIZE)
821821   {
r22032r22033
887887      case 0x00/2:
888888         m_pwm_ctrl = data & 0xffff;
889889         m_pwm_tm_reg = (m_pwm_ctrl & 0xf00) >> 8;
890         calculate_pwm_timer(space.machine());
890         calculate_pwm_timer();
891891         break;
892892      case 0x02/2:
893893         m_pwm_cycle = m_pwm_cycle_reg = data & 0xfff;
894         calculate_pwm_timer(space.machine());
894         calculate_pwm_timer();
895895         break;
896896      case 0x04/2:
897897         if(m_lch_index_w < PWM_FIFO_SIZE)
r22032r22033
16021602
16031603
16041604
1605UINT32* sega_32x_device::_32x_render_videobuffer_to_screenbuffer_helper(running_machine &machine, int scanline)
1605UINT32* sega_32x_device::_32x_render_videobuffer_to_screenbuffer_helper(int scanline)
16061606{
16071607   int x;
16081608
trunk/src/mame/machine/mega32x.h
r22032r22033
104104   DECLARE_WRITE16_MEMBER( _32x_sh2_master_401e_w );
105105   DECLARE_WRITE16_MEMBER( _32x_sh2_slave_401e_w );
106106
107   UINT32* _32x_render_videobuffer_to_screenbuffer_helper(running_machine &machine, int scanline);
107   UINT32* _32x_render_videobuffer_to_screenbuffer_helper(int scanline);
108108   int sh2_master_pwmint_enable, sh2_slave_pwmint_enable;
109109
110110   void _32x_check_framebuffer_swap(bool enabled);
r22032r22033
125125   UINT32 m_32x_linerender[320+258]; // tmp buffer (bigger than it needs to be to simplify RLE decode)
126126
127127
128   void handle_pwm_callback(void);
129   void calculate_pwm_timer(running_machine &machine);
130   UINT16 m_pwm_ctrl,m_pwm_cycle,m_pwm_tm_reg;
128   void handle_pwm_callback();
129   void calculate_pwm_timer();
130   UINT16 m_pwm_ctrl, m_pwm_cycle, m_pwm_tm_reg;
131131   UINT16 m_cur_lch[0x10],m_cur_rch[0x10];
132132   UINT16 m_pwm_cycle_reg; //used for latching
133133   UINT8 m_pwm_timer_tick;
134   UINT8 m_lch_index_r,m_rch_index_r,m_lch_index_w,m_rch_index_w;
135   UINT16 m_lch_fifo_state,m_rch_fifo_state;
134   UINT8 m_lch_index_r, m_rch_index_r, m_lch_index_w, m_rch_index_w;
135   UINT16 m_lch_fifo_state, m_rch_fifo_state;
136136
137137
138138   UINT16 get_hposition(void);
trunk/src/mame/machine/megacd.c
r22032r22033
218218}
219219
220220
221void sega_segacd_device::segacd_1meg_mode_word_write(running_machine& machine, int offset, UINT16 data, UINT16 mem_mask, int use_pm)
221void sega_segacd_device::segacd_1meg_mode_word_write(int offset, UINT16 data, UINT16 mem_mask, int use_pm)
222222{
223223   offset *= 2;
224224
r22032r22033
316316   {
317317      if (m_a12000_halt_reset_reg & 0x0100)
318318      {
319         running_machine& machine = space.machine();
320319         CHECK_SCD_LV2_INTERRUPT
321320      }
322321
r22032r22033
705704         // ret bit set by sub cpu determines which half of WorkRAM we have access to?
706705         if (scd_rammode&1)
707706         {
708            segacd_1meg_mode_word_write(space.machine(), offset+0x20000/2, data, mem_mask, 0);
707            segacd_1meg_mode_word_write(offset+0x20000/2, data, mem_mask, 0);
709708         }
710709         else
711710         {
712            segacd_1meg_mode_word_write(space.machine(), offset+0x00000/2, data, mem_mask, 0);
711            segacd_1meg_mode_word_write(offset+0x00000/2, data, mem_mask, 0);
713712         }
714713      }
715714      else
r22032r22033
11721171
11731172      if (scd_rammode&1)
11741173      {
1175         segacd_1meg_mode_word_write(space.machine(), offset/2+0x00000/2, data , mem_mask, 1);
1174         segacd_1meg_mode_word_write(offset/2+0x00000/2, data , mem_mask, 1);
11761175      }
11771176      else
11781177      {
1179         segacd_1meg_mode_word_write(space.machine(), offset/2+0x20000/2, data, mem_mask, 1);
1178         segacd_1meg_mode_word_write(offset/2+0x20000/2, data, mem_mask, 1);
11801179      }
11811180
11821181   //  printf("Unspported: segacd_sub_dataram_part1_w in mode 1 (Word RAM Expander - 1 Byte Per Pixel) %04x\n", data);
r22032r22033
12201219      // ret bit set by sub cpu determines which half of WorkRAM we have access to?
12211220      if (scd_rammode&1)
12221221      {
1223         segacd_1meg_mode_word_write(space.machine(),offset+0x00000/2, data, mem_mask, 0);
1222         segacd_1meg_mode_word_write(offset+0x00000/2, data, mem_mask, 0);
12241223      }
12251224      else
12261225      {
1227         segacd_1meg_mode_word_write(space.machine(),offset+0x20000/2, data, mem_mask, 0);
1226         segacd_1meg_mode_word_write(offset+0x20000/2, data, mem_mask, 0);
12281227      }
12291228
12301229   }
r22032r22033
17161715   UINT8 *dest;
17171716   int srcoffset = 0;
17181717   int dstoffset = 0;
1719   address_space& space = machine().device(":segacd:segacd_68k")->memory().space(AS_PROGRAM);
1718   address_space& space = m_scdcpu->space(AS_PROGRAM);
17201719
17211720   bool PCM_DMA = false;
17221721
r22032r22033
17791778
17801779                  if (!(scd_rammode & 1))
17811780                  {
1782                     segacd_1meg_mode_word_write(space.machine(),(dstoffset+0x20000)/2, data, 0xffff, 0);
1781                     segacd_1meg_mode_word_write((dstoffset+0x20000)/2, data, 0xffff, 0);
17831782                  }
17841783                  else
17851784                  {
1786                     segacd_1meg_mode_word_write(space.machine(),(dstoffset+0x00000)/2, data, 0xffff, 0);
1785                     segacd_1meg_mode_word_write((dstoffset+0x00000)/2, data, 0xffff, 0);
17871786                  }
17881787               }
17891788
trunk/src/mame/machine/megacd.h
r22032r22033
1515#define CHECK_SCD_LV3_INTERRUPT \
1616   if (lc89510_temp->get_segacd_irq_mask() & 0x08) \
1717   { \
18      machine().device(":segacd:segacd_68k")->execute().set_input_line(3, HOLD_LINE); \
18      m_scdcpu->set_input_line(3, HOLD_LINE); \
1919   }
2020// from master
2121#define CHECK_SCD_LV2_INTERRUPT \
2222   if (lc89510_temp->get_segacd_irq_mask() & 0x04) \
2323   { \
24      machine.device(":segacd:segacd_68k")->execute().set_input_line(2, HOLD_LINE); \
24      m_scdcpu->set_input_line(2, HOLD_LINE); \
2525   }
2626
2727// gfx convert
2828#define CHECK_SCD_LV1_INTERRUPT \
2929   if (lc89510_temp->get_segacd_irq_mask() & 0x02) \
3030   { \
31      machine().device(":segacd:segacd_68k")->execute().set_input_line(1, HOLD_LINE); \
31      m_scdcpu->set_input_line(1, HOLD_LINE); \
3232   }
3333
3434#define SEGACD_IRQ3_TIMER_SPEED (attotime::from_nsec(segacd_irq3_timer_reg*30720))
r22032r22033
253253
254254   inline void write_pixel(running_machine& machine, UINT8 pix, int pixeloffset );
255255   UINT16 segacd_1meg_mode_word_read(int offset, UINT16 mem_mask);
256   void segacd_1meg_mode_word_write(running_machine& machine, int offset, UINT16 data, UINT16 mem_mask, int use_pm);
256   void segacd_1meg_mode_word_write(int offset, UINT16 data, UINT16 mem_mask, int use_pm);
257257
258258   DECLARE_READ16_MEMBER( segacd_dmaaddr_r );
259259   DECLARE_WRITE16_MEMBER( segacd_dmaaddr_w );

Previous 199869 Revisions Next


© 1997-2024 The MAME Team