Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Any tips on extracting RAM locations? #40

Closed
neighthan opened this issue Sep 4, 2019 · 5 comments
Closed

Any tips on extracting RAM locations? #40

neighthan opened this issue Sep 4, 2019 · 5 comments

Comments

@neighthan
Copy link

I'd like to see another game or two in the list - do you have any pointers to source code for the games / tips based on previous games about how to find the RAM locations for useful information in the game? (I was initially worried, given the limited memory of the Atari 2600, that multiple pieces of information might be stored in separate bits of the same byte, but from your list, that doesn't seem to be the case, so perhaps it isn't too complicated?).

@ankeshanand
Copy link
Member

ankeshanand commented Sep 4, 2019

Hi @neighthan,

Your intuition is correct and we see this happening in multi-room games. Though information in a particular room is stored in separate RAM locations, a single RAM location can correspond to multiple pieces of information across rooms. Check out the new RAM annotations at https://github.com/ankeshanand/atari-representation-learning/blob/master/aari/new_ram_annotations.py that includes labels for multiple rooms per game.

We originally referred to disassemblies available at http://www.bjars.com/disassemblies.html and some scattered around Atari forums to figure out the RAM mappings.

To try to add new games, I would recommend firing up the Stella Emulator (https://stella-emu.github.io) and playing around. Stella has a RAM map in its debugger screen which allows you to see what RAM bits changed between frames.

image

@neighthan
Copy link
Author

Thanks for the pointers! The disassemblies and the debugger in Stella both look very useful. I'll go ahead and close this; if I do get around to finding out anything new, I'll be sure to submit a PR.

@ankeshanand ankeshanand pinned this issue Sep 8, 2019
@eracah
Copy link
Collaborator

eracah commented Sep 8, 2019

hey @neighthan, which games are you interested in? I might be able to take this into account in picking which games to add

Also I might add this notebook is helpful as well for getting RAMs from games: atari_guess_n_check.ipynb. It allows you to step through the games and see which RAM values have changed at each time step and also filter out RAM values you have already eliminated as not being important.

Lastly, if you do figure out RAM values to a game that is not added yet, feel free to send a pull request, so we can add it to the master list!

@eracah eracah reopened this Sep 8, 2019
@neighthan
Copy link
Author

Thanks for the pointer to the notebook, Evan. I'm most interested in the RoadRunner game right now; we've been doing some proof-of-concept work there that could benefit (for debugging / comparison) from having ground truth features like locations of objects.

@eracah
Copy link
Collaborator

eracah commented Sep 9, 2019

Ah ok. Good to know. If we add RoadRunner, we'll let you know and hopefully likewise!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants