8514/A: Pitch no longer hardcoded to 1024, fixes 640x480x256 resolutions.
8514/A: More fixes to the accelerated engine, mainly in paintbrush (blackness brush). SVGA: Preparation of the next batch.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
|||||||
* Generic SVGA handling.
|
* Generic SVGA handling.
|
||||||
*
|
*
|
||||||
* This is intended to be used by another SVGA driver,
|
* This is intended to be used by another SVGA driver,
|
||||||
* and not as a card in it's own right.
|
* and not as a card in its own right.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@@ -40,7 +40,6 @@
|
|||||||
#include <86box/vid_svga.h>
|
#include <86box/vid_svga.h>
|
||||||
#include <86box/vid_svga_render.h>
|
#include <86box/vid_svga_render.h>
|
||||||
|
|
||||||
|
|
||||||
void svga_doblit(int wx, int wy, svga_t *svga);
|
void svga_doblit(int wx, int wy, svga_t *svga);
|
||||||
|
|
||||||
svga_t *svga_8514;
|
svga_t *svga_8514;
|
||||||
@@ -48,12 +47,12 @@ svga_t *svga_8514;
|
|||||||
extern int cyc_total;
|
extern int cyc_total;
|
||||||
extern uint8_t edatlookup[4][4];
|
extern uint8_t edatlookup[4][4];
|
||||||
|
|
||||||
uint8_t svga_rotate[8][256];
|
uint8_t svga_rotate[8][256];
|
||||||
|
|
||||||
/*Primary SVGA device. As multiple video cards are not yet supported this is the
|
/*Primary SVGA device. As multiple video cards are not yet supported this is the
|
||||||
only SVGA device.*/
|
only SVGA device.*/
|
||||||
static svga_t *svga_pri;
|
static svga_t *svga_pri;
|
||||||
int vga_on;
|
int vga_on, ibm8514_on;
|
||||||
|
|
||||||
svga_t
|
svga_t
|
||||||
*svga_get_pri()
|
*svga_get_pri()
|
||||||
@@ -559,7 +558,8 @@ svga_recalctimings(svga_t *svga)
|
|||||||
svga->recalctimings_ex(svga);
|
svga->recalctimings_ex(svga);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ibm8514_recalctimings(svga);
|
if (ibm8514_on && ibm8514_enabled)
|
||||||
|
ibm8514_recalctimings(svga);
|
||||||
}
|
}
|
||||||
|
|
||||||
svga->y_add = (overscan_y >> 1) - (svga->crtc[8] & 0x1f);
|
svga->y_add = (overscan_y >> 1) - (svga->crtc[8] & 0x1f);
|
||||||
@@ -657,7 +657,7 @@ svga_poll(void *p)
|
|||||||
int wx, wy;
|
int wx, wy;
|
||||||
int ret, old_ma;
|
int ret, old_ma;
|
||||||
|
|
||||||
if (!vga_on) {
|
if (!vga_on && ibm8514_enabled && ibm8514_on) {
|
||||||
ibm8514_poll(&svga->dev8514, svga);
|
ibm8514_poll(&svga->dev8514, svga);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -710,7 +710,7 @@ svga_poll(void *p)
|
|||||||
|
|
||||||
if (svga->hwcursor_on || svga->dac_hwcursor_on || svga->overlay_on) {
|
if (svga->hwcursor_on || svga->dac_hwcursor_on || svga->overlay_on) {
|
||||||
svga->changedvram[svga->ma >> 12] = svga->changedvram[(svga->ma >> 12) + 1] =
|
svga->changedvram[svga->ma >> 12] = svga->changedvram[(svga->ma >> 12) + 1] =
|
||||||
svga->interlace ? 3 : 2;
|
svga->interlace ? 3 : 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (svga->vertical_linedbl) {
|
if (svga->vertical_linedbl) {
|
||||||
@@ -956,7 +956,7 @@ svga_init(const device_t *info, svga_t *svga, void *p, int memsize,
|
|||||||
svga->decode_mask = 0x7fffff;
|
svga->decode_mask = 0x7fffff;
|
||||||
svga->changedvram = calloc(memsize >> 12, 1);
|
svga->changedvram = calloc(memsize >> 12, 1);
|
||||||
svga->recalctimings_ex = recalctimings_ex;
|
svga->recalctimings_ex = recalctimings_ex;
|
||||||
svga->video_in = video_in;
|
svga->video_in = video_in;
|
||||||
svga->video_out = video_out;
|
svga->video_out = video_out;
|
||||||
svga->hwcursor_draw = hwcursor_draw;
|
svga->hwcursor_draw = hwcursor_draw;
|
||||||
svga->overlay_draw = overlay_draw;
|
svga->overlay_draw = overlay_draw;
|
||||||
@@ -991,11 +991,6 @@ svga_init(const device_t *info, svga_t *svga, void *p, int memsize,
|
|||||||
|
|
||||||
svga_pri = svga;
|
svga_pri = svga;
|
||||||
|
|
||||||
if (ibm8514_enabled)
|
|
||||||
svga_8514 = svga;
|
|
||||||
else
|
|
||||||
svga_8514 = NULL;
|
|
||||||
|
|
||||||
svga->ramdac_type = RAMDAC_6BIT;
|
svga->ramdac_type = RAMDAC_6BIT;
|
||||||
|
|
||||||
svga->map8 = svga->pallook;
|
svga->map8 = svga->pallook;
|
||||||
|
Reference in New Issue
Block a user