常见问题解答
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=FaqPgxbox
- 最后更新: 2016-03-12
FreeBASIC 在 Xbox 上的一般问题
- FreeBASIC 真的能制作 Xbox 游戏吗?
- FreeBASIC 的 Xbox 移植版是如何实现的?
- Xbox 360 的移植版怎么样?
- PlayStation 或其他游戏机的移植版怎么样?
- 为什么不使用模拟器,直到开发者获得一台改机 Xbox?
- 为什么不使用 Microsoft XDK?
- 为什么不使用 Microsoft 调试器来修复它?
- 这是非法的吗?微软可以起诉你们吗?
在 Xbox 上开始使用 FreeBASIC 的问题
- 用 FreeBASIC 编译 Xbox 游戏需要什么?
- 如何获取输入?
- 它只能在特定 Xbox 上运行吗?
- 工作中是否需要另一种语言(如 C 或 ASM)?
- 需要特殊的库吗?
- 可以使用预制函数(inkey、line 等)吗?
- 还有什么需要了解的?
返回目录
FreeBASIC 在 Xbox 上的一般问题
FreeBASIC 真的能制作 Xbox 游戏吗?
理论上是可以的。2005 年 7 月,FreeBASIC 0.13 的一个副本被移植到了 Xbox,并生成了可运行的可执行文件。然而,0.14 版本对编译器的修改打破了兼容性。
Xbox 移植版目前处于"僵尸模式";项目团队中目前没有人拥有该游戏机——原始移植版由 SJ Zero 完成,但在 v0.14 的运行时库修改后遭到破坏。
该移植版暂停,等待 GCC 后端移植完成,因为据信该移植版将修复 Xbox 移植版的问题。
FreeBASIC 的 Xbox 移植版是如何实现的?
FreeBASIC for Xbox 的实现得益于创建了 OpenXDK(合法的 Xbox 软件开发工具包)的开源开发者的努力。OpenXDK 是为类 Unix 环境创建的,与 FreeBASIC 源代码相当兼容。
该移植版通过强制 FreeBASIC 运行时库使用 OpenXDK 版本的 Glibc(而不是 mingw32 版本)来实现。使用正确的编译标志时,这会创建一个看起来像标准 EXE 文件的程序。然后 CXBE 会剥离该可执行文件上的 Windows PE 头,并替换为 Xbox 头。
实际上,整个移植所做的只是更改运行时库并以特定方式进行链接,使 CXBE 工具能够创建 Xbox 可执行文件。
Xbox 360 的移植版怎么样?
Xbox 是一台运行 NVIDIA nForce 芯片组衍生产品的 Intel Pentium 3,配备 NVIDIA 显卡和 NVIDIA SoundStorm 声卡。这就是为什么 Xbox 移植版是可行的,且相对直接。
另一方面,Xbox 360 使用了一款完全不同的 CPU 以及同样不同的硬件。FreeBASIC 目前无法生成 Xbox 360 的可执行文件。
另一个问题是缺乏 Xbox 360 版本的 OpenXDK 等价物。这将迫使任何移植使用 Xbox 360 XDK,这是 Microsoft 创建的受版权保护的软件。这将是非法的、不道德的,并且会让 FreeBASIC 面临法律风险。
因此,移植到 Xbox 360 目前被认为是不可能的。
PlayStation 或其他游戏机的移植版怎么样?
Xbox 是一台运行 NVIDIA nForce 芯片组衍生产品的 Intel Pentium 3,配备 NVIDIA 显卡和 NVIDIA SoundStorm 声卡。这就是为什么 Xbox 移植版是可行的,且相对直接。
另一方面,PlayStation 使用 RISC 芯片,而 FreeBASIC 目前不能为其生成代码。几乎所有游戏机都使用非 x86 处理器,这阻止了使用 FreeBASIC 进行开发的可能性。
另一个问题是缺乏许多游戏机版本的 OpenXDK 等价物。这将迫使任何移植使用商业软件开发工具包,即游戏机制造商创建的受版权保护的软件。这将是非法的、不道德的,并且会让 FreeBASIC 面临法律风险。
因此,移植到其他游戏机目前被认为是不可能的。然而,当 GCC 后端移植完成时,许多拥有合法可用开发工具包的游戏机和其他平台的移植将成为可能。
为什么不使用模拟器,直到开发者获得一台改机 Xbox?
目前没有已知的 Xbox 模拟器能够运行 FreeBASIC 代码。运行制作的程序需要合法的硬件游戏机。这使得模拟器对开发来说完全无用。
为什么不使用 Microsoft XDK?
不使用 Microsoft XDK 有两个主要原因。
Microsoft 的 XDK 是受版权保护的软件,使用它将是非法且不道德的,使 FreeBASIC 面临法律行动风险。此外,FreeBASIC 团队的任何成员都从未接触过 Microsoft XDK,以防止在法律上"污染" FreeBASIC。
OpenXDK 是围绕 gcc 和 UNIX 风格系统(如 MinGW 或 Cygwin)开发的。这意味着它可以以非常小的努力集成到 FreeBASIC 中。另一方面,Microsoft 的 XDK 是围绕 Microsoft 编译器开发的,因此不能轻易集成到 FreeBASIC 的源代码中。
注意:保护微软的版权,以及由此保护 FREEBASIC,在本项目中是首要重要的事项。我们不希望任何人提供 XDK 方面的帮助,也不希望任何人提供带有调试器 XBOX 的帮助。任何试图提供 XDK 或 XDK 相关帮助的行为将被转交给相关执法机构。
为什么不使用 Microsoft 调试器来修复它?
不使用 Microsoft 调试器有两个很好的理由。
Microsoft 的 XDK 是受版权保护的软件,使用它将是非法且不道德的,使 FreeBASIC 面临法律行动风险。此外,FreeBASIC 团队的任何成员都从未接触过 Microsoft XDK,以防止在法律上"污染" FreeBASIC。
Microsoft 的调试器需要一台经过特殊改装的 Xbox,SJ Zero 和任何开发团队成员都没有,坦率地说,没有参与过该移植的任何人相信调试器能与 FreeBASIC 可执行文件配合使用——就像 Microsoft 的调试器无法读取 FreeBASIC 调试文件一样,我们怀疑 Xbox 调试器也无法读取 FreeBASIC 调试文件。无论如何,第 1 点压倒一切。
注意:保护微软的版权,以及由此保护 FREEBASIC,在本项目中是首要重要的事项。我们不希望任何人提供 XDK 方面的帮助,也不希望任何人提供带有调试器 XBOX 的帮助。任何试图提供 XDK 或 XDK 相关帮助的行为将被转交给相关执法机构。
这是非法的吗?微软可以起诉你们吗?
版权对于保护微软这样的商业公司和 FreeBASIC 这样的小型项目都很重要。没有版权,双方都无法对代码行使任何权利(在我们的情况下,例如 GPL)。一般来说,版权问题是开源项目尝试做此类事情时最常遇到的问题根源。
由于 FreeBASIC Xbox 移植版是使用其合法性已经确立的软件工具创建的(这些工具本身通常也来源于其合法性已经确立的其他来源),FreeBASIC for Xbox 并不违法。我们已经谨慎地保护 FreeBASIC 不使用任何微软版权代码,并将一直保持这种勤勉,以防止对版权代码的访问。
在 Xbox 上开始使用 FreeBASIC 的问题
用 FreeBASIC 编译 Xbox 游戏需要什么?
该移植版目前无法使用,但当它准备就绪时,你只需要一份 FreeBASIC for Xbox 的副本。
如何获取输入?
最初,输入将通过 SDL 获取,因为 gfxlib 移植版尚未完成。然而,其中一位开发者正在开发一个通用 SDL 版本的 gfxlib,它将为 Xbox 移植版提供完整的 gfxlib 功能。
它只能在特定 Xbox 上运行吗?
FreeBASIC for Xbox 的可执行文件只能在改装过的 Xbox 上运行。然而,改装 Xbox 通常只需在某个游戏中加载一个存档文件那么简单。更多信息可在 Xbox-Linux 网站上找到。
工作中是否需要另一种语言(如 C 或 ASM)?
不需要。FreeBASIC for Xbox 是唯一需要的工具。
需要特殊的库吗?
不需要。FreeBASIC for Xbox 将附带所有支持的库。
可以使用预制函数(inkey、line 等)吗?
目前,inkey 和 line 等输入输出命令不可用,但包括文件 I/O 在内的所有其他函数都可以使用。其中一位开发者正在开发一个通用 SDL 版本的 gfxlib,如果它能正常工作,将为 Xbox 移植版提供完整的 gfxlib 功能。
还有什么需要了解的?
FreeBASIC for Xbox 创建的可执行文件不含受版权保护的 Microsoft 代码,因此可以合法分发。
设计为使用 SDL 和 rtlib 的 Windows 和 Linux 源文件将能够直接为 Xbox 编译。虽然 Xbox 通过手柄端口(专有的 USB 连接)支持键盘,但输入方案将不得不做出调整以适应手柄。
返回目录