Previous 199869 Revisions Next

r20164 Wednesday 9th January, 2013 at 20:59:50 UTC by Angelo Salese
Fixed Panasonic 3do logo colors
[src/mame/includes]3do.h
[src/mame/machine]3do.c

trunk/src/mame/machine/3do.c
r20163r20164
579579      return m_clio.seed;
580580   case 0x003c/4:
581581      return m_clio.random;
582   case 0x0040/4:
583   case 0x0044/4:
584      return m_clio.irq0;
585   case 0x0048/4:
586   case 0x004c/4:
587      return m_clio.irq0_enable;
582588   case 0x0080/4:
583589      return m_clio.hdelay;
584590   case 0x0084/4:
r20163r20164
968974VIDEO_START_MEMBER(_3do_state,_3do)
969975{
970976   /* We only keep the odd bits and get rid of the even bits */
971   for ( int i = 0; i < 512; i++ )
972   {
973      m_video_bits[i] = ( i & 1 ) | ( ( i & 4 ) >> 1 ) | ( ( i & 0x10 ) >> 2 ) | ( ( i & 0x40 ) >> 3 ) | ( ( i & 0x100 ) >> 4 );
974   }
977//   for ( int i = 0; i < 512; i++ )
978//   {
979//      m_video_bits[i] = ( i & 1 ) | ( ( i & 4 ) >> 1 ) | ( ( i & 0x10 ) >> 2 ) | ( ( i & 0x40 ) >> 3 ) | ( ( i & 0x100 ) >> 4 );
980//   }
975981}
976982
977983
r20163r20164
980986{
981987   UINT32 *source_p = m_vram + 0x1c0000 / 4;
982988
983   for ( int i = 0; i < 120; i++ )
989   for ( int y = 0; y < 120; y++ )
984990   {
985      UINT32   *dest_p0 = &bitmap.pix32(22 + i * 2, 254 );
986      UINT32   *dest_p1 = &bitmap.pix32(22 + i * 2 + 1, 254 );
991      UINT32   *dest_p0 = &bitmap.pix32(22 + y * 2, 254 );
992      UINT32   *dest_p1 = &bitmap.pix32(22 + y * 2 + 1, 254 );
987993
988      for ( int j = 0; j < 320; j++ )
994      for ( int x = 0; x < 320; x++ )
989995      {
990996         /* Odd numbered bits go to lower half, even numbered bits to upper half */
991         UINT32 lower = *source_p & 0x55555555;
992         UINT32 upper = ( *source_p >> 1 ) & 0x55555555;
993         UINT32 rgb = 0;
997         UINT32 lower = *source_p & 0xffff;
998         UINT32 upper = ( *source_p >> 16 ) & 0xffff;
999         int r, g, b;
9941000
995         rgb = ( ( m_video_bits[upper & 0x1ff] << 3 ) << 8 );
996         rgb |= ( ( m_video_bits[ ( upper >> 10 ) & 0x1ff ] << 3 ) << 0 );
997         rgb |= ( ( m_video_bits[ ( upper >> 20 ) & 0x1ff ] << 3 ) << 16 );
1001         r = (upper & 0x7c00) >> 10;
1002         g = (upper & 0x03e0) >> 5;
1003         b = (upper & 0x001f) >> 0;
1004         r = (r << 3) | (r & 7);
1005         g = (g << 3) | (g & 7);
1006         b = (b << 3) | (b & 7);
9981007
999         dest_p0[0] = rgb;
1000         dest_p0[1] = rgb;
1001         dest_p0[2] = rgb;
1002         dest_p0[3] = rgb;
1008         dest_p0[0] = r << 16 | g << 8 | b;
1009         dest_p0[1] = r << 16 | g << 8 | b;
1010         dest_p0[2] = r << 16 | g << 8 | b;
1011         dest_p0[3] = r << 16 | g << 8 | b;
10031012
1004         rgb = ( ( m_video_bits[lower & 0x1ff] << 3 ) << 8 );
1005         rgb |= ( ( m_video_bits[ ( lower >> 10 ) & 0x1ff ] << 3 ) << 0 );
1006         rgb |= ( ( m_video_bits[ ( lower >> 20 ) & 0x1ff ] << 3 ) << 16 );
1013         r = (lower & 0x7c00) >> 10;
1014         g = (lower & 0x03e0) >> 5;
1015         b = (lower & 0x001f) >> 0;
1016         r = (r << 3) | (r & 7);
1017         g = (g << 3) | (g & 7);
1018         b = (b << 3) | (b & 7);
10071019
1008         dest_p1[0] = rgb;
1009         dest_p1[1] = rgb;
1010         dest_p1[2] = rgb;
1011         dest_p1[3] = rgb;
1020         dest_p1[0] = r << 16 | g << 8 | b;
1021         dest_p1[1] = r << 16 | g << 8 | b;
1022         dest_p1[2] = r << 16 | g << 8 | b;
1023         dest_p1[3] = r << 16 | g << 8 | b;
10121024
10131025         source_p++;
10141026         dest_p0 += 4;
trunk/src/mame/includes/3do.h
r20163r20164
174174   MADAM m_madam;
175175   CLIO m_clio;
176176   SVF m_svf;
177   UINT8 m_video_bits[512];
177//   UINT8 m_video_bits[512];
178178   DECLARE_READ32_MEMBER(_3do_nvarea_r);
179179   DECLARE_WRITE32_MEMBER(_3do_nvarea_w);
180180   DECLARE_READ32_MEMBER(_3do_slow2_r);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team