【发布时间】:2010-11-20 09:32:04
【问题描述】:
据我所知,在 DS 上运行的代码必须加载到 RAM 中,从而从已经限制的 4M 中获取。有什么办法可以直接从图片中运行 DS 代码?
【问题讨论】:
标签: runtime nintendo-ds libnds
据我所知,在 DS 上运行的代码必须加载到 RAM 中,从而从已经限制的 4M 中获取。有什么办法可以直接从图片中运行 DS 代码?
【问题讨论】:
标签: runtime nintendo-ds libnds
简短回答:不。
Nintendo DS 的内存映射不包括映射到 DS 卡带中 ROM 的任何位置。
相比之下,在 Game Boy Advance 上,区域 08000000-09FFFFFF 被映射到 Game Pak 中的外部 ROM。这个映射也包含在 DS 中,大概是为了向后兼容并启用一些 GBA 游戏和 DS 游戏交互(例如Castlevania: Dawn of Sorrow easter eggs)。但它仅映射到 GBA 插槽,因此仅映射到 GBA 磁带。
您可以使用此功能从 GBA 插槽中的 GBA 磁带读取并在 DS 模式下从那里运行代码。早期的非官方可重写墨盒就是这样做的。这不是非常面向未来的——它不适用于没有这种 GBA 插槽的 DSi。此外,现在 Slot-2 墨盒更难找到,因为常规 DS 式墨盒更受欢迎和可用。
创建需要运行的代码多于内存的大型游戏的常用方法是使用code overlays 或将您的游戏编写在可以动态加载和卸载代码的scripting-type language 中。
【讨论】: