Commit Graph

94 Commits

Author SHA1 Message Date
OBattler
708a700abd Mystique: Made the changes apply only to the Millennium. 2023-12-23 15:27:08 +01:00
TC1995
012527fc4e MGA flicker fixes.
It's time to end the flickers once and for all by making the start address correctly emulated in vblank_start when in power graphics mode.
2023-12-23 15:02:15 +01:00
OBattler
28775d2583 Millennium: Do not ignore the interlace bit. 2023-12-23 14:11:46 +01:00
Cacodemon345
94dfb353c0 Fix NASCAR Racing 1994 regression 2023-12-23 14:21:50 +06:00
Cacodemon345
7bba9cee78 Matrox Mystique: Fix display flickering issues for real
Direct3D tests under Windows 95 do not flicker anymore, and the MSICUBE sample program renders correctly.
2023-12-23 14:03:18 +06:00
OBattler
539f9a06a5 Mystique: Disable line compare, turns out it was disabled for a reason. 2023-12-22 23:21:57 +01:00
OBattler
ede2ce9102 And reverted it again. 2023-12-22 23:12:25 +01:00
OBattler
ad6ddfb31e Mystique and Millennium: Revert the ma change. 2023-12-22 23:11:24 +01:00
OBattler
816bc6f559 Mystique: Only update maback, the change will take place at the next retrace. 2023-12-22 11:45:46 +01:00
Miran Grča
799a9aa883 Merge pull request #3921 from Cacodemon345/patch-147
mystique_line_compare: Re-enable line compare behaviour
2023-12-22 11:31:35 +01:00
Cacodemon345
6b7cb3a0d4 mystique_line_compare: Return 1
Reduces glitches on M3D, although it doesn't eliminate it completely
2023-12-22 15:14:53 +06:00
Cacodemon345
9ca9abebf4 MGA: Don't reset screen size every recalctimings
Fixes intense resizing.
2023-12-22 14:01:26 +06:00
TC1995
082337a381 Don't call svga_recalctimings() on MGA's port 0x3df, fixes Debian Woody's matroxfb screen test. 2023-12-21 13:36:46 +01:00
Cacodemon345
2d6ffe081e Matrox Mystique: Force window resizing 2023-12-21 14:40:32 +06:00
Cacodemon345
765a1f524b Fix M3D programs 2023-12-21 02:03:27 +06:00
Cacodemon345
7a8fe414c5 MGA: 3D busmastering now works (albeit slowly) 2023-12-20 16:24:04 +06:00
Cacodemon345
bf30678d5f MGA: More Mystique busmastering fixes
* Use mutex locking when reporting SOFTRAPEN
* IEN register now correctly returns values it currently holds
* Restore VLINEPEN interrupt
2023-12-20 13:48:45 +06:00
Cacodemon345
1773ebfbf3 Mystique: SOFTRAP register writes correctly reset the primary DMA channel 2023-12-20 01:38:14 +06:00
Miran Grča
3f498ea8e0 Merge pull request #3910 from 86Box/tc1995
More MGA fixes.
2023-12-19 18:51:46 +01:00
TC1995
1e71efc5bb More MGA fixes.
Re-introduced the mystique read/write linear functions but with a check (!svga->fast) in the byte ones to make sure the generic svga linear functions are enabled when needed, this should keep compatibility stable while also fixing the amount of memory of NT 4.0's MGA Millennium drivers.
2023-12-19 18:48:49 +01:00
Cacodemon345
8226a5e39c Matrox Mystique: Attempt fixing 3D busmastered drawing
NT 4.0's OpenGL screensavers only display one frame before freezing the system
2023-12-19 16:27:05 +06:00
Cacodemon345
3a5bbe9ad3 vid_mga: Busmastering works properly now 2023-12-19 13:46:27 +06:00
Cacodemon345
1f91c0e2ec More work on busmastering
NT 4.0 freezes as of now. No idea, although the data aren't filled with total nonsense anymore
2023-12-19 12:59:18 +06:00
Cacodemon345
3ba6e337c5 Revert "MGA: Count for cases where DMA header data is not immediately available"
This reverts commit efe9784aad.
2023-12-19 12:02:58 +06:00
Cacodemon345
efe9784aad MGA: Count for cases where DMA header data is not immediately available
Fixes crashes on NT 4.0
2023-12-19 11:42:01 +06:00
Cacodemon345
111b623811 Fix logical error 2023-12-19 03:00:54 +06:00
Cacodemon345
12d5d6c260 Matrox Mystique: Bus-mastering fixes
* Make all bus-mastering-related variables atomic
* Do not, under any circumstances, attempt to read beyond PRIMEND and SECEND

This allows NT 4.0's Mystique drivers to work with busmastering enabled.
2023-12-19 02:18:08 +06:00
Miran Grča
394a62d880 Merge pull request #3901 from 86Box/tc1995
MGA fixes 2:
2023-12-18 13:57:54 +01:00
OBattler
c7f4e59e49 Restoring the old changes. 2023-12-18 13:57:33 +01:00
TC1995
718fb759af There, log excess disabled. 2023-12-18 13:47:23 +01:00
TC1995
f5642ab1c3 MGA fixes 2:
1. Reverted the packed chain4 and fb_only sides to 1 when extended mode is set, but with the call to svga_recalctimings removed from port 0x3df due to mode issues, this should fix all the MGA mode issues I know.
2. Cleaned up the rendering order in svga_recalctimings, especially 4bpp and 8bpp.
2023-12-18 13:42:32 +01:00
OBattler
80e5c4f5ac Temporarily reverted all the Matrox mode changes since they broke even standard SVGA modes. 2023-12-18 10:02:18 +01:00
TC1995
9573d37364 And warning fixes. 2023-12-18 00:41:51 +01:00
TC1995
c1ba150e3c Oops, they actually can mix together, but not with plain (non-packed) chain4 stuff enabled, should fix more mode issues in the MGA Millennium card. 2023-12-18 00:40:31 +01:00
TC1995
c62182cd2e MGA Fixes:
1. LFB access is now done properly through the right svga_read/write linear calls.
2. Lowres 8bpp mode and Packed/Extended 8bpp+ mode don't mix together, fixes Debian Woody matroxfb module when testing the modes while keeping other compatibility intact (basically enable packed stuff only when gdcreg5 bits 5-6 are 0 when extended mode is set).
3. Small cleanup in the line accel stuff.
2023-12-18 00:08:51 +01:00
RichardG867
4b402c22cd vid_mga: Implement DDC on the Millennium 2023-12-16 18:26:39 -03:00
GreaseMonkey
0848f4a38e Disable blink in 8bpp modes on MGA; Re-instate main 8bpp hires renderer
I don't actually know if 8bpp blink is a thing on a Matrox Millennium, but the video BIOS seems to act like it's not.
2023-12-17 08:46:12 +13:00
TC1995
d3fbd93848 Fixed warning in vid_mga.c. 2023-12-16 20:36:34 +01:00
TC1995
e4696aa2e9 Undev branch the Matrox Millennium since it is now mostly usable. 2023-12-16 20:17:55 +01:00
Jasmine Iwanek
506d548b38 More linting in src/video 2023-08-23 00:50:52 -04:00
OBattler
3462e563b8 Fixed the reversed PCI card add types in video/vid_mga.c. 2023-08-10 05:14:43 +02:00
Jasmine Iwanek
8d3f5b7b27 Fix a mistake found in vid_mga.c 2023-08-09 20:09:36 -04:00
Jasmine Iwanek
81bb5e564b Better fallthrough annotation macro. 2023-08-09 20:09:36 -04:00
OBattler
c30d5d90b7 PCI and IRQ rework, pci.c rewritten from ground up, fixes numerous issues such as the bridge being added when the number of normal PCI devices equals the number of normal PCI slots, Windows 95 PCI operation on Intel 430NX, sharing of PCI IRQ's with non-PCI level-triggered devices, having both configuration mechanisms operating at the same time (ALi M1435), etc., and makes the code much more readable. 2023-08-07 03:04:52 +02:00
Jasmine Iwanek
d2f42198fd Fix clang build failure 2023-07-26 12:41:18 -04:00
Jasmine Iwanek
db66543959 Apple build fix 2023-07-25 17:59:22 -04:00
Jasmine Iwanek
ee695e71f9 More sonarlint work 2023-07-25 17:59:22 -04:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
Cacodemon345
03a578708c vid_mga: Make Matrox Millennium multi-monitor compatible 2023-03-07 22:03:04 +06:00
Jasmine Iwanek
610401de7a Yet more clang-formatting 2023-02-28 23:53:57 -05:00