diff --git a/emu-configs/mame/cfg/default.cfg b/emu-configs/mame/cfg/default.cfg new file mode 100644 index 00000000..7fbdab04 --- /dev/null +++ b/emu-configs/mame/cfg/default.cfg @@ -0,0 +1,53 @@ + + + + + + + + JOYCODE_1_HAT1UP + + + + + JOYCODE_1_SELECT + + + + + KEYCODE_LCONTROL KEYCODE_M + + + + + KEYCODE_LCONTROL KEYCODE_P + + + + + KEYCODE_LCONTROL KEYCODE_MINUSPAD + + + + + KEYCODE_LCONTROL KEYCODE_S + + + + + KEYCODE_LCONTROL KEYCODE_A + + + + + KEYCODE_LCONTROL KEYCODE_PLUSPAD + + + + + KEYCODE_LCONTROL KEYCODE_X + + + + + diff --git a/emu-configs/mame/mame.ini b/emu-configs/mame/mame.ini new file mode 100644 index 00000000..115e6d2b --- /dev/null +++ b/emu-configs/mame/mame.ini @@ -0,0 +1,411 @@ +# +# CORE CONFIGURATION OPTIONS +# +readconfig 1 +writeconfig 0 + +# +# CORE SEARCH PATH OPTIONS +# +homepath /var/config/mame +rompath /home/deck/retrodeck/roms/arcade +hashpath /app/share/mame/hash +samplepath /app/share/mame/samples +artpath $HOME/retrodeck/downloaded_media/arcade/screenshots/ +ctrlrpath /app/share/mame/ctrlr +inipath /var/config/mame +fontpath /app/bin/ +cheatpath /app/share/mame/cheat +crosshairpath /app/share/mame/crosshair +pluginspath /app/share/mame/plugins +languagepath /app/share/mame/language +swpath /app/share/mame/software + +# +# CORE OUTPUT DIRECTORY OPTIONS +# +cfg_directory /var/config/mame/cfg +nvram_directory /var/config/mame/nvram +input_directory /var/config/mame/inp +state_directory /var/config/mame/sta +snapshot_directory $HOME/retrodeck/screenshots +diff_directory /var/config/mame/diff +comment_directory /var/config/mame/comments +share_directory /var/config/mame/share + +# +# CORE STATE/PLAYBACK OPTIONS +# +state +autosave 0 +rewind 0 +rewind_capacity 100 +playback +record +exit_after_playback 0 +mngwrite +aviwrite +wavwrite +snapname %g/%i +snapsize auto +snapview auto +snapbilinear 1 +statename %g +burnin 0 + +# +# CORE PERFORMANCE OPTIONS +# +autoframeskip 0 +frameskip 0 +seconds_to_run 0 +throttle 1 +sleep 1 +speed 1.0 +refreshspeed 0 +lowlatency 0 + +# +# CORE RENDER OPTIONS +# +keepaspect 1 +unevenstretch 1 +unevenstretchx 0 +unevenstretchy 0 +autostretchxy 0 +intoverscan 0 +intscalex 0 +intscaley 0 + +# +# CORE ROTATION OPTIONS +# +rotate 1 +ror 0 +rol 0 +autoror 0 +autorol 0 +flipx 0 +flipy 0 + +# +# CORE ARTWORK OPTIONS +# +artwork_crop 0 +fallback_artwork +override_artwork + +# +# CORE SCREEN OPTIONS +# +brightness 1.0 +contrast 1.0 +gamma 1.0 +pause_brightness 0.65 +effect none + +# +# CORE VECTOR OPTIONS +# +beam_width_min 1.0 +beam_width_max 1.0 +beam_dot_size 1.0 +beam_intensity_weight 0 +flicker 0 + +# +# CORE SOUND OPTIONS +# +samplerate 48000 +samples 1 +volume 0 +compressor 1 +speaker_report 0 + +# +# CORE INPUT OPTIONS +# +coin_lockout 1 +ctrlr +mouse 0 +joystick 1 +lightgun 0 +multikeyboard 0 +multimouse 0 +steadykey 0 +ui_active 0 +offscreen_reload 0 +joystick_map auto +joystick_deadzone 0.15 +joystick_saturation 0.85 +joystick_threshold 0.3 +natural 0 +joystick_contradictory 0 +coin_impulse 0 + +# +# CORE INPUT AUTOMATIC ENABLE OPTIONS +# +paddle_device keyboard +adstick_device keyboard +pedal_device keyboard +dial_device keyboard +trackball_device keyboard +lightgun_device keyboard +positional_device keyboard +mouse_device mouse + +# +# CORE DEBUGGING OPTIONS +# +verbose 0 +log 0 +oslog 0 +debug 0 +update_in_pause 0 +debugscript +debuglog 0 + +# +# CORE COMM OPTIONS +# +comm_localhost 0.0.0.0 +comm_localport 15112 +comm_remotehost 127.0.0.1 +comm_remoteport 15112 +comm_framesync 0 + +# +# CORE MISC OPTIONS +# +drc 1 +drc_use_c 0 +drc_log_uml 0 +drc_log_native 0 +bios +cheat 0 +skip_gameinfo 1 +uifont default +ui cabinet +ramsize +confirm_quit 0 +ui_mouse 1 +language +nvram_save 1 + +# +# SCRIPTING OPTIONS +# +autoboot_command +autoboot_delay 0 +autoboot_script +console 0 +plugins 1 +plugin +noplugin + +# +# HTTP SERVER OPTIONS +# +http 0 +http_port 8080 +http_root web + +# +# OSD INPUT MAPPING OPTIONS +# +uimodekey auto +controller_map none +background_input 0 + +# +# OSD FONT OPTIONS +# +uifontprovider auto + +# +# OSD OUTPUT OPTIONS +# +output auto + +# +# OSD INPUT OPTIONS +# +keyboardprovider auto +mouseprovider auto +lightgunprovider auto +joystickprovider auto + +# +# OSD DEBUGGING OPTIONS +# +debugger auto +debugger_port 23946 +debugger_font auto +debugger_font_size 0 +watchdog 0 + +# +# OSD PERFORMANCE OPTIONS +# +numprocessors auto +bench 0 + +# +# OSD VIDEO OPTIONS +# +video opengl +numscreens 1 +window 0 +maximize 1 +waitvsync 0 +syncrefresh 0 +monitorprovider auto + +# +# OSD PER-WINDOW VIDEO OPTIONS +# +screen auto +aspect auto +resolution auto +view auto +screen0 auto +aspect0 auto +resolution0 auto +view0 auto +screen1 auto +aspect1 auto +resolution1 auto +view1 auto +screen2 auto +aspect2 auto +resolution2 auto +view2 auto +screen3 auto +aspect3 auto +resolution3 auto +view3 auto + +# +# OSD FULL SCREEN OPTIONS +# +switchres 0 + +# +# OSD ACCELERATED VIDEO OPTIONS +# +filter 1 +prescale 1 + +# +# OpenGL-SPECIFIC OPTIONS +# +gl_forcepow2texture 0 +gl_notexturerect 0 +gl_vbo 1 +gl_pbo 1 +gl_glsl 0 +gl_glsl_filter 1 +glsl_shader_mame0 none +glsl_shader_mame1 none +glsl_shader_mame2 none +glsl_shader_mame3 none +glsl_shader_mame4 none +glsl_shader_mame5 none +glsl_shader_mame6 none +glsl_shader_mame7 none +glsl_shader_mame8 none +glsl_shader_mame9 none +glsl_shader_screen0 none +glsl_shader_screen1 none +glsl_shader_screen2 none +glsl_shader_screen3 none +glsl_shader_screen4 none +glsl_shader_screen5 none +glsl_shader_screen6 none +glsl_shader_screen7 none +glsl_shader_screen8 none +glsl_shader_screen9 none + +# +# OSD SOUND OPTIONS +# +sound auto +audio_latency 2 + +# +# PORTAUDIO OPTIONS +# +pa_api none +pa_device none +pa_latency 0 + +# +# OSD MIDI OPTIONS +# +midiprovider auto + +# +# OSD EMULATED NETWORKING OPTIONS +# +networkprovider auto + +# +# BGFX POST-PROCESSING OPTIONS +# +bgfx_path bgfx +bgfx_backend auto +bgfx_debug 0 +bgfx_screen_chains +bgfx_shadow_mask slot-mask.png +bgfx_lut lut-default.png +bgfx_avi_name auto + +# +# SDL PERFORMANCE OPTIONS +# +sdlvideofps 0 + +# +# SDL VIDEO OPTIONS +# +centerh 1 +centerv 1 +scalemode none + +# +# SDL FULL SCREEN OPTIONS +# +useallheads 0 +attach_window + +# +# SDL KEYBOARD MAPPING +# +keymap 0 +keymap_file keymap.dat + +# +# SDL JOYSTICK MAPPING +# +sixaxis 0 + +# +# SDL LIGHTGUN MAPPING +# +lightgun_index1 auto +lightgun_index2 auto +lightgun_index3 auto +lightgun_index4 auto +lightgun_index5 auto +lightgun_index6 auto +lightgun_index7 auto +lightgun_index8 auto + +# +# SDL LOW-LEVEL DRIVER OPTIONS +# +videodriver auto +renderdriver auto +audiodriver auto +gl_lib auto diff --git a/emu-configs/mame/ui.ini b/emu-configs/mame/ui.ini new file mode 100644 index 00000000..db76cbf3 --- /dev/null +++ b/emu-configs/mame/ui.ini @@ -0,0 +1,70 @@ +# +# UI SEARCH PATH OPTIONS +# +historypath history;dats;. +categorypath folders +cabinets_directory cabinets;cabdevs +cpanels_directory cpanel +pcbs_directory pcb +flyers_directory flyers +titles_directory titles +ends_directory ends +marquees_directory marquees;$HOME/retrodeck/downloaded_media/arcade/marquees +artwork_preview_directory "artwork preview;artpreview" +bosses_directory bosses +logos_directory logo +scores_directory scores +versus_directory versus +gameover_directory gameover +howto_directory howto +select_directory select +icons_directory icons +covers_directory covers;$HOME/retrodeck/downloaded_media/arcade/covers +ui_path ui + +# +# UI MISC OPTIONS +# +system_names +skip_warnings 1 +unthrottle_mute 0 + +# +# UI OPTIONS +# +infos_text_size 0.75 +font_rows 30 +ui_border_color ffffffff +ui_bg_color ef101030 +ui_clone_color ff808080 +ui_dipsw_color ffffff00 +ui_gfxviewer_color ef101030 +ui_mousedown_bg_color b0606000 +ui_mousedown_color ffffff80 +ui_mouseover_bg_color 70404000 +ui_mouseover_color ffffff80 +ui_selected_bg_color ef808000 +ui_selected_color ffffff00 +ui_slider_color ffffffff +ui_subitem_color ffffffff +ui_text_bg_color ef000000 +ui_text_color ffffffff +ui_unavail_color ff404040 + +# +# SYSTEM/SOFTWARE SELECTION MENU OPTIONS +# +hide_main_panel 0 +use_background 1 +skip_biosmenu 0 +skip_partsmenu 0 +remember_last 0 +last_used_filter Available +system_right_panel image +software_right_panel image +system_right_image cover +software_right_image snap +enlarge_snaps 1 +forced4x3 1 +info_audit_enabled 0 +hide_romless 1 diff --git a/emu-configs/melonds/melonDS.ini b/emu-configs/melonds/melonDS.ini index 12e7e3a8..3cbd1228 100644 --- a/emu-configs/melonds/melonDS.ini +++ b/emu-configs/melonds/melonDS.ini @@ -129,7 +129,7 @@ SaveFilePath=RETRODECKHOMEDIR/saves/nds/melonds SavestatePath=RETRODECKHOMEDIR/states/nds/melonds CheatFilePath= EnableCheats=0 -MouseHide=0 +MouseHide=1 MouseHideSeconds=5 PauseLostFocus=1 DSBatteryLevelOkay=1 diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index d24d2e2e..3c473855 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1300,10 +1300,10 @@ Sony PlayStation %ROMPATH%/psx .bin .BIN .cbn .CBN .ccd .CCD .chd .CHD .cue .CUE .ecm .ECM .exe .EXE .img .IMG .iso .ISO .m3u .M3U .mdf .MDF .mds .MDS .minipsf .MINIPSF .pbp .PBP .psexe .PSEXE .psf .PSF .toc .TOC .z .Z .znx .ZNX .7z .7Z .zip .ZIP + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mednafen_psx_hw_libretro.so %ROM% - %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx_rearmed_libretro.so %ROM% - %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/swanstation_libretro.so %ROM% + %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx_rearmed_libretro.so %ROM% %EMULATOR_DUCKSTATION% -batch %ROM% psx diff --git a/flathub.yml b/flathub.yml index 0155923d..36a4dc59 100644 --- a/flathub.yml +++ b/flathub.yml @@ -1,18 +1,17 @@ app-id: net.retrodeck.retrodeck runtime: org.kde.Platform -runtime-version: 5.15-21.08 -#runtime-version: 6.3 # bumped because of pcsx2-qt +runtime-version: 5.15-22.08 sdk: org.kde.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3 #- org.freedesktop.Sdk.Extension.dotnet6 # Needed for Ryujinx - Removed, check if it's not breaking something else base: io.qt.qtwebengine.BaseApp # Needed for Yuzu -base-version: 5.15-21.08 # Needed for Yuzu +base-version: 5.15-22.08 # Needed for Yuzu command: retrodeck.sh finish-args: - - --socket=x11 - #- --socket=wayland + - --socket=fallback-x11 + - --socket=wayland - --socket=pulseaudio - --share=ipc - --share=network @@ -24,15 +23,11 @@ finish-args: - --talk-name=org.freedesktop.ScreenSaver - --talk-name=org.freedesktop.PowerManagement.Inhibit - --talk-name=org.freedesktop.login1.Manager + - --talk-name=org.freedesktop.Flatpak - --filesystem=xdg-run/app/com.discordapp.Discord:create - # Yuzu - # - --filesystem=home:ro # This may break Yuzu, let's see - # - --filesystem=/run/media:ro # Dolphin - --allow=bluetooth #- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something - # rpcs3 - #- --socket=fallback-x11 modules: - name: retrodeck diff --git a/functions.sh b/functions.sh index 117ffdda..00348f35 100644 --- a/functions.sh +++ b/functions.sh @@ -738,7 +738,7 @@ check_for_version_update() { choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Ignore this version" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Update Available" \ - --text="There is a more recent build of the RetroDECK cooker branch. Would you like to update to it?\nIf you would like to skip reminders about this version, click \"Ignore this version\".\nYou will be reminded again at the next version update.\n\nIf you would like to disable these update notifications entirely, disable Online Update Checks in the Configurator.") + --text="There is a more recent build of the RetroDECK cooker branch.\n\nWould you like to update to it?\nIf you would like to skip reminders about this version, click \"Ignore this version\".\nYou will be reminded again at the next version update.\n\nIf you would like to disable these update notifications entirely, disable Online Update Checks in the Configurator.") rc=$? # Capture return code, as "Yes" button has no text value if [[ $rc == "1" ]]; then # If any button other than "Yes" was clicked if [[ $choice == "Ignore this version" ]]; then diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index db053a88..b9d01b4b 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -1,25 +1,17 @@ app-id: net.retrodeck.retrodeck runtime: org.kde.Platform runtime-version: 5.15-22.08 -#runtime-version: 6.3 # bumped because of pcsx2-qt sdk: org.kde.Sdk sdk-extensions: - org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3 #- org.freedesktop.Sdk.Extension.dotnet6 # Needed for Ryujinx - Removed, check if it's not breaking something else base: io.qt.qtwebengine.BaseApp # Needed for Yuzu base-version: 5.15-22.08 # Needed for Yuzu -# add-extensions: -# org.freedesktop.Platform.ffmpeg-full: -# directory: lib/ffmpeg -# add-ld-path: . -# version: '22.08' -# autodownload: true -# autodelete: false command: retrodeck.sh finish-args: - - --socket=x11 - #- --socket=wayland + - --socket=fallback-x11 + - --socket=wayland - --socket=pulseaudio - --share=ipc - --share=network @@ -33,14 +25,9 @@ finish-args: - --talk-name=org.freedesktop.login1.Manager - --talk-name=org.freedesktop.Flatpak - --filesystem=xdg-run/app/com.discordapp.Discord:create - # Yuzu - # - --filesystem=home:ro # This may break Yuzu, let's see - # - --filesystem=/run/media:ro # Dolphin - --allow=bluetooth #- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something - # rpcs3 - #- --socket=fallback-x11 cleanup: # ES-DE @@ -80,8 +67,7 @@ modules: # [ ] Update the appdata.xml with the version number and notes # [ ] change branch into main in version-initialization (first one) # [ ] change branch into main in retrodeck module (last one) - # [ ] if header (before modules) was edited, edit it even in flathub.yml - # [ ] Vita3K: update branch to main (and remember to download it the first time) + # [ ] >>>>> if header (before modules) was edited, edit it even in flathub.yml # - name: version-initialization buildsystem: simple @@ -119,38 +105,6 @@ modules: post-install: - ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||: - # pcsx2-qt needs QT6, maybe others, here until every qt emulator will support qt6 (not yuzu atm) - # from: https://github.com/flathub/org.profex_xrd.Profex - - # - name: qt6-core5compat - # buildsystem: cmake-ninja - # builddir: true - # sources: - # - type: archive - # url: https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qt5compat-everywhere-src-6.2.4.tar.xz - # sha256: 5de2b9e25bf7de161fbb88ecdd468ed1788bc899392fc05ed80aa590ebb352fa - # x-checker-data: - # type: html - # url: https://download.qt.io/official_releases/qt/6.2/ - # version-pattern: '>([\d\.-]*)/<' - # url-template: https://download.qt.io/official_releases/qt/6.2/$version/submodules/qt5compat-everywhere-src-$version.tar.xz - # post-install: - # - mkdir -p /app/lib/mkspecs - # - cp -R /app/mkspecs/* /app/lib/mkspecs/ - # - ln -fsr ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/libQt*.so* -t ${FLATPAK_DEST}/lib/ - # - sed -i 's/\\([0-9]\\+\\.[0-9]\\+\\)\\.[0-9]\\+ ${_Qt6.*_FIND_VERSION_EXACT}/\\1/' - # ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake - # - sed -e 's@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" - # \"/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/cmake/\" NO_DEFAULT_PATH@' -i - # ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake - # - sed -e 's@\\($$QT_MODULE_BIN_BASE\\)@\\1 '${FLATPAK_DEST}'/bin @' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri - # - sed -e 's@\\($$QT_MODULE_INCLUDE_BASE \\)@\\1'${FLATPAK_DEST}'/include @' - # -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri - # - sed -e 's@$$QT_MODULE_INCLUDE_BASE/@'${FLATPAK_DEST}'/include/@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri - # - sed -e 's@$$QT_MODULE_LIB_BASE@'${FLATPAK_DEST}'/lib@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri - # cleanup: - # - /app/mkspecs - # mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails, # this affects even the shared-modules's glu so I have to replace it temporarly # more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335 @@ -289,7 +243,7 @@ modules: - name: emulationstation-de buildsystem: cmake-ninja config-opts: - - DRETRODECK=on + - -DRETRODECK=on cleanup: - es-app - es-core @@ -334,7 +288,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: 938ab716bd290b0f469068500966a834b5782929 + commit: 6616b807edea5b56683e9fbca8b003b436c22b13 - type: file path: rd-submodules/retroarch/retroarch.cfg post-install: @@ -372,7 +326,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: 938ab716bd290b0f469068500966a834b5782929 + commit: 6616b807edea5b56683e9fbca8b003b436c22b13 - name: retroarch-filers-audio subdir: libretro-common/audio/dsp_filters make-install-args: @@ -380,7 +334,7 @@ modules: sources: - type: git url: https://github.com/libretro/RetroArch.git - commit: 938ab716bd290b0f469068500966a834b5782929 + commit: 6616b807edea5b56683e9fbca8b003b436c22b13 - name: retroarch-assets make-install-args: - PREFIX=${FLATPAK_DEST} @@ -717,24 +671,6 @@ modules: # XEMU - START # https://github.com/flathub/app.xemu.xemu - # certificate issue, check libglu module for more info - # - name: libglu - # buildsystem: meson - # cleanup: - # - /include - # - /lib/debug - # - /lib/pkgconfig - # - /lib/*.a - # sources: - # - type: archive - # url: http://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz - # sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 - # x-checker-data: - # type: anitya - # project-id: 13518 - # stable-only: true - # url-template: http://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz - - name: libpcap buildsystem: cmake-ninja cleanup: @@ -924,67 +860,6 @@ modules: # # PRIMEHACK - END - # # PRIMEHACK APPIMAGE START - - # Duckstation - START - # https://github.com/flathub/org.duckstation.DuckStation - # Disabled until we completely switch to QT6 - - # - name: duckstation - # buildsystem: cmake-ninja - # no-make-install: true - # builddir: true - # config-opts: - # - -DCMAKE_BUILD_TYPE=RelWithDebInfo - # - -DUSE_EGL=ON - # - -DUSE_SDL2=ON - # - -DUSE_WAYLAND=ON - # - -DUSE_X11=ON - # - -DUSE_DRMKMS=ON - # - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON - # post-install: - # - install -m755 bin/duckstation-qt /app/bin - # - cp -r ../data/* bin/translations /app/bin - # sources: - # - type: git - # url: https://github.com/stenzek/duckstation.git - # commit: 6f709468601183083b8581d4952aaba7baf77084 - # # Cloning dep/msvc/qt is only necessary for Windows - # disable-submodules: true - - # Duckstation - END - - # Duckstation-DontUpdate - START - # Old version moved to QT6 so it's either this or AppImage - # But AppImage is a single one that keep getting updated at the same link so the sha (that's mandatory) will break the build - # So yeah we're stuck with this for a while - - # - name: duckstation-DontUpdate - # buildsystem: cmake-ninja - # no-make-install: true - # builddir: true - # config-opts: - # - -DCMAKE_BUILD_TYPE=Release - # - -DUSE_EGL=ON - # - -DUSE_SDL2=ON - # - -DUSE_WAYLAND=ON - # - -DUSE_X11=ON - # - -DUSE_DRMKMS=ON - # - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON - # post-install: - # - install -m 755 -t /app/bin/ bin/duckstation-nogui bin/duckstation-qt - # - |- - # for px in 16 32 48 64 128 256; do - # install -Dm644 ../extras/icons/icon-${px}px.png /app/share/icons/hicolor/${px}x${px}/apps/org.duckstation.DuckStation.png - # done - # - cp -r ../data/* bin/translations /app/bin - # sources: - # - type: git - # url: https://github.com/stenzek/duckstation.git - # commit: 3fb61865e505ba639609fbf16cb8bdf5c66e020c - - # Duckstation-DontUpdate - END - # Duckstation-AppImage - START # https://github.com/stenzek/duckstation/releases/tag/preview @@ -1175,46 +1050,6 @@ modules: # Cemu - END - # Ryujinx Appimage - START - # https://ryujinx.org/download - - # - name: Ryujinx - # buildsystem: simple - # build-commands: - # - | - # tar -zxvf ryujinx-1.1.685-linux_x64.tar.gz - # mv -v publish ${FLATPAK_DEST}/ryujinx - # ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx - # sources: - # - type: file - # url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.685/ryujinx-1.1.685-linux_x64.tar.gz - # sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15 - - # Ryujinx Appimage - END - - # Vita3K - START - # NOTE: this is a continuos release, it's provided but not supported - # to update this module: - # wget https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -O rd-submodules/vita3k/vita3k-14-01-23.zip - # sha256sum rd-submodules/vita3k/vita3k*.zip - # change url and sha - # check the branch in the url - - - name: Vita3K - buildsystem: simple - build-commands: - - | - mkdir -p ${FLATPAK_DEST}/vita3k - cp -r * ${FLATPAK_DEST}/vita3k - chmod +x ${FLATPAK_DEST}/vita3k/Vita3K - ln -s ${FLATPAK_DEST}/vita3k/Vita3K /app/bin/Vita3K - sources: - - type: archive - url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip - sha256: VITASHAPLACEHOLDER - - # Vita3K - END - # External manifests end - name: retrodeck @@ -1281,4 +1116,4 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker-0.7.0b + branch: cooker-0.7.0b \ No newline at end of file diff --git a/rd-submodules/mame/floppy.patch b/rd-submodules/mame/floppy.patch new file mode 100644 index 00000000..1754f616 --- /dev/null +++ b/rd-submodules/mame/floppy.patch @@ -0,0 +1,41 @@ +diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp +index 3c00336d..cda94d92 100644 +--- a/src/devices/imagedev/floppy.cpp ++++ b/src/devices/imagedev/floppy.cpp +@@ -1707,9 +1707,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + { + idx = m_spin_playback_sample; + sampleend = m_sample[idx].data.size(); +- out = m_sample[idx].data[m_spin_samplepos++]; +- +- if (m_spin_samplepos >= sampleend) ++ m_spin_samplepos++; ++ if (m_spin_samplepos < sampleend) ++ out = m_sample[idx].data[m_spin_samplepos]; ++ else + { + // Motor sample has completed + switch (m_spin_playback_sample) +@@ -1763,7 +1764,8 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + idx = m_step_base + m_seek_playback_sample; + sampleend = m_sample[idx].data.size(); + // Mix it into the stream value +- out += m_sample[idx].data[(int)m_seek_samplepos]; ++ if (m_seek_samplepos < sampleend) ++ out += m_sample[idx].data[(int)m_seek_samplepos]; + // By adding different values than 1, we can change the playback speed + // This will be used to adjust the seek sound + m_seek_samplepos += m_seek_pitch; +@@ -1781,8 +1783,10 @@ void floppy_sound_device::sound_stream_update(sound_stream &stream, std::vector< + sampleend = m_sample[idx].data.size(); + + // Mix it into the stream value +- out += m_sample[idx].data[m_step_samplepos++]; +- if (m_step_samplepos >= sampleend) ++ m_step_samplepos++; ++ if (m_step_samplepos < sampleend) ++ out += m_sample[idx].data[m_step_samplepos]; ++ else + { + // Step sample done + m_step_samplepos = 0; \ No newline at end of file diff --git a/rd-submodules/mame/mame.ini b/rd-submodules/mame/mame.ini new file mode 100644 index 00000000..0164486f --- /dev/null +++ b/rd-submodules/mame/mame.ini @@ -0,0 +1,33 @@ +# +# CORE SEARCH PATH OPTIONS +# +homepath $HOME/.mame +rompath /app/share/mame/roms +hashpath /app/share/mame/hash +samplepath /app/share/mame/samples +artpath /app/share/mame/artwork +ctrlrpath /app/share/mame/ctrlr +inipath $HOME/.mame;/app/share/mame/ini +fontpath /app/bin/ +cheatpath /app/share/mame/cheat +crosshairpath /app/share/mame/crosshair +pluginspath /app/share/mame/plugins +languagepath /app/share/mame/language +swpath /app/share/mame/software + +# +# CORE OUTPUT DIRECTORY OPTIONS +# +cfg_directory $HOME/.mame/cfg +nvram_directory $HOME/.mame/nvram +input_directory $HOME/.mame/inp +state_directory $HOME/.mame/sta +snapshot_directory $HOME/.mame/snap +diff_directory $HOME/.mame/diff +comment_directory $HOME/.mame/comments +share_directory $HOME/.mame/share + +# +# OSD VIDEO OPTIONS +# +video opengl \ No newline at end of file diff --git a/rd-submodules/mame/sound.patch b/rd-submodules/mame/sound.patch new file mode 100644 index 00000000..84b51ff6 --- /dev/null +++ b/rd-submodules/mame/sound.patch @@ -0,0 +1,28 @@ +diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp +index a0293063..c4989abb 100644 +--- a/src/emu/sound.cpp ++++ b/src/emu/sound.cpp +@@ -761,6 +761,9 @@ read_stream_view sound_stream::update_view(attotime start, attotime end, u32 out + } + g_profiler.stop(); + ++ if (!m_output_view[outputnum].valid()) ++ m_output_view[outputnum] = empty_view(start, end); ++ + // return the requested view + return read_stream_view(m_output_view[outputnum], start); + } +diff --git a/src/emu/sound.h b/src/emu/sound.h +index 15f6a574..bfa45c45 100644 +--- a/src/emu/sound.h ++++ b/src/emu/sound.h +@@ -284,6 +284,9 @@ public: + return *this; + } + ++ // check basic constraints ++ bool valid() const { return m_buffer != nullptr; } ++ + // return the local gain + sample_t gain() const { return m_gain; } + \ No newline at end of file diff --git a/rd-submodules/mame/ym3802.patch b/rd-submodules/mame/ym3802.patch new file mode 100644 index 00000000..a48925ab --- /dev/null +++ b/rd-submodules/mame/ym3802.patch @@ -0,0 +1,13 @@ +diff --git a/src/devices/machine/ym3802.cpp b/src/devices/machine/ym3802.cpp +index 4a8f6a7ffae..d1bf2b961f6 100644 +--- a/src/devices/machine/ym3802.cpp ++++ b/src/devices/machine/ym3802.cpp +@@ -45,7 +45,7 @@ void ym3802_device::device_start() + + void ym3802_device::device_reset() + { +- m_reg.clear(); ++ m_reg.assign(REG_MAX, 0); + reset_irq(0xff); + transmit_register_reset(); + receive_register_reset(); \ No newline at end of file diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index 0b1cfb79..717b7809 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409 +Subproject commit 717b78093797270877ec416e58082f1c71d435d8 diff --git a/removed-modules.yml b/removed-modules.yml new file mode 100644 index 00000000..2766c016 --- /dev/null +++ b/removed-modules.yml @@ -0,0 +1,149 @@ + # pcsx2-qt needs QT6, maybe others, here until every qt emulator will support qt6 (not yuzu atm) + # from: https://github.com/flathub/org.profex_xrd.Profex + + # - name: qt6-core5compat + # buildsystem: cmake-ninja + # builddir: true + # sources: + # - type: archive + # url: https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qt5compat-everywhere-src-6.2.4.tar.xz + # sha256: 5de2b9e25bf7de161fbb88ecdd468ed1788bc899392fc05ed80aa590ebb352fa + # x-checker-data: + # type: html + # url: https://download.qt.io/official_releases/qt/6.2/ + # version-pattern: '>([\d\.-]*)/<' + # url-template: https://download.qt.io/official_releases/qt/6.2/$version/submodules/qt5compat-everywhere-src-$version.tar.xz + # post-install: + # - mkdir -p /app/lib/mkspecs + # - cp -R /app/mkspecs/* /app/lib/mkspecs/ + # - ln -fsr ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/libQt*.so* -t ${FLATPAK_DEST}/lib/ + # - sed -i 's/\\([0-9]\\+\\.[0-9]\\+\\)\\.[0-9]\\+ ${_Qt6.*_FIND_VERSION_EXACT}/\\1/' + # ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake + # - sed -e 's@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" + # \"/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/cmake/\" NO_DEFAULT_PATH@' -i + # ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake + # - sed -e 's@\\($$QT_MODULE_BIN_BASE\\)@\\1 '${FLATPAK_DEST}'/bin @' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri + # - sed -e 's@\\($$QT_MODULE_INCLUDE_BASE \\)@\\1'${FLATPAK_DEST}'/include @' + # -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri + # - sed -e 's@$$QT_MODULE_INCLUDE_BASE/@'${FLATPAK_DEST}'/include/@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri + # - sed -e 's@$$QT_MODULE_LIB_BASE@'${FLATPAK_DEST}'/lib@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri + # cleanup: + # - /app/mkspecs + + # XEMU: libglu removed due to a certificate issue, check libglu module for more info + # - name: libglu + # buildsystem: meson + # cleanup: + # - /include + # - /lib/debug + # - /lib/pkgconfig + # - /lib/*.a + # sources: + # - type: archive + # url: http://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz + # sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4 + # x-checker-data: + # type: anitya + # project-id: 13518 + # stable-only: true + # url-template: http://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz + + # Duckstation - START + # https://github.com/flathub/org.duckstation.DuckStation + # Disabled until we completely switch to QT6 + + # - name: duckstation + # buildsystem: cmake-ninja + # no-make-install: true + # builddir: true + # config-opts: + # - -DCMAKE_BUILD_TYPE=RelWithDebInfo + # - -DUSE_EGL=ON + # - -DUSE_SDL2=ON + # - -DUSE_WAYLAND=ON + # - -DUSE_X11=ON + # - -DUSE_DRMKMS=ON + # - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + # post-install: + # - install -m755 bin/duckstation-qt /app/bin + # - cp -r ../data/* bin/translations /app/bin + # sources: + # - type: git + # url: https://github.com/stenzek/duckstation.git + # commit: 6f709468601183083b8581d4952aaba7baf77084 + # # Cloning dep/msvc/qt is only necessary for Windows + # disable-submodules: true + + # Duckstation - END + + # Duckstation-DontUpdate - START + # Old version moved to QT6 so it's either this or AppImage + # But AppImage is a single one that keep getting updated at the same link so the sha (that's mandatory) will break the build + # So yeah we're stuck with this for a while + + # - name: duckstation-DontUpdate + # buildsystem: cmake-ninja + # no-make-install: true + # builddir: true + # config-opts: + # - -DCMAKE_BUILD_TYPE=Release + # - -DUSE_EGL=ON + # - -DUSE_SDL2=ON + # - -DUSE_WAYLAND=ON + # - -DUSE_X11=ON + # - -DUSE_DRMKMS=ON + # - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON + # post-install: + # - install -m 755 -t /app/bin/ bin/duckstation-nogui bin/duckstation-qt + # - |- + # for px in 16 32 48 64 128 256; do + # install -Dm644 ../extras/icons/icon-${px}px.png /app/share/icons/hicolor/${px}x${px}/apps/org.duckstation.DuckStation.png + # done + # - cp -r ../data/* bin/translations /app/bin + # sources: + # - type: git + # url: https://github.com/stenzek/duckstation.git + # commit: 3fb61865e505ba639609fbf16cb8bdf5c66e020c + + # Duckstation-DontUpdate - END + + # Ryujinx Appimage - START + # https://ryujinx.org/download + + # - name: Ryujinx + # buildsystem: simple + # build-commands: + # - | + # tar -zxvf ryujinx-1.1.685-linux_x64.tar.gz + # mv -v publish ${FLATPAK_DEST}/ryujinx + # ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx + # sources: + # - type: file + # url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.685/ryujinx-1.1.685-linux_x64.tar.gz + # sha256: bc4d7076106d7aa59c3a3ea22b83c553e5fa1a897815831adcf18cc13d729e15 + + # Ryujinx Appimage - END + + # Vita3K - START + # Very broken, disabled + # NOTE: this is a continuos release, it's provided but not supported + # to update this module: + # wget https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip -O rd-submodules/vita3k/vita3k-14-01-23.zip + # sha256sum rd-submodules/vita3k/vita3k*.zip + # change url and sha + # check the branch in the url + + # - name: Vita3K + # buildsystem: simple + # build-commands: + # - | + # mkdir -p ${FLATPAK_DEST}/vita3k + # cp -r * ${FLATPAK_DEST}/vita3k + # chmod +x ${FLATPAK_DEST}/vita3k/Vita3K + # ln -s ${FLATPAK_DEST}/vita3k/Vita3K /app/bin/Vita3K + # sources: + # - type: archive + # url: https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip + # sha256: VITASHAPLACEHOLDER + + # Vita3K - END \ No newline at end of file