在Nintendo DS上编程

时间:2008-09-28 02:02:50

标签: c embedded nintendo-ds homebrew

我之前正在阅读this回答,这让我有兴趣购买Nintendo DS Lite来学习嵌入式设备的编程。在我出去挥霍DS之前,我有几个问题:

  1. 您可以编程的是否有任何限制?我之前表示的帖子似乎没有,但澄清会很好。

  2. 我会更好地购买一个arduino(或类似的)并走这条路吗?我喜欢DS,因为它已经内置了很多硬件。

  3. 我正在考虑购买CycloDS Evo卡,自制软件有更好的选择吗?

  4. 有关DS开发的最佳资源有哪些?

  5. 感谢您的时间,如果您有DS和程序,我会感谢您听到您的意见,或者如果您有更好的想法,我也希望听到它。

    谢谢=]

8 个答案:

答案 0 :(得分:20)

  1. 不,真的没什么了 限制超出了 硬件,甚至可以 克服了足够的努力。雷神之锤 已被移植到DS,例如,     和利用两者的粒子游戏     处理器已经制成。那里     也一直在讨论如何     使用更高质量的3D场景     双通渲染器。有     任天堂的多个资源     GBADev forums的DS部分。

  2. 我     会说DS是一个     嵌入式系统的优秀途径     发展;有一个大的     愿意的活跃社区     回答问题并给予支持,     并且有很多硬件构建     直入事物。它节省了     你建立一个系统的时间     测试。

  3. CycloDS Evolution是一个     好卡,相当普遍,所以     这应该不难 - 如果     必要的 - 让你的自制软件兼容     其他卡片。但是,请注意     其他受欢迎的选择是M3     线和R4线,都是     几乎是一回事。我有     TTDS,它运作良好,但不是     盒子外面。我会推荐     其他三个提到。

  4. 至于     开始DS devving,我愿意     建议看基本     在devkitPro的examples文件夹中找到并阅读GBA tutorial TONC的示例,     它涵盖了许多概念     在GBA和DS中使用     发展。更加面向DS     教程,Patater's Introduction to Nintendo DS Programming,     将帮助初学者继续前进     在DS世界。还有very comprehensive documentation spec for the GBA and DS known as GBATek

答案 1 :(得分:8)

大约一年前我在DS Lite上做过一些编程。我遇到的主要硬件限制是使用WiFi硬件。我发现当时的自制软件库无法进行DS-DS通信。我不确定这是否已经改变。我还发现您无法与其他设备形成Ad-Hoc连接。我必须在基础设施模式下连接到802.11b网络,并且必须广播SSID。

开发我使用

我不建议使用Supercard Lite,因为它需要使用DS的GBA和DS插槽。当时这是唯一的选择。现在有DS槽仅解决方案,如R4。我有一个正在使用R4的朋友,虽然我自己没有使用它,但它取得了相当不错的成功。

答案 2 :(得分:5)

我没有在DS上做任何编程,但我在GBA(Game Boy Advanced)上做了一些开发。如果你想要做的是学习如何编程嵌入式设备,这对你来说可能是一个不错的选择(当然也是一个更便宜的选择)。甚至还有一本免费的在线书籍:Programming the Nintendo Gameboy Advanced。我建议使用GBA,因为正如我所见,网上有更多资源可供学习如何编程。一个缺点是它没有wifi,这意味着你将无法像DS那样做很多很酷的事情,但它肯定是一个开始!

答案 3 :(得分:3)

不能说1,2或3,但我用于GBA编程的资源也有DS信息:

http://nocash.emubase.de/gbatek.htm(这是一篇内容深刻的技术规范文档,但我喜欢它)

另外:http://www.devkitpro.org/用于编译器和东西。

答案 4 :(得分:3)

  1. 限制是硬件限制 - 有4Mb的RAM,3D硬件可以处理每帧X多边形,依此类推。除此之外,它只是一堆硬件,你可以做你想要的。工具链支持C / C ++和汇编程序(ARM)。

  2. 各种硬件也是我喜欢它的原因。掌握每一块拼图是让DS变得有趣的原因 - 每一块硬件都有它自己的一套技巧,可以充分利用它。

  3. 我自己没有,所以我想检查here。看起来不错。
    编辑:我唯一能选择的就是你要在PC和NDS之间交换SD卡了很多,而带有板载USB插座的推车会稍微给你一点更快的周转时间。

  4. 最好的资源是libnds示例,然后是gbadev forums

答案 5 :(得分:2)

前几天我刚刚获得了CycloDS Evolution,我很喜欢它! DSOrganize就像一个迷你操作系统,它添加了一些我希望DS附带的东西,就像一个真实的日历应用程序!

要解决Mike F的#3,实际上有FTP server for DS,您可以使用该文件无线传输文件到DS。我自己没有尝试过,因为我的网络使用WPA而DS似乎只支持WEP。

答案 6 :(得分:1)

老实说,我在大学就读嵌入式系统课程的过程中找到了Nintendo DS和自制社区,我意识到基于ATmega32的套件之间的相似性,我正在为该课程编程和硬件级开发。任天堂DS通过libnds,我被迷住了。

就我个人而言,我来自一个强大的C ++背景,但是我能够在我的口袋里随处走动,我已经编程了一直是我的目标,因为我第一次接触TI-83 Plus计算器......由于任天堂DS,我现在能够实现这个目标。

无论如何,我希望你能像我过去几个月那样有趣地进入DS开发,我祝你好运。

答案 7 :(得分:1)

我做了两个,比DS更多的GBA。我会首先推荐GBA然后升级到DS,因为它会使并发症翻倍。尺寸为3合1的ezflash V gba是一张很好的卡片。我有一个gba的bootloader,我使用NDS编写的卡片和我下载的程序,我记不起手头的名字了。一旦引导加载程序正在使用串行电缆,我就可以调试程序并将它们加载到ram中。该卡还允许您加载到卡上的ram并从那里运行利用预取缓冲区和更大的程序。对于NDS,我尝试了很多卡。这些骑行装置适合日常使用,但对于发展而言并非如此。我想我更喜欢Acekard 2,或R4。考虑一下你拔出卡片的时间,然后将SD卡拉出并装入电脑。非常痛苦的是你想要一张带有SD卡槽的卡,你可以在不必拉出slot0卡的情况下使用它。骑自行车不是它。对于NDS来说,这是一张非常好的牌。我不认为它适用于acekard 2所在的NDSi。对于nds和gba来说,你可以用像visualboyadvance这样的模拟器弄湿你的脚,它们并不完全准确,并且很常见的是在模拟器上运行的程序无法在真实硬件上运行,在真实硬件上运行的程序通常可以在模拟器上运行虽然。删除开发卡,重新编程和更换非常痛苦,bootloaders,wifi或任何其他方式,你可以避免这是非常值得的。

Arduinos既有趣又有趣,Lilypad和usb到串行的东西是我推荐的那种,不需要焊接,你可以开始使用而不需要大笔投资。我喜欢armmite pro更好,arduino喜欢足迹但是基于手臂(我会买的唯一的lpc,而不是现在的lpc粉丝)。而且你不需要购买连续产品,只需一根普通的usb电缆和一个跳线(也可能是一个回形针,直到你用跳线焊接)。我刚刚订购了两个,到目前为止,我的代码擦除了已装运的闪存,并允许我加载我想要的任何工作,还得去解决。我继续对olimex sam7-h64和h256(标题板at91sam7s256)感到非常满意,因为avr atmel非常适合开发人员和良好的文档。 Sparkfun是在美国找到以上所有内容的好地方。如果你像我一样使用linux,Sam-ba现在有一个linux版本,windows版本已经存在了一段时间,相当容易擦除和重新编程,比ds或gba更容易,与arduino或armmite pro或类似。

以前的名人微观现在ti stellaris有一些好板。像gba / nds一样,但与我提到的其他电路板不同,有显示器和其他外围设备可供使用,usb是您需要编程的全部内容。拇指模式虽然。 GBA喜欢拇指模式以获得性能,但可以采用任何一种方式。我不记得了,从来没有理解公共汽车的宽度和时间。知道任天堂和他们的廉价拇指可能更好/更快。 lm3s811评估板太容易砖了,1968年并不坏。我不喜欢他们推动开发人员远离源代码并进入为rtos和特定编译器套件量身定制的预构建库。