Coder Social home page Coder Social logo

nadavbh12 / retro-learning-environment Goto Github PK

View Code? Open in Web Editor NEW
184.0 21.0 40.0 5.1 MB

The Retro Learning Environment (RLE) -- a learning framework for AI

License: Other

CMake 1.50% C 17.88% C++ 77.20% Makefile 0.71% Python 2.66% Shell 0.04%
reinforcement-learning game-engine machine machine-learning dqn

retro-learning-environment's Introduction

DEPRECATED

RLE has been succeeded by the wonderful work of the folks at OpenAI under their repository Gym-retro. Since they now support all the consoles and games that we supported and most of our features, there's no reason to maintain this one.

Retro-Learning-Environment

A learning framework based on the Arcade Learning Environment (ALE) and Libretro (Stella for Atari and SNES9X for the Super Nintendo Entertainment System).

The environment provides an interface to training and evaluating AI algorithms against different console games using its screen as input.

The currently supported games can be found in the src/games/supported directory . Some popular games include: Mortal Kombat, Super Mario All Stars, F-Zero, Castle Wolfenstein and Gradius III.

A paper is available for RLE at http://arxiv.org/abs/1611.02205. If you use RLE in your publication, please use the following BibTex entry:

@article{bhonker2016playing,
  title = {Playing SNES in the Retro Learning Environment},
  author = {Bhonker, Nadav and Rozenberg, Shai and Hubara, Itay},
  journal = {arXiv preprint arXiv:1611.02205},
  year = {2016}
}

Quick Start

Install main dependencies:

sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev cmake

To install as a Gym environment:
Go to the gym-rle repository and follow the instructions there.

To install the python interface:
Either install via PyPi:

$ pip install rle-python-interface

or by cloning the repository and running the following:

$ pip install .
or
$ pip install --user .

To use the shared_library interface:

$ mkdir build && cd build
$ cmake -DUSE_SDL=ON -DBUILD_EXAMPLES=ON ..
$ make -j4

To install the lua (Torch) interface, the additional alewrap module is required:

luarocks install https://raw.githubusercontent.com/nadavbh12/Retro-Learning-Environment/master/ale-2-0.rockspec
luarocks install https://raw.githubusercontent.com/nadavbh12/alewrap/master/alewrap-0-0.rockspec

DQN Implementations Using RLE

Acknowledgements

  • @mgbellemare for his work on ALE and his useful advice.
  • @Alcaro and the @libretro community for their assistance in incorporating their work into our framework.

retro-learning-environment's People

Contributors

dcelix avatar hmightypirate avatar itay-hubara avatar nadavbh12 avatar pisiiki avatar rafaelcp avatar rz5 avatar shairoz avatar stanislavvolodarskiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

retro-learning-environment's Issues

deep_q_rl error

After I ran the following command,

$ python run_nips.py --rom mortal_kombat.sfc --core snes

I encountered this error,

Using gpu device 0: GeForce GTX 780 (CNMeM is disabled, cuDNN 5105)
/home/localadmin/anaconda/lib/python2.7/site-packages/theano/sandbox/cuda/init.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5.
warnings.warn(warn)
Warning: couldn't load settings file:
R.L.E: Retro Learning Environment (version 1.0.0)
[Based upon the Arcade Learning Environment (A.L.E)]
[Powered by LibRetro]
Use -help for help screen.
[inf] Frontend supports RGB565 - will use that instead of XRGB1555.
Sound buffer size: 128000 (32000 samples)
Core loaded
[inf] No ROM file header found.
Map_LoROMMap
PPU.RenderSub = 0
PPU.FullClipping = 1
Settings.Transparency = 1
Settings.SpeedhackGameID = 0
PPU.SFXSpeedupHack = 0
coldata_update_screen = 1
[inf] "MORTAL KOMBAT" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:____, CRC32:DEF42945
Running ROM file...
Random seed is 65
INFO:root:OPENING mortal_kombat_02-08-17-21_0p0002_0p_95/results.csv
INFO:root:training epoch: 1 steps_left: 50000
Traceback (most recent call last):
File "run_nips.py", line 62, in
launcher.launch(sys.argv[1:], Defaults, doc)
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/launcher.py", line 306, in launch
experiment.run()
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_experiment.py", line 55, in run
self.run_epoch(epoch, self.epoch_length)
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_experiment.py", line 86, in run_epoch
_, num_steps = self.run_episode(steps_left, testing)
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_experiment.py", line 169, in run_episode
action_a = self.agent.step(reward, self.get_observation())
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_agent.py", line 198, in step
np.clip(reward, -1, 1))
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_agent.py", line 212, in _choose_action
data_set.add_sample(self.last_img, self.last_action, reward, False)
File "/media/localadmin/DATA/git/deep_q_rl/deep_q_rl/ale_data_set.py", line 57, in add_sample
self.imgs[self.top] = img
ValueError: could not broadcast input array from shape (10,84) into shape (84,84)

I am sorry to post the issue of the deep_q_rl here because I could not create the issue there.

[Question] What is the core_file in the python example?

Hi, I've been trying to run the example_python file, and I was stuck with the core_file parameter, I was wondering which core_file is it? And is it a file that I should download from elsewhere? At first i thought it was a file inside the lib itself, but I couldn't get myself to find it.
Also I was considering to use this API in an academic project, so I would like to know if is there any documentation available .
Thanks in advance.

Python3 compatability

Hello,

you are using ctypes, and python2 would use bytestrings, however python3 uses unicode and strings are sent as such. Therefore various errors like ctypes.ArgumentError: argument 2: <class 'TypeError'>: wrong type will occur.

or

Illegal instruction (core dumped) when loading the ROM

Hi, I got the following error when try to load the ROM, can you please assist?
(FYI : can compile the code successfully using the branch 1.0.2)

[inf] "MORTAL KOMBAT" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:____, CRC32:0BD8EC55
Running ROM file...
Random seed is 123
Illegal instruction (core dumped)

Using gdb debugger I got the following extra information:

R.L.E: Retro Learning Environment (version 1.0.0)
[Based upon the Arcade Learning Environment (A.L.E)]
[Powered by LibRetro]
Use -help for help screen.
[inf] Frontend supports RGB565 - will use that instead of XRGB1555.
Sound buffer size: 128000 (32000 samples)
Core loaded
[inf] No ROM file header found.
Map_LoROMMap
PPU.RenderSub = 0
PPU.FullClipping = 1
Settings.Transparency = 1
Settings.SpeedhackGameID = 0
PPU.SFXSpeedupHack = 0
coldata_update_screen = 1
[inf] "MORTAL KOMBAT" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:____, CRC32:0BD8EC55
Running ROM file...
Random seed is 123

Program received signal SIGILL, Illegal instruction.
core_audio_sample_batch (data=0x7fffdcf0f9b0 <S9xAudioCallback.audio_buf>, frames=511)
    at /home/ben/deep_q_rl/build/RLE/src/environment/RetroAgent.cpp:316
316	/home/ben/deep_q_rl/build/RLE/src/environment/RetroAgent.cpp: No such file or directory.

Python quick start

I have troubles using the python interface.
Can you give a more detailed walkthrough of how to get it to work?

After
mkdir build && cd build
it cannot find the CMakeLists.txt file. Should I just build it from the root?

In the python_example.py I need to import the interface like this:
from rle_python_interface.rle_python_interface import RLEInterface
In order to get RLEInterface.

But when I run the file, I get
File "/home/noju/Documents/Retro-Learning-Environment/rle_python_interface/rle_python_interface.py", line 108, in setInt rle_lib.setInt(self.obj, key, value) ctypes.ArgumentError: argument 2: <class 'TypeError'>: wrong type

Snes9X

Hello, i would like to know if there is some way to set the options of the snes9x emulator, such as background removal, filters disabling and fast-foward.

Test with DQN tensorflow version

I try to modify the tensorflow DQN ALE version this repo to use RLE instead of ALE. However, I got the Segmentation fault error as follows,

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
Arguments: Namespace(compress_replay=False, core='./snes9x2010_libretro.so', eval_epoch_steps=125000, learning_rate=0.00025, model=None, normalize_weights=True, observation_steps=50000, prioritized_replay=False, replay_capacity=1000000, rom='./mortal_kombat.sfc', save_model_freq=10000, screen_capture_freq=250, target_model_update_freq=10000, train_epoch_steps=250000)
Warning: couldn't load settings file:
R.L.E: Retro Learning Environment (version 1.0.0)
[Based upon the Arcade Learning Environment (A.L.E)]
[Powered by LibRetro]
Use -help for help screen.
[inf] Frontend supports RGB565 - will use that instead of XRGB1555.
Sound buffer size: 128000 (32000 samples)
Core loaded
[inf] No ROM file header found.
Map_LoROMMap
PPU.RenderSub = 0
PPU.FullClipping = 1
Settings.Transparency = 1
Settings.SpeedhackGameID = 0
PPU.SFXSpeedupHack = 0
coldata_update_screen = 1
[inf] "MORTAL KOMBAT" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:____, CRC32:DEF42945
Running ROM file...
Random seed is 65
Segmentation fault (core dumped)

I did rename the rom file to agree with the name in the header file.

Please give me some advices?

In Street Fighter II, rle.game_over() automatically set to true in the middle of the game

Thanks again for the great work. In Street Fighter II. I notice that the game will automatically terminate in the middle of the episode. To be specific: rle.game_over() will automatic turn to true in the middle of the game. I looked at src/games/supported/StreetFighterII.cpp but I didn't aware where the terminal condition is set. Could you please help?

Compile error

It stopped compiling at 17% without a clue,

[ 15%] No install step for 'genesis_plus_gx_libretro'
[ 15%] Completed 'genesis_plus_gx_libretro'
[ 15%] Built target genesis_plus_gx_libretro
[ 16%] No install step for 'snes9x2010_libretro'
[ 17%] Completed 'snes9x2010_libretro'
[ 17%] Built target snes9x2010_libretro
make: *** [all] Error 2

Any suggestion please?

Problem with python installer

Processing /home/isaac/Retro-Learning-Environment
Building wheels for collected packages: rle-python-interface
  Running setup.py bdist_wheel for rle-python-interface ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-Unqs1d-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpBCQpSDpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  cmake ../ -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON=ON
  CMake Error: The current CMakeCache.txt directory /tmp/pip-Unqs1d-build/build/CMakeCache.txt is different than the directory /home/isaac/Retro-Learning-Environment/build where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt
  CMake Error: The source "/tmp/pip-Unqs1d-build/CMakeLists.txt" does not match the source "/home/isaac/Retro-Learning-Environment/CMakeLists.txt" used to generate cache.  Re-run cmake with a different source directory.
  Error while running cmake
  
  ----------------------------------------
  Failed building wheel for rle-python-interface
  Running setup.py clean for rle-python-interface
Failed to build rle-python-interface
Installing collected packages: rle-python-interface
  Running setup.py install for rle-python-interface ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-Unqs1d-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Aoycdm-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    cmake ../ -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON=ON
    CMake Error: The current CMakeCache.txt directory /tmp/pip-Unqs1d-build/build/CMakeCache.txt is different than the directory /home/isaac/Retro-Learning-Environment/build where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt
    CMake Error: The source "/tmp/pip-Unqs1d-build/CMakeLists.txt" does not match the source "/home/isaac/Retro-Learning-Environment/CMakeLists.txt" used to generate cache.  Re-run cmake with a different source directory.
    Error while running cmake
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-Unqs1d-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Aoycdm-record/install-record.txt --single-version-externally-managed --compile" failed with error code 255 in /tmp/pip-Unqs1d-build/

I found this problem while trying to install the lib in Python2, I have a regular up to date ubuntu OS.

Regards.

Trouble installing on AWS

Hi Nadav,

Sorry to bother you with this again. I'm now trying to install RLE on AWS EC2. I get the following errors. Do you have any tips? Thanks.

ubuntu@ip-172-31-48-241:~/Retro-Learning-Environment/build$ make -j 4
Scanning dependencies of target genesis_plus_gx_libretro
Scanning dependencies of target rle-lib
Scanning dependencies of target rle-c-lib
Scanning dependencies of target snes9x2010_libretro
[ 1%] [ 1%] Creating directories for 'genesis_plus_gx_libretro'
Creating directories for 'snes9x2010_libretro'
[ 2%] [ 3%] Building CXX object CMakeFiles/rle-lib.dir/src/rle_interface.cpp.o
Building CXX object CMakeFiles/rle-c-lib.dir/rle_python_interface/rle_c_wrapper.cpp.o
[ 4%] Performing download step (git clone) for 'genesis_plus_gx_libretro'
[ 5%] Performing download step (git clone) for 'snes9x2010_libretro'
Cloning into 'Genesis-Plus-GX'...
Cloning into 'snes9x2010'...
remote: Counting objects: 9257, done.
remote: Counting objects: 7096, done.
remote: Total 7096 (delta 0), reused 0 (delta 0), pack-reused 7096
Receiving objects: 100% (7096/7096), 31.21 MiB | 16.17 MiB/s, done.
Resolving deltas: 100% (4959/4959), done.9 MiB | 13.42 MiB/s
remote: Total 9257 (delta 0), reused 0 (delta 0), pack-reused 9256
Receiving objects: 100% (9257/9257), 53.84 MiB | 15.17 MiB/s, done.
Resolving deltas: 100% (6671/6671), done.
Checking connectivity... done.
Already on 'master'
Your branch is up-to-date with 'origin/master'.
Checking connectivity... done.
[ 6%] No patch step for 'snes9x2010_libretro'
[ 7%] No update step for 'snes9x2010_libretro'
[ 8%] No configure step for 'snes9x2010_libretro'
[ 9%] Performing build step for 'snes9x2010_libretro'
src/apu.c: In function ‘spc_copier_copy_int’:
src/apu.c:1240:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

SET_LE16( s, state );
^
src/apu.c:1242:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

return GET_LE16( s );
^
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 10%] No patch step for 'genesis_plus_gx_libretro'
[ 11%] No update step for 'genesis_plus_gx_libretro'
[ 11%] No configure step for 'genesis_plus_gx_libretro'
[ 12%] Performing build step for 'genesis_plus_gx_libretro'
make[3]: *** No targets specified and no makefile found. Stop.
make[2]: *** [genesis_plus_gx_libretro-prefix/src/genesis_plus_gx_libretro-stamp/genesis_plus_gx_libretro-build] Error 2
make[1]: *** [CMakeFiles/genesis_plus_gx_libretro.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 13%] Building CXX object CMakeFiles/rle-c-lib.dir/src/rle_interface.cpp.o
src/dsp.c: In function ‘DSP4_READ_WORD’:
src/dsp.c:3307:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

out = READ_WORD(DSP4.parameters + DSP4.in_index);
^
src/dsp.c: In function ‘DSP4_READ_DWORD’:
src/dsp.c:3317:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

out = READ_DWORD(DSP4.parameters + DSP4.in_index);
^
src/dsp.c: In function ‘DSP4_OP01’:
src/dsp.c:3416:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD((DSP4.world_x + DSP4.world_xenv) >> 16);
^
src/dsp.c:3417:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_x2);
^
src/dsp.c:3418:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.world_y >> 16);
^
src/dsp.c:3419:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_y2);
^
src/dsp.c:3444:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^
src/dsp.c:3470:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(DSP4.poly_ptr[0][0]);
 ^

src/dsp.c:3471:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((y_scroll + 0x8000) >> 16);
 ^

src/dsp.c:3472:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((x_scroll + 0x8000) >> 16);
 ^

src/dsp.c: In function ‘DSP4_OP07’:
src/dsp.c:3634:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_x2);
^
src/dsp.c:3635:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_y2);
^
src/dsp.c:3660:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^
src/dsp.c:3686:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(DSP4.poly_ptr[0][0]);
 ^

src/dsp.c:3687:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((y_scroll + 0x8000) >> 16);
 ^

src/dsp.c:3688:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((x_scroll + 0x8000) >> 16);
 ^

src/dsp.c: In function ‘DSP4_OP08’:
src/dsp.c:3861:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_BYTE(win_left & 0xff);
^
src/dsp.c:3862:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_BYTE(win_right & 0xff);
^
src/dsp.c:3941:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^

src/dsp.c:4022:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

  DSP4_WRITE_WORD(DSP4.poly_ptr[polygon][0]);
  ^

src/dsp.c:4023:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

  DSP4_WRITE_BYTE(x_left  & 0xff);
  ^

src/dsp.c:4024:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

  DSP4_WRITE_BYTE(x_right & 0xff);
  ^

src/dsp.c:4042:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(0);
^
src/dsp.c: In function ‘DSP4_OP0B’:
src/dsp.c:4092:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(1);
^
src/dsp.c:4095:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_BYTE(sp_x & 0xff);
^
src/dsp.c:4096:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_BYTE(sp_y & 0xff);
^
src/dsp.c:4097:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(sp_attr);
^
src/dsp.c:4119:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(0);
^
src/dsp.c: In function ‘DSP4_OP09’:
src/dsp.c:4233:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(world_spx);
^

src/dsp.c: In function ‘DSP4_OP0D’:
src/dsp.c:4444:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD((DSP4.world_x + DSP4.world_xenv) >> 16);
^
src/dsp.c:4445:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_x2);
^
src/dsp.c:4446:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.world_y >> 16);
^
src/dsp.c:4447:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_y2);
^
src/dsp.c:4473:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^
src/dsp.c:4500:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(DSP4.poly_ptr[0][0]);
 ^

src/dsp.c:4501:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((y_scroll + 0x8000) >> 16);
 ^

src/dsp.c:4502:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((x_scroll + 0x8000) >> 16);
 ^

src/dsp.c: In function ‘DSP4_OP0F’:
src/dsp.c:4636:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD((DSP4.world_x + DSP4.world_xenv) >> 16);
^
src/dsp.c:4637:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_x2);
^
src/dsp.c:4638:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.world_y >> 16);
^
src/dsp.c:4639:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_y2);
^
src/dsp.c:4665:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^
src/dsp.c:4701:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

  DSP4_WRITE_WORD(color);
  ^

src/dsp.c:4725:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(DSP4.poly_ptr[0][0]);
 ^

src/dsp.c:4726:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((y_scroll + 0x8000) >> 16);
 ^

src/dsp.c:4727:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((x_scroll + 0x8000) >> 16);
 ^

src/dsp.c: In function ‘DSP4_OP10’:
src/dsp.c:4872:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_x2);
^
src/dsp.c:4873:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.view_y2);
^
src/dsp.c:4898:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

DSP4_WRITE_WORD(DSP4.segments);
^
src/dsp.c:4931:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

  DSP4_WRITE_WORD(color);
  ^

src/dsp.c:4962:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(DSP4.poly_ptr[0][0]);
 ^

src/dsp.c:4963:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((y_scroll + 0x8000) >> 16);
 ^

src/dsp.c:4964:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD((x_scroll + 0x8000) >> 16);
 ^

src/dsp.c: In function ‘DSP4_SetByte’:
src/dsp.c:5096:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(product);
 ^

src/dsp.c:5097:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(product >> 16);
 ^

src/dsp.c:5149:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(out1a);
 ^

src/dsp.c:5150:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(out2a);
 ^

src/dsp.c:5151:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(out3a);
 ^

src/dsp.c:5152:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(out4a);
 ^

src/dsp.c:5204:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

 DSP4_WRITE_WORD(m);
 ^

[ 14%] [ 15%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/Constants.cpp.o
Building CXX object CMakeFiles/rle-lib.dir/src/common/Constants.cpp.o
[ 16%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/SoundExporter.cpp.o
[ 17%] Building CXX object CMakeFiles/rle-lib.dir/src/common/SoundExporter.cpp.o
[ 18%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/display_screen.cpp.o
[ 19%] Building CXX object CMakeFiles/rle-lib.dir/src/common/display_screen.cpp.o
[ 19%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/ScreenExporter.cpp.o
[ 19%] Building CXX object CMakeFiles/rle-lib.dir/src/common/ScreenExporter.cpp.o
[ 20%] [ 21%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/Log.cpp.o
Building CXX object CMakeFiles/rle-lib.dir/src/common/Log.cpp.o
[ 22%] [ 23%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/phosphor_blend.cpp.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/phosphor_blend.cpp.o
[ 24%] [ 25%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/FSNode.cxx.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/FSNode.cxx.o
[ 26%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/RetroAgent.cpp.o
src/memmap.c: In function ‘HeaderRemove’:
src/memmap.c:747:3: warning: value computed is not used [-Wunused-value]
(headerCount)++;
^
[ 27%] [ 28%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/RleSystem.cxx.o
Building CXX object CMakeFiles/rle-lib.dir/src/environment/RetroAgent.cpp.o
[ 28%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/retro_environment.cpp.o
[ 29%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_screen.cpp.o
[ 30%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/RleSystem.cxx.o
[ 31%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Deserializer.cxx.o
/home/ubuntu/Retro-Learning-Environment/src/environment/Deserializer.cxx: In member function ‘void Deserializer::getIntArray(int
, size_t&)’:
/home/ubuntu/Retro-Learning-Environment/src/environment/Deserializer.cxx:100:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0 ; i < size ; i++){
^
[ 32%] [ 33%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Serializer.cxx.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Settings.cxx.o
[ 33%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/retro_environment.cpp.o
[ 34%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_ram.cpp.o
[ 35%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_state.cpp.o
[ 35%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Random.cxx.o
[ 36%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_screen.cpp.o
[ 37%] [ 38%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/SnesSettings.cpp.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/games/AtariSettings.cpp.o
[ 39%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Deserializer.cxx.o
/home/ubuntu/Retro-Learning-Environment/src/environment/Deserializer.cxx: In member function ‘void Deserializer::getIntArray(int*, size_t&)’:
/home/ubuntu/Retro-Learning-Environment/src/environment/Deserializer.cxx:100:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0 ; i < size ; i++){
^
[ 40%] [ 41%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/RomUtils.cpp.o
[ 42%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Settings.cxx.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/games/GenesisSettings.cpp.o
[ 43%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/RomSettings.cpp.o
[ 43%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/Roms.cpp.o
[ 44%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/ClassicKong.cpp.o
[ 45%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FZero.cpp.o
[ 46%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Serializer.cxx.o
[ 47%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_ram.cpp.o
[ 48%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/StreetFighterII.cpp.o
[ 49%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_state.cpp.o
[ 50%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/MortalKombat.cpp.o
[ 50%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Random.cxx.o
[ 51%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Wolfenstein.cpp.o
[ 52%] Building CXX object CMakeFiles/rle-lib.dir/src/games/SnesSettings.cpp.o
[ 53%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/AtariCollection.cpp.o
[ 53%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Seaquest.cpp.o
[ 54%] Building CXX object CMakeFiles/rle-lib.dir/src/games/AtariSettings.cpp.o
[ 55%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/TetrisAndDrMario.cpp.o
[ 56%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/NBAGiveNGo.cpp.o
[ 57%] Building CXX object CMakeFiles/rle-lib.dir/src/games/RomUtils.cpp.o
[ 58%] Building CXX object CMakeFiles/rle-lib.dir/src/games/GenesisSettings.cpp.o
[ 59%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Boxing.cpp.o
[ 60%] Building CXX object CMakeFiles/rle-lib.dir/src/games/RomSettings.cpp.o
[ 61%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Aladdin.cpp.o
[ 62%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FinalFight.cpp.o
[ 62%] Building CXX object CMakeFiles/rle-lib.dir/src/games/Roms.cpp.o
[ 62%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SonicTheHedgehog.cpp.o
[ 63%] [ 64%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioAllStarsNoRight.cpp.o
Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/ClassicKong.cpp.o
[ 65%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/MortalKombat2Players.cpp.o
[ 66%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioAllStars.cpp.o
[ 67%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FZero.cpp.o
[ 68%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/GradiusIII.cpp.o
[ 69%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/BustAMove.cpp.o
[ 70%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/StreetFighterII.cpp.o
[ 71%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioWorld.cpp.o
[ 71%] [ 72%] [ 73%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/MortalKombat.cpp.o
Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FZeroNoSpeed.cpp.o
Building C object CMakeFiles/rle-c-lib.dir/src/external/TinyMT/tinymt32.c.o
[ 74%] Building CXX object CMakeFiles/rle-c-lib.dir/src/os_dependent/FSNodePOSIX.cxx.o
libretro/libretro.c: In function ‘snes_init’:
libretro/libretro.c:619:18: warning: ignoring return value of ‘posix_memalign’, declared with attribute warn_unused_result [-Wunused-result]
posix_memalign((void**)&GFX.Screen, 16, GFX.Pitch * 512 * sizeof(uint16));
^
Linking CXX shared library ../rle_python_interface/librle_c.so
[ 75%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Wolfenstein.cpp.o
[ 76%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/AtariCollection.cpp.o
[ 76%] Built target rle-c-lib
[ 76%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Seaquest.cpp.o
[ 77%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/TetrisAndDrMario.cpp.o
[ 78%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/NBAGiveNGo.cpp.o
[ 79%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Boxing.cpp.o
[ 80%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Aladdin.cpp.o
[ 81%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FinalFight.cpp.o
[ 81%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SonicTheHedgehog.cpp.o
[ 82%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioAllStarsNoRight.cpp.o
[ 83%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/MortalKombat2Players.cpp.o
[ 84%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioAllStars.cpp.o
[ 85%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/GradiusIII.cpp.o
[ 86%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/BustAMove.cpp.o
[ 87%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioWorld.cpp.o
[ 87%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FZeroNoSpeed.cpp.o
[ 88%] Building C object CMakeFiles/rle-lib.dir/src/external/TinyMT/tinymt32.c.o
[ 89%] Building CXX object CMakeFiles/rle-lib.dir/src/os_dependent/FSNodePOSIX.cxx.o
Linking CXX shared library ../librle.so
[ 89%] Built target rle-lib
[ 90%] No install step for 'snes9x2010_libretro'
[ 91%] Completed 'snes9x2010_libretro'
[ 91%] Built target snes9x2010_libretro
make: *** [all] Error 2

How to run python example on Linux

Hi, I've got some troubles with the given example in:

~/doc/examples

I try to run:

python_example.py path_to_game_rom

But it fails with issues wrt argv[2], where I should provide some core_file (*.so)

I try again:

python_example.py path_to_game_rom path_to_librle_c.so

But it fails again with this error:

Failed to load symbol 'retro_init'': ../../rle_python_interface/librle_c.so: undefined symbol: retro_init

It seems to that there should be some corrections wrt symbols
(it can be linux specific as previous commit to setup.py from my buddy)

fix setup.py

Please change
cmake_args = ' -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON=ON'
to
cmake_args = ' -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON=ON -DUSE_SDL=ON'
and make the world a better place. Great Work BTW!

Can not get SDL display to work with python example.

Hi, I'm having issues getting the SDL display to work for the python implementation. I feel I've followed steps correctly by looking at the original docs as well as a few solved solutions but I'm still not having any luck. Here is what I have done:

  1. Running Ubuntu 16.04
  2. sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev cmake
  3. added -DUSE_SDL=ON to the cmake args in setup.py
  4. ran "pip install ."
  5. changed "USE_SDL = False" to "USE_SDL = True" in python_example.py
  6. python doc/examples/python_example.py roms/classic_kong.smc snes
  7. Output:
    R.L.E: Retro Learning Environment (version 1.1.1)
    [Based upon the Arcade Learning Environment (A.L.E)]
    [Powered by LibRetro]
    Use -help for help screen.
    [inf] Frontend supports RGB565 - will use that instead of XRGB1555.
    Sound buffer size: 128000 (32000 samples)
    Core loaded
    [inf] No ROM file header found.
    Map_LoROMMap
    PPU.RenderSub = 1
    PPU.FullClipping = 1
    Settings.Transparency = 1
    Settings.SpeedhackGameID = 0
    PPU.SFXSpeedupHack = 0
    coldata_update_screen = 1
    [inf] "Classic Kong Complete0" [checksum ok] LoROM, 2Mbits, ROM, NTSC, SRAM:0Kbits, ID:SNES, CRC32:8FA368BE
    Running ROM file...
    Random seed is 123
    ('Episode', 0, 'ended with score:', 200)
    ('Episode', 1, 'ended with score:', 500)
    ('Episode', 2, 'ended with score:', 1900)
    ('Episode', 3, 'ended with score:', 1900)
    ('Episode', 4, 'ended with score:', 800)
    ('Episode', 5, 'ended with score:', 100)
    ('Episode', 6, 'ended with score:', 400)
    ('Episode', 7, 'ended with score:', 900)
    ('Episode', 8, 'ended with score:', 400)
    ('Episode', 9, 'ended with score:', 100)

It runs just fine, however, there is no graphical display.

python_interface gives wrong game screen dimensions

  • Ubuntu 16.04
  • using python interface to work with RLE.
  • I used the option "-DUSE_SDL=ON" in setup.py to see actual game screen
  • I run "sonic_the_hedgehog"

I tried to get grayscale game screen by calling the following method of the python interface:
def getScreenGrayscale(self, screen_data=None)
, and there was two problems (, which is actually coming from one source)

It gave me an array of grayscale pixel data, however, the screen was totally distorted.
I played with it for a while, I noticed that it's because the method initializes screen_data variable with wrong number of pixels in a row and col when I did not pass screen_data variable.
I could guess right width (640 px), and able to get clean data by passing screen_data with right dimensions.

Also, I noticed another problem: Even though I pass screen_data variable initialized in right size, the screen_data array is not fully filled, but have many zeros in the tail.

When getScreenGrayscale is called in the python interface, it calls
void getScreenGrayscale(RLEInterface *rle, unsigned char *output_buffer) in rle_c_wrapper.cpp which calls :
size_t w = rle->getScreen().width();
size_t h = rle->getScreen().height();

The cause of the problem is that the last two methods gives wrong values.
I could pass screen_data numpy matrix to the python interface method, but when c method received the matrix, the matrix is viewed as an one dimensional pointer variable, which does not have dimensional information, and the right dimension that even explicitly specified in python-side could not passed to c-side.

For the same reason, the following methods in rle_c_wrapper.h also does not work properly.
int getScreenWidth(RLEInterface *rle){return rle->getScreen().width();}
int getScreenHeight(RLEInterface *rle){return rle->getScreen().height();}
, which is being used in following methods in rle_python_interface.py
def getScreenRGB(self, screen_data=none)
def getScreenGrayscale(self, screen_data=none)

I made a method
void getScreenGrayscaleWithDims(RLEInterface*, unsigned char*, size_t width, size_t height)
and used it instead of
void getScreenGrayscale(RLEInterface *rle, unsigned char *output_buffer)
in order to specify dimensions explicitly
, and it works fine.
I could get screen_data in undistorted and right size with fully filled pixel data.

Though ultimately Screen.width(), height() methods need to be fixed, let me send a pull request if it is looking good.

SDL interface not displaying game screen with display_screen set to True

Hi I get the following output which includes the score outputs from the game, but although display_screen and USE_SDL are set to true no game screen is returned

tim:~/Downloads/Retro-Learning-Environment/doc/examples$ python python_example.py ../../roms/classic_kong.smc snes ../../snes9x2010/snes9x2010_libretro.so
R.L.E: Retro Learning Environment (version 1.1.1)
[Based upon the Arcade Learning Environment (A.L.E)]
[Powered by LibRetro]
Use -help for help screen.
[inf] Frontend supports RGB565 - will use that instead of XRGB1555.
Sound buffer size: 128000 (32000 samples)
Core loaded
[inf] No ROM file header found.
Map_LoROMMap
PPU.RenderSub = 1
PPU.FullClipping = 1
Settings.Transparency = 1
Settings.SpeedhackGameID = 0
PPU.SFXSpeedupHack = 0
coldata_update_screen = 1
[inf] "Classic Kong Complete0" [checksum ok] LoROM, 2Mbits, ROM, NTSC, SRAM:0Kbits, ID:SNES, CRC32:8FA368BE
Running ROM file...
Random seed is 123
Episode 0 ended with score: 1600
Episode 1 ended with score: 300
Episode 2 ended with score: 400
Episode 3 ended with score: 300
Episode 4 ended with score: 200
Episode 5 ended with score: 400
Episode 6 ended with score: 300
Episode 7 ended with score: 2100
Episode 8 ended with score: 200
Episode 9 ended with score: 300

Trouble installing on mac osx (Yosemite, 10.10.5)

I cloned the repo and followed the installation instructions, but the installation failed. I appreciate any help.

Here's the output:

(rle) :build jmichaux$ make -j 4
Scanning dependencies of target genesis_plus_gx_libretro
Scanning dependencies of target stella_libretro
Scanning dependencies of target rle-lib
Scanning dependencies of target rle-c-lib
[ 0%] Creating directories for 'stella_libretro'
[ 1%] Creating directories for 'genesis_plus_gx_libretro'
[ 2%] Performing download step (git clone) for 'genesis_plus_gx_libretro'
[ 3%] Performing download step (git clone) for 'stella_libretro'
Cloning into 'stella-libretro'...
Cloning into 'Genesis-Plus-GX'...
[ 4%] Building CXX object CMakeFiles/rle-lib.dir/src/rle_interface.cpp.o
[ 5%] Building CXX object CMakeFiles/rle-c-lib.dir/rle_python_interface/rle_c_wrapper.cpp.o
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 6%] Building CXX object CMakeFiles/rle-c-lib.dir/src/rle_interface.cpp.o
In file included from /Users/jmichaux/Retro-Learning-Environment/src/rle_interface.cpp:32:
In file included from /Users/jmichaux/Retro-Learning-Environment/src/environment/RleSystem.hxx:37:
In file included from /Users/jmichaux/Retro-Learning-Environment/src/environment/../common/display_screen.h:24:
/Users/jmichaux/Retro-Learning-Environment/src/common/../environment/RetroAgent.h:10:10: fatal error:
'SDL/SDL_rotozoom.h' file not found
#include "SDL/SDL_rotozoom.h"
^
1 error generated.
make[2]: *** [CMakeFiles/rle-lib.dir/src/rle_interface.cpp.o] Error 1
make[1]: *** [CMakeFiles/rle-lib.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 7%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/Constants.cpp.o
In file included from /Users/jmichaux/Retro-Learning-Environment/src/common/Constants.cpp:16:
In file included from /Users/jmichaux/Retro-Learning-Environment/src/common/Constants.h:20:
/Users/jmichaux/Retro-Learning-Environment/src/common/DebugMacros.h:20:17: warning: using directive refers to
implicitly-defined namespace 'std'
using namespace std;
^
[ 8%] No patch step for 'stella_libretro'
[ 9%] No update step for 'stella_libretro'
[ 10%] No configure step for 'stella_libretro'
[ 11%] Performing build step for 'stella_libretro'
In file included from /Users/jmichaux/Retro-Learning-Environment/src/rle_interface.cpp:32:
In file included from /Users/jmichaux/Retro-Learning-Environment/src/environment/RleSystem.hxx:37:
In file included from /Users/jmichaux/Retro-Learning-Environment/src/environment/../common/display_screen.h:24:
/Users/jmichaux/Retro-Learning-Environment/src/common/../environment/RetroAgent.h:10:10: fatal error:
'SDL/SDL_rotozoom.h' file not found
#include "SDL/SDL_rotozoom.h"
^
1 warning generated.
1 error generated.
make[2]: *** [CMakeFiles/rle-c-lib.dir/src/rle_interface.cpp.o] Error 1
make[1]: *** [CMakeFiles/rle-c-lib.dir/all] Error 2
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 11%] No patch step for 'genesis_plus_gx_libretro'
[ 12%] No update step for 'genesis_plus_gx_libretro'
[ 13%] No configure step for 'genesis_plus_gx_libretro'
[ 14%] Performing build step for 'genesis_plus_gx_libretro'
In file included from stella/src/emucore/PropsSet.cxx:31:
stella/src/emucore/PropsSet.hxx:129:14: warning: private field 'myOSystem' is not used [-Wunused-private-field]
OSystem* myOSystem;
^
1 warning generated.
stella/src/emucore/StateManager.cxx:57:7: warning: reference cannot be bound to dereferenced null pointer in
well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion]
if(&myOSystem->console())
~~ ^~~~~~~~~~~~~~~~~~~~
stella/src/emucore/OSystem.hxx:130:14: note: 'console' returns a reference
Console& console() const { return myConsole; }
^
stella/src/emucore/StateManager.cxx:77:9: warning: reference cannot be bound to dereferenced null pointer in
well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion]
if(&myOSystem->console())
~~ ^~~~~~~~~~~~~~~~~~~~
stella/src/emucore/OSystem.hxx:130:14: note: 'console' returns a reference
Console& console() const { return myConsole; }
^
In file included from stella/src/emucore/StateManager.cxx:31:
stella/src/emucore/StateManager.hxx:95:9: warning: private field 'myCurrentSlot' is not used
[-Wunused-private-field]
int myCurrentSlot;
^
3 warnings generated.
core/tremor/sharedbook.c:215:6: warning: absolute value function 'abs' given an argument of type 'long' but has
parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
abs(b->quantlist[index]),&point);
^
core/tremor/sharedbook.c:215:6: note: use function 'labs' instead
abs(b->quantlist[index]),&point);
^~~
labs
core/tremor/sharedbook.c:249:6: warning: absolute value function 'abs' given an argument of type 'long' but has
parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
abs(b->quantlist[j
b->dim+k]),&point);
^
core/tremor/sharedbook.c:249:6: note: use function 'labs' instead
abs(b->quantlist[j
b->dim+k]),&point);
^~~
labs
2 warnings generated.
libretro/libretro.c:1744:39: warning: comparison of constant 1025 with expression of type 'unsigned char' is
always false [-Wtautological-constant-out-of-range-compare]
if (port && (input.system[0] >= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DE...
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1744:93: warning: comparison of constant 2049 with expression of type 'unsigned char' is
always true [-Wtautological-constant-out-of-range-compare]
...>= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DEVICE_MSPAD_2B_MASTERTAP))
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1753:39: warning: comparison of constant 1025 with expression of type 'unsigned char' is
always false [-Wtautological-constant-out-of-range-compare]
if (port && (input.system[0] >= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DE...
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1753:93: warning: comparison of constant 2049 with expression of type 'unsigned char' is
always true [-Wtautological-constant-out-of-range-compare]
...>= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DEVICE_MSPAD_2B_MASTERTAP))
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1762:39: warning: comparison of constant 1025 with expression of type 'unsigned char' is
always false [-Wtautological-constant-out-of-range-compare]
if (port && (input.system[0] >= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DE...
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1762:93: warning: comparison of constant 2049 with expression of type 'unsigned char' is
always true [-Wtautological-constant-out-of-range-compare]
...>= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DEVICE_MSPAD_2B_MASTERTAP))
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1846:39: warning: comparison of constant 1025 with expression of type 'unsigned char' is
always false [-Wtautological-constant-out-of-range-compare]
if (port && (input.system[0] >= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DE...
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libretro/libretro.c:1846:93: warning: comparison of constant 2049 with expression of type 'unsigned char' is
always true [-Wtautological-constant-out-of-range-compare]
...>= RETRO_DEVICE_MDPAD_3B_WAYPLAY) && (input.system[0] <= RETRO_DEVICE_MSPAD_2B_MASTERTAP))
~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 warnings generated.
[ 15%] No install step for 'genesis_plus_gx_libretro'
[ 15%] Completed 'genesis_plus_gx_libretro'
[ 15%] Built target genesis_plus_gx_libretro
[ 16%] No install step for 'stella_libretro'
[ 17%] Completed 'stella_libretro'
[ 17%] Built target stella_libretro
make: *** [all] Error 2

Install RLE on CentOS Linux release 7.2.1511

I am trying to install rle on centos with
pip install rle-python-interface,

but always failed because of
/tmp/pip-build-mm00sro_/rle-python-interface/src/environment/RetroAgent.cpp:10:28: fatal error: alsa/asoundlib.h: No such file or directory #include <alsa/asoundlib.h>

I have done a few research on installing libasound2 on centos, but with no luck. The install log is attached here install.txt, any idea how to overcome this?

Issue compiling on Ubuntu

Hi,

I'm able to get to 99% but unfortunately it fails at the end. Any ideas?

tim@matlab:/Downloads/Retro-Learning-Environment$ mkdir build && cd build
tim@matlab:
/Downloads/Retro-Learning-Environment/build$ cmake -DUSE_SDL=ON -DBUILD_EXAMPLES=ON ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found SDL: /usr/lib/x86_64-linux-gnu/libSDLmain.a;/usr/lib/x86_64-linux-gnu/libSDL.so;-lpthread (found version "1.2.15")
sdl_library:/usr/lib/x86_64-linux-gnu/libSDLmain.a/usr/lib/x86_64-linux-gnu/libSDL.so-lpthread
-- INCLUDE_DIR /usr/local/include/rle
-- LIBRARY_DIR /usr/local/lib
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tim/Downloads/Retro-Learning-Environment/build
tim@matlab:~/Downloads/Retro-Learning-Environment/build$ make -j 4
Scanning dependencies of target stella_libretro
Scanning dependencies of target rle-lib
Scanning dependencies of target rle-c-lib
Scanning dependencies of target snes9x2010_libretro
[ 0%] Creating directories for 'stella_libretro'
[ 1%] Creating directories for 'snes9x2010_libretro'
[ 2%] Building CXX object CMakeFiles/rle-lib.dir/src/rle_interface.cpp.o
[ 3%] Building CXX object CMakeFiles/rle-c-lib.dir/rle_python_interface/rle_c_wrapper.cpp.o
[ 4%] Performing download step (git clone) for 'stella_libretro'
[ 5%] Performing download step (git clone) for 'snes9x2010_libretro'
Cloning into 'snes9x2010'...
Cloning into 'stella-libretro'...
[ 6%] Building CXX object CMakeFiles/rle-c-lib.dir/src/rle_interface.cpp.o
[ 6%] Building CXX object CMakeFiles/rle-lib.dir/src/common/ScreenExporter.cpp.o
[ 7%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/ScreenExporter.cpp.o
[ 8%] Building CXX object CMakeFiles/rle-lib.dir/src/common/Log.cpp.o
[ 9%] Building CXX object CMakeFiles/rle-lib.dir/src/common/SoundExporter.cpp.o
[ 9%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/Log.cpp.o
[ 10%] Building CXX object CMakeFiles/rle-lib.dir/src/common/Constants.cpp.o
[ 11%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/SoundExporter.cpp.o
[ 12%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/Constants.cpp.o
[ 13%] Building CXX object CMakeFiles/rle-lib.dir/src/common/display_screen.cpp.o
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 14%] No patch step for 'stella_libretro'
[ 15%] No update step for 'stella_libretro'
[ 16%] No configure step for 'stella_libretro'
[ 17%] Building CXX object CMakeFiles/rle-c-lib.dir/src/common/display_screen.cpp.o
[ 18%] Performing build step for 'stella_libretro'
[ 19%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/RetroAgent.cpp.o
[ 20%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/RetroAgent.cpp.o
[ 20%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/RleSystem.cxx.o
[ 21%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/RleSystem.cxx.o
[ 22%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Deserializer.cxx.o
/home/tim/Downloads/Retro-Learning-Environment/src/environment/Deserializer.cxx: In member function ‘void Deserializer::getIntArray(int*, size_t&)’:
/home/tim/Downloads/Retro-Learning-Environment/src/environment/Deserializer.cxx:100:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0 ; i < size ; i++){
^
[ 23%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/retro_environment.cpp.o
[ 23%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Deserializer.cxx.o
/home/tim/Downloads/Retro-Learning-Environment/src/environment/Deserializer.cxx: In member function ‘void Deserializer::getIntArray(int*, size_t&)’:
/home/tim/Downloads/Retro-Learning-Environment/src/environment/Deserializer.cxx:100:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0 ; i < size ; i++){
^
[ 24%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/retro_environment.cpp.o
[ 25%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/phosphor_blend.cpp.o
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 26%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/phosphor_blend.cpp.o
[ 27%] No patch step for 'snes9x2010_libretro'
[ 27%] No update step for 'snes9x2010_libretro'
[ 28%] No configure step for 'snes9x2010_libretro'
[ 29%] Performing build step for 'snes9x2010_libretro'
src/apu.c: In function ‘spc_copier_copy_int’:
src/apu.c:1240:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
SET_LE16( s, state );
^
src/apu.c:1242:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
return GET_LE16( s );
^
[ 30%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Random.cxx.o
[ 31%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_screen.cpp.o
[ 32%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Random.cxx.o
[ 33%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_screen.cpp.o
[ 33%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_ram.cpp.o
[ 34%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/rle_state.cpp.o
[ 35%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_ram.cpp.o
[ 35%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/rle_state.cpp.o
[ 36%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/FSNode.cxx.o
[ 37%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/FSNode.cxx.o
[ 38%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Serializer.cxx.o
[ 39%] Building CXX object CMakeFiles/rle-lib.dir/src/environment/Settings.cxx.o
[ 40%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Serializer.cxx.o
[ 41%] Building CXX object CMakeFiles/rle-c-lib.dir/src/environment/Settings.cxx.o
[ 41%] Building CXX object CMakeFiles/rle-lib.dir/src/games/SnesSettings.cpp.o
[ 42%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/SnesSettings.cpp.o
[ 43%] Building CXX object CMakeFiles/rle-lib.dir/src/games/GenesisSettings.cpp.o
[ 43%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/GenesisSettings.cpp.o
[ 44%] Building CXX object CMakeFiles/rle-lib.dir/src/games/RomSettings.cpp.o
[ 45%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/RomSettings.cpp.o
[ 46%] Building CXX object CMakeFiles/rle-lib.dir/src/games/RomUtils.cpp.o
[ 47%] Building CXX object CMakeFiles/rle-lib.dir/src/games/AtariSettings.cpp.o
[ 48%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/RomUtils.cpp.o
[ 49%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/AtariSettings.cpp.o
[ 50%] Building CXX object CMakeFiles/rle-lib.dir/src/games/Roms.cpp.o
[ 51%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/Roms.cpp.o
[ 51%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioWorld.cpp.o
[ 52%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioWorld.cpp.o
[ 53%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/AtariCollection.cpp.o
src/memmap.c: In function ‘HeaderRemove’:
src/memmap.c:747:3: warning: value computed is not used [-Wunused-value]
(headerCount)++;
^
[ 53%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/AtariCollection.cpp.o
[ 54%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SonicTheHedgehog.cpp.o
[ 55%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SonicTheHedgehog.cpp.o
[ 56%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FZeroNoSpeed.cpp.o
[ 57%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FZeroNoSpeed.cpp.o
[ 58%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Seaquest.cpp.o
[ 59%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Seaquest.cpp.o
[ 60%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/BustAMove.cpp.o
[ 61%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/BustAMove.cpp.o
[ 61%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/MortalKombat2Players.cpp.o
[ 62%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/MortalKombat2Players.cpp.o
[ 63%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Wolfenstein.cpp.o
[ 63%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Wolfenstein.cpp.o
[ 64%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioAllStars.cpp.o
[ 65%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioAllStars.cpp.o
[ 66%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/MortalKombat.cpp.o
[ 67%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/MortalKombat.cpp.o
[ 68%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Aladdin.cpp.o
[ 69%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Aladdin.cpp.o
[ 70%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/Boxing.cpp.o
[ 71%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/Boxing.cpp.o
[ 72%] No install step for 'stella_libretro'
[ 73%] Completed 'stella_libretro'
[ 73%] Built target stella_libretro
Scanning dependencies of target genesis_plus_gx_libretro
[ 74%] Creating directories for 'genesis_plus_gx_libretro'
[ 74%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/TetrisAndDrMario.cpp.o
[ 75%] Performing download step (git clone) for 'genesis_plus_gx_libretro'
Cloning into 'Genesis-Plus-GX'...
[ 76%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/TetrisAndDrMario.cpp.o
[ 77%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/NBAGiveNGo.cpp.o
[ 77%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/NBAGiveNGo.cpp.o
[ 78%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FinalFight.cpp.o
[ 79%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FinalFight.cpp.o
[ 80%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/GradiusIII.cpp.o
[ 81%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/GradiusIII.cpp.o
[ 82%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/StreetFighterII.cpp.o
[ 83%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/StreetFighterII.cpp.o
[ 83%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/FZero.cpp.o
[ 84%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/FZero.cpp.o
[ 85%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/ClassicKong.cpp.o
[ 85%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/ClassicKong.cpp.o
[ 86%] Building CXX object CMakeFiles/rle-lib.dir/src/games/supported/SuperMarioAllStarsNoRight.cpp.o
[ 87%] Building CXX object CMakeFiles/rle-c-lib.dir/src/games/supported/SuperMarioAllStarsNoRight.cpp.o
[ 88%] Building C object CMakeFiles/rle-lib.dir/src/external/TinyMT/tinymt32.c.o
[ 89%] Building CXX object CMakeFiles/rle-lib.dir/src/os_dependent/FSNodePOSIX.cxx.o
[ 90%] Building C object CMakeFiles/rle-c-lib.dir/src/external/TinyMT/tinymt32.c.o
[ 91%] Building CXX object CMakeFiles/rle-c-lib.dir/src/os_dependent/FSNodePOSIX.cxx.o
[ 92%] Linking CXX shared library ../librle.so
[ 93%] Linking CXX shared library ../rle_python_interface/librle_c.so
[ 93%] Built target rle-lib
Scanning dependencies of target sharedLibraryInterfaceExample
[ 93%] Building CXX object CMakeFiles/sharedLibraryInterfaceExample.dir/doc/examples/sharedLibraryInterfaceExample.cpp.o
[ 93%] Built target rle-c-lib
libretro/libretro.c: In function ‘snes_init’:
libretro/libretro.c:619:4: warning: ignoring return value of ‘posix_memalign’, declared with attribute warn_unused_result [-Wunused-result]
posix_memalign((void
*)&GFX.Screen, 16, GFX.Pitch * 512 * sizeof(uint16));
^
[ 94%] Linking CXX executable ../doc/examples/sharedLibraryInterfaceExample
[ 94%] Built target sharedLibraryInterfaceExample
Already on 'master'
Your branch is up-to-date with 'origin/master'.
[ 95%] No update step for 'genesis_plus_gx_libretro'
[ 95%] No patch step for 'genesis_plus_gx_libretro'
[ 96%] No configure step for 'genesis_plus_gx_libretro'
[ 97%] Performing build step for 'genesis_plus_gx_libretro'
make[3]: *** No targets specified and no makefile found. Stop.
CMakeFiles/genesis_plus_gx_libretro.dir/build.make:111: recipe for target 'genesis_plus_gx_libretro-prefix/src/genesis_plus_gx_libretro-stamp/genesis_plus_gx_libretro-build' failed
make[2]: *** [genesis_plus_gx_libretro-prefix/src/genesis_plus_gx_libretro-stamp/genesis_plus_gx_libretro-build] Error 2
CMakeFiles/Makefile2:215: recipe for target 'CMakeFiles/genesis_plus_gx_libretro.dir/all' failed
make[1]: *** [CMakeFiles/genesis_plus_gx_libretro.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 98%] No install step for 'snes9x2010_libretro'
[ 99%] Completed 'snes9x2010_libretro'
[ 99%] Built target snes9x2010_libretro
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Help Needed, Resulted Trained agent?

  1. how to add new game?
  2. where is final result of trained agent?
  3. How to switch dqn with ddqn d-ddqn?

I am all new in this So your help will be highly appreciated. Thanks, Looking forward.

Can't find documentation about DQN in this environment

I run environment through python interface from doc/example like
$ python python_example.py path_to_rom path_to_core
I modified the code set episode to 2000 and the training was running for 1 day but the agent is not learning.
I searched the code but couldn't find the module for DQN.
Please kindly Help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.