Commit Graph

1803 Commits

Author SHA1 Message Date
TC1995
b7319cf60b Fix warnings and build. 2025-04-22 21:24:31 +02:00
TC1995
14ef3b75ac Vast fixes to the Mach8/32/8514/A compatible side (April 22nd 2025)
1. As tiring as it seems, XOR properly the passthrough bits for mode changes. Fixes everything tested as of now (Mach8/32).
2. Implemented separate destination and source GE pitch and offsets. Fixes Windows 3.1 mach8/32 drivers using devicebitmap enabled (or dmp=1).
3. Properly fixed high and true color patterns so that the aforementioned patterns are drawn correctly in various stuff.
4. Implemented in the best possible way the CRT offset (currently in on conjunction with the GE offset).
5. On ScanToX with bpp set to 24 and dpconfig 0x6211, optmize the SRC/CUR X-Y coordinates at the end of the blit.
6. For mode changes, don't call the mode change recalctimings function if we aren't in the appropriate bits of the respective ports.
7. Separate 8514/A compatible and Extended foreground/background selection implemented, fixes Windows 3.x ATI Ultra drivers from 1992 without hacks.
8. Clear the busy flags when needed without stalling the entire guests (but not the emulator itself) (Mach8/32).
9. The MMIO regs should be enabled only when the VGA aperture has reached a graphics mode (0xA000). This fixes NT 3.x mach drivers in true color mode and making Win3.1 drivers working without a hitch at the same time.
10. Actually implement the hardware 4bpp cursor properly on Mach32.
11. Cosmetic cleanups.
2025-04-22 21:15:05 +02:00
OBattler
592e5c6a79 Cirrus Logic: Implement proper VLB addressing, closes #5337. 2025-04-22 21:10:06 +02:00
Miran Grča
525925ae16 Merge pull request #5205 from thedax/quantum3d
Add basic support for the Quantum3D Raven.
2025-04-15 22:25:44 +02:00
Cacodemon345
06bacb6912 Bochs SVGA: Buffer window switching now works properly 2025-04-07 01:01:26 +06:00
OBattler
375590b93b Bochs SVGA: Add some sanity check to avoid the LFB and BIOS being mapped to either at the very bottom or top of the memory space. 2025-04-06 01:05:12 +02:00
OBattler
1c38e059c4 PS/55 DA2: Fix warnings. 2025-04-04 18:29:28 +02:00
Miran Grča
5d7de0e043 Merge pull request #5434 from akmed772/da2dev2
PS/55: Add support for V-Text driver of IBM DOS/V Extension
2025-04-04 07:54:31 +02:00
Akamaki
b484bf1b45 PS55DA2: Add a bracket to avoid compile warning 2025-04-04 10:04:43 +09:00
Akamaki
4a4a7a342a PS55DA2: formatting, sorting 2025-04-04 09:42:22 +09:00
Akamaki
392e3156bb disable debug code 2025-04-04 09:10:49 +09:00
Akamaki
beb417cc85 PS55DA2: cleanup, remove unused code 2025-04-04 08:55:14 +09:00
Akamaki
b4f3e06c1e PS55DA2: Fix some issues in DSPX and OS/2 dosbox 2025-04-04 08:23:32 +09:00
Akamaki
837f86a291 PS55DA2: Parse Bitblt data sequential 2025-04-03 22:17:24 +09:00
Akamaki
fc06d3de89 PS55DA2: add char drawing func in BitBlt
This build is still in work.

* Added character drawing function to support for DOS/V Extension DSPXDA2 driver.
* Implement CRTC regs: start address, end address, line compare to support line compare scrolling in DOS/V Extension.
* Enable updating CRTC regs when output is disabled.
2025-04-03 15:16:58 +09:00
TC1995
5432c1dd13 8514/A compatible changes of the day (April 2nd, 2025)
1. Aliases are aliases, period.
2. Actually make the ports using bit 15 of their range use the command FIFO.
3. Improved the special ATI command 0xc2b5 in the IBM bitblt side, fixes cursor issues in 24bpp mode using OS/2.
4. When the FIFO is empty, clear the busy and available flags.
5. Also reapply a workaround for 24bpp foreground color patterns in ATI command Scan To X command, fixes patterns in OS/2 and possibly elsewhere.
6. Accelerated HiColor mode, in the IBM passthrough mode, should always be enabled, for now, as well as the Extended ATI Mach32 8bpp mode when prompted, fixes OS/2 booting into the GUI in HiColor mode.
7. Dummy data path configuration values on direct linedraw should not trigger a pixtrans read when it's not needed, fixes possible hang ups in IBM/ATI mode when the busy flag remains enabled.
2025-04-02 21:33:26 +02:00
TC1995
8ff30ab2e6 Mach64 ISA/VLB LFB update of the day (March 30th, 2025)
The LFB can now be enabled properly on the ISA/VLB variants of the Mach64GX.
2025-03-30 23:17:58 +02:00
TC1995
5ae5e99e41 Major changes on the 8514/A side again (March 30th, 2025)
1. The DX/DY coordinates for BitBLT are now signed again, fixes 8514/A cursor issues.
2. Made the busy/data available processor statuses more like the ATI one for more stability and no stalls, fixes Windows 3.x and IBM OS/2 1.x (possibly later ones too) that use the built-in 8514/A driver.
3. Made the mode switching clearer (through a note) regarding the shadow sets, this should make every program happy, I hope.
4. In the Mach32 series only, a first load of the CRT sets also initializes the GE offsets if the corresponding bit is set, fixes Mach8/32 mode tests in their eeprom and demoai with hdiload from ATI/IBM.
2025-03-30 22:06:16 +02:00
OBattler
512154e4a8 EGA: Add braces around a case block to make clang happy. 2025-03-30 09:00:39 +02:00
OBattler
5569fa6f5d C&T SuperEGA: More fixes, the BIOS no longer freezes on attempting to boot from anything. 2025-03-30 08:22:14 +02:00
OBattler
d2afb44412 SVGA: Remove some excess logging. 2025-03-30 07:32:46 +02:00
OBattler
e4877a57c5 EGA/JEGA: More fixes and implemented more C&T SuperEGA behavior. 2025-03-30 07:28:20 +02:00
OBattler
3fc6d29462 JEGA/JVGA: Only update renderer override on master, do not update CRTC cursor location unless it's either master or slave, and only override the text mode renderer - fixes AX Windows 3.0 386 enhanced mode returning from DOS box to full screen. 2025-03-30 04:53:48 +02:00
TC1995
ef588c118a Fixed log excess. 2025-03-29 20:36:00 +01:00
TC1995
5a4a939e02 More fixes to the 8514/A compatible side.
1. Use proper identification to what chips use what.
2. Apply some mode switch fixes to the ATI 8514/A Ultra and make 1024x768 87Hz interlaced the default mode if htotal is 0 and on ati8514_init.
3. Add the undocumented ports to the ATI 8514/A Ultra add-on as well.
2025-03-29 20:27:20 +01:00
TC1995
1c98437e66 More display changes.
SVGA related:
If CRTC1/HDISP is odd (if bit 0 is set), then make it even accordingly, else leave it as is. Should fix some display skews.

S3 related:
Remove old code references (can still be accessed through history if one needs it).

8514/A compatible related:
Proper use of the htotal and hdisp timings.
2025-03-29 14:49:13 +01:00
TC1995
c91f2255ad Vast overhaul for the Mach8/32/8514/A (March 29th, 2025)
1. Implemented the FIFO test data to pass some tests of the Mach8 POST ROM and tests (not complete yet).
2. Overhauled the mode switches again, but this time with way less hacks and more on manual instructions.
3. Use a function pointer to determine if the Mach8 type used is a VGA combo or add-on.
4. Mach32 mode tests are no longer incorrectly green (was caused by improper pixtrans parts).
5. Implemented overscan color to the Mach32 as well as the CRT offset.
6. And fixed a PCI LFB GPF issue with the Mach32 2.3 drivers on Win3.1x.
7. Implemented memory boundary for both the Mach32 SVGA and its accelerator.
8. Added undocumented ports used by the FIFO (such as ports 0x8AEE and 0xEAEE).
9. Plus resetting the device right a la s3.
10. Temporarily switched the bus type of the Mach8 to 8-bit in both MCA and ISA variants.
2025-03-29 14:42:25 +01:00
Akamaki
94a928978e PS55DA2: update compatibility table 2025-03-29 20:46:30 +09:00
OBattler
c00c432398 EGA: Fix colors in mono mode and attribute registers, fixes #5395. 2025-03-29 00:10:39 +01:00
OBattler
6366ff7580 JEGA: Fix two uninitialized variables. 2025-03-28 08:09:51 +01:00
OBattler
8f6f21b57e IBM VGA: Re-add the forgotten (S)VGA I/O handlers. 2025-03-28 06:54:45 +01:00
OBattler
47febdf196 JVGA: Read CRTC registers from VGA rather than EGA, fixes Wolfenstein 3D. 2025-03-28 06:42:11 +01:00
OBattler
63222b70db Added the OKIVGA/H-2 (JVGA/H). 2025-03-28 06:16:05 +01:00
OBattler
8a8ed60043 EGA: Send monochrome attributes through the EGA palette lookup like the real hardware also does. 2025-03-28 03:29:11 +01:00
OBattler
cec630fa75 JEGA: Use colors based on a photo of the real OKI IF386AX when the LCD is in use to tell it apart more easily, and reset all devices on port 65h reset, fixes Trantor SCSI BIOS not finding any devices after such a reset. 2025-03-28 03:26:28 +01:00
Miran Grča
7ee19c0a55 Merge pull request #5392 from akmed772/da2dev
Fix bugs related to PS/55 emulation
2025-03-27 18:58:20 +01:00
Akamaki
da855e02b4 PS55DA2: Fix video switcher
Fix an issue that the screen is resized repeatedly when booting OS/2.
2025-03-28 01:30:00 +09:00
Akamaki
209b29a239 PS55DA2: cleanup, change func scope
remove unused variables, change funcs declaration scope, reformat debug code
2025-03-28 00:55:33 +09:00
OBattler
260f91313a JEGA: Bring back the reset for time being, the BIOS needs it to reboot. 2025-03-25 02:08:35 +01:00
OBattler
3f6593f314 IF386AX: Set video card to fixed and make the power off function actually power off. 2025-03-25 02:02:00 +01:00
OBattler
d361befe75 JEGA: Commented out the two 3de arrays which are currently unused. 2025-03-24 14:23:38 +01:00
Akamaki
abb0670eb0 PS55DA2: remove unused code, update comment 2025-03-24 20:27:37 +09:00
Akamaki
3c4e8c9e4a PS55DA2: Fix screen size calculation
* Fix screen size calculation in recalctimings.
* Set the position of underscore by CRTC reg value.
* Optimize text drawing function
2025-03-24 19:46:16 +09:00
Akamaki
fe0c246bd2 if386sx: change rom file path 2025-03-24 01:33:58 +09:00
Akamaki
512c04c9f4 Add OKI if386AX emulation (#7)
* add a machine oki if386ax

* if386AX: still in debug

* Revert "if386AX: still in debug"

This reverts commit ade401beb0c72cee6fd1ec4728097a87e75bc09b.

* if386ax: added I/O 6xh

* if386ax: remove comment

* formatting, sorting, change filename

* change mono color palette
2025-03-24 00:56:34 +09:00
OBattler
2ff31188c2 CGA: Fix rounding in the interpolation calculation. 2025-03-23 06:57:40 +01:00
OBattler
47aa4a1e18 EGA: Process the results of the monochrome attributes into 32-bit RGB values. 2025-03-23 02:29:41 +01:00
OBattler
ae60590133 EGA: Fix underline position. 2025-03-23 02:26:03 +01:00
OBattler
646e25f1bc EGA: Implement monochrome attributes for text mode. 2025-03-23 02:22:10 +01:00
OBattler
2151a6064f SuperEGA: Implement row and vertical divide modes. 2025-03-22 23:57:05 +01:00