Commit Graph

1615 Commits

Author SHA1 Message Date
OBattler
a540012f9a XGA: Move a variable initialization to IF blocks, fixes segementation fault when pat_src is 8 (eg. in Windows 95 on the MCA XGA). 2025-02-03 00:46:38 +01:00
Jasmine Iwanek
5f273265ae Assorted warning fixes 2025-02-02 03:24:50 -05:00
TC1995
d881321268 Minor ATI 8514/A Ultra add-on change of the night (February 1st, 2025)
Actually make it work on NT by setting bit 0 of the read only config2 reg.
2025-02-01 22:19:55 +01:00
Jasmine Iwanek
81b8038bc5 Clean up .available & .poll 2025-02-01 03:38:52 -05:00
TC1995
b7100a6169 Video changes of the night (January 29th, 2025)
Matrox MGA:
A break from work can save the day all so to say. Fixes bitblt'ing on WinNT4.0/Win2000 using 32bpp modes and possibly other stuff using said Matrox chip.
2025-01-29 00:33:24 +01: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
e61f3c8a5d Video changes of the day (January 26th, 2025)
XGA:
1. Added a proper poll so to have its timings independent of the SVGA core and changes its renderer accordingly, mainly a blank render one.
2. Workaround the Ctrl-Alt-Del reset of Windows 2.x so that it switches back to VGA text mode correctly when using the 0xA000 64K aperture (in vid_svga.c).

SVGA core:
Re-organized the way the different timers are organized so that the XGA and 8514/A pollers can coexist with the SVGA timer without conflicts.

ATI Mach32:
Reworked the true color renderer and made it a Mach32 exclusive due to its differences from the standard one. Fixes wrong rendered colors in NT using the 32bpp renderer in RGB mode.
2025-01-26 14:25:35 +01:00
TC1995
f48c50f4ba The delayed video changes of the night (January 20th, 2025)
Generic SVGA layer:
Added function pointers of the banked mapping for use with add-on cards with their own mapping when the VGA card banked mapping is not active or viceversa (e.g.: XGA).

XGA-1/2:
1. Reimplemented Area Fill and Boundary Mode as best as possible.
2. Fixed conflicts with banked mapping with VGA clones.
3. Fixed inverted colors (again) on accelerated 16bpp mode under OS/2.

Video7 with ATI 8514/A add-on.
Added a workaround (BIOS issue? I don't know) that disables 8514/A mode and reenables VGA mode when needed. Fixes screen freezes and polling issues with various drivers for Windows and others.
2025-01-20 03:26:49 +01:00
TC1995
54a0bb8522 1st set of changes (video-related) of the day (January 16th, 2025)
ATI Mach8-based (add-on only):
Do not override the clone VGA banked mapping with the standard VGA when needed. Fixes issues with banked mapping with ATI 8514/A enabled on cards with clone mappings such as Cirrus, Video7, Paradise/WD, etc.
2025-01-16 22:37:52 +01:00
starfrost013
4f15889638 fix compile by fixing capitalisation 2025-01-12 23:09:03 +00:00
starfrost013
8c48478706 fix the screwed up callbacks 2025-01-12 19:11:20 +00:00
starfrost013
55f476617d Don't punch me in the face, and also fix the compilation, and also fix a stupid bug in log replay. 2025-01-12 19:07:27 +00:00
starfrost013
6eaec5b756 forgot to port over some parts 2025-01-12 15:31:54 +00:00
starfrost013
204b24022f Implement the rivatimer and cyclical logging from my main NV3 branch so that we can get it reviewed and merged. 2025-01-12 15:21:31 +00:00
Jasmine Iwanek
fabe71150c Various improvements & Cleanups
Some ported from ANightly's work
2025-01-11 21:25:29 -05:00
TC1995
3a22930c07 And Cirrus per the previous commit.
Improved the byte swap fix introduced time ago, this time by making it trigger on banked writes when needed.
2025-01-09 23:24:58 +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
OBattler
80735cc70a Fixed a warning in src/video/vid_voodoo_render.c. 2025-01-08 11:38:46 +01:00
OBattler
f39c3491bf Voodoo: Fixes HUD transparency bugs in Extreme Assault Voodoo executable (interpreter and x86-64 recompiler only). 2025-01-08 11:26:15 +01:00
OBattler
e833e1da3f Force resizes on overscan parameter changes. 2025-01-06 20:12:49 +01:00
OBattler
50c97f0158 Voodoo 3/Banshee: Some CMDFIFO fixes. 2025-01-06 16:59:15 +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
8f51ca82b0 ViRGE changes of the day (December 22nd, 2024)
1. Proper pixel clock implemented on GX2 and up chips. Fixes speed on various stuff (including games for Windows).
2. Cleanup.
2024-12-22 19:21:32 +01:00
TC1995
a27c4bc7a4 8514/A change of the day (December 22nd, 2024)
Fix nibble pixtrans on bitblt command (CMD 6), this makes icons and stuff on MS OS/2 1.10 Nokia's 8514 driver no longer glitchy (IBM's was already fine as is and it still is).
2024-12-21 23:57:26 +01:00
OBattler
1c37108e12 Fixed the CL-GD 54xx linear aperture. 2024-12-21 01:08:24 +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
80a0c48785 Memory mappings can now specify to ignore some address bits, fixes some Cirrus Logic drivers for Windows 3.1x freezing. 2024-12-18 01:19:50 +01:00
OBattler
463badd613 kB -> KB. 2024-11-19 04:08:21 +01:00
TC1995
afe95cd20c Video changes of the day (November 13th, 2024)
1. Finally add the ATI 8514/A Ultra add-on BIOS in both ISA and MCA variants (despite the ROM page failure on POST).
2. Fixed a mode switch bug in the Mach8 (both add-on and vga combo) when exiting the Win3.x GUI using the native drivers.
3. Corrected (best possible) the eeprom load of the Mach8 products.
4. Partial implementation of the FIFO on the 8514/A compatible products including Mach8/32 and plain IBM 8514/A.
2024-11-13 22:55:16 +01:00
OBattler
09eb050423 More KB -> kB. 2024-11-12 01:45:58 +01:00
OBattler
efc61061a8 KB -> kB. 2024-11-12 01:38:51 +01:00
OBattler
748987fa46 Onboard memory size -> Memory size. 2024-11-10 05:15:54 +01:00
OBattler
d6cd357202 BIOS Version -> BIOS Revision. 2024-11-10 02:47:59 +01:00
OBattler
fbc21cdf49 DMA channel -> DMA. 2024-11-10 02:42:01 +01:00
OBattler
a1566e905f XGA address -> Address. 2024-11-10 02:36:34 +01:00
OBattler
bace3fe900 Voodoo Recomiler -> Dynamic Recompiler. 2024-11-10 02:35:27 +01:00
OBattler
55b091fb58 Assorted string fixes, mostly for consistency. 2024-11-10 02:23:21 +01:00
TC1995
863b76a190 Fixing regressions of the mach32 (November 5th, 2024)
1. ATI Extended 8514/A mode may not use bit 5 of ATI reg 0xb0 sometimes but at the same time it won't use the standard VGA way of setting up 256+ colors, therefore, in the VGA DAC writes, use standard VGA way to revert to VGA mode in the writes instead of relying on bit 5 of ATI reg 0xb0 being enabled/disabled there. Fixes mode switches in VLB/PCI configurations using Windows 9x and possibly other stuff, ISA is unaffected and still works fine.
2. Added more logs and and remove/set I/O handlers correctly for the PCI side.
2024-11-05 01:08:13 +01:00
TC1995
c966538324 8514/A compatible changes on Mach32 of the day (November 3rd, 2024)
Mark the ATI extended 8514/A mode accordingly (that is, if bit 5 of ATI reg 0xb0 and using ATI extended ports at the same time). Fixes wrong colors in some instances using standard IBM 8514/A drivers on Mach32.
2024-11-03 23:21:18 +01:00
TC1995
fa69678a94 Even better (hopefully) way to fix the mode switches (November 3rd, 2024)
1. Added the missing call to mach32_updatemapping from port 0x3CF through its index 6.
2. If the accelerator DAC is active and the extended 256 color bit is on too then enable 8514/A mode when needed, otherwise it's VGA mode or decided by the passthrough/clock selection ports.
3. VGA DAC reads are redirected to the 8514/A DAC reads only when 8514/A mode is on.
2024-11-03 04:46:32 +01:00
TC1995
52c806b485 Forgot the XGA update 2024-11-02 21:15:43 +01:00
TC1995
12a57ffeac Changes to 8514/A compatible stuff (November 2nd, 2024)
1. vga_on global variable removed, as it didn't play well with 2 subsystems at once (8514/A and XGA both enabled).
2. Emulate the Foreground/Background Color aliases of PIX_TRANS properly when not executing a command.
3. Voodoo 3D override now works properly (again) with Mach32 PCI cards and others by turning the 8514/A timer off and on accordingly.
2024-11-02 20:50:06 +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
4f472445f2 Video and emulator GUI changes of the day (October 28th, 2024)
IBM 8514/A (MCA/ISA).
Added a configure button to the QT frontend for the amount of memory used by said add-on chips.

XGA:
Forgot a change about the 4mb aperture.
2024-10-28 22:14:58 +01:00
TC1995
9685cdfa92 XGA changes of the early day (October 28th, 2024)
1. Pattern/font fixes for Windows 3.1's third party XGA drivers as well as OS/2's win3.x' box (seamless and full).
2. The 4MB aperture is still used internally even if the 1MB one is in use, fixes OS/2's XGA driver on boot when less than 16MB of memory is used.
2024-10-28 02:23:43 +01:00
TC1995
8a7e0ea547 Small but important video changes of the day (October 27th, 2024)
8514/A compatibles:
1. The mode switch (from VGA to 8514/A/ATI and vice-versa) has been fixed again (for the Nth time).
2. Removed a pattern hack used on DPCONFIG = 0x5211 on bitblt, now patterns work properly using the ATI Mach8 3.0 win3.1x drivers.
3. Clipping regs are more accurate for acceleration.

XGA 1-2:
A picky OS is a picky OS, fixes to the Win95 fonts (which uses the pattern sources) applied.
2024-10-27 23:36:11 +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
TC1995
5135721359 XGA changes of the day (October 5th, 2024)
1. SVGA decode mask shouldn't be used in XGA native mode, fixes wrong locks in LFB access.
2. INMOS XGA only: more accurate emulation per INMOS G201 MCA/ISA manual, including the MMIO access and port 0x96, allowing full BIOS and MMIO access at the same time on 0xc0000.
2024-10-05 21:24:54 +02:00
TC1995
f102fee497 Major video changes of the day (October 3rd, 2024)
8514/A changes:
1. Correct interlaced display resolution.
2. Added a limit to cursor coordinates.
3. Test/WIP features of the add-on Mach8 side (ATI 8514/A Ultra) such as configurable BIOS.
4. Made the CMD 5 of the acceleration (Polygon Boundary) more accurate per manual (as much as I could regarding the clipping).

Cirrus related:
1. Added SUBSYS PCI vendor/device ID of the 5480 (per manual).

IBM VGA:
1. Built-in/option rom-less VGA don't need the "available" flag.

ATI Mach8/32:
1. As with 8514/A, corrected interlaced display.

XGA-1/-2:
1. Moved the XGA R/W memory size tests out of the SVGA R/W routines to reflect the per card basis, although anything that uses its own SVGA mapping would call the tests there (such as Cirrus, Headland and ATI) when not accessing the LFB. This finally puts an end to the XGA MCA mapping enabling bugs.
2. Re-organized the ISA standalone and non-standalone (INMOS) sides of the chips so that they work properly and remove the FILE rom loading hack from init.
3. The Memory Mapped R/W sides now account for instance in their address range.
4. INMOS only: prevent any ROM address access to anything lower than 0xc8000 to not conflict with the main BIOS rom loading.
5. Fixed native pitch by using the correct register, this fixes non 1024x768 resolutions under NT.
6. More logs when enabled to see any future bugs.
2024-10-03 14:56:23 +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