Code Monkey home page Code Monkey logo

farama-foundation / stable-retro Goto Github PK

View Code? Open in Web Editor NEW
123.0 10.0 27.0 255.73 MB

Retro games for Reinforcement Learning

Home Page: https://stable-retro.farama.org/

License: MIT License

CMake 0.27% Python 0.51% Makefile 1.17% C 74.89% C++ 19.95% Perl 0.05% TeX 0.22% M4 0.10% Assembly 2.13% Yacc 0.01% Shell 0.11% Roff 0.05% GLSL 0.10% Objective-C 0.05% GDB 0.01% Batchfile 0.07% Scheme 0.01% SourcePawn 0.03% Limbo 0.04% HTML 0.23%
gymnasium machine-learning reinforcement-learning retro videogames

stable-retro's Introduction

pre-commit Code style: black

Stable-Retro

A fork of gym-retro ('lets you turn classic video games into Gymnasium environments for reinforcement learning') with additional games, emulators and supported platforms. Since gym-retro is in maintenance now and doesn't accept new games, platforms or bug fixes, you can instead submit PRs with new games or features here in stable-retro.

Currently added games on top of gym-retro:

  • Super Mario Bros 2 Japan (Lost Levels) - NES
  • Hang On - SMS
  • Punch Out - NES
  • WWF Wrestlemania the Arcade Game - Genesis
  • NHL 94 - Genesis
  • NHL 94 (1 on 1 rom hack) - Genesis
  • Super Hang On - Genesis
  • Tetris - GameBoy
  • Virtua Fighter - 32x
  • Virtua Fighter 2 - Genesis
  • Virtua Fighter 2 - Saturn
  • Mortal Kombat 1 - Sega CD

PvP games that support two models fighting each other:

  • Samurai Showdown - Genesis
  • WWF Wrestlemania the Arcade Game - Genesis
  • Mortal Kombat II - Genesis
  • NHL 94 - Genesis

As well as additional states on already integrated games.

Emulated Systems

  • Atari
    • Atari2600 (via Stella)
  • NEC
    • TurboGrafx-16/PC Engine (via Mednafen/Beetle PCE Fast)
  • Nintendo
    • Game Boy/Game Boy Color (via gambatte)
    • Game Boy Advance (via mGBA)
    • Nintendo Entertainment System (via FCEUmm)
    • Super Nintendo Entertainment System (via Snes9x)
  • Sega
    • GameGear (via Genesis Plus GX)
    • Genesis/Mega Drive (via Genesis Plus GX)
    • Master System (via Genesis Plus GX)
    • 32x (via Picodrive)
    • Saturn (via Beetle Saturn)
    • Sega CD (via Genesis Plus GX)

Experimental (accessible in the fbneo branch)

  • Arcade Machines:
    • Neo Geo (MVS hardware: 1990–2004)
    • Sega System 1 (1983–1987)
    • Sega System 16 (And similar. 1985–1994)
    • Sega System 18 (1989–1992)
    • Sega System 24 (1988–1994)
    • Capcom CPS1 (1988–1995)
    • Capcom CPS2 (1993–2003)
    • Capcom CPS3 (1996–1999)

Full list of supported Arcade machines here

Installation

pip3 install stable-retro

or if the above doesn't work for your plateform:

pip3 install git+https://github.com/Farama-Foundation/stable-retro.git

If you plan to integrate new ROMs, states or emulator cores or plan to edit an existing env:

git clone https://github.com/Farama-Foundation/stable-retro.git
cd stable-retro
pip3 install -e .

Apple Silicon Installation (Tested on python3.10)

  • NOTE: The Game Boy (gambatte) emulator is not supported on Apple Silicon

Build from source

  1. pip install cmake wheel
  2. brew install pkg-config [email protected] libzip qt5 capnp
  3. echo 'export PATH="/opt/homebrew/opt/qt@5/bin:$PATH"' >> ~/.zshrc
  4. export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
  5. pip install -e .

Build Integration UI

  1. build package from source
  2. cmake . -DCMAKE_PREFIX_PATH=/usr/local/opt/qt -DBUILD_UI=ON -UPYLIB_DIRECTORY
  3. make -j$(sysctl hw.ncpu | cut -d: -f2)
  4. open "Gym Retro Integration.app"

Docker image for M1 Macs: https://github.com/arvganesh/stable-retro-docker

Example

'Nature CNN' model trained using PPO on Airstriker-Genesis env (rom already included in the repo)

Tested on Ubuntu 20.04 and Windows 11 WSL2 (Ubuntu 20.04 VM)

sudo apt-get update
sudo apt-get install python3 python3-pip git zlib1g-dev libopenmpi-dev ffmpeg

You need to install a stable baselines 3 version that supports gymnasium

pip3 install git+https://github.com/Farama-Foundation/stable-retro.git
pip3 install stable_baselines3[extra]

Start training:

cd retro/examples
python3 ppo.py --game='Airstriker-Genesis'

More advanced examples: https://github.com/MatPoliquin/stable-retro-scripts

Citation

@misc{stable-retro,
  author = {Poliquin, Mathieu},
  title = {Stable Retro, a maintained fork of OpenAI's gym-retro},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Farama-Foundation/stable-retro}},
}

Tutorials

Windows WSL2 + Ubuntu 22.04 setup guide: https://www.youtube.com/watch?v=vPnJiUR21Og

Game Integration tool: https://www.youtube.com/playlist?list=PLmwlWbdWpZVvWqzOxu0jVBy-CaRpYha0t

Discord channel

Join here: https://discord.gg/dXuBSg3B4D

Contributing

See CONTRIBUTING.md

There is an effort to get this project to the Farama Foundation Project Standards. These development efforts are being coordinated in the stable-retro channel of the Farama Foundation's Discord. Click here for the invite

Supported specs:

Plateforms:

  • Windows 10, 11 (via WSL2)
  • macOS 10.13 (High Sierra), 10.14 (Mojave)
  • Linux (manylinux1). Ubuntu 22.04 is recommended

CPU with SSE3 or better

Supported Pythons: 3.7 to 3.12

Documentation

Documentation is available at https://stable-retro.farama.org/ (work in progress)

See LICENSES.md for information on the licenses of the individual cores.

ROMs

Each game integration has files listing memory locations for in-game variables, reward functions based on those variables, episode end conditions, savestates at the beginning of levels and a file containing hashes of ROMs that work with these files.

Please note that ROMs are not included and you must obtain them yourself. Most ROM hashes are sourced from their respective No-Intro SHA-1 sums.

Run this script in the roms folder you want to import. If the checksum matches it will import them in the related game folder in stable-retro.

python3 -m retro.import .

The following non-commercial ROMs are included with Stable Retro for testing purposes:

stable-retro's People

Contributors

badfilms avatar christopherhesse avatar dependabot[bot] avatar eaplatanios avatar edoffagne avatar elliottower avatar endrift avatar fgvbrt avatar fsimond avatar guillemdb avatar icoxfog417 avatar joohei avatar joshim5 avatar matpoliquin avatar mgoulao avatar mwidjaja1 avatar mwydmuch avatar onaclov2000 avatar parmarsuraj99 avatar pisiiki avatar prabhatnagarajan avatar praveen-palanisamy avatar pseudo-rnd-thoughts avatar pum-purum-pum-pum avatar seanpai96 avatar thatguy11325 avatar tristansokol avatar unixpickle avatar victorsevero avatar zbeucler2018 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

stable-retro's Issues

Remove Travis-Ci and GCP related code

There is a good amount of code related to Travis-ci and GCP (Google Cloud Platform) that is no longer needed. This code should be removed to reduce clutter and tech dept

Filtered Actions Documentation

Issue summary

It would be nice to add documentation on filtered actions, with some examples. I have ran into issues with it when integrating a new game, as I wasn't sure what I need to prevent.

There are some items in the docs https://retro.readthedocs.io/en/latest/search.html?q=filtered&check_keywords=yes&area=default

But the referenced "discretizer.py" file specifically doesn't really give me an intuitive understanding of the format and meaning of the data.

I've seen similar formatting in the data.json (if I'm recalling) but I don't have a clear understanding of what it is doing.

In my particular game the only "constraint" I can think of is that you can't press left and right at the same time, you can't press up/down at the same time, and maybe it's not useful to press start/select at the same time. (Of course U/D and L/R are constraints because of the physical configuration of the controller, not as a means of reducing the action space for the RL agent, that's a whole different story, but this documentation would be helpful for that too)

I'll continue to dive into how it works and help document, but if someone already has insights, I'd love to see any documentation.

System information

Not relevant

Error when installing with git via pip

When installing the repo with the method in the readme: pip3 install git+https://github.com/Farama-Foundation/stable-retro.git, the following error pops up after importing the package:

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 187, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.10/runpy.py", line 110, in _get_module_details
    __import__(pkg_name)
  File "/usr/local/lib/python3.10/dist-packages/retro/__init__.py", line 11, in <module>
    with open(os.path.join(os.path.dirname(__file__), "../VERSION")) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.10/dist-packages/retro/../VERSION'

Steps to reproduce

  • run pip3 install git+https://github.com/Farama-Foundation/stable-retro.git
  • run import retro

Cannot build from source to use integration UI

git clone https://github.com/Farama-Foundation/stable-retro.git
cd stable-retro
pip3 install -e .

after I tried the above command, this is the error message:

(stanley) stanley@MSI:~/gymRetro/stable-retro$ pip install -e .
Obtaining file:///home/stanley/gymRetro/stable-retro
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build editable ... done
Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: gymnasium>=0.27.1 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from stable-retro==0.9.3) (0.29.1)
Requirement already satisfied: pyglet==1.*,>=1.3.2 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from stable-retro==0.9.3) (1.5.28)
Requirement already satisfied: farama-notifications>=0.0.1 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from stable-retro==0.9.3) (0.0.4)
Requirement already satisfied: numpy>=1.21.0 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from gymnasium>=0.27.1->stable-retro==0.9.3) (1.26.3)
Requirement already satisfied: cloudpickle>=1.2.0 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from gymnasium>=0.27.1->stable-retro==0.9.3) (3.0.0)
Requirement already satisfied: typing-extensions>=4.3.0 in /home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages (from gymnasium>=0.27.1->stable-retro==0.9.3) (4.9.0)
Building wheels for collected packages: stable-retro
Building editable for stable-retro (pyproject.toml) ... error
error: subprocess-exited-with-error

× Building editable for stable-retro (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [399 lines of output]
running editable_wheel
creating /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info
writing /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/dependency_links.txt
writing requirements to /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/requires.txt
writing top-level names to /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/top_level.txt
writing manifest file '/tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/SOURCES.txt'
reading manifest file '/tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '.dylib' found anywhere in distribution
warning: no previously-included files matching '
-version' found under directory 'retro/cores'
adding license file 'LICENSE'
adding license file 'LICENSES.md'
writing manifest file '/tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro.egg-info/SOURCES.txt'
creating '/tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro-0.9.3.dist-info'
creating /tmp/pip-wheel-7_4ullp0/.tmp-ier8au9m/stable_retro-0.9.3.dist-info/WHEEL
running build_py
running build_ext
CMake Warning:
Ignoring empty string ("") provided on the command line.

  CMake Warning:
    Ignoring empty string ("") provided on the command line.
  
  
  CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
  
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  
  
  -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
  CMake Deprecation Warning at third-party/capnproto/c++/CMakeLists.txt:2 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
  
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  
  
  CMake Warning at CMakeLists.txt:306 (message):
    Could not find CapnProto, disabling search save/load
  
  
  CMake Deprecation Warning at third-party/libzip/CMakeLists.txt:5 (CMAKE_MINIMUM_REQUIRED):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
  
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  
  
  CMake Deprecation Warning at third-party/gtest/googlemock/CMakeLists.txt:46 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
  
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  
  
  CMake Deprecation Warning at third-party/gtest/googletest/CMakeLists.txt:53 (cmake_minimum_required):
    Compatibility with CMake < 3.5 will be removed from a future version of
    CMake.
  
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.
  
  
  CMake Warning (dev) at third-party/gtest/googletest/cmake/internal_utils.cmake:213 (find_package):
    Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
    are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
    the cmake_policy command to set the policy and suppress this warning.
  
  Call Stack (most recent call first):
    third-party/gtest/googletest/CMakeLists.txt:65 (include)
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  -- Configuring done (5.1s)
  CMake Warning at CMakeLists.txt:361 (add_library):
    Cannot generate a safe linker search path for target retro because files in
    some directories may conflict with libraries in implicit directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at CMakeLists.txt:361 (add_library):
    Cannot generate a safe runtime search path for target retro because files
    in some directories may conflict with libraries in implicit directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-data because
    files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-data because
    files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-emulator because
    files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-emulator because
    files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-memory-overlay
    because files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-memory-overlay
    because files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-memory because
    files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-memory because
    files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-script because
    files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-script because
    files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe linker search path for target test-search because
    files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at tests/CMakeLists.txt:6 (add_executable):
    Cannot generate a safe runtime search path for target test-search because
    files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at src/ui/CMakeLists.txt:40 (add_executable):
    Cannot generate a safe linker search path for target gym-retro-integration
    because files in some directories may conflict with libraries in implicit
    directories:
  
      link library [libz.so] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  CMake Warning at src/ui/CMakeLists.txt:40 (add_executable):
    Cannot generate a safe runtime search path for target gym-retro-integration
    because files in some directories may conflict with libraries in implicit
    directories:
  
      runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
        /home/stanley/miniconda3/envs/stanley/lib
  
    Some of these libraries may not be found correctly.
  
  
  -- Generating done (0.2s)
  -- Build files have been written to: /home/stanley/gymRetro/stable-retro
  [  0%] Generating retro/cores/genesis_plus_gx-version
  [  0%] Generating retro/cores/fceumm-version
  [  0%] Generating retro/cores/stella-version
  [  0%] Generating retro/cores/snes9x-version
  [  0%] Generating retro/cores/mgba-version
  [  0%] Generating retro/cores/fceumm.json
  [  0%] Generating retro/cores/genesis_plus_gx.json
  [  0%] Generating retro/cores/mednafen_pce_fast-version
  [  0%] Generating retro/cores/snes9x.json
  [  4%] Generating retro/cores/stella.json
  [  4%] Generating retro/cores/genesis_plus_gx_libretro.so
  [  4%] Generating retro/cores/fceumm_libretro.so
  [  8%] Generating retro/cores/mgba.json
  [  8%] Generating retro/cores/snes9x_libretro.so
  [  8%] Generating retro/cores/mednafen_pce_fast.json
  [  8%] Generating retro/cores/stella_libretro.so
  [  8%] Generating retro/cores/mgba_libretro.so
  [ 12%] Generating retro/cores/mednafen_pce_fast_libretro.so
  [ 12%] Generating retro/cores/gambatte-version
  [ 12%] Generating retro/cores/gambatte.json
  [ 12%] Generating retro/cores/gambatte_libretro.so
  [ 12%] Built target snes
  [ 12%] Built target gba
  [ 12%] Built target pce
  [ 12%] Built target genesis
  [ 12%] Built target nes
  [ 12%] Generating retro/cores/mednafen_saturn-version
  [ 12%] Generating retro/cores/picodrive-version
  [ 12%] Built target gb
  [ 16%] Generating retro/cores/mednafen_saturn_libretro.so
  [ 16%] Generating retro/cores/mednafen_saturn.json
  [ 16%] Generating retro/cores/picodrive_libretro.so
  [ 16%] Generating retro/cores/picodrive.json
  [ 16%] Built target atari2600
  [ 16%] Linking C static library libzip.a
  [ 16%] Built target saturn
  [ 16%] Built target 32x
  [ 91%] Built target zip
  [ 91%] Linking CXX static library libretro-base.a
  [100%] Built target retro-base
  [100%] Linking CXX shared library retro/_retro.cpython-310-x86_64-linux-gnu.so
  /usr/bin/ld: cannot find /lib64/libc.so.6: No such file or directory
  /usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a: No such file or directory
  collect2: error: ld returned 1 exit status
  make[3]: *** [CMakeFiles/retro.dir/build.make:102: retro/_retro.cpython-310-x86_64-linux-gnu.so] Error 1
  make[2]: *** [CMakeFiles/Makefile2:1006: CMakeFiles/retro.dir/all] Error 2
  make[1]: *** [CMakeFiles/Makefile2:1013: CMakeFiles/retro.dir/rule] Error 2
  make: *** [Makefile:485: retro] Error 2
  Traceback (most recent call last):
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 156, in run
      self._create_wheel_file(bdist_wheel)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 345, in _create_wheel_file
      files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 268, in _run_build_commands
      self._run_build_subcommands()
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 295, in _run_build_subcommands
      self.run_command(name)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "<string>", line 62, in run
    File "/home/stanley/miniconda3/envs/stanley/lib/python3.10/subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['make', '-j8', 'retro']' returned non-zero exit status 2.
  /tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py:988: _DebuggingTips: Problem in editable installation.
  !!
  
          ********************************************************************************
          An error happened while installing `stable-retro` in editable mode.
  
          The following steps are recommended to help debug this problem:
  
          - Try to install the project normally, without using the editable mode.
            Does the error still persist?
            (If it does, try fixing the problem before attempting the editable mode).
          - If you are using binary extensions, make sure you have all OS-level
            dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
          - Try the latest version of setuptools (maybe the error was already fixed).
          - If you (or your project dependencies) are using any setuptools extension
            or customization, make sure they support the editable mode.
  
          After following the steps above, if the problem still persists and
          you think this is related to how setuptools handles editable installations,
          please submit a reproducible example
          (see https://stackoverflow.com/help/minimal-reproducible-example) to:
  
              https://github.com/pypa/setuptools/issues
  
          See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
          ********************************************************************************
  
  !!
    cmd_obj.run()
  Traceback (most recent call last):
    File "/home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
      main()
    File "/home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/home/stanley/miniconda3/envs/stanley/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 273, in build_editable
      return hook(wheel_directory, config_settings, metadata_directory)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 436, in build_editable
      return self._build_with_temp_dir(
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
      self.run_setup()
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 480, in run_setup
      super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
      exec(code, locals())
    File "<string>", line 84, in <module>
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 156, in run
      self._create_wheel_file(bdist_wheel)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 345, in _create_wheel_file
      files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 268, in _run_build_commands
      self._run_build_subcommands()
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 295, in _run_build_subcommands
      self.run_command(name)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-hnjez3r7/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "<string>", line 62, in run
    File "/home/stanley/miniconda3/envs/stanley/lib/python3.10/subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['make', '-j8', 'retro']' returned non-zero exit status 2.
  [end of `output]  `

System information

  • [WSL2 Ubuntu 22.04.3 ]
  • [Python 3.10.13]
  • [Gym Retro 0.9.2]

update docker windows builder.

Issue summary

[Put a detailed description of the issue here.]
Update batch file/docker files to map a local folder so you don't have to manually docker cp the related whl files out.

My only concerns with this is whether I can just use relative pathing, as in current directory gets mapped.

System information

  • [Operating system] windows
  • [Python version] tbd
  • [Gym Retro version] tbd

Checklist for maturity

Checklist for Maturity

Copied from shimmy a few months ago, feel free to mark things as complete (I believe anyone can)

  • Support serialization via Pickle/EzPickle
  • Fully deterministic
    • As far as possible
  • Explicit Versioning
  • Farama Notifications
  • PyPI
  • Full Package Description
  • Deploy via GH Actions
  • Website
  • Linux and MacOS
  • Precommit
  • Typehinting
  • Docstrings
  • CI Testing
  • Logo
  • CoC (code of conduct)
  • Gymnasium/PZ API
  • Python Versions
  • JKTerry and Mark as owners (pypi)
  • TOTP (time based one time password)
  • Google Analytics
  • License
  • Sponsor this project button

Build on windows

Issue summary

Cant build on windows using python

System information

Windows 10
3.10
gymnasium>=0.27.1->stable-retro==0.9.1) (1.25.2)

Microsoft Visual Studio Community 2022 (64-bit) - Current
Version 17.5.5

cmake is installed

.net is installed. all depends of oobabooga webui a re virtual env as well as automatic 1111 even this env is in a v env.

pip install virtualenv
mkdir GYM
cd GYM
virtualenv env
env\Scripts\activate

pip install cmake wheel
pip install "gymnasium[all]"

mismatch dependencies or specific dependencies not stated? causing issues and inability to install?

Collecting shimmy[atari]<1.0,>=0.1.0 (from gymnasium[all])
  Using cached Shimmy-0.2.1-py3-none-any.whl (25 kB)
Collecting box2d-py==2.3.5 (from gymnasium[all])
  Using cached box2d-py-2.3.5.tar.gz (374 kB)
  Preparing metadata (setup.py) ... done
Collecting pygame>=2.1.3 (from gymnasium[all])
  Obtaining dependency information for pygame>=2.1.3 from https://files.pythonhosted.org/packages/a7/56/3b86cf4fdf4fc37b8d5681de41dcc17d2ab44c1dfaf490d5ee1ca5165724/pygame-2.5.1-cp310-cp310-win_amd64.whl.metadata
  Using cached pygame-2.5.1-cp310-cp310-win_amd64.whl.metadata (13 kB)
Collecting swig==4.* (from gymnasium[all])
  Using cached swig-4.1.1-py2.py3-none-win_amd64.whl (2.5 MB)
Collecting mujoco-py<2.2,>=2.1 (from gymnasium[all])
  Using cached mujoco_py-2.1.2.14-py3-none-any.whl (2.4 MB)
Collecting cython<3 (from gymnasium[all])
  Obtaining dependency information for cython<3 from https://files.pythonhosted.org/packages/3f/d6/9eed523aeaca42acbaa3e6d3850edae780dc7f8da9df1bf6a2ceb851839c/Cython-0.29.36-py2.py3-none-any.whl.metadata
  Using cached Cython-0.29.36-py2.py3-none-any.whl.metadata (3.1 kB)
Collecting mujoco>=2.3.3 (from gymnasium[all])
  Obtaining dependency information for mujoco>=2.3.3 from https://files.pythonhosted.org/packages/ae/16/d0c59cfa27b1740420c90faa13a391ebfe4f2fa95f4e11f977b1efad7e98/mujoco-2.3.7-cp310-cp310-win_amd64.whl.metadata
  Using cached mujoco-2.3.7-cp310-cp310-win_amd64.whl.metadata (35 kB)
Collecting imageio>=2.14.1 (from gymnasium[all])
  Obtaining dependency information for imageio>=2.14.1 from https://files.pythonhosted.org/packages/7b/88/59411e1a652ac3338d348901ffa5a73daf1f67fcb3f97d750237d4fa0821/imageio-2.31.2-py3-none-any.whl.metadata
  Using cached imageio-2.31.2-py3-none-any.whl.metadata (4.7 kB)
Collecting jax>=0.4.0 (from gymnasium[all])
  Using cached jax-0.4.14-py3-none-any.whl
Collecting jaxlib>=0.4.0 (from gymnasium[all])
  Obtaining dependency information for jaxlib>=0.4.0 from https://files.pythonhosted.org/packages/5b/8e/e6349ed17bafd4e3967ac30a365597b38e3d38143659b34b1ef79a1ec0bc/jaxlib-0.4.14-cp310-cp310-win_amd64.whl.metadata
  Using cached jaxlib-0.4.14-cp310-cp310-win_amd64.whl.metadata (2.1 kB)
Collecting lz4>=3.1.0 (from gymnasium[all])
  Using cached lz4-4.3.2-cp310-cp310-win_amd64.whl (99 kB)
Collecting opencv-python>=3.0 (from gymnasium[all])
  Obtaining dependency information for opencv-python>=3.0 from https://files.pythonhosted.org/packages/fb/c4/f574ba6f04e6d7bf8c38d23e7a52389566dd7631fee0bcdd79ea07ef2dbf/opencv_python-4.8.0.76-cp37-abi3-win_amd64.whl.metadata
  Using cached opencv_python-4.8.0.76-cp37-abi3-win_amd64.whl.metadata (20 kB)
Collecting matplotlib>=3.0 (from gymnasium[all])
  Obtaining dependency information for matplotlib>=3.0 from https://files.pythonhosted.org/packages/ff/1f/2b83c7acf453318a80dc619e99fc30a663b2c1fb18be3d358a96addfecd9/matplotlib-3.7.2-cp310-cp310-win_amd64.whl.metadata
  Using cached matplotlib-3.7.2-cp310-cp310-win_amd64.whl.metadata (5.8 kB)
Collecting moviepy>=1.0.0 (from gymnasium[all])
  Using cached moviepy-1.0.3-py3-none-any.whl
Collecting torch>=1.0.0 (from gymnasium[all])
  Using cached torch-2.0.1-cp310-cp310-win_amd64.whl (172.3 MB)
Collecting pillow>=8.3.2 (from imageio>=2.14.1->gymnasium[all])
  Obtaining dependency information for pillow>=8.3.2 from https://files.pythonhosted.org/packages/d0/4f/faebe1180e5e6ad6330c539dda7f6081182157393ba6816a438f759a0e59/Pillow-10.0.0-cp310-cp310-win_amd64.whl.metadata
  Using cached Pillow-10.0.0-cp310-cp310-win_amd64.whl.metadata (9.6 kB)
Collecting ml-dtypes>=0.2.0 (from jax>=0.4.0->gymnasium[all])
  Obtaining dependency information for ml-dtypes>=0.2.0 from https://files.pythonhosted.org/packages/55/51/c430b4f5f4a6df00aa41c1ee195e179489565e61cfad559506ca7442ce67/ml_dtypes-0.2.0-cp310-cp310-win_amd64.whl.metadata
  Using cached ml_dtypes-0.2.0-cp310-cp310-win_amd64.whl.metadata (20 kB)
Collecting opt-einsum (from jax>=0.4.0->gymnasium[all])
  Using cached opt_einsum-3.3.0-py3-none-any.whl (65 kB)
Collecting scipy>=1.7 (from jax>=0.4.0->gymnasium[all])
  Obtaining dependency information for scipy>=1.7 from https://files.pythonhosted.org/packages/70/03/485f73046134400ea25d3cb178c5e6728f9b165f79d09638ecb44ee0e9b1/scipy-1.11.2-cp310-cp310-win_amd64.whl.metadata
  Using cached scipy-1.11.2-cp310-cp310-win_amd64.whl.metadata (59 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=3.0->gymnasium[all])
  Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/94/0a/5eb57dd395fade977786b2d2c98c2bee8234358794be44422fe58a719d42/contourpy-1.1.0-cp310-cp310-win_amd64.whl.metadata
  Using cached contourpy-1.1.0-cp310-cp310-win_amd64.whl.metadata (5.7 kB)
Collecting cycler>=0.10 (from matplotlib>=3.0->gymnasium[all])
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=3.0->gymnasium[all])
  Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/1c/c6/408ee90eae2fd7ef85c5baaedfc8d533805f4c54fc6670dbde9539f1277b/fonttools-4.42.1-cp310-cp310-win_amd64.whl.metadata
  Using cached fonttools-4.42.1-cp310-cp310-win_amd64.whl.metadata (154 kB)
Collecting kiwisolver>=1.0.1 (from matplotlib>=3.0->gymnasium[all])
  Obtaining dependency information for kiwisolver>=1.0.1 from https://files.pythonhosted.org/packages/4a/a1/8a9c9be45c642fa12954855d8b3a02d9fd8551165a558835a19508fec2e6/kiwisolver-1.4.5-cp310-cp310-win_amd64.whl.metadata
  Using cached kiwisolver-1.4.5-cp310-cp310-win_amd64.whl.metadata (6.5 kB)
Collecting packaging>=20.0 (from matplotlib>=3.0->gymnasium[all])
  Using cached packaging-23.1-py3-none-any.whl (48 kB)
Collecting pyparsing<3.1,>=2.3.1 (from matplotlib>=3.0->gymnasium[all])
  Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
Collecting python-dateutil>=2.7 (from matplotlib>=3.0->gymnasium[all])
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting decorator<5.0,>=4.0.2 (from moviepy>=1.0.0->gymnasium[all])
  Using cached decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting tqdm<5.0,>=4.11.2 (from moviepy>=1.0.0->gymnasium[all])
  Obtaining dependency information for tqdm<5.0,>=4.11.2 from https://files.pythonhosted.org/packages/00/e5/f12a80907d0884e6dff9c16d0c0114d81b8cd07dc3ae54c5e962cc83037e/tqdm-4.66.1-py3-none-any.whl.metadata
  Using cached tqdm-4.66.1-py3-none-any.whl.metadata (57 kB)
Collecting requests<3.0,>=2.8.1 (from moviepy>=1.0.0->gymnasium[all])
  Obtaining dependency information for requests<3.0,>=2.8.1 from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata
  Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting proglog<=1.0.0 (from moviepy>=1.0.0->gymnasium[all])
  Using cached proglog-0.1.10-py3-none-any.whl (6.1 kB)
Collecting imageio-ffmpeg>=0.2.0 (from moviepy>=1.0.0->gymnasium[all])
  Using cached imageio_ffmpeg-0.4.8-py3-none-win_amd64.whl (22.6 MB)
Collecting absl-py (from mujoco>=2.3.3->gymnasium[all])
  Using cached absl_py-1.4.0-py3-none-any.whl (126 kB)
Collecting glfw (from mujoco>=2.3.3->gymnasium[all])
  Obtaining dependency information for glfw from https://files.pythonhosted.org/packages/e5/fb/819923400b06aaf5604c62ffc35aa9f37340b2b4ec6e1d7399b1ec2408be/glfw-2.6.2-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win_amd64.whl.metadata
  Using cached glfw-2.6.2-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win_amd64.whl.metadata (5.4 kB)
Collecting pyopengl (from mujoco>=2.3.3->gymnasium[all])
  Obtaining dependency information for pyopengl from https://files.pythonhosted.org/packages/99/48/00e31747821d3fc56faddd00a4725454d1e694a8b67d715cf20f531506a5/PyOpenGL-3.1.7-py3-none-any.whl.metadata
  Using cached PyOpenGL-3.1.7-py3-none-any.whl.metadata (3.2 kB)
Collecting cffi>=1.10 (from mujoco-py<2.2,>=2.1->gymnasium[all])
  Using cached cffi-1.15.1-cp310-cp310-win_amd64.whl (179 kB)
Collecting fasteners~=0.15 (from mujoco-py<2.2,>=2.1->gymnasium[all])
  Using cached fasteners-0.18-py3-none-any.whl (18 kB)
Collecting ale-py~=0.8.1 (from shimmy[atari]<1.0,>=0.1.0->gymnasium[all])
  Using cached ale_py-0.8.1-cp310-cp310-win_amd64.whl (952 kB)
Requirement already satisfied: filelock in c:\users\tom_n\gym\env\lib\site-packages (from torch>=1.0.0->gymnasium[all]) (3.12.2)
Collecting sympy (from torch>=1.0.0->gymnasium[all])
  Using cached sympy-1.12-py3-none-any.whl (5.7 MB)
Collecting networkx (from torch>=1.0.0->gymnasium[all])
  Using cached networkx-3.1-py3-none-any.whl (2.1 MB)
Collecting jinja2 (from torch>=1.0.0->gymnasium[all])
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting importlib-resources (from ale-py~=0.8.1->shimmy[atari]<1.0,>=0.1.0->gymnasium[all])
  Obtaining dependency information for importlib-resources from https://files.pythonhosted.org/packages/25/d4/592f53ce2f8dde8be5720851bd0ab71cc2e76c55978e4163ef1ab7e389bb/importlib_resources-6.0.1-py3-none-any.whl.metadata
  Using cached importlib_resources-6.0.1-py3-none-any.whl.metadata (4.0 kB)
Collecting pycparser (from cffi>=1.10->mujoco-py<2.2,>=2.1->gymnasium[all])
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib>=3.0->gymnasium[all])
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting charset-normalizer<4,>=2 (from requests<3.0,>=2.8.1->moviepy>=1.0.0->gymnasium[all])
  Obtaining dependency information for charset-normalizer<4,>=2 from https://files.pythonhosted.org/packages/5c/f2/f3faa20684729d3910af2ee142e30432c7a46a817eadeeab87366ed87bbb/charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl.metadata
  Using cached charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl.metadata (31 kB)
Collecting idna<4,>=2.5 (from requests<3.0,>=2.8.1->moviepy>=1.0.0->gymnasium[all])
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting urllib3<3,>=1.21.1 (from requests<3.0,>=2.8.1->moviepy>=1.0.0->gymnasium[all])
  Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/9b/81/62fd61001fa4b9d0df6e31d47ff49cfa9de4af03adecf339c7bc30656b37/urllib3-2.0.4-py3-none-any.whl.metadata
  Using cached urllib3-2.0.4-py3-none-any.whl.metadata (6.6 kB)
Collecting certifi>=2017.4.17 (from requests<3.0,>=2.8.1->moviepy>=1.0.0->gymnasium[all])
  Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/4c/dd/2234eab22353ffc7d94e8d13177aaa050113286e93e7b40eae01fbf7c3d9/certifi-2023.7.22-py3-none-any.whl.metadata
  Using cached certifi-2023.7.22-py3-none-any.whl.metadata (2.2 kB)
Collecting colorama (from tqdm<5.0,>=4.11.2->moviepy>=1.0.0->gymnasium[all])
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch>=1.0.0->gymnasium[all])
  Obtaining dependency information for MarkupSafe>=2.0 from https://files.pythonhosted.org/packages/84/a8/c4aebb8a14a1d39d5135eb8233a0b95831cdc42c4088358449c3ed657044/MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl.metadata
  Using cached MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl.metadata (3.1 kB)
Collecting mpmath>=0.19 (from sympy->torch>=1.0.0->gymnasium[all])
  Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)
Using cached Cython-0.29.36-py2.py3-none-any.whl (988 kB)
Using cached imageio-2.31.2-py3-none-any.whl (313 kB)
Using cached jaxlib-0.4.14-cp310-cp310-win_amd64.whl (40.4 MB)
Using cached matplotlib-3.7.2-cp310-cp310-win_amd64.whl (7.5 MB)
Using cached mujoco-2.3.7-cp310-cp310-win_amd64.whl (3.3 MB)
Using cached opencv_python-4.8.0.76-cp37-abi3-win_amd64.whl (38.1 MB)
Using cached pygame-2.5.1-cp310-cp310-win_amd64.whl (10.6 MB)
Using cached contourpy-1.1.0-cp310-cp310-win_amd64.whl (470 kB)
Using cached fonttools-4.42.1-cp310-cp310-win_amd64.whl (2.1 MB)
Using cached glfw-2.6.2-py2.py27.py3.py30.py31.py32.py33.py34.py35.py36.py37.py38-none-win_amd64.whl (493 kB)
Using cached kiwisolver-1.4.5-cp310-cp310-win_amd64.whl (56 kB)
Using cached ml_dtypes-0.2.0-cp310-cp310-win_amd64.whl (938 kB)
Using cached Pillow-10.0.0-cp310-cp310-win_amd64.whl (2.5 MB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached scipy-1.11.2-cp310-cp310-win_amd64.whl (44.0 MB)
Using cached tqdm-4.66.1-py3-none-any.whl (78 kB)
Using cached PyOpenGL-3.1.7-py3-none-any.whl (2.4 MB)
Using cached certifi-2023.7.22-py3-none-any.whl (158 kB)
Using cached charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl (96 kB)
Using cached MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl (17 kB)
Using cached urllib3-2.0.4-py3-none-any.whl (123 kB)
Using cached importlib_resources-6.0.1-py3-none-any.whl (34 kB)
Building wheels for collected packages: box2d-py
  Building wheel for box2d-py (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      Using setuptools (version 67.7.2).
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-310
      creating build\lib.win-amd64-cpython-310\Box2D
      copying library\Box2D\Box2D.py -> build\lib.win-amd64-cpython-310\Box2D
      copying library\Box2D\__init__.py -> build\lib.win-amd64-cpython-310\Box2D
      creating build\lib.win-amd64-cpython-310\Box2D\b2
      copying library\Box2D\b2\__init__.py -> build\lib.win-amd64-cpython-310\Box2D\b2
      running build_ext
      building 'Box2D._Box2D' extension
      swigging Box2D\Box2D.i to Box2D\Box2D_wrap.cpp
      swig.exe -python -c++ -IBox2D -small -O -includeall -ignoremissing -w201 -globals b2Globals -outdir library\Box2D -keyword -w511 -D_SWIG_KWARGS -o Box2D\Box2D_wrap.cpp Box2D\Box2D.i
      error: command 'swig.exe' failed: None
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for box2d-py
  Running setup.py clean for box2d-py
Failed to build box2d-py
ERROR: Could not build wheels for box2d-py, which is required to install pyproject.toml-based projects

OpenAI References

Issue summary

The url referenced here is invalid:

I'll end up removing it as part of Issue #1 but wanted to point out the bigger "potential issue".

It might also be a good idea to pull most OpenAI References out, (aside from a "original source, or contributor or something" type reference).

Some potentially relevant tools (a quick google search):

System information

Not relevant.

Apple silicon build fails

Issue summary

I followed the instructions to build from source on Apple silicon, but I got a make error :

$ pip install -e .                                                                                              [master]
Obtaining file:///Users/fpaugam/Documents/code/stable-retro
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Collecting gymnasium>=0.27.1 (from stable-retro==0.9.3)
  Using cached gymnasium-0.29.1-py3-none-any.whl.metadata (10 kB)
Collecting pyglet==1.*,>=1.3.2 (from stable-retro==0.9.3)
  Using cached pyglet-1.5.28-py3-none-any.whl.metadata (7.6 kB)
Collecting farama-notifications>=0.0.1 (from stable-retro==0.9.3)
  Using cached Farama_Notifications-0.0.4-py3-none-any.whl (2.5 kB)
Collecting numpy>=1.21.0 (from gymnasium>=0.27.1->stable-retro==0.9.3)
  Using cached numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (61 kB)
Collecting cloudpickle>=1.2.0 (from gymnasium>=0.27.1->stable-retro==0.9.3)
  Using cached cloudpickle-3.0.0-py3-none-any.whl.metadata (7.0 kB)
Collecting typing-extensions>=4.3.0 (from gymnasium>=0.27.1->stable-retro==0.9.3)
  Using cached typing_extensions-4.9.0-py3-none-any.whl.metadata (3.0 kB)
Using cached pyglet-1.5.28-py3-none-any.whl (1.1 MB)
Using cached gymnasium-0.29.1-py3-none-any.whl (953 kB)
Using cached cloudpickle-3.0.0-py3-none-any.whl (20 kB)
Using cached numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl (14.0 MB)
Using cached typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Building wheels for collected packages: stable-retro
  Building editable for stable-retro (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building editable for stable-retro (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [509 lines of output]
      running editable_wheel
      creating /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info
      writing /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/PKG-INFO
      writing dependency_links to /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/dependency_links.txt
      writing requirements to /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/requires.txt
      writing top-level names to /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/top_level.txt
      writing manifest file '/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/SOURCES.txt'
      reading manifest file '/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.o' found anywhere in distribution
      warning: no previously-included files matching '*.a' found anywhere in distribution
      warning: no previously-included files matching '*.dylib' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '*-version' found under directory 'retro/cores'
      adding license file 'LICENSE'
      adding license file 'LICENSES.md'
      writing manifest file '/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro.egg-info/SOURCES.txt'
      creating '/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro-0.9.3.dist-info'
      creating /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-wheel-2_ye8dt1/.tmp-7nsiopmf/stable_retro-0.9.3.dist-info/WHEEL
      running build_py
      running build_ext
      CMake Warning:
        Ignoring empty string ("") provided on the command line.


      CMake Warning:
        Ignoring empty string ("") provided on the command line.


      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      -- The C compiler identification is AppleClang 15.0.0.15000100
      -- The CXX compiler identification is AppleClang 15.0.0.15000100
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found Python: /Users/fpaugam/Documents/code/stable-retro/env/bin/python3 (found suitable version "3.10.5", minimum required is "3") found components: Interpreter Development.Module
      -- Found ZLIB: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libz.tbd (found version "1.2.12")
      -- Found PkgConfig: /opt/homebrew/bin/pkg-config (found version "0.29.2")
      warningDetected Apple Silicon, skipping gambatte (gb)
      CMake Deprecation Warning at third-party/capnproto/c++/CMakeLists.txt:2 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      -- Looking for C++ include initializer_list
      -- Looking for C++ include initializer_list - found
      CMake Warning (dev) at third-party/capnproto/c++/CMakeLists.txt:30 (option):
        Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
        --help-policy CMP0077" for policy details.  Use the cmake_policy command to
        set the policy and suppress this warning.

        For compatibility with older versions of CMake, option is clearing the
        normal variable 'CAPNP_LITE'.
      This warning is for project developers.  Use -Wno-dev to suppress it.

      CMake Warning at CMakeLists.txt:306 (message):
        Could not find CapnProto, disabling search save/load


      CMake Deprecation Warning at third-party/gtest/googlemock/CMakeLists.txt:46 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      CMake Deprecation Warning at third-party/gtest/googletest/CMakeLists.txt:53 (cmake_minimum_required):
        Compatibility with CMake < 3.5 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value or use a ...<max> suffix to tell
        CMake that the project does not need compatibility with older versions.


      CMake Warning (dev) at third-party/gtest/googletest/cmake/internal_utils.cmake:213 (find_package):
        Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
        are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
        the cmake_policy command to set the policy and suppress this warning.

      Call Stack (most recent call first):
        third-party/gtest/googletest/CMakeLists.txt:65 (include)
      This warning is for project developers.  Use -Wno-dev to suppress it.

      -- Found PythonInterp: /Users/fpaugam/Documents/code/stable-retro/env/bin/python (found version "3.10.5")
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      -- Configuring done (1.2s)
      -- Generating done (0.1s)
      -- Build files have been written to: /Users/fpaugam/Documents/code/stable-retro
      [  3%] Generating retro/cores/picodrive-version
      [  6%] Generating retro/cores/mednafen_pce_fast-version
      [  6%] Generating retro/cores/mgba-version
      [  6%] Generating retro/cores/genesis_plus_gx-version
      [  6%] Generating retro/cores/mednafen_saturn-version
      [ 10%] Generating retro/cores/stella-version
      [ 10%] Generating retro/cores/fceumm-version
      [ 13%] Generating retro/cores/snes9x-version
      [ 26%] Generating retro/cores/mednafen_pce_fast.json
      [ 26%] Generating retro/cores/stella.json
      [ 26%] Generating retro/cores/genesis_plus_gx.json
      [ 26%] Generating retro/cores/mgba.json
      [ 30%] Generating retro/cores/fceumm.json
      [ 33%] Generating retro/cores/snes9x.json
      [ 33%] Generating retro/cores/mednafen_pce_fast_libretro.dylib
      [ 36%] Generating retro/cores/mednafen_saturn.json
      [ 43%] Generating retro/cores/mgba_libretro.dylib
      [ 43%] Generating retro/cores/picodrive.json
      [ 46%] Generating retro/cores/genesis_plus_gx_libretro.dylib
      [ 53%] Generating retro/cores/stella_libretro.dylib
      [ 53%] Generating retro/cores/snes9x_libretro.dylib
      [ 53%] Generating retro/cores/fceumm_libretro.dylib
      [ 56%] Generating retro/cores/mednafen_saturn_libretro.dylib
      [ 60%] Generating retro/cores/picodrive_libretro.dylib
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      make[4]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      Error copying file "mgba_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/mgba_libretro.dylib".
      make[3]: *** [retro/cores/mgba_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/gba.dir/all] Error 2
      make[2]: *** Waiting for unfinished jobs....
      Error copying file "fceumm_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/fceumm_libretro.dylib".
      make[3]: *** [retro/cores/fceumm_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/nes.dir/all] Error 2
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cart_hw/svp/ssp16.c:602:20: warning: cast to smaller integer type 'unsigned int' from 'unsigned short *' [-Wpointer-to-int-cast]
        if (!(d & 2) && (GET_PPC_OFFS() == 0x800 || GET_PPC_OFFS() == 0x1851E)) {
                         ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:25: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                              ^~~~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:602:20: warning: cast to smaller integer type 'unsigned int' from 'unsigned char *' [-Wpointer-to-int-cast]
        if (!(d & 2) && (GET_PPC_OFFS() == 0x800 || GET_PPC_OFFS() == 0x1851E)) {
                         ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:44: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:602:47: warning: cast to smaller integer type 'unsigned int' from 'unsigned short *' [-Wpointer-to-int-cast]
        if (!(d & 2) && (GET_PPC_OFFS() == 0x800 || GET_PPC_OFFS() == 0x1851E)) {
                                                    ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:25: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                              ^~~~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:602:47: warning: cast to smaller integer type 'unsigned int' from 'unsigned char *' [-Wpointer-to-int-cast]
        if (!(d & 2) && (GET_PPC_OFFS() == 0x800 || GET_PPC_OFFS() == 0x1851E)) {
                                                    ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:44: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:697:13: warning: cast to smaller integer type 'unsigned int' from 'unsigned short *' [-Wpointer-to-int-cast]
          switch (GET_PPC_OFFS()) {
                  ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:25: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                              ^~~~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:697:13: warning: cast to smaller integer type 'unsigned int' from 'unsigned char *' [-Wpointer-to-int-cast]
          switch (GET_PPC_OFFS()) {
                  ^~~~~~~~~~~~~~
      core/cart_hw/svp/ssp16.c:222:44: note: expanded from macro 'GET_PPC_OFFS'
      #define GET_PPC_OFFS() ((unsigned int)PC - (unsigned int)svp->iram_rom - 2)
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      6 warnings generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cd_hw/libchdr/deps/zlib/adler32.c:63:15: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      uLong ZEXPORT adler32_z(adler, buf, len)
                    ^
      core/cd_hw/libchdr/deps/zlib/adler32.c:134:15: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      uLong ZEXPORT adler32(adler, buf, len)
                    ^
      core/cd_hw/libchdr/deps/zlib/adler32.c:143:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      local uLong adler32_combine_(adler1, adler2, len2)
                  ^
      core/cd_hw/libchdr/deps/zlib/adler32.c:172:15: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      uLong ZEXPORT adler32_combine(adler1, adler2, len2)
                    ^
      core/cd_hw/libchdr/deps/zlib/adler32.c:180:15: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
                    ^
      5 warnings generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cd_hw/libchdr/deps/zlib/inffast.c:50:20: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      void ZLIB_INTERNAL inflate_fast(strm, start)
                         ^
      1 warning generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cd_hw/libchdr/deps/zlib/inflate.c:105:11: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      local int inflateStateCheck(strm)
                ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:119:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateResetKeep(strm)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:144:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateReset(strm)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:157:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateReset2(strm, windowBits)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:195:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:239:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateInit_(strm, version, stream_size)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:247:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflatePrime(strm, bits, value)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:278:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      local void fixedtables(state)
                 ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:396:11: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      local int updatewindow(strm, end, copy)
                ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:622:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflate(strm, flush)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1277:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateEnd(strm)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1291:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1314:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1349:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateGetHeader(strm, head)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1377:16: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      local unsigned syncsearch(have, buf, len)
                     ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1400:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateSync(strm)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1451:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateSyncPoint(strm)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1461:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateCopy(dest, source)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1508:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateUndermine(strm, subvert)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1526:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZEXPORT inflateValidate(strm, check)
                  ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1541:14: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      long ZEXPORT inflateMark(strm)
                   ^
      core/cd_hw/libchdr/deps/zlib/inflate.c:1554:23: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      unsigned long ZEXPORT inflateCodesUsed(strm)
                            ^
      22 warnings generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cd_hw/libchdr/deps/zlib/inftrees.c:32:19: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work)
                        ^
      1 warning generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      core/cd_hw/libchdr/deps/zlib/zutil.c:133:22: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      const char * ZEXPORT zError(err)
                           ^
      core/cd_hw/libchdr/deps/zlib/zutil.c:305:22: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
                           ^
      core/cd_hw/libchdr/deps/zlib/zutil.c:315:20: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
      void ZLIB_INTERNAL zcfree (opaque, ptr)
                         ^
      3 warnings generated.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      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.
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      clang: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
      Error copying file "genesis_plus_gx_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/genesis_plus_gx_libretro.dylib".
      make[3]: *** [retro/cores/genesis_plus_gx_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/genesis.dir/all] Error 2
      Error copying file "mednafen_pce_fast_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/mednafen_pce_fast_libretro.dylib".
      make[3]: *** [retro/cores/mednafen_pce_fast_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/pce.dir/all] Error 2
      Error copying file "stella_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/stella_libretro.dylib".
      make[3]: *** [retro/cores/stella_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/atari2600.dir/all] Error 2
      Error copying file "picodrive_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/picodrive_libretro.dylib".
      make[3]: *** [retro/cores/picodrive_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/32x.dir/all] Error 2
      Error copying file "snes9x_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/snes9x_libretro.dylib".
      make[3]: *** [retro/cores/snes9x_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/snes.dir/all] Error 2
      Error copying file "mednafen_saturn_libretro.so" to "/Users/fpaugam/Documents/code/stable-retro/retro/cores/mednafen_saturn_libretro.dylib".
      make[3]: *** [retro/cores/mednafen_saturn_libretro.dylib] Error 1
      make[2]: *** [CMakeFiles/saturn.dir/all] Error 2
      make[1]: *** [CMakeFiles/retro.dir/rule] Error 2
      make: *** [retro] Error 2
      Traceback (most recent call last):
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 156, in run
          self._create_wheel_file(bdist_wheel)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 345, in _create_wheel_file
          files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 268, in _run_build_commands
          self._run_build_subcommands()
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 295, in _run_build_subcommands
          self.run_command(name)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "<string>", line 62, in run
        File "/Users/fpaugam/.pyenv/versions/3.10.5/lib/python3.10/subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['make', '-j10', 'retro']' returned non-zero exit status 2.
      /private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py:988: _DebuggingTips: Problem in editable installation.
      !!

              ********************************************************************************
              An error happened while installing `stable-retro` in editable mode.

              The following steps are recommended to help debug this problem:

              - Try to install the project normally, without using the editable mode.
                Does the error still persist?
                (If it does, try fixing the problem before attempting the editable mode).
              - If you are using binary extensions, make sure you have all OS-level
                dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
              - Try the latest version of setuptools (maybe the error was already fixed).
              - If you (or your project dependencies) are using any setuptools extension
                or customization, make sure they support the editable mode.

              After following the steps above, if the problem still persists and
              you think this is related to how setuptools handles editable installations,
              please submit a reproducible example
              (see https://stackoverflow.com/help/minimal-reproducible-example) to:

                  https://github.com/pypa/setuptools/issues

              See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
              ********************************************************************************

      !!
        cmd_obj.run()
      Traceback (most recent call last):
        File "/Users/fpaugam/Documents/code/stable-retro/env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/Users/fpaugam/Documents/code/stable-retro/env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/Users/fpaugam/Documents/code/stable-retro/env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 273, in build_editable
          return hook(wheel_directory, config_settings, metadata_directory)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 436, in build_editable
          return self._build_with_temp_dir(
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
          self.run_setup()
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 480, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 84, in <module>
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 156, in run
          self._create_wheel_file(bdist_wheel)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 345, in _create_wheel_file
          files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 268, in _run_build_commands
          self._run_build_subcommands()
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/command/editable_wheel.py", line 295, in _run_build_subcommands
          self.run_command(name)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/private/var/folders/9m/_2zczvvj299570ck819_q6w00000gn/T/pip-build-env-o7ztoqxf/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "<string>", line 62, in run
        File "/Users/fpaugam/.pyenv/versions/3.10.5/lib/python3.10/subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['make', '-j10', 'retro']' returned non-zero exit status 2.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building editable for stable-retro
Failed to build stable-retro
ERROR: Could not build wheels for stable-retro, which is required to install pyproject.toml-based projects

System information

  • MacOS Sonoma 14.2.1 (23C71)
  • Python 3.10.5
  • retro 0.9.3

UI Releases

Issue summary

Where are built UI's released? is it expected for the user to compile and build the UI? Or do we want to push them to the releases (I'm in favor of releases).

This is somewhat related to #19 in that we need to update the pointers to the UI that is mentioned in the integration file.

support double dragon Neo-Geo(MAME Emulator) ?

I want to integrate mame2003-plus-libretro emulator in stable-retro.
So I can train an AI on the game Double Dragon (there are many versions of this game, but I'm looking for the 1995 fighting game released on Neo-Geo and PS1).
image

Can someone provide some tutorials or give step-by-step instructions? For example, do I need to modify the source code myself, or compile the source code?
Thank you very much! I am a beginner and really don't know what to do. I really want to use this game to train an AI and get started with reinforcement learning.

Double Dragon ROM: https://archive.org/details/MAME_2003-Plus_Reference_Set_2018.
The lib is available at https://github.com/libretro/mame2003-plus-libretro.

I see that Gym Retro supports the Libretro API, and MAME 2003-Plus is also developed based on Libretro. So there may not be much that needs to be changed, right?

image

image

New version issue with latest git commit

After a clean pip install git+https://github.com/Farama-Foundation/stable-retro.git


FileNotFoundError Traceback (most recent call last)
in <cell line: 2>()
----> 1 import retro; print(retro.path)

/usr/local/lib/python3.10/dist-packages/retro/init.py in
9 core_path(os.path.join(os.path.dirname(file), "cores"))
10
---> 11 with open(os.path.join(os.path.dirname(file), "VERSION.txt")) as f:
12 version = f.read()
13

FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.10/dist-packages/retro/VERSION.txt'

This is on a Colab T4

Documentation Cleanup

Issue summary

There is a lot of broken links/etc. I mentioned this in another issue but think it might be good to have as it's own issue. There are links and references that require updating. See below for the list of what I find as I go along (I'll add as I go). This would be a good issue for someone who doesn't know how to code likely. (And/or a good first issue too).

Segmentation fault when compiling integration tool

Issue summary

to repro:

cd stable-retro
cmake . -DBUILD_UI=ON -UPYLIB_DIRECTORY
make

This error will happen from time to time (not 100% repro)

[100%] Linking CXX executable capnp
[100%] Built target capnp_tool
[100%] Linking CXX executable capnpc-c++
[100%] Built target capnpc_cpp
[100%] Compiling Cap'n Proto schema src/serialize.capnp
*** Received signal #11: Segmentation fault
stack: 0x5632955e2948 0x5632955e2dcb 0x5632955d79de 0x5632955def73 0x56329552b6a6 0x7f86be0a8d90 0x7f86be0a8e40 0x56329552b755
make[2]: *** [CMakeFiles/retro-capnp.dir/build.make:76: src/serialize.capnp.c++] Error 1
make[1]: *** [CMakeFiles/Makefile2:1007: CMakeFiles/retro-capnp.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

WORKAROUND:
Now if you get this error the workaround is to disable capnproto (which you won't need if you don't use the load/save search function. I integrated many games without this function)

In CMakeLists.txt after line 260 simply write:

set(CAPN_PROTO_FOUND OFF)

relaunch make

System information

  • Ubuntu 22.04
  • python 3.10
  • stable-retro 0.9.1

Python 3.10 Support

Issue summary

The readme mentions only supporting python 3.6,7,8.

I have a windows build that supports 3.10. It might be nice to get that upgraded in this repo.

https://github.com/TwitchAIRacingLeague/retro/releases/tag/v0.9.0

The docker file
https://github.com/TwitchAIRacingLeague/retro/blob/v0.9.0/docker/Dockerfile
builds a windows (native) 3.10 for Windows 10 at least (that's what I've been using at this time).

I know I'm not using the 'latest' stable-retro as my basis, however I don't imagine any of the changes should prevent building.

System information

  • [Operating system] Windows 10
  • [Python version] Python 3.10
  • [Gym Retro version] .... it's complicated

Status

  • Windows python 3.10 support
  • Linux python 3.10 support
  • Windows python 3.8,3.9
  • Update doc to define windows build process

CI not working

Issue summary

Two issues.

  1. Issue in movie.py
  2. Issue in determinism.py

Movie.py

This section of the repository got pulled in as a submodule clone or whatever.


Later versions of this file:
https://github.com/libretro/mgba/blob/master/src/platform/python/cinema/movie.py#L33

Just get rid of the output function. This might be all that is required to stop this failure.

Determinism.py

Following up, It's related to a copy/paste error or something I'd claim, Ultimately they updated the code here to be like this:

        def make_env():
            env = retro.make(game=game)
            if args.deterministic:
                env = MoreDeterministicRetroState(env)
            else:
                env = MoreDeterministicRetroState(env, reset_on_step=False)
            return env

But here they left it as "RetroState"

def make_env():
        env = retro.make(
            movie.get_game(),
            state=retro.State.DEFAULT,
            use_restricted_actions=retro.Actions.ALL,
        )
        env.initial_state = movie.get_state()
        if args.deterministic:
            env = MoreDeterministicRetroState(env)
        else:
            env = RetroState(env)
        return env

I think the only change needed is to replace that line. with the one earlier in the file:
Replace this line: https://github.com/Farama-Foundation/stable-retro/blob/master/retro/examples/determinism.py#L200
with
This line: https://github.com/Farama-Foundation/stable-retro/blob/master/retro/examples/determinism.py#L172

I don't have a reasonable way to test it, but that's my guess.

Integration UI Error

Issue summary

After compiling the Integration UI with make, I am unable to properly run the executable. I get the below errors.
make

qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Aborted

In addition, when I was running cmake I got the below warnings even though I have installed both python and CapnProto. I was wondering if this was affecting the compilation.

sudo cmake . -DBUILD_UI=ON -UPYLIB_DIRECTORY

-- Could NOT find Python (missing: Development.Module) (found suitable version "3.10.12", minimum required is "3")
CMake Warning at CMakeLists.txt:306 (message):
  Could not find CapnProto, disabling search save/load

System information

  • Ubuntu 22.04
  • Python 3.10.12
  • Gym Retro 0.9.2

error: metadata-generation-failed

Issue summary

For some reason am trying to install stable-retro through CMD and pycharm, but for some reason it's not working. I've updated setuptools and pip, reinstall them, unistalled everyone thing (Python and Pycharm) restart my computer few times install Cmake, Microsoft C++ build tools, and even have the require version of python to be compatiable for stable-retro I need your help.

C:\Windows\System32>pip install stable-retro
Collecting stable-retro
Using cached stable-retro-0.9.1.tar.gz (111.4 MB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\setup.py", line 88, in
version=open(VERSION_PATH).read().strip(),
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\skyle\AppData\Local\Temp\pip-install-k9ez_2cs\stable-retro_1a174f8f15d44d96800ab359d52b65cb\retro/VERSION.txt'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

System information

GPU
NVIDIA GeForce RTX 2070

Processor
Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)

Window 11
Python 3.8
stable-retro v0.9.1

Error: Could not build wheel for stable-retro

Issue summary

I've been trying to install stable-retro but I keep getting the same error. I tried downgrading the setup tools and wheel versions but to no luck.

Building wheels for collected packages: stable-retro
Building wheel for stable-retro (pyproject.toml): started
Building wheel for stable-retro (pyproject.toml): finished with status 'error'
Failed to build stable-retro
Note: you may need to restart the kernel to use updated packages.
Running command git clone --filter=blob:none --quiet https://github.com/Farama-Foundation/stable-retro.git 'C:\Users\Dylan\AppData\Local\Temp\pip-req-build-spzkpvdq'
error: subprocess-exited-with-error

× Building wheel for stable-retro (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [7336 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-310
creating build\lib.win-amd64-cpython-310\retro
copying retro\enums.py -> build\lib.win-amd64-cpython-310\retro
copying retro\rendering.py -> build\lib.win-amd64-cpython-310\retro
copying retro\retro_env.py -> build\lib.win-amd64-cpython-310\retro
copying retro_init_.py -> build\lib.win-amd64-cpython-310\retro
creating build\lib.win-amd64-cpython-310\retro\data
copying retro\data_init_.py -> build\lib.win-amd64-cpython-310\retro\data
creating build\lib.win-amd64-cpython-310\retro\data\stable
copying retro\data\stable_init_.py -> build\lib.win-amd64-cpython-310\retro\data\stable
creating build\lib.win-amd64-cpython-310\retro\data\experimental
copying retro\data\experimental_init_.py -> build\lib.win-amd64-cpython-310\retro\data\experimental
creating build\lib.win-amd64-cpython-310\retro\data\contrib
copying retro\data\contrib_init_.py -> build\lib.win-amd64-cpython-310\retro\data\contrib
creating build\lib.win-amd64-cpython-310\retro\scripts
...

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for stable-retro
ERROR: Could not build wheels for stable-retro, which is required to install pyproject.toml-based projects

System information

  • Windows
  • Python 3.10.11
  • I'm not sure what the version of the Gym Retro is.

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.