Commit Graph

680 Commits

Author SHA1 Message Date
OBattler
355c26efa8 S3 fixes. 2021-10-26 03:09:20 +02:00
TC1995
61273f5c1f Video changes:
Improved the banking of the ATI 28800-5 cards (VGA Charger and VGA Wonder XL).
Improved the skew and horizontal display of some of the ET4000W32P cards as well as the cursor.
Made the Oak OTI 077 and PVGA WD90c30 cards use the Sierra 11487 (actually a clone is used in the real cards).
For the WD90c30, changed the way the hack is involved.
Reverted some changes of the S3 Vision/Trio that originally made glitches, now the glitches are gone and the accelerator renders fine.
Re-organized the Sierra 1148x RAMDAC's and added the 11486 (Mark 1).
MCA SVGA cards use the full 32-bit mapping.
2021-10-24 19:06:05 +02:00
OBattler
3d5096753d Fixed the Cirrus Logic CL-GD 54xx reset handler to avoid excess mapping disables on non-PCI cards. 2021-10-07 15:44:56 +02:00
OBattler
66db0f11a4 Implemented reset handlers for Cirrus, S3, and S3 ViRGE cards. 2021-10-07 01:15:02 +02:00
OBattler
6ee1fb490a Made the video_copy stuff Unix-friendly. 2021-10-06 23:18:33 +02:00
OBattler
b7f5d4a773 Video 7 fixes, fixes RAMDAC 6-bit/8-bit switching on the Radius SVGA MultiView. 2021-10-06 18:12:22 +02:00
OBattler
46807540ed Rewritten renderer blitting, fixes flickering when inversion or grayscale is used. 2021-10-06 02:26:30 +02:00
TC1995
8572739a55 S3 changes part 8:
Properly fixed text/graphics mode of the S3 pre-ViRGE cards.
PIX TRANS cleanups.
Added a sanity check to banking, per bit 0 of CRTC31.
Initial implementation of Enhanced 4-bit mode.
911/924 chips use CRTC43 bit 3 for enabling 15/16bpp mode.
fb_only variable used correctly as of now (depending if on 4bit or 8bit+ modes).

S3 ViRGE changes part 2:
Made the Trio3D/2X AGP use the PCI_ADD_AGP part accordingly

RAMDAC changes:
Sierra 11483 and 11487 don't have an RS2 signal so the four times reading scheme of 0x3c6 is used instead, per documentation.
Fixed AT&T 49x bpp selection.

Other changes:
Fixed remaining rendering issues with the Radius SVGA HT209 card.
2021-10-05 22:24:26 +02:00
TC1995
23083b48e8 S3 changes part 7:
Added dword addressing to pix trans reads.
Added VRAM masking to the hardware cursor.
Properly fixed the FIFO slots.
Width set to 1024 by default in the 911 and 924 chips.
2021-09-26 21:29:51 +02:00
TC1995
3bfcfc01a3 S3 ViRGE changes:
Added a timer to improve perfomance of the 3D engine.
Made the Trio3D/2X available for all.
Reserved bit 2 of CR33 is now always set to make sure Win95's Trio3d/2X drivers work along with a workaround for the memory size.
Added preliminary DMA bus master capabilities.
2021-09-26 21:13:47 +02:00
OBattler
52e7b9b772 Fixed S3 and ViRGE hardware cursor clipping, fixes #1733. 2021-09-25 14:21:43 +02:00
TC1995
1ae65f25e2 S3 changes part 6:
Reintroduced dword mode for chips before Trio64V+.
The Trio64V+ and Trio64V2 chips now have svga->fb_only (which is strongly required by the mapping and the modes) and packed_chain4 set, just like the ViRGE.
2021-09-18 14:11:30 +02:00
TC1995
c4038f48f3 S3 changes part 5:
Rewritten non-threaded FIFO to be sure that it won't hang any OS (especially OS/2) and won't cause any more glitches on Windows 3.1 86x/96x drivers.
Fixed the decode mask of the Vision868 (8MB instead of 4MB).
Fixed 16bpp cursor using the MiroCRYSTAL 10SD specific drivers for OS/2 (including seamless Win-OS/2)
2021-09-18 00:36:54 +02:00
TC1995
20d7bb00b2 S3 changes part 4.
Fixed Chicago 73x (73f/g and 81)'s width/pitch in 15bpp mode using its built-in drivers at 800x600 using the 928.
Vastly improved implementation of the Short Stroke Vectors.
Removed threading for FIFO mode in the cards using the 964 chips and up.
Implementation of the non-threaded FIFO for cards using the 964 chips and up. Should fix most remaining wallpaper issues with those chips.
Improved recalctimings when 256+ mode Enhanced Mode is issued.
Added the MiroCRYSTAL 8S VLB card (805, SDAC).
2021-09-16 23:49:16 +02:00
OBattler
0e8348f0e2 Fixed the red and blue swap in screenshots. 2021-09-14 21:24:12 +02:00
OBattler
fa960bec55 Changed the F82C425's colors so that the darker ones are more blue, like on the real V86P. 2021-09-14 15:35:40 +02:00
OBattler
a68b738308 Improved it a bit. 2021-09-14 02:33:52 +02:00
OBattler
3cd6518f11 Fixed it again. 2021-09-14 02:29:34 +02:00
OBattler
49b508caab And another fix. 2021-09-14 02:23:54 +02:00
OBattler
be22d67ed6 And another fix, to not break interlaced modes. 2021-09-14 02:17:57 +02:00
OBattler
b8bc115c7f Fixed said implementation. 2021-09-14 02:14:42 +02:00
OBattler
411a64553d Implemented S3 Cursor Right Addressing. 2021-09-14 02:08:11 +02:00
OBattler
f27fec1740 Removed EGA/(S)VGA render wake-up on zero-sized blit and fixed the last compile-breaking mistake in the Unix SDL code. 2021-09-13 23:28:00 +02:00
OBattler
96faa28eeb Removed the useless y1 and y2 parameters from the renderers' blit functions (and other places). 2021-09-13 23:19:10 +02:00
OBattler
13dc05cfd2 Removed the useless double-buffering in video/video.c, improves performance and reduces RAM usage. 2021-09-13 21:02:15 +02:00
TC1995
04e48a071e S3 changes part 3:
Added the Phoenix S3 Vision968 (IBM RGB) and the MiroCRYSTAL 20SD VLB (864, SDAC) (alongside their BIOSes).
Added the vendor specific bits of CRTC5c used by the MiroVIDEO 40SV Ergo (968), Phoenix 868 and Phoenix 968.
Restored FIFO in the pre-964 cards, but without threading (Warning, code might be bloated for this).
Fixed horizontal issue with the SPEA Mercury P64V (968).
2021-09-11 22:02:31 +02:00
TC1995
bae38e23a7 Corrected SUBSYS information of the Velocity 100, now it displays fine. 2021-09-08 18:40:37 +02:00
OBattler
e9615fc167 Added support for JVERNET's V86P ROM's, and fixed the bugs reported by lemondrops. 2021-09-07 23:57:26 +02:00
Lubomir Rintel
a05f5d493f Add Chips & Technologies 82C425 CGA LCD/CRT controller emulation
The 82C425 is a CGA-compatible display controller chip. On top of being
able to drive a regular CRT display like an ordinary CGA card, it can
be configured to drive a monochrome 640x200 LCD panel instead.

The chip along with a LCD panel are notably used in the Victor V86P
laptop comupter.

When driving a monochrome LCD, the controller is able to employ some clever
tricks to compensate for he lack of color: by alternately turning dots on
and off with various duty cycles it can achieve displaying 4 or 8 shades
of gray. It can also enhance contrast between the text glyphs and their
background when it's less than the configured minimum (with "SMARTMAP"
algorithm).

The emulation is fairly complete. The 320x200 graphical mode uses 4 gray
shades along with stretching the pixels horziontally much like the real
hardware would. SMARTMAP is implemented for text mode and also matches
the real hardware pretty closely.

The missing bits are:

 * Configurable blink rates
 * Mapping the character map into host address space

The code is based on the T1000 display controller emulation and
still bears strong resemblance to it.
2021-09-07 21:34:18 +02:00
TC1995
293cb6a3cf My dword/byte mode fix doesn't apply to the Trio64V+ and up (Trio64V2/DX). 2021-09-06 22:11:09 +02:00
OBattler
680f0e2294 Fixed Hercules overscan in graphics mode, fixes #1666. 2021-09-06 13:48:07 +02:00
TC1995
4f5a78a8b9 Added a force byte mode variable to prevent dword mode from operating due to glitches in the S3 acceleration using said mode. 2021-09-06 13:03:50 +02:00
Miran Grča
ca4f66c7a9 Merge pull request #1664 from 86Box/tc1995
Fix 3 for the dword mode for duke3d/lxpic/standard and miro drivers f…
2021-09-05 23:50:18 +02:00
TC1995
b9cdf0521f Fix 3 for the dword mode for duke3d/lxpic/standard and miro drivers for win3.1 (I swear).
Re-added the byte swap bit in pix trans write word mode that was accidentally removed, fixes buttons in pifedit using the 968 in Win3.1.
2021-09-05 23:17:38 +02:00
Miran Grča
0de3c10341 Merge pull request #1661 from 86Box/tc1995
Fix the dword mode fix in the S3 code.
2021-09-05 20:31:03 +02:00
OBattler
6536a04590 Implemented Hercules overscan, closes #1638. 2021-09-05 20:30:43 +02:00
TC1995
e37f477ebf S3 dword mode:
CRTC14 bit 6 (standard dword mode) has the highest priority over CRTC31 bit 3 (S3 dword mode), so if the latter is enabled while the former is disabled, it's byte mode. Fixes both Duke3D, LXPIC and Win3.1 running at the same time (once and for all).
2021-09-05 19:53:03 +02:00
TC1995
1c634759c5 Fix the dword mode fix in the S3 code. 2021-09-05 19:25:16 +02:00
OBattler
b834365f30 Fixed CRTC register readout on the Hercules, fixes #1656. 2021-09-05 19:03:32 +02:00
TC1995
0ae17cbb3e S3 changes/improvements:
Overhauled the read portion of the PIX TRANS command (fixes white corruption in some instances while keeping everything already working fine).
Fixed Miro 10SD recalctimings issue about losing graphics mode.
DWORD mode SVGA CRTC bit fixed when S3 DWORD mode bit is enabled.
2021-09-05 18:10:54 +02:00
TC1995
16996ab2a2 Added the 3dfx Velocity 100 per request, alongside its BIOS. 2021-09-05 01:16:56 +02:00
OBattler
2415673c7a Some small S3 fixes (bugs found by clang). 2021-09-03 00:41:10 +02:00
TC1995
229e61b74d Minor pix trans fixes to the S3 code (R/W). 2021-09-03 00:27:08 +02:00
TC1995
391c6a3571 S3 & TVP3026: Part 2.
Reworked the pix tranfer register to allow a word in a byte transfer.
Added an alternative bios selection for the SPEA Mirage 801 card (3.05I and 4.01, the latter being the default now.
Added the MiroCrystal 10SD 805 VLB, Phoenix 801 ISA, MiroVideo 40SV 968 VLB/PCI, SPEA Mercury P64V 968 PCI , SPEA Mirage P64 Trio64 VLB cards.
Removed some non-working S3 cards like the Trio64V+ VLB and Elsa Winner 2000 Pro X VLB (only PCI variants of these cards are now in)
2021-09-03 00:05:43 +02:00
Miran Grča
2d6194aecc Merge pull request #1644 from 86Box/tc1995
S3 & TVP3026: Part 1.
2021-09-02 20:17:06 +02:00
OBattler
84f4b8cac7 Added a bunch of parameters (including one to specify custom ROM path), fixed a warnings, removed excess commented out code from video/vid_voodoo.c, and made Makefile.mingw quiet again. 2021-09-02 20:15:46 +02:00
TC1995
296df745ed S3 & TVP3026: Part 1.
Initial implementation of the tvp3026 ramdac, (clock still missing, will be added later).
2021-09-02 16:04:58 +02:00
TC1995
87abf37e2f Added Short Vector accel command to the TGUI cards and some cleanups and fixes. 2021-09-02 15:21:20 +02:00
David Hrdlička
69a8c63c33 cmake: no SSE2 flag on non-x86 targets 2021-08-29 04:55:05 +02:00
OBattler
ecc54b1717 Fixed the indentation of blit_thread(). 2021-08-26 13:54:32 +02:00