作者ray90514 ()
看板NSwitch
标题Re: [情报] NS後继机确定相容NS游戏
时间Thu Apr 3 21:33:45 2025
感觉有必要澄清一下 刚好是自己比较熟的地方
是什麽会导致不相容
1. 二进位不相容
不同ISA都属於这种 x86 <-> ARM Rosseta
就是在处理这种
2. 硬体不相容
虽然大家认知里ARM 相容性不好,实际上从32位时期ARM就有在做指令相容
像NDS ARM9的指令 3DS ARM11 完全能跑
真正的问题是那些外设,不同的外设有不同使用方式/记忆体位址
3. 软体(API) 不相容
Windows <-> Linux <-> macOS 就属於这种
软体使用到特定於系统的Library 就会造成不相容
至於各种的模拟相关的解决方法
1. 解释器(Interpreter)
直接用软体的方式一行一行模拟指令的执行
2. 静态编译(AoT)
预先将原本的程式转换成目标架构可执行的Binary Code
3. 即时编译(JIT)
混合前面两种,因为一行一行解释执行太慢,变成边执行边编译
4. Compatibility Layer
在不同系统上实作另一个系统的API
5. 直接用原本的硬体
访谈提到的即时转译并不是指JIT
至於NS2的情形基本属於硬体不相容
自己系统沿用也不会有3 的问题
1 2 3常用来处理二进位不相容 性能也不允许
实际上NS2 的架构在相容的层面上并没有差多少
解决办法应该是在系统API 层面做好兼容
所以才有办法一次支援大部分的游戏
我猜会出问题的地方大多是GPU这块
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 50.24.57.68 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NSwitch/M.1743687227.A.95E.html
1F:推 bestadi: 巴哈有问了 GPU有DLSS跟光追 DLSS、光追都给三厂自行设计04/03 22:29
2F:→ hn9480412: 那Universal Binary算哪一种? 04/03 23:02
跟 Android apk 一样把不同架构的 code 包在一起
※ 编辑: ray90514 (50.24.57.68 美国), 04/03/2025 23:30:39
3F:→ HolyBugTw: 不觉得需要JIT,搞不好单纯只是周遭IO的timing issue 04/08 09:06