Commit graph

577 commits

Author SHA1 Message Date
SarahW
a4f3b2013e Added AMI 386DX and MR 386DX models (both based on OPTi 495 chipset). AMI 386DX supports external cache, useful for with prefetch emulation.
Also commit a few fixes required :
- Set EDX correctly on soft reset
- LOCK NOP is now treated as an illegal instruction
- Tweaks to FDC sense interrupt handling following FDC reset
2016-11-27 21:53:13 +00:00
SarahW
1b73963997 Added prefetch timing approximation for 286/386 CPUs, with configurable memory timing. 2016-11-25 21:32:02 +00:00
SarahW
c5889e311f Implemented Voodoo 2 triangle setup cull ping-ponging. Fixes missing triangles in Starsiege Tribes. 2016-11-22 19:42:08 +00:00
SarahW
e162b6166e Voodoo now implements texture RGB as a multiplier input in the colour combiner. 2016-11-20 17:16:00 +00:00
SarahW
7084337906 Voodoo non-recompiler now implements texture alpha reverse blending correctly. 2016-11-20 17:15:18 +00:00
SarahW
de1d72b92b Voodoo non-recompiler now uses correct W coordinate for TMU #1 2016-11-20 17:14:48 +00:00
SarahW
fd8b80d371 Fixed typo in shift counts in texture alpha extraction code in Voodoo recompiler. 2016-11-20 17:14:07 +00:00
SarahW
747f8994ca Added code generation for RMW versions of SHL/SHR/SAR 2016-11-17 20:01:28 +00:00
SarahW
b9a7fb042f Added code generation for RMW versions of INC/DEC 2016-11-16 21:14:38 +00:00
SarahW
bd3576e947 Fixed missing declaration of 'fatal' in ibm.h 2016-11-15 21:11:42 +00:00
SarahW
0985952317 Added code generation for RMW versions of ADD/SUB/OR/XOR/AND 2016-11-13 14:30:39 +00:00
SarahW
a174a88c49 Codeblock tree now includes both physical and virtual addresses into key. Fixes performance issues with Windows 3.1. 2016-11-08 21:30:48 +00:00
SarahW
52fd357f3d Voodoo CLUT data can be written via CMDFIFO. 2016-10-22 16:13:42 +01:00
SarahW
396992f102 More accurate PCI timing, mainly for Voodoo. 2016-10-22 16:01:49 +01:00
SarahW
31c311924c Added Voodoo 2 emulation. 2016-10-22 14:18:06 +01:00
SarahW
3527f822b9 Added Plantronics ColorPlus emulation. Patch from John Elliot. 2016-10-16 20:29:12 +01:00
SarahW
3df46b4479 Memory addressing on XT now wraps at 1MB. 2016-10-09 08:53:04 +01:00
SarahW
e591f95f8e Fixed bug that cleared disc change line when loading new disc. 2016-10-04 19:39:37 +01: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
0b5c3d24ea Added support for Voodoo with 2 TMUs (Obsidian SB50 with Amethyst daughterboard).
As part of this change, Voodoo now converts textures to ARGB8888 and caches ahead of rendering. Minor speedup.
Also fixed Z clamping when depth bias in use.
2016-10-01 16:42:04 +01:00
SarahW
273ef3847a Improvements to flash ROM emulation on Premiere/PCI, Advanced/EV and Award 430VX PCI modules. Patch from Battler. 2016-09-18 15:57:46 +01:00
SarahW
dd2a608707 x86-32 recompiler performs float->integer rounding by loading FPU control word instead of calling helper function - speedup on some stuff. 2016-09-18 14:57:10 +01:00
SarahW
aab2c3e7cf Don't inline memory read/write code in x86-32 recompiled blocks - speedup (up to 20% seen) 2016-09-15 21:06:28 +01:00
SarahW
6b5467a6c9 Remove unnecessary flag rebuilding in FP_ENTER(). 2016-09-11 17:16:34 +01:00
SarahW
75f9316c11 x86-32 recompiler compiles FPU instructions using direct access to register stack when top-of-stack is static. Minor speedup. 2016-09-11 15:38:05 +01:00
SarahW
1004d947d5 Fixed bug with FRSTOR which broke FPU copy. 2016-09-10 18:41:58 +01:00
SarahW
26b8bdddb6 Fixed branch offset in x86 recompiler JNLE instruction - MS-DOS 6.22 installer works again 2016-08-30 20:32:11 +01:00
SarahW
b92634dea6 Added missing Alpha+YIQ texture format to Voodoo.
Added depth source select to Voodoo.
Fixes graphics issues with Requiem : Avenging Angel
2016-08-29 17:29:55 +01:00
SarahW
d27c7a0947 Replaced Windows critical section with mutex - fixes some issues with window movement/resizing when using Direct3D output. 2016-08-28 20:31:12 +01:00
SarahW
6aef53e854 Remove remaining references to 32-bit addresses in x86-64 recompiler. 2016-08-28 15:58:30 +01:00
SarahW
ea4cd4f35c Added simpler Linux makefiles for those who don't want to use autoconf. Based on patch from moochmcgee 2016-08-28 15:58:52 +01:00
SarahW
ab7ef825c5 Fixed build issue in allegro-video.c 2016-08-28 14:39:41 +01:00
SarahW
5a02b518b8 Moved FPU register stack into cpu_state structure.
Fixed a couple of FPU bugs in x86-64 recompiler that were introduced in rev 543, fixes lightmap issues in Half-Life.
2016-08-25 21:09:02 +01:00
SarahW
eb126fd822 Moved more variables into cpu_state structure. 2016-08-21 21:28:23 +01:00
SarahW
c664682758 Move some more variables into cpu_state structure. Minor speedup (~2%). 2016-08-17 21:28:16 +01:00
SarahW
a65411466e Corrected GUS IRQs when GF1 and MIDI IRQs are combined.
Corrected voice playback when rollover is enabled.
Fixes issues with Windows 3.1 GUS drivers.
2016-08-16 20:29:12 +01:00
SarahW
4e9400bfca IBM PC now has correct memory size switch settings implemented - should now boot correctly on configurations other than 640kb. 2016-08-16 18:37:34 +01:00
SarahW
5f6fb407d4 Force re-seek on disc loading - fixes issues with disc change not seen on some models. 2016-08-16 18:13:41 +01:00
SarahW
4e299a8038 Rewrote handling of host time synchronisation. Amstrad machines now boot again.
Also fixed a bug where the emulated time ran 100x faster than expected.
2016-08-15 20:28:02 +01:00
SarahW
535604b760 Pack decoded ModR/M data into a single word - minor recompiler speedup. 2016-08-14 16:29:54 +01:00
SarahW
31298d6be1 Recompiler no longer sets tempc variable before calling opcode routine. 2016-08-14 11:22:07 +01:00
SarahW
57e2a45d83 PIC mask is set to 0 when ICW1 is written - Crystal Dream 2 now works. 2016-08-11 20:25:00 +01:00
SarahW
2457ff050f Fixed vblank start on ET4000 - now displays 1280x1024 correctly. 2016-08-01 16:29:51 +01:00
SarahW
064acbf07d Added self-modifying code fix to x64-64 recompiler. 2016-08-01 16:12:13 +01:00
SarahW
81b1bfc07f Fix self-modifying code bug, Windows 3.1 works again. 2016-08-01 15:04:17 +01:00
SarahW
42237ac1f8 Recompiler now only recompiles a block after seeing it twice. Improves performance on stuff that uses self modifying code - eg Doom, Duke Nukem 3D, Windows 95 idle 2016-07-31 12:33:37 +01:00
SarahW
d027c55269 Reduced ET4000/W32p FIFO by one entry - fixes display corruption with some drivers. 2016-07-26 21:04:39 +01:00
SarahW
9111b282f9 Added option to disable CGA snow emulation. 2016-07-21 21:36:51 +01:00
SarahW
ea40fefa4f Added missing svga_recalctimings() call to STG and unknown ET4000 RAMDACs. 2016-07-21 20:50:18 +01:00
SarahW
ef4d0ce9c2 Added Thrustmaster FCS emulation. 2016-07-21 20:14:17 +01:00