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


发新话题
打印

玩过PS2模拟器的,谈谈感受

引用:
原帖由 索尼来也 于 2008-5-17 11:46 发表


四核一般人更用不上,很简单,普通人用的大部分程序不支持。模拟器这种民间开发的程序肯定不支持,多2个核也是浪费
不要总试图暴露自己知识的贫乏。


TOP

给 sangokushi的:
http://bbs.levelup.cn/showtopic-617229.aspx
这个应该是hdr效果吧,圣安德烈斯用了这个外挂后的效果。



TOP

引用:
原帖由 Jackli 于 2008-5-19 09:50 发表
给 sangokushi的:
http://bbs.levelup.cn/showtopic-617229.aspx
这个应该是hdr效果吧,圣安德烈斯用了这个外挂后的效果。
这个是环境映射
理论上ps2就支援这个效果
但是在gta这个游戏上没有使用
另外这个patch是官方还是民间开发的?
如果是民间开发的那也太不思议了


TOP

引用:
原帖由 hyperiris 于 2008-5-19 09:28 发表


不要总试图暴露自己知识的贫乏。
哦,请举出一般人用的上的四核的程序,顺便解释一下ps2模拟器支持四核,如果能顺便说说其他模拟器对四核的支持,更好

[ 本帖最后由 索尼来也 于 2008-5-19 12:07 编辑 ]

TOP

引用:
原帖由 gwm0000 于 2008-5-17 20:02 发表

难道你又想小刀通关了?
通你妹,BH4你试试小刀行不行。
CV的模拟度极低,模拟器不玩也罢

TOP

引用:
原帖由 sangokushi 于 2008-5-19 10:05 发表

这个是环境映射
理论上ps2就支援这个效果
但是在gta这个游戏上没有使用
另外这个patch是官方还是民间开发的?
如果是民间开发的那也太不思议了
民间开发的
是一个独立程序。
不仅仅对sa有效,对好多其他的pc游戏都有效果的

TOP

引用:
原帖由 sangokushi 于 2008-5-19 10:05 发表

这个是环境映射
理论上ps2就支援这个效果
但是在gta这个游戏上没有使用
另外这个patch是官方还是民间开发的?
如果是民间开发的那也太不思议了
第二页还有图

TOP

引用:
原帖由 Jackli 于 2008-5-19 13:20 发表

民间开发的
是一个独立程序。
不仅仅对sa有效,对好多其他的pc游戏都有效果的
谁能跟我解释一下原理
比如环境映射的部分
照理来说程式需要根据车体周围的景物来进行映射
外部程式要实现这个功能
首先必须取得车体各顶点所在的坐标
然后透过这个坐标计算出需要投射在车体上的景物
然后再取得周围景物的贴图
最后按车体各面的法向量的方向把映射的贴图贴上
一个外部程式能完成那么多的作业?
run-time的那么多数据都能够取到?
这些功能都应该是图形引擎内相当重要且复杂的组成部分
难道一个外部程式就可以搞定了?
个人认为唯一的可能就是游戏程式本身预留了这样的功能
但是碍于机能 把它屏蔽掉了
外部程式可以透过预留的函式介面把功能实现出来

TOP

引用:
原帖由 jinyibo 于 2008-5-19 12:34 发表

通你妹,BH4你试试小刀行不行。
CV的模拟度极低,模拟器不玩也罢
BH4是不能全程小刀通关,但是除了几次要用狙的地方,打城主以外还是可以小刀过的。

TOP

引用:
原帖由 索尼来也 于 2008-5-19 12:03 发表


哦,请举出一般人用的上的四核的程序,顺便解释一下ps2模拟器支持四核,如果能顺便说说其他模拟器对四核的支持,更好
喜欢自己压片的人都可以从多核心上受益。至于专业软件我懒得列举了。

下面说说pcsx2

1 参与pcsx2开发的是真正的业内程序员还有狂热的编程爱好者。以我对他们的了解,写程序最长的应该有差不多将近20年了,参与过大量的console游戏开发。你没有任何资格以“民间”来否认pcsx2的技术含量。

2 pcsx2内部至少有4个以上的独立线程参与工作,包括dynarec,gpu,spu2,dinput等模块,从技术角度上讲,这是一个支持4core的软件。

3 pcsx2为什么很慢,这是一个大部分玩家并不知道的事情,我简要解释一下。

第一,ps2的浮点协处理器(MIPS结构把IO/FPU等都作为协处理器对待)并不是IEEE754兼容的,这意味着,用x86/x64来模拟的话,必须自己处理几乎所有的浮点异常,包括上溢,下溢,NaN,除零,这种额外的开销极大的影响了模拟器的兼容性和速度。由于这个位置的模拟无法并行化,所以无法从多核受益。

第二,游戏机硬件和PC有一个显著区别的地方就是图形系统。PS2/NGC等机器CPU可以快速的读回GPU渲染结果进行额外的特效处理,学过DirectX/OpenGl的朋友知道,pc上做这个的代价是很昂贵的。具体上说就是,虽然pcsx2在CPU和GS上实现了多线程,但是同步的代价极大的降低了这种优化带来的速度。如果CPU需要读回显存,CPU线程必须等待GS插件刷新缓冲区,这本身就降低了软件的并行度。快速的显卡可以减少等待的时间。另外,现在的GS插件已经大量的利用Shader进行数据解码等等工作,所以某些小白所谓的pcsx2只用好cpu就可以是完全没有依据的。

TOP

引用:
原帖由 hyperiris 于 2008-5-19 14:55 发表


喜欢自己压片的人都可以从多核心上受益。至于专业软件我懒得列举了。

下面说说pcsx2

1 参与pcsx2开发的是真正的业内程序员还有狂热的编程爱好者。以我对他们的了解,写程序最长的应该有差不多将近20年了, ...
压片是一般人干的么?专用软件懒得举了,233max,用专业软件的那还是一般人?我都说了一般人,如果你要理解为所有人,然后再来鄙视,随便你

pcsx2那么牛逼那是我无知了

TOP

引用:
原帖由 索尼来也 于 2008-5-19 12:03 发表


哦,请举出一般人用的上的四核的程序,顺便解释一下ps2模拟器支持四核,如果能顺便说说其他模拟器对四核的支持,更好
基本上一个执行绪(thread)只能执行在cpu的某一个核心上
以目前的技术 将一个执行绪的作业 分配到两个核心去处理是不可能的
程式要支援多核心的话 必须开多个执行绪
然后由作业系统或者programmer自行按一定规则分配到cpu各个核心上作业
基本上由于各个执行绪工作负荷不同 对于多个核心工作分配要平均是相当不容易的一件事

举例来讲 对于普通双核心的cpu来写一个游戏程式
执行绪的划分 一般主控程式一个 run-time资料载入一个(对于gta这样的游戏很需要 资料流式读取) 声效系统一个 事件处理系统一个
比较合理的分配法是把负荷最重的主执行绪工作在cpu的一个核心上 剩下的执行绪全部放到另一个核心上去处理
为保持同步 图形处理的部分常常和主程式在同一个执行绪去处理的 很难再划分
这样的情况下 两颗cpu核心的负荷仍然是不平均的
所以多核心的cpu要能完全发挥出威力 对于程式员来讲还是不小的考验
如果在主程式分出更多的执行绪去处理
从效能发挥而言 看似更合理
但是在同步上面却会造成大难题

模拟器我不太了解啦
关键要看它执行绪分配 如果它有两个执行绪 分配又比较平均的话
core duo基本可以提高一倍的工作效率
若一大一小的话 则提高效率有限  但是还是可以看得出效果
若本身执行绪数目都还没有四个的话
那个四核心cpu恐怕难有作为
个人觉得比较可能的是 emu有若干个执行绪协同作业
但是负荷分配不够平均 四核心cpu可以提高其效率 但是效果不明显
若要充分发挥四核心cpu的效率 必须针对四核心cpu来做最佳化

TOP

引用:
原帖由 sangokushi 于 2008-5-19 15:08 发表

基本上一个执行绪(thread)只能执行在cpu的某一个核心上
以目前的技术 将一个执行绪的作业 分配到两个核心去处理是不可能的
程式要支援多核心的话 必须开多个执行绪
然后由作业系统或者programmer自行按一定规则 ...
ls有个id貌似懂这个,去问他把,具体技术我就不懂了:D

如果有测试解释同频率下4核相对2核性能提升了多少最好

[ 本帖最后由 索尼来也 于 2008-5-19 15:11 编辑 ]

TOP

引用:
原帖由 hyperiris 于 2008-5-19 14:55 发表


第一,ps2的浮点协处理器(MIPS结构把IO/FPU等都作为协处理器对待)并不是IEEE754兼容的,这意味着,用x86/x64来模拟的话,必须自己处理几乎所有的浮点异常,包括上溢,下溢,NaN,除零,这种额外的开销极大的影响了模拟器的兼容性和速度。由于这个位置的模拟无法并行化,所以无法从多核受益。

第二,游戏机硬件和PC有一个显著区别的地方就是图形系统。PS2/NGC等机器CPU可以快速的读回GPU渲染结果进行额外的特效处理,学过DirectX/OpenGl的朋友知道,pc上做这个的代价是很昂贵的。具体上说就是,虽然pcsx2在CPU和GS上实现了多线程,但是同步的代价极大的降低了这种优化带来的速度。如果CPU需要读回显存,CPU线程必须等待GS插件刷新缓冲区,这本身就降低了软件的并行度。快速的显卡可以减少等待的时间。另外,现在的GS插件已经大量的利用Shader进行数据解码等等工作,所以某些小白所谓的pcsx2只用好cpu就可以是完全没有依据的。
模拟器就是用软体来模拟硬体的作业
一些硬体可以处理的异常自然要透过软体进行处理
个人感觉如何合理划分执行绪并且协同作业本身就是一个相当令人头痛问题
一个模组(modula)一般总是在一个执行绪里做处理
这个好理解

我想问一下大大说的第二点?
这样的架构是不是针对console的特性而专门设计的?
是不是ps2这样的主机预期到说 未来gpu的技术会发展
会出现很多ps2的gpu无法直接支援的特效
而ps2有较强浮点数处理能力的cpu可以从软体上实现某些特效?

TOP

console 本来就是为了高密集图形作业而设计的,所以就有很多特殊的优化。
比如果游戏机硬件会支持cpu高速的访问显存,本身硬件上就支持,而pc需要经过层层驱动,pci/agp/pcie总线,通过直接IO或者DMA才可以。

当然pc上用多个rendertarget是可以的,用几个无所谓,延迟渲染就用到这个,问题是游戏机上可能会密集的访问显存,这个在pc上是无法接受的。

举例说如ps2的uv0,uv1可能会把输出的数据再读回来又处理一次,这个过程李可文写过一篇文章介绍过,据我所知pc上要做到这个就需要dx10这个级别的API,或者用软件模拟。

ps2的gs支持的特效是很少的,华丽的效果基本都是cpu和uv0 uv1参与搅合的。

TOP

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