trunk/src/emu/bus/isa/trident.c
| r32276 | r32277 | |
| 98 | 98 | void trident_vga_device::WRITEPIXEL(INT16 x,INT16 y, UINT32 data) |
| 99 | 99 | { |
| 100 | 100 | if(svga.rgb8_en) |
| 101 | | WRITEPIXEL8(x,y,data & 0xff); |
| 101 | WRITEPIXEL8(x,y,(((data >> 16) & 0xff) | ((data >> 8) & 0xff) | (data & 0xff))); // XFree86 3.3 sets bits 0-7 to 0 when using mono patterns, does it OR each byte? |
| 102 | 102 | if(svga.rgb15_en) |
| 103 | 103 | WRITEPIXEL15(x,y,data & 0x7fff); |
| 104 | 104 | if(svga.rgb16_en) |
| r32276 | r32277 | |
| 1170 | 1170 | { |
| 1171 | 1171 | for(int x=31;x>=0;x--) |
| 1172 | 1172 | { |
| 1173 | | if(((data >> x) & 0x01) != 0) |
| 1174 | | WRITEPIXEL(tri.accel_mem_x,tri.accel_mem_y,tri.accel_fgcolour); |
| 1173 | if(tri.accel_mem_x <= tri.accel_dest_x+tri.accel_dim_x) |
| 1174 | { |
| 1175 | if(((data >> x) & 0x01) != 0) |
| 1176 | WRITEPIXEL(tri.accel_mem_x,tri.accel_mem_y,tri.accel_fgcolour); |
| 1177 | else |
| 1178 | WRITEPIXEL(tri.accel_mem_x,tri.accel_mem_y,tri.accel_bgcolour); |
| 1179 | } |
| 1175 | 1180 | tri.accel_mem_x++; |
| 1176 | 1181 | } |
| 1177 | 1182 | if(tri.accel_mem_x > tri.accel_dest_x+tri.accel_dim_x) |