1
Kumo31 263 天前 2
当初本科毕设开题时也想过类似的点子,但据我所知... 模拟器要达到可用级别的性能,纯软件模拟基本上是完全行不通的(除非是 Gameboy 级别的老古董),要在本地直接执行目标指令才能基本无损耗,跨架构就要 JIT 做这个操作,这意味着你需要将动态地将指令的内存区域设置为可执行的,然后让 CPU 去直接执行它,GPU 的实现就更复杂了。而浏览器提供的接口是无法支持这样的底层操作的,就算是 native 的实现,iOS/iPadOS 对内存权限管理也很严格,难以实现 JIT
|
2
0o0O0o0O0o 263 天前 via iPhone
|
3
misdake 263 天前
cpu 代码动态编译成 wasm 也许可以搞,gpu 不太好模拟,webgpu 好好用起来带上 workaround 也许勉强够
|
4
ShadowPower 263 天前
除了#1 提到的那些以外,其实 WASM 有内存大小限制。过去只有 2GB ,现在也只有 4GB 。对于 Switch 模拟器来说,不够用。
|
5
drymonfidelia OP @ShadowPower 最新款 Switch 也只有 4GB 内存
|
6
jhdxr 262 天前
@drymonfidelia 你不太可能只用 4G 内存去模拟 4G 内存
|
7
ShadowPower 262 天前
@drymonfidelia 无 Swap 无 ZRAM 的设备,跑安卓版 Yuzu ,开 NCE 模式(不用翻译指令集,不过着色器还是需要编译+缓存),玩一些主流 Switch 游戏,一段时间之后 Yuzu 本体的内存占用可以达到 7GB 。
现在需要这玩意在整个 Wasm Runtime 里跑,而且只给 4GB 内存,跑的还不是原生代码,而是 WASM 的 IL…… |
9
murmur 262 天前 1
@levelworm fpga 不用于这个场景,行业领域用的比较多,首先专有电路逆向可比软件逆向难多了,定制起来性能是超过同级别通用 cpu 的,但是得定制好
然后 fpga 的成本肯定比不上大规模生产的芯片 |
10
JeffreyZhuang 262 天前
别太看得起 wasm 和 webgl 的性能,跟原生应用有数量级上的差距。
模拟本身也有很大的损耗。 组合拳下来,switch 上的 3D 游戏带不动了。 |
11
lonewolfakela 262 天前
switch 还有点希望,PS3 那个奇葩架构的模拟性能损耗能上天,还是别指望用网页端的技术实现了。
|
12
beginor 262 天前 via Android
这是打算在浏览器加载 10 多 G 的游戏文件么?
|
13
icyalala 262 天前
WASM 性能只有 Native 的 1/2 到 1/3 ,再加上指令集不同,CPU 执行性能会非常差。GPU 指令差的就更多了。
|
14
drymonfidelia OP @beginor 浏览器加载 10 多 G 的游戏文件应该是最简单的,YouTube 会员的离线缓存功能就把视频加密下载在浏览器 IndexedDB ,存 200GB 都可以,没有上限
|
15
qq316107934 262 天前
@drymonfidelia #14 储存在硬盘内顺序读取,和内存内随机按址读取, 速度不是一个概念。顺便一提受 V8 引擎限制 WASM 内存上限 2GB ,有些浏览器最多 4GB 。
|
16
cubecube 261 天前
web 的 GPU 性能太差呀,图片多的网站拉动都卡,更别说要 60hz 跑 3D 了
|