Big video changes of the day (October 26th, 2024)

8514/A/Mach8/32:
Reworked the acceleration a bit as well as the mode switches from VGA to ATI/8514/A mode and viceversa based on the documentation. Fixes the Linux GUI fonts using the Mach32 driver (possibly Mach8 too) and other anomalies (still needs more work on the acceleration though).

PVGA:
Minor fixes to the banking.

S3-based (Pre-ViRGE):
1. Made the chip class use its own banking so that the Enhanced Mode mapping (equivalent to 64K-based A0000) is taken into account (per bit 3 of CRTC31, which forces the mapping to be 64K A0000, regardless of the GDCREG6 bits). Fixes NT 3.1 347.1's S3 driver.
2. Initial rework on 15bpp/16bpp accelerated mode of the 911/924 chips (currently not 100% bug free, I need help with this chips).

XGA-1/2:
Get rid of the linear endian reverse variable hack used by OS/2 and, instead, use the already declared ones more wisely, fixes OS/2 2.1 reversed fonts and keeps everything else working as it should.

Misc:
Added the BT481 RAMDAC for future card use.
This commit is contained in:
TC1995
2024-10-26 21:32:47 +02:00
parent 0290c38851
commit 9c111584b5
13 changed files with 3029 additions and 4200 deletions

View File

@@ -52,7 +52,7 @@ typedef struct ibm8514_t {
int type;
int local;
int bpp;
int on[2];
int on;
int accel_bpp;
uint32_t vram_size;
@@ -102,6 +102,8 @@ typedef struct ibm8514_t {
uint16_t frgd_mix;
uint16_t multifunc_cntl;
uint16_t multifunc[16];
uint16_t clip_right;
uint16_t clip_bottom;
int16_t clip_left;
int16_t clip_top;
uint8_t pix_trans[2];
@@ -112,8 +114,6 @@ typedef struct ibm8514_t {
int x3;
int y1;
int y2;
int sys_cnt;
int sys_cnt2;
int temp_cnt;
int16_t cx;
int16_t cx_back;
@@ -127,20 +127,14 @@ typedef struct ibm8514_t {
int16_t err;
uint32_t src;
uint32_t dest;
uint32_t newsrc_blt;
uint32_t newdest_blt;
uint32_t newdest_in;
uint32_t newdest_out;
uint8_t *writemono;
uint8_t *nibbleset;
int x_count;
int xx_count;
int y_count;
int input;
int input2;
int output;
int output2;
uint16_t cur_x_bit12;
uint16_t cur_y_bit12;
int ssv_len;
uint8_t ssv_dir;
uint8_t ssv_draw;
@@ -156,7 +150,6 @@ typedef struct ibm8514_t {
} accel;
uint16_t test;
int vendor_mode[2];
int h_blankstart;
int h_blank_end_val;
int hblankstart;
@@ -227,6 +220,11 @@ typedef struct ibm8514_t {
int ext_pitch;
int ext_crt_pitch;
int extensions;
int linear;
int _4bpp;
uint32_t vram_amount;
int vram_512k_8514;
PALETTE _8514pal;
latch8514_t latch;
} ibm8514_t;