Previous 199869 Revisions Next

r32527 Saturday 4th October, 2014 at 12:20:38 UTC by hap
dragrace.c: Added tachometer outputs. [Comboman]
[src/mame/drivers]dragrace.c
[src/mame/includes]dragrace.h
[src/mame/video]dragrace.c

trunk/src/mame/drivers/dragrace.c
r32526r32527
11/***************************************************************************
22
3Atari Drag Race Driver
3    Atari Drag Race Driver
44
55***************************************************************************/
66
r32526r32527
1414
1515TIMER_DEVICE_CALLBACK_MEMBER(dragrace_state::dragrace_frame_callback)
1616{
17   int i;
1817   static const char *const portnames[] = { "P1", "P2" };
1918
20   for (i = 0; i < 2; i++)
19   for (int i = 0; i < 2; i++)
2120   {
2221      switch (ioport(portnames[i])->read())
2322      {
24      case 0x01: m_gear[i] = 1; break;
25      case 0x02: m_gear[i] = 2; break;
26      case 0x04: m_gear[i] = 3; break;
27      case 0x08: m_gear[i] = 4; break;
28      case 0x10: m_gear[i] = 0; break;
23         case 0x01: m_gear[i] = 1; break;
24         case 0x02: m_gear[i] = 2; break;
25         case 0x04: m_gear[i] = 3; break;
26         case 0x08: m_gear[i] = 4; break;
27         case 0x10: m_gear[i] = 0; break;
2928      }
3029   }
3130
r32526r32527
8584   m_discrete->write(space, DRAGRACE_ATTRACT_EN, (m_misc_flags & 0x00001000) ? 1: 0); // Attract enable
8685   m_discrete->write(space, DRAGRACE_LOTONE_EN, (m_misc_flags & 0x00002000) ? 1: 0);  // LoTone enable
8786   m_discrete->write(space, DRAGRACE_HITONE_EN, (m_misc_flags & 0x20000000) ? 1: 0);  // HiTone enable
87   
88   // the tachometers are driven from the same frequency generator that creates the engine sound
89   output_set_value("tachometer", ~m_misc_flags & 0x0000001f);
90   output_set_value("tachometer2", (~m_misc_flags & 0x001f0000) >> 0x10);
8891}
8992
9093WRITE8_MEMBER(dragrace_state::dragrace_misc_w)
r32526r32527
116119   UINT8 maskA = 1 << (offset % 8);
117120   UINT8 maskB = 1 << (offset / 8);
118121
119   int i;
120
121   for (i = 0; i < 2; i++)
122   for (int i = 0; i < 2; i++)
122123   {
123124      int in = ioport(portnames[i])->read();
124125
r32526r32527
139140   int bitB[2];
140141   static const char *const dialnames[] = { "DIAL1", "DIAL2" };
141142
142   int i;
143
144   for (i = 0; i < 2; i++)
143   for (int i = 0; i < 2; i++)
145144   {
146145      int dial = ioport(dialnames[i])->read();
147146
trunk/src/mame/includes/dragrace.h
r32526r32527
4747
4848   /* devices */
4949   required_device<discrete_device> m_discrete;
50   required_device<cpu_device> m_maincpu;
51   required_device<gfxdecode_device> m_gfxdecode;
52   required_device<screen_device> m_screen;
53
5054   DECLARE_WRITE8_MEMBER(dragrace_misc_w);
5155   DECLARE_WRITE8_MEMBER(dragrace_misc_clear_w);
5256   DECLARE_READ8_MEMBER(dragrace_input_r);
r32526r32527
6064   UINT32 screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6165   TIMER_DEVICE_CALLBACK_MEMBER(dragrace_frame_callback);
6266   void dragrace_update_misc_flags( address_space &space );
63   required_device<cpu_device> m_maincpu;
64   required_device<gfxdecode_device> m_gfxdecode;
65   required_device<screen_device> m_screen;
6667};
6768
6869/*----------- defined in audio/dragrace.c -----------*/
trunk/src/mame/video/dragrace.c
r32526r32527
11/***************************************************************************
22
3Atari Drag Race video emulation
3    Atari Drag Race video emulation
44
55***************************************************************************/
66
r32526r32527
2121
2222   switch (code & 0xA0)
2323   {
24   case 0x00:
25      col = 0;
26      break;
27   case 0x20:
28      col = 1;
29      break;
30   case 0x80:
31      col = (code & 0x40) ? 1 : 0;
32      break;
33   case 0xA0:
34      col = (code & 0x40) ? 3 : 2;
35      break;
24      case 0x00:
25         col = 0;
26         break;
27      case 0x20:
28         col = 1;
29         break;
30      case 0x80:
31         col = (code & 0x40) ? 1 : 0;
32         break;
33      case 0xA0:
34         col = (code & 0x40) ? 3 : 2;
35         break;
3636   }
3737
3838   SET_TILE_INFO_MEMBER(((code & 0xA0) == 0x80) ? 1 : 0, num, col, 0);
r32526r32527
4747
4848UINT32 dragrace_state::screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4949{
50   int y;
51
5250   m_bg_tilemap->mark_all_dirty();
5351
54   for (y = 0; y < 256; y += 4)
52   for (int y = 0; y < 256; y += 4)
5553   {
5654      rectangle rect = cliprect;
5755
r32526r32527
6866
6967      m_bg_tilemap->draw(screen, bitmap, rect, 0, 0);
7068   }
69
7170   return 0;
7271}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team