Commit graph

1,705 commits

Author SHA1 Message Date
SarahW
cada868428 Tweak accesses to S3 system control and extension registers. Fixes
banking on some versions of UNIVBE (eg as used by Pro Pinball : The
Web).
2020-11-21 20:45:56 +00:00
SarahW
302d05c02a Build fixes for MiniVHD. Patch from shermanp. 2020-11-21 09:47:52 +00:00
SarahW
87524de18b Implement Voodoo CMDFIFO JSR/RET. Fixed "Bad CMDFIFO0" seen sometimes,
particularly when running OpenGL games windowed.
2020-11-21 09:44:46 +00:00
SarahW
39713ccdc4 Don't fatal() on unknown Voodoo 1/2 register reads; we probably have
all the important ones covered by now. Fixes Frogger 2.
2020-11-20 20:51:19 +00:00
SarahW
f72da770f1 Don't fatal() on "triangle_setup wrong order". These usually means one
of the vertices is not valid.
2020-11-20 20:41:41 +00:00
SarahW
0cbe6ae918 Ensure that any cycles spent when entering IRQ/NMI in interpreter are
accounted for in the TSC, and by extension the timer system.
2020-11-19 22:17:05 +00:00
SarahW
8053c8a523 Ensure that any cycles spent when entering IRQ/NMI in dynarec are accounted
for in the TSC, and by extension the timer system. Fixes slowdown and
stuttering music in Museum Madness.
2020-11-19 22:09:41 +00:00
SarahW
6b96f56632 Fix off-by-one issue on Banshee/V3 RGB565 overlay render. 2020-11-19 19:46:49 +00:00
SarahW
49ba35733e Implement Banshee/V3 CLUT lookup on 16-bit RGB overlay. 2020-11-19 19:38:34 +00:00
SarahW
e15f66b349 Add specific warning message when creating differencing VHD. Patch from shermanp. 2020-11-18 20:43:07 +00:00
SarahW
6cbce169f5 Ensure Voodoo 1/2 keep params copy of buffer row widths updated. 2020-11-18 20:39:41 +00:00
SarahW
088354f607 Mask off source address correctly for Banshee/V3 RGB565 tiled overlay 2020-11-18 20:00:55 +00:00
SarahW
035f6b348c Fix horizontal scaling of unfiltered Banshee/V3 overlay. 2020-11-18 19:49:58 +00:00
SarahW
aef6ea93e6 More changes to Banshee/V3 half mode. 2020-11-18 19:48:37 +00:00
SarahW
09a7b468c3 Move Voodoo colour/aux buffer tiled mode flags to params structure. Fixed
crash in 3DMark 2001 demo mode.
2020-11-17 21:43:30 +00:00
SarahW
8cfb60608e Increase size of Voodoo dirty_line array to 2048 lines, and add some
bounds checking before accessing. Fixes crash running 3DMark 2001 on
Voodoo 3.
2020-11-17 08:32:12 +00:00
SarahW
5c20fe7c57 Implement Banshee half mode on non-tiled surfaces. Fixes low res VESA
modes.
2020-11-16 20:05:44 +00:00
SarahW
d6bf0baed0 Close all devices on emulation shutdown. 2020-11-16 19:34:58 +00:00
SarahW
4459c7175d Close all IDE drives on IDE device destruction. 2020-11-16 19:34:28 +00:00
SarahW
d5dbe302b5 Implement CPU clock control on SCAT. Patch from Greatpsycho. 2020-11-16 17:59:57 +00:00
SarahW
fbb5904b52 Rework AudioPCI IO port handling to avoid potential conflict between
native and CODEC ports. Fixes AudioPCI with Windows XP.
2020-11-15 16:56:43 +00:00
SarahW
142301adbf Don't enable SCAT shadow RAM if SCAT configured for less than 1 MB of
low memory. Fixes Hyundai Super-286TR with 1 MB RAM configured.
2020-11-15 13:44:23 +00:00
SarahW
a89347d415 Add Amstrad PC5086 emulation. Patch from davide78. 2020-11-15 11:11:41 +00:00
SarahW
95e6819f02 Remove use of _wfopen_s in minivhd. 2020-11-15 09:02:32 +00:00
SarahW
322b25a4dc VHD build fixes. Patch from shermanp. 2020-11-15 08:58:59 +00:00
SarahW
5ae201b7e7 Disable Banshee lazy overlay update when vertical scaling enabled. Fixes
artifacts in low resolution modes (where the lazy update has little
benefit anyway).
2020-11-14 19:34:00 +00:00
SarahW
9bea8c138a Intel Advanced ZP/EV derived systems don't seem to support Cyrix 6x86
CPUs (executes MSR and CPUID instructions without any preceeding checks).
Removed these CPUs from those systems.
2020-11-14 19:34:00 +00:00
SarahW
49bdd9534f Add X11 cursor mode to Banshee/V3. 2020-11-14 19:34:00 +00:00
SarahW
ed37bc4e24 Fix Banshee/V3 mappings following write of PCI command register. Fixes hang
following monitor suspend/wakeup.
2020-11-14 19:33:59 +00:00
SarahW
86a5b13f46 Add dirty updating for Voodoo Banshee/3 overlay. 2020-11-14 19:33:59 +00:00
SarahW
a366d977aa Added Voodoo Banshee/3 screen filter. Patch from leilei. 2020-11-14 19:33:59 +00:00
SarahW
91e165a6d6 Reduce level of Voodoo Banshee/3 logging. 2020-11-14 19:33:59 +00:00
SarahW
0469ab60cb Implement penalties for segment load on Pentium Pro. 2020-11-14 19:33:59 +00:00
SarahW
5c3069c561 Add W83977TF SuperIO chip for Gigabyte GA686BX. 2020-11-14 19:33:58 +00:00
SarahW
c598f88f67 Implement Banshee/V3 vidProcCfg half mode. Fixes low res 16 bpp modes. 2020-11-14 19:33:58 +00:00
SarahW
4683d674b6 Implement PIIX SMI gate. Fixes some issues seen on Shuttle HOT-433
when power management disabled in BIOS, which results in the BIOS
failing to initialise and relocate the SMI handler but still advertise
APM availability.
2020-11-14 19:33:58 +00:00
SarahW
a01cc90866 Tweak search range when codegen looking for start uOP for given
instruction. Fixes range when unrolling LOOP instruction pointing
to itself (which could skip initial cycle count update), fixes
Windows 98 boot on 6x86 chips.
2020-11-14 19:33:58 +00:00
SarahW
624f1cfcfc Set raw limits on LLDT & LTR instructions - Cyrix RSLDT/RSTS instructions
no longer corrupt LDT/TR limits.
2020-11-14 19:33:58 +00:00
SarahW
7f206c5484 Clear CR4 mask by default. Fixes issues when switching between CPUs
that implement CR4 and those that don't.
2020-11-14 19:33:57 +00:00
SarahW
c0bc163eaf Implement Cyrix SMM mode. 2020-11-14 19:33:57 +00:00
SarahW
8a5a0fc48c Intel flash chips respond to writes at all addresses. Fixes NVRAM errors
on VS440FX.
2020-11-14 19:33:57 +00:00
SarahW
193645a426 Add mutex to protect Voodoo swap count and pending. Should fix hangs
sometimes changing video mode on Voodoo 3.
2020-11-14 19:33:57 +00:00
SarahW
984437dfa9 Default W83877TF SuperIO to all devices disabled. Fixes FIC VA-503+ IO
port conflicts introduced following APM/ACPI implementation.
2020-11-14 19:33:57 +00:00
SarahW
038a27767a Implement APM/ACPI functionality for MVP3/VT82C586B, including soft
power off.
2020-11-14 19:33:57 +00:00
SarahW
82b1486f6b Implement APM on i430LX and SIO chipset. 2020-11-14 19:33:57 +00:00
SarahW
38cee364d3 Add basic APM functionality for PIIX/PIIX3 and i430FX, i430VX, i430HX
and i440FX chipsets.
2020-11-14 19:33:57 +00:00
SarahW
93756d3f01 SMM fixes 2020-11-14 19:33:56 +00:00
SarahW
00034c1ece Implement API to terminate current emulator session from within main
emulator thread (ie soft power off).
2020-11-14 19:33:56 +00:00
SarahW
8f04c11a76 Implement PIIX4 power management. Soft power off is currently 'implemented'
by killing the emulator.
2020-11-14 19:33:56 +00:00
SarahW
0cbbd22c88 Add emulation of System Management Mode. 2020-11-14 19:33:55 +00:00