Commit graph

1,488 commits

Author SHA1 Message Date
SarahW
60472b3a66 Add emulation of SCAMP DRAM controls. This primarily emulates the mirroring
effects of the controller programmed to the wrong DRAM size, which is required
for the Commodore SL386SX to be able to detect memory size correctly.
2020-01-19 21:26:50 +00: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
e6949e7599 Fix broken mappings in Cirrus Logic cards. 2020-01-17 19:00:00 +00:00
SarahW
5bf090f874 Added pthread mutex implementation for non-Windows hosts. 2020-01-16 20:30:35 +00:00
SarahW
3d0986fb73 Don't map Mystique memory ranges when base addresses are zero. Fixes boot of FIC
VA-503 BIOS with Mystique selected.
2020-01-16 19:52:53 +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
22977a4ff7 Reset purgable page list on reset. Fixes crashes when switching between machines. 2020-01-15 20:00:04 +00:00
SarahW
a140d26315 Fix some offset size checks in instruction generation code. 2020-01-15 19:59:33 +00:00
SarahW
5c8e1aecc2 Added emulation of Commodore SL386SX-25 (PC Player II).
As part of this, added emulation of the onboard AVGA2, and fixed a couple of
bugs in the Cirrus Logic extended write modes.
Currently chipset (VLSI SCAMP) is missing EMS emulation.
2019-12-20 17:19:25 +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
2c6b130ec8 Update Makefile.in 2019-05-19 17:41:11 +01:00
SarahW
e676e6b9e0 Update version number to v15. 2019-05-19 17:38:31 +01:00
SarahW
803b48ea1c Fixed direction of AudioPCI sample counters. Fixes stuttering MIDI in some games (eg Theme Hospital). 2019-05-19 08:17:10 +01:00
SarahW
a5b59efb3f readme.txt updates 2019-05-18 19:31:33 +01:00
SarahW
1dd8cf1e81 Move port 0xcf9 handling from i430FX/VX to PIIX, adding reset callback for FX/HX/VX northbridges.
Add IDE reset to port 0xcf9.
Reset IDE error register on reset of non-existent devices.
Fixes IDE related issues on soft reset for ASUS boards.
2019-05-18 17:35:32 +01:00
SarahW
8b46bbe1af Better FDC enabling/disabling on W83877*. Fixes floppy drive on FIC VA-503+ in Windows 9x. 2019-05-18 15:48:43 +01:00
SarahW
b16e3d84bd Fix issues accessing W83877* config registers. Fixes floppy drives on ASUS and FIC boards. 2019-05-18 14:51:14 +01:00
SarahW
cb6422b324 MMX fixes :
- Initialise x87 tags correctly in recompiler
- EMMS/FEMMS now respect cr0 TS bit
- FRSTOR now doesn't force all non-uint64 tags to valid
Fixes Heaven 7 with AudioPCI
2019-05-18 14:05:30 +01:00
SarahW
b84fefacb7 Add K6 CPUs to Socket 7 motherboards. 2019-05-17 21:32:07 +01:00
SarahW
0b57135b3c Add FDC37C932FR SuperIO for Epox P55-VA. 2019-05-17 21:31:57 +01:00
SarahW
846103d310 Remove some dead comments from ibm.h. 2019-05-17 20:16:10 +01:00
SarahW
08b019eb85 ASUS Socket 7 boards use W83877F for SuperIO. 2019-05-17 20:15:56 +01:00
SarahW
60058283eb Disable FDC when enabling W83877TF config registers at 0x3f0, to prevent bus conflicts. Fixes duplicate FDC/COM/LPT ports on VA-503+. 2019-05-17 20:15:09 +01:00
SarahW
e6df3901d9 Rename Award 430VX PCI to Shuttle HOT-557. 2019-05-17 17:40:54 +01:00
SarahW
a4b33a6353 Correct memory limits on Socket 7 boards. 430VX boards support 8-128 MB. While the 430HX chipset supports up to 512 MB, the real ASUS P55T2P4 only supports up to 256 MB. 2019-05-17 17:40:12 +01:00
SarahW
4b061cdcf4 Fixed typo when reading SR[17] on Cirrus Logic cards. 2019-05-17 17:04:01 +01:00
SarahW
a9509e04ee Cirrus GD5429 doesn't support PCI, so don't look at the PCI command register when updating mappings. Fixes GD5429 on PCI systems. 2019-05-17 17:03:38 +01:00
SarahW
c39dc641a6 Reset Cirrus Logic hidden DAC counter on accesses to 3c7/3c8/3c9. 2019-05-16 22:07:57 +01:00
SarahW
e2c7bf02ab Add support for 64x64 cursors to Cirrus Logic cards (used by OS/2 Warp). 2019-05-16 22:05:18 +01:00
SarahW
12f8751e5c Fix read of Cirrus Logic cursor position registers. OS/2 Warp now detects CL cards correctly. 2019-05-16 21:52:07 +01:00
SarahW
51341c5ca6 Support CD-ROM commands with zero allocation length. Fixes 'Device failed to request command' on PB570. 2019-05-15 19:51:57 +01:00
SarahW
de3bb62e0c Interpreter now updates TSC every instruction. Fixes Desert Strike. 2019-05-14 20:32:32 +01:00
SarahW
1f57a70a21 Slow down sector read/write speed on AT Fixed Disk Adapter. Fixes OS/2 v1.0 hard drive formatter. 2019-05-13 19:39:56 +01:00
SarahW
a1e2ee3218 Set eviction/mask entries in pages[] array for remapped pages. Fixes crashes on PS/2 and possibly some other models. 2019-05-13 17:49:33 +01:00
SarahW
388229aeb5 Rework bit depth selection on SDAC to add a few missing cases. 2019-05-12 18:00:48 +01:00
SarahW
aa933688eb Fix reads of 3C6 on SDAC (Bahamas 64) when not returning command register or RAMDAC ID. 2019-05-12 18:00:19 +01:00
SarahW
51c4a1455e Fix clock selection on S3 Vision864 w/SDAC (Bahamas 64). 2019-05-12 17:59:21 +01:00
SarahW
bd8cade1fb Remove 4 MB option from Bahamas 64; this card only supports up to 2 MB. 2019-05-12 17:58:37 +01:00
SarahW
c682e070a6 Fix x87 tag register when using MMX instructions. Fixes numerous issues when an MMX process is running at the same time as one or more other MMX/FPU processes (usually seen running 3dfx games with AudioPCI). 2019-05-11 18:41:31 +01:00
SarahW
451e80a333 Fall back to interpreter version of FADD if x87 rounding mode is not nearest. Fixes software rendering in Battlezone. 2019-05-11 11:45:08 +01:00
SarahW
83f2869123 Don't unroll a loop if x87 top of stack is different at the start and end of the loop. Fixes Battlezone. 2019-05-11 11:44:33 +01:00
SarahW
2b6b14f175 Set BUSY_STAT in ATAPI code. Fixes 'Device failed to request command' error when installing Windows ME. 2019-05-08 21:50:52 +01:00
SarahW
6a27983f17 In Windows IOCTL CD-ROM code, only try reading via SPTI if ReadFile returned success but didn't read all requested data. Fixes Red Alert 2 installer. 2019-05-08 21:49:47 +01:00
SarahW
5ef5fc1f98 Tweak Voodoo swap pending code. Fixes hang in Carmageddon 3DFX version. 2019-05-05 17:08:17 +01:00
SarahW
5e35e48ec7 XMM registers are not preserved across function calls, and should be flushed & discarded by the recompiler prior to calling external functions. Fixes graphics issues in some games (eg World Cup 98 title/menus). 2019-05-05 14:49:10 +01:00
SarahW
e2a9629a89 Fix typo in Makefiles. 2019-05-05 09:22:26 +01:00
SarahW
8a7c3d78e7 Fix timer bugs in Windows Sound System emulation. 2019-05-04 18:26:14 +01:00
SarahW
cfd2e4e14c Fix gameport timing when no joystick plugged in. Fixes phantom joystick in some games (eg Rayman, The Lion King, Zone 66). 2019-05-04 16:02:55 +01:00
SarahW
12439b7c62 Add 82091AA AIP SuperIO for Packard Bell PB520R. Fixes floppy drives and duplicate ports in Windows 95. 2019-05-04 15:53:46 +01:00