Commit Graph

188 Commits

Author SHA1 Message Date
OBattler
e736dbc694 CL-GD 5436: Correct the ICS SB486PV check. 2025-09-21 12:24:17 +02:00
Jasmine Iwanek
3c5190a0db Header cleanups (1/2) 2025-09-21 00:48:38 -04:00
RichardG867
25146643f9 Migrate remaining machine-specific checks from internal name to init function 2025-09-19 19:41:01 -03:00
TC1995
1a5b4671e8 XGA/SVGA mode changes of the day (July 22nd, 2025)
1. If the VGA mapping is for a 0xA0000 map for a length of 0x10000, then disable XGA mode (this is independent of the XGA extended mode aperture mode 1 which is XGA's own 0xA0000 mapping).
2. Remove text mode ctrl-alt-del hack.
3. Fixed cursor x coordinate in the Trio32 using 15bpp/16bpp modes.
2025-07-22 20:45:54 +02:00
Daniel Gurney
aef9d1ed94 Revert "Merge branch 'bugfixes' into master"
This reverts commit 8250b57325, reversing
changes made to 6c643d05b8.
2025-07-01 03:04:14 +03:00
starfrost
8250b57325 Merge branch 'bugfixes' into master 2025-07-01 00:28:27 +01:00
toggo9
10dd476bec Add GD5401 On-Board Code for the ICL DRS M35/286. 2025-06-28 15:08:20 +02:00
starfrost013
adb8b388a8 v_disp -> vdisp_latch; get rid of even more unused shit 2025-06-21 00:55:39 +01:00
OBattler
15077eaa3a Merge branch 'master' of https://github.com/86Box/86Box 2025-06-11 22:45:59 +02:00
starfrost013
dd7f3d0aae ma -> memaddr
ma_latch -> memaddr_latch
maback -> memaddr_backup
ca -> cursoraddr
sc -> scanline
oldsc -> scanline_old
2025-06-10 22:53:45 +01:00
OBattler
d3f13cf82b Added the Ast! Advantage 40xxd. 2025-06-10 18:14:44 +02:00
MaxwellS04
3ac92ccf4f Assorted Cirrus fixes
1. Correct the linear framebuffer setting on VLB Cirrus chips; should fix segfaults when you use them with default configuration
2. Add the "On-Board" name and correct internal_name to the onboard Cirrus Logic GD5420
2025-05-30 23:20:50 +07:00
OBattler
9ebcc44350 Add the Dell System 333s/L. 2025-05-28 19:41:27 +02:00
OBattler
d6231de1bc Added the Dell 466/NP, closes #3585. 2025-05-18 05:59:13 +02:00
OBattler
e98424a8ae Added the ICS SB486PV. 2025-05-17 02:35:11 +02:00
OBattler
8508a04825 CL-GD 54xx: Remove an excess logging line. 2025-05-06 19:06:30 +02:00
OBattler
ad4ec20374 Modify the CL-GD 54xx (S)VGA read and write handlers in order to use the pointer to the svga struct instead of the gd54xx struct, fixes #5521. 2025-04-29 00:33:51 +02:00
OBattler
592e5c6a79 Cirrus Logic: Implement proper VLB addressing, closes #5337. 2025-04-22 21:10:06 +02:00
OBattler
4768b3b6fb Fixed some bus checks in some (S)VGA graphics cards, fixes #5229. 2025-02-15 20:02:05 +01:00
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
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
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
OBattler
09eb050423 More KB -> kB. 2024-11-12 01:45:58 +01:00
OBattler
748987fa46 Onboard memory size -> Memory size. 2024-11-10 05:15:54 +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
OBattler
58a0c840c1 Added SiS 550x, 558x, 559x, (5)600, UMC UM8890, UMC UM8663 Super I/O Chips, UMC UM8673F and Winbond W83769F IDE Contollers, and a number of machines, and fixes to the UM888x 486 chipset. 2024-02-22 00:52:20 +01:00
OBattler
4c3cceec69 Fixed off by one errors in (S)VGA horizontal blanking start calculation. 2024-02-18 17:54:14 +01:00
TC1995
a330860b2e Fixed the Cirrus banking issue for good (really)
A bit controversial regarding extra_banks but this should be enough to fix everything in the banks of the CL-GD54xx (up to 5480).
2024-02-09 18:28:09 +01:00
OBattler
3f8952a558 More (S)VGA horizontal blanking fixes and CPU CR0 bit 4 fixes. 2024-02-09 18:02:33 +01:00
TC1995
7198b78069 Couple of changes in the video side.
1. Second attempt to fix the banking in the Cirrus (sigh, why doesn't banking get nulled automatically...)
2. Introduce a new timer to the 8514/A side so it won't slow the VGA clock down it was shared before.
2024-02-07 01:53:16 +01:00
OBattler
f3d585a1e1 Fix horizontal blanking calculation, fixes some S3 blanking excesses. 2024-02-07 00:11:02 +01:00
TC1995
30e768955c 9001st update on Cirrus banking...
1. VRAM mask consistency...
2. Don't apply the IBM VGA mode check to linear functions, where banking isn't used at all.
2024-02-06 23:50:32 +01:00
TC1995
e0aa4db151 Update on Cirrus banking.
When I say banking should be 0 when IBM VGA modes are set, they must be, Cirrus...
Also, updated the vram mask using the gd54xx struct rather than svga's for consistency.
2024-02-06 22:44:58 +01:00
TC1995
9926e1ff6a SVGA video card fixes of the day.
Vendor banking should be 0 when plain IBM VGA modes are set, fixes corrupt text modes (Cirrus and Paradise at the moment).
2024-02-06 21:26:23 +01:00
BurnedPinguin
325c27de70 Merge branch '86Box:master' into machine_23 2024-01-18 11:51:46 +01:00
BurnedPinguin
5e59cb17cf Conflict resolution. 2024-01-18 11:45:21 +01:00
OBattler
b1c292a9e9 Sanitized the horizontal blanking adjustments a bit and fixed 640x480x8bpp on some S3 cards. 2024-01-13 22:04:20 +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
38ef7fa1c3 CL-GD 54xx: Actually use display start and end for horizontal blanking timings in the special blanking mode. 2024-01-12 23:20:01 +01:00
OBattler
d2674c8dbb Fixed the Cirrus horizontal blanking calculation, fixes #4029. 2024-01-12 21:07:21 +01:00
Cacodemon345
2b3ebf9101 vid_cl54xx: Revert changes made to special blanking mode 2024-01-11 11:08:11 +06: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
OBattler
0a8b4d061c Conflict resolution. 2024-01-10 08:59:46 +01:00
OBattler
7701174b39 CL-GD 5446/5480: Implement missing byte swap behavior, fixes fonts with the Windows 3.1 CL-GD 5446 driver when cache is enabled. 2023-12-30 00:04:57 +01:00