Commit Graph

1150 Commits

Author SHA1 Message Date
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
TC1995
552740b2bd S3 wraparound fix.
Just a quick fix for Commander Keen 4 EGA's flickering.
2023-12-18 14:01:38 +01: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
Miran Grča
f900bdb63c Merge pull request #3892 from 86Box/tc1995
Fixed warning in vid_mga.c.
2023-12-16 20:40:47 +01:00
TC1995
d3fbd93848 Fixed warning in vid_mga.c. 2023-12-16 20:36:34 +01:00
Jasmine Iwanek
7d9b10d556 Correct undevbranching of the Matrox Millenium 2023-12-16 14:35:52 -05:00
TC1995
1df37c2440 Temporarily added the older 8bpp highres render for the Matrox Millennium. 2023-12-16 20:21:57 +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
86e07aa598 Fix compile error with logging enabled in vid_compaq_cga 2023-12-15 16:21:29 -05:00
TC1995
3c654af286 dang it... 2023-12-14 21:57:48 +01:00
TC1995
ea9348d104 Actually initialize the cursor color regs of the ATI Mach32 card. 2023-12-14 21:56:17 +01:00
TC1995
15c6d9e5fa Mach8/32 fixes (again):
1. Fixed wrong setting of highres and lowres mode of 8bpp, makes Transport Tycoon run properly on these ATI cards again.
2. 32-bit (RGBA) True Color is actually supported on the Mach32, but barely used, and the original code was wrong. This fix makes 32-bit True Color render the right colors.
2023-12-14 21:47:10 +01:00
TC1995
ce0b6e1da1 Cirrus, ATI Mach8/32 and XGA fixes.
1. Update svga->fast to account for packed chain mode toggles, fixes issues on Descent II for DOS using the Cirrus cards.
2. Re-organized ATI Mach8/32 LFB access as well as 8514/A/ATI mode toggles, should end the video mode issues once and for all.
3. Fixed a small but major pattern issue with IBM OS/2 1.30.1's XGA driver (not .2, which is fine as is).
2023-12-06 15:00:31 +01:00
GreaseMonkey
44d70ab943 Rework (S)VGA renderer to be internally chunky + attempt to optimise for speed 2023-12-06 15:25:17 +13:00
OBattler
6871e279dd Merge branch 'master' of https://github.com/86Box/86Box 2023-11-26 22:15:36 +01:00
OBattler
7b4a6a3388 Clean-ups and made the ET4000AX use the old way to check for 8 bpp modes, fixes the Windows 3.0 driver. 2023-11-26 22:15:28 +01:00
RichardG867
8497e33559 Voodoo: Attempt fix for a rare FIFO deadlock on hard reset 2023-11-25 22:49:27 -03:00
GreaseMonkey
d3897b57e8 Handle SVGA 8bit RAMDAC for Voodoo Banshee cards 2023-11-26 11:54:01 +13:00
GreaseMonkey
c8c9fa2f91 Implement 4bpp graphics mode blink properly on VGA
Closes #3447
2023-11-23 13:12:09 +13:00
GreaseMonkey
7de7ea3fe1 Clean up unused variable 2023-11-23 10:08:52 +13:00
GreaseMonkey
81d285b883 Force 8bpp highres SVGA modes to "bypass" the shifter entirely
The current implementation still uses the shifter forced to Shift 256 mode to keep things generic, but we can always opt for a separate scanline renderer.
2023-11-23 10:04:04 +13:00
GreaseMonkey
d19fe700f5 Use 8bpp renderer when attrregs.0x10.6 is set instead of when gdcreg.0x05.6 is set
This allows correct emulation of the 4bpp chunky mode which is supported by many but not all chipsets.
See discussion #3840 on GitHub.
2023-11-23 09:58:16 +13:00
TC1995
a3fa181b01 8-bit renderer fix about the Tseng cards:
Seems the Tseng cards are as incompatible as the S3 cards in terms of pure IBM VGA emulation, especially the chain4 stuff, so accomodate the fix to the renderer. Fixes 8bpp rendering on Tseng cards when invoked.
2023-11-21 20:06:12 +01:00
GreaseMonkey
9903e12e69 (S)VGA: Update graphics mode blink behaviour to match something more feasible 2023-11-21 19:39:30 +13:00
GreaseMonkey
220d5fa237 (S)VGA: Do redraws if blink is enabled in graphics mode too
Easy test case in QBASIC:

    SCREEN 10
    PSET (2,0),2

There should be a blinking pixel in the top-left.
2023-11-21 19:32:43 +13:00
GreaseMonkey
81b8150a6b (S)VGA: Increment CRTC address just before it needs to be used
This gives more likely behaviour when one loads more often than the address is incremented.
The behaviour matches an Intel GMA 4500MHD (2008) which is the earliest hardware I'm able to test right now.
2023-11-21 19:25:26 +13:00
GreaseMonkey
2166ae0fb7 Get S3 Trio working in mode 13h + Mode-X again
Outside of that, we're now using the remappers properly.
2023-11-21 16:55:54 +13:00
GreaseMonkey
cfda3e1cce Add 8bpp support to the 4bpp renderer (breaks S3 Trio)
It appears that the S3 Trio does something weird with its 8bpp modes.
Specifically, it seems to ignore some of the flags needed for dword mode.

I will keep looking into that and see if I can find a good solution.
2023-11-21 15:40:44 +13:00
GreaseMonkey
9703ccec45 Initial merge of VGA 2bpp/4bpp lo/hi res renderers
About half of it was taken from the EGA renderer.

Also, the "force_old_addr" hack is kept here for now.
2023-11-21 11:33:04 +13:00
GreaseMonkey
1f5d00fe55 Generate CGA-to-EGA tables in video.c; Remove redundant table generation in vid_ega.c 2023-11-21 10:26:13 +13:00
RichardG867
9bcece63fc Fix some random comments which have been bugging me 2023-11-10 17:27:30 -03:00
TC1995
45f0ecc87e Forgot to apply the correction to the ATI 68860 ramdac, should clear the compile warnings. 2023-11-09 23:58:58 +01:00
TC1995
6c356df9e7 More and more video changes and fixes (8514/A and compatibles):
1. Made the 8514/A mode switch to VGA and viceversa (including ATI mode) actually usable and eliminating the last bugs related to them. Fixes 8514/A mode in OS/2 1.x/2.x (both IBM and Microsoft).
2. More sanity checks to the 8514/A and XGA pointers. Should fix emulator crashes on hard resets.
2023-11-08 23:47:16 +01:00
TC1995
53512a2510 More S3 blitting fixes:
Toggling the RSF bit is now applied to reads too. Fixes wrong colors on Solaris using true color mode and possibly other stuff too.
2023-11-01 21:59:49 +01:00
TC1995
5c9dabdc03 S3 accel command fixes:
X/Y coordinates are corrected for real even while wrapping. Fixes Trio64V+/Trio64V2 Win9x desktop icons as well as OS/2 software cursor madness.
2023-10-31 18:54:49 +01:00
TC1995
38a6c0f1e1 Trident TGUI9440/96x0 Bresenham update:
1. Its execution is exactly (actually 99%) the same as the S3 Bresenham procedure, so I thought of making the Bresenham command of the TGUI9440/96x0 behave like the s3 one but adapted to use Trident's ports and meanings and now OS/2 and Windows lines in certain programs work fine.
2023-10-24 23:08:17 +02:00
OBattler
8184d71aa6 Removing the remaining unnecessary files that should not have been committed. 2023-10-21 08:13:22 +02:00