Gym-Retro isn’t designed for this sort of dynamic memory lookup, which is (I believe) partially why N64 wasn’t supported. For example, the health of player one might be stored (approximately) anywhere in the block of RAM from 0x80000000 to 0x88000000 (seeĭetails on N64 memory map) however, the pointer to this health value is always stored at 0x80000000 + 0x000A50E8 + 0x00000020 + 0x0000004C. 64) store data in memory in dynamic locations, but the address of that data is stored in a constant location. ![]() This seemed to be the most actively developed libretro N64 core. Gym-Retro incorporates the console emulators (called “cores”, borrowing It turns out the main reasons for that are (i) N64 uses dynamic memory locations for game data, and Gym-Retro is implemented assuming static memory locations and (ii) emulating N64 visuals requires adding OpenGL support (and even with this support emulation is fairly slow). I wasn’t sure when I started why Gym-Retro didn’t already support N64 games. Gym-Retro codebase to allow for N64 emulation. When I started, I considered a few options for implementing the environment, and settled on adapting the The goal of this project was to implement an RL environment for N64 that didn’t have these issues, and that operated like a typical gym environment. Third, the screen-shotting mechanism has some disadvantages, for example it’s difficult to run multiple environments at once. Second, parsing the screen is brittle and not scalable (to more games) compared with reading values from RAM. First, it means that the environment runs at a variable rate with respect to the agent (i.e., the time between taking an action and having it enacted in the environment is variable). It works by running an N64 emulator, taking screenshots of the game, and parsing the screen to compute rewards. There are some existing N64 RL environments. Here’s an example of an RL agent (Pikachu) playing the game AI (level 9 DK):.This post describes some of the challenges in doing that, initial results in training an agent in Super Smash Bros. ![]() I made some changes to the Gym-Retro code to allow for N64 environments. Gym-Retro can almost support N64 emulation, but not quite. ![]() The existing Nintendo 64 Reinforcement learning environments have some disadvantages.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |