Commit graph

223 commits

Author SHA1 Message Date
TomW
1fb4de4507 Dynamic recompiler now works on Linux (32-bit only) 2015-04-11 18:31:51 +01:00
TomW
6caeca2c7c Tweaks to generated code, should reduce size slightly. 2015-04-11 16:06:50 +01:00
TomW
feaf399a2d Cache setting now handled correctly on startup. 2015-04-07 18:06:03 +01:00
TomW
644d17fc7f Fixed bug which ejected discs on hard reset. 2015-04-02 19:54:47 +01:00
TomW
1098b1f870 Fixed stupid typo which broke hard reset with dynamic recompiler. 2015-04-01 19:38:22 +01:00
TomW
a97e89e857 Added code generation for register and immediate PUSH/POP, RET, relative CALL and JMP instructions. 2015-03-30 20:42:33 +01:00
TomW
42155b4c6a Added correct Voodoo dithering. 2015-03-23 21:03:42 +00:00
TomW
d6908a5450 Slight bugfix to Voodoo subpixel correction. 2015-03-22 13:56:03 +00:00
TomW
95dd53e4d7 Implement more faithful Voodoo PCI FIFO emulation - slight slowdown, but fixes issues with Unreal and probably other games. 2015-03-21 20:41:12 +00:00
TomW
883ad5da23 Fixed Voodoo swap count when vsync disabled. Quake III now works. 2015-03-21 11:31:53 +00:00
TomW
a8159f8c09 Various changes to FDC emulation.
Support for multiple disc image formats.
Added preliminary FDI support.
2015-03-19 21:33:19 +00:00
TomW
37fe4a56be Fixed missing return value in sis496_init() 2015-03-19 21:08:31 +00:00
TomW
80add6415c Added TLB miss penalties. 2015-03-09 20:31:17 +00:00
TomW
faec4da733 All CALL/RET/JMP/IRET/INT instruction cycles should now be counted in recompiler. 2015-03-09 19:54:02 +00:00
TomW
708cf896d1 Added usable 3DFX emulation. 2015-03-08 15:55:03 +00:00
TomW
c11a771530 Fixed crashes in fastread*() 2015-02-16 20:00:16 +00:00
TomW
4ebd447e89 Fixed carry flag in DAA/DAS. 2015-02-13 21:06:54 +00:00
TomW
c7b6fde58c Added code generation for memory source versions of AND, OR, XOR and TEST (that was intended for rev 199). 2015-02-09 21:21:48 +00:00
TomW
d6c177a3c0 DMA now causes page dirty mask to be updated. 2015-02-09 18:26:59 +00:00
TomW
68df72958c MOV EAX/AX/AL with immediate address now has correct PC when aborting. 2015-02-09 18:09:46 +00:00
TomW
d1422eee39 Fixed loaded CPL on interrupt, Coherent now works. 2015-02-09 15:37:09 +00:00
TomW
ac9b5a9927 Fixed missing CD audio. 2015-02-09 12:33:52 +00:00
TomW
bc5ce43519 Memory-source arithmetic instructions now have correct PC when aborting. Fixes Discworld 2.
Removed some debug junk from last commit.
2015-02-09 12:17:54 +00:00
TomW
ba715706b6 Added code generation for memory versions of MOV, and memory source versions of ADD, SUB, AND, OR, XOR and CMP. 2015-02-08 17:17:14 +00:00
TomW
7a7f586cd3 64-bit fixes. 2015-02-03 18:47:16 +00:00
TomW
47db0646c1 Fixed typo in x87 opcode tables. 2015-02-03 18:42:09 +00:00
TomW
ea5e96569d Lazy flags code now handles carry flag. 2015-02-02 19:54:01 +00:00
TomW
b4592cdea3 Implemented new memory mapping to improve performance of self modifying code.
New scheme allows code blocks to cross pages.
Reduced code block size down to 2kB.
2015-01-28 21:58:02 +00:00
TomW
798c24d7c4 Fixed flag on recompiled 8-bit SUB reg,imm - Windows 95 setup works again 2015-01-26 21:58:14 +00:00
TomW
f38e2be43f Implemented trap flag on dynamic recompiler. 2015-01-18 17:13:49 +00:00
TomW
95640bb4bb SGDT now stores all 32 bits of the base address, even in 16-bit mode. Fixes Win32s. 2015-01-18 15:36:30 +00:00
TomW
17ee2a7d9e FLAGS bit 15 now always clear on 386+ CPUs. Fixes HX DOS extender CPU type test. 2015-01-18 14:50:55 +00:00
TomW
19c318675a FCOM/FUCOM now use inline assembler on x86 targets. Unreal now works. 2015-01-17 22:06:32 +00:00
TomW
630592125c Added code generation for immediate->register and register versions of MOV, XCHG, ADD, SUB, AND, OR, XOR, TEST, CMP, INC and DEC. 2015-01-16 21:22:14 +00:00
TomW
00f6271ec8 Recompiled code blocks are no longer allowed to cross pages.
Recompiling of blocks is aborted if the code page becomes dirty.
Fixes Windows 98 setup.
2014-12-06 16:35:45 +00:00
TomW
4855071ead Effective address calculations now implemented by recompiled code. Up to 30% performance gain seen. 2014-11-30 17:48:10 +00:00
TomW
436c5b8cc2 Added Pentium Overdrive support. Patch from nerd73. 2014-11-24 18:23:03 +00:00
TomW
8ceb92db82 Fixed Linux build broken by last commit. 2014-11-23 20:53:53 +00:00
TomW
84ac04d2df Added Intel Premiere/PCI (Batman's Revenge) and Advanced/EV (Endeavor) motherboards.
Added emulation of i430LX and i430FX chipsets.
Added support for PCI configuration type 2, used by i430LX.
Added AT disable keyboard command, and fixed enable keyboard command.
Added emulation of Intel 28F001BXT flash ROM, used by Advanced/EV.
Fixed a bug in REP when using multiple 66/67 prefixes.
2014-11-23 20:27:41 +00:00
TomW
55b51a4a55 Implemented segment limit checks on FSTP double - fixes LBA2 on Pentium. 2014-11-19 18:12:42 +00:00
TomW
ca67e8adba Changed data ordering in S3 acceleration in 32bpp modes, fixes display with some drivers. Patch from Battler. 2014-11-18 19:25:06 +00:00
TomW
2be271d050 Added menu option to send CTRL-ALT-DELETE to emulated machine. Patch from GeeDee. 2014-11-18 18:38:12 +00:00
TomW
13226a2bd4 Added Pentium and Pentium MMX emulation. 2014-11-17 20:41:02 +00:00
TomW
aecf865c2c Re-added FCOMPP 80387 detection hack accidentally removed in FPU reorganisation. 2014-11-17 20:23:29 +00:00
TomW
d13caf1b8a HLT now reduces CPU usage in recompiler. 2014-11-16 15:09:27 +00:00
TomW
ac01998c1e LOCK prefix on recompiler no longer causes following instruction to be executed twice - fixes Windows 2000. 2014-11-16 15:01:31 +00:00
TomW
2905c43db8 Cycle counts for recompiled blocks now generated at compile time. 2014-11-12 19:33:49 +00:00
TomW
087f412d3f Reorganised FPU emulation. 2014-11-09 14:07:03 +00:00
TomW
0aa0887c58 Interpreter is default build. 2014-11-05 21:27:56 +00:00
TomW
4676daade4 Initial commit of dynamic recompiler.
Various CPU changes to support dynamic recompiler.
2014-11-05 21:24:16 +00:00