Previous 199869 Revisions Next

r20871 Saturday 9th February, 2013 at 16:15:24 UTC by Angelo Salese
Fixed zooming for 3D Baseball the Majors (8bpp bitmaps)
[src/mame/video]stvvdp2.c

trunk/src/mame/video/stvvdp2.c
r20870r20871
11031103       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
11041104       \----------|----------|----------|----------|----------|----------|----------|---------*/
11051105
1106   #define STV_VDP2_SCXDN0 (m_vdp2_regs[0x072/2])
1107
11061108/* 180074 - SCYIN0 - Screen Scroll (NBG0, Vertical Integer Part)
11071109 bit-> /----15----|----14----|----13----|----12----|----11----|----10----|----09----|----08----\
11081110       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
r20870r20871
11191121       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
11201122       \----------|----------|----------|----------|----------|----------|----------|---------*/
11211123
1124   #define STV_VDP2_SCYDN0 (m_vdp2_regs[0x076/2])
1125
11221126/* 180078 - Coordinate Inc (NBG0, Horizontal Integer Part)
11231127 bit-> /----15----|----14----|----13----|----12----|----11----|----10----|----09----|----08----\
11241128       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
r20870r20871
11821186       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
11831187       \----------|----------|----------|----------|----------|----------|----------|---------*/
11841188
1189   #define STV_VDP2_SCXDN1 (m_vdp2_regs[0x082/2])
1190
11851191/* 180084 - SCYIN1 - Screen Scroll (NBG1, Vertical Integer Part)
11861192 bit-> /----15----|----14----|----13----|----12----|----11----|----10----|----09----|----08----\
11871193       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
r20870r20871
11981204       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
11991205       \----------|----------|----------|----------|----------|----------|----------|---------*/
12001206
1207   #define STV_VDP2_SCYDN1 (m_vdp2_regs[0x086/2])
1208
12011209/* 180088 - Coordinate Inc (NBG1, Horizontal Integer Part)
12021210 bit-> /----15----|----14----|----13----|----12----|----11----|----10----|----09----|----08----\
12031211       |    --    |    --    |    --    |    --    |    --    |    --    |    --    |    --    |
r20870r20871
30113019   UINT16 dot_data;
30123020   UINT16 pal_bank;
30133021
3014   /* TODO: clean this up. */
30153022   xsize = (stv2_current_tilemap.bitmap_size & 2) ? 1024 : 512;
30163023   ysize = (stv2_current_tilemap.bitmap_size & 1) ? 512 : 256;
30173024
r20870r20871
30673074   int scrolly = stv2_current_tilemap.scrolly;
30683075   UINT16 dot_data;
30693076   UINT16 pal_bank;
3077   int xf, yf;
30703078
3071   /* TODO: clean this up. */
30723079   xsize = (stv2_current_tilemap.bitmap_size & 2) ? 1024 : 512;
30733080   ysize = (stv2_current_tilemap.bitmap_size & 1) ? 512 : 256;
30743081
r20870r20871
30893096         if(stv_vdp2_window_process(xdst,ydst))
30903097            continue;
30913098
3092         xsrc = (xdst + scrollx) & (xsize_mask-1);
3093         ysrc = (ydst + scrolly) & (ysize_mask-1);
3099         xf = stv2_current_tilemap.incx * xdst;
3100         xf>>=16;
3101         yf = stv2_current_tilemap.incy * ydst;
3102         yf>>=16;
3103
3104         xsrc = (xf + scrollx) & (xsize_mask-1);
3105         ysrc = (yf + scrolly) & (ysize_mask-1);
30943106         src_offs = (xsrc + (ysrc*xsize));
30953107         src_offs += map_offset;
30963108         src_offs &= 0x7ffff;
r20870r20871
31223134   int r,g,b;
31233135   UINT16 dot_data;
31243136
3125   /* TODO: clean this up. */
31263137   xsize = (stv2_current_tilemap.bitmap_size & 2) ? 1024 : 512;
31273138   ysize = (stv2_current_tilemap.bitmap_size & 1) ? 512 : 256;
31283139
r20870r20871
31753186   int r,g,b;
31763187   UINT32 dot_data;
31773188
3178   /* TODO: clean this up. */
31793189   xsize = (stv2_current_tilemap.bitmap_size & 2) ? 1024 : 512;
31803190   ysize = (stv2_current_tilemap.bitmap_size & 1) ? 512 : 256;
31813191
r20870r20871
32583268      switch(stv2_current_tilemap.colour_depth)
32593269      {
32603270      //   case 0: draw_4bpp_bitmap(bitmap,cliprect); return;
3261      //   case 1: draw_8bpp_bitmap(bitmap,cliprect); return;
3271         case 1: draw_8bpp_bitmap(bitmap,cliprect); return;
32623272      //   case 3: draw_rgb15_bitmap(bitmap,cliprect); return;
32633273      //   case 4: draw_rgb32_bitmap(bitmap,cliprect); return;
32643274      }
r20870r20871
45264536      if(stv2_current_tilemap.colour_depth == 2 && !stv2_current_tilemap.bitmap_enable)
45274537         popmessage("2048 color mode used on a non-bitmap plane");
45284538
4539//      if(STV_VDP2_SCXDN0 || STV_VDP2_SCXDN1 || STV_VDP2_SCYDN0 || STV_VDP2_SCYDN1)
4540//         popmessage("Fractional part scrolling write, contact MAMEdev");
4541
45294542      /* Pukunpa */
45304543      //if(STV_VDP2_SPWINEN)
45314544      //  popmessage("Sprite Window enabled");
r20870r20871
69917004   }
69927005
69937006   copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
7007
7008   #if 0
7009   /* Do NOT remove me, used to test video code performance. */
7010   if(machine().input().code_pressed(KEYCODE_Q))
7011   {
7012      popmessage("Halt CPUs");
7013      m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
7014      m_slave->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
7015      m_audiocpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
7016   }
7017   #endif
69947018   return 0;
69957019}
69967020

Previous 199869 Revisions Next


© 1997-2024 The MAME Team