Commit Graph

2076 Commits

Author SHA1 Message Date
TC1995
913c7c682b Refresh rate fixes for mach8/32 and tgui9440/96x0
The Trident ones are a reworked port of MAME's code.
2025-12-17 22:13:37 +01:00
Cacodemon345
62a116586f 1. Allow agpMoveCMD register reads
2. Fix bad depth + 16-bit RGB565 writes
2025-12-18 01:40:42 +06:00
Miran Grča
242d272c1a Merge pull request #6568 from AITUS95/master
Voodoo 1: Fix Screamer Rally regression while keeping Final Racing fix
2025-12-17 10:27:04 +01:00
AITUS95
bd29eadfd8 Reduce cmdfifo_depth to 20 2025-12-17 10:00:19 +01:00
AITUS95
df3fa89798 Voodoo 1: Reduce FIFO wake delay from 2000 to 500 2025-12-17 03:53:05 +01:00
AITUS95
7e05cdcce5 Voodoo 1: Change cmdfifo_depth threshold from >300 to <80 2025-12-17 03:51:19 +01:00
OBattler
6e8f1204cf And non-ViRGE S3. 2025-12-15 22:08:29 +01:00
OBattler
da3b367604 And ATi Mach64 as well. 2025-12-15 22:07:39 +01:00
OBattler
01a1b5f30d S3 ViRGE: Get rid of atomics on x86. 2025-12-15 22:05:18 +01:00
Cacodemon345
601155fdd6 Implement Voodoo alpha planes and alpha mask support
Fallback to interpreter if alpha planes are used for now
2025-12-14 23:27:18 +06:00
RichardG867
2ca88989c4 BT48x: Remove excess logging 2025-12-13 16:46:23 -03:00
TC1995
a37b813db2 Mach64: fix wrong refresh rates based on the character width to be calculated for the crtc timer.
svga->char_width should be 8 when Mach64 extended modes are enabled.
2025-12-11 21:10:34 +01:00
Cacodemon345
48f6db24e2 Add ASUS TX97-XV (HP OEM) board
Shipped with either ATi RAGE II or ATi Mach64 VT3
2025-12-04 23:44:07 +06:00
AITUS95
490d88798b Restore FIFO wait loop in Voodoo LFB readback to avoid regressions 2025-11-30 00:09:49 +01:00
AITUS95
7c8cafb021 Fix Voodoo1/2 LFB readback slowdown by removing FIFO busy-wait loop
Refactor FIFO handling to check for emptiness before waking thread.
2025-11-29 20:33:18 +01:00
TC1995
030edf4bee Fixes for most video cards, ramdacs and clock generators
1. Actually place the correct clocks in the PVGA-based ICS90c64a (see sources).
2. Make sure the difference between 4bpp and 8bpp in the BT484/5 ramdac is actually seen and done.
3. Forgot the ATI panning flag for the plain Mach64GX cards.
4. Fix standard VGA graphics mode for Japanese text in the Mach32 so that it's rendered correctly (if bit 5 of ati 0xb0 and bit 0 of 0x4aee clock select are 0).
5. Normalize ET4000AX clocks.
6. ET4000W32 series: fix some hwcursor issues in win3.1/winos2 (in non-24bpp modes) as well as well as the chips' clocks. Cleanup of the modes too.
7. Video7  HT208 cards: Add the 7.04 HP OEM bios and implement the clocks according to its manual (HT208, below).
8. More fixes of the stalls caused by FIFO stuff in non-FIFO modes (S3 stuff).
9. Remove unused code in vid_svga.c (vga core layer)
2025-11-27 00:18:59 +01:00
AITUS95
eee4ec9f87 voodoo1: apply higher CMDFIFO wake threshold only for Voodoo1 2025-11-26 19:40:51 +01:00
AITUS95
e5e51b3c34 voodoo1: apply FIFO wake delay only when type == VOODOO_1
Updated the wake delay for the FIFO thread based on the card type.
2025-11-26 17:06:15 +01:00
AITUS95
1f45cf2872 voodoo1: restrict increased CMDFIFO threshold to VOODOO_1 only 2025-11-26 17:04:54 +01:00
AITUS95
ee48c1be89 Increase WAKE_DELAY from 1000 to 2000 2025-11-26 15:02:23 +01:00
AITUS95
689fd67d63 Increase command FIFO depth threshold from 200 to 300 2025-11-26 15:01:09 +01:00
AITUS95
4608737831 voodoo: improve CMDFIFO wake logic to reduce excessive FIFO processing 2025-11-26 14:05:24 +01:00
AITUS95
961131201e voodoo: reduce FIFO thread wake frequency to avoid performance stalls 2025-11-26 14:04:24 +01:00
TC1995
70545ec25d Refresh rate and acceleration fixes and cleanups for displays.
1. Some fixes to the S3 refresh rates using the bt48x ramdac as well as 32bpp acceleration (actually pixtrans reads) fixes, which are actually one single dword rather than two words. (This fixes some graphical bugs in 32bpp mode using OS/2 Warp with the Elsa 928 drivers).
2. Add undocumented ports 0x82ec and 0x82ed, needed by the Elsa OS/2 928/805i cards to operate correctly and not getting stuck at a blank screen.
3. Workaround a read select register issue when reading back the accelerated height (0xbee8 index 0x0f bits 3-0 returning a non-height index, in this case, 0x0e) so that the height is not zeroed on writes after the first reads, allowing text and fonts to be displayed on OS/2 Warp 3's built-in S3 864 drivers in every bpp.
4. Don't run the mach8/32 specific clock if we're in plain VGA text mode.
5. Some cleanups to the et4000w32 chip series, including a clock (refresh rate) fix for OS/2's built-in drivers and the extended crtc parameters to be run only on graphics modes.
2025-11-11 00:22:34 +01:00
Juan Carlos González Amestoy
a1c29154ae Fix color value in the IBM 8153 palette 2025-11-08 11:57:19 +01:00
OBattler
f71da53ee8 Matrox: Simplify some transc checks. 2025-11-08 03:33:26 +01:00
OBattler
e0aa4c74d4 Bochs VBE: Simplify horizontal blank end calculation. 2025-11-08 03:30:57 +01:00
OBattler
6afc72b860 IBM PS/ValuePoint 433: Fix on-board ET4000/W32. 2025-11-05 17:36:54 +01:00
OBattler
3dc3cfc00d ATi Mach8 EEPROM: Remove superfluous (and emulator-crashing!) fseek(). 2025-11-05 15:03:32 +01:00
OBattler
daf34f3dcd (S)VGA: Bring back specific pel panning behavior for some ATi and Tseng graphics cards, closes #6437. 2025-11-05 02:54:51 +01:00
pixel-jupiter
c490e3e14c PCjr: Fix inverted horizontal screen movement 2025-11-04 07:43:51 +03:00
OBattler
30743b6dfd Tandy warning fix from pixel_jupiter. 2025-11-02 03:51:47 +01:00
TC1995
79614f6ada Swap the XGA 4bpp rendering nibbles for proper display.
Fixes incorrect rendering of XGA 4bpp accelerated modes (INMOS XGA ISA and XGA MCA add-ons)
2025-11-02 00:52:20 +01:00
Bozo Scum
811cdcdb9a eliminate Missing ROM file error for 'Tsengs ET4000w32p Rev.B (VideoMagic)' on case-sensitive platforms such as Linux 2025-10-30 15:37:30 +08:00
bozoscum
e5e9cf6fc0 Merge branch '86Box:master' into master 2025-10-30 15:33:06 +08:00
Miran Grča
8b02672a2d Merge pull request #6419 from pixel-jupiter/tandy-shake
Tandy: Implement CRTC-based display shifting (R2 & R7 registers)
2025-10-29 18:11:59 +01:00
bozoscum
5333af80d1 Merge branch '86Box:master' into master 2025-10-28 18:12:10 +08:00
TC1995
dde2565736 Revert the k1/k2 s3 virge masks.
Should fix some overlay Streams bugs.
2025-10-27 16:38:30 +01:00
TC1995
4e124968de Unbreak 800x600x32bpp Elsa Winner 1000 928VL mode.
Fix its clock and as well as 640x480x32bpp OEM mode clock.
2025-10-25 23:16:57 +02:00
TC1995
d26ec73d0d Add proper clock generators to the V7 cards.
1. Add a variant of the ICS1494 clock generator specifically for the Radius HT209 card.
2. Add the ICD2047 clock generator to the HT216-32 card.
3. Add the previously missing 7.00 BIOS revision of the VGA 1024i HT208 card.
2025-10-24 21:32:14 +02:00
pixel-jupiter
258c89151c Optimize negative bounds checking in rendering loops 2025-10-24 05:56:55 +03:00
bozoscum
5643979020 Merge branch '86Box:master' into master 2025-10-22 18:28:05 +08:00
Bozo Scum
bd8310f5e7 fix Display Type does not correctly apply to Video #2 2025-10-21 13:25:42 +08:00
Jasmine Iwanek
cff55b210c Fix more compile warnings 2025-10-20 23:50:20 -04:00
TC1995
2ee0f0e470 RAMDAC/Clock fixes to the S3 and ET4000AX cards
1. The S3 968-based Diamond Stealth 64 Video VRAM, using a 14mhz reference clock, now has its RGB528 fixed Pixel PLL reference divider set to its default value (0x07) per manual and reference clock. Fixes wrong refresh rates on said cards and others.
2. Added the ICS2494-324 clock generator to the ET4000AX. Fixes wrong refresh rates on this one too.
2025-10-20 20:32:41 +02:00
TC1995
f7a3ca4ccd Corrections to displays (October 18th, 2025) (rebase)
1. In the STG code, separated the STG1703 without its built-in clock as 1702 while keeping the one with the clock as 1703.
2. Added the ICS2494AN-324 clock generator used by the et4000w32 series.
3. Return 0x98 as the ID of the ATT498 ramdac.
4. Corrected the pixel clocks of the IBM RGB528 while keeping its current compatibility and exactness of the refresh rates of its clocks.
5. Added a variable reference clock of the SDAC/GenDAC for future use.
6. The clocks of the TVP3026 have been implemented for a while. Some corrections have been made (plus color key r/w).
7. Mach64 enhanced mode doesn't use scrollcache (bits 0-3 of attrregs 0x13), fixes some pixels being off (mainly in win3.1x)
8. Reorganized the cirrus 54xx built-in clock for proper refresh rates.
9. Proper reorganization of the et4000w32 series of chipsets and their cards supporting them, from cursor to clocks to ramdacs plus a 24bpp acceleration fix for the w32p series (about pixels being processed in bitblt).
10. Removed the PCI videomagic card as its bios doesn't have the PCIR header while making sure the plain ISA/VLB w32 and ISA only w32i (now named Axis Microdevice) support 2mb of vram properly.
11.  Added the Hercules Dynamite VL Pro based on the w32i chip (and VLB).
12. Initialize the et4000w32 cards with misc bit 0 set as well as crtc31 bit 6 for rs2 connection to the ramdac.
13. Refactored the S3 Pre-ViRGE code to have proper refresh rates and clocks and added the 805I as a member of the chips (ID 0xa8).
14. Replaced the S3 805I Elsa Winner 1000 ISA bios with a more supported one for our code using the SDAC.
15. Added proper 24bpp acceleration to the Visionx68 chips.
16. Fixed wrong colors in the 911/924 15/16bpp acceleration when used for the first time.
17. Match the ViRGE mapping to the pre-ViRGE one per manual/datasheet.
18. Correct as best as possible the TGUI9400 clocks.
2025-10-18 03:09:34 +02:00
pixel-jupiter
f58164db1b Trigger baseline calibration on mode change instead of on specific CRTC register writes 2025-10-18 02:00:23 +03:00
Cacodemon345
32b3f1930d Fix bad PCI slots for onboard Mach64 PCI devices (#6341) 2025-10-13 21:10:34 +02:00
Miran Grča
640bd2b5ca Update video.c: More alpha channel related fixes. 2025-10-10 03:50:25 +02:00
Cacodemon345
51a814c959 Correct the internal name of on-board ATI Mach64CT device (#6301) 2025-10-08 17:19:12 +02:00