有办法改变超级马里奥兄弟(NES)1级世界1的寄存器以从特定位置开始吗?

问题描述 投票:0回答:1

我一直在使用gym-super-mario-bros库(https://github.com/Kautenja/gym-super-mario-bros)并且我试图更改寄存器的值以设置马里奥的位置到世界 1 中 1 级内的特定位置。

我尝试检查RAM信息映射(https://datacrystal.romhacking.net/wiki/Super_Mario_Bros.:RAM_map),但是如果我更改0x6d中的页面信息和页面内的位置(0x86),Mario在游戏开始时始终移动到 0 位置。在库代码中,我修改了

smb_env.py
._x_position

函数内的值
python reinforcement-learning openai-gym nes
1个回答
0
投票

在 NESEnv 类中,有一些函数用于保存模拟器的当前状态,另一个函数用于恢复它。 它们分别命名为 _backup 和 _restore。 你可以这样称呼它们:

env =gym_super_mario_bros.make(版本)

env.unwrapped._backup()

env.unwrapped._restore()

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.