展开全部
总得来说,模拟困难在于硬件和软件两个方面。
首先,既然是“模拟”,那么它的运行原理就是,首先用软件虚拟出一个硬件和软件环境,然后在这个虚拟出的环境上运行程序。
比如,一种处理器叫A,它执行程序的方法就是:“A→程序”。
另一种处理器叫B,其硬件、系统底层、工作方式都和A不同,那么如果你要用B运行A的程序,首先需要用B来虚拟出A,然后用虚拟的A运行程序:“B→A→程序”。
这里可以看出,模拟比起原生,在计算上需要的步骤要更多。并且,由于硬件结构不同,这个虚拟过程是比较复杂的,所以对机能的消耗比较大(主要的机器性能其实就用在这个步骤上了)。
另外就是,模拟器(指非官方的模拟器)的开发者手中并没有原机器的设计图和源代码,对于一些部分的处理是需要靠猜测的,然后自己写一个能达到目的的算法。这样就有可能写错,或者走弯路。写错的后果就是模拟器BUG,而走弯路的后果就是效率低下。实际上,不出错或者不走弯路是不可能的。
而官方的模拟器(比如用PSP模拟PS1),由于是自家的机器,完整的设计图和源代码都有,模拟器的开发者就能写出效率最高的算法,所以官方模拟器的性能都要比民间模拟器的效能高得多,只需要比原机器稍微高一点儿的机能就足够了。
机器的硬件差异越大,模拟难度越高,就算成功,其模拟效率也不会太高。这很明显,因为机器的硬件差异大就说明需要虚拟的地方多,而这些都是会降低效能或者容易出错的。代表就是PS2,PS2极难模拟出了名,作为热门机型,在面市后居然过了十多年才有比较可靠的模拟器,可见其难度。其原因主要就是PS2和x86 PC的硬件差异太大。
而Xbox,其实要模拟的话估计是不太难的,它的硬件和PC基本没什么差别,没模拟估计是因为不算太热门吧。
模拟难度和操作系统也有关系,举例子,在osx系统上模拟ios,很容易,在windows系统上模拟ios,难如登天。
首先,既然是“模拟”,那么它的运行原理就是,首先用软件虚拟出一个硬件和软件环境,然后在这个虚拟出的环境上运行程序。
比如,一种处理器叫A,它执行程序的方法就是:“A→程序”。
另一种处理器叫B,其硬件、系统底层、工作方式都和A不同,那么如果你要用B运行A的程序,首先需要用B来虚拟出A,然后用虚拟的A运行程序:“B→A→程序”。
这里可以看出,模拟比起原生,在计算上需要的步骤要更多。并且,由于硬件结构不同,这个虚拟过程是比较复杂的,所以对机能的消耗比较大(主要的机器性能其实就用在这个步骤上了)。
另外就是,模拟器(指非官方的模拟器)的开发者手中并没有原机器的设计图和源代码,对于一些部分的处理是需要靠猜测的,然后自己写一个能达到目的的算法。这样就有可能写错,或者走弯路。写错的后果就是模拟器BUG,而走弯路的后果就是效率低下。实际上,不出错或者不走弯路是不可能的。
而官方的模拟器(比如用PSP模拟PS1),由于是自家的机器,完整的设计图和源代码都有,模拟器的开发者就能写出效率最高的算法,所以官方模拟器的性能都要比民间模拟器的效能高得多,只需要比原机器稍微高一点儿的机能就足够了。
机器的硬件差异越大,模拟难度越高,就算成功,其模拟效率也不会太高。这很明显,因为机器的硬件差异大就说明需要虚拟的地方多,而这些都是会降低效能或者容易出错的。代表就是PS2,PS2极难模拟出了名,作为热门机型,在面市后居然过了十多年才有比较可靠的模拟器,可见其难度。其原因主要就是PS2和x86 PC的硬件差异太大。
而Xbox,其实要模拟的话估计是不太难的,它的硬件和PC基本没什么差别,没模拟估计是因为不算太热门吧。
模拟难度和操作系统也有关系,举例子,在osx系统上模拟ios,很容易,在windows系统上模拟ios,难如登天。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询