Commit graph pcem/src/cpu.h
Author SHA1 Message Date
SarahW
d5dbe302b5 Implement CPU clock control on SCAT. Patch from Greatpsycho. 2020-11-16 17:59:57 +00:00
SarahW
0469ab60cb Implement penalties for segment load on Pentium Pro. 2020-11-14 19:33:59 +00:00
SarahW
114cdd7a15 Add VIA Cyrix III CPUs. Note that this is currently limited to 500 MHz,
as Windows 98 won't boot on anything any faster than this. This is most
likely a limitation of the current timer subsystem.
2020-11-14 19:33:53 +00:00
SarahW
5b2087f84d Added Celeron emulation. 2020-11-14 19:33:03 +00:00
SarahW
fda3832e3a Add Gigabyte GA-686BX emulation.
As part of this, add i440BX chipset, PIIX4, and i28F002BC Flash.
2020-11-14 19:33:03 +00:00
SarahW
3c4fa0511e Add Pentium II Overdrive emulation. 2020-11-14 19:33:02 +00:00
SarahW
cf33ab6c39 Add initial implementation of Intel VS440FX motherboard.
As part of this, add dummy Pentium Pro emulation, as well as Intel 440FX
chipset, PC87307 SuperIO and Intel 28FB200BX-T Flash.
2020-11-14 19:33:01 +00:00
SarahW
a113e4546f Added Hyundai Super-286TR emulation. Patch from EluanCM. 2020-03-12 18:14:07 +00:00
SarahW
57607b537d Added Cyrix MII CPUs. Patch from leilei. 2020-03-05 17:10:29 +00:00
SarahW
4875f24b53 Added initial attempt at instruction timings for 8087/287/387.
Also added 287XL using 387 timings.
2020-01-24 20:33:35 +00:00
SarahW
0e8926936d Added FPU support for pre-486 CPUs.
This commit does not include timings for 8087, 80287 or 80387 FPUs, these will
be added later. It also does not restrict the use of 486 and later FPU
instructions.
2020-01-22 20:53:13 +00:00
SarahW
84622584e2 Move CPU tables to separate file. 2019-02-08 21:34:02 +00:00
SarahW
ce4436054d Replace cpu_has* flags with single cpu_features variable and cpu_has_feature() getter. 2019-02-08 21:22:53 +00:00
SarahW
03b5a44aca More CPU sanitisation. 2019-02-08 21:17:56 +00:00
SarahW
a9541dadea Added preliminary emulation of AMD K6 CPUs. 2018-12-06 20:02:35 +00:00
SarahW
da2d819ed4 Added WinChip 2 emulation, along with (currently non-recompiled) 3DNow! instruction emulation. 2018-12-03 21:59:41 +00: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
b530bdafea Cleaned up turbo handling. 2018-03-11 16:43:32 +00:00
SarahW
8546ce14f0 Added waitstates on instruction fetch from ROM. 2018-03-11 11:03:20 +00:00
SarahW
919f2dd45d Implemented CMPXCHG8B on Winchip. Patch from nerd73. 2018-03-03 21:32:56 +00:00
SarahW
55dbe592ad Fixed bus type detection on Cirrus Logic. 2018-02-22 21:04:32 +00:00
SarahW
b9f196d641 ISA timing now based on integer ATCLK instead of fixed point division. 2018-01-31 20:01:18 +00:00
SarahW
a3ae6a6eed Added IBM XT Model 286 emulation. 2017-10-11 22:09:26 +01:00
SarahW
1f33b52451 Added VME emulation to Intel DX4, Pentium and Pentium MMX.
Temporarily disabled recompilation of CLI and STI.
2017-06-30 20:42:19 +01:00
SarahW
45bd0db00c Corrected EuroPC CPU options. Patch from ecksemmess. 2017-06-04 17:47:13 +01:00
SarahW
3b4392bcf8 Implemented data misalignment penalties on 486 and later CPUs. 2017-06-04 16:41:33 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
c2a6ce2bac Added IBM PS/2 Model 30-286 emulation. Patch from dns2k. 2017-02-22 20:18:41 +00:00
SarahW
45423fe499 Remove 386DX CPUs from 386SX models (and vice-versa). 2017-02-18 18:14:53 +00:00
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
7980438e1f Reworking of joystick support :
- Joystick type now selectable
- Added emulation of standard joysticks with up to 8 buttons
- Added emulation of Microsoft Sidewinder pads
- Host->emulated joystick button & axis mapping now configurable (only on Windows atm)
- Gameport registers now take 1us to access - helps Sidewinder drivers
2016-06-21 22:00:31 +01:00
SarahW
d83249648f Limited PS/1 to 10 MHz. 2016-05-01 12:24:08 +01:00
SarahW
153c22e442 Cyrix 6x86 emulation. Based on patch from leilei.
Moved MOV TRx, reg to correct opcode - required by Award 430VX BIOS with 6x86.
2016-04-27 22:23:49 +01:00
SarahW
61d7cf2276 Added PS/1 Audio Card emulation. 2016-04-13 21:56:15 +01:00
TomW
94f33aa873 More accurate timing for INT, IRET, CALL far, RET far and JMP far. 2016-02-06 18:08:10 +00:00
TomW
928e76bccc Added socket 4/5 Pentium OverDrive CPUs.
Added seperate array of socket 5 Pentium CPUs.
Patch from Battler.
2016-01-05 19:59:41 +00:00
TomW
79202cc5c0 Changed timer base frequency on XT models to 14.318MHz - PIT, CGA and 4.77MHz CPU should now stay in perfect sync. 2015-11-25 21:50:38 +00:00
TomW
5b1e7aece0 Added simulation of PCI access timing to Voodoo. 2015-08-22 17:03:37 +01:00
TomW
f339f00315 Interpreter and dynamic recompiler now present in a single binary. 2015-08-21 20:55:36 +01:00
TomW
436c5b8cc2 Added Pentium Overdrive support. Patch from nerd73. 2014-11-24 18:23:03 +00:00
TomW
13226a2bd4 Added Pentium and Pentium MMX emulation. 2014-11-17 20:41:02 +00:00
TomW
262b188790 Implemented CR4 register for Winchip. Currently only Time Stamp Disable (TSD) has an effect.
Fixed stupid bug in WRMSR - MSRs can now be written with values other than zero.
2014-08-23 16:28:16 +01:00
TomW
f18f10574a Preliminary PCjr emulation.
Improvements to PIT and serial emulation.
2014-01-12 11:37:09 +00:00
TomW
119fe36820 Added MMX emulation (probably some bugs). Implemented RDMSR/WRMSR for Winchip. 2013-08-03 15:05:50 +01:00
TomW
9312de19ac Now up to date with current dev version.
Changes since v0.7 :
- Major CPU reorganisation. This has possibly broken some stuff, though I fixed all the regressions I could find
- Lazy flags. This brought 10% speed improvement at one point, but that's probably been lost now
- 430 VX chipset emulation
- IDT Winchip emulation (currently sans MMX). Timing is probably wrong
- Fixed a few FPU bugs
- Timer reorganisation
- Sound reorganisation
- Other general reorganisation
- AdLib Gold emulation
- Windows Sound System emulation
- Pro Audio Spectrum 16 emulation. This currently works with most DOS stuff, but not in Windows
- Major improvements to GUS emulation. Has the downside that it now conflicts with SB emulation, so probably best to not enable both simultaneously
- New graphics cards :
  - ATI-18800 (VGA Edge-16)
  - ATI-28800 (VGA Charger)
  - ATI Mach64GX (Graphics Pro Turbo). Quite a few features missing, but Windows doesn't seem to use half the features of this card
  - Cirrus Logic CL-GD5429. Blitter is a bit broken
  - Oak OTI-067
  - S3 Trio64 (Number Nine 9FX)
  - S3 Virge. Only framebuffer stuff at the minute, Windows won't recognise the card
  - Trident TGUI-9440
  - VGA. Doesn't work yet
- Beginnings of 3DFX emulation, however this is in extremely early stages and doesn't do anything useful
- Fixed DMA bug stopping floppy drives working in Windows 3.x
- Fixed some other stuff probably
- Broke some other stuff probably as well
2013-05-27 17:46:42 +01:00
TomW
3c253c2cf8 Add v0.7 source 2013-04-21 14:54:35 +01:00