安卓模拟器吧 关注:63,678贴子:208,154

游戏机模拟器的具体原理

取消只看楼主收藏回复

3DS的citra,PSP的ppsspp,Wii的dolphin,Wii U的cemu等。杂谈一下这些模拟器的运作原理是什么。


1楼2017-02-07 16:09回复
    游戏机模拟器” 注重的是 “严格模拟硬件”,要精确,


    2楼2017-02-07 16:09
    回复
      2025-05-18 06:00:12
      广告
      可以对照 MAME代码,所有问题都能在里面找到对应答案:


      3楼2017-02-07 16:10
      回复
        MAME里实现了各种 68000, z80,mips, sparc, arm,pic16c5x,nec, alpha,等 100 多款你见过的或者没见过的主从协处理器的模拟,


        4楼2017-02-07 16:10
        回复
          虽然都是 switch case opcode,但是不像 lua虚拟机。


          5楼2017-02-07 16:10
          回复
            MAME的 CPU模拟重点在 “精确实现硬件”,


            6楼2017-02-07 16:10
            回复
              除了指令集实现外,还有各种软硬终端/trap/异常处理/IO实现。


              7楼2017-02-07 16:11
              回复
                举个简单例子,一个游戏主机需要 4MHz 的 z80芯片,


                8楼2017-02-07 16:11
                回复
                  2025-05-18 05:54:12
                  广告
                  你就得给我真的按照 4Mhz来跑,每条指令计算周期,不能多也不能少,


                  9楼2017-02-07 16:11
                  回复
                    你要把 4Mhz跑成 8Mhz,游戏玩起来节奏就不一样了。


                    10楼2017-02-07 16:11
                    回复
                      比如以前老游戏机上敌人一多,就会慢下来,你实现模拟器,也得把这种慢下来给实现了。


                      11楼2017-02-07 16:11
                      收起回复
                        。另外很多街机是双处理器,比如一块 68000 + z80,


                        12楼2017-02-07 16:11
                        回复
                          你不能复原老主机的运行速度,一些写的粗糙的游戏 ROM可能会出错。


                          13楼2017-02-07 16:12
                          回复
                            模拟 CPU重点是 “精细”,比如浮点数误差最好一致,


                            14楼2017-02-07 16:12
                            回复
                              2025-05-18 05:48:12
                              广告
                              比如中断优先级你得模拟出来,模拟器由于按照 interval 来运行,


                              15楼2017-02-07 16:12
                              回复