[找点逆向的思路] 找 GBA 版《星之卡比 梦之泉》的 当前关卡 内存地址

184 天前
 akinoniku

最近在折腾一个强化学习项目,用模拟器跑 GBA 的星之卡比训练 AI 。

需要根据当前关卡设置奖励机制,但翻遍内存都没找到关卡编号藏在哪个地址。

要找出来也不容易,关卡一过,有太多内存数据变了,而且也不确定关卡是通过什么方式存在内存的。

事实上,如果能找到“场景 (scene)”的内存地址也行,可以防止 agent 来回玩同一个场景刷奖励。

感谢

2161 次点击
所在节点    程序员
10 条回复
kimozzz
184 天前
这个不太清楚是什么语言写的,它的汇编架构是什么? 直接用 IDA 反编译找出来他的存储结构就好了 然后一级一级读就好了
levelworm
184 天前
I don't play GBA games, but looks like there are too many Kirby games. Which one are you talking about?

Kirby: Nightmare in Dream Land
This one?
akinoniku
184 天前
@levelworm #2 yep, that's the one. It doesn't really matter which game it is, though.

I would just appreciate some general ideas to help me carry on with my work =v=.
akinoniku
184 天前
@kimozzz #1 GBA 游戏一般是 C 或者直接汇编的,这个大概是 C 吧。

的确读代码会是最直接的方法,搞不好逆向出来之后能扔给 sonnet 分析。
kyokuheishin
184 天前
我记得梦之泉豪华版有个粉丝制作的关卡编辑器,可以去看一下那个怎么实现的
kimozzz
184 天前
@akinoniku 有点麻烦 得先把 GBA 的 ROM 文件搞明白才能提取出来汇编代码 是 arm 架构的
ysc3839
184 天前
GBA 是 ARM 架构的,估计可以拖进 IDA 反编译
SLKun
184 天前
GBA 相关的技术信息可以参考这个, 有很多底层硬件细节: https://problemkaputt.de/gbatek.htm
akinoniku
184 天前
@SLKun 搞个 ML ,都要变成 GBA 专家了。
misdake
184 天前
搜“Kirby's Adventure memory map”,我看有个网站有 RAM/ROM Map ,可以主要看 ram map 和 notes 里的“Rooms”一节

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1118268

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX