|
1 | 1 | # Changelog
|
| 2 | +All notable changes to this project will be documented in this file. |
| 3 | + |
| 4 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 5 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 6 | + |
| 7 | +## [Unreleased] |
| 8 | +### Added |
| 9 | +- Native support for OpenAI Gym |
| 10 | +- Native Python interface using pybind11 which results in a speedup for Python workloads as well as proper support for objects like `ALEState` |
| 11 | +- Python ROM management, e.g., `ale-import-roms` |
| 12 | +- PyPi Python wheels published as `ale-py` + we distribute SDL2 for out of the box visualization + audio support |
| 13 | +- `isSupportedROM(path)` to check if a ROM file is supported by the ALE |
| 14 | +- Added new games: Atlantis2, Backgammon, BasicMath, Blackjack, Casino, Crossbow, DarkChambers, Earthworld, Entombed, ET, FlagCapture, Hangman, HauntedHouse, HumanCannonball, Klax, MarioBros, MiniatureGolf, Othello, Pacman, Pitfall2, SpaceWar, Superman, Surround, TicTacToe3D, VideoCheckers, VideoChess, VideoCube, WordZapper (thanks @tkoppe) |
| 15 | +- Added (additional) mode/difficulty settings for: Lost Luggage, Turmoil, Tron Dead Discs, Pong, Mr. Do, King Kong, Frogger, Adventure (thanks @tkoppe) |
| 16 | + |
| 17 | +### Changed |
| 18 | +- Rewrote SDL support using SDL2 primitives |
| 19 | +- SDL2 now renders every frame independent of frameskip |
| 20 | +- SDL2 renders at the proper ROM framerate (added benefit of audio sync support) |
| 21 | +- Rewrote entire CMake infrastructure which now supports vcpkg natively |
| 22 | +- C++ minimum version is now C++17 |
| 23 | +- Changed all relative imports to absolute imports |
| 24 | +- Switched from Travis CI to Github Actions |
| 25 | +- Allow for paddle controller's min/max setting to be configurable |
| 26 | +- More robust version handling between C++ & Python distributions |
| 27 | +- Updated Markdown documentation to replace TeX manual |
| 28 | + |
| 29 | +### Fixed |
| 30 | +- Fixed bankswitching type for UA cartridges |
| 31 | +- Fixed a SwapPort bug in Surround |
| 32 | +- Fixed multiple bugs in handling invalid ROM files (thanks @tkoeppe) |
| 33 | +- Fixed initialization of TIA static data to make it thread safe (thanks @tkoeppe) |
| 34 | +- Fixed RNG initialization, this was one of the last barriers to making the ALE fully deterministic, we are now fully deterministic |
| 35 | + |
| 36 | +### Removed |
| 37 | +- Removed FIFO interface |
| 38 | +- Removed RL-GLUE support |
| 39 | +- Removed ALE CLI interface |
| 40 | +- Removed Java interface |
| 41 | +- Removed os-dependent filesystem code in favour of C++17 `std::fs` |
| 42 | +- Removed human control mode |
| 43 | +- Removed old makefile build system in favour of CMake |
| 44 | +- Removed bspf |
| 45 | +- Removed unused controller types: Driving, Booster, Keyboard |
| 46 | +- Removed AtariVox |
| 47 | +- Removed Stella types (e.g., Array) in favour of STL types |
| 48 | +- Remove Stella debugger |
| 49 | +- Remove Stella CheatManager |
| 50 | +- Lots of code cleanups conforming to best practices (thanks @tkoeppe) |
| 51 | + |
| 52 | + |
| 53 | +## [0.6.1] - 2019-11-20 |
| 54 | +### Changed |
| 55 | +- Speedup of up to 30% by optimizing variable types (@qstanczyk) |
| 56 | + |
| 57 | +### Fixed |
| 58 | +- Fixed switch fall-through with Gravitar lives detection (@lespeholt) |
| 59 | + |
| 60 | +## [0.6.0] - 2015-06-23 |
| 61 | +### Added |
| 62 | +- Support for modes and difficulties in Atari games (@mcmachado) |
| 63 | +- Frame maxpooling as a post-processing option (@skylian) |
| 64 | +- Added support for: Turmoil, Koolaid, Tron Deadly Discs, Mr. Do, Donkey Kong, Keystone Kapers, Frogger, Sir Lancelot, Laser Gates, Lost Luggage, |
| 65 | +- Added MD5 list of supported ROMs |
| 66 | + |
| 67 | +### Changed |
| 68 | +- Disabled color averaging by default |
| 69 | +- Replaced TinyMT with C++11 random |
| 70 | + |
| 71 | +### Fixed |
| 72 | +- Fixed old color averaging scheme (PR #181) |
| 73 | +- Fixed minimal action set in Pong |
| 74 | +- Fixed termination issues in Q*Bert |
| 75 | + |
| 76 | + |
| 77 | +## [0.5.2] - 2015-10-04 |
| 78 | +### Added |
| 79 | +- Routines for ALEState serialization (@Jragonmiris). |
| 80 | + |
| 81 | +### Changed |
| 82 | +- Enforce flags existence (@mcmachado). |
| 83 | + |
| 84 | +### Fixed |
| 85 | +- Fix RNG issues introduced in 0.5.0. |
| 86 | +- Additional bug fixes. |
| 87 | + |
| 88 | + |
| 89 | +## [0.5.1] - 2015-07-07 |
| 90 | +### Added |
| 91 | +- Added RNG serialization capability. |
| 92 | + |
| 93 | +### Changed |
| 94 | +- Refactored Python getScreenRGB to return unpacked RGB values (@spragunr). |
| 95 | +- Sets the default value of the color_averaging flag to be true. It was true by default in previous versions but was changed in 0.5.0. Reverted for backward compatibility. |
| 96 | + |
| 97 | +### Fixed |
| 98 | +- Bug fixes from ALE 0.5.0. |
| 99 | + |
| 100 | + |
| 101 | +## [0.5.0] - 2015-06-22 |
| 102 | +### Added |
| 103 | +- Added action_repeat_stochasticity. |
| 104 | +- Added sound playback, visualization. |
| 105 | +- Added screen/sound recording ability. |
| 106 | +- CMake now available. |
| 107 | +- Incorporated Benjamin Goodrich's Python interface. |
| 108 | +- Added examples for shared library, Python, fifo, RL-Glue interfaces. |
| 109 | +- Incorporated Java agent into main repository. |
| 110 | + |
| 111 | +### Changed |
| 112 | +- Better ALEInterface. |
| 113 | +- Many other changes. |
| 114 | + |
| 115 | +### Fixed |
| 116 | +- Some game fixes. |
| 117 | + |
| 118 | +### Removed |
| 119 | +- Removed internal controller, now superseded by shared library interface. |
| 120 | +- Removed the following command-line flags: 'output_file', 'system_reset_steps', 'use_environment_distribution', 'backward_compatible_save', internal agent flags |
| 121 | +- The flag 'use_starting_actions' was removed and internally its value is always 'true'. |
| 122 | +- The flag 'disable_color_averaging' was renamed to 'color_averaging' and FALSE is its default value. |
| 123 | + |
| 124 | + |
| 125 | +## [0.4.4] - 2014-04-28 |
| 126 | +### Fixed |
| 127 | +- Fixed a memory issue in ALEScreen. |
2 | 128 |
|
3 |
| -These changelogs are for the ALE prior to v0.5. For more recent versions check out the [releases page](https://github.com/mgbellemare/Arcade-Learning-Environment/releases). |
4 | 129 |
|
5 |
| -## Inter-release notes: |
6 |
| - * color_averaging is now off by default so that environment observations correspond to emulator frames unless requested otherwise. |
| 130 | +## [0.4.3] - 2014-04-26 |
| 131 | +### Fixed |
| 132 | +- Fixed issues with frame numbers not being correctly updated. |
| 133 | +- Fixed a bug where total reward was not properly reported under frame skipping. |
| 134 | +- Fixed a bug with ALEState's m_frame_number. |
| 135 | + |
7 | 136 |
|
8 |
| -## ALE 0.5dev_b. |
9 |
| -**Released October 4th, 2015.** |
| 137 | +## [0.4.2] - 2013-06-12 |
| 138 | +### Changed |
| 139 | +- Modified StellaEnvironment save/load interface to provide additional flexibility. |
10 | 140 |
|
11 |
| - * Enforce flags existence (@mcmachado). |
12 |
| - * Fix RNG issues introduced in 0.5.0. |
13 |
| - * Routines for ALEState serialization (@Jragonmiris). |
14 |
| - * Additional bug fixes. |
| 141 | +### Fixed |
| 142 | +- Series of bug fixes from Matthew Hausknecht and community. |
15 | 143 |
|
16 |
| -## ALE 0.5dev |
17 |
| -**Released July 7th, 2015.** |
18 | 144 |
|
19 |
| - * Refactored Python getScreenRGB to return unpacked RGB values (@spragunr). |
20 |
| - * Sets the default value of the color_averaging flag to be true. It was true by default in previous versions but was changed in 0.5.0. Reverted for backward compatibility. |
21 |
| - * Added RNG serialization capability. |
22 |
| - * Bug fixes from ALE 0.5.0. |
| 145 | +## [0.4.1] - 2013-05-24 |
| 146 | +### Added |
| 147 | +- Added frame skipping support directly in StellaEnvironment. |
23 | 148 |
|
24 |
| -## ALE 0.5.0. |
25 |
| -**Released June 22nd, 2015.** |
| 149 | +### Changed |
| 150 | +- Reverted default number of episodes to 10. |
26 | 151 |
|
27 |
| - * Added action_repeat_stochasticity. |
28 |
| - * Added sound playback, visualization. |
29 |
| - * Added screen/sound recording ability. |
30 |
| - * CMake now available. |
31 |
| - * Incorporated Benjamin Goodrich's Python interface. |
32 |
| - * Some game fixes. |
33 |
| - * Added examples for shared library, Python, fifo, RL-Glue interfaces. |
34 |
| - * Incorporated Java agent into main repository. |
35 |
| - * Removed internal controller, now superseded by shared library interface. |
36 |
| - * Better ALEInterface. |
37 |
| - * Many other changes. |
| 152 | +### Fixed |
| 153 | +- Fixed RL-Glue syntax from OBSERVATION to OBSERVATIONS. Thanks to Angus MacIsaac for picking this bug up. |
38 | 154 |
|
39 |
| -## ALE 0.5dev. |
40 |
| -**Released February 15th, 2015.** |
41 | 155 |
|
42 |
| - * Removed the following command-line flags: 'output_file', 'system_reset_steps', 'use_environment_distribution', 'backward_compatible_save', internal agent flags |
43 |
| - * The flag 'use_starting_actions' was removed and internally its value is always 'true'. |
44 |
| - * The flag 'disable_color_averaging' was renamed to 'color_averaging' and FALSE is its default value. |
| 156 | +## [0.4.0] - 2013-04-22 |
| 157 | +### Added |
| 158 | +- RL-Glue support |
| 159 | +- Shared library interface |
| 160 | +- Simpler direct environment interfacing |
| 161 | +- Improved environment handling |
| 162 | +- Improved environment customization |
| 163 | +- Better documentation |
45 | 164 |
|
46 |
| -## ALE 0.4.4. |
47 |
| -**Released April 28th, 2014.** |
48 | 165 |
|
49 |
| - * Fixed a memory issue in ALEScreen. |
| 166 | +## 0.3.0 - 2012-07-22 |
| 167 | +- Initial ALE release. |
50 | 168 |
|
51 |
| -## ALE 0.4.3 Bug fix (Mayank Daswani). |
52 |
| -**Released April 26th, 2014.** |
53 | 169 |
|
54 |
| - * Fixed issues with frame numbers not being correctly updated. |
55 |
| - * Fixed a bug where total reward was not properly reported under frame skipping. |
56 |
| - |
57 |
| -## ALE 0.4.3. |
58 |
| -**Released January 7th, 2013.** |
59 |
| - |
60 |
| - * Fixed a bug with ALEState's m_frame_number. |
61 |
| - |
62 |
| -## ALE 0.4.2. |
63 |
| -**Released June 12th, 2013.** |
64 |
| - |
65 |
| - * Modified StellaEnvironment save/load interface to provide additional flexibility. |
66 |
| - * Series of bug fixes from Matthew Hausknecht and community. |
67 |
| - |
68 |
| -## ALE 0.4.1 Bug fix |
69 |
| -**Released May 24th, 2013.** |
70 |
| - |
71 |
| - * Fixed RL-Glue syntax from OBSERVATION to OBSERVATIONS. Thanks to Angus MacIsaac for picking this bug up. |
72 |
| - |
73 |
| -## ALE 0.4.1. |
74 |
| -**Released May 22nd, 2013.** |
75 |
| - |
76 |
| - * Added frame skipping support directly in StellaEnvironment. |
77 |
| - * Reverted default number of episodes to 10. |
78 |
| - |
79 |
| -## ALE 0.4.0. |
80 |
| -**Released April 22nd, 2013.** |
81 |
| - |
82 |
| - * RL-Glue support |
83 |
| - * Shared library interface |
84 |
| - * Simpler direct environment interfacing |
85 |
| - * Improved environment handling |
86 |
| - * Improved environment customization |
87 |
| - * Better documentation |
88 |
| - |
89 |
| -## ALE 0.3.1. |
90 |
| -**Released August 7th, 2012.** |
91 |
| - |
92 |
| - * Fixed frames per episode cap for FIFO agents, added functionality to |
93 |
| - limit the total number of frames per run for FIFO agents. |
94 |
| - |
95 |
| -## ALE 0.3. |
96 |
| -**Released July 22nd, 2012.** |
97 |
| - |
98 |
| - * Initial ALE release. |
| 170 | +[unreleased]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/v0.6.1...HEAD |
| 171 | +[0.6.1]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/v0.6.0...v0.6.1 |
| 172 | +[0.6.0]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/v0.5.2...v0.6.0 |
| 173 | +[0.5.2]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/v0.5.1...v0.5.2 |
| 174 | +[0.5.1]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/v0.5.0...v0.5.1 |
| 175 | +[0.5.0]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/aa433a4b401bc3e7113c494edfc90500bc4afc78...v0.5.0 |
| 176 | +[0.4.4]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/d93189e0f00b5cb10120134ca965d8a5d3124581...aa433a4b401bc3e7113c494edfc90500bc4afc78 |
| 177 | +[0.4.3]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/b905e07ead43d07f386b35128e7eff60595e1581...d93189e0f00b5cb10120134ca965d8a5d3124581 |
| 178 | +[0.4.2]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/ba33f16376b545462666268194e8f72df82c1a3a...b905e07ead43d07f386b35128e7eff60595e1581 |
| 179 | +[0.4.1]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/84f9678d713695314570e0f183072f36e177a364...ba33f16376b545462666268194e8f72df82c1a3a |
| 180 | +[0.4.0]: https://github.com/mgbellemare/Arcade-Learning-Environment/compare/5c45f643a78ef96ade23928fd6a3740172ec1e35...84f9678d713695314570e0f183072f36e177a364 |
0 commit comments