Nintendo 64 Partner-N64 开发套件

Hacker News Top 新闻

摘要

深入介绍京都微计算机(KMC)制造的 Nintendo 64 Partner-N64PC 开发套件,详解这台经过特殊改装的 N64 主机如何通过重新布线的 IRQ 和 RESET 关联线路,在游戏开发过程中实现实时断点调试与硬件复位。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/03 08:24

# Partner-N64PC 开发套件 – 与 Gerry 一起走进代码背后 Source: https://www.behindthecode.ca/partner-n64pc-dev-kit/ 这是用于 Nintendo 64 的 PARTNER-N64 PC 开发套件。这台机器由京都微计算机公司(Kyoto Microcomputer,简称 KMC)为 Nintendo 制造。***关于此开发套件的深度视频演示将在下方展示。*** 这些卡带提供了实时调试功能,但许多开发者仍然更愿意使用 SN-Systems 的 "SN64" 开发套件。 Partner-N64 调试器系统需要一台经过特殊改装的 N64 主机才能正常工作。***(见上方图片)*** 这台特殊改装的 N64 主机让调试器软件得以完全控制硬件,从而启用两项特定功能: 1. **触发游戏暂停(Halt),以便执行断点(Breakpoint)。(IRQ)** 2. **触发 N64 主机复位(RESET)。** 断点本质上是一种软件功能:开发者可以指定源代码中的某一行,让游戏在该处暂停。游戏暂停期间,开发者可以分析 N64 系统内存,查看是否存在任何问题或 Bug。这一切发生在游戏运行过程中(即 RUNTIME 运行时)。之后开发者可以恢复游戏(取消暂停),继续游玩,直到再次到达代码中的某个点……或者检测到错误。当满足某个条件或执行到某一行代码时,游戏会再次被暂停。这就是软件断点的基本功能。 改装后的主机还允许调试器软件按需对 N64 主机进行复位。复位由软件命令触发。因此,开发者可以运行一系列需要主机多次重启的测试。没有这台特殊改装的主机,这些功能将无法实现。 对主机所做的改装,主要是增加了若干跳线(Tie-lines)。这些本质上只是小电线,将 N64 电路板上的某些信号连接到原始设计之外的区域。 其中有两个信号需要从卡带插槽连接器重新布线到 N64 CPU,具体来说就是 **"IRQ"** 和 **"RESET"** 这两个信号。 ***(KMC)Partner-N64 改装主机 将 IRQ 和 RESET 信号从卡带边缘触点重新布线到 N64 CPU 芯片的跳线。 N64 CPU 芯片,其 IRQ 引脚焊接在一根 30AWG 跳线导线上。*** 这两个信号使得 Partner-N64 开发卡带能够控制 CPU 的 IRQ(中断请求,Interrupt Request),从而按指令暂停 N64。主机 RESET 信号同理,使软件能够按需对 N64 主机进行复位。 这些调试功能的大致流程如下: **调试器软件触发断点/RESET >> Partner-N64 发送 IRQ/RESET 信号 >> 改装主机将这些信号路由至 N64 CPU,触发相应功能。** ***上方展示的是 Partner-N64PC 调试器软件的菜单界面。*** Partner-N64 共有两个版本。 如上图所示:一个名为:**Partner-N64PC**,适用于运行 Windows 95/98 的 IBM 兼容计算机。第二个版本名为:**Partner-N64NW**,供使用 Silicon Graphics(SGI)工作站的开发者使用。 Partner-N64 开发套件为 N64 提供了调试功能,同时也为失败的 64DD 开发系统提供了调试功能。 64DD 是 N64 的一款磁盘驱动器读写外设扩展单元,仅在日本发售。不幸的是,该系统在上市当天便惨遭失败。结果,该系统被取消,从未在北美地区发售。 **现在有一个重要说明:** 实际上 64DD 有两个版本。一个是零售版,其磁盘驱动器插槽周围是黑色边框(bezel)。如下所示: Source Wikipedia:https://en.wikipedia.org/wiki/64DD#/media/File:64DD-Attached.jpg 第二个版本是 64DD 开发版,仅供 Nintendo 64 开发者使用。该版本的驱动器很容易辨认,因为磁盘插槽周围是蓝色边框……如下所示: ***上方照片展示的是一台非常罕见的 64DD 开发版 "原型"(Prototype)机型。这些机器由 ALPS ELECTRIC CO LTD 公司专门为 Nintendo 制造。 (这些原型机型的蓝色边框上缺少左侧通常显示的 N64 3D 标志。) 这些是极其罕见的系统,非常难以找到,因为总共只生产了少量几台。 上方照片展示的是标准的 64DD 开发版驱动器边框。 (注意 N64 标志。) 上方照片展示的是由 ALPS ELECTRIC CO LTD 制造的原型 64DD 开发版驱动器。(注意蓝色边框左侧的 N64 标志缺失。)*** 64DD 系统允许 N64 主机停靠(Dock)在其顶部,将两个系统连接在一起,并使用特殊的专有磁盘来扩展系统内存,让开发者能够制作更高级的游戏。 这些磁盘采用了与 90 年代 Iomega ZIP100 磁盘类似的技术,但其设计属于 Nintendo 的专有技术。零售版 64DD 使用灰色磁盘,而 64DD 开发版驱动器使用蓝色磁盘。如下所示: ***64DD 灰色零售版游戏磁盘。 64DD 蓝色开发版磁盘。*** 这两个系统之间存在机械差异:内部磁盘的旋转方向会因系统版本不同而不同(零售版或开发版)。这使得开发版磁盘无法在零售版驱动器上使用,反之亦然。 现在,当使用 Partner-N64 在 64DD 上进行开发时,64DD 需要特殊的字体(FONT)和音频(WAV)数据信息。开发者需要一款名为 **"IPL ROM PAK"** 的特殊卡带,其中存储了 FONT 和 WAV 数据。 ***上方展示的是与 64DD 开发版驱动器配合使用、用于访问 FONT 和 WAV 数据的 "IPL ROM PAK"。这些数据存储在一个特殊地址……只有使用真正的 IPL ROM PAK 卡带才能访问。*** 将这款卡带插入 Partner-N64 开发卡带顶部的一个特殊插槽中,系统便能够访问这些特殊数据。如下所示: **特别注意:*****使用 64DD 开发版驱动器时,Partner-N64 开发卡带是必需的。需要它们来加载一个特殊的 64DD 引导加载程序(Bootloader)。此外,顶部的卡带插槽还用于连接 IPL ROM PAK 以及 SRAM 测试卡带。*** 下图展示的是一块用于 64DD 的特殊转接板,名为 DCC 转接板。 **(型号:NUS DCC-00)** ***图片来源:ultra64.ca DCC 转接板上配备了一个拨动开关,用于在填充的 PAL 和 NTSC CIC 芯片之间切换。这对开发者来说是一个非常实用的功能,比手动插拔开发卡带上的 CIC 芯片要快得多。 所以这个 DCC 转接板到底是用来干嘛的???*** 这款转接板允许开发者将两块卡带并行连接,并同时接入 N64 的卡带插槽。这款特殊转接板只在开发者使用 N64 开发用闪存卡带(Flash cartridge)测试游戏时才会使用。例如下图中展示的那些: ***N64 开发用闪存卡带。这些卡带通常存储的是 N64 游戏的原型(Prototype)版本。它们经常被用来存储开发中的游戏,并在正式发售前寄送给游戏杂志进行评测。(因此它们被称为 N64 原型卡带。) 如你所见……相比标准零售卡带,它们的尺寸要大得多。那么,为什么开发者需要连接两块卡带呢?*** 当开发者为 N64 测试游戏时……接近测试的最后阶段,他们还需要在真正的卡带上测试游戏,以确认游戏确实能够正常运行,并且能够从卡带内存中加载。 为了进行这种测试,开发者会使用开发用闪存卡带。某些开发卡带内部并未安装 RAM,因此 DCC 转接板允许他们将一块特殊的 RAM 卡带接入系统,即下图所示的 **"SRAM 测试卡带"("SRAM TEST CARTRIDGE")**: ***KMC 256K SRAM 卡带。 N64 便可以运行测试,并同时访问闪存卡带的内存以及额外添加的 SRAM,尽管它们分别存储在两块不同的卡带中。 DCC 转接板插入 N64 主机。 开发用闪存卡带 + SRAM 卡带插入 DCC 转接板。*** 还有一种情况:开发者需要在卡带上测试或运行一款 64DD 游戏。但这会把 Partner-N64 开发卡带从 64DD 的设置中移除。如前所述,这是在 64DD 上开发时的必需条件。没有连接 Partner-N64,所需的引导加载程序就无法被执行。这个引导加载程序被称为 "IPL4ROM"。 这就带来了一个问题。为此,解决方案是使用 DCC 转接板。他们会连接一块存储了(IPL4ROM 引导加载程序)的 N64 开发用闪存卡带,同时还会连接特殊的 **"IPL ROM PAK"** 卡带,为 64DD 提供所需的 FONT 和 WAV 数据。 **如下图所示,在这个 DCC 转接板设置下,64DD 可以使用存储在开发闪存卡带上的引导加载程序启动,然后从 IPL ROM PAK 卡带加载 FONT 和 WAV 数据。** **现在做一个概念验证(Proof of Concept):** 如果移除 IPL ROM PAK 卡带(如下图所示),只插入 N64 开发闪存卡带……64DD 至少可以启动。然而,由于移除了 IPL ROM PAK,64DD 将无法获取字体数据。 结果,任何已加载的 DEMO/游戏都无法正常显示文字。如你可以在下图中看到的那样,屏幕顶部的文字区域显示的都是乱码。 因此需要认识到一点:64DD 开发系统并未配备 IPL ROM 芯片。这样设计的目的是为了让 Partner-N64 调试器系统在执行调试功能时能够直接加载 IPL4ROM 镜像。 从 64DD 开发版驱动器中移除的元器件就是 **IPL ROM** 芯片。 ***如图所示,IPL ROM 芯片安装在所有零售版 64DD 驱动器中。 该芯片存储了 IPL4ROM 引导加载程序以及 FONT 和 WAV 数据。 然而,如上图所示,在这台 64DD 开发版驱动器的 PCBA 上……IPL ROM 芯片从未被安装。*** 该芯片在设计中被有意移除,以便 Partner-N64 能够为了调试目的直接加载 "IPL4ROM" 引导加载程序。所以再说一次,这只是开发系统的设计方式。Partner-N64 首先加载 IPL4ROM,然后再将待测试的游戏 ROM 加载到卡带的 SRAM 中。 Partner-N64 开发卡带通过一根特殊的并行 IDC 排线连接到开发用 PC。 这根排线连接到开发卡带的背面,然后接入安装在一台 IBM 兼容 PC 中的特殊并行接口卡,该 PC 上运行着调试器软件。 ***Partner-N64PC 并行接口卡。(ISA 版本)最为常见。 Partner-N64PC 并行接口卡。(PCI 版本)非常罕见。 Partner-N64 开发卡带的内部 PCB。 Partner-N64 开发卡带内部 – 可以看到内部 EEPROM 存储芯片。 内部 EEPROM 存储芯片特写。 可以运行一个特殊的 EEPROM 测试程序,确认已安装的 EEPROM 容量(4K 或 16K)。 Partner-N64 调试器软件界面菜单。 上方展示的是 N64 SDK 随附的标准 N64 演示程序之一。(LIGHTS DEMO) 京都微计算机位于日本的营业办公室。 京都微计算机日本总部。*** 下面是我去年在自己的 YouTube 频道上发布的一段非常深入的 Partner-N64PC 开发套件硬件视频演示。 欣赏吧! – Gerry **-= 完 =**

相似文章

如何在2026年制作一款Nintendo 64游戏

Hacker News Top

作者详细讲述了他如何将自己的JavaScript游戏引擎移植到C语言,并制作出由Modretro发行的实体N64新游戏Xibalba 64——这是N64主机商业生命周期结束后推出的第二款新游戏。

看 Windows CE 在 N64 上运行

Lobsters Hottest

开发者 Throaty Mumbo 借助 Nintendo 64 的 MIPS 处理器和 1MB 内存,将 Windows CE 原生移植到了该主机上,并在 YouTube 和 GitHub 上记录并公开了整个过程与项目文件。

这个周末你打算做什么?

Lobsters Hottest

一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。