如何在GameCube上运行Windows NT?entii-for-workcubes项目完整入门指南
如何在GameCube上运行Windows NTentii-for-workcubes项目完整入门指南【免费下载链接】entii-for-workcubesPowerPC Windows NT ported to Nintendo GameCube/Wii/Wii U项目地址: https://gitcode.com/gh_mirrors/en/entii-for-workcubesentii-for-workcubes项目是一个令人惊叹的开源项目它实现了将PowerPC架构的Windows NT系统移植到Nintendo GameCube、Wii和Wii U等游戏主机上运行。这意味着你可以在这些经典的游戏设备上体验到Windows NT系统开启一段独特的技术探索之旅。支持的设备与系统版本已确认支持的设备Nintendo GameCube经典的游戏主机是该项目的主要目标设备之一。Nintendo WiiWii主机可以运行该项目但Wii Mini暂时需要SD卡硬件修改。Nintendo Wii U目前仅支持vWii模式。理论上支持但未测试的设备由于硬件稀有性以下设备理论上支持但未经过测试Broadway Evaluation BoardCortado boards不支持的设备早期的Dolphin开发硬件因其仅有4MB可用RAM无法满足Windows NT的运行需求。支持的Windows NT版本NT 3.51 RTM及更高版本。需要注意的是NT 3.51测试版build 944及以下由于处理器检测bug需要内核补丁才能运行。而NT 3.5因仅支持PowerPC 601将永远无法兼容。项目中的驱动与功能该项目包含了多种驱动以支持在游戏主机上运行Windows NT系统主要驱动如下Flipper相关驱动Flipper中断控制器位于HAL中负责系统中断管理。Flipper视频接口控制台帧缓冲区支持YUV XFB用于ARC固件和HAL。Flipper GPU RGB帧缓冲区在NT系统下文本设置时写入EFBGDI模式下写入纹理并在垂直空白中断时复制到XFB。Flipper串行接口驱动支持连接到GameCube控制器端口的多种设备如GameCube ASCII键盘控制器、GameCube控制器、N64 Randnet键盘、N64鼠标和N64控制器等并为不同设备提供了相应的按键映射。例如在NT GDI模式下GameCube控制器的左模拟摇杆可移动鼠标A按钮对应鼠标左键B按钮对应鼠标右键等。Flipper外部接口驱动支持SPI总线上的多种设备包括RTC、USB Gecko仅用于内核调试、SD Gecko或兼容设备以及IDE - EXI或兼容设备尚未在真实硬件上测试。其他驱动Vegas IOP IPC实现相关的进程间通信功能。Vegas SDMC控制器通过IOS支持SD卡存储。Vegas USB控制器通过IOS支持USB设备如USB键盘、USB鼠标和USB大容量存储设备目前存在一些问题部分设备可能无法工作。需要注意的是不支持USB设备热插拔使用USB设备需在启动ARC固件前插入。安装步骤准备工作从发布页面获取二进制文件将其解压到SD卡或EXI - IDE设备。将NT 3.51或4.0的ISO文件复制到sd:\nt\disk00.iso。创建一个所需大小的原始磁盘映像保存为sd:\nt\disk00.img。可以使用qemu-img create disk00.img 2G命令创建大小可根据需要调整。注意FAT32分区上的最大文件大小为4GB。在GameCube上从Swiss加载arcldr_dol.dol在Wii/vWii上从Homebrew Channel加载arcldr。磁盘分区进入ARC固件菜单后选择“Run firmware setup”然后选择“Repartition disk or disk image for NT installation”。选择之前创建的磁盘映像。按Y键键盘、X按钮GameCube控制器或Z按钮N64控制器确认分区操作。完成后分区程序会提示“Press any key to restart”此时系统会重启或返回加载器以便再次加载arcldr。安装NT系统选择“Run NT setup from cd00”。会出现“Setup could not determine the type of computer you have”的消息。选择“Other”默认选中选项当询问硬件支持磁盘时按Enter键或A按钮。从列表中选择HAL目前只有一个选项“Nintendo GameCube, Wii and Wii U (vWii)”。接下来会收到“Setup could not determine the type of one or more mass storage drivers installed in your system”的消息此时需要加载至少两个驱动。要加载驱动按S键GameCube控制器的X按钮N64控制器的Z按钮选择驱动从列表中选择“Other”当询问硬件支持磁盘时按Enter键A按钮然后选择驱动。“Nintendo Wii SD Slot (via IOS) [Disk Images]”在Wii或Wii U上使用前置SD卡插槽时必需。“Nintendo Wii USB (via IOS)”在Wii或Wii U上使用任何USB设备键盘、鼠标或大容量存储时必需。“Nintendo GameCube Controller Ports”在GameCube或Wii上使用连接到GameCube控制器端口的设备时必需。“SD Gecko or IDE - EXI and Compatible [Disk Images]”在GameCube或Wii上的GameCube存储卡插槽中使用SD Gecko或兼容设备或IDE - EXI或兼容设备或在GameCube下方的串行端口使用时必需。简单来说在GameCube上只需最后两个驱动在Wii U vWii上只需前两个驱动在Wii上根据是否使用GameCube控制器端口/存储卡插槽可能需要前两个和最后两个驱动。会收到“Setup could not determine the type of video adapter installed in the system”的消息。从列表中选择“Other”当询问硬件支持磁盘时按Enter键然后根据安装的操作系统选择正确的选项。列表中有两个选项“ArtX Flipper, ATI Vegas, AMD Bollywood (NT 4)”用于NT 4“ArtX Flipper, ATI Vegas, AMD Bollywood (NT 3.x)”用于NT 3.51。NT将启动并开始文本设置按照常规步骤进行文本设置。在“Setup has determined that your computer contains the following hardware and software components”下将“Keyboard”从“Unknown”更改为“XT, AT or Enhanced Keyboard (83 - 104 keys)”将“Pointing Device”从“Unknown”更改为“No Mouse or Other Pointing Device”。从分区列表中选择“C:”驱动器。如果创建的NT分区大小为2GB或更小则必须进行格式化。如果创建的NT分区大小超过2GB磁盘检查过程会发现错误需要重启。此时需要从Swiss或Homebrew Channel重新启动到ARC固件并按照“Installing NT”步骤再次回到此点。第二次尝试时磁盘检查将成功只需在NT文本设置分区选择器中再次选择“C:”分区。按照正常步骤完成NT文本和图形设置的其余部分。已知问题在使用该项目过程中可能会遇到以下已知问题系统有时可能在重启时挂起。部分USB大容量存储设备存在问题。GDI驱动程序使用缓慢且未优化的代码用于将GDI位图缓冲区复制到GPU纹理缓冲区。ARC固件和NT驱动程序支持SD卡/EXI - IDE设备上的磁盘映像使用exFAT格式但加载程序目前不支持从exFAT加载ARC固件本身。加载程序目前不支持从USB大容量存储设备加载ARC固件。请注意EXI总线与其他磁盘接口相比速度较慢因此使用SD Gecko/EXI - IDE会导致速度下降。这在GameCube上安装NT时最为明显因为这是唯一可用的选项。构建项目构建ARC固件需要devkitPPC。此外arcfw/gccle中必须存在为powerpcle编译的libgcc.a。可以在任何Void Linux镜像上找到截至2024 - 07 - 12当前要搜索的文件名是cross - powerpcle - linux - gnu - 0.34_1.x86_64.xbps。通过zstdcat cross - powerpcle - linux - gnu - 0.34_1.x86_64.xbps - o cross - powerpcle - linux - gnu - 0.34_1.x86_64.tar解压缩然后从tarball中提取文件usr/lib/gcc/powerpcle - linux - gnu/10.2/libgcc.a。确保DEVKITPPC环境变量设置为devkitPPC目录通常为/opt/devkitpro/devkitPPC。构建ARC固件加载器cd arcldr ; make -f Makefile.wii ; make -f Makefile.gc ; cd ..。构建小端libccd arcfw/baselibc ; make ; cd ../..。构建ARC固件本身cd arcfw; make ; cd ..。构建HAL/驱动程序需要peppc。此外来自NT4 DDK的powerpc库ddk/lib/ppc/free/*.lib必须存在于lib中。工具链的其余部分用于asm的C预处理器的VC6 PPC CE交叉编译器因为gcc cpp对多行定义处理不当修补了单个分支以跳过“dump statements”的汇编器PASM.EXE来自MSVC 4.2的资源编译器和链接器及其依赖项用于从可执行文件拆分COFF调试符号的NT 3.51 DDK中的SPLITSYM.EXE存在于msvc - ppc目录中。要构建NT 3.5x GDI驱动程序fpgx35dll还需要来自NT 3.51 DDK的powerpcwinsrv.lib。头文件包含在内来自不同地方并经过轻微修改以适用于此工具链或出于向后兼容性原因nt4/sdkNT4 SDKnt4/ddkNT4 DDK包括src/*/inc目录中的所有头文件nt4/crtVC 4.0CRT头文件nt4/hal由于缺乏公开转储此文件夹包含有证据表明包含在NT4 halkit中的头文件减去nthal.h它在hal源文件夹中并经过修改以允许向后兼容性。有些已被修改以允许它们在ntddk.h之后被驱动程序包含因此驱动程序可以调用HalDisplayString进行调试或使用LOADER_PARAMETER_BLOCK确定它们是否在文本设置中运行。使用的makefile源自devkitPro。确保PEPPC环境变量设置为peppc - build/toolchain/bin目录。必须先构建halcd halartx; make; cd ..然后才能构建其他驱动程序因为HAL实现了导出的IOP IPC和EXI驱动程序由于HAL本身使用它们。项目致谢entii-for-workcubes项目的成功离不开众多开源项目和开发者的贡献主要致谢如下使用的libc是baselibc。ELF加载器、arcfw makefile以及一些缓存失效函数改编自The Homebrew Channel。其他makefile改编自[devkitPro](https://github.com/devkitPro/devkitppc - rules)。一些低级powerpc内容以及ARC固件帧缓冲区控制台实现和字体改编自libogc。ARC加载器中的EXI - IDE驱动程序改编自[Swiss](https://github.com/emukidid/swiss - gc/blob/master/cube/swiss/source/devices/fat/ata.c)。ARC固件中的IOS IPC驱动程序改编自The Homebrew Channel的reload stub。ARC固件内部的ISO9660 FS实现是lib9660并进行了一些修改。ARC固件内部的FAT FS实现是[Petit FatFs](http://elm - chan.org/fsw/ff/00index_p.html)并进行了一些修改此外完整的[FatFs](http://elm - chan.org/fsw/ff/)用于在FAT16/FAT32/exFAT分区上读取底层磁盘映像在ARC中以及iossdmc.sys和fpexiblk.sys内部。GDI驱动程序源自NT4 DDK示例framebuf。各种驱动程序改编自libogc中的驱动程序。通过本指南你可以了解如何在GameCube等游戏主机上利用entii-for-workcubes项目运行Windows NT系统虽然过程中可能会遇到一些问题但这无疑是一次极具挑战性和趣味性的技术尝试。如果你对该项目感兴趣可以通过克隆仓库https://gitcode.com/gh_mirrors/en/entii-for-workcubes来获取更多详细信息和最新代码。【免费下载链接】entii-for-workcubesPowerPC Windows NT ported to Nintendo GameCube/Wii/Wii U项目地址: https://gitcode.com/gh_mirrors/en/entii-for-workcubes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考