Commit Graph

282 Commits

Author SHA1 Message Date
Cacodemon345
5e0dd65738 Add color/chroma-keying to S3 Trio64V+ and Trio64V2/DX
Clean up some TODOs in Voodoo 3/Banshee code
2025-08-19 23:56:51 +06:00
TC1995
7e3788f063 S3 clock rate changes of the night (August 18th, 2025)
1. Correct the clock chip of the S3 928 (Metheus Premier 928) to use a ics2494 one (a board picture shows the CH9294, a clone of the ics2494/av9194).
2. Correct the 8bpp and high color refresh rates of the Metheus Premier 928 when either bt48x x2 clock multiplier is enabled or when hitting high color.
2025-08-18 01:47:35 +02:00
Cacodemon345
1d19d2a588 Fix refresh rate for 15/16-bpp modes on Trio64V+ 2025-08-17 17:51:59 +06:00
OBattler
42fa1dbe54 S3 Cards: Fix timings in some modes to account for double-clocking. 2025-08-11 13:34:58 +02:00
TC1995
1a5b4671e8 XGA/SVGA mode changes of the day (July 22nd, 2025)
1. If the VGA mapping is for a 0xA0000 map for a length of 0x10000, then disable XGA mode (this is independent of the XGA extended mode aperture mode 1 which is XGA's own 0xA0000 mapping).
2. Remove text mode ctrl-alt-del hack.
3. Fixed cursor x coordinate in the Trio32 using 15bpp/16bpp modes.
2025-07-22 20:45:54 +02:00
Daniel Gurney
aef9d1ed94 Revert "Merge branch 'bugfixes' into master"
This reverts commit 8250b57325, reversing
changes made to 6c643d05b8.
2025-07-01 03:04:14 +03:00
starfrost013
adb8b388a8 v_disp -> vdisp_latch; get rid of even more unused shit 2025-06-21 00:55:39 +01:00
starfrost013
bba8f4d499 Remove various unused ega_t fields and lots of unused 8514 stuff 2025-06-21 00:39:50 +01:00
starfrost013
dd7f3d0aae ma -> memaddr
ma_latch -> memaddr_latch
maback -> memaddr_backup
ca -> cursoraddr
sc -> scanline
oldsc -> scanline_old
2025-06-10 22:53:45 +01:00
TC1995
75e76899da S3 911/924 high color: check if rd_mask is not 0 (May 21st, 2025)
This fixes wrong colors in certain instances of Windows 95 builds' 911/924 drivers.
2025-05-21 13:43:23 +02:00
TC1995
cc6076f93b Late night S3 changes (May 9th, 2025)
1. Pixtrans on port 0xb2e8 is not available on 864/964 and up (including the trio64) due to color compare taking its place, fixes some graphical glitches in WinXP.
2. The DOS s3id utility identifies the 80x chips correctly, either it's 801 ISA or 805 VLB, but not 805 ISA even if they share the same id, but since it's an ISA card, identify the Elsa Winner 1000 805 ISA as a 801 card.
2025-05-09 02:23:56 +02:00
MaxwellS04
1f40db5d9e Fixed ROM path 2025-05-07 11:29:11 +07:00
MaxwellS04
5d929c7735 Move Winner 1000's RAMDAC to ATT491 2025-05-07 10:39:22 +07:00
MaxwellS04
6fb01cf592 Added ISA-specific 86c805 (ELSA Winner 1000)
Ported from my ELSA_Winner_Series branch.
2025-05-07 10:11:51 +07:00
TC1995
1b1d6bcf45 Some cleanup to the recent fixes on the S3 code (May 6th, 2025)
See above.
2025-05-06 20:17:23 +02:00
OBattler
4a417da09b S3: Revert the video BIOS change, it was not necessary. 2025-05-06 19:34:14 +02:00
OBattler
ef3f57b338 S3 Trio32 On-Board VLB: Actually use the DEC Venturis 4xx video BIOS. 2025-05-06 19:26:26 +02:00
TC1995
b1d409471c Fixes to the S3 911/924 of the night (May 4th, 2025)
1. Actually mostly workarounds to make it render normally without a hitch (I hope) using the Diamond Stealth VRAM 911-based 15bpp driver.
2. Updated logs.
2025-05-04 02:01:34 +02:00
TC1995
0da871f54e Vast overhaul to the 15bpp/16bpp accelerated mode of the 911/924.
1. See above, as best as possible, but manuals would be helpful.
2. Reverted the ramdac of the 924 to the sierra one because of a bug that triggers 24bpp mode when it shouldn't.
2025-04-29 00:39:26 +02:00
TC1995
1c98437e66 More display changes.
SVGA related:
If CRTC1/HDISP is odd (if bit 0 is set), then make it even accordingly, else leave it as is. Should fix some display skews.

S3 related:
Remove old code references (can still be accessed through history if one needs it).

8514/A compatible related:
Proper use of the htotal and hdisp timings.
2025-03-29 14:49:13 +01:00
OBattler
2c197000ea Removed the legacy #defines in device.h. 2025-02-14 07:39:21 +01:00
Jasmine Iwanek
d5d1d5c449 More cleanups to device structs 2025-02-08 01:28:25 -05:00
Jasmine Iwanek
5b894c32e6 Macro Cleaning 2025-02-08 01:28:24 -05:00
Jasmine Iwanek
81b8038bc5 Clean up .available & .poll 2025-02-01 03:38:52 -05:00
TC1995
b141967a31 8514/A and S3 minor change (January 26th, 2025)
1. Cosmetic changes.
2. Revert the position of the starting coordinates of the Short Stroke command, fixes some glitches in NT and elsewhere.
2025-01-26 17:57:39 +01:00
TC1995
9bc5f0dd05 8514/A and S3 changes of the late day (January 9th, 2025)
S3:
1. Cleaned up the Short Stroke command processing.
2. Proceed calculating the error term only when it's equal or greater than the line length (Draw Line, Command 1 and also applies to Short Strokes, Command 0).

8514/A compatibles:
1. Reworked the polygon draw type A processing.
2. As with the S3, reworked the way error term is handled in the processing, and on Command 5 (Draw Polygon Boundary Line).
2025-01-09 22:58:40 +01:00
TC1995
4c9fb63c74 S3 changes of the day (December 25th 2024, Christmas 2024 gift)
1. Initialize Multifunction indexes 0x0D and 0x0E properly, should fix inverted colors on S3 OS/2 Warp drivers.
2. Make the remaining Vision868/968 only ports handle the 32-bit toggling properly.
3. Cleanups
2024-12-25 19:47:23 +01:00
TC1995
e4739de5cc S3 and Cirrus updates of the first day of winter (December 21, 2024)
Cirrus 5436/46 and 5480.
Finally fixed the Solaris 2.6 font issue, was a dword swap one with color expansion.

S3.
1. Make 868/968 ignore horizontal skew, ergo horizontal override until a proper solution is found regarding hardware tests.
2. Fixed a minor mix issue with S3 911/924 Win3.1 drivers in 8bpp mode.
2024-12-21 00:11:34 +01:00
OBattler
463badd613 kB -> KB. 2024-11-19 04:08:21 +01:00
OBattler
09eb050423 More KB -> kB. 2024-11-12 01:45:58 +01:00
TC1995
36e42af7b2 S3 bank update (October 29th, 2024)
1. Simplified 4bpp rendering mode.
2. Implement CRTC31 bit 0 functionality which enables/disables the vendor banks. Fixes Diamond Stealth 64 964 VRAM (VLB/PCI) detection on NT 3.1 (and possibly other cards) while keeping NT 3.1 347.1's full screen Command Prompt test normal without garbage using the 911/924 chips.
2024-10-29 01:16:21 +01:00
TC1995
9c111584b5 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.
2024-10-26 21:32:47 +02:00
OBattler
74b398be29 S3 non-ViRGE: Do not remove I/O handlers on ISA/VLB card reset, fixes soft reset, fixes #4866. 2024-09-28 14:34:45 +02:00
TC1995
962c9cdf2f S3 Pre-ViRGE changes of the day (September 26th, 2024)
1. Actually fix the remaining pinkish/reddish stuff in 32bpp modes properly (for real, especially OS/2 and possibly other stuff).
2. The Compare accel stuff is more sanitized.
3. When the BitBLT DY coordinates are negative, don't draw the pixels. This fixes some software cursor issues with OS/2's S3 3.03.xx drivers.
4. Reset the FIFO when the card is reset.
5. Indentation fixes (to be improved further however).
6. Implement bit 5 functionality of 0xBEE8 index 0xE (MULT_MISC) (and currently only in the Rectangle Fill command). This fixes missing text on I-O Data Vision968 specific drivers for Windows 3.10 Japanese (PC/AT compatible)
7. Moved the Streams engine out of the FIFO (like the ViRGE) as well as making all CRTC's of the Trio64V2 writable and SEQREGs from 0x10 onwards to make sure the Streams engine works properly.
8. Added a missing break from the RAMDAC read stuff.
9. Remove a leftover of PCem.
2024-09-26 23:18:38 +02:00
OBattler
6a5e9cdaba Fixed the S3 reset fix, fixes Windows 98 stuck on black screen on the S3 Trio64 on some machines. 2024-08-30 19:35:24 +02:00
OBattler
fe4ad0d4e1 S3: Make sure to absolutely restore everything to the original state on reset, even the contents of vram and changedvram, fixes #4768. 2024-08-30 06:01:52 +02:00
OBattler
818c268f75 S3 Vision x68: Fix PCI BAR to CRTC registers 59h/5Ah mask. 2024-08-28 20:21:47 +02:00
OBattler
ba859d7351 S3: Fixed CRTC to PCI BAR mapping, fixes #4745. 2024-08-26 04:36:23 +02:00
OBattler
882aabf95d Diamond S3 86c911: Use the correct clock chip, fixes #4730. 2024-08-18 20:35:47 +02:00
TC1995
a0d662e9c5 S3 changes (and TVP3026) of the day (August 15th, 2024)
1. TVP3026: disable lut mapping on 24bpp modes (mainly the S3 Vision968 drivers which use the TVP3026 ramdac).
2. S3 Vision968 (MiroVideo 40SV Ergo): Corrected 1280x1024 24bpp resolution.
3. ViRGE class: limit the FIFO entries in the bitblt regs to less than 16 entries and make the Image Transfers FIFO writes wraparound to 1 and reads to 0 (to allow at least a read to a write in the thread without hanging the entire emulator). Fixes Win3.1 PBRUSH colors while keeping performance on par with PCem.
2024-08-15 23:04:48 +02:00
TC1995
5247214061 Video changes of the day (August 12th, 2024, S3/TGUI/SVGA))
SVGA: Added an indicator of the internal line to make matters easier for some vertical resolution problems.
TGUI 9400CXi: Fixed the basic acceleration as much as I could.
TGUI 9440AGi+: As with the line indicator, make matters easier for some resolution problems plus some refactoring of the bpp. Added write protection to some regs based on some documentation on the vt8601.
TGUI cursor: fixed the left edge of the cursor X offset.
S3: Apply the vblankstart = dispend statement only on enhanced modes, fixes vertical display on The Incredible Machine for DOS.
Commented out some excess logs.
2024-08-12 19:52:52 +02:00
OBattler
e377e58881 Assorted fixes and Dev branched the Matrox G100 and the PCL printer. 2024-07-26 00:39:11 +02:00
TC1995
bfb4602e85 S3 fixes of the day.
1. Ported the S3 ViRGE reset fix to the Pre-ViRGE cards.
2. Slight cleanup on the acceleration and logs.
3. Unused sequencer register data now return 0xff instead of 0. This fixes Scorched Earth 1.x on DOS using S3 Trio32/64/V+/V2/868/968 cards (on other S3 it works fine as is).
2024-06-26 22:51:34 +02:00
TC1995
e9f19ec32b Fix compile warning.
See above.
2024-05-29 23:54:39 +02:00
TC1995
ff5d5273ed Video changes part 2
1. Added the Diamond Stealth 64 Video VRAM 968-based card.
2. Removed the useless VLB-based Phoenix 868 and 968 cards.
3. The Diamond Stealth 64 Video VRAM specific drivers apparently use 0x83ca-0x83cb as aliases of the RAMDAC ports 0x83c6-0x83c7 (New MMIO mode). This makes the hardware cursor visible in those drivers on win3.1 using the IBM RGB RAMDAC.
4. A few more logs and sanity checks around LFB access and MMIO as well.
2024-05-29 23:45:00 +02:00
TC1995
1baae350dc More S3 changes/fixes.
S3 928:
When the pitch is 1280, make sure the proper horizontal resolution is displayed right (in this case, 1280x1024).

S3 Vision864:
Exclude it from the horizontal blank bits due to more issues that are TBD (like the Trio32 and 64 and up), this works around the mode issues under Windows 9x and more as well as fix 32bpp horizontal rendering in said chip.
2024-05-20 02:26:10 +02:00
OBattler
3e6b4aa9e1 S3 Trio64V+ VLB: Limit to a maximum of 2 MB video memory. 2024-03-06 22:51:24 +01:00
TC1995
c13272ec48 S3 80x cursor fixes:
1. The SPEA specific cards using the 801/5 chip apparently have an ID that's not 0xa0, rather, they either use 0xa2 or greater for the stepping. Fixes wrong colors in 800x600 modes and greater in 8bpp mode.
2. HWCursor addresses for 8bpp are now properly implemented if the 8bpp mode bit (CRTC3a bit 4) is checked, no longer relaying on GDCREG5 bit 6). Fixes garbage cursor in the SPEA 80x cards drivers (BigWin) using 8bpp mode.
2024-02-25 14:06:25 +01:00
cartifanwlr
c57dfed4e7 Fix the internal name of the S3 Trio64V+ VLB 2024-02-23 18:41:41 +03:00
OBattler
8cf8ccf3b3 Added the STB PowerGraph 64 Video (S3 Trio64V+ VLB). 2024-02-22 01:08:21 +01:00