Commit Graph

70 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
81b8038bc5 Clean up .available & .poll 2025-02-01 03:38:52 -05: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
Jasmine Iwanek
fabe71150c Various improvements & Cleanups
Some ported from ANightly's work
2025-01-11 21:25:29 -05:00
OBattler
463badd613 kB -> KB. 2024-11-19 04:08:21 +01: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
TC1995
b674619894 Video7/Radius fixes.
And cleanups as well.
Htotal/hblankstart are now applicable to the HT216-32 card only.
Re-apply the Radius ISA SVGA extensions port workaround until a proper ISA bios is found/dumped (warning: the HT209 may not work properly on the PS/1 2121 machine).
2024-04-05 14:11:49 +02:00
OBattler
4c3cceec69 Fixed off by one errors in (S)VGA horizontal blanking start calculation. 2024-02-18 17:54:14 +01:00
TC1995
792485f48f Radius Video7 ISA card update about the I/O handler.
Don't touch the POS I/O ports at all, fixes hang ups with the card in question using the IBM PS/1 machines, which rely on those ports.
2024-02-06 21:34:00 +01:00
OBattler
0090000f85 HT216-32: Apply the blanking calculation. 2024-01-10 23:25:16 +01:00
Jasmine Iwanek
506d548b38 More linting in src/video 2023-08-23 00:50:52 -04:00
Jasmine Iwanek
81bb5e564b Better fallthrough annotation macro. 2023-08-09 20:09:36 -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
d1127e68fa Even more sonarlint work 2023-06-04 23:39:14 -04:00
Jasmine Iwanek
927c26f496 Fix some variant type comparisons 2023-05-02 02:18: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
Jasmine Iwanek
fab1632cee Fixes almost all the logging options which were previously broken 2022-10-27 11:23:10 -04: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
Jasmine Iwanek
d28cec126a src/video 2022-04-12 17:26:07 -04:00
Jasmine Iwanek
036f1ce74b src/video 2022-04-12 17:26:06 -04:00
Jasmine Iwanek
3b73ce330c src/video 2022-03-18 18:07:09 -04: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
OBattler
6f2b93923c A lot of fixes - everything now seems to work properly. 2022-02-03 03:10:06 +01:00
Jess Lovelace
f18615ae87 refactored device_t and all declarations 2022-02-02 16:31:22 -05:00
OBattler
b7f5d4a773 Video 7 fixes, fixes RAMDAC 6-bit/8-bit switching on the Radius SVGA MultiView. 2021-10-06 18:12:22 +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
4f5a78a8b9 Added a force byte mode variable to prevent dword mode from operating due to glitches in the S3 acceleration using said mode. 2021-09-06 13:03:50 +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
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
TC1995
d2c6452ff5 Reworked the HTVGA/Video7 clocks. Fixes the HT209 2401 error on MCA.
Fixed 16 color in the Realtek 3106 card.
Reworked the Sierra 1148x for the second time.
Registers that only exist on 928/80x and up are not used by the 911/924 anymore.
2021-05-20 20:57:54 +02:00
TC1995
1b642b4aba Port 0x105 on the ISA-based HT209 is only initialized from port 0x46e8 to avoid conflicts with the IBM PS/1 2011 and 2121's already existing initialization of the ports.
Reworked the Sierra SC1148x and AT&T49x ramdacs to use the RS2 signal when available.
Added the Realtek RTG3106 video card.
2021-05-12 18:51:02 +02:00
OBattler
dfb8c92557 More Video 7/Headland fixes. 2021-04-28 06:05:30 +02:00
TC1995
109427298e Minor fixes to the ht209 code. 2021-04-28 01:27:34 +02:00
TC1995
94daad1887 Add the HT209/D-based Radius SVGA Multiview card and its "quirks". 2021-04-27 23:54:33 +02:00
OBattler
4fb1c8e51f More Headland/Video 7 fixes. 2021-04-25 06:50:38 +02:00
OBattler
ca30709428 More HT-216 fixes. 2021-04-25 05:38:15 +02:00
OBattler
8a4faebd85 Various fixes to the Video 7 family of cards (including HT216-32). 2021-04-25 03:33:49 +02:00
David Hrdlička
dfbbe08a07 rewrite the emulator to use UTF-8 internally 2021-03-30 09:46:49 +02:00
OBattler
0e206a977e Added monitor type selection on the standalone HT-216 with BIOS auto-patching. 2021-03-27 04:39:45 +01:00
OBattler
b0e68f94a7 Removed the redundant case 0x3c2 from ht216_in(). 2021-03-27 03:35:12 +01:00
OBattler
586a72c2bb Fixed the Video 7/Headland hardware cursor with the Windows 3.1 drivers, and added the standalone HT216-32. 2021-03-26 23:06:42 +01:00
TC1995
37def45e0e More skew changes, fixed the missing pixels in hdisp in 24bpp mode as well as properly organized hdisp in other bpp modes.
Clear bit 7 of attr reg 0x10 in the v7 code otherwise it would scramble the colors in 8-bit graphics mode if issued.
2021-03-25 21:46:39 +01:00
TC1995
15b79fa0ac Reworked some stuff to make the ht216-32 640x400 8bpp mode working, alongside the 1024x768 mono driver as well as the standard VGA 320x200 8bpp mode. 2021-02-24 20:16:15 +01:00