问题标签 [nintendo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
22010 浏览

handheld - 任天堂 DSi SDK:入门

有没有人有一个很好的起点来学习新任天堂 DSi 的开发?你需要什么样的硬件来开发和测试这样的东西?您可以使用标准 DS 为 DSi 开发吗?您需要使用什么语言?

[Bonus Question]:我还听说新的 DSi 将获得一个类似于 Apple 的 App Store - 开发者可以使用它来销售游戏吗?

0 投票
4 回答
912 浏览

c++ - 用于奇怪目标平台的 C++ 代码覆盖工具

任何人都知道可在以下条件下使用的 c++ 代码覆盖工具:

  1. 目标平台是Nintendo WII dev.kit 内的PowerPC CPU ,它运行定制的嵌入式操作系统。与 PC 交换数据的唯一方法是使用自定义专有 API(抱歉我的 NDA)。

  2. 编译器不是微软,不是 GCC,甚至不是命令行。也就是说,它是 Metrowerks IDE(当然是在 Windows 上运行)。

提前致谢!

0 投票
1 回答
497 浏览

hardware - 如何在真实硬件上测试我的自制任天堂娱乐系统软件?

几年前,我实现了一个NES游戏作为一个类项目,用6502汇编编写。我只在 NES 模拟器上运行过它,但我希望看到它在真正的硬件上运行。有没有开发板可以做到这一点?我知道使用映射器芯片等有点棘手,但我愿意仅限于一个普通的映射器(比如 MMC3)。

0 投票
2 回答
1210 浏览

nintendo-ds - 任天堂 DS 使用 PAlib

我一直在代表我的代理机构研究 Nintendo DS 开发并开始使用 devkitPro/libnds 和 PAlib,它似乎非常适合我们的需求,直到我们确定它是否对我们来说是一条可行的路线并希望投资/申请开发套件和执照。

我主要担心的是,在开发和学习 PAlib 风格的同时,是否有可能最终采用这种方式构建的项目并获得许可和发布?我真的不想花很多时间来学习这个,而必须学习一个完全不同的设置。本质上,我想 PAlib 仅适用于 Homebrew 吗?DS 游戏的零售开发需要学习什么?

非常感谢,安东

0 投票
2 回答
37339 浏览

c++ - 有没有模拟器编程教程或指南?

模拟器如何工作以及它们是如何编写的可能重复?

我想编写一个模拟器(可能是 NES 或 C64,我还没有决定),我知道有很多人可能会问为什么有人想从头开始制作一个,但我想包括一些特定的特性在其中,也是为了自己构建它。
我想从已经建立并可以传播经验的人那里阅读指南,它不必是特定于平台的(如果不是更好),因为我知道如何编程,我不知道如何去效仿。

0 投票
1 回答
4155 浏览

assembly - 如何为 Nintendo 64 构建一个 Hello World?

我正在阅读MIPS Assembly Language Programming,但现在我想为Nintendo 64构建一个简单的“游戏” 。我想将 a 打印Hello, World到屏幕上,但有人可以提供帮助。因为我没有什么可以开始的。

我选择了 Nintendo 64,因为我的朋友告诉我它使用 MIPS,而且我已经有了模拟器。

0 投票
5 回答
3298 浏览

sprite - NES 编程 - 名称表?

我想知道 NES 如何显示其图形肌肉。我已经在网上研究了一些东西并通读了它,但我想知道最后一件事:Nametables。

基本上,根据我的阅读,NES 命名表中的每个 8x8 块都指向模式表中的一个位置,该位置保存图形内存。此外,nametable 也有一个属性表,它为每个 16x16 块设置一个特定的调色板。它们像这样连接在一起:

(假设有 16 个 8x8 块)名称表,ABCD = 指向精灵数据的指针:

属性表,其中 1 2 3 = 指向调色板数据的指针,< 左侧引用值,^ 上方,' 左侧和上方:

因此,在上面的示例中,块将被着色为

现在,如果我把它放在固定屏幕上——效果很好!因为 NES 分辨率是 256x240 像素。现在,如何调整这些表格以进行滚动?

因为 Nametable 0 可以滚动到 Nametable 1,如果你继续滚动 Nametable 0 将再次环绕。我明白了。但我不明白的是如何滚动属性表。根据我在网上阅读的内容,它为其分配属性的 16x16 块会导致屏幕边缘图块的颜色失真(如在 SMB3 中从左到右滚动时看到的那样,反之亦然)。

我担心的是我了解如何滚动名称表,但是如何滚动属性表?例如,如果我在屏幕左侧有一个绿色块,理论上向右移动屏幕应该会导致右侧的图块也是绿色的,直到它们更多地移动到框架中,它们将恢复到他们的正常颜色。

~~~~编辑:我确实想指出我知道扫描线X和Y。这个想法刚刚在我脑海中闪过。

假设我在 10 的扫描线 Y。这意味着我正在水平读取 10 个值到我的命名表中。这意味着我的第一列不在屏幕上,因为它的像素宽度仅为 8。但是,颜色属性保持不变,因为它的宽度为 16。

假设整个列的颜色属性是绿色,我是否正确假设对用户来说,屏幕左侧的前 6 个像素将被着色为绿色,屏幕上最右边的 10 个像素也应该是绿色的?那么,根据屏幕左侧的假设,我是否正确?

0 投票
1 回答
745 浏览

memory - 旧 NES 应用程序上的“银行切换”精灵

我目前正在用 C# 编写基本上可以称为我自己对 NES 硬件的解释,用于我正在开发的老式游戏。我已经启动了 FCE 并一直在观察 NES 如何显示和渲染图形。

简而言之,NES 可以保存两个位图的图形信息,每个位图的尺寸为 128x128。这些称为 PPU 表。一个用于 BG 瓷砖,另一个用于精灵。数据必须在此内存中才能在屏幕上绘制。现在,如果游戏有比这两个库更多的图形数据,它可以在每一帧结束时将这些新信息的一部分写入这些库 - 覆盖那里的内容 - 并从下一帧开始使用它。

那么,在旧游戏中,程序员是如何“切换银行”的呢?我的意思是,在关卡设计中,他们如何知道要加载哪个图形集?我注意到当屏幕以编程方式从舞台的一个部分滚动到下一个部分时,《洛克人 2》的银行切换。但是他们是如何在关卡中存储这些信息的——将哪些精灵复制到 PPU 表中,以及将它们写入哪里?

另一个例子是在 MM2 中暂停。BG 瓷砖在暂停期间被覆盖,然后在玩家取消暂停时恢复。他们如何记住他们更换了哪些瓷砖以及如何恢复它们?

如果我很懒惰,我可以制作一个巨大的静态位图并以这种方式获取值。但我强迫自己限制这些价值观,以创造更真实的体验。我已经阅读了关于如何制作 MC Kids 的精彩指南,并且我正在尝试对我如何编程这个游戏进行准系统。这些程序员是如何利用他们所拥有的东西完成他们所做的事情,这仍然让我感到难以置信。

编辑:我能想到的唯一解决方案是保存单独的表格,说明什么时候应该在 PPU 中放置哪些图块,但我认为这将是 NES 无法处理的巨大内存资源。

0 投票
5 回答
2885 浏览

retro-computing - 复古视频游戏编程

我刚刚在 youtube 上观看了 Super Mario Bros. -1 World 故障,我真的开始想知道这些游戏背后的代码。使用了哪种语言?视频游戏机的操作系统呢?有没有关于这个主题的资源的网站?(我是一名 90 年代的视频游戏玩家,所以我对这些游戏背后的编程特别感兴趣,但如果你愿意,可以随意将其设为 wiki,并包含指向一般视频游戏编程资源的链接)

0 投票
2 回答
1219 浏览

vb.net - 在游戏中渲染 2D 地图 - 裁剪和滚动

好的。从本质上讲,我在尝试对 NES 硬件做出自己的解释,这样我就可以制作出理想情况下类似于 NES 游戏外观的游戏。我目前不知道如何调整如何将游戏场绘制到视频内存(后缓冲区)。

后备缓冲器

NES 对 nametable 或 backbuffer 有限制。在我的示例中,后备缓冲区大小为 256x240 像素,即一个屏幕的大小。如果我把它画到电视上,它会完美地填满屏幕。现在,如果我以 X=5 的偏移量将其绘制到屏幕上,整个图像将被移动并环绕屏幕。

例如.....

屏幕被分成每个 8x8 像素的正方形,总共 32x30 行和列。(256x240 像素)。偏移量以像素表示 - 而不是列;所以理论上,我可以将屏幕偏移 5 个像素,每列将向右移动 5 个像素。

关卡设计

我的阶段由屏幕组成,包含以 16x15 行和列表示的数据,每行和列由 16x16 像素组成。这是为了模拟有多少 NES 游戏存储了关卡数据 - 每个图块都包含有关每个 8x8 块中应该包含什么的信息。

例如:

关卡设计也以此为代表,每个数字代表不同的屏幕并且 - 无意义,为空。

角色放置 这很容易。我已经知道如何根据角色的绝对定位来确定我的角色所在的表、行和列。我还可以确定屏幕内的相对位置。

有了这个信息,我可以很容易地找出字符的左侧和右侧有哪些列,如果有的话(如果字符在屏幕 1 的左侧,则左侧不再有水平)

所以这里是问题 DUN DUN DUN 我如何将我的关卡绘制到屏幕上,以便它们从一个滚动到下一个。一次绘制一个全屏相对容易,当角色到达边缘时,只需翻转到另一个屏幕。

但是,我在概念上遇到的问题是我需要将关卡数据“流式传输”到屏幕上。也就是说,假设角色向右移动了 24 个像素。BG也需要移动。

所以,我需要将后台缓冲区的滚动调整 24 像素。然而,单独滚动会导致屏幕覆盖,从而影响关卡的旧部分。因此,在滚动时,我需要确保将关卡的新部分绘制到后台缓冲区。但在我这样做之前,我需要弄清楚需要先绘制哪些图块。如果这个人向左移动了 24 个像素,我需要在后台缓冲区上重新绘制图块并相应地更改偏移量。

并且我们不要忘记,如果角色向右移动并且没有要绘制的关卡数据,则不应该有偏移,而是角色更靠近屏幕的一侧(而不是通过X 轴)。

基本上,我现在脑子里只有很多不同的数字和价值观——试图把我的脑袋围绕着许多概念,它们导致我的大脑变得粘稠。有人对我如何解决这个问题有任何看法吗?

编辑:使用 VB.Net。C# 也适用(我在两者中都编程)