Previous 199869 Revisions Next

r19699 Thursday 20th December, 2012 at 12:09:05 UTC by Robbbert
Using one flip screen variable instead of 2 (nw)
Let me know if anything broke.
[src/mame/audio]8080bw.c mw8080bw.c
[src/mame/drivers]8080bw.c mw8080bw.c
[src/mame/includes]8080bw.h mw8080bw.h
[src/mame/video]8080bw.c mw8080bw.c

trunk/src/mame/audio/mw8080bw.c
r19698r19699
42044204   /* the flip screen line is only connected on the cocktail PCB */
42054205   if (invaders_is_cabinet_cocktail(machine()))
42064206   {
4207      m_invaders_flip_screen = (data >> 5) & 0x01;
4207      m_flip_screen = (data >> 5) & 0x01;
42084208   }
42094209
42104210   /* D6 and D7 are not connected */
trunk/src/mame/audio/8080bw.c
r19698r19699
6666   if (rising_bits & 0x08) m_samples->start(4, 6);      /* FLEET */
6767   if (rising_bits & 0x10) m_samples->start(3, 7);      /* SAUCER HIT */
6868
69   m_c8080bw_flip_screen = BIT(data, 5) & ioport(CABINET_PORT_TAG)->read();
69   m_flip_screen = BIT(data, 5) & ioport(CABINET_PORT_TAG)->read();
7070
7171   m_port_2_last_extra = data;
7272}
r19698r19699
8989   if (rising_bits & 0x08) m_samples->start(4, 6);      /* FLEET */
9090   if (rising_bits & 0x10) m_samples->start(3, 7);      /* SAUCER HIT */
9191
92   m_c8080bw_flip_screen = BIT(~data, 5) & ioport(CABINET_PORT_TAG)->read();
92   m_flip_screen = BIT(~data, 5) & ioport(CABINET_PORT_TAG)->read();
9393
9494   m_port_2_last_extra = data;
9595}
r19698r19699
174174   if (rising_bits & 0x10) m_samples->start(3, 6);      /* Shooting Star and Rescue Ship sounds */
175175   if ((~data & 0x10) && (m_port_2_last_extra & 0x10)) m_samples->stop(3);   /* This makes the rescue ship sound beep on and off */
176176
177   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
177   m_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
178178
179179   m_port_2_last_extra = data;
180180}
r19698r19699
276276   if (data & 0x04) m_samples->start(0, 4);      /* Plane is dropping new balloons at start of level */
277277   if (rising_bits & 0x10) m_samples->start(2, 2);      /* Balloon hit and bomb drops */
278278
279   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
279   m_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
280280
281281   m_port_2_last_extra = data;
282282}
r19698r19699
352352   if (rising_bits & 0x08) m_samples->start(5, 0);      /* Grabber, Lasso caught something */
353353   if (rising_bits & 0x10) m_samples->start(3, 7);      /* Lasso sound */
354354
355   m_c8080bw_flip_screen = BIT(data, 5) & ioport(CABINET_PORT_TAG)->read();
355   m_flip_screen = BIT(data, 5) & ioport(CABINET_PORT_TAG)->read();
356356
357357   m_port_2_last_extra = data;
358358}
r19698r19699
706706
707707   coin_lockout_global_w(machine(), data & 0x04);  /* SX8 */
708708
709   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport("IN2")->read(), 2); /* SX11 */
709   m_flip_screen = BIT(data, 5) & BIT(ioport("IN2")->read(), 2); /* SX11 */
710710
711711   /* 0x01 - SX6 - Plane Down */
712712   discrete_sound_w(m_discrete, space, POLARIS_SX6_EN, data & 0x01);
r19698r19699
941941   m_schaser_background_disable = BIT(data, 3);
942942   m_schaser_background_select = BIT(data, 4);
943943
944   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport("IN2")->read(), 6);
944   m_flip_screen = BIT(data, 5) & BIT(ioport("IN2")->read(), 6);
945945
946946   m_port_2_last_extra = data;
947947}
r19698r19699
10251025        20 - flip screen */
10261026
10271027   m_screen_red = BIT(data, 4);
1028   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
1028   m_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
10291029
10301030        // no sound-related writes?
10311031}
r19698r19699
11441144
11451145   m_color_map = data & 0x40;
11461146
1147   m_c8080bw_flip_screen = (data & 0x20) && (ioport("IN2")->read() & 0x04);
1147   m_flip_screen = (data & 0x20) && (ioport("IN2")->read() & 0x04);
11481148
11491149   m_port_2_last_extra = data;
11501150}
r19698r19699
11761176
11771177   machine().sound().system_enable(data & 0x10);
11781178
1179   m_c8080bw_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
1179   m_flip_screen = BIT(data, 5) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
11801180}
11811181
11821182
r19698r19699
12121212
12131213   if (rising_bits & 0x10) m_samples->start(2, 7);         /* Game Over */
12141214
1215   m_c8080bw_flip_screen = data & 0x20;
1215   m_flip_screen = data & 0x20;
12161216
12171217   m_port_2_last_extra = data;
12181218}
r19698r19699
12611261
12621262WRITE8_MEMBER( _8080bw_state::darthvdr_00_w )
12631263{
1264   m_invaders_flip_screen = BIT(data, 0) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
1264   m_flip_screen = BIT(data, 0) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
12651265}
12661266
12671267WRITE8_MEMBER( _8080bw_state::darthvdr_08_w )
trunk/src/mame/includes/mw8080bw.h
r19698r19699
5757
5858   /* misc game specific */
5959   UINT16      m_phantom2_cloud_counter;
60   UINT8       m_invaders_flip_screen;
60   UINT8       m_flip_screen;
6161   UINT8       m_rev_shift_res;
6262   UINT8       m_maze_tone_timing_state;   /* output of IC C1, pin 5 */
6363   UINT8       m_desertgun_controller_select;
trunk/src/mame/includes/8080bw.h
r19698r19699
2828
2929
3030   /* misc game specific */
31   UINT8 m_c8080bw_flip_screen;
3231   UINT8 m_color_map;
3332   UINT8 m_screen_red;
3433   UINT8 m_fleet_step;
trunk/src/mame/video/mw8080bw.c
r19698r19699
336336   UINT8 x = 0;
337337   UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
338338   UINT8 video_data = 0;
339   UINT8 flip = m_invaders_flip_screen;
339   UINT8 flip = m_flip_screen;
340340
341341   while (1)
342342   {
trunk/src/mame/video/8080bw.c
r19698r19699
1515
1616MACHINE_START_MEMBER(_8080bw_state,extra_8080bw_vh)
1717{
18   save_item(NAME(m_c8080bw_flip_screen));
18   save_item(NAME(m_flip_screen));
1919   save_item(NAME(m_color_map));
2020   save_item(NAME(m_screen_red));
2121
r19698r19699
6767
6868   if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK)
6969   {
70      if (state->m_c8080bw_flip_screen)
70      if (state->m_flip_screen)
7171         bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color];
7272      else
7373         bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color];
r19698r19699
101101
102102      for (y = MW8080BW_VCOUNTER_START_NO_VBLANK; y != 0; y++)
103103      {
104         if (state->m_c8080bw_flip_screen)
104         if (state->m_flip_screen)
105105            bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + x)) = pens[color];
106106         else
107107            bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + x) = pens[color];
r19698r19699
454454
455455      for (i = 0; i < 8; i++)
456456      {
457         if (m_c8080bw_flip_screen)
457         if (m_flip_screen)
458458            bitmap.pix32(191-y, 255-(x|i)) = pens[BIT(data, 7)];
459459         else
460460            bitmap.pix32(y, x|i) = pens[BIT(data, 7)];
r19698r19699
477477
478478      UINT8 y = offs >> 5;
479479      UINT8 x = offs << 3;
480      UINT8 flipx = m_invaders_flip_screen ? 7 : 0;
480      UINT8 flipx = m_flip_screen ? 7 : 0;
481481
482482      UINT8 data = m_main_ram[offs+0x400];
483483
trunk/src/mame/drivers/8080bw.c
r19698r19699
777777READ8_MEMBER(_8080bw_state::invrvnge_02_r)
778778{
779779   UINT8 data = ioport("IN2")->read();
780   if (m_c8080bw_flip_screen) return data;
780   if (m_flip_screen) return data;
781781   return (data & 0x8f) | (ioport("IN1")->read() & 0x70);
782782}
783783
r19698r19699
13191319READ8_MEMBER(_8080bw_state::schasercv_02_r)
13201320{
13211321   UINT8 data = ioport("IN2")->read();
1322   if (m_c8080bw_flip_screen) return data;
1322   if (m_flip_screen) return data;
13231323   UINT8 in1 = ioport("IN1")->read();
13241324   return (data & 0x89) | (in1 & 0x70) | (BIT(in1, 3) << 1) | (BIT(in1, 7) << 2);
13251325}
r19698r19699
16431643READ8_MEMBER(_8080bw_state::polaris_port00_r)
16441644{
16451645   UINT8 data = ioport("IN0")->read();
1646   if (m_c8080bw_flip_screen) return data;
1646   if (m_flip_screen) return data;
16471647   return (data & 7) | (ioport("IN1")->read() & 0xf8);
16481648}
16491649
r19698r19699
22352235READ8_MEMBER(_8080bw_state::shuttlei_ff_r)
22362236{
22372237   UINT8 data = ioport("INPUTS")->read();
2238   if (!m_c8080bw_flip_screen) return data;
2238   if (!m_flip_screen) return data;
22392239   return (data & 0x3b) | ioport("P2")->read();
22402240}
22412241
r19698r19699
22462246              These may be for indicator lamps under the start buttons.
22472247           bit 2 goes high while player 2 is playing     */
22482248
2249   m_c8080bw_flip_screen = BIT(data, 2) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
2249   m_flip_screen = BIT(data, 2) & BIT(ioport(CABINET_PORT_TAG)->read(), 0);
22502250}
22512251
22522252static ADDRESS_MAP_START( shuttlei_map, AS_PROGRAM, 8, _8080bw_state )
r19698r19699
23302330READ8_MEMBER(_8080bw_state::darthvdr_01_r)
23312331{
23322332   UINT8 data = ioport("P2")->read();
2333   if (m_invaders_flip_screen) return data;
2333   if (m_flip_screen) return data;
23342334   return (data & 0xe1) | (ioport("P1")->read() & 0x0e);
23352335}
23362336
trunk/src/mame/drivers/mw8080bw.c
r19698r19699
24962496MACHINE_START_MEMBER(mw8080bw_state,invaders)
24972497{
24982498   /* setup for save states */
2499   save_item(NAME(m_invaders_flip_screen));
2499   save_item(NAME(m_flip_screen));
25002500
25012501   MACHINE_START_CALL_MEMBER(mw8080bw);
25022502}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team