Commit Graph

112 Commits

Author SHA1 Message Date
OBattler
2c197000ea Removed the legacy #defines in device.h. 2025-02-14 07:39:21 +01:00
Jasmine Iwanek
d5d1d5c449 More cleanups to device structs 2025-02-08 01:28:25 -05:00
Jasmine Iwanek
5b894c32e6 Macro Cleaning 2025-02-08 01:28:24 -05:00
Jasmine Iwanek
81b8038bc5 Clean up .available & .poll 2025-02-01 03:38:52 -05:00
TC1995
1b9df9cf93 Mach64VT class 8bpp render fix.
Make it sure the alternative 8bpp renderer to avoid any palette flickering.
2024-09-17 00:34:46 +02:00
TC1995
8e4cd08a19 Mach64 font fix about Solaris. (September 13th, 2024)
The so called "NT 3.5 font fix" on the Mach64 applies only to the Source Control reg with bits 2-3 set, but Solaris only sets bit 2 (without bit 3), so, don't align the source with bit 3 cleared. This fixes the garbled fonts under Solaris using said card.
2024-09-13 13:51:20 +02:00
TC1995
39a6a681a2 Update indentation. 2024-08-21 22:48:02 +02:00
TC1995
66902d67fb Mach64 changes of the day (August 21st, 2024)
Re-thread the video chip family again but with fixes to avoid desyncs and some cleanups.
2024-08-21 22:45:18 +02:00
TC1995
94c30b06f0 Fix Mach64 LFB in some cases.
These few cases where it gets corrupt fonts like in some builds of NT 4.0 and mode changes in Win95's driver.
Hopefully this keeps everything else intact.
2024-05-20 23:54:57 +02:00
TC1995
fb6b0458a6 ATI Mach32/64 changes for the better:
1. On both Mach'es: direct linear video memory access is now the default for LFB mapping: fixes Mach64 drivers on NeXTSTEP/OPENSTEP and keeps everything else intact.
2. Mach8/32: minor cleanup to mode change code.
2024-05-16 22:33:50 +02:00
OBattler
4c3cceec69 Fixed off by one errors in (S)VGA horizontal blanking start calculation. 2024-02-18 17:54:14 +01:00
OBattler
996530a94e Horizontal blanking calculation now takes into account horizontal timings multiplications and divisions, fixes a lot of S3 (and ViRGE) modes. 2024-01-13 03:54:56 +01:00
OBattler
ca4f5bad13 More horizontal blanking calculation fixes (and actually use blank start, not retrace start), fixes graphics cut-off on Voodoo on Windows 98 SE. 2024-01-13 00:41:45 +01:00
OBattler
03a1f783f2 ATi Mach64: Override (S)VGA horizontal blanking calculation in accelerator CRTC mode. 2024-01-10 22:41:13 +01:00
TC1995
00edd8cfbc Mach64 (both GX and VT2) 24bpp mono pattern fix placed in.
Fixes wrong colors in patterns on various operating systems and possibly other stuff too.
2023-10-20 20:41:57 +02:00
TC1995
6913de32c5 More video fixes:
ATI Mach64 is temporarily unthreaded because of blitter desyncing.
ATI Mach32 now returns to ATI mode from IBM mode and vice versa more correctly.
Make the IBM 8514/A compatible poll not run if a 3D add-on card (Voodoo1/2) takes precedence (seen on a Mach32 PCI and Voodoo2 3D combo).
Finally ended the mess ups of the TGUI9440/96x0 pitch, it actually was the CRTC offset reg (SVGA CRTC 0x13) that defined it with some shifting based on the BPP.
2023-10-11 18:46:15 +02:00
Jasmine Iwanek
506d548b38 More linting in src/video 2023-08-23 00:50:52 -04:00
TC1995
f240e8cb0c Video changes:
1. The passthrough from VGA to 8514/A and/or 8514/A to VGA no longer relies on hackish places where to switch from/to, instead, relying on port 0x3c3 of VGA doing so (though the Mach8/32 still needs some places where to manually switch from/to, mainly the MCA one when configuring the EEPROM).
2. Implemented the MCA behalf of the Mach32 and its corresponding reset function.
3. Properly implemented (more or less) true color, including 24-bit BGR rendering
4. Other fixes such as color patterns and mono patterns being more correct than before in various operating systems and in 24-bit true color.
5. Implemented the onboard Mach32 video of the IBM PS/ValuePoint P60 machine.
6. Made the onboard internal video detect when it's 8514/A compatible or not (CGA/EGA/MDA/VGA/etc.). If the former is selected, then the video monitor flag is used instead (for QT).
7. The TGUI9400 and 9440, if on VLB, now detect the right amount of memory if on 2MB.
8. Initial implementation of the ATI 68875 ramdac used by the Mach32 and made the ATI 68860 8514/A aware when selected with the Mach32AX PCI.
9. Separated the 8514/A ramdac ports from the VGA ramdac ports, allowing seamless transition from/to 8514/A/VGA.
10. Fixed a hdisp problem in the ET4000/W32 cards, where it was doubling the horizontal display in 15bpp+ graphics mode.
11. Removed the 0x3da/0x3ba port hack that was on the Mach8/32 code, relying on the (S)VGA core instead.
12. Reworked and simplified the TGUI9440 pitch register based on logging due to no documentation at all.
2023-08-12 00:00:46 +02: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
TC1995
c6dab57a22 Mach64 GX/VT2: apparently I was wrong about the reserved aperture bit values...
Always enable the aperture when the linear base is > 0 and valid.
2023-08-04 15:41:47 +02:00
Jasmine Iwanek
0b60d449a5 sonarlint vid_ati_mach64.c 2023-07-31 14:53:39 -04: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
54c52fb55c Fix several instances of uninitialized variables. 2023-07-21 13:46:08 -04:00
OBattler
4de80ab93e Fixed some indentation mess in the Mach64 code. 2023-07-16 03:47:31 +02:00
TC1995
92db594d6b ATI Mach64GX/VT2: Corrected the 24bpp accelerated mode in terms of colors and bitblt so that it could be glitchless.
Corrected 8bpp mode under Win2000 as well so that it no longer glitches.
VT2 is PCI only, so use its PCI timings only.
Small cosmetic fixes in the if's of the linear apertures of said card.
24bpp mode will be unthreaded while the rest of the bpp's is left intact, this is due to desyncing in 24bpp mode in NT 3.1's 24bpp drivers.
2023-07-14 21:14:19 +02:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
Jasmine Iwanek
ed1b369abd Yet more sonarlint fixes 2023-05-29 06:21:17 -04:00
Jasmine Iwanek
1860700eab Fix some small issues 2023-01-07 17:02:23 -05:00
Jasmine Iwanek
a40630ba63 Even more tabs to spaces 2023-01-07 14:09:51 -05:00
Jasmine Iwanek
3fe4f75108 A bit more clang-format 2022-11-19 11:53:07 -05:00
Cacodemon345
9c775510df video: Make the rest of the FIFO variables atomic 2022-11-07 13:03:19 +06:00
Jasmine Iwanek
883e7c256a clang format in src/video (#2654) 2022-08-31 20:19:29 -03:00
OBattler
1d0177289a PCI graphics cards initialization fixes. 2022-07-19 00:15:25 +02:00
Cacodemon345
8a3367ff6f Multi-monitor support (backend preparation part) 2022-07-03 01:18:23 +06:00
David Hrdlička
e60af6c29d Clean up plat.h a bit 2022-04-20 01:03:39 +02:00
Alexander Babikov
911821434e Fix variable initializtion warnings 2022-04-14 07:13:49 +05:00
Jasmine Iwanek
d28cec126a src/video 2022-04-12 17:26:07 -04:00
Miran Grča
3fe794c59b Merge pull request #2237 from jriwanek-forks/named-initializers-2
Named initializers part 2
2022-03-18 23:20:37 +01:00
Jasmine Iwanek
3b73ce330c src/video 2022-03-18 18:07:09 -04:00
TC1995
a1404cf340 Housekeeping (Mach64, nw). 2022-03-18 21:28:17 +01:00
TC1995
9b0f04d4a9 Added deskpro386 and fixed 24bpp mode issues of the Mach64GX/VT2. 2022-03-18 21:22:18 +01:00
Jasmine Iwanek
801f81fbda clean up device_config_t formatting 2022-02-26 23:31:28 -05:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
TC1995
5b01a8a650 Mach64 changes/improvements:
Added 4x2 and 8x1 color patterns in the OpRect side, fixes OS/2 8-bit color.
Unthreaded the cards as well.
ISA versions can access the dword/long mapping too, fixes more graphical bugs in various operating systems such as Windows 95.
2022-02-10 22:30:02 +01:00
TC1995
8d28e3623c Fixed the ISA bus detection of the Mach64GX.
Removed the threaded FIFO on the ViRGE cards due to bugs, instead, relying on a non-threaded FIFO again.
Fixed some 8MB parts of the blitter for the ViRGE/VX-based STB Velocity 3D card so that 8MB RAM detection doesn't glitch everything else, including the blitter.
2022-02-07 20:08:25 +01:00
Jess Lovelace
f18615ae87 refactored device_t and all declarations 2022-02-02 16:31:22 -05:00
David Hrdlička
7381ab6928 Minor changes to threading
- Renamed `cpp11_thread.cpp` to `thread.cpp`
- Removed features that are only supported by Win32 threads (`thread_wait` with timeout and mutex with spinlock)
- Fixed formatting in `thread.cpp`
2021-12-17 19:59:25 +01:00