Commit Graph

2022 Commits

Author SHA1 Message Date
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
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
Cacodemon345
5b7ac6fa21 Add Intel Advanced/MA (Monaco) (#6297) 2025-10-08 16:10:42 +02:00
Cacodemon345
5f6aa3b44e Add ATi Mach64 VT emulation (#6300) 2025-10-08 15:38:32 +02:00
Cacodemon345
0b487422b2 Gamma correction support for Mach64VT2 (#6294) 2025-10-08 09:22:36 +02:00
TC1995
c73cb84f8f Mach64 changes of the day (October 7th, 2025) (#6295)
* AdLib Gold changes of the day (September 23rd, 2025)

1. Make sure the check to the Surround module is properly placed when disabled/enabled.
2. Replace local adgold_buffer with opl_buffer from its struct to improve the audio output and less clipping.

* Some fixes for the AdLib Gold of the day (September 26th, 2025)

1. Revert the sampling DMA int functions back to void but with a check that monitors the DMA FIFO whenever it's within the range or not.
2. Actually clear the IRQ properly.

* Mach64 changes of the day (October 7th, 2025)

1. Add a second call to wake_fifo_thread to reduce thread glitching.
2. Minor cosmetic fixes.
2025-10-07 22:33:21 +02:00
Cacodemon345
a2d7e9383d Add ATi WinCharger (ATi Mach64CT) emulation (#6293) 2025-10-07 19:03:18 +02:00
Miran Grča
430fa409ce S3 ViRGE: Remove an excess masking line. 2025-10-01 17:52:29 +02:00
Miran Grča
fc506d02e1 S3 ViRGE: Fix the LFB mappigs to operate in accordance with the documentation.
Fix certain UVCONFIG-using games at 16 or 32 MB of machine RAM.
2025-10-01 17:45:48 +02:00
Cacodemon345
4a6327da68 S3 ViRGE: Move sign bit 1 bit further to the right for K2 scaler registers (#6243)
* Fix sign position of DDA accumulator registers

* S3 ViRGE: Move sign bit 1 bit further to the right for K1/K2 scaler registers

* K1 scales are 13 bits
2025-09-27 21:58:07 +02:00
Cacodemon345
bc41f8bbb6 Fix sign position of DDA accumulator registers (#6241) 2025-09-27 19:57:12 +02:00
Cacodemon345
3fd58dde8f Implement YUV aperture on Mach64 VT2 (#6234)
Some GDBSTUB fixes
2025-09-27 13:32:00 +02:00
Miran Grča
810f17c50f Merge pull request #6192 from 86Box/feature/int-cast
Add integer casting macros
2025-09-22 00:55:49 +02:00
Cacodemon345
0b0bf2e438 Fix overflow crashes in certain cases 2025-09-21 17:39:40 +06:00
OBattler
e736dbc694 CL-GD 5436: Correct the ICS SB486PV check. 2025-09-21 12:24:17 +02:00
Jasmine Iwanek
3c5190a0db Header cleanups (1/2) 2025-09-21 00:48:38 -04:00
RichardG867
7c25ca22e3 Convert existing code to the integer casting macros 2025-09-19 20:09:29 -03:00
RichardG867
25146643f9 Migrate remaining machine-specific checks from internal name to init function 2025-09-19 19:41:01 -03:00
Miran Grča
d8380b07a9 ET4000/W32* PCI: Revert BIOS read/write code to PCem's, fixes #6175. 2025-09-16 23:50:45 +02:00
TC1995
c3a6e826b4 S3 928 and icd2061 mode rework (September 15th, 2025)
The rework resolves around implementing the clock multiplier and multiplexing rate of the bt485 ramdac alongside existing additional flags for eventual fixes (like cr31 bit 1) as well as the true color bypass (for 16-bit and true color modes). These, together, allow proper rendering of the generic VESA S3 drivers alongside non-VESA ELSA OEM drivers on various guests.
2025-09-15 17:48:24 +02:00
OBattler
82ad957380 PCjr: Fix 320x200x4 mode. 2025-09-14 19:16:55 +02:00
starfrost013
57ae731e22 Goodbye, 32-bit 2025-09-14 01:32:41 +01:00
OBattler
60d502daad (S)VGA pel panning: values above 7 behave like 7. 2025-09-10 00:28:05 +02:00
TC1995
3a67c54687 Overriding changes (September 9th, 2025)
Dealing with 3D card overriding with XGA/IBM 8514/A compatibles again...
2025-09-09 23:07:29 +02:00
OBattler
e630a8fa25 (S)VGA: Implement some level of pel shift memorization. 2025-09-09 21:50:49 +02:00
OBattler
51c2328949 (S)VGA: Implement odd pel shifts in 256-color modes. 2025-09-09 20:11:59 +02:00
OBattler
91d7bb3839 (S)VGA render: remove an excess logging line. 2025-09-09 01:29:47 +02:00
TC1995
3a703d0c0d Last minute changes for the high color S3 911/924 mode
Read mask initialized to 0xff allows proper colors on initial boot of Windows.
2025-09-09 00:18:14 +02:00
TC1995
8bb6444c7a Latest video fixes of the day (September 8th, 2025)
On soft-reset, reset the Misc Multifunc (0x0D/0x0E) values to sane defaults per manuals.
2025-09-08 22:59:34 +02:00
OBattler
84d96271de Implement the Super MegaZeux text mode. 2025-09-08 22:27:39 +02:00
Cacodemon345
22ba8b32c1 Add support for Trio3D/2X's 8-bit palette DAC 2025-09-08 15:37:11 +06:00
OBattler
a13bc2d532 EGA: Remove an excess logging line. 2025-09-07 23:31:07 +02:00
Cacodemon345
569827ce02 MGA: Implement unscaled YUV blits for ILOAD 2025-09-07 14:19:09 +06:00
TC1995
a6becc3158 Major video changes and fixes of the day (September 7th, 2025)
1. Rewritten Sierra SC1502x RAMDAC code to match the manual, allowing proper BPP selection on cards which use it.
2. Added a reference clock variable for cards which have a different default one (ELSA cards namely) on the ICD2061 code.
3. Reorganized RAMDAC selection in the S3 code.
4. Added more ELSA Winner cards based on the 928 chip (ELSA Winner 2000 ISA, 1000 VLB and 1000 PCI based on 928PCI).
5. The horizontal override is now also enabled for ELSA Winner 1000 (928 VLB and PCI) cards with 32bpp set, to avoid wrong horizontal displays.
6. LFB in PCI mode doesn't have the same limitations as on VLB or ISA.
7. Added more hdisp adjustments for the Elsa cards.
8. Mono patterns are now more correct in ROPBLT acceleration (command 14), fixes blackness in some instances of Win95 (matching the 968 manual).
9. Minor cleanup on the accel registers.
2025-09-07 01:01:03 +02:00
TC1995
5f06561469 EEPROM use changes and misc (September 3rd, 2025)
1.Move the 93cxx EEPROM implementation to the mem directory since it's used by cards which are not nics (e.g.: DC390 SCSI and S3 ELSA cards).
2. DC390 specific: remove the implementation used there and use the generic one from mem (used to be on the network directory) as well as fixing bus reset when interrupts are related.
3. S3: when the 64k size is selected in the LFB, use the SVGA 64k mapping as LFB (0xA0000).
2025-09-03 00:49:27 +02:00
OBattler
d8b7b25820 Rename MGA DMA states to MGA_DMA_STATE in preparation for the 6.0 CPU rewrite. 2025-09-02 22:47:13 +02:00
David Hrdlička
54fc345ee5 Fix warning 2025-09-02 10:28:58 +02:00
David Hrdlička
37a1aaa721 Rename file, add copyright header 2025-09-02 00:30:05 +02:00
David Hrdlička
8ab80ca26f Fix sign warnings 2025-09-02 00:18:36 +02:00
David Hrdlička
948e18945b Fix seeking in text mode 2025-09-02 00:06:41 +02:00
David Hrdlička
33c0f2eba8 Fix 2025-09-01 18:43:46 +02:00
David Hrdlička
043e2b6baa Rewrite custom EDID loading 2025-09-01 18:35:56 +02:00
Miran Grča
8529f1aa06 Merge pull request #6117 from Cacodemon345/edid-decode-text
Add support for parsing edid-decode text dumps
2025-09-01 12:44:13 +02:00
Cacodemon345
52f3ed1b42 Add support for parsing edid-decode text dumps 2025-09-01 13:21:59 +06:00
TC1995
0261e04365 S3 changes of the night (September 1st, 2025)
1. If a card uses the icd2061a clock, so be it in a better way.
2. Vertical display fixes for heights greater than 1024 pixels, e.g.: 1600x1200 on the ELSA 96x cards.
3. Misc fixes (ROPBLT).
4. 0x3ca and 0x3cb in read mode are actually different from writes.
2025-09-01 00:24:32 +02:00
OBattler
1b173963fe Fix the timings of the non-Elsa S3 Vision cards with the IBM RGB528 RAMDAC. 2025-08-31 20:44:40 +02:00