Open wtchappell opened 3 years ago
If I look up the address in the integration UI and fiddle with it it works as expected; it seems like gym-retro definitely has access to the full address space as data, but it doesn't seem to return that space as an observation.
I suppose I could iterate over every cell and create a data variable for each to make gym-retro pull them out, though it's much more tedious than being able to pull them directly out of the emulator's memory state in Python code.
Is there any way to bind a range of memory to a variable as an array? That might also be a good way to handle it, if possible. I'm mostly trying to avoid binding 200+ separate variables that each want their own name when I'll just pack them back into an array again in my code.
What memory addresses are you trying to access? The GB's RAM is only mapped at 0xC000-0xD000 (and there are banks involved for additional fun sometimes). Other parts of the address space (e.g. 0x0000-0x8000) aren't RAM but are instead the cartridge, VRAM, or other miscellaneous things.
Issue summary
I'm trying to get a game map out of a RAM observation from gym-retro's Game Boy core. I wrote some code to figure out which sections of the background map correspond to the current camera view, and then pull them out of memory to act as input for the AI I'm training. However, the RAM observation returned is much smaller than I was expecting and memory addresses for the background map I figured out from BGB are much larger than the observation returned.
What part of memory is being returned when you use RAM observations with the Game Boy core? I've been looking at the following link for reference, but it appears gym-retro's observation returns some small subset of that. Is there a way to get at the background map memory?
System information