openai / retro

Retro Games in Gym
MIT License
3.41k stars 530 forks source link

Importing Atari Games with python -m retro.import #53

Closed simoninithomas closed 6 years ago

simoninithomas commented 6 years ago

Issue summary

Hello, πŸ˜„

I want to import Atari Space Invaders rom to retro. My rom name is "SpaceInvaders-Atari2600.a26" the same name as presented in the list of possible roms playable in retro and the correct format (.a26)

However, when I want to import this rom to my retro environment using python -m retro.import. I receive this message:

Importing 1 potential games...
Imported 0 games

So I tried to import it manually in Anaconda3\envs\gameplai\Lib\site-packages\retro\data\SpaceInvaders-Atari2600 by copy and paste the rom.

But it didn't work:

FileNotFoundError: Game not found: SpaceInvaders-Atari2600. Did you make sure to import the ROM?

Do you know what should I do to fix this? I have only this problem when I try to import Atari games

Again, this new library is awesome thanks for your work! πŸ‘πŸ‘πŸ‘

System information

simoninithomas commented 6 years ago

I found why πŸŽ‰. it's because you need the good version of the rom, however with Atari 2600 you have tons of different versions (PAL, NTSC, Hack, Non hack) etc.

If you have the same problem, be sure to download the good version of the rom πŸ˜„

I close the issue

MaximusWudy commented 6 years ago

Hi Thomas,

      It's amazing that I am studying your tutorial right now and encounter the same problem! Could you please be more specific about which ROM is a good version. Or could you please attach the ROM file into your github folder?

     I really appreciate your tutorial and look forward to more in the future. Thank you!

Maximus

simoninithomas commented 6 years ago

Hello @MaximusWudy , thanks for your message 😊

Effectively, you need to import the roms.

I found the roms here http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html, by the way you will not need to rename the files.ο»Ώ

You just need to go to the folder were you unzipped your roms and write python -m retro.import . (don't forget the point)

Then, when the roms are imported you will be able to use Atari Space invaders (restart you jupyter notebook).

If you have other questions feel free to ask!

Have a great day,

MaximusWudy commented 6 years ago

Thank you very much! It amazingly worked. And for more people who have the same issue. Here is a detailed tutorial:

  1. Download zip file from http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html
  2. Open Roms.rar > ROMS.rar and find Space Invaders (1980) XXXXXX
  3. Extract all matches (there are 5 of them) into your destin folder
  4. python -m retro.import . (don't forget the point)
  5. One of them worked! And continue with the amazing tutorial here: https://github.com/simoninithomas/Deep_reinforcement_learning_Course/blob/master/DQN/Space%20Invaders/DQN%20Atari%20Space%20Invaders.ipynb
Urinx commented 6 years ago

Thanks @MaximusWudy , I am also studying simoninithomas's tutorial and search for the Atari game rom and finally find this.

seshuthota commented 6 years ago

Hi, I was also facing same issue. But when i tried to do "python -m retro.import . (don't forget the point)" i was getting Importing 0 potential games, imported 0 games. Can you tell me what i am doing wrong?

simoninithomas commented 6 years ago

Hi, @seshuthota what game you're trying to import ?

seshuthota commented 6 years ago

I was trying to import Space Invaders. First i downloaded file from this page http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html

I extracted and inside ROMS folder i found 5 files naming Space Inavders and i copied them to this path Anaconda3\Lib\site-packages\retro\data\SpaceInvaders-Atari2600 and in the command prompt i tried this command "python -m retro.import" but it is printing "Importing 0 potential games, Imported 0 games". What did i do wrong here? Did i got the wrong files? i have attached the files that i was copying. SpaceInavdersGameFiles.zip

simoninithomas commented 6 years ago

Hi, Simply unzip the total archive in a folder go to this folder and type python -m retro.import . (dont forget that point !!!)

bbartling commented 6 years ago

Hi Im struggling with this same thing.. I even tried this process 2 times:

  1. I downloaded these files as posted above http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html
  2. Copied the roms.rar download file to my desktop and right click extract in Linux Mint v18
  3. I have Anaconda 3.6 installed and then right click open in terminal on the new extracted folder python -m retro.import

Importing 0 potential games, imported 0 games

Can someone tell me what I am doing wrong???

endrift commented 6 years ago

You need to add . at the end of the script. It needs a directory name. (I've just pushed changes that let it use files and will search the current directory if no arguments are passed but this isn't in the stable build.)

bbartling commented 6 years ago

Ok I see now what someone else was attempting to state above in the posts with a .

I added this into my terminal command python -m retro.import . and now I can see a Importing 4 potential games, imported 0 games

And I still have the same error trying to run Thomas's code :( Any ideas? Thank you...

samiulextreem commented 6 years ago

you guys need to specify the path you put your files.then run the terminal command.for me it is like python -m retro.import C:\Users\GHOST\Documents\AI_tensorflow\Lib\site-packages\gym_retro-0.6.0.dist-info

hope this helps

HemaZ commented 5 years ago

For Google Colab Notebooks do the following.

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar && unzip Roms/ROMS.zip ! pip3 install gym-retro ! python3 -m retro.import ROMS/

samersallam commented 5 years ago

Very important note: If the ROM has a .bin extension, rename it to have the correct extension for that system.

.md: Sega Genesis (also known as Mega Drive)
.sfc: Super Nintendo Entertainment System (also known as Super Famicom)
.nes: Nintendo Entertainment System (also known as Famicom)
.a26: Atari 2600
.gb: Nintendo Game Boy
.gba: Nintendo Game Boy Advance
.gbc: Nintendo Game Boy Color
.gg: Sega Game Gear
.pce: NEC TurboGrafx-16 (also known as PC Engine)
.sms: Sega Master System

https://github.com/openai/retro#rom-extensions

RinshannKaihou commented 5 years ago

Hi @bbartling I'm facing the same issue.

(tensorflow) D:\Anaconda3\Lib\site-packages\retro\data\SpaceInvaders-Atari2600>python -m retro.import . Importing 4 potential games... Imported 0 games

Have you found the reason?

bbartling commented 5 years ago

@RinshannKaihou no I have not...

sunnyswag commented 5 years ago

you need cd to fold ....../Roms/ROMS ,and then do the following:

pip3 install gym-retro python3 -m retro.import

@RinshannKaihou

angeldroth commented 5 years ago

@RinshannKaihou for me, the solution was using the 1983 space invaders version: "Space Invaders (1983) (CCE) (C-820).bin" NOT any of the 1980 versions. If you copy all 5 space invader titles it reads:

Importing 5 potential games... Importing SpaceInvaders-Atari2600 Imported 1 games

iamycee commented 5 years ago

@simoninithomas Can't we just use gym? import gym env = gym.make('SpaceInvaders-v0')

Is there a difference in the gym-retro and gym environments?

nikhilkaparthi commented 5 years ago

I see no module named retro. Could someone please help

LucasColas commented 4 years ago

For Google Colab Notebooks do the following.

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar && unzip Roms/ROMS.zip ! pip3 install gym-retro ! python3 -m retro.import ROMS/

Didn't work for me...

MoranReznik commented 4 years ago

For Google Colab Notebooks do the following.

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar && unzip Roms/ROMS.zip ! pip3 install gym-retro ! python3 -m retro.import ROMS/

didnt work for me on google colab... dont know what to do.

MoranReznik commented 4 years ago

Hi, Simply unzip the total archive in a folder go to this folder and type python -m retro.import . (dont forget that point !!!)

when you say "dont forget the point", do you mean the point between "retro" and "import", and the point after "import" is just for closing the sentence, or do you mean not forgetting the point after "import"? also, shouldn't we specify a path?

endrift commented 4 years ago

The point after import. That is the path.

dleacock commented 4 years ago

This is how I solved it.

  1. Downloaded Atari ROMs from here
  2. Extracted to any place. Opened and found "Space Invaders (1983) (CCE) (C-820).bin".
  3. Extracted the file in the same directory as my python script.
  4. python -m retro.import . in the same location where I would run the script.
adityakusupati commented 4 years ago

Hi,

Thanks for the solution. Any idea what is the license for these ROMs? Stella is on GNU and Retro is on MIT licenses, but I am not sure about the ROMs. I have seen people use these ROMs for publications but I haven't seen the licenses in their codebases.

Any help would be great

endrift commented 4 years ago

There is no license. I'm pretty sure it's copyright infringement to download and distribute them. However, for a good many of them there isn't a real risk due to the IP being old enough that no one really cares or they're in limbo. For newer games it's rougher, which is why when I made the Retro Contest, I promoted the use of ROMs you could buy on Steam without legal concerns.

adityakusupati commented 4 years ago

Thanks a lot. This helps πŸ‘

alexeytopolnitskiy commented 4 years ago

For those who struggle to use it in colab:

  1. !wget http://www.atarimania.com/roms/Roms.rar Make sure that Roms.rar appeared in files
  2. !unrar x /content/Roms.rar There are must be 2 zip archives: ROMS.zip and HC ROMS.zip
  3. !unzip /content/ROMS.zip ROMS folder must appear
  4. !pip install gym-retro Install retro package
  5. !python3 -m retro.import ROMS/ Import environments
  6. env = retro.make(game="SpaceInvaders-Atari2600") Create environment! Π‘Π½ΠΈΠΌΠΎΠΊ экрана 2020-10-31 Π² 23 10 44
wolfsinem commented 3 years ago

For Google Colab Notebooks do the following.

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar && unzip Roms/ROMS.zip ! pip3 install gym-retro ! python3 -m retro.import ROMS/

Change link to http://www.atarimania.com/rom_collection_archive_atari_2600_roms.html . Worked for me

SAB-6 commented 3 years ago

This might help someone working in colab; creating a new directory works for me

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar 
!mkdir <new_dir>
!unzip Roms/ROMS.zip -d <new_dir>
! pip install gym-retro
!python3 -m retro.import <new_dir>/ROMS/
haneensalameh66 commented 2 years ago

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar && unzip Roms/ROMS.zip ! pip3 install gym-retro ! python3 -m retro.import ROMS/

hey, did you manage to solve this issue with colab ?

SAB-6 commented 2 years ago

This might help someone working in colab; creating a new directory works for me

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar 
!mkdir <new_dir>
!unzip Roms/ROMS.zip -d <new_dir>
! pip install gym-retro
!python3 -m retro.import <new_dir>/ROMS/

This works for me

haneensalameh66 commented 2 years ago

! wget http://www.atarimania.com/roms/Roms.rar && unrar x Roms.rar !mkdir !unzip Roms/ROMS.zip -d ! pip install gym-retro !python3 -m retro.import /ROMS/

unfortunately, it didn't work for me. i had this error message : FileNotFoundError: Game not found: SpaceInvaders-Atari2600. Did you make sure to import the ROM?