* Add dummy game ai subsystem
* First working prototype of a machine learning model that can override player input
* Update README.md
* Update README.md
* Fix loading path on Windows
* Change ai override to player 2
* Added quick menu show game ai option
* Implemented Quick Menu entry for Game AI options
* Redirect debug logs to retroarch log system + properly support player override
* Added support to use framebuffer as input to the AI
* Added pixel format parameter to API
* Fix game name
* code clean-up of game_ai.cpp
* Update README.md - Windows Build
* Update README.md
* Update README.md
* Update README.md
* Update config.params.sh
turn off GAME_AI feature by default
* Fix compile error in menu_displaylist.c
* Add missing #define in menu_cbs_title.c
* Added new game_ai entry in griffin_cpp
* Remove GAME_AI entry in msg_hash_us.c
* Fix compile error in menu_displaylist.h
* Removed GAME AI references from README.md
* Fixes coding style + add GameAI lib API header
* Convert comment to legacy + remove unused code
* Additional coding style fixes to game_ai.cpp
* Fix identation issues in game_ai.cpp
* Removed some debug code in game_ai.cpp
* Add game_ai_lib in deps
* Replace assert with retro_assert
* Update Makefile.common
* Converting game_ai from cpp to c. First step.
* Convert game_ai from CPP to C. STEP 2: add C function calls
* Convert game_ai from CPP to C. Final Step
* Added shutdown function for game ai lib
* Update game_ai_lib README
* Fix crash when loading/unloading multiple games
* frontend/drivers/platform_unix.c
(libretro_cheats_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_CHEATS to the value of
the LIBRETRO_CHEATS_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_cheats_directory>: New variable. Use the values of
the LIBRETRO_CHEATS_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document it.
* retroarch.c (retroarch_print_help): Extend help text.
* Partially revert a change made in 69ceb95ddc.
The change caused the 'libretro_directory' config option to always
revert to the default value, which was not intended behavior.
Reported-by: Michael Cook
* platform: Honor the LIBRETRO_DATABASE_DIRECTORY environment variable.
This is a follow-up to commit 69ceb95ddc.
* frontend/drivers/platform_unix.c
(libretro_database_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_DATABASE to the value of
the LIBRETRO_DATABASE_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_database_directory>: New variable. Use the values of
the LIBRETRO_DATABASE_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document.
* retroarch.c (retroarch_print_help): List supported environment
variables, and cross-reference the man page.
## Description
Before there was no clear way of running msys2, and even if there was, there is no guarantee of it working, well I fixed it, and added a CI, so that we can always know if it works. Furthermore I added 2 targets more: UCRT64 and CLANG64, yes, compilation with clang64 means we can also compile with clang for windows on arm :D, plus clang has better error messages overall, anyway.
## Related Issues
#17367
## Reviewers
Anyone, it's my first PR here.
* platform_win32: Fix sizeof for DEFAULT_DIR_PLAYLIST.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Check
the size of correct destination array.
* frontend: Honor the LIBRETRO_ASSETS_DIRECTORY environment variable.
This builds on 763fcd8267 ("unix, win32: Allow set the default
libretro_directory via environment variable") to also allow specifying
the assets directory via an environment variable.
* frontend/drivers/platform_unix.c (frontend_unix_get_env)
<libretro_assets_directory> New variable. Use it to set
DEFAULT_DIR_ASSETS, when available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.
* platform: Honor the LIBRETRO_DIRECTORY environment variable.
Until now, and unlike the defaut core directory, the default
core *info* directory would be hard-coded relative to the installation
directory. Honor the LIBRETRO_DIRECTORY environment variable the same
instead.
* frontend/drivers/platform_unix.c (frontend_unix_get_env): Set
DEFAULT_DIR_CORE_INFO default to the value of the LIBRETRO_DIRECTORY
environment variable, if available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.
* platform: Honor the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_autoconfig_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_AUTOCONFIG to the value of
the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_video_filter_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_VIDEO_FILTER to the value of
the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_video_shader_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SHADER to the value of
the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_SYSTEM_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_system_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SYSTEM to the value of
the LIBRETRO_SYSTEM_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration: Have environment variables override configuration.
Because the configuration file is systematically written when
RetroArch terminates, persisting any previous default/configured
value, setting the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY, etc.
environment variables would not have an effect unless the
retroarch.cfg configuration file was cleared.
This seems to go against the common expectation that environment
variables are set by users to *override* the default behavior or
configuration of an application.
* configuration.c (config_load_file) <libretro_directory>
<libretro_assets_directory, libretro_autoconfig_directory>
<libretro_system_directory, libretro_video_filter_directory>
<libretro_video_shader_directory>: New variables. Use the values of
the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY,
LIBRETRO_AUTOCONFIG_DIRECTORY, LIBRETRO_SYSTEM_DIRECTORY,
LIBRETRO_VIDEO_FILTER_DIRECTORY and LIBRETRO_VIDEO_SHADER_DIRECTORY
environment variables instead of their corresponding configured
values, when set.
* docs/retroarch.6: Document the environment variables honored and
their behavior.