diff --git a/CPU.md b/CPU.md index 5b5dc4e..5221ea5 100644 --- a/CPU.md +++ b/CPU.md @@ -1,9 +1,5 @@ -Citra current has 2 CPU cores: `armemu` and `dyncom/skyeye`. +Citra's current CPU core is an ARM interpreter called "dyncom", which was originally taken from a project called SkyEye, and then modified to support the ARMv6 instruction set that the 3DS uses. -`armemu` is an old interpreter. It originally supports ARM7 (ARMv5) and partial ARMv6 support only. We added in ARMv6 stuffs and other fixes ourselves to get 3ds emulation as far as it is. ([ichfly](https://github.com/ichfly) tacked on more ARMv6 instructions for 3dmoo and [Lioncash](https://github.com/lioncash) is now doing further work on that area) +Dyncom originally supported ARM7 (ARMv5) and partial ARMv6 only. We added in the remaining ARMv6 media instructions and other fixes ourselves to get 3DS emulation as far as it is. -`SkyEye` is "[a very fast full system simulator which takes llvm as IR of dynmic compiled framework.. It can simulate series ARM, Coldfire,Mips, Powerpc, Sparc, x86 and Blackfin DSP Processor](http://sourceforge.net/projects/skyeye/)". It probably is still in active development, though really slow. - -`dyncom` is the fallback interpreter to SkyEye's ARM dynamic recompiler. `dyncom` is more complex, cleaner, a little buggier than the current version of `armemu`, but it runs much faster. `dyncom` doesn't have as many instructions implemented as `armemu`. - -`dyncom` is currently used by default, but there is still the option to use `armemu` instead. Eventually we plan to get rid of `armemu`. There's no sense in maintaining two interpreters. \ No newline at end of file +There are plans to implement a dynamic recompiler that will fallback into dyncom for unimplemented instructions, but no work has been started on that yet. \ No newline at end of file