» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

通俗地科普下为啥模拟器这么耗性能

模拟器效率低下的根本原因是没有足够详细的硬件文档
很多游戏用了特殊的硬件trick
模拟器往往实现错误或者只能低效实现
还有系统软件底层的细节也必须实现,但很困难
最著名的就是微软dx
比如dc的wince游戏和xbox一代上的dx

所以老任的主机最容易模拟的很好
老任系统最简单
哪怕是同时代性能较强的n64和ngc模拟度都很高

sony系统一般也比较简单或者基于linux
都还好处理

微软的主机没有一个模拟度高的
哪怕是基于pc架构


TOP

引用:
原帖由 fvdllf 于 2023-5-8 20:31 发表
SS的模拟是最费力的吧?好像十多年以后才可以
了解一下xbox的模拟
早期的cassini和ssf模拟度就很高的
只是需要高性能pc



TOP

引用:
原帖由 Search 于 2023-5-8 21:43 发表



微软的主机连被说成最像pc的初代xbox都无法解决模拟问题!

有一说是法律问题........敢碰的人少....
模拟器是合法的
bios和游戏是非法的


TOP

引用:
原帖由 xfry 于 2023-5-11 19:04 发表
对了,我听说模拟器都是吃CPU的,为什么看另一帖里都在讨论显卡,NS模拟器吃显卡?
hle模拟gpu的方式都吃显卡

hle模拟gpu本质上是二进制显卡api转换

TOP

引用:
原帖由 yfl2 于 2023-5-11 22:16 发表
posted by wap, platform: Android
hle 反而不吃显卡,因为只是api 层级模拟
真是啥都不懂
api转换,最终渲染都是gpu硬件完成
所以叫做硬件或者高阶模拟

lle或者软件模拟,渲染是由cpu完成,gpu只负责输出画面
不用api转换

gpu本身也有指令集和寄存器的
hle不模拟指令集和寄存器,只是把数据格式转换下送进pc端gpu
所以是api转换
怎么可能不吃显卡
现在n64级别和更高级别主机基本都用hle模拟
不然只能玩2d渲染的游戏

TOP

引用:
原帖由 MacPhisto 于 2023-5-12 00:33 发表
posted by wap, platform: Chrome
游戏机模拟器不需要考虑到这么细的粒度,毕竟目的是在pc上跑游戏,而不是100%模拟游戏机硬件

其实模拟器的障碍是 1 缺乏官方文档  2 无利可图。如果看索尼 任天堂官方的模拟器, ...
官方的模拟器模拟度和流畅度不一定比民间的好
只是官方的是捆绑特定游戏的
模拟不好的游戏不拿出来卖就是了

TOP

引用:
原帖由 爱猫咪的薛定谔 于 2023-5-12 15:56 发表
posted by wap, platform: Android
同样调用显卡,hle 模式自然效率高,所以不吃显卡,只不过是让显卡参与模拟而已,你自己也知道如果不是hle, 甚至都跑不了

以wiiu 为例,hle 让模拟效率很高,所以不需要高性能g ...
真是扯淡
显卡参与模拟,那当然要消耗显卡
显卡不参与模拟,就是输出画面
你说哪个吃显卡?

lle模拟跑不了是因为所有模拟都压在cpu上,cpu扛不住而已
你用垃圾核显跑wiiu试试

TOP

引用:
原帖由 爱猫咪的薛定谔 于 2023-5-12 16:03 发表
posted by wap, platform: Android
所谓吃不吃,是指哪种模拟需要更多性能,既然你说非hle 甚至都无法正常模拟wiiu, 谈何它不吃gpu 呢,连跑起来的前提都没做到

另外,为啥lle 就不能用显卡来模拟主机的gpu ?

本 ...
lle如果用显卡来模拟主机gpu
那不就是hle嘛

lle模拟跑不起来,原因是只有cpu模拟主机gpu,pc显卡在打酱油
当然lle不吃显卡

对于用模拟器玩游戏的当然不能理解,既然lle都跑不起来,为啥还需要存在?
因为lle模拟精确度更高,这本身就有意义
换句话说,lle验证了任何计算机系统都可以由其他计算机系统完全精确模拟
因为理论上任何计算机系统都是相同的数学基础
没理由相同的数学基础不能相互转换吧

另外随着pc性能的增加,一些lle模拟的主机也可以完美运行了,比如sfc

TOP

引用:
原帖由 爱猫咪的薛定谔 于 2023-5-12 17:24 发表
posted by wap, platform: Android
为啥显卡不能指令集 粒度 模拟主机gpu, 一定要CPU 做?
你连pc显卡的工作原理都搞不懂
显卡的寄存器和显存并不是开发者可任意使用的
显卡的架构决定了它只能组团并行处理数据
显卡的指令集都不是公开的
甚至都没有汇编语言
曾经dx8.1和老opengl允许用显卡类汇编语言编写shader
但很快就淘汰
不如c风格比较容易
而且指令很少很有限

TOP

顺便说一下cpu和gpu的区别
cpu是有数学计算和分支判断跳转指令的
但是gpu只有数学计算指令

而模拟解析指令集必须要有分支判断跳转
所以gpu干不了这活
数学计算只需要把固定格式数据喂给gpu,然后返回结果就行
所以gpu不用关心指令集寄存器啥的
只需要api传数据就行

所以gpu参与模拟只能api转换

TOP

发新话题
     
官方公众号及微博