├── .github └── workflows │ └── nightly_win_lin.yml ├── .travis.yml ├── LICENSE └── README.md /.github/workflows/nightly_win_lin.yml: -------------------------------------------------------------------------------- 1 | 2 | name: RetroArch Build 3 | 4 | on: 5 | workflow_dispatch: 6 | inputs: 7 | logLevel: 8 | description: 'Reason' 9 | required: true 10 | default: 'Release' 11 | tags: 12 | description: 'Tags' 13 | watch: # this is a hack that lets repo owners trigger a build by starring 14 | types: [started] 15 | if: github.actor == github.event.repository.owner.login 16 | 17 | jobs: 18 | Assets: 19 | name: Collect and bundle assets 20 | runs-on: ubuntu-latest 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | - run: | 25 | git clone https://github.com/libretro/retroarch-assets.git && mv retroarch-assets assets && rm -rf assets/branding assets/wallpaper/* assets/src assets/.git 26 | git clone https://github.com/libretro/common-overlays.git && mv common-overlays overlays && rm -rf overlays/.git 27 | git clone https://github.com/libretro/retroarch-joypad-autoconfig.git && mv retroarch-joypad-autoconfig autoconfig && rm -rf autoconfig/.git 28 | git clone https://github.com/libretro/libretro-super.git && mv libretro-super/dist/info ./ && rm -rf libretro-super 29 | mkdir shaders 30 | - name: fetch shaders 31 | working-directory: shaders 32 | run: | 33 | git clone https://github.com/libretro/common-shaders.git && mv common-shaders shaders_cg && rm -rf shaders_cg/.git 34 | git clone https://github.com/libretro/glsl-shaders.git && mv glsl-shaders shaders_glsl && rm -rf shaders_glsl/.git 35 | git clone https://github.com/libretro/slang-shaders.git && mv slang-shaders shaders_slang && rm -rf shaders_slang/.git 36 | - run: | 37 | git clone https://github.com/libretro/libretro-database.git && mv libretro-database/rdb ./database && mv libretro-database/cht ./cheats && rm -rf libretro-database 38 | git clone https://github.com/libretro/RetroArch.git 39 | mkdir -p filters/audio && mkdir -p filters/video 40 | - name: Build audio filters 41 | working-directory: RetroArch/libretro-common/audio/dsp_filters 42 | run: make && mv *so ../../../../filters/audio && mv *dsp ../../../../filters/audio 43 | - name: Build video filters 44 | working-directory: RetroArch/gfx/video_filters 45 | run: make && mv *so ../../../filters/video && mv *filt ../../../filters/video 46 | - run: rm -rf RetroArch 47 | - name: Zip it up! 48 | run: 7z a -mx=9 -x'!README.md' -x'!LICENSE' assets.7z * 49 | - name: Upload Windows assets bundle 50 | uses: actions/upload-artifact@v2 51 | with: 52 | name: assets.7z 53 | path: assets.7z 54 | - run: | 55 | mkdir retroarch 56 | mv assets retroarch/ 57 | mv overlays retroarch/overlay 58 | mv autoconfig retroarch/ 59 | mv info retroarch/cores 60 | mv shaders retroarch/ 61 | mv filters retroarch/ 62 | mkdir retroarch/database && mv database retroarch/database/rdb 63 | mv cheats retroarch/ 64 | mkdir RetroArch-Linux-x86_64-Nightly.AppImage.config 65 | mv retroarch/ RetroArch-Linux-x86_64-Nightly.AppImage.config 66 | 7z a -mx=9 RetroArch-Linux-x86_64-Nightly.AppImage.config.7z RetroArch-Linux-x86_64-Nightly.AppImage.config 67 | - name: Upload Linux AppImage assets bundle 68 | uses: svenstaro/upload-release-action@v2 69 | with: 70 | repo_token: ${{ secrets.GITHUB_TOKEN }} 71 | file: RetroArch-Linux-x86_64-Nightly.AppImage.config.7z 72 | tag: Assets 73 | asset_name: RetroArch-Linux-x86_64-Nightly.AppImage.config.7z 74 | overwrite: true 75 | 76 | Playtest_Windows_Cores: 77 | name: Collect Cores for Steam Playtest Windows 78 | runs-on: ubuntu-latest 79 | 80 | steps: 81 | - uses: actions/checkout@v2 82 | - name: fetch windows cores 83 | run: | 84 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/pcsx_rearmed_libretro.dll.zip && unzip -o pcsx_rearmed_libretro.dll.zip && rm pcsx_rearmed_libretro.dll.zip && echo https://github.com/libretro/pcsx_rearmed >> pcsx_rearmed_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/pcsx_rearmed/master/COPYING && mv COPYING pcsx_rearmed_libretro-LICENSE.txt 85 | wget http://buildbot.libretro.com/nightly/windows/x86_64/latest/mesen_libretro.dll.zip && unzip -o mesen_libretro.dll.zip && rm mesen_libretro.dll.zip && echo https://github.com/SourMesen/Mesen >> mesen_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/SourMesen/Mesen/master/LICENSE && mv LICENSE mesen_libretro-LICENSE.txt 86 | wget http://buildbot.libretro.com/nightly/windows/x86_64/latest/mesen-s_libretro.dll.zip && unzip -o mesen-s_libretro.dll.zip && rm mesen-s_libretro.dll.zip && echo https://github.com/SourMesen/Mesen-S >> mesen-s_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/SourMesen/Mesen-S/master/LICENSE && mv LICENSE mesen-s_libretro-LICENSE.txt 87 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/kronos_libretro.dll.zip && unzip -o kronos_libretro.dll.zip && rm kronos_libretro.dll.zip && echo https://github.com/libretro/yabause >> kronos_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/yabause/master/yabause/COPYING && mv COPYING kronos_libretro-LICENSE.txt 88 | wget http://buildbot.libretro.com/nightly/windows/x86_64/latest/fbneo_libretro.dll.zip && unzip -o fbneo_libretro.dll.zip && rm fbneo_libretro.dll.zip && echo https://github.com/libretro/FBNeo >> fbneo_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/finalburnneo/FBNeo/master/src/license.txt && mv license.txt fbneo_libretro-LICENSE.txt 89 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/genesis_plus_gx_libretro.dll.zip && unzip -o genesis_plus_gx_libretro.dll.zip && rm genesis_plus_gx_libretro.dll.zip && echo https://github.com/libretro/Genesis-Plus-GX >> genesis_plus_gx_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/Genesis-Plus-GX/master/LICENSE.txt && mv LICENSE.txt genesis_plus_gx_libretro-LICENSE.txt 90 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/genesis_plus_gx_wide_libretro.dll.zip && unzip -o genesis_plus_gx_wide_libretro.dll.zip && rm genesis_plus_gx_wide_libretro.dll.zip 91 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/mgba_libretro.dll.zip && unzip -o mgba_libretro.dll.zip && rm mgba_libretro.dll.zip && echo https://github.com/libretro/mgba >> mgba_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/mgba/master/LICENSE && mv LICENSE mgba_libretro-LICENSE.txt 92 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/parallel_n64_libretro.dll.zip && unzip -o parallel_n64_libretro.dll.zip && rm parallel_n64_libretro.dll.zip && echo https://github.com/libretro/parallel-n64 >> parallel_n64_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/mupen64plus-libretro-nx/develop/LICENSE && mv LICENSE parallel_n64_libretro-LICENSE.txt 93 | wget https://buildbot.libretro.com/nightly/windows/x86_64/latest/stella_libretro.dll.zip && unzip -o stella_libretro.dll.zip && rm stella_libretro.dll.zip && echo https://github.com/stella-emu/stella >> stella_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/stella-emu/stella/master/License.txt && mv License.txt stella_libretro-LICENSE.txt 94 | wget http://buildbot.libretro.com/nightly/windows/x86_64/latest/sameboy_libretro.dll.zip && unzip -o sameboy_libretro.dll.zip && rm sameboy_libretro.dll.zip && echo https://github.com/libretro/SameBoy >> sameboy_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/SameBoy/buildbot/LICENSE && mv LICENSE sameboy_libretro-LICENSE.txt 95 | - name: Zip it up! 96 | run: 7z a -mx=9 -x'!README.md' -x'!LICENSE' windows_cores.7z * 97 | - name: Upload Windows assets bundle 98 | uses: actions/upload-artifact@v2 99 | with: 100 | name: windows_cores.7z 101 | path: windows_cores.7z 102 | - name: Upload cores 103 | uses: svenstaro/upload-release-action@v2 104 | with: 105 | repo_token: ${{ secrets.GITHUB_TOKEN }} 106 | file: windows_cores.7z 107 | tag: Playtest 108 | asset_name: windows_cores.7z 109 | overwrite: true 110 | 111 | Playtest_Linux_Cores: 112 | name: Collect Cores for Steam Playtest Linux 113 | runs-on: ubuntu-latest 114 | 115 | steps: 116 | - uses: actions/checkout@v2 117 | - name: fetch linux cores 118 | run: | 119 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/pcsx_rearmed_libretro.so.zip && unzip -o pcsx_rearmed_libretro.so.zip && rm pcsx_rearmed_libretro.so.zip && echo https://github.com/libretro/pcsx_rearmed >> pcsx_rearmed_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/pcsx_rearmed/master/COPYING && mv COPYING pcsx_rearmed_libretro-LICENSE.txt 120 | wget http://buildbot.libretro.com/nightly/linux/x86_64/latest/mesen_libretro.so.zip && unzip -o mesen_libretro.so.zip && rm mesen_libretro.so.zip && echo https://github.com/SourMesen/Mesen >> mesen_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/SourMesen/Mesen/master/LICENSE && mv LICENSE mesen_libretro-LICENSE.txt 121 | wget http://buildbot.libretro.com/nightly/linux/x86_64/latest/mesen-s_libretro.so.zip && unzip -o mesen-s_libretro.so.zip && rm mesen-s_libretro.so.zip && echo https://github.com/SourMesen/Mesen-S >> mesen-s_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/SourMesen/Mesen-S/master/LICENSE && mv LICENSE mesen-s_libretro-LICENSE.txt 122 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/kronos_libretro.so.zip && unzip -o kronos_libretro.so.zip && rm kronos_libretro.so.zip && echo https://github.com/libretro/yabause >> kronos_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/yabause/master/yabause/COPYING && mv COPYING kronos_libretro-LICENSE.txt 123 | wget http://buildbot.libretro.com/nightly/linux/x86_64/latest/fbneo_libretro.so.zip && unzip -o fbneo_libretro.so.zip && rm fbneo_libretro.so.zip && echo https://github.com/libretro/FBNeo >> fbneo_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/finalburnneo/FBNeo/master/src/license.txt && mv license.txt fbneo_libretro-LICENSE.txt 124 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/genesis_plus_gx_libretro.so.zip && unzip -o genesis_plus_gx_libretro.so.zip && rm genesis_plus_gx_libretro.so.zip && echo https://github.com/libretro/Genesis-Plus-GX >> genesis_plus_gx_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/Genesis-Plus-GX/master/LICENSE.txt && mv LICENSE.txt genesis_plus_gx_libretro-LICENSE.txt 125 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/genesis_plus_gx_wide_libretro.so.zip && unzip -o genesis_plus_gx_wide_libretro.so.zip && rm genesis_plus_gx_wide_libretro.so.zip 126 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/mgba_libretro.so.zip && unzip -o mgba_libretro.so.zip && rm mgba_libretro.so.zip && echo https://github.com/libretro/mgba >> mgba_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/mgba/master/LICENSE && mv LICENSE mgba_libretro-LICENSE.txt 127 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/parallel_n64_libretro.so.zip && unzip -o parallel_n64_libretro.so.zip && rm parallel_n64_libretro.so.zip && echo https://github.com/libretro/parallel-n64 >> parallel_n64_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/mupen64plus-libretro-nx/develop/LICENSE && mv LICENSE parallel_n64_libretro-LICENSE.txt 128 | wget https://buildbot.libretro.com/nightly/linux/x86_64/latest/stella_libretro.so.zip && unzip -o stella_libretro.so.zip && rm stella_libretro.so.zip && echo https://github.com/stella-emu/stella >> stella_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/stella-emu/stella/master/License.txt && mv License.txt stella_libretro-LICENSE.txt 129 | wget http://buildbot.libretro.com/nightly/linux/x86_64/latest/sameboy_libretro.so.zip && unzip -o sameboy_libretro.so.zip && rm sameboy_libretro.so.zip && echo https://github.com/libretro/SameBoy >> sameboy_libretro-SOURCE.txt && wget https://raw.githubusercontent.com/libretro/SameBoy/buildbot/LICENSE && mv LICENSE sameboy_libretro-LICENSE.txt 130 | - name: Zip it up! 131 | run: 7z a -mx=9 -x'!README.md' -x'!LICENSE' linux_cores.7z * 132 | - name: Upload Linux assets bundle 133 | uses: actions/upload-artifact@v2 134 | with: 135 | name: linux_cores.7z 136 | path: linux_cores.7z 137 | - name: Upload cores 138 | uses: svenstaro/upload-release-action@v2 139 | with: 140 | repo_token: ${{ secrets.GITHUB_TOKEN }} 141 | file: linux_cores.7z 142 | tag: Playtest 143 | asset_name: linux_cores.7z 144 | overwrite: true 145 | 146 | Linux_Steam: 147 | name: RetroArch Steam Nightly Linux 148 | runs-on: ubuntu-latest 149 | 150 | steps: 151 | - uses: actions/checkout@v2 152 | - name: Fetch dependencies 153 | run: sudo apt-get update ; sudo apt-get install libasound2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libc6-dev libdbus-1-dev libdrm-dev libegl1-mesa-dev libfreetype6-dev libgbm-dev libglm-dev libjack-jackd2-dev libopenal-dev libpulse-dev libsdl2-dev libswscale-dev libudev-dev libusb-1.0-0-dev libv4l-dev libvulkan-dev libxinerama-dev libxml2-dev libxv-dev libxxf86vm-dev pkg-config python3-dev qt5-default qtbase5-dev wayland-protocols x11proto-xext-dev zlib1g-dev libx11-dev libx11-xcb-dev 154 | - name: Fetch linuxdeploy 155 | run: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage 156 | - name: Fetch RetroArch source tree 157 | run: git clone https://github.com/libretro/RetroArch.git 158 | - name: Build RetroArch 159 | run: cd RetroArch && mkdir AppDir && ./configure --enable-steam --disable-qt --prefix=/usr && make -j8 && make install DESTDIR=AppDir prefix=/usr && ../linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage && mv RetroArch*.AppImage ../RetroArch-Linux-x86_64-Nightly.AppImage 160 | - name: Check AppImage for common issues 161 | run: wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage && chmod +x appimagelint-x86_64.AppImage && ./appimagelint-x86_64.AppImage RetroArch-Linux-x86_64-Nightly.AppImage 162 | - name: Upload RetroArch AppImage 163 | uses: svenstaro/upload-release-action@v2 164 | with: 165 | repo_token: ${{ secrets.GITHUB_TOKEN }} 166 | file: RetroArch-Linux-x86_64-Nightly.AppImage 167 | tag: Steam 168 | asset_name: RetroArch-Linux-x86_64-Nightly.AppImage 169 | overwrite: true 170 | 171 | Linux_LTS_Steam: 172 | name: RetroArch Steam Nightly LTS Linux 173 | runs-on: ubuntu-16.04 174 | 175 | steps: 176 | - uses: actions/checkout@v2 177 | - name: Fetch dependencies 178 | run: sudo apt-get update ; sudo apt-get install libasound2-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libc6-dev libdbus-1-dev libdrm-dev libegl1-mesa-dev libfreetype6-dev libgbm-dev libglm-dev libjack-jackd2-dev libopenal-dev libpulse-dev libsdl2-dev libswscale-dev libudev-dev libusb-1.0-0-dev libv4l-dev libvulkan-dev libxinerama-dev libxml2-dev libxv-dev libxxf86vm-dev pkg-config python3-dev qt5-default qtbase5-dev wayland-protocols x11proto-xext-dev zlib1g-dev libx11-dev libx11-xcb-dev 179 | - name: Fetch linuxdeploy 180 | run: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage && chmod +x linuxdeploy-x86_64.AppImage 181 | - name: Fetch RetroArch source tree 182 | run: git clone https://github.com/libretro/RetroArch.git 183 | - name: Build RetroArch 184 | run: cd RetroArch && mkdir AppDir && ./configure --enable-steam --disable-qt --prefix=/usr && make -j8 && make install DESTDIR=AppDir prefix=/usr && ../linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage && mv RetroArch*.AppImage ../RetroArch-Linux-x86_64-Nightly.AppImage 185 | - name: Check AppImage for common issues 186 | run: wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage && chmod +x appimagelint-x86_64.AppImage && ./appimagelint-x86_64.AppImage RetroArch-Linux-x86_64-Nightly.AppImage 187 | - name: Upload RetroArch AppImage 188 | uses: svenstaro/upload-release-action@v2 189 | with: 190 | repo_token: ${{ secrets.GITHUB_TOKEN }} 191 | file: RetroArch-Linux-x86_64-Nightly.AppImage 192 | tag: Steam 193 | asset_name: RetroArch-Linux-x86_64-Nightly.AppImage 194 | overwrite: true 195 | 196 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: c++ 2 | os: windows 3 | 4 | before_install: 5 | - |- 6 | case $TRAVIS_OS_NAME in 7 | windows) 8 | [[ ! -f C:/tools/msys64/msys2_shell.cmd ]] && rm -rf C:/tools/msys64 9 | choco uninstall -y mingw 10 | choco upgrade --no-progress -y msys2 11 | export msys2='cmd //C RefreshEnv.cmd ' 12 | export msys2+='& set MSYS=winsymlinks:nativestrict ' 13 | export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start' 14 | export mingw64="$msys2 -mingw64 -full-path -here -c "\"\$@"\" --" 15 | export msys2+=" -msys2 -c "\"\$@"\" --" 16 | $msys2 pacman --sync --noconfirm --needed mingw-w64-x86_64-toolchain 17 | ## Install more MSYS2 packages from https://packages.msys2.org/base here 18 | taskkill //IM gpg-agent.exe //F # https://travis-ci.community/t/4967 19 | export PATH=/C/tools/msys64/mingw64/bin:$PATH 20 | export MAKE=mingw32-make # so that Autotools can find it 21 | ;; 22 | esac 23 | 24 | before_cache: 25 | - |- 26 | case $TRAVIS_OS_NAME in 27 | windows) 28 | # https://unix.stackexchange.com/a/137322/107554 29 | $msys2 pacman --sync --clean --noconfirm 30 | ;; 31 | esac 32 | 33 | cache: 34 | directories: 35 | - $HOME/AppData/Local/Temp/chocolatey 36 | - /C/tools/msys64 37 | 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 hizzlekizzle 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Internal Use --------------------------------------------------------------------------------