Commit graph pcem/src/vid_svga.c
Author SHA1 Message Date
SarahW
19a5dfa579 Added Voodoo Banshee emulation.
Known issues :
- Tiled framebuffer layout is not yet implemented. This causes horizontal
  offsets in some 2D 16bpp stuff (eg FMV in Tomb Raider 2, UI in Expendable)
- Fog is broken and currently disabled for Banshee
- Possibly at least 1 race in 2D blitter emulation
- A few things not yet emulated - overlay filters, some (rarely used) 2D
  blitter functions
2020-11-14 19:33:28 +00:00
SarahW
87941f2903 Added Kasan Hangulmadang-16 emulation. Patch from Greatpsycho. 2020-11-14 14:20:37 +00:00
SarahW
ed30e17128 Implement VGA byte panning and cursor skew. Patch from Greatpsycho. 2020-11-14 13:38:07 +00:00
SarahW
798eabcac7 Rewrite SVGA status resolution code, should now be less wrong. 2020-04-18 12:06:20 +01:00
SarahW
a017de3c57 Add missing Mystique vsync interrupt. Helps with some Mystique Win9x drivers. 2020-03-30 20:59:40 +01:00
SarahW
b72aa2117b Mystique fixes :
- MGA mode disables all VGA data processing on reads / writes
- MGA mode forces 8 pixels per character
- DMAPAD acts as an ILOAD mirror during ILOAD operations, same as SRCx
- Handle signed X coordinates better in blit operations
- Add more MMIO registers
- Don't fatal on ILOAD reads when blitter not busy
Fixes Windows XP with Mystique.
2020-01-18 15:50:46 +00:00
SarahW
483c7db709 Added Matrox Mystique emulation. This is a work in progress, and has a few known
issues :
- Only YUV supported for scaled ILOAD operations
- Several BLTMOD formats missing
- Bad texturing in Actua Soccer
- Flickering in Croc (broken vsync waiting?)
- Turok doesn't swap buffers correctly
- Some missing features
2020-01-15 22:17:36 +00:00
SarahW
f56f5e76e6 Fix latching in svga_read_linear(). Fixes Jazz Jackrabbit on Cirrus Logic cards. 2019-12-20 17:01:53 +00:00
SarahW
2489fd9c6e Add ATI EGA Wonder 800+ emulation. 2019-12-19 11:24:08 +00:00
SarahW
50e7de5214 Merge from trunk 2019-04-18 20:46:38 +01:00
SarahW
787aad9598 Reset EGA/VGA character scanline counter when hitting split screen start line. 2018-08-31 08:46:38 +01:00
SarahW
ad50530ded Force display redraw on writes to EGA/VGA attribute register 0x13 (soft panning). 2018-08-31 08:41:25 +01:00
SarahW
2783471daa Clamp SVGA display on/off timings to a minimum of 1 usec. Fixes hang on Windows XP boot with ViRGE/DX. 2018-08-08 22:15:21 +01:00
SarahW
a7d006b637 Rewrote timer code.
The new code is based on timestamps, rather than delays. This eliminates the
need to update every timer in timer_process(), which cost a non-trivial amount
of CPU time on low-end machines.

This involved changes to every user of the timer code, so this change almost
certainly introduces bugs.
2018-08-02 22:06:10 +01:00
SarahW
fb14e1881f Moved post-rev1065 0x3da code to OTI-037C specific code. Restored pre-rev1065 generic SVGA 0x3da code. Fixes PS/2 VGA self test. 2018-03-24 19:50:26 +00:00
SarahW
2567c30353 Added ATI Korean VGA emulation. Patch from Greatpsycho. 2018-03-11 15:46:24 +00:00
SarahW
2f5f4a5b47 Fixed double IO mapping of Mono VGA registers. 2018-03-11 14:29:56 +00:00
SarahW
0ee7c7a354 Added Oak OTI-037 emulation. Patch from EluanCM. 2018-02-24 11:39:22 +00:00
SarahW
5c9a1e9664 Added CL-GD5430 emulation. 2018-02-18 12:33:09 +00:00
SarahW
93d0db4d9b CL-GD5429 improvements :
- Support >8 bpp on RAMDAC
- Support 16-bit pixel depth on blitter
- Support 16-bit pixel depth on write modes 4/5
- Support blitter on PIO
- Support interlaced modes
- Extended size of graphics controller register array to prevent out-of-bounds accesses
2018-02-15 21:00:12 +00:00
SarahW
1d93b73e3a Implement configurable hardware cursor size on TGUI9440. 2018-02-11 15:40:41 +00:00
SarahW
0ca43d37d4 Emulated EGA/VGA CRTC register 8 (Preset Row Scan Register). 2018-01-31 21:20:26 +00:00
SarahW
475f51ba0f Video timing improvements :
- Separated read and write timings
- Added timings for onboard video chips
- Updated timings based on VIDSPEED testing
2018-01-31 21:09:11 +00:00
SarahW
b97d525e0c Fix 8-bit RAMDAC palette handling. 2017-11-05 15:42:04 +00:00
SarahW
39a68d757b Rework video memory handling to cater for open bus and VRAM address wrapping. Fixes more hangs with Trio64 and Windows 95. 2017-10-22 12:41:10 +01:00
SarahW
b1f4748eaf Fixed colour compare in EGA/VGA - fixes graphics issues in Crystal Dream II. 2017-08-31 14:26:54 +01:00
SarahW
54d260846f Mask off top bits of VGA palette data. Fixes palette in Amulets & Armor. 2017-08-04 22:05:54 +01:00
SarahW
7c63ce6368 Mark video memory mappings as external. Patch from Greatpsycho. 2017-05-07 10:38:28 +01:00
SarahW
b5c11bc981 Added emulation of ATI Video Expression (Mach64 VT2). 2017-05-02 14:42:41 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
bfc69a4bea Cleaned up ibm.h a bit 2016-11-28 20:06:17 +00:00
SarahW
620beb1eb5 Writing to VGA RAMDAC write index also sets read index. Fixes colours in Planet Football. 2016-10-03 18:17:40 +01:00
SarahW
9f4b159121 Move video blit to seperate thread. 2016-07-18 21:15:32 +01:00
SarahW
b39eb20237 Mach64 fixes :
- Added support for 8-bit RAMDAC mode
- Added ABGR8888 mode
- Add support for mono blitter source
- Identify RAMDAC type correctly
- Use correct colours for hardware cursor
Fixes issues in Corel Linux.
2016-05-08 20:41:51 +01:00
TomW
25ac41fbde Ignore odd/even mode when loading VGA latches on memory read. Fixes Jazz Jackrabbit. 2015-10-10 14:33:36 +01:00
TomW
8d3c6fb195 Implemented VGA attribute enable bit in attribute index - VGA grabber in Windows 3.x now works properly. 2015-09-18 20:42:37 +01:00
TomW
969d5811e5 Fixed text mode in Paradise VGAs (Amstrad systems). 2015-08-20 20:56:28 +01:00
TomW
3789398ca6 Changed registers used for EGA/VGA odd/even mode. 2015-08-14 21:54:42 +01:00
TomW
0a5e80325a VGA RAMDAC does not update palette until all three elements are written. Fixes Windows 3.x EGA driver when run on a VGA card. 2015-08-13 19:49:19 +01:00
TomW
12232fd7b8 Implemented odd/even memory mode for EGA and VGA. 2015-08-12 20:37:39 +01:00
TomW
708cf896d1 Added usable 3DFX emulation. 2015-03-08 15:55:03 +00:00
TomW
56b455844e Initial port to Linux (using Allegro).
64-bit fixes.
Some changes to aid portability.
A few other tweaks.
2014-09-04 21:07:24 +01:00
TomW
1c3d1039ff ViRGE S3D triangle rendering now uses worker thread.
Fixed clipping bug on ViRGE.
Fixed status window crash.
2014-07-22 21:10:39 +01:00
TomW
4657e9f2c5 Added configurable VRAM for Mach64, ET4000/w32p, Oak and Trident graphics cards. 2014-07-14 21:56:10 +01:00
TomW
4cdb0d9d82 Fixed hang when opening status window. 2014-07-11 20:52:18 +01:00
TomW
0c2efae9c3 Fixed cursor in interlaced modes on S3 Vision864/Trio32/Trio64. 2014-07-09 22:12:59 +01:00
TomW
4f11821ee6 Port 0x3da diagnostic bits now held static during blanking, fixes DOS 6.2/V hang. 2014-07-06 21:40:28 +01:00
TomW
3c8a675d01 Reorganised Windows-specific code a bit. 2014-06-24 21:15:42 +01:00
TomW
f1e1cc0b25 Initial S3 ViRGE video overlay emulation. 2014-06-13 18:43:25 +01:00
TomW
0a1c4dcdf0 Fixed dirty screen updating in high resolution modes. 2014-03-22 19:10:00 +00:00