Xbox360 -> Windows 可执行文件转换器
不同的 CPU - Xbox360 使用基于 PowerPC 的 CPU,我们的 PC 基于 x86 架构。它们在许多方面都不同,我不知道从哪里开始 :) PowerPC 基于 RISC,具有大量寄存器,但指令非常简单。另一方面, x86 则完全不同 - 寄存器数量不多,而指令更多,更复杂(地址模式…)。很显然,简单的转写是不可行的。
内存布局 - Xbox360 使用大端字节排序, x86 CPU 使用小端字节排序。为了兼容从文件中读取的输入数据,以及写入和读取内存中的所有内存操作数,必须进行字节交换。这可能会带来明显的性能问题。
不同且过时的 GPU 架构 - 如果我们希望看到任何图形渲染,GPU 需要被模拟。有两个难以解决的问题:首先,我们看到的着色器将被编译为与 GPU 兼容的格式,输入中不支持 HLSL,很抱歉。这些着色器还需要反向工程。其次,Xbox 360 GPU 使用了大约 10MB 的内部存储器,称为 EDRAM,用于渲染期间渲染目标的临时存储。虽然今天的一些显卡仍然使用类似的概念,但这些概念并未直接暴露给用户。由于人们在 Xbox 上使用 EDRAM 的方式有很多,因此这一部分需要模拟。说实话,可能每个游戏都会有不同。
图形/内核函数的内联 - 在编译可执行文件时,某些函数被直接内联到
暂无开放 Issues,或尚未同步最近议题。