Commit Graph

98 Commits

Author SHA1 Message Date
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
cd0636ee04 Fixed horizontal retrace start and end extensions on almost every applicable card, fixes #4025. 2024-01-11 14:42:54 +01:00
Cacodemon345
8e9a2e0b79 Apply blanking extensions to more SVGA cards.
* Fix duplicated logic in vid_svga.c
* Voodoo 3/Banshee emulation now has blanking extensions applied
* S3 ViRGE and Matrox video cards as well
* Tseng ET4000-series cards as well
* Fix off-by-one error in vid_cl54xx.c

Trident cards are yet to be investigated. XGA and 8514/A are yet to be made blanking extensions compliant. Mach64, Paradise/WDC and OAK OTI cards remain as-is for now.
2024-01-11 01:48:49 +06:00
Jasmine Iwanek
506d548b38 More linting in src/video 2023-08-23 00:50:52 -04:00
OBattler
15281b22b6 Some S3 ViRGE fixes. 2023-08-22 21:41:08 +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
OBattler
a8578203cc Virge FIFO waiting fixes - slots limit, and undocumented behavior to make Linux work. 2023-08-06 03:37:35 +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
TC1995
5d07468a67 S3 ViRGE change:
Attempt at fixing a small but breaking bug reported by a Discord user.
2023-07-15 00:06:57 +02:00
Jasmine Iwanek
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
Jasmine Iwanek
610401de7a Yet more clang-formatting 2023-02-28 23:53:57 -05:00
luennix
a0d853ff1f Actually implement on-board ViRGE/DX for Infinia 7200 and TC430HX 2023-02-17 22:09:17 +03: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
7e44372b75 vid_s3_virge: Give FIFO R/W indices the stdatomic.h treatment 2022-11-07 13:11:36 +06:00
Jasmine Iwanek
883e7c256a clang format in src/video (#2654) 2022-08-31 20:19:29 -03:00
Cacodemon345
8a3367ff6f Multi-monitor support (backend preparation part) 2022-07-03 01:18:23 +06:00
TC1995
30e0201174 When linear framebuffer base is mapped, it's fb_only time, fixes gibberish fonts and corrupt mouse cursor on BeOS releases using the S3 Trio/Virge cards.
Slight cleanup of the XGA card and fixed more possible cursor issues.
2022-07-01 17:58:56 +02:00
David Hrdlička
e60af6c29d Clean up plat.h a bit 2022-04-20 01:03:39 +02:00
Alexander Babikov
eba088c692 Remove trailing whitespace + indentation consistency fixes 2022-04-14 07:10:18 +05:00
Jasmine Iwanek
d28cec126a src/video 2022-04-12 17:26:07 -04:00
Jasmine Iwanek
3b73ce330c src/video 2022-03-18 18:07:09 -04:00
TC1995
c3c7864bd6 Added a legacy way to address some issues with the SVGA scrolling and such (such as Pinball Illusions on S3 cards, including the ViRGE). 2022-03-02 16:18:58 +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
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
OBattler
6f2b93923c A lot of fixes - everything now seems to work properly. 2022-02-03 03:10:06 +01:00
Jess Lovelace
5ed5d73cee more upstream devices 2022-02-02 16:31:24 -05:00
Jess Lovelace
f18615ae87 refactored device_t and all declarations 2022-02-02 16:31:22 -05:00
TC1995
a2be64dcb1 Added TVP3026 clock emulation and hooked up to the corresponding S3 cards needing it.
Added the SPEA Mercury Lite 928PCI-based card and its corresponding accel changes.
Restored the S3 ViRGE threaded-FIFO but with small changes.
2022-01-28 17:45:03 +01:00
Alexander Babikov
7698e18129 Fix AGP ViRGE/GX2's and Trio3D/2X's AGP detection and indicate SGRAM presence on GX/GX2 2021-12-22 05:36:18 +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
TC1995
89233d0fbb Changes list 4:
Fixed Diamond Stealth 3D 4000 specific drivers' hang.
2021-11-18 23:27:31 +01:00
OBattler
66db0f11a4 Implemented reset handlers for Cirrus, S3, and S3 ViRGE cards. 2021-10-07 01:15:02 +02:00
TC1995
8572739a55 S3 changes part 8:
Properly fixed text/graphics mode of the S3 pre-ViRGE cards.
PIX TRANS cleanups.
Added a sanity check to banking, per bit 0 of CRTC31.
Initial implementation of Enhanced 4-bit mode.
911/924 chips use CRTC43 bit 3 for enabling 15/16bpp mode.
fb_only variable used correctly as of now (depending if on 4bit or 8bit+ modes).

S3 ViRGE changes part 2:
Made the Trio3D/2X AGP use the PCI_ADD_AGP part accordingly

RAMDAC changes:
Sierra 11483 and 11487 don't have an RS2 signal so the four times reading scheme of 0x3c6 is used instead, per documentation.
Fixed AT&T 49x bpp selection.

Other changes:
Fixed remaining rendering issues with the Radius SVGA HT209 card.
2021-10-05 22:24:26 +02:00
TC1995
3bfcfc01a3 S3 ViRGE changes:
Added a timer to improve perfomance of the 3D engine.
Made the Trio3D/2X available for all.
Reserved bit 2 of CR33 is now always set to make sure Win95's Trio3d/2X drivers work along with a workaround for the memory size.
Added preliminary DMA bus master capabilities.
2021-09-26 21:13:47 +02:00
OBattler
52e7b9b772 Fixed S3 and ViRGE hardware cursor clipping, fixes #1733. 2021-09-25 14:21:43 +02:00
TC1995
74d88ec6bb Fixed display start address on S3 pre-ViRGE and ViRGE cards upon recalculation of its timings plus when the banking register is enabled, this also fixes the flickering of Quake while having Commander Keen working without glitches. 2021-08-08 13:24:11 +02:00
OBattler
7047517408 Video threads are now woken before the wait for termination, fixes the hangs. 2021-07-16 19:22:58 +02:00
OBattler
78c3f6759f Removed all usage of TerminateThread()/thread_kill(), thread_wait() is used instead now. 2021-07-16 06:45:32 +02:00
TC1995
fd5ac14f26 Fixed scrolling anomalies in the EGA and SVGA card cores for Commander Keen to work right without glitches. 2021-07-12 22:12:27 +02:00
Bad Sector
150cfbd553 S3 ViRGE fog implementation. 2021-06-26 05:43:37 +03:00
TC1995
d63ce5ab82 Port of the reworked svga memory addressing, normal chain4 mapping and ma13/14 mapping for non-CGA modes.
Fixed ET4000/W32 (without letters) hardware cursor.
Fixed non-interlaced 1280x1024x8bpp Cirrus mode in the 5434.
Added a note regarding the Radius (HT209) 8bpp render.
Reworked the TGUI9440, but still WIP.
2021-05-30 01:52:43 +02:00
RichardG867
d344fce4d4 S3 DPMS shouldn't engage if both hsync and vsync are high 2021-04-14 16:08:45 -03:00
RichardG867
94eae848a3 Add DPMS support to S3 chips 2021-04-13 15:21:55 -03:00
David Hrdlička
dfbbe08a07 rewrite the emulator to use UTF-8 internally 2021-03-30 09:46:49 +02:00