diff --git a/.github/workflows/build-godot.yml b/.github/workflows/build-godot.yml new file mode 100644 index 00000000..73971305 --- /dev/null +++ b/.github/workflows/build-godot.yml @@ -0,0 +1,102 @@ +name: GoDot Configurator Build Debug +run-name: Build Godot Configurator(DEBUG) for RetroDECK +on: + workflow_dispatch: + inputs: + job_target: + description: 'Select the platform' + required: true + default: 'linux' + type: choice + options: + - linux + - windows + - mac + - all + +env: + GODOT_VERSION: 4.3 + GODOT_PROJECT_LOCATION: tools/configurator/project.godot + EXPORT_FOLDER_LINUX: bin/Linux + EXPORT_FOLDER_WINDOWS: bin/Windows + EXPORT_FOLDER_MAC: bin/macOS + APPLICATION_NAME: godot_configurator + +jobs: + linux-build: + runs-on: ubuntu-latest + container: + image: archlinux:latest + steps: + - name: Set up variable + run: | + echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV + echo "MAIN_FOLDER=$(pwd)" >> $GITHUB_ENV + + - name: Installing dependencies + run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar mingw-w64 + + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Prepare Godot + run: | + wget -q -O godot_linux.zip https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip + unzip godot_linux.zip + wget -q -O godot_export_templates.tpz https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz + mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable + unzip godot_export_templates.tpz -d ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable + mv ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/ + sed -i 's/config\/version=\"[^"]\*"/config\/version=\"${{ env.DATE }}-debug\"/' ${{ env.GODOT_PROJECT_LOCATION }} + + # DEBUG BUILDS + # LINUX + - name: Building debug Linux + if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }} + run: | + mkdir -p ${{ env.EXPORT_FOLDER_LINUX }} + ./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "Linux/X11 64-bit" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME}}.x86_64 + chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.sh + chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.x86_64 + + # TAR to keep permissions set above + - name: Tar File + if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }} + run: tar cvf ${{ env.APPLICATION_NAME}}_linux_debug_${{ env.DATE}}.tar ${{ env.EXPORT_FOLDER_LINUX}} + + - name: Uploading GDExtension artifact debug + if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }} + uses: actions/upload-artifact@v4 + with: + name: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar + path: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar + + # WINDOWS + - name: Building debug Windows + if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }} + run: | + mkdir -p ${{ env.EXPORT_FOLDER_WINDOWS }} + ./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "windows" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_WINDOWS }}/${{ env.APPLICATION_NAME}}.exe + + - name: Uploading GDExtension artifact debug + if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }} + uses: actions/upload-artifact@v4 + with: + name: ${{ env.APPLICATION_NAME }}_windows_debug_${{ env.DATE }} + path: ${{ env.EXPORT_FOLDER_WINDOWS }}/ + + #MAC + - name: Building debug macOS + if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }} + run: | + mkdir -p ${{ env.EXPORT_FOLDER_MAC }} + ./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "macOS" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_MAC}}/${{ env.APPLICATION_NAME}}.app + + - name: Uploading GDExtension artifact debug + if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }} + uses: actions/upload-artifact@v4 + with: + name: ${{ env.APPLICATION_NAME }}_mac_debug_${{ env.DATE }} + path: ${{ env.EXPORT_FOLDER_MAC }}/ \ No newline at end of file diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index ff93253d..95e05038 100644 --- a/.github/workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -85,6 +85,11 @@ jobs: # Use GITHUB_HEAD_REF to get the source branch source_branch="${GITHUB_HEAD_REF}" + # Replace '/' with '-' in the branch name + source_branch=${source_branch//\//-} + # Use GITHUB_HEAD_REF to get the source branch + source_branch="${GITHUB_HEAD_REF}" + # Replace '/' with '-' in the branch name source_branch=${source_branch//\//-} echo "[DEBUG] source branch is: $source_branch" @@ -93,6 +98,7 @@ jobs: echo "TAG=PR-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV echo "MAKE_LATEST=false" >> $GITHUB_ENV # Not marked as the latest cooker version if it's a feature branch else + # Generate the tag for non-pull request branches # Generate the tag for non-pull request branches TAG="$MANIFEST_VERSION-${{ env.buildid }}" echo "TAG=$TAG" >> $GITHUB_ENV diff --git a/config/retrodeck/reference_lists/features.json b/config/retrodeck/reference_lists/features.json index 576fc38c..b63d6fd0 100644 --- a/config/retrodeck/reference_lists/features.json +++ b/config/retrodeck/reference_lists/features.json @@ -1,1110 +1,1130 @@ + { - "about_links": { - "rd_changelog": { - "description": "Opens the RetroDECK change log in your default browser", - "name": "Changelog", - "url": "https://retrodeck.readthedocs.io/en/latest/wiki_rd_versions/version-history/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_contactus": { - "description": "Opens the RetroDECK contact us section in your default browser", - "name": "Contact us", - "url": "https://github.com/XargonWan/RetroDECK", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_credits": { - "description": "Opens the RetroDECK Credits in your default browser", - "name": "Credits", - "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_donate": { - "description": "Opens Donations page in your default browser", - "name": "Donate", - "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_licenses": { - "description": "Opens the RetroDECK licenses in your default browser", - "name": "Licences", - "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_web": { - "description": "Opens the RetroDECK Website in your default browser", - "name": "Website", - "url": "https://retrodeck.net/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - }, - "rd_wiki": { - "description": "Opens the RetroDECK Wiki in your default browser", - "name": "Wiki", - "url": "https://retrodeck.readthedocs.io/en/latest/", - "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" - } - }, - "finit_default_options": { - "rd_controller_profile": { - "name": "RetroDECK Steam Controller Profiles Install", - "description": "Install RetroDECK Steam Input profiles to Steam - Recommended", - "enabled": true - }, - "rpcs3_firmware": { - "name": "RPCS3 Firmware Install", - "description": "Install firmware needed for PS3 emulation", - "enabled": false - }, - "vita3k_firmware": { - "name": "Vita3K Firmware Install", - "description": "Install firmware needed for Vita3K emulation", - "enabled": false - } - }, - "splash_screens": { - "xmas": { - "start_date": "1201", - "end_date": "1231", - "start_time": "0000", - "end_time": "2359", - "filename": "rd-xmas-splash.svg" - }, - "lunar_dragon": { - "start_date": "0209", - "end_date": "0212", - "start_time": "0000", - "end_time": "2359", - "filename": "rd-lunar-dragon-splash.svg" - }, - "valentines_day": { - "start_date": "0214", - "end_date": "0214", - "start_time": "0001", - "end_time": "2359", - "filename": "rd-valentines-splash.svg" - }, - "retrodeck_birthday": { - "start_date": "0304", - "end_date": "0304", - "start_time": "0000", - "end_time": "2359", - "filename": "rd-gm-bday-splash.svg" - }, - "st_patricks_day": { - "start_date": "0317", - "end_date": "0317", - "start_time": "0000", - "end_time": "2359", - "filename": "rd-stpatricks-splash.svg" - }, - "kodomo_golden_week": { - "start_date": "0429", - "end_date": "0505", - "start_time": "0000", - "end_time": "2359", - "filename": "rd-kodomo-golden.svg" - }, - "tanabata": { - "start_date": "0707", - "end_date": "0707", - "start_time": "0000", - "end_time": "2359", - "filename": "tanabata.svg" - }, - "mountain_day": { - "start_date": "0811", - "end_date": "0811", - "start_time": "0000", - "end_time": "2359", - "filename": "placeholder.svg" - }, - "obon": { - "start_date": "0813", - "end_date": "0816", - "start_time": "0000", - "end_time": "2359", - "filename": "placeholder.svg" - } - }, - "incompatible_presets": { - "borders": "widescreen" - }, - "helper_files": { - "dolphin_mods": { - "filename": "how-to-install-dolphin-mods.txt", - "location": "$mods_folder/Dolphin" - }, - "primehack_mods": { - "filename": "how-to-install-primehack-mods.txt", - "location": "$mods_folder/Primehack" - }, - "mesen_textures": { - "filename": "how-to-install-Mesen-textures.txt", - "location": "$texture_packs_folder/RetroArch-Mesen" - }, - "ppsspp_textures": { - "filename": "how-to-install-PPSSPP-textures.txt", - "location": "$texture_packs_folder/PPSSPP" - }, - "pcsx2_textures": { - "filename": "how-to-install-PCSX2-textures.txt", - "location": "$texture_packs_folder/PCSX2" - }, - "mupen64plus_cache_textures": { - "filename": "how-to-install-Mupen64Plus-textures.txt", - "location": "$texture_packs_folder/RetroArch-Mupen64Plus/cache" - }, - "mupen64plus_hires_textures": { - "filename": "how-to-install-Mupen64Plus-textures.txt", - "location": "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" - }, - "duckstation_textures": { - "filename": "how-to-install-Duckstation-textures.txt", - "location": "$texture_packs_folder/Duckstation" - }, - "psvita_games": { - "filename": "how-to-install-psvita-games.txt", - "location": "$roms_folder/psvita" - }, - "ryujinx_firmware": { - "filename": "Install-firmware-through-Ryujinx.txt", - "location": "$bios_folder/switch/firmware" - } - }, - "compression_targets": { - "chd": [ - "3do", - "amigacd32", - "dreamcast", - "megacd", - "neogeocd", - "pcenginecd", - "pcfx", - "psp", - "psx", - "ps2", - "saturn", - "saturnjp", - "segacd", - "tg-cd" - ], - "rvz": [ - "gc", - "wii" - ], - "zip": [ - "atari2600", - "atari5200", - "atari7800", - "atari800", - "atarijaguar", - "atarilynx", - "atarist", - "gamegear", - "gb", - "gba", - "gbc", - "genesis", - "mastersystem", - "n64", - "nds", - "nes", - "ngp", - "ngpc", - "sega32x", - "sega32xjp", - "sega32xna", - "snes", - "snesna", - "tg16" - ] - }, - "zip_compressable_extensions": [ - ".32x", - ".68k", - ".NDS", - ".a26", - ".a52", - ".a78", - ".abs", - ".agb", - ".atr", - ".atx", - ".bin", - ".bml", - ".bms", - ".bs", - ".bsx", - ".cas", - ".cdm", - ".cgb", - ".cof", - ".col", - ".dim", - ".dmg", - ".dx2", - ".fds", - ".fig", - ".gb", - ".gba", - ".gbc", - ".gd3", - ".gd7", - ".gen", - ".gg", - ".ipf", - ".j64", - ".jag", - ".lnx", - ".md", - ".mdx", - ".mgd", - ".msa", - ".nds", - ".nes", - ".ngc", - ".o", - ".pce", - ".prg", - ".rom", - ".sfc", - ".sg", - ".sgb", - ".sgd", - ".smc", - ".smd", - ".sms", - ".st", - ".st", - ".stx", - ".swc", - ".unf", - ".unif", - ".xex", - ".xfd", - ".z64" - ], - "system": { - "3do": { - "name": "3DO Interactive Multiplayer" - }, - "adam": { - "name": "Coleco Adam" - }, - "amiga": { - "name": "Commodore Amiga" - }, - "amiga1200": { - "name": "Commodore Amiga 1200" - }, - "amiga600": { - "name": "Commodore Amiga 600" - }, - "amigacd32": { - "name": "Commodore Amiga CD32" - }, - "amstradcpc": { - "name": "Amstrad CPC" - }, - "apple2": { - "name": "Apple II" - }, - "apple2gs": { - "name": "Apple IIGS" - }, - "arcade": { - "name": "Arcade" - }, - "arcadia": { - "name": "Emerson Arcadia 2001" - }, - "archimedes": { - "name": "Acorn Archimedes" - }, - "arduboy": { - "name": "Arduboy Miniature Game System" - }, - "astrocde": { - "name": "Bally Astrocade" - }, - "atari2600": { - "name": "Atari 2600" - }, - "atari5200": { - "name": "Atari 5200" - }, - "atari7800": { - "name": "Atari 7800 ProSystem" - }, - "atari800": { - "name": "Atari 800" - }, - "atarijaguar": { - "name": "Atari Jaguar" - }, - "atarilynx": { - "name": "Atari Lynx" - }, - "atarist": { - "name": "Atari ST" - }, - "atarixe": { - "name": "Atari XE" - }, - "atomiswave": { - "name": "Sammy Corporation Atomiswave" - }, - "bbcmicro": { - "name": "Acorn Computers BBC Micro" - }, - "c64": { - "name": "Commodore 64" - }, - "cdimono1": { - "name": "Philips CD-i" - }, - "cdtv": { - "name": "Commodore CDTV" - }, - "chailove": { - "name": "ChaiLove Game Engine" - }, - "channelf": { - "name": "Fairchild Channel F" - }, - "colecovision": { - "name": "Coleco ColecoVision" - }, - "consolearcade": { - "name": "Console Arcade Systems" - }, - "cps": { - "name": "Capcom Play System" - }, - "cps1": { - "name": "Capcom Play System I" - }, - "cps2": { - "name": "Capcom Play System II" - }, - "cps3": { - "name": "Capcom Play System III" - }, - "crvision": { - "name": "VTech CreatiVision" - }, - "daphne": { - "name": "Daphne Arcade LaserDisc Emulator" - }, - "desktop": { - "name": "Desktop Applications" - }, - "doom": { - "name": "Doom" - }, - "dos": { - "name": "DOS (PC)" - }, - "dreamcast": { - "name": "Sega Dreamcast" - }, - "dc": { - "name": "Sega Dreamcast" - }, - "easyrpg": { - "name": "EasyRPG Game Engine" - }, - "electron": { - "name": "Acorn Electron" - }, - "emulators": { - "name": "Emulators" - }, - "famicom": { - "name": "Nintendo Family Computer" - }, - "fba": { - "name": "FinalBurn Alpha" - }, - "fbneo": { - "name": "FinalBurn Neo" - }, - "fds": { - "name": "Nintendo Famicom Disk System" - }, - "fm7": { - "name": "Fujitsu FM-7" - }, - "fmtowns": { - "name": "Fujitsu FM Towns" - }, - "gamate": { - "name": "Bit Corporation Gamate" - }, - "gameandwatch": { - "name": "Nintendo Game and Watch" - }, - "gamecom": { - "name": "Tiger Electronics Game.com" - }, - "gamegear": { - "name": "Sega Game Gear" - }, - "gg": { - "name": "Sega Game Gear" - }, - "gb": { - "name": "Nintendo Game Boy" - }, - "gba": { - "name": "Nintendo Game Boy Advance" - }, - "gbc": { - "name": "Nintendo Game Boy Color" - }, - "gc": { - "name": "Nintendo GameCube" - }, - "genesis": { - "name": "Sega Genesis" - }, - "gmaster": { - "name": "Hartung Game Master" - }, - "gx4000": { - "name": "Amstrad GX4000" - }, - "intellivision": { - "name": "Mattel Electronics Intellivision" - }, - "j2me": { - "name": "Java 2 Micro Edition (J2ME)" - }, - "laserdisc": { - "name": "LaserDisc Games" - }, - "lcdgames": { - "name": "LCD Handheld Games" - }, - "lowresnx": { - "name": "LowRes NX Fantasy Console" - }, - "lutris": { - "name": "Lutris Open Gaming Platform" - }, - "lutro": { - "name": "Lutro Game Engine" - }, - "macintosh": { - "name": "Apple Macintosh" - }, - "mame": { - "name": "Multiple Arcade Machine Emulator" - }, - "mastersystem": { - "name": "Sega Master System" - }, - "megacd": { - "name": "Sega Mega-CD" - }, - "megacdjp": { - "name": "Sega Mega-CD (Japan)" - }, - "megadrive": { - "name": "Sega Mega Drive" - }, - "megaduck": { - "name": "Creatronic Mega Duck" - }, - "mess": { - "name": "Multi Emulator Super System" - }, - "model2": { - "name": "Sega Model 2" - }, - "moto": { - "name": "Thomson MO/TO Series" - }, - "msx": { - "name": "MSX" - }, - "msx1": { - "name": "MSX1" - }, - "msx2": { - "name": "MSX2" - }, - "msxturbor": { - "name": "MSX Turbo R" - }, - "mugen": { - "name": "M.U.G.E.N Game Engine" - }, - "multivision": { - "name": "Othello Multivision" - }, - "n3ds": { - "name": "Nintendo 3DS" - }, - "n64": { - "name": "Nintendo 64" - }, - "n64dd": { - "name": "Nintendo 64DD" - }, - "naomi": { - "name": "Sega NAOMI" - }, - "naomi2": { - "name": "Sega NAOMI 2" - }, - "naomigd": { - "name": "Sega NAOMI GD-ROM" - }, - "nds": { - "name": "Nintendo DS" - }, - "neogeo": { - "name": "SNK Neo Geo" - }, - "neogeocd": { - "name": "SNK Neo Geo CD" - }, - "neogeocdjp": { - "name": "SNK Neo Geo CD (Japan)" - }, - "nes": { - "name": "Nintendo Entertainment System" - }, - "ngp": { - "name": "SNK Neo Geo Pocket" - }, - "ngpc": { - "name": "SNK Neo Geo Pocket Color" - }, - "odyssey2": { - "name": "Magnavox Odyssey 2" - }, - "openbor": { - "name": "OpenBOR Game Engine" - }, - "palm": { - "name": "Palm OS" - }, - "pc": { - "name": "IBM PC" - }, - "pc88": { - "name": "NEC PC-8800 Series" - }, - "pc98": { - "name": "NEC PC-9800 Series" - }, - "pcarcade": { - "name": "PC Arcade Systems" - }, - "pcengine": { - "name": "NEC PC Engine" - }, - "pcenginecd": { - "name": "NEC PC Engine CD" - }, - "pcfx": { - "name": "NEC PC-FX" - }, - "pico8": { - "name": "PICO-8 Fantasy Console" - }, - "plus4": { - "name": "Commodore Plus/4" - }, - "pokemini": { - "name": "Nintendo Pokémon Mini" - }, - "ports": { - "name": "Ports" - }, - "ps2": { - "name": "Sony PlayStation 2" - }, - "ps3": { - "name": "Sony PlayStation 3" - }, - "psp": { - "name": "Sony PlayStation Portable" - }, - "psvita": { - "name": "Sony PlayStation Vita" - }, - "psx": { - "name": "Sony PlayStation" - }, - "pv1000": { - "name": "Casio PV-1000" - }, - "quake": { - "name": "Quake" - }, - "satellaview": { - "name": "Nintendo Satellaview" - }, - "saturn": { - "name": "Sega Saturn" - }, - "saturnjp": { - "name": "Sega Saturn (Japan)" - }, - "scummvm": { - "name": "ScummVM Game Engine" - }, - "scv": { - "name": "Epoch Super Cassette Vision" - }, - "sega32x": { - "name": "Sega Mega Drive 32X" - }, - "sega32xjp": { - "name": "Sega Super 32X (Japan)" - }, - "sega32xna": { - "name": "Sega Genesis 32X" - }, - "segacd": { - "name": "Sega CD" - }, - "sfc": { - "name": "Nintendo SFC (Super Famicom)" - }, - "sg-1000": { - "name": "Sega SG-1000" - }, - "sgb": { - "name": "Nintendo Super Game Boy" - }, - "snes": { - "name": "Nintendo SNES (Super Nintendo)" - }, - "snesna": { - "name": "Nintendo SNES (Super Nintendo)" - }, - "solarus": { - "name": "Solarus Game Engine" - }, - "spectravideo": { - "name": "Spectravideo" - }, - "stv": { - "name": "Sega Titan Video Game System" - }, - "sufami": { - "name": "Bandai SuFami Turbo" - }, - "supergrafx": { - "name": "NEC SuperGrafx" - }, - "supervision": { - "name": "Watara Supervision" - }, - "supracan": { - "name": "Funtech Super A'Can" - }, - "switch": { - "name": "Nintendo Switch" - }, - "tg-cd": { - "name": "NEC TurboGrafx-CD" - }, - "tg16": { - "name": "NEC TurboGrafx-16" - }, - "ti99": { - "name": "Texas Instruments TI-99" - }, - "tic80": { - "name": "TIC-80 Fantasy Computer" - }, - "to8": { - "name": "Thomson TO8" - }, - "uzebox": { - "name": "Uzebox Open Source Console" - }, - "vectrex": { - "name": "GCE Vectrex" - }, - "vic20": { - "name": "Commodore VIC-20" - }, - "videopac": { - "name": "Philips Videopac G7000" - }, - "virtualboy": { - "name": "Nintendo Virtual Boy" - }, - "vsmile": { - "name": "VTech V.Smile" - }, - "wasm4": { - "name": "WASM-4 Fantasy Console" - }, - "wii": { - "name": "Nintendo Wii" - }, - "wiiu": { - "name": "Nintendo Wii U" - }, - "windows": { - "name": "Microsoft Windows" - }, - "windows3x": { - "name": "Microsoft Windows 3.x" - }, - "windows9x": { - "name": "Microsoft Windows 9x" - }, - "wonderswan": { - "name": "Bandai WonderSwan" - }, - "wonderswancolor": { - "name": "Bandai WonderSwan Color" - }, - "x1": { - "name": "Sharp X1" - }, - "x68000": { - "name": "Sharp X68000" - }, - "xbox": { - "name": "Microsoft Xbox" - }, - "zx81": { - "name": "Sinclair ZX81" - }, - "zxspectrum": { - "name": "Sinclair ZX Spectrum" - } - }, - "emulator": { - "retroarch": { - "description": "RetroArch (Multi-emulator Frontend)", - "name": "RetroArch", - "launch": "retroarch", - "properties": [ - { - "cheevos": true, - "cheevos_hardcore": true, - "quick_resume": true - } - ], - "cores": { - "citra_libretro": { - "description": "Nintendo 3DS Libretro Core", - "name": "Citra", - "system": "n3ds", - "properties": [ - { - "abxy_button": true - } - ] - }, - "mame_libretro": { - "description": "MAME: Multiple Arcade Machine Libretro Core", - "name": "MAME", - "system": "arcade", - "properties": [ - { - "tate_mode": true - } - ] - }, - "desmume_libretro": { - "description": "DeSmuME Nintendo DS Libretro Core", - "name": "desmume", - "system": "nds", - "properties": [ - { - "abxy_button": true - } - ] - }, - "melonds_libretro": { - "description": "MelonDS Nintendo DS Libretro Core", - "name": "melonds", - "system": "nds", - "properties": [ - { - "abxy_button": true - } - ] - }, - "swanstation_libretro": { - "name": "SwanStation", - "description": "Swanstation Libretro Core", - "system": "psx", - "properties": [ - { - "widescreen": true, - "borders": true - } - ] - }, - "picodrive_libetro": { - "name": "PicoDrive", - "description": "SEGA MS/MD/CD/32X Libretro Core", - "system": [ - "ms", - "md", - "cd", - "32x" - ], - "properties": [ - { - "widescreen": true, - "borders": true, - "rewind": true - } - ] - }, - "genesisplusgx_libetro": { - "name": "Genesis Plus GX", - "description": "SEGA MS/GG/MD/CD Libretro Core", - "system": [ - "ms", - "gg", - "mc", - "cd" - ], - "properties": [ - { - "widescreen": true, - "borders": true, - "rewind": true - } - ] - }, - "genesisplusgxwide_libetro": { - "name": "Genesis Plus GX Wide", - "description": "SEGA MS/GG/MD/CD Libretro Core for Wide Screen", - "system": [ - "ms", - "gg", - "mc", - "cd" - ], - "properties": [ - { - "widescreen": true, - "rewind": true - } - ] - }, - "mupen64plus-next_libetro": { - "name": "Mupen64Plus-Next", - "description": "Nintendo 64 Libretro Core", - "system": "n64", - "properties": [ - { - "widescreen": true, - "borders": true, - "abxy_button": true - } - ] - }, - "snes9x-current_libetro": { - "name": "Snes9x - Current", - "description": "Super Nintendo Libretro Core", - "system": "snes", - "properties": [ - { - "widescreen": true, - "borders": true, - "rewind": true, - "abxy_button": true - } - ] - }, - "gambatte_libetro": { - "name": "Gambatte", - "description": "Game Boy/Color Libretro Core", - "system": [ - "gb", - "gbc" - ], - "properties": [ - { - "borders": true, - "rewind": true, - "abxy_button": true - } - ] - }, - "mgba_libetro": { - "name": "mGBA", - "description": "Game Boy Advance Libretro Core", - "system": "gba", - "properties": [ - { - "borders": true, - "rewind": true, - "abxy_button": true - } - ] - } - } - }, - "mame": { - "description": "MAME: Multiple Arcade Machine Emulator", - "name": "MAME", - "system": [ - "arcade" - ], - "launch": "mame" - }, - "citra": { - "description": "Citra Nintendo 3DS Emulator (via Ponzu)", - "name": "Citra (via Ponzu)", - "system": "n3ds", - "ponzu": true, - "launch": "citra-qt", - "properties": [ - { - "abxy_button": true, - "ask_to_exit": true - } - ] - }, - "ruffle": { - "description": "Flash Games emulator", - "name" : "Ruffle", - "system" : "flash", - "launch": "ruffle-rd-wrapper.sh" - }, - "melonds": { - "description": "MelonDS Nintendo DS Emulator", - "name": "melonds", - "system": "nds", - "launch": "MelonDS" - }, - "pcsx2": { - "name": "pcsx2", - "description": "PCSX2 Play Station 2 Emulator", - "system": "ps2", - "launch": "pcsx2-qt", - "properties": [ - { - "ask_to_exit": true, - "cheevos": true - } - ] - }, - "duckstation": { - "name": "Duckstation", - "description": "PlayStation Emulator", - "launch": "duckstation-qt", - "system": "psx", - "properties": [ - { - "ask_to_exit": true, - "cheevos": true - } - ] - }, - "ppsspp": { - "name": "PPSSPP", - "description": "PPSSPP: PlayStation Portable Emulator", - "launch": "PPSSPPSDL", - "system": "psp", - "properties": [ - { - "cheevos": true, - "cheevos_hardcore": true - } - ] - }, - "vita3k": { - "name": "Vita3k", - "description": "Vita3K PSVita Emulator", - "system": "psvita", - "launch": "Vita3K" - }, - "rpcs3": { - "name": "RPCS3", - "description": "RPCS3 PlayStation 3 Emulator", - "system": "ps3", - "launch": "rpcs3", - "properties": [ - { - "ask_to_exit": true - } - ] - }, - "ryujinx": { - "name": "Ryujinx", - "description": "Ryujinx Nintendo Switch Emulator", - "system": "switch", - "launch": "Ryujinx.sh" - }, - "yuzu": { - "name": "Yuzu (via Ponzu)", - "description": "Yuzu Nintendo Switch Emulator (via Ponzu)", - "launch": "Yuzu", - "system": "switch", - "ponzu": true, - "abxy_button": true - }, - "dolphin": { - "name": "Dolphin", - "description": "Dolphin Wii and GameCube Emulator", - "launch": "dolphin-emu-wrapper", - "system": [ - "gc", - "wii" - ], - "properties": [ - { - "abxy_button": true, - "ask_to_exit": true, - "cheevos": true, - "cheevos_hardcore": true, - "universal_dyn_input": true - } - ] - }, - "primehack": { - "name": "PrimeHack", - "description": "A fork of Dolphiin to enhance Metroid Prime experience", - "launch": "primehack-wrapper", - "system": [ - "wii" - ], - "properties": [ - { - "ask_to_exit": true, - "universal_dyn_input": true - } - ] - }, - "cemu": { - "description": "Wii U emulator", - "name": "Cemu", - "system": "wiiu", - "launch": "Cemu-wrapper", - "properties": [ - { - "abxy_button": true, - "multi_user_config_dir": "Cemu" - } - ] - }, - "xemu": { - "description": "xemu Xbox Emulator", - "name": "xemu", - "system": "xbox", - "launch": "xemu" - }, - "es-de": { - "description": "ES-DE Emulation Frontend", - "name": "ES-DE", - "launch": "es-de" - } + "about_links": { + "rd_changelog": { + "description": "Opens the RetroDECK change log in your default browser", + "name": "Changelog", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_rd_versions/version-history/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_contactus": { + "description": "Opens the RetroDECK contact us section in your default browser", + "name": "Contact us", + "url": "https://github.com/XargonWan/RetroDECK", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_credits": { + "description": "Opens the RetroDECK Credits in your default browser", + "name": "Credits", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_donate": { + "description": "Opens Donations page in your default browser", + "name": "Donate", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_licenses": { + "description": "Opens the RetroDECK licenses in your default browser", + "name": "Licences", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_credits/donations-licenses/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_web": { + "description": "Opens the RetroDECK Website in your default browser", + "name": "Website", + "url": "https://retrodeck.net/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + }, + "rd_wiki": { + "description": "Opens the RetroDECK Wiki in your default browser", + "name": "Wiki", + "url": "https://retrodeck.readthedocs.io/en/latest/", + "icon": "res://assets/icons/pixelitos/128/internet-web-browser.png" + } + }, + "finit_default_options": { + "rd_controller_profile": { + "name": "RetroDECK Steam Controller Profiles Install", + "description": "Install RetroDECK Steam Input profiles to Steam - Recommended", + "enabled": true + }, + "rpcs3_firmware": { + "name": "RPCS3 Firmware Install", + "description": "Install firmware needed for PS3 emulation", + "enabled": false + }, + "vita3k_firmware": { + "name": "Vita3K Firmware Install", + "description": "Install firmware needed for Vita3K emulation", + "enabled": false + } + }, + "splash_screens": { + "xmas": { + "start_date": "1201", + "end_date": "1231", + "start_time": "0000", + "end_time": "2359", + "filename": "rd-xmas-splash.svg" + }, + "lunar_dragon": { + "start_date": "0209", + "end_date": "0212", + "start_time": "0000", + "end_time": "2359", + "filename": "rd-lunar-dragon-splash.svg" + }, + "valentines_day": { + "start_date": "0214", + "end_date": "0214", + "start_time": "0001", + "end_time": "2359", + "filename": "rd-valentines-splash.svg" + }, + "retrodeck_birthday": { + "start_date": "0304", + "end_date": "0304", + "start_time": "0000", + "end_time": "2359", + "filename": "rd-gm-bday-splash.svg" + }, + "st_patricks_day": { + "start_date": "0317", + "end_date": "0317", + "start_time": "0000", + "end_time": "2359", + "filename": "rd-stpatricks-splash.svg" + }, + "kodomo_golden_week": { + "start_date": "0429", + "end_date": "0505", + "start_time": "0000", + "end_time": "2359", + "filename": "rd-kodomo-golden.svg" + }, + "tanabata": { + "start_date": "0707", + "end_date": "0707", + "start_time": "0000", + "end_time": "2359", + "filename": "tanabata.svg" + }, + "mountain_day": { + "start_date": "0811", + "end_date": "0811", + "start_time": "0000", + "end_time": "2359", + "filename": "placeholder.svg" + }, + "obon": { + "start_date": "0813", + "end_date": "0816", + "start_time": "0000", + "end_time": "2359", + "filename": "placeholder.svg" + } + }, + "incompatible_presets": { + "borders": "widescreen" + }, + "helper_files": { + "dolphin_mods": { + "filename": "how-to-install-dolphin-mods.txt", + "location": "$mods_folder/Dolphin" + }, + "primehack_mods": { + "filename": "how-to-install-primehack-mods.txt", + "location": "$mods_folder/Primehack" + }, + "mesen_textures": { + "filename": "how-to-install-Mesen-textures.txt", + "location": "$texture_packs_folder/RetroArch-Mesen" + }, + "ppsspp_textures": { + "filename": "how-to-install-PPSSPP-textures.txt", + "location": "$texture_packs_folder/PPSSPP" + }, + "pcsx2_textures": { + "filename": "how-to-install-PCSX2-textures.txt", + "location": "$texture_packs_folder/PCSX2" + }, + "mupen64plus_cache_textures": { + "filename": "how-to-install-Mupen64Plus-textures.txt", + "location": "$texture_packs_folder/RetroArch-Mupen64Plus/cache" + }, + "mupen64plus_hires_textures": { + "filename": "how-to-install-Mupen64Plus-textures.txt", + "location": "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" + }, + "duckstation_textures": { + "filename": "how-to-install-Duckstation-textures.txt", + "location": "$texture_packs_folder/Duckstation" + }, + "psvita_games": { + "filename": "how-to-install-psvita-games.txt", + "location": "$roms_folder/psvita" + }, + "ryujinx_firmware": { + "filename": "Install-firmware-through-Ryujinx.txt", + "location": "$bios_folder/switch/firmware" + } + }, + "compression_targets": { + "chd": [ + "3do", + "amigacd32", + "dreamcast", + "megacd", + "neogeocd", + "pcenginecd", + "pcfx", + "psp", + "psx", + "ps2", + "saturn", + "saturnjp", + "segacd", + "tg-cd" + ], + "rvz": [ + "gc", + "wii" + ], + "zip": [ + "atari2600", + "atari5200", + "atari7800", + "atari800", + "atarijaguar", + "atarilynx", + "atarist", + "gamegear", + "gb", + "gba", + "gbc", + "genesis", + "mastersystem", + "n64", + "nds", + "nes", + "ngp", + "ngpc", + "sega32x", + "sega32xjp", + "sega32xna", + "snes", + "snesna", + "tg16" + ] + }, + "zip_compressable_extensions": [ + ".32x", + ".68k", + ".NDS", + ".a26", + ".a52", + ".a78", + ".abs", + ".agb", + ".atr", + ".atx", + ".bin", + ".bml", + ".bms", + ".bs", + ".bsx", + ".cas", + ".cdm", + ".cgb", + ".cof", + ".col", + ".dim", + ".dmg", + ".dx2", + ".fds", + ".fig", + ".gb", + ".gba", + ".gbc", + ".gd3", + ".gd7", + ".gen", + ".gg", + ".ipf", + ".j64", + ".jag", + ".lnx", + ".md", + ".mdx", + ".mgd", + ".msa", + ".nds", + ".nes", + ".ngc", + ".o", + ".pce", + ".prg", + ".rom", + ".sfc", + ".sg", + ".sgb", + ".sgd", + ".smc", + ".smd", + ".sms", + ".st", + ".st", + ".stx", + ".swc", + ".unf", + ".unif", + ".xex", + ".xfd", + ".z64" + ], + "system": { + "3do": { + "name": "3DO Interactive Multiplayer" + }, + "adam": { + "name": "Coleco Adam" + }, + "amiga": { + "name": "Commodore Amiga" + }, + "amiga1200": { + "name": "Commodore Amiga 1200" + }, + "amiga600": { + "name": "Commodore Amiga 600" + }, + "amigacd32": { + "name": "Commodore Amiga CD32" + }, + "amstradcpc": { + "name": "Amstrad CPC" + }, + "apple2": { + "name": "Apple II" + }, + "apple2gs": { + "name": "Apple IIGS" + }, + "arcade": { + "name": "Arcade" + }, + "arcadia": { + "name": "Emerson Arcadia 2001" + }, + "archimedes": { + "name": "Acorn Archimedes" + }, + "arduboy": { + "name": "Arduboy Miniature Game System" + }, + "astrocde": { + "name": "Bally Astrocade" + }, + "atari2600": { + "name": "Atari 2600" + }, + "atari5200": { + "name": "Atari 5200" + }, + "atari7800": { + "name": "Atari 7800 ProSystem" + }, + "atari800": { + "name": "Atari 800" + }, + "atarijaguar": { + "name": "Atari Jaguar" + }, + "atarilynx": { + "name": "Atari Lynx" + }, + "atarist": { + "name": "Atari ST" + }, + "atarixe": { + "name": "Atari XE" + }, + "atomiswave": { + "name": "Sammy Corporation Atomiswave" + }, + "bbcmicro": { + "name": "Acorn Computers BBC Micro" + }, + "c64": { + "name": "Commodore 64" + }, + "cdimono1": { + "name": "Philips CD-i" + }, + "cdtv": { + "name": "Commodore CDTV" + }, + "chailove": { + "name": "ChaiLove Game Engine" + }, + "channelf": { + "name": "Fairchild Channel F" + }, + "colecovision": { + "name": "Coleco ColecoVision" + }, + "consolearcade": { + "name": "Console Arcade Systems" + }, + "cps": { + "name": "Capcom Play System" + }, + "cps1": { + "name": "Capcom Play System I" + }, + "cps2": { + "name": "Capcom Play System II" + }, + "cps3": { + "name": "Capcom Play System III" + }, + "crvision": { + "name": "VTech CreatiVision" + }, + "daphne": { + "name": "Daphne Arcade LaserDisc Emulator" + }, + "desktop": { + "name": "Desktop Applications" + }, + "doom": { + "name": "Doom" + }, + "dos": { + "name": "DOS (PC)" + }, + "dreamcast": { + "name": "Sega Dreamcast" + }, + "dc": { + "name": "Sega Dreamcast" + }, + "easyrpg": { + "name": "EasyRPG Game Engine" + }, + "electron": { + "name": "Acorn Electron" + }, + "emulators": { + "name": "Emulators" + }, + "famicom": { + "name": "Nintendo Family Computer" + }, + "fba": { + "name": "FinalBurn Alpha" + }, + "fbneo": { + "name": "FinalBurn Neo" + }, + "fds": { + "name": "Nintendo Famicom Disk System" + }, + "fm7": { + "name": "Fujitsu FM-7" + }, + "fmtowns": { + "name": "Fujitsu FM Towns" + }, + "gamate": { + "name": "Bit Corporation Gamate" + }, + "gameandwatch": { + "name": "Nintendo Game and Watch" + }, + "gamecom": { + "name": "Tiger Electronics Game.com" + }, + "gamegear": { + "name": "Sega Game Gear" + }, + "gg": { + "name": "Sega Game Gear" + }, + "gb": { + "name": "Nintendo Game Boy" + }, + "gba": { + "name": "Nintendo Game Boy Advance" + }, + "gbc": { + "name": "Nintendo Game Boy Color" + }, + "gc": { + "name": "Nintendo GameCube" + }, + "genesis": { + "name": "Sega Genesis" + }, + "gmaster": { + "name": "Hartung Game Master" + }, + "gx4000": { + "name": "Amstrad GX4000" + }, + "intellivision": { + "name": "Mattel Electronics Intellivision" + }, + "j2me": { + "name": "Java 2 Micro Edition (J2ME)" + }, + "laserdisc": { + "name": "LaserDisc Games" + }, + "lcdgames": { + "name": "LCD Handheld Games" + }, + "lowresnx": { + "name": "LowRes NX Fantasy Console" + }, + "lutris": { + "name": "Lutris Open Gaming Platform" + }, + "lutro": { + "name": "Lutro Game Engine" + }, + "macintosh": { + "name": "Apple Macintosh" + }, + "mame": { + "name": "Multiple Arcade Machine Emulator" + }, + "mastersystem": { + "name": "Sega Master System" + }, + "megacd": { + "name": "Sega Mega-CD" + }, + "megacdjp": { + "name": "Sega Mega-CD (Japan)" + }, + "megadrive": { + "name": "Sega Mega Drive" + }, + "megaduck": { + "name": "Creatronic Mega Duck" + }, + "mess": { + "name": "Multi Emulator Super System" + }, + "model2": { + "name": "Sega Model 2" + }, + "moto": { + "name": "Thomson MO/TO Series" + }, + "msx": { + "name": "MSX" + }, + "msx1": { + "name": "MSX1" + }, + "msx2": { + "name": "MSX2" + }, + "msxturbor": { + "name": "MSX Turbo R" + }, + "mugen": { + "name": "M.U.G.E.N Game Engine" + }, + "multivision": { + "name": "Othello Multivision" + }, + "n3ds": { + "name": "Nintendo 3DS" + }, + "n64": { + "name": "Nintendo 64" + }, + "n64dd": { + "name": "Nintendo 64DD" + }, + "naomi": { + "name": "Sega NAOMI" + }, + "naomi2": { + "name": "Sega NAOMI 2" + }, + "naomigd": { + "name": "Sega NAOMI GD-ROM" + }, + "nds": { + "name": "Nintendo DS" + }, + "neogeo": { + "name": "SNK Neo Geo" + }, + "neogeocd": { + "name": "SNK Neo Geo CD" + }, + "neogeocdjp": { + "name": "SNK Neo Geo CD (Japan)" + }, + "nes": { + "name": "Nintendo Entertainment System" + }, + "ngp": { + "name": "SNK Neo Geo Pocket" + }, + "ngpc": { + "name": "SNK Neo Geo Pocket Color" + }, + "odyssey2": { + "name": "Magnavox Odyssey 2" + }, + "openbor": { + "name": "OpenBOR Game Engine" + }, + "palm": { + "name": "Palm OS" + }, + "pc": { + "name": "IBM PC" + }, + "pc88": { + "name": "NEC PC-8800 Series" + }, + "pc98": { + "name": "NEC PC-9800 Series" + }, + "pcarcade": { + "name": "PC Arcade Systems" + }, + "pcengine": { + "name": "NEC PC Engine" + }, + "pcenginecd": { + "name": "NEC PC Engine CD" + }, + "pcfx": { + "name": "NEC PC-FX" + }, + "pico8": { + "name": "PICO-8 Fantasy Console" + }, + "plus4": { + "name": "Commodore Plus/4" + }, + "pokemini": { + "name": "Nintendo Pokémon Mini" + }, + "ports": { + "name": "Ports" + }, + "ps2": { + "name": "Sony PlayStation 2" + }, + "ps3": { + "name": "Sony PlayStation 3" + }, + "psp": { + "name": "Sony PlayStation Portable" + }, + "psvita": { + "name": "Sony PlayStation Vita" + }, + "psx": { + "name": "Sony PlayStation" + }, + "pv1000": { + "name": "Casio PV-1000" + }, + "quake": { + "name": "Quake" + }, + "satellaview": { + "name": "Nintendo Satellaview" + }, + "saturn": { + "name": "Sega Saturn" + }, + "saturnjp": { + "name": "Sega Saturn (Japan)" + }, + "scummvm": { + "name": "ScummVM Game Engine" + }, + "scv": { + "name": "Epoch Super Cassette Vision" + }, + "sega32x": { + "name": "Sega Mega Drive 32X" + }, + "sega32xjp": { + "name": "Sega Super 32X (Japan)" + }, + "sega32xna": { + "name": "Sega Genesis 32X" + }, + "segacd": { + "name": "Sega CD" + }, + "sfc": { + "name": "Nintendo SFC (Super Famicom)" + }, + "sg-1000": { + "name": "Sega SG-1000" + }, + "sgb": { + "name": "Nintendo Super Game Boy" + }, + "snes": { + "name": "Nintendo SNES (Super Nintendo)" + }, + "snesna": { + "name": "Nintendo SNES (Super Nintendo)" + }, + "solarus": { + "name": "Solarus Game Engine" + }, + "spectravideo": { + "name": "Spectravideo" + }, + "stv": { + "name": "Sega Titan Video Game System" + }, + "sufami": { + "name": "Bandai SuFami Turbo" + }, + "supergrafx": { + "name": "NEC SuperGrafx" + }, + "supervision": { + "name": "Watara Supervision" + }, + "supracan": { + "name": "Funtech Super A'Can" + }, + "switch": { + "name": "Nintendo Switch" + }, + "tg-cd": { + "name": "NEC TurboGrafx-CD" + }, + "tg16": { + "name": "NEC TurboGrafx-16" + }, + "ti99": { + "name": "Texas Instruments TI-99" + }, + "tic80": { + "name": "TIC-80 Fantasy Computer" + }, + "to8": { + "name": "Thomson TO8" + }, + "uzebox": { + "name": "Uzebox Open Source Console" + }, + "vectrex": { + "name": "GCE Vectrex" + }, + "vic20": { + "name": "Commodore VIC-20" + }, + "videopac": { + "name": "Philips Videopac G7000" + }, + "virtualboy": { + "name": "Nintendo Virtual Boy" + }, + "vsmile": { + "name": "VTech V.Smile" + }, + "wasm4": { + "name": "WASM-4 Fantasy Console" + }, + "wii": { + "name": "Nintendo Wii" + }, + "wiiu": { + "name": "Nintendo Wii U" + }, + "windows": { + "name": "Microsoft Windows" + }, + "windows3x": { + "name": "Microsoft Windows 3.x" + }, + "windows9x": { + "name": "Microsoft Windows 9x" + }, + "wonderswan": { + "name": "Bandai WonderSwan" + }, + "wonderswancolor": { + "name": "Bandai WonderSwan Color" + }, + "x1": { + "name": "Sharp X1" + }, + "x68000": { + "name": "Sharp X68000" + }, + "xbox": { + "name": "Microsoft Xbox" + }, + "zx81": { + "name": "Sinclair ZX81" + }, + "zxspectrum": { + "name": "Sinclair ZX Spectrum" + } + }, + "emulator": { + "retroarch": { + "description": "RetroArch (Multi-emulator Frontend)", + "name": "RetroArch", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/retroarch/retroarch-guide/", + "launch": "retroarch", + "system": "retroarch", + "properties": [ + { + "cheevos": true, + "cheevos_hardcore": true, + "quick_resume": true + } + ], + "cores": { + "citra_libretro": { + "description": "Nintendo 3DS Libretro Core", + "name": "Citra", + "system": "n3ds", + "properties": [ + { + "abxy_button": true + } + ] + }, + "mame_libretro": { + "description": "MAME: Multiple Arcade Machine Libretro Core", + "name": "MAME", + "system": "arcade", + "properties": [ + { + "tate_mode": true + } + ] + }, + "desmume_libretro": { + "description": "DeSmuME Nintendo DS Libretro Core", + "name": "desmume", + "system": "nds", + "properties": [ + { + "abxy_button": true + } + ] + }, + "melonds_libretro": { + "description": "MelonDS Nintendo DS Libretro Core", + "name": "melonds", + "system": "nds", + "properties": [ + { + "abxy_button": true + } + ] + }, + "swanstation_libretro": { + "name": "SwanStation", + "description": "Swanstation Libretro Core", + "system": "psx", + "properties": [ + { + "widescreen": true, + "borders": true + } + ] + }, + "picodrive_libetro": { + "name": "PicoDrive", + "description": "SEGA MS/MD/CD/32X Libretro Core", + "system": [ + "ms", + "md", + "cd", + "32x" + ], + "properties": [ + { + "widescreen": true, + "borders": true, + "rewind": true + } + ] + }, + "genesisplusgx_libetro": { + "name": "Genesis Plus GX", + "description": "SEGA MS/GG/MD/CD Libretro Core", + "system": [ + "ms", + "gg", + "mc", + "cd" + ], + "properties": [ + { + "widescreen": true, + "borders": true, + "rewind": true + } + ] + }, + "genesisplusgxwide_libetro": { + "name": "Genesis Plus GX Wide", + "description": "SEGA MS/GG/MD/CD Libretro Core for Wide Screen", + "system": [ + "ms", + "gg", + "mc", + "cd" + ], + "properties": [ + { + "widescreen": true, + "rewind": true + } + ] + }, + "mupen64plus-next_libetro": { + "name": "Mupen64Plus-Next", + "description": "Nintendo 64 Libretro Core", + "system": "n64", + "properties": [ + { + "widescreen": true, + "borders": true, + "abxy_button": true + } + ] + }, + "snes9x-current_libetro": { + "name": "Snes9x - Current", + "description": "Super Nintendo Libretro Core", + "system": "snes", + "properties": [ + { + "widescreen": true, + "borders": true, + "rewind": true, + "abxy_button": true + } + ] + }, + "gambatte_libetro": { + "name": "Gambatte", + "description": "Game Boy/Color Libretro Core", + "system": [ + "gb", + "gbc" + ], + "properties": [ + { + "borders": true, + "rewind": true, + "abxy_button": true + } + ] + }, + "mgba_libetro": { + "name": "mGBA", + "description": "Game Boy Advance Libretro Core", + "system": "gba", + "properties": [ + { + "borders": true, + "rewind": true, + "abxy_button": true + } + ] + } + } + }, + "mame": { + "description": "MAME: Multiple Arcade Machine Emulator", + "name": "MAME", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/mame/mame-guide/", + "system": [ + "arcade" + ], + "launch": "mame" + }, + "citra": { + "description": "Citra Nintendo 3DS Emulator (via Ponzu)", + "name": "Citra (via Ponzu)", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/", + "system": "n3ds", + "ponzu": true, + "launch": "citra-qt", + "properties": [ + { + "abxy_button": true, + "ask_to_exit": true + } + ] + }, + "ruffle": { + "description": "Flash Games emulator", + "name" : "Ruffle", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/", + "system" : "flash", + "launch": "ruffle-rd-wrapper.sh" + }, + "melonds": { + "description": "MelonDS Nintendo DS Emulator", + "name": "melonds", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/melonds/melonds-guide/", + "system": "nds", + "launch": "MelonDS" + }, + "pcsx2": { + "name": "pcsx2", + "description": "PCSX2 Play Station 2 Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/pcsx2/pcsx2-guide/", + "system": "ps2", + "launch": "pcsx2-qt", + "properties": [ + { + "ask_to_exit": true, + "cheevos": true + } + ] + }, + "duckstation": { + "name": "Duckstation", + "description": "PlayStation Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/duckstation/duckstation-guide/", + "launch": "duckstation-qt", + "system": "psx", + "properties": [ + { + "ask_to_exit": true, + "cheevos": true + } + ] + }, + "ppsspp": { + "name": "PPSSPP", + "description": "PPSSPP: PlayStation Portable Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/ppsspp/ppsspp-guide/", + "launch": "PPSSPPSDL", + "system": "psp", + "properties": [ + { + "cheevos": true, + "cheevos_hardcore": true + } + ] + }, + "vita3k": { + "name": "Vita3k", + "description": "Vita3K PSVita Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/vita3k/vita3k-guide/", + "system": "psvita", + "launch": "Vita3K" + }, + "rpcs3": { + "name": "RPCS3", + "description": "RPCS3 PlayStation 3 Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/rpcs3/rpcs3-guide/", + "system": "ps3", + "launch": "rpcs3", + "properties": [ + { + "ask_to_exit": true + } + ] + }, + "ryujinx": { + "name": "Ryujinx", + "description": "Ryujinx Nintendo Switch Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/ryujinx/ryujinx-guide/", + "system": "switch", + "launch": "Ryujinx.sh" + }, + "yuzu": { + "name": "Yuzu (via Ponzu)", + "description": "Yuzu Nintendo Switch Emulator (via Ponzu)", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_about/what-is-retrodeck/", + "launch": "Yuzu", + "system": "switch", + "ponzu": true, + "abxy_button": true + }, + "dolphin": { + "name": "Dolphin", + "description": "Dolphin Wii and GameCube Emulator", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/", + "launch": "dolphin-emu-wrapper", + "system": [ + "gc", + "wii" + ], + "properties": [ + { + "abxy_button": true, + "ask_to_exit": true, + "cheevos": true, + "cheevos_hardcore": true, + "universal_dyn_input": true + } + ] + }, + "primehack": { + "name": "PrimeHack", + "description": "A fork of Dolphiin to enhance Metroid Prime experience", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-guide/", + "launch": "primehack-wrapper", + "system": [ + "wii" + ], + "properties": [ + { + "ask_to_exit": true, + "universal_dyn_input": true + } + ] + }, + "cemu": { + "description": "Wii U emulator", + "name": "Cemu", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/cemu/cemu-guide/", + "system": "wiiu", + "launch": "Cemu-wrapper", + "properties": [ + { + "abxy_button": true, + "multi_user_config_dir": "Cemu" + } + ] + }, + "xemu": { + "description": "xemu Xbox Emulator", + "name": "xemu", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/xemu/xemu-guide/", + "system": "xbox", + "launch": "xemu" + }, + "es-de": { + "description": "ES-DE Emulation Frontend", + "name": "ES-DE", + "url": "https://retrodeck.readthedocs.io/en/latest/wiki_es_de/esde-guide/." +, "launch": "es-de" + } + } } -} + \ No newline at end of file diff --git a/tools/configurator/TabContainer.gd b/tools/configurator/TabContainer.gd index fcd98b61..be7ee80f 100644 --- a/tools/configurator/TabContainer.gd +++ b/tools/configurator/TabContainer.gd @@ -8,22 +8,30 @@ func _ready(): %TabContainer.add_theme_icon_override("decrement_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png")) %TabContainer.add_theme_icon_override("increment",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png")) %TabContainer.add_theme_icon_override("increment_highlight",ResourceLoader.load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png")) - set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/applications-graphics.png")) + set_tab_icon(0, ResourceLoader.load("res://assets/icons/pixelitos/128/map-globe.png")) set_tab_icon_max_width(0,icon_width) set_tab_icon(1, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-windows.png")) set_tab_icon_max_width(1,icon_width) - set_tab_icon(2, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-tweak-tool.png")) + set_tab_icon(2, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-system-monitor.png")) set_tab_icon_max_width(2,icon_width) - set_tab_icon(3, ResourceLoader.load("res://assets/icons/pixelitos/128/network-workgroup.png")) + set_tab_icon(3, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-session-services.png")) set_tab_icon_max_width(3,icon_width) - set_tab_icon(4, ResourceLoader.load("res://assets/icons/pixelitos/128/utilities-system-monitor.png")) + set_tab_icon(4, ResourceLoader.load("res://assets/icons/pixelitos/128/help-about.png")) set_tab_icon_max_width(4,icon_width) - set_tab_icon(5, ResourceLoader.load("res://assets/icons/pixelitos/128/preferences-system-session-services.png")) - set_tab_icon_max_width(5,icon_width) - set_tab_icon(6, ResourceLoader.load("res://assets/icons/pixelitos/128/help-about.png")) - set_tab_icon_max_width(6,icon_width) #%TK_GRAPHICS.name="BOB" -# + connect_focus_signals(self) + +func connect_focus_signals(node): + for child in node.get_children(): + if child is Button: + child.focus_entered.connect(_on_Button_focus_entered.bind(child)) + elif child is Control: + connect_focus_signals(child) + +func _on_Button_focus_entered(button: Button): + if button: + %AudioStreamPlayer2D.play() + func _input(event): if (event.is_action_pressed("next_tab")): self.select_next_available() diff --git a/tools/configurator/assets/graphics/rekku2/rekku_base.png b/tools/configurator/assets/graphics/rekku2/rekku_base.png new file mode 100644 index 00000000..84516647 Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_base.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_base.png.import b/tools/configurator/assets/graphics/rekku2/rekku_base.png.import new file mode 100644 index 00000000..45620203 --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_base.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://l3bredurb11m" +path="res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_base.png" +dest_files=["res://.godot/imported/rekku_base.png-ba655e0b7ca5167750e3c33bad52b118.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png b/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png new file mode 100644 index 00000000..f25c0c3b Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png.import b/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png.import new file mode 100644 index 00000000..8ff14492 --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_eye_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvlncuql8igrm" +path="res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_eye_1.png" +dest_files=["res://.godot/imported/rekku_eye_1.png-bdb05770012bbf8805a308be308f2f11.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png b/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png new file mode 100644 index 00000000..8a33ab5b Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png.import b/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png.import new file mode 100644 index 00000000..70f02035 --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_eye_2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdrdu4nddkqjn" +path="res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_eye_2.png" +dest_files=["res://.godot/imported/rekku_eye_2.png-470f058d31522c2d3d622d57668ea739.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png b/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png new file mode 100644 index 00000000..8433aa6f Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png.import b/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png.import new file mode 100644 index 00000000..5132aa9b --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_mouth_a.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cb2hwhaq036mu" +path="res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_mouth_a.png" +dest_files=["res://.godot/imported/rekku_mouth_a.png-279dcb9a384b18dcc5f0e9b1fce89965.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png b/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png new file mode 100644 index 00000000..3e1b8cc3 Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png.import b/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png.import new file mode 100644 index 00000000..45651006 --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_mouth_i.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dl2fd66fvn1an" +path="res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_mouth_i.png" +dest_files=["res://.godot/imported/rekku_mouth_i.png-66f20d9dcec19841a364e26d8f38c17a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png b/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png new file mode 100644 index 00000000..4c8d44dc Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png.import b/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png.import new file mode 100644 index 00000000..b18f656f --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_mouth_m.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3ktnkmuecxea" +path="res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_mouth_m.png" +dest_files=["res://.godot/imported/rekku_mouth_m.png-f85c73bab4824d3102d50150c4e5375e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png b/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png new file mode 100644 index 00000000..8871b416 Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png.import b/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png.import new file mode 100644 index 00000000..96b42cb1 --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_mouth_o.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d08ngewjvxkmn" +path="res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_mouth_o.png" +dest_files=["res://.godot/imported/rekku_mouth_o.png-72bff84aecbb9047648fb98563492453.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png b/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png new file mode 100644 index 00000000..a5b8224f Binary files /dev/null and b/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png differ diff --git a/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png.import b/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png.import new file mode 100644 index 00000000..5156c7af --- /dev/null +++ b/tools/configurator/assets/graphics/rekku2/rekku_nomouth.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dieva7tuxjrvy" +path="res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/rekku2/rekku_nomouth.png" +dest_files=["res://.godot/imported/rekku_nomouth.png-6aea5248544dd97243fc5c179e0e2d58.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/es-de.png b/tools/configurator/assets/icons/pixelitos/128/es-de.png new file mode 100644 index 00000000..6575bb96 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/es-de.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/es-de.png.import b/tools/configurator/assets/icons/pixelitos/128/es-de.png.import new file mode 100644 index 00000000..f49c47ce --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/es-de.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhf620jyq75t1" +path="res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/es-de.png" +dest_files=["res://.godot/imported/es-de.png-7133c76b0fc370d6d2c311241df36cf6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/flycast.png b/tools/configurator/assets/icons/pixelitos/128/flycast.png new file mode 100644 index 00000000..a98a8cee Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/flycast.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/flycast.png.import b/tools/configurator/assets/icons/pixelitos/128/flycast.png.import new file mode 100644 index 00000000..294b5552 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/flycast.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctm3f56t7jhiw" +path="res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/flycast.png" +dest_files=["res://.godot/imported/flycast.png-454d63296971d85691881883d8c379e3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/fuse.png b/tools/configurator/assets/icons/pixelitos/128/fuse.png new file mode 100644 index 00000000..a4cbea7a Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/fuse.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/fuse.png.import b/tools/configurator/assets/icons/pixelitos/128/fuse.png.import new file mode 100644 index 00000000..eb520d80 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/fuse.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://t4bq3t2l0rja" +path="res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/fuse.png" +dest_files=["res://.godot/imported/fuse.png-798b47a8862532036e29b84ce0746e43.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/lime3ds.png b/tools/configurator/assets/icons/pixelitos/128/lime3ds.png new file mode 100644 index 00000000..c0363111 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/lime3ds.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/lime3ds.png.import b/tools/configurator/assets/icons/pixelitos/128/lime3ds.png.import new file mode 100644 index 00000000..3f1489d4 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/lime3ds.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjxqyxpxb8h8q" +path="res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/lime3ds.png" +dest_files=["res://.godot/imported/lime3ds.png-46636e55aca4b1efb87cc2bb6ef805bd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/nestopia.png b/tools/configurator/assets/icons/pixelitos/128/nestopia.png new file mode 100644 index 00000000..0499a7cf Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/nestopia.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/nestopia.png.import b/tools/configurator/assets/icons/pixelitos/128/nestopia.png.import new file mode 100644 index 00000000..94a30a0b --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/nestopia.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://de3s3tkxffqk0" +path="res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/nestopia.png" +dest_files=["res://.godot/imported/nestopia.png-e3a5ed0832cb977733e851f186fe9167.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/portal2.png b/tools/configurator/assets/icons/pixelitos/128/portal2.png new file mode 100644 index 00000000..9990ba37 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/portal2.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/portal2.png.import b/tools/configurator/assets/icons/pixelitos/128/portal2.png.import new file mode 100644 index 00000000..1fbd7012 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/portal2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://f8c6tobon13p" +path="res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/portal2.png" +dest_files=["res://.godot/imported/portal2.png-8c359b0df7fa9dc3dad992debc6f16c3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/portal2.png2 b/tools/configurator/assets/icons/pixelitos/128/portal2.png2 new file mode 120000 index 00000000..69558735 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/portal2.png2 @@ -0,0 +1 @@ +portal2.png \ No newline at end of file diff --git a/tools/configurator/assets/icons/pixelitos/128/snes9x.png b/tools/configurator/assets/icons/pixelitos/128/snes9x.png new file mode 100644 index 00000000..d63bc0e5 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/snes9x.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/snes9x.png.import b/tools/configurator/assets/icons/pixelitos/128/snes9x.png.import new file mode 100644 index 00000000..157f1b91 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/snes9x.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyqdlugy5lts5" +path="res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/snes9x.png" +dest_files=["res://.godot/imported/snes9x.png-985444d2225cee74be2bbfe4fd683dbe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png b/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png new file mode 120000 index 00000000..69558735 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png @@ -0,0 +1 @@ +portal2.png \ No newline at end of file diff --git a/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png.import b/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png.import new file mode 100644 index 00000000..dd872006 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/steam_icon_620.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ck226cpy48rw" +path="res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/steam_icon_620.png" +dest_files=["res://.godot/imported/steam_icon_620.png-7a9e73f3c8c9a5c04b15bb9b88f1fab3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/stella.png b/tools/configurator/assets/icons/pixelitos/128/stella.png new file mode 100644 index 00000000..4953f902 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/stella.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/stella.png.import b/tools/configurator/assets/icons/pixelitos/128/stella.png.import new file mode 100644 index 00000000..712034f3 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/stella.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2fp4cq1l0843" +path="res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/stella.png" +dest_files=["res://.godot/imported/stella.png-e81484435d2c9330faaeb6dd19649c74.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/icons/pixelitos/128/zsnes.png b/tools/configurator/assets/icons/pixelitos/128/zsnes.png new file mode 100644 index 00000000..824a41e7 Binary files /dev/null and b/tools/configurator/assets/icons/pixelitos/128/zsnes.png differ diff --git a/tools/configurator/assets/icons/pixelitos/128/zsnes.png.import b/tools/configurator/assets/icons/pixelitos/128/zsnes.png.import new file mode 100644 index 00000000..ecc2dc58 --- /dev/null +++ b/tools/configurator/assets/icons/pixelitos/128/zsnes.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsctvdrl5okkn" +path="res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/icons/pixelitos/128/zsnes.png" +dest_files=["res://.godot/imported/zsnes.png-8880495aee27e317a73877d10d9f27e8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav new file mode 100644 index 00000000..033e0566 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav.import new file mode 100644 index 00000000..fe5b914f --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b2vis56rc446" +path="res://.godot/imported/538538__sjonas88__process-2.wav-7e0ab92936c07ed43d54872d5e9e3b4b.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538538__sjonas88__process-2.wav" +dest_files=["res://.godot/imported/538538__sjonas88__process-2.wav-7e0ab92936c07ed43d54872d5e9e3b4b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav new file mode 100644 index 00000000..27d95bdc Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav.import new file mode 100644 index 00000000..8c69ff51 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://buktnqo4i5lmh" +path="res://.godot/imported/538539__sjonas88__pipe-sound.wav-6515783939644190febb3c8f23d3e912.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538539__sjonas88__pipe-sound.wav" +dest_files=["res://.godot/imported/538539__sjonas88__pipe-sound.wav-6515783939644190febb3c8f23d3e912.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav new file mode 100644 index 00000000..da2a541e Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav.import new file mode 100644 index 00000000..fd20d7fe --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://h8v5imq2ghl6" +path="res://.godot/imported/538540__sjonas88__fail-sound.wav-25ec50c6877c99ff966be2fd860a0bb1.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538540__sjonas88__fail-sound.wav" +dest_files=["res://.godot/imported/538540__sjonas88__fail-sound.wav-25ec50c6877c99ff966be2fd860a0bb1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav new file mode 100644 index 00000000..32290ae8 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav.import new file mode 100644 index 00000000..1f9aff8d --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dvuhuo2irjhbu" +path="res://.godot/imported/538541__sjonas88__fail-2.wav-122b4ea196164e5fa7c83a9cb72e40b1.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538541__sjonas88__fail-2.wav" +dest_files=["res://.godot/imported/538541__sjonas88__fail-2.wav-122b4ea196164e5fa7c83a9cb72e40b1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav new file mode 100644 index 00000000..73ee660f Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav.import new file mode 100644 index 00000000..6c3ca695 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ccfw0kgfshftj" +path="res://.godot/imported/538542__sjonas88__rising-3.wav-e5be02dafb9d2b2e656f3e284cb59f41.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538542__sjonas88__rising-3.wav" +dest_files=["res://.godot/imported/538542__sjonas88__rising-3.wav-e5be02dafb9d2b2e656f3e284cb59f41.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav new file mode 100644 index 00000000..682202e9 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav.import new file mode 100644 index 00000000..f40102e3 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://7o37g1ldsqg8" +path="res://.godot/imported/538543__sjonas88__rising-2.wav-94424088492c09d1baee466dfd04f771.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538543__sjonas88__rising-2.wav" +dest_files=["res://.godot/imported/538543__sjonas88__rising-2.wav-94424088492c09d1baee466dfd04f771.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav new file mode 100644 index 00000000..50710de8 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav.import new file mode 100644 index 00000000..a510fdc9 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://7w073cgcaph8" +path="res://.godot/imported/538544__sjonas88__process.wav-9eab6f84a156a2f52c7696fb11887a3c.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538544__sjonas88__process.wav" +dest_files=["res://.godot/imported/538544__sjonas88__process.wav-9eab6f84a156a2f52c7696fb11887a3c.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav new file mode 100644 index 00000000..39eba25f Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav.import new file mode 100644 index 00000000..6c33fd01 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bsuubeqwno7gv" +path="res://.godot/imported/538545__sjonas88__process-3.wav-7ffbb7f6eec788f1d198cdfc5bcd35da.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538545__sjonas88__process-3.wav" +dest_files=["res://.godot/imported/538545__sjonas88__process-3.wav-7ffbb7f6eec788f1d198cdfc5bcd35da.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav new file mode 100644 index 00000000..ff1bb288 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav.import new file mode 100644 index 00000000..b69c5001 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c1gh1d0tp5ut3" +path="res://.godot/imported/538546__sjonas88__rising.wav-be28154e2568a7901227e89f3cf4027f.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538546__sjonas88__rising.wav" +dest_files=["res://.godot/imported/538546__sjonas88__rising.wav-be28154e2568a7901227e89f3cf4027f.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav new file mode 100644 index 00000000..b82140be Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav.import new file mode 100644 index 00000000..74050be3 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ctks8i20nretn" +path="res://.godot/imported/538547__sjonas88__rising-4.wav-cc2a6f85daa3fc6ba61d88b8bf523924.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538547__sjonas88__rising-4.wav" +dest_files=["res://.godot/imported/538547__sjonas88__rising-4.wav-cc2a6f85daa3fc6ba61d88b8bf523924.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav new file mode 100644 index 00000000..3ac170a9 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav.import new file mode 100644 index 00000000..ca14f934 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://fveqtwd33w7n" +path="res://.godot/imported/538548__sjonas88__select-3.wav-3d75efee47597b1c7d77f9412f0b14b5.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538548__sjonas88__select-3.wav" +dest_files=["res://.godot/imported/538548__sjonas88__select-3.wav-3d75efee47597b1c7d77f9412f0b14b5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav new file mode 100644 index 00000000..11792f71 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav.import new file mode 100644 index 00000000..4a18a9e5 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dhejvg02t5o35" +path="res://.godot/imported/538549__sjonas88__select-2.wav-8b1c4c60db51366ba4f01f6922bbf4d2.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav" +dest_files=["res://.godot/imported/538549__sjonas88__select-2.wav-8b1c4c60db51366ba4f01f6922bbf4d2.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav new file mode 100644 index 00000000..e465c937 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav.import new file mode 100644 index 00000000..b29bd3fa --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b0tkc4uqeh75q" +path="res://.godot/imported/538550__sjonas88__deep-tone.wav-95e9dc90f6e75bc6620575d07f709ba7.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538550__sjonas88__deep-tone.wav" +dest_files=["res://.godot/imported/538550__sjonas88__deep-tone.wav-95e9dc90f6e75bc6620575d07f709ba7.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav new file mode 100644 index 00000000..2e7aa53d Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav.import new file mode 100644 index 00000000..1284ae6c --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://ujv8kpegpmpt" +path="res://.godot/imported/538551__sjonas88__3-select.wav-86b8ffff434ba08cc915003719c0dcd9.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538551__sjonas88__3-select.wav" +dest_files=["res://.godot/imported/538551__sjonas88__3-select.wav-86b8ffff434ba08cc915003719c0dcd9.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav new file mode 100644 index 00000000..bd71d2a5 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav.import new file mode 100644 index 00000000..d068e028 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://mm42tfxhowwe" +path="res://.godot/imported/538552__sjonas88__rising-tones.wav-f484f3e32af39e2f6ece214b2cbbc19b.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538552__sjonas88__rising-tones.wav" +dest_files=["res://.godot/imported/538552__sjonas88__rising-tones.wav-f484f3e32af39e2f6ece214b2cbbc19b.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav new file mode 100644 index 00000000..55b368da Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav.import new file mode 100644 index 00000000..b14fef5b --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bmap54wuuumst" +path="res://.godot/imported/538553__sjonas88__stars.wav-593d0d6b4e2052a07396971ced5315b5.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538553__sjonas88__stars.wav" +dest_files=["res://.godot/imported/538553__sjonas88__stars.wav-593d0d6b4e2052a07396971ced5315b5.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav new file mode 100644 index 00000000..3d811607 Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav.import new file mode 100644 index 00000000..5ba9a95e --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bu16hw2opbvp6" +path="res://.godot/imported/538554__sjonas88__success.wav-617fb21a3a937ebffcac1034bc19f3de.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538554__sjonas88__success.wav" +dest_files=["res://.godot/imported/538554__sjonas88__success.wav-617fb21a3a937ebffcac1034bc19f3de.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav new file mode 100644 index 00000000..5643866a Binary files /dev/null and b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav differ diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav.import b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav.import new file mode 100644 index 00000000..2b3a2c5d --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cgg08e1741i0m" +path="res://.godot/imported/538555__sjonas88__shimmer.wav-c47d31735b366fa09f66d96c18887d7d.sample" + +[deps] + +source_file="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538555__sjonas88__shimmer.wav" +dest_files=["res://.godot/imported/538555__sjonas88__shimmer.wav-c47d31735b366fa09f66d96c18887d7d.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/_readme_and_license.txt b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/_readme_and_license.txt new file mode 100644 index 00000000..8abc72f9 --- /dev/null +++ b/tools/configurator/assets/sounds/30375__sjonas88__smooth-game-like-sounds/_readme_and_license.txt @@ -0,0 +1,76 @@ +Sound pack downloaded from Freesound +---------------------------------------- + +"Smooth Game-like Sounds" + +This pack of sounds contains sounds by the following user: + - Sjonas88 ( https://freesound.org/people/Sjonas88/ ) + +You can find this pack online at: https://freesound.org/people/Sjonas88/packs/30375/ + + +Licenses in this pack (see below for individual sound licenses) +--------------------------------------------------------------- + +Creative Commons 0: http://creativecommons.org/publicdomain/zero/1.0/ + + +Sounds in this pack +------------------- + + * 538555__sjonas88__shimmer.wav + * url: https://freesound.org/s/538555/ + * license: Creative Commons 0 + * 538554__sjonas88__success.wav + * url: https://freesound.org/s/538554/ + * license: Creative Commons 0 + * 538553__sjonas88__stars.wav + * url: https://freesound.org/s/538553/ + * license: Creative Commons 0 + * 538552__sjonas88__rising-tones.wav + * url: https://freesound.org/s/538552/ + * license: Creative Commons 0 + * 538551__sjonas88__3-select.wav + * url: https://freesound.org/s/538551/ + * license: Creative Commons 0 + * 538550__sjonas88__deep-tone.wav + * url: https://freesound.org/s/538550/ + * license: Creative Commons 0 + * 538549__sjonas88__select-2.wav + * url: https://freesound.org/s/538549/ + * license: Creative Commons 0 + * 538548__sjonas88__select-3.wav + * url: https://freesound.org/s/538548/ + * license: Creative Commons 0 + * 538547__sjonas88__rising-4.wav + * url: https://freesound.org/s/538547/ + * license: Creative Commons 0 + * 538546__sjonas88__rising.wav + * url: https://freesound.org/s/538546/ + * license: Creative Commons 0 + * 538545__sjonas88__process-3.wav + * url: https://freesound.org/s/538545/ + * license: Creative Commons 0 + * 538544__sjonas88__process.wav + * url: https://freesound.org/s/538544/ + * license: Creative Commons 0 + * 538543__sjonas88__rising-2.wav + * url: https://freesound.org/s/538543/ + * license: Creative Commons 0 + * 538542__sjonas88__rising-3.wav + * url: https://freesound.org/s/538542/ + * license: Creative Commons 0 + * 538541__sjonas88__fail-2.wav + * url: https://freesound.org/s/538541/ + * license: Creative Commons 0 + * 538540__sjonas88__fail-sound.wav + * url: https://freesound.org/s/538540/ + * license: Creative Commons 0 + * 538539__sjonas88__pipe-sound.wav + * url: https://freesound.org/s/538539/ + * license: Creative Commons 0 + * 538538__sjonas88__process-2.wav + * url: https://freesound.org/s/538538/ + * license: Creative Commons 0 + + diff --git a/tools/configurator/components/bios_check/bios_check.gd b/tools/configurator/components/bios_check/bios_check.gd index 9e0ac0a5..514b2f19 100644 --- a/tools/configurator/components/bios_check/bios_check.gd +++ b/tools/configurator/components/bios_check/bios_check.gd @@ -1,9 +1,8 @@ extends Control - var file := FileAccess var bios_tempfile : String -var command: String = "../../tools/retrodeck_function_wrapper.sh" +var bios_result: Dictionary var console: bool = false var BIOS_COLUMNS_BASIC := ["BIOS File Name", "System", "Found", "Hash Match", "Description"] var BIOS_COLUMNS_EXPERT := ["BIOS File Name", "System", "Found", "Hash Match", "Description", "Subdirectory", "Hash"] @@ -12,16 +11,8 @@ var BIOS_COLUMNS_EXPERT := ["BIOS File Name", "System", "Found", "Hash Match", " func _ready(): $".".theme = custom_theme - #Check if XDG_RUNTIME_DIR is set and choose temp file location - if OS.has_environment("XDG_RUNTIME_DIR"): - bios_tempfile = OS.get_environment("XDG_RUNTIME_DIR") + "/godot_temp/godot_bios_files_checked.tmp" - #bios_tempfile = "/var/config/retrodeck/godot/godot_bios_files_checked.tmp" - else: - bios_tempfile = "/var/config/retrodeck/godot/godot_bios_files_checked.tmp" - var table := $Table - - if bios_type == 0: #Basic BIOS button pressed + if bios_type == 1: #Basic BIOS button pressed table.columns = BIOS_COLUMNS_BASIC.size() for i in BIOS_COLUMNS_BASIC.size(): table.set_column_title(i, BIOS_COLUMNS_BASIC[i]) @@ -33,32 +24,26 @@ func _ready(): var root = table.create_item() table.hide_root = true - if bios_type == 0: #Basic BIOS button pressed - #OS.execute("/app/tools/retrodeck_function_wrapper.sh",["check_bios_files", "basic"]) - #var parameters = ["log", "i", "Configurator: " + "check_bios_files"] - # classFunctions.execute_command(command, parameters, false) + if bios_type == 1: #Basic BIOS button pressed var parameters = ["check_bios_files","basic"] - #result = classFunctions.execute_command(command, parameters, false) - #threaded - await run_thread_command(command, parameters, console) - + await run_thread_command(class_functions.wrapper_command, parameters, console) + class_functions.log_parameters[2] = class_functions.log_text + "Exit code: " + str(bios_result["exit_code"]) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + else: #Assume advanced BIOS button pressed var parameters = ["check_bios_files"] - class_functions.execute_command(command, parameters, false) - await run_thread_command(command, parameters, console) - #OS.execute("/app/tools/retrodeck_function_wrapper.sh",["check_bios_files"]) - - if file.file_exists(bios_tempfile): #File to be removed after script is done - var bios_list := file.open(bios_tempfile, FileAccess.READ) - var bios_line := [] - while ! bios_list.eof_reached(): - bios_line = bios_list.get_csv_line("^") - var table_line: TreeItem = table.create_item(root) - for i in bios_line.size(): - table_line.set_text(i, bios_line[i]) - if table_line.get_index() % 2 == 1: - table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false) - table_line.set_custom_color(i,Color(1,1,1,1)) + class_functions.execute_command(class_functions.wrapper_command, parameters, false) + await run_thread_command(class_functions.wrapper_command, parameters, console) + var bios_list = bios_result["output"] + var bios_lines = bios_list.split("\n") + for line in bios_lines: + var bios_line = line.split("^") + var table_line: TreeItem = table.create_item(root) + for i in bios_line.size(): + table_line.set_text(i, bios_line[i]) + if table_line.get_index() % 2 == 1: + table_line.set_custom_bg_color(i,Color(0.15, 0.15, 0.15, 1),false) + table_line.set_custom_color(i,Color(1,1,1,1)) func run_thread_command(command: String, parameters: Array, console: bool) -> void: - var result = await class_functions.run_command_in_thread(command, parameters, console) + bios_result = await class_functions.run_command_in_thread(command, parameters, console) diff --git a/tools/configurator/components/bios_check/bios_popup_content.tscn b/tools/configurator/components/bios_check/bios_popup_content.tscn index 7c7b8ca6..1cd728ea 100644 --- a/tools/configurator/components/bios_check/bios_popup_content.tscn +++ b/tools/configurator/components/bios_check/bios_popup_content.tscn @@ -14,21 +14,6 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_qrkee") -[node name="RichTextLabel" type="RichTextLabel" parent="."] -visible = false -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -text = "This is a list of problematic BIOS? -Very multiline text -Why do we use it? - -PS3 BIOS IS VERY BAD -I'm not sure what else?" - [node name="Table" type="Tree" parent="."] layout_mode = 1 anchors_preset = 15 @@ -38,4 +23,5 @@ grow_horizontal = 2 grow_vertical = 2 columns = 5 column_titles_visible = true +allow_rmb_select = true select_mode = 1 diff --git a/tools/configurator/components/popup.gd b/tools/configurator/components/popup.gd index 3f384faa..1289df48 100644 --- a/tools/configurator/components/popup.gd +++ b/tools/configurator/components/popup.gd @@ -5,14 +5,16 @@ var content = null #@onready var button_off = get_node(current_scene.%l1_button)# .current_scene.l1_button @onready var lbhide: TextureButton = get_tree().current_scene.get_node("%l1_button") @onready var rbhide: TextureButton = get_tree().current_scene.get_node("%r1_button") +@onready var bios_type:int = get_tree().current_scene.bios_type func _ready(): lbhide.visible=false rbhide.visible=false + print (bios_type) $".".theme = custom_theme - if (content != null): + # TODO this alowes copy and paste from RTB in logs? + if (content != null and bios_type > 0): $Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer.add_child(content) - func _process(delta): if Input.is_action_pressed("back_button"): @@ -22,6 +24,7 @@ func _process(delta): func set_content(new_content): content = load(new_content).instantiate() + func set_title(new_title): $Panel/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/Label.text = new_title func set_display_text(new_display_text): diff --git a/tools/configurator/components/popup.tscn b/tools/configurator/components/popup.tscn index a5810685..5d714218 100644 --- a/tools/configurator/components/popup.tscn +++ b/tools/configurator/components/popup.tscn @@ -73,6 +73,7 @@ layout_mode = 2 focus_mode = 2 scroll_following = true context_menu_enabled = true +shortcut_keys_enabled = false selection_enabled = true [connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/BackButton" to="." method="_on_back_pressed"] diff --git a/tools/configurator/components/popup_dialogue.gd b/tools/configurator/components/popup_dialogue.gd new file mode 100644 index 00000000..9aca731d --- /dev/null +++ b/tools/configurator/components/popup_dialogue.gd @@ -0,0 +1,44 @@ +extends Control + +@onready var custom_theme: Theme = get_tree().current_scene.custom_theme +#@onready var button_off = get_node(current_scene.%l1_button)# .current_scene.l1_button +#@onready var lbhide: TextureButton = get_tree().current_scene.get_node("%l1_button") +#@onready var rbhide: TextureButton = get_tree().current_scene.get_node("%r1_button") +var command: String +var parameters: Array + +func _ready(): + $".".theme = custom_theme + var args = OS.get_cmdline_args() + for arg in range(args.size()): + if args[arg] == "--title" and arg + 1 < args.size(): + %title_label.text = args[arg + 1] + elif args[arg] == "--content" and arg + 1 < args.size(): + %content_rtl.text = args[arg + 1] + elif args[arg] == "--command" and arg + 1 < args.size(): + command = args[arg + 1] + elif args[arg] == "--parameters" and arg + 1 < args.size(): + parameters.append(args[arg + 1]) + elif args[arg] == "--fullscreen" and arg + 1 < args.size(): + DisplayServer.window_set_mode(DisplayServer.WindowMode.WINDOW_MODE_FULLSCREEN) + +#func _process(delta): + #if Input.is_action_pressed("back_button"): + #get_tree().quit() + +func _input(event): + if Input.is_action_pressed("back_button"): + get_tree().quit() + +func _on_cancel_pressed(): + class_functions.log_parameters[2] = class_functions.log_text + "Exited dialogue" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + get_tree().quit() + +func _on_ok_button_pressed() -> void: + class_functions.log_parameters[2] = class_functions.log_text + "Command to run:- " + command + " " + str(parameters) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + var result = class_functions.execute_command(command,parameters , false) + class_functions.log_parameters[2] = class_functions.log_text + "Exit code: " + str(result["exit_code"]) + %content_rtl.text = result["output"] + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) diff --git a/tools/configurator/components/popup_dialogue.tscn b/tools/configurator/components/popup_dialogue.tscn new file mode 100644 index 00000000..4d04367c --- /dev/null +++ b/tools/configurator/components/popup_dialogue.tscn @@ -0,0 +1,107 @@ +[gd_scene load_steps=3 format=3 uid="uid://bdbxu0r51jfk1"] + +[ext_resource type="Script" path="res://components/popup_dialogue.gd" id="1_oiwsy"] +[ext_resource type="Texture2D" uid="uid://brf74puvpnwsd" path="res://assets/graphics/retrodeck.png" id="2_3a55w"] + +[node name="Popup_Dialogue" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 23.0 +offset_top = -7.0 +offset_right = 23.0 +offset_bottom = -7.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_oiwsy") + +[node name="Panel" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_right = -357.0 +offset_bottom = -70.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="Panel/MarginContainer"] +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 0 +theme_override_constants/margin_right = 0 +theme_override_constants/margin_bottom = 0 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 + +[node name="title_label" type="Label" parent="Panel/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +theme_override_font_sizes/font_size = 23 +text = "Welcome to RetroDeck" + +[node name="ContentContainer" type="Panel" parent="Panel/MarginContainer/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer/ContentContainer"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 6 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 6 + +[node name="content_rtl" type="RichTextLabel" parent="Panel/MarginContainer/VBoxContainer/ContentContainer/MarginContainer"] +unique_name_in_owner = true +layout_mode = 2 +focus_mode = 2 +text = "Some text here for the content?" +scroll_following = true +context_menu_enabled = true +selection_enabled = true + +[node name="MarginContainer_bootom" type="MarginContainer" parent="Panel/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/VBoxContainer/MarginContainer_bootom"] +layout_mode = 2 + +[node name="cancel_button" type="Button" parent="Panel/MarginContainer/VBoxContainer/MarginContainer_bootom/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 10 +text = "CANCEL" + +[node name="ok_button" type="Button" parent="Panel/MarginContainer/VBoxContainer/MarginContainer_bootom/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +size_flags_horizontal = 10 +text = "OK" + +[node name="Retrodeck" type="Sprite2D" parent="."] +position = Vector2(859, 108) +scale = Vector2(0.209961, 0.204102) +texture = ExtResource("2_3a55w") + +[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/MarginContainer_bootom/HBoxContainer/cancel_button" to="." method="_on_cancel_pressed"] +[connection signal="pressed" from="Panel/MarginContainer/VBoxContainer/MarginContainer_bootom/HBoxContainer/ok_button" to="." method="_on_ok_button_pressed"] diff --git a/tools/configurator/controller_guide.gd b/tools/configurator/controller_guide.gd new file mode 100644 index 00000000..3965ba1d --- /dev/null +++ b/tools/configurator/controller_guide.gd @@ -0,0 +1,12 @@ +extends PanelContainer + +func _process(delta): + # TODO hack. Use state machine? + if %action_gridcontainer.visible == true: + if Input.is_action_pressed("back_button"): + %action_gridcontainer.visible = false + for i in range(%system_gridcontainer.get_child_count()): + var child = %system_gridcontainer.get_child(i) + if child is Button: + child.visible=true + child.toggle_mode = false diff --git a/tools/configurator/export_presets.cfg b/tools/configurator/export_presets.cfg index 6a69d4df..b5845d75 100644 --- a/tools/configurator/export_presets.cfg +++ b/tools/configurator/export_presets.cfg @@ -1,8 +1,9 @@ [preset.0] name="Linux/X11 64-bit" -platform="Linux/X11" +platform="Linux" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" @@ -13,6 +14,7 @@ encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.0.options] @@ -20,10 +22,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=true -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" @@ -37,3 +37,322 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false + +[preset.1] + +name="windows" +platform="Windows Desktop" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=true +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" + +[preset.2] + +name="macOS" +platform="macOS" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="./godot_configurator.zip" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.2.options] + +export/distribution_type=1 +binary_format/architecture="universal" +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +application/icon="" +application/icon_interpolation=4 +application/bundle_identifier="net.retrodeck.retrodeck" +application/signature="" +application/app_category="Games" +application/short_version="" +application/version="" +application/copyright="" +application/copyright_localized={} +application/min_macos_version="10.12" +application/export_angle=0 +display/high_res=true +application/additional_plist_content="" +xcode/platform_build="14C18" +xcode/sdk_version="13.1" +xcode/sdk_build="22C55" +xcode/sdk_name="macosx13.1" +xcode/xcode_version="1420" +xcode/xcode_build="14C18" +codesign/codesign=1 +codesign/installer_identity="" +codesign/apple_team_id="" +codesign/identity="" +codesign/entitlements/custom_file="" +codesign/entitlements/allow_jit_code_execution=false +codesign/entitlements/allow_unsigned_executable_memory=false +codesign/entitlements/allow_dyld_environment_variables=false +codesign/entitlements/disable_library_validation=false +codesign/entitlements/audio_input=false +codesign/entitlements/camera=false +codesign/entitlements/location=false +codesign/entitlements/address_book=false +codesign/entitlements/calendars=false +codesign/entitlements/photos_library=false +codesign/entitlements/apple_events=false +codesign/entitlements/debugging=false +codesign/entitlements/app_sandbox/enabled=false +codesign/entitlements/app_sandbox/network_server=false +codesign/entitlements/app_sandbox/network_client=false +codesign/entitlements/app_sandbox/device_usb=false +codesign/entitlements/app_sandbox/device_bluetooth=false +codesign/entitlements/app_sandbox/files_downloads=0 +codesign/entitlements/app_sandbox/files_pictures=0 +codesign/entitlements/app_sandbox/files_music=0 +codesign/entitlements/app_sandbox/files_movies=0 +codesign/entitlements/app_sandbox/files_user_selected=0 +codesign/entitlements/app_sandbox/helper_executables=[] +codesign/custom_options=PackedStringArray() +notarization/notarization=0 +privacy/microphone_usage_description="" +privacy/microphone_usage_description_localized={} +privacy/camera_usage_description="" +privacy/camera_usage_description_localized={} +privacy/location_usage_description="" +privacy/location_usage_description_localized={} +privacy/address_book_usage_description="" +privacy/address_book_usage_description_localized={} +privacy/calendar_usage_description="" +privacy/calendar_usage_description_localized={} +privacy/photos_library_usage_description="" +privacy/photos_library_usage_description_localized={} +privacy/desktop_folder_usage_description="" +privacy/desktop_folder_usage_description_localized={} +privacy/documents_folder_usage_description="" +privacy/documents_folder_usage_description_localized={} +privacy/downloads_folder_usage_description="" +privacy/downloads_folder_usage_description_localized={} +privacy/network_volumes_usage_description="" +privacy/network_volumes_usage_description_localized={} +privacy/removable_volumes_usage_description="" +privacy/removable_volumes_usage_description_localized={} +privacy/tracking_enabled=false +privacy/tracking_domains=PackedStringArray() +privacy/collected_data/name/collected=false +privacy/collected_data/name/linked_to_user=false +privacy/collected_data/name/used_for_tracking=false +privacy/collected_data/name/collection_purposes=0 +privacy/collected_data/email_address/collected=false +privacy/collected_data/email_address/linked_to_user=false +privacy/collected_data/email_address/used_for_tracking=false +privacy/collected_data/email_address/collection_purposes=0 +privacy/collected_data/phone_number/collected=false +privacy/collected_data/phone_number/linked_to_user=false +privacy/collected_data/phone_number/used_for_tracking=false +privacy/collected_data/phone_number/collection_purposes=0 +privacy/collected_data/physical_address/collected=false +privacy/collected_data/physical_address/linked_to_user=false +privacy/collected_data/physical_address/used_for_tracking=false +privacy/collected_data/physical_address/collection_purposes=0 +privacy/collected_data/other_contact_info/collected=false +privacy/collected_data/other_contact_info/linked_to_user=false +privacy/collected_data/other_contact_info/used_for_tracking=false +privacy/collected_data/other_contact_info/collection_purposes=0 +privacy/collected_data/health/collected=false +privacy/collected_data/health/linked_to_user=false +privacy/collected_data/health/used_for_tracking=false +privacy/collected_data/health/collection_purposes=0 +privacy/collected_data/fitness/collected=false +privacy/collected_data/fitness/linked_to_user=false +privacy/collected_data/fitness/used_for_tracking=false +privacy/collected_data/fitness/collection_purposes=0 +privacy/collected_data/payment_info/collected=false +privacy/collected_data/payment_info/linked_to_user=false +privacy/collected_data/payment_info/used_for_tracking=false +privacy/collected_data/payment_info/collection_purposes=0 +privacy/collected_data/credit_info/collected=false +privacy/collected_data/credit_info/linked_to_user=false +privacy/collected_data/credit_info/used_for_tracking=false +privacy/collected_data/credit_info/collection_purposes=0 +privacy/collected_data/other_financial_info/collected=false +privacy/collected_data/other_financial_info/linked_to_user=false +privacy/collected_data/other_financial_info/used_for_tracking=false +privacy/collected_data/other_financial_info/collection_purposes=0 +privacy/collected_data/precise_location/collected=false +privacy/collected_data/precise_location/linked_to_user=false +privacy/collected_data/precise_location/used_for_tracking=false +privacy/collected_data/precise_location/collection_purposes=0 +privacy/collected_data/coarse_location/collected=false +privacy/collected_data/coarse_location/linked_to_user=false +privacy/collected_data/coarse_location/used_for_tracking=false +privacy/collected_data/coarse_location/collection_purposes=0 +privacy/collected_data/sensitive_info/collected=false +privacy/collected_data/sensitive_info/linked_to_user=false +privacy/collected_data/sensitive_info/used_for_tracking=false +privacy/collected_data/sensitive_info/collection_purposes=0 +privacy/collected_data/contacts/collected=false +privacy/collected_data/contacts/linked_to_user=false +privacy/collected_data/contacts/used_for_tracking=false +privacy/collected_data/contacts/collection_purposes=0 +privacy/collected_data/emails_or_text_messages/collected=false +privacy/collected_data/emails_or_text_messages/linked_to_user=false +privacy/collected_data/emails_or_text_messages/used_for_tracking=false +privacy/collected_data/emails_or_text_messages/collection_purposes=0 +privacy/collected_data/photos_or_videos/collected=false +privacy/collected_data/photos_or_videos/linked_to_user=false +privacy/collected_data/photos_or_videos/used_for_tracking=false +privacy/collected_data/photos_or_videos/collection_purposes=0 +privacy/collected_data/audio_data/collected=false +privacy/collected_data/audio_data/linked_to_user=false +privacy/collected_data/audio_data/used_for_tracking=false +privacy/collected_data/audio_data/collection_purposes=0 +privacy/collected_data/gameplay_content/collected=false +privacy/collected_data/gameplay_content/linked_to_user=false +privacy/collected_data/gameplay_content/used_for_tracking=false +privacy/collected_data/gameplay_content/collection_purposes=0 +privacy/collected_data/customer_support/collected=false +privacy/collected_data/customer_support/linked_to_user=false +privacy/collected_data/customer_support/used_for_tracking=false +privacy/collected_data/customer_support/collection_purposes=0 +privacy/collected_data/other_user_content/collected=false +privacy/collected_data/other_user_content/linked_to_user=false +privacy/collected_data/other_user_content/used_for_tracking=false +privacy/collected_data/other_user_content/collection_purposes=0 +privacy/collected_data/browsing_history/collected=false +privacy/collected_data/browsing_history/linked_to_user=false +privacy/collected_data/browsing_history/used_for_tracking=false +privacy/collected_data/browsing_history/collection_purposes=0 +privacy/collected_data/search_hhistory/collected=false +privacy/collected_data/search_hhistory/linked_to_user=false +privacy/collected_data/search_hhistory/used_for_tracking=false +privacy/collected_data/search_hhistory/collection_purposes=0 +privacy/collected_data/user_id/collected=false +privacy/collected_data/user_id/linked_to_user=false +privacy/collected_data/user_id/used_for_tracking=false +privacy/collected_data/user_id/collection_purposes=0 +privacy/collected_data/device_id/collected=false +privacy/collected_data/device_id/linked_to_user=false +privacy/collected_data/device_id/used_for_tracking=false +privacy/collected_data/device_id/collection_purposes=0 +privacy/collected_data/purchase_history/collected=false +privacy/collected_data/purchase_history/linked_to_user=false +privacy/collected_data/purchase_history/used_for_tracking=false +privacy/collected_data/purchase_history/collection_purposes=0 +privacy/collected_data/product_interaction/collected=false +privacy/collected_data/product_interaction/linked_to_user=false +privacy/collected_data/product_interaction/used_for_tracking=false +privacy/collected_data/product_interaction/collection_purposes=0 +privacy/collected_data/advertising_data/collected=false +privacy/collected_data/advertising_data/linked_to_user=false +privacy/collected_data/advertising_data/used_for_tracking=false +privacy/collected_data/advertising_data/collection_purposes=0 +privacy/collected_data/other_usage_data/collected=false +privacy/collected_data/other_usage_data/linked_to_user=false +privacy/collected_data/other_usage_data/used_for_tracking=false +privacy/collected_data/other_usage_data/collection_purposes=0 +privacy/collected_data/crash_data/collected=false +privacy/collected_data/crash_data/linked_to_user=false +privacy/collected_data/crash_data/used_for_tracking=false +privacy/collected_data/crash_data/collection_purposes=0 +privacy/collected_data/performance_data/collected=false +privacy/collected_data/performance_data/linked_to_user=false +privacy/collected_data/performance_data/used_for_tracking=false +privacy/collected_data/performance_data/collection_purposes=0 +privacy/collected_data/other_diagnostic_data/collected=false +privacy/collected_data/other_diagnostic_data/linked_to_user=false +privacy/collected_data/other_diagnostic_data/used_for_tracking=false +privacy/collected_data/other_diagnostic_data/collection_purposes=0 +privacy/collected_data/environment_scanning/collected=false +privacy/collected_data/environment_scanning/linked_to_user=false +privacy/collected_data/environment_scanning/used_for_tracking=false +privacy/collected_data/environment_scanning/collection_purposes=0 +privacy/collected_data/hands/collected=false +privacy/collected_data/hands/linked_to_user=false +privacy/collected_data/hands/used_for_tracking=false +privacy/collected_data/hands/collection_purposes=0 +privacy/collected_data/head/collected=false +privacy/collected_data/head/linked_to_user=false +privacy/collected_data/head/used_for_tracking=false +privacy/collected_data/head/collection_purposes=0 +privacy/collected_data/other_data_types/collected=false +privacy/collected_data/other_data_types/linked_to_user=false +privacy/collected_data/other_data_types/used_for_tracking=false +privacy/collected_data/other_data_types/collection_purposes=0 +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" diff --git a/tools/configurator/locales/interface.de.translation b/tools/configurator/locales/interface.de.translation index 32ac9a52..2f59526e 100644 Binary files a/tools/configurator/locales/interface.de.translation and b/tools/configurator/locales/interface.de.translation differ diff --git a/tools/configurator/locales/interface.en.translation b/tools/configurator/locales/interface.en.translation index 499a21f9..8182e1b2 100644 Binary files a/tools/configurator/locales/interface.en.translation and b/tools/configurator/locales/interface.en.translation differ diff --git a/tools/configurator/locales/interface.it.translation b/tools/configurator/locales/interface.it.translation index 52c56a3e..9c7151ee 100644 Binary files a/tools/configurator/locales/interface.it.translation and b/tools/configurator/locales/interface.it.translation differ diff --git a/tools/configurator/locales/interface.ja.translation b/tools/configurator/locales/interface.ja.translation index 4b90f1f0..98f64413 100644 Binary files a/tools/configurator/locales/interface.ja.translation and b/tools/configurator/locales/interface.ja.translation differ diff --git a/tools/configurator/locales/interface.sv.translation b/tools/configurator/locales/interface.sv.translation index 8047717d..324bf1a8 100644 Binary files a/tools/configurator/locales/interface.sv.translation and b/tools/configurator/locales/interface.sv.translation differ diff --git a/tools/configurator/locales/interface.ua.translation b/tools/configurator/locales/interface.ua.translation index 346b3c9b..374ba233 100644 Binary files a/tools/configurator/locales/interface.ua.translation and b/tools/configurator/locales/interface.ua.translation differ diff --git a/tools/configurator/locales/interface.zh.translation b/tools/configurator/locales/interface.zh.translation index b2305da7..e1a1802a 100644 Binary files a/tools/configurator/locales/interface.zh.translation and b/tools/configurator/locales/interface.zh.translation differ diff --git a/tools/configurator/main.gd b/tools/configurator/main.gd index ba963ed3..57dd0742 100644 --- a/tools/configurator/main.gd +++ b/tools/configurator/main.gd @@ -3,11 +3,7 @@ extends Control -var bios_type:int -var status_code_label: Label -var wrapper_command: String = "../../tools/retrodeck_function_wrapper.sh" -var log_text = "gdc_" -var log_parameters: Array = ["log", "i", log_text] +@onready var bios_type:int var log_results: Dictionary var theme_option: OptionButton #signal signal_theme_changed @@ -22,34 +18,59 @@ var l1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts var r1_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png") var a_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0042.png") var b_button_texture: Texture2D = load("res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png") - var app_data := AppData.new() + func _ready(): _get_nodes() _connect_signals() _play_main_animations() - %locale_option.selected = class_functions.map_locale_id(OS.get_locale_language()) - app_data = data_handler.app_data - #data_handler.add_emulator() - #data_handler.modify_emulator_test() - if app_data: - var website_data: Link = app_data.about_links["rd_web"] - print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url) - #print (app_data.about_links["rd_web"]["name"]) - - for key in app_data.emulators.keys(): - var emulator = app_data.emulators[key] - # Display the properties of each emulator - print("Emulator Name: ", emulator.name) - print("Description: ", emulator.description) - print("Properties:") - # Iterate over properties and show each one - for property: EmulatorProperty in emulator.properties: - print("Cheevos: ", property.cheevos) - print("ABXY_button:", property.abxy_button) - print("multi_user_config_dir: ", property.multi_user_config_dir) - else: - print ("No emulators") + #%locale_option.selected = class_functions.map_locale_id(OS.get_locale_language()) + #app_data = data_handler.app_data + ##data_handler.add_emulator() + ##data_handler.modify_emulator_test() + #if app_data: + #var website_data: Link = app_data.about_links["rd_web"] + #print (website_data.name,"-",website_data.url,"-",website_data.description,"-",website_data.url) + ##print (app_data.about_links["rd_web"]["name"]) + #var core_data: Core = app_data.cores["gambatte_libetro"] + #print (core_data.name) + #for property: CoreProperty in core_data.properties: + #print("Cheevos: ", property.cheevos) + #print("Cheevos Hardcore: ", property.cheevos_hardcore) + #print("Quick Resume: ", property.quick_resume) + #print("Rewind: ", property.rewind) + #print("Borders: ", property.borders) + #print("Widescreen: ", property.widescreen) + #print("ABXY_button:", property.abxy_button) + #for key in app_data.emulators.keys(): + #var emulator = app_data.emulators[key] + ## Display the properties of each emulator + #print("System Name: ", emulator.name) + #print("Description: ", emulator.description) + ##print("System: ", emulator.systen) + #print("Help URL: ", emulator.url) + #print("Properties:") + #for property: EmulatorProperty in emulator.properties: + #print("Cheevos: ", property.cheevos) + #print("Borders: ", property.borders) + #print("ABXY_button:", property.abxy_button) + #print("multi_user_config_dir: ", property.multi_user_config_dir) + # + #for key in app_data.cores.keys(): + #var core = app_data.cores[key] + #print("Core Name: ", core.name) + #print("Description: ", core.description) + #print("Properties:") + #for property: CoreProperty in core.properties: + #print("Cheevos: ", property.cheevos) + #print("Cheevos Hardcore: ", property.cheevos_hardcore) + #print("Quick Resume: ", property.quick_resume) + #print("Rewind: ", property.rewind) + #print("Borders: ", property.borders) + #print("Widescreen: ", property.widescreen) + #print("ABXY_button:", property.abxy_button) + #else: + #print ("No emulators") var config_file_path = "/var/config/retrodeck/retrodeck.cfg" var json_file_path = "/var/config/retrodeck/retrodeck.json" @@ -95,8 +116,11 @@ func _input(event): if event.is_action_pressed("quit"): _exit() +func _exit(): + get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST) + get_tree().quit() + func _get_nodes() -> void: - status_code_label = get_node("%status_code_label") theme_option = get_node("%theme_optionbutton") tab_container = get_node("%TabContainer") anim_logo = get_node("%logo_animated") @@ -107,76 +131,87 @@ func _connect_signals() -> void: theme_option.item_selected.connect(_conf_theme) #signal_theme_changed.emit(theme_option.item_selected) log_option.item_selected.connect(_load_log) - %borders_button.pressed.connect(_hide_show.bind(%borders_button)) - %save_button.pressed.connect(_hide_show.bind(%save_button)) - %decorations_button.pressed.connect(_hide_show_containers.bind(%decorations_button)) - %systems_button.pressed.connect(_hide_show_containers.bind(%systems_button)) - %save_resume_button.pressed.connect(_hide_show_containers.bind(%decorations_button)) - + %borders_button.pressed.connect(_hide_show_buttons.bind(%borders_button,%borders_gridcontainer,%decorations_gridcontainer)) + %button_layout.pressed.connect(_hide_show_buttons.bind(%button_layout,%borders_gridcontainer,%decorations_gridcontainer)) + %decorations_save.pressed.connect(_hide_show_buttons.bind(%decorations_save,%decorations_save.get_parent(),null)) + %decorations_button.pressed.connect(_hide_show_containers.bind(%decorations_button, %decorations_gridcontainer)) + %systems_button.pressed.connect(_hide_show_containers.bind(%systems_button, %systems_gridcontainer)) + %save_resume_button.pressed.connect(_hide_show_containers.bind(%decorations_button,%systems_gridcontainer)) + func _load_log(index: int) -> void: var log_content:String match index: 1: + class_functions.log_parameters[2] = class_functions.log_text + "Loading RetroDeck log" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) log_content = class_functions.import_text_file(rd_logs +"/retrodeck.log") load_popup("RetroDeck Log", "res://components/logs_view/logs_popup_content.tscn", log_content) 2: + class_functions.log_parameters[2] = class_functions.log_text + "Loading ES-DE log" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) log_content = class_functions.import_text_file(rd_logs +"/ES-DE/es_log.txt") load_popup("ES-DE Log", "res://components/logs_view/logs_popup_content.tscn",log_content) 3: + class_functions.log_parameters[2] = class_functions.log_text + "Loading RetroArch log" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) log_content = class_functions.import_text_file(rd_logs +"/retroarch/logs/log.txt") load_popup("Retroarch Log", "res://components/logs_view/logs_popup_content.tscn",log_content) func _play_main_animations() -> void: anim_logo.play() -func _hide_show_containers(button: Button) -> void: +func _hide_show_containers(button: Button, grid_container: GridContainer) -> void: match button.name: - "decorations_button": - %graphics_gridcontainer.visible = true + "decorations_button", "systems_button": + grid_container.visible = true if button.toggle_mode: button.toggle_mode=false - %graphics_gridcontainer.visible = false - else: - button.toggle_mode=true - "systems_button": - %systems_gridcontainer.visible = true - if button.toggle_mode: - button.toggle_mode=false - %systems_gridcontainer.visible = false + grid_container.visible = false else: button.toggle_mode=true -func _hide_show(button: Button) -> void: - if %borders_button.button_pressed: - %borders_gridcontainer.visible = true - for i in range(%borders_gridcontainer.get_child_count()): - var child = %borders_gridcontainer.get_child(i) - if child is Button: - child.button_pressed=true - for i in range(%graphics_gridcontainer.get_child_count()): - var child = %graphics_gridcontainer.get_child(i) - if child is Button and child != %borders_button: - child.visible=false - %save_button.visible=true - - if %save_button.button_pressed: - %borders_gridcontainer.visible = false - for i in range(%graphics_gridcontainer.get_child_count()): - var child = %graphics_gridcontainer.get_child(i) - if child is Button: - child.visible=true - %save_button.visible=false +# TODO Pass GridContainer(might need 2?) as above +# TODO load existing settings or default to enable all +func _hide_show_buttons(button: Button, buttons_gridcontainer: GridContainer, hidden_gridcontainer: GridContainer) -> void: + match button.name: + "borders_button", "button_layout": + buttons_gridcontainer.visible = true + if button.toggle_mode == false: + for i in range(buttons_gridcontainer.get_child_count()): + var child = buttons_gridcontainer.get_child(i) + child.button_pressed=true + for i in range(hidden_gridcontainer.get_child_count()): + var child = hidden_gridcontainer.get_child(i) + if child is Button and child != button: + child.visible=false + elif button.toggle_mode == true and %borders_gridcontainer.visible == true: + print (button.name, "SAVE NOW? TODO") # TODO SHOW ALL AGAIN? + buttons_gridcontainer.visible = false + #button.toggle_mode = false + for i in range(hidden_gridcontainer.get_child_count()): + var child = hidden_gridcontainer.get_child(i) + if child is Button: + child.visible=true + child.toggle_mode = false + button.toggle_mode = true func _conf_theme(index: int) -> void: - print (index) match index: 1: + class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) custom_theme = preload("res://res/pixel_ui_theme/RetroDECKTheme.tres") 2: + class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) custom_theme = preload("res://assets/themes/retro_theme.tres") 3: + class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) custom_theme = preload("res://assets/themes/modern_theme.tres") 4: + class_functions.log_parameters[2] = class_functions.log_text + "Set theme to index " + str(index) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) custom_theme = preload("res://assets/themes/accesible_theme.tres") $".".theme = custom_theme _play_main_animations() @@ -203,29 +238,26 @@ func _on_quickresume_advanced_pressed(): func _on_bios_button_pressed(): _play_main_animations() - bios_type = 0 - log_parameters[2] = log_text + "Bios_Check" - log_results = class_functions.execute_command(wrapper_command, log_parameters, false) + bios_type = 1 + class_functions.log_parameters[2] = class_functions.log_text + "Bios_Check" + log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false) load_popup("BIOS File Check", "res://components/bios_check/bios_popup_content.tscn","") - status_code_label.text = str(log_results["exit_code"]) - + bios_type = 0 + func _on_bios_button_expert_pressed(): _play_main_animations() - bios_type = 1 - log_parameters[2] = log_text + "Advanced_Bios_Check" - log_results = class_functions.execute_command(wrapper_command, log_parameters, false) + bios_type = 2 + class_functions.log_parameters[2] = class_functions.log_text + "Advanced_Bios_Check" + log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false) + class_functions.log_parameters[2] = class_functions.log_text + "Exit code: " + str(log_results["exit_code"]) load_popup("BIOS File Check", "res://components/bios_check/bios_popup_content.tscn","") - status_code_label.text = str(log_results["exit_code"]) - + bios_type = 0 + func _on_exit_button_pressed(): _play_main_animations() - log_parameters[2] = log_text + "Exited" - log_results = class_functions.execute_command(wrapper_command, log_parameters, false) - _exit() - -func _exit(): - get_tree().root.propagate_notification(NOTIFICATION_WM_CLOSE_REQUEST) - get_tree().quit() + class_functions.log_parameters[2] = class_functions.log_text + "Exited" + log_results = class_functions.execute_command(class_functions.wrapper_command, class_functions.log_parameters, false) + class_functions._exit() func _on_locale_selected(index): match index: diff --git a/tools/configurator/main.tscn b/tools/configurator/main.tscn index b1e03c9a..083db3d0 100644 --- a/tools/configurator/main.tscn +++ b/tools/configurator/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=76 format=3 uid="uid://61f6m4r1mpan"] +[gd_scene load_steps=99 format=3 uid="uid://61f6m4r1mpan"] [ext_resource type="Texture2D" uid="uid://bv6vh33cnfaw4" path="res://icon.svg" id="1_axfei"] [ext_resource type="Theme" uid="uid://hhc60cllcg47" path="res://assets/themes/default_theme.tres" id="1_if8nh"] @@ -6,6 +6,7 @@ [ext_resource type="Script" path="res://TabContainer.gd" id="3_id6l4"] [ext_resource type="AudioStream" uid="uid://dig4pco500pyt" path="res://res/configurator.mp3" id="3_xivj6"] [ext_resource type="Texture2D" uid="uid://dx0u5hiwxfgu5" path="res://res/pixel_ui_theme/8x8_ui_elements.png" id="4_2tuu4"] +[ext_resource type="Texture2D" uid="uid://qu88ngewoj4w" path="res://assets/icons/pixelitos/128/applications-games.png" id="4_caaxx"] [ext_resource type="Texture2D" uid="uid://bdj8vt3vhucq4" path="res://assets/icons/pixelitos/128/cs-display.png" id="4_jldgc"] [ext_resource type="Script" path="res://tk_about.gd" id="4_m4rto"] [ext_resource type="Script" path="res://Rekku.gd" id="4_nqqx3"] @@ -19,6 +20,7 @@ [ext_resource type="Texture2D" uid="uid://du8go5dyabmsl" path="res://assets/icons/banner/gb.png" id="5_ja8to"] [ext_resource type="StyleBox" uid="uid://ba3l3ja1jbqpx" path="res://assets/themes/emulators.tres" id="5_rjtkn"] [ext_resource type="Texture2D" uid="uid://cboyy7fkdijwg" path="res://assets/icons/pixelitos/128/cs-desktop-effects.png" id="5_uiobi"] +[ext_resource type="Texture2D" uid="uid://do3mc6sg5mfek" path="res://assets/icons/pixelitos/128/system-software-install.png" id="5_vehlp"] [ext_resource type="Texture2D" uid="uid://cjv6lhd4g63m3" path="res://assets/graphics/retrodeck_base_shake1.png" id="6_d43n7"] [ext_resource type="Texture2D" uid="uid://cru43y7hco6kh" path="res://res/flags/italy_32.png" id="6_fiylw"] [ext_resource type="Texture2D" uid="uid://du4mupvvwbusy" path="res://assets/icons/banner/gbc.png" id="6_mvrie"] @@ -42,9 +44,11 @@ [ext_resource type="Texture2D" uid="uid://dgdennwyj5g2l" path="res://assets/icons/banner/mastersystem.png" id="9_s3srh"] [ext_resource type="Texture2D" uid="uid://cpq0em8j2bank" path="res://assets/icons/banner/megadrive.png" id="10_2jlmn"] [ext_resource type="Texture2D" uid="uid://dtwjo7co226dw" path="res://res/flags/japan_32.png" id="10_e8mt0"] +[ext_resource type="Texture2D" uid="uid://clvsisb38lk72" path="res://assets/icons/pixelitos/128/accesories-screenshoot.png" id="10_jm3oh"] [ext_resource type="Texture2D" uid="uid://bevamv2c8knnn" path="res://assets/icons/pixelitos/128/org.citra_emu.citra.png" id="10_wbaif"] [ext_resource type="Texture2D" uid="uid://dbvjugxp84gsj" path="res://assets/icons/pixelitos/128/org.DolphinEmu.dolphin-emu.png" id="11_61sak"] [ext_resource type="Texture2D" uid="uid://c0pbart7aj657" path="res://assets/icons/pixelitos/128/preferences-system-time.png" id="11_c3qcy"] +[ext_resource type="Texture2D" uid="uid://do6o02gxjxneh" path="res://assets/icons/pixelitos/128/net.retrodeck.retrodeck.png" id="11_g1uhn"] [ext_resource type="Texture2D" uid="uid://blwtj4of6fb5y" path="res://assets/icons/pixelitos/128/spacefm.png" id="11_p6y0k"] [ext_resource type="Texture2D" uid="uid://cbwhpqip43aei" path="res://res/flags/china_32.png" id="11_ri2fv"] [ext_resource type="Texture2D" uid="uid://b763qnm02o5bd" path="res://assets/icons/pixelitos/128/system-reboot.png" id="12_3jrmi"] @@ -56,27 +60,45 @@ [ext_resource type="Texture2D" uid="uid://cvt2jky3bbjun" path="res://assets/icons/pixelitos/128/drive-removable-media.png" id="18_h2o3e"] [ext_resource type="Texture2D" uid="uid://dyumvh0ixwrbl" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0042.png" id="30_glnve"] [ext_resource type="Texture2D" uid="uid://cn11vcrybtor4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0047.png" id="31_j5ri1"] -[ext_resource type="Texture2D" uid="uid://cor8ep0fkqm08" path="res://res/Rekku/base.png" id="32_omdu2"] [ext_resource type="Texture2D" uid="uid://cc7ohmfxafe78" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0043.png" id="33_1ghye"] -[ext_resource type="Texture2D" uid="uid://cavtn1rljc5oe" path="res://res/Rekku/eyes-open.png" id="33_loftd"] [ext_resource type="Texture2D" uid="uid://cs8lh31kh7jv1" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0048.png" id="34_fum2b"] -[ext_resource type="Texture2D" uid="uid://cv7nckloqhn5m" path="res://res/Rekku/blink1.png" id="34_liw3o"] -[ext_resource type="Texture2D" uid="uid://by0oj188x350g" path="res://res/Rekku/blink2.png" id="35_dxwop"] [ext_resource type="Texture2D" uid="uid://cfa5mn3dsdvw6" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0729.png" id="36_3qttl"] -[ext_resource type="Texture2D" uid="uid://kx8eypf4ffvu" path="res://res/Rekku/mouth-base.png" id="36_qon8n"] -[ext_resource type="Texture2D" uid="uid://b6gl8sltbak7v" path="res://res/Rekku/mouth-O.png" id="37_2mdp6"] +[ext_resource type="Texture2D" uid="uid://chd6d8tx081hm" path="res://assets/icons/pixelitos/128/org.mamedev.MAME.png" id="36_dj81i"] +[ext_resource type="Script" path="res://scripts/SystemTab.gd" id="36_wv31h"] +[ext_resource type="Texture2D" uid="uid://10pyy05xqpr4" path="res://assets/icons/pixelitos/128/ruffle.png" id="37_7hhbn"] +[ext_resource type="Texture2D" uid="uid://fhxlwf7in0ke" path="res://assets/icons/pixelitos/128/net.pcsx2.PCSX2.png" id="38_44je8"] [ext_resource type="Texture2D" uid="uid://dpi351mmxu7x6" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0797.png" id="38_prt7u"] +[ext_resource type="Texture2D" uid="uid://bum0ys5hf70g5" path="res://assets/icons/pixelitos/128/vita3k.png" id="38_vsjf2"] [ext_resource type="Texture2D" uid="uid://ckyvec3wqx3t" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0798.png" id="39_5ft88"] [ext_resource type="Texture2D" uid="uid://n4hywdifr1q4" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0763.png" id="39_m4qgd"] +[ext_resource type="Texture2D" uid="uid://4rxej78gwu6" path="res://assets/icons/pixelitos/128/org.ryujinx.Ryujinx.png" id="40_7fdvq"] [ext_resource type="Texture2D" uid="uid://bwcc0mjxxm0w1" path="res://assets/icons/kenney_input-prompts-pixel-16/Tiles/tile_0764.png" id="40_pnuor"] - -[sub_resource type="GDScript" id="GDScript_203iw"] -script/source = "extends MarginContainer -" +[ext_resource type="Texture2D" uid="uid://dr637stsnsg01" path="res://assets/icons/pixelitos/128/primehack.png" id="41_55e56"] +[ext_resource type="Texture2D" uid="uid://lopxvipv6asb" path="res://assets/icons/pixelitos/128/info.cemu.Cemu.png" id="42_n3n7j"] +[ext_resource type="Texture2D" uid="uid://bxng1bakpvyyr" path="res://assets/icons/pixelitos/128/app.xemu.xemu.png" id="43_ifi6j"] +[ext_resource type="Texture2D" uid="uid://dhf620jyq75t1" path="res://assets/icons/pixelitos/128/es-de.png" id="44_7lpj5"] +[ext_resource type="Texture2D" uid="uid://b6vndtbu4qduo" path="res://assets/icons/pixelitos/128/preferences-desktop-launch-feedback.png" id="45_qxd26"] +[ext_resource type="Texture2D" uid="uid://3sw7gtoiuab3" path="res://assets/icons/pixelitos/128/help-browser.png" id="46_feagl"] +[ext_resource type="Texture2D" uid="uid://b0awa8venu1h8" path="res://assets/icons/pixelitos/128/cs-network.png" id="50_5d2ui"] +[ext_resource type="Texture2D" uid="uid://bafdexg6aq8tn" path="res://assets/icons/pixelitos/128/applications-accessories.png" id="50_h3jx2"] +[ext_resource type="Texture2D" uid="uid://be3tmvgoa1wua" path="res://assets/icons/pixelitos/128/applications-development.png" id="50_tl5ty"] +[ext_resource type="Texture2D" uid="uid://l3bredurb11m" path="res://assets/graphics/rekku2/rekku_base.png" id="57_1n3u5"] +[ext_resource type="Texture2D" uid="uid://cvlncuql8igrm" path="res://assets/graphics/rekku2/rekku_eye_1.png" id="59_7lcu5"] +[ext_resource type="Texture2D" uid="uid://bdrdu4nddkqjn" path="res://assets/graphics/rekku2/rekku_eye_2.png" id="60_mbhg6"] +[ext_resource type="Texture2D" uid="uid://cb2hwhaq036mu" path="res://assets/graphics/rekku2/rekku_mouth_a.png" id="61_5vyvy"] +[ext_resource type="Texture2D" uid="uid://dl2fd66fvn1an" path="res://assets/graphics/rekku2/rekku_mouth_i.png" id="62_lji1k"] +[ext_resource type="Texture2D" uid="uid://3ktnkmuecxea" path="res://assets/graphics/rekku2/rekku_mouth_m.png" id="63_52v81"] +[ext_resource type="Texture2D" uid="uid://d08ngewjvxkmn" path="res://assets/graphics/rekku2/rekku_mouth_o.png" id="64_s8u0e"] +[ext_resource type="Texture2D" uid="uid://dieva7tuxjrvy" path="res://assets/graphics/rekku2/rekku_nomouth.png" id="65_kk8ba"] +[ext_resource type="Script" path="res://controller_guide.gd" id="68_ahvw4"] +[ext_resource type="AudioStream" uid="uid://dhejvg02t5o35" path="res://assets/sounds/30375__sjonas88__smooth-game-like-sounds/538549__sjonas88__select-2.wav" id="71_ghxvk"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_omewi"] bg_color = Color(0.712505, 0, 0.175592, 1) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1161k"] +bg_color = Color(0.101961, 0.623529, 1, 0.376471) + [sub_resource type="SpriteFrames" id="SpriteFrames_lhf2y"] animations = [{ "frames": [{ @@ -100,17 +122,23 @@ animations = [{ "speed": 12.0 }] +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rf0rc"] +texture = ExtResource("4_2tuu4") +texture_margin_left = 6.0 +texture_margin_top = 6.0 +texture_margin_right = 6.0 +texture_margin_bottom = 6.0 +region_rect = Rect2(0, 8, 16, 16) +modulate_color = Color(0.65098, 0.403922, 0.819608, 1) + [sub_resource type="SpriteFrames" id="SpriteFrames_k7pd1"] animations = [{ "frames": [{ -"duration": 40.0, -"texture": ExtResource("33_loftd") +"duration": 10.0, +"texture": ExtResource("59_7lcu5") }, { -"duration": 0.15, -"texture": ExtResource("34_liw3o") -}, { -"duration": 0.15, -"texture": ExtResource("35_dxwop") +"duration": 1.0, +"texture": ExtResource("60_mbhg6") }], "loop": true, "name": &"blink", @@ -120,41 +148,26 @@ animations = [{ [sub_resource type="SpriteFrames" id="SpriteFrames_l20mt"] animations = [{ "frames": [{ -"duration": 0.5, -"texture": ExtResource("36_qon8n") +"duration": 1.0, +"texture": ExtResource("63_52v81") }, { "duration": 1.0, -"texture": ExtResource("37_2mdp6") +"texture": ExtResource("62_lji1k") }, { "duration": 1.0, -"texture": ExtResource("36_qon8n") +"texture": ExtResource("61_5vyvy") }, { "duration": 1.0, -"texture": ExtResource("36_qon8n") +"texture": ExtResource("64_s8u0e") }, { "duration": 1.0, -"texture": ExtResource("37_2mdp6") -}, { -"duration": 1.0, -"texture": ExtResource("37_2mdp6") -}, { -"duration": 1.0, -"texture": ExtResource("36_qon8n") +"texture": ExtResource("65_kk8ba") }], "loop": true, "name": &"speech", "speed": 5.0 }] -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rf0rc"] -texture = ExtResource("4_2tuu4") -texture_margin_left = 6.0 -texture_margin_top = 6.0 -texture_margin_right = 6.0 -texture_margin_bottom = 6.0 -region_rect = Rect2(0, 8, 16, 16) -modulate_color = Color(0.65098, 0.403922, 0.819608, 1) - [node name="Control" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -191,37 +204,84 @@ size_flags_horizontal = 3 unique_name_in_owner = true layout_mode = 2 tab_alignment = 1 -current_tab = 0 +current_tab = 1 script = ExtResource("3_id6l4") -[node name="Presets" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] +[node name="GLOBALS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] unique_name_in_owner = true +visible = false layout_mode = 2 -script = SubResource("GDScript_203iw") metadata/_tab_index = 0 -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets"] +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS"] layout_mode = 2 follow_focus = true -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="decorations_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true +[node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"] layout_mode = 2 -text = "DECORATIONS - Borders, Widescreen" +columns = 3 + +[node name="Widescreen6" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +tooltip_text = "Change to Nintendo style button mappings." +text = "BUTTON SWAP +" +icon = ExtResource("4_caaxx") + +[node name="Widescreen2" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "MODS" +icon = ExtResource("5_vehlp") + +[node name="Widescreen5" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "QUICK RESUME" +icon = ExtResource("12_3jrmi") + +[node name="decorations_button" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "BORDERS" +icon = ExtResource("4_jldgc") + +[node name="Widescreen" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "SHADERS" icon = ExtResource("4_q6hd2") -[node name="graphics_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true +[node name="Widescreen3" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "QUICK REWIND" +icon = ExtResource("11_c3qcy") + +[node name="Widescreen4" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "TATE MODE" +icon = ExtResource("10_jm3oh") + +[node name="Widescreen7" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "RESET +RETROCECK" +icon = ExtResource("11_g1uhn") +expand_icon = true + +[node name="Widescreen8" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "RESET ALL +EMULATORS" +icon = ExtResource("45_qxd26") + +[node name="decorations_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"] visible = false layout_mode = 2 columns = 5 -[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -233,7 +293,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="shaders" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="shaders" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -245,7 +305,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="mods" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="mods" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -257,8 +317,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="tate_mode" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="tate_mode" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -270,8 +329,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="borders_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="borders_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -283,8 +341,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="hotkey_sound" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="hotkey_sound" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -297,8 +354,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="buttons" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="button_layout" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -311,7 +367,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="quick_resume" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="quick_resume" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -324,7 +380,7 @@ vertical_icon_alignment = 0 expand_icon = true metadata/description = "This is a test description set to this element" -[node name="rewind" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="rewind" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -337,7 +393,7 @@ vertical_icon_alignment = 0 expand_icon = true metadata/description = "This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED. And I did it twice!!!This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED." -[node name="quit_confirm" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] +[node name="quit_confirm" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 0 @@ -350,8 +406,7 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="cheats" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="cheats" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] custom_minimum_size = Vector2(200, 200) layout_mode = 2 size_flags_horizontal = 4 @@ -364,107 +419,98 @@ icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="save_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/graphics_gridcontainer"] -unique_name_in_owner = true +[node name="decorations_save" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/decorations_gridcontainer"] visible = false custom_minimum_size = Vector2(125, 125) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 theme_override_styles/focus = SubResource("StyleBoxFlat_omewi") -text = "SAVE" +text = "SAVE OR SELECT ALL?" icon = ExtResource("11_p6y0k") icon_alignment = 1 vertical_icon_alignment = 0 expand_icon = true -[node name="borders_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true +[node name="borders_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"] visible = false layout_mode = 2 theme_override_constants/h_separation = 30 -columns = 4 +columns = 6 -[node name="CheckBox5" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox5" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("5_ja8to") expand_icon = true -[node name="CheckBox3" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox3" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("6_mvrie") expand_icon = true -[node name="CheckBox4" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox4" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("7_01lqn") expand_icon = true -[node name="CheckBox6" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox6" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("7_b8xj2") expand_icon = true -[node name="CheckBox" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("8_rvph4") expand_icon = true -[node name="CheckBox7" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox7" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("9_s3srh") expand_icon = true -[node name="CheckBox8" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox8" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("10_2jlmn") expand_icon = true -[node name="CheckBox9" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox9" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("5_4d7s7") expand_icon = true -[node name="CheckBox10" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/borders_gridcontainer"] -custom_minimum_size = Vector2(200, 180) +[node name="CheckBox10" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) layout_mode = 2 size_flags_horizontal = 0 size_flags_vertical = 0 icon = ExtResource("12_pp08o") expand_icon = true -[node name="systems_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -text = "SYSTEMS - Emulators, Console, Computers" -icon = ExtResource("17_0kr64") - -[node name="systems_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true +[node name="systems_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer"] visible = false layout_mode = 2 size_flags_vertical = 3 @@ -472,7 +518,7 @@ theme_override_constants/h_separation = 10 theme_override_constants/v_separation = 10 columns = 6 -[node name="Button3" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button3" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 tooltip_text = "RetroARCH" theme_override_styles/focus = ExtResource("5_rjtkn") @@ -481,7 +527,7 @@ icon = ExtResource("4_xcuib") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button8" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button8" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 theme_override_styles/focus = ExtResource("5_rjtkn") text = "Dolphin" @@ -489,7 +535,7 @@ icon = ExtResource("11_61sak") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button7" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button7" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 tooltip_text = "CITRA" text = "RPCS3" @@ -497,7 +543,7 @@ icon = ExtResource("8_ec4gt") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button5" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button5" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 tooltip_text = "PSPSSPP" theme_override_styles/focus = ExtResource("5_rjtkn") @@ -506,7 +552,7 @@ icon = ExtResource("8_akxf7") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 tooltip_text = "Duckstation" theme_override_styles/focus = ExtResource("5_rjtkn") @@ -515,7 +561,7 @@ icon = ExtResource("6_winpq") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button2" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button2" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] layout_mode = 2 tooltip_text = "Melon DS" theme_override_styles/focus = ExtResource("5_rjtkn") @@ -524,7 +570,7 @@ icon = ExtResource("7_4otos") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="Button9" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer/systems_gridcontainer"] +[node name="Button9" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/GLOBALS/ScrollContainer/VBoxContainer/systems_gridcontainer"] visible = false layout_mode = 2 tooltip_text = "CITRA" @@ -534,445 +580,377 @@ icon = ExtResource("10_wbaif") icon_alignment = 1 vertical_icon_alignment = 0 -[node name="save_resume_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/Presets/ScrollContainer/VBoxContainer"] -unique_name_in_owner = true -layout_mode = 2 -text = "FUNCTIONS - Save states, etc" -icon = ExtResource("18_h2o3e") - -[node name="TK_SYSTEM" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] -visible = false +[node name="SYSTEM" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] layout_mode = 2 +script = ExtResource("36_wv31h") metadata/_tab_index = 1 -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM"] +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM"] layout_mode = 2 follow_focus = true -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer"] +[node name="sysems_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer/controls_container"] +[node name="systems_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container"] layout_mode = 2 -text = "TK_SYSTEM" +text = "SYSTEMS & EMULATORS" -[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_SYSTEM/ScrollContainer/VBoxContainer/controls_container"] +[node name="systems_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container"] layout_mode = 2 -[node name="TK_TOOLS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] +[node name="system_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container"] +unique_name_in_owner = true +layout_mode = 2 +columns = 4 + +[node name="retroarch_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "RETROARCH" +icon = ExtResource("4_xcuib") + +[node name="mame_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "MAME" +icon = ExtResource("36_dj81i") + +[node name="ruffle_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "RUFFLE" +icon = ExtResource("37_7hhbn") + +[node name="melonds_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "MELONDS" +icon = ExtResource("7_4otos") + +[node name="pcsx2_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "PCSX2" +icon = ExtResource("38_44je8") + +[node name="duckstation_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "DUCKSTATION" +icon = ExtResource("6_winpq") + +[node name="ppsspp_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "PPSSPP" +icon = ExtResource("8_akxf7") + +[node name="vita3k_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "VITA3K" +icon = ExtResource("38_vsjf2") + +[node name="rpcs3_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "RPCS3" +icon = ExtResource("8_ec4gt") + +[node name="ryujinx_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "RYUJINX" +icon = ExtResource("40_7fdvq") + +[node name="dolphin_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "DOLPHIN" +icon = ExtResource("11_61sak") + +[node name="primehack_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "PRIMEHACK" +icon = ExtResource("41_55e56") + +[node name="cemu_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "CEMU" +icon = ExtResource("42_n3n7j") + +[node name="xemu_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "XEMU" +icon = ExtResource("43_ifi6j") + +[node name="esde_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/system_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "ES-DE" +icon = ExtResource("44_7lpj5") + +[node name="action_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container"] +unique_name_in_owner = true +visible = false +layout_mode = 2 + +[node name="help_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/action_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +text = "HELP" +icon = ExtResource("46_feagl") + +[node name="launch_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/action_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +action_mode = 0 +text = "LAUNCH" +icon = ExtResource("45_qxd26") + +[node name="launch_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/action_gridcontainer/launch_button"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + +[node name="reset_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/action_gridcontainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "RESET" +icon = ExtResource("12_3jrmi") + +[node name="reset_progress" type="ProgressBar" parent="Background/SplitContainer/MarginContainer/TabContainer/SYSTEM/ScrollContainer/VBoxContainer/sysems_container/action_gridcontainer/reset_button"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/fill = SubResource("StyleBoxFlat_1161k") +show_percentage = false + +[node name="TOOLS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] visible = false layout_mode = 2 metadata/_tab_index = 2 -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS"] -layout_mode = 2 -follow_focus = true - -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer"] -layout_mode = 2 -size_flags_horizontal = 3 -theme_override_constants/separation = 36 - -[node name="scan_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer"] +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS"] layout_mode = 2 -[node name="scan_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -text = "TK_SCAN" - -[node name="scan_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 - -[node name="ps3_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -disabled = true -text = "TK_PS3SCAN" - -[node name="scummvm_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -disabled = true -text = "TK_SCUMMVMSCAN" - -[node name="multifile_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -text = "TK_MULTIFILE" - -[node name="3ds_decrypt_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -disabled = true -text = "TK_3DSDECRYPT" - -[node name="bios_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -text = "TK_BIOS" - -[node name="bios_button_expert" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container"] -layout_mode = 2 -text = "TK_BIOS_EXPERT" - -[node name="tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 -text = "TK_GENTOOLS" - -[node name="tools_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 - -[node name="emu_open_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 -text = "TK_EMUOPEN" - -[node name="steamgrid_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 -disabled = true -text = "TK_GRIDINSTALL" - -[node name="ps3_fw_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 -text = "TK_PS3FWINSTALL" - -[node name="fav_steam" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] -layout_mode = 2 -text = "TK_FAVSTEAM" - -[node name="file_tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="file_tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 -text = "TK_FILETOOLS" - -[node name="file_tools_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 - -[node name="usb_tool_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 -disabled = true -text = "TK_USBTOOL" - -[node name="backup_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 -disabled = true -text = "TK_BACKUPBTN" - -[node name="compress_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 -disabled = true -text = "TK_COMPRESSGAMES" - -[node name="move_files_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] -layout_mode = 2 -disabled = true -text = "TK_MOVEFILES" - -[node name="TK_NETWORK" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] -visible = false -layout_mode = 2 -metadata/_tab_index = 3 - -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK"] -layout_mode = 2 -follow_focus = true - -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 theme_override_constants/separation = 64 -[node name="cheevos_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer"] +[node name="troubleshoot_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="cheevos" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container"] +[node name="check_conn_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] layout_mode = 2 -text = "TK_CHEEVOS" +text = "CHECK CONNECTION" +icon = ExtResource("50_5d2ui") -[node name="cheevos_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container"] -layout_mode = 2 - -[node name="cheevos_login_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container"] -layout_mode = 2 -theme_override_constants/h_separation = 64 -columns = 2 - -[node name="cheevos_username_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -text = "TK_CHEEVOSUNAME" - -[node name="cheevos_username" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] -custom_minimum_size = Vector2(256, 0) -layout_mode = 2 -size_flags_horizontal = 3 -text = "username" -placeholder_text = "username" - -[node name="cheevos_pass_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 1 -text = "TK_CHEEVOSPWD" - -[node name="cheevos_pass" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] -layout_mode = 2 -size_flags_horizontal = 3 -text = "password" -placeholder_text = "password" -secret = true -secret_character = "*" - -[node name="cheevos_advanced_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container"] -layout_mode = 2 - -[node name="cheevos_advanced_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -disabled = true -text = "TK_ADVANCED" - -[node name="cheevos_hardcore" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -disabled = true -text = "TK_CHEEVOSHARDCORE" - -[node name="cheevos_loginout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] -layout_mode = 2 -size_flags_horizontal = 8 -theme_override_constants/separation = 10 - -[node name="cheevos_trophies_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] -layout_mode = 2 -disabled = true -text = "TK_CHEEVOSTROPHYBTN" - -[node name="cheevos_loginout_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] -layout_mode = 2 -text = "TK_LOGIN" - -[node name="netplay_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="netplay" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container"] -layout_mode = 2 -text = "TK_NETPLAY" - -[node name="netplay_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container"] -layout_mode = 2 - -[node name="netplay_id_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container"] -layout_mode = 2 -theme_override_constants/h_separation = 64 -columns = 2 - -[node name="netplay_id_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 5 -text = "TK_NETPLAYID" - -[node name="netplay_id" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -custom_minimum_size = Vector2(256, 0) -layout_mode = 2 -size_flags_horizontal = 3 -text = "RetroDECK" -placeholder_text = "RetroDECK" - -[node name="netplay_address_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 5 -text = "TK_NETPLAYADDRESS" - -[node name="netplay_address" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -layout_mode = 2 -size_flags_horizontal = 3 -text = "127.0.0.1" -placeholder_text = "127.0.0.1" - -[node name="blank_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 5 - -[node name="netplay_connect_disconnect_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] -layout_mode = 2 -text = "TK_NETPLAYCONNECT" - -[node name="data_mng_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer"] -layout_mode = 2 - -[node name="data_mng_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 -text = "TK_DATAMNG" - -[node name="data_mng_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 - -[node name="saves_sync" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 -size_flags_horizontal = 3 -disabled = true -text = "TK_SAVESSYNC" - -[node name="ftp_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_NETWORK/ScrollContainer/VBoxContainer/data_mng_container"] -layout_mode = 2 -size_flags_horizontal = 3 -disabled = true -text = "TK_FTPBTN" - -[node name="TK_TROUBLESHOOT" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] -visible = false -layout_mode = 2 -metadata/_tab_index = 4 - -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT"] -layout_mode = 2 -theme_override_constants/separation = 64 - -[node name="troubleshoot_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer"] -layout_mode = 2 - -[node name="troubleshoot_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/troubleshoot_container"] -layout_mode = 2 -text = "TK_TROUBLESHOOTLBL" - -[node name="troubleshoot_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/troubleshoot_container"] -layout_mode = 2 - -[node name="check_conn_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/troubleshoot_container"] -layout_mode = 2 -text = "TK_CHECKCONN" - -[node name="logs_button" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/troubleshoot_container"] +[node name="logs_button" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 4 selected = 0 item_count = 4 -popup/item_0/text = "TK_LOGSBTN" +popup/item_0/text = " LOGS" +popup/item_0/icon = ExtResource("50_h3jx2") popup/item_0/disabled = true popup/item_0/separator = true popup/item_1/text = "RetroDECK Log" +popup/item_1/icon = ExtResource("11_g1uhn") popup/item_1/id = 1 popup/item_2/text = "ES_DE Log" +popup/item_2/icon = ExtResource("44_7lpj5") popup/item_2/id = 2 popup/item_3/text = "Retroarch" +popup/item_3/icon = ExtResource("4_xcuib") popup/item_3/id = 3 -[node name="reset_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer"] +[node name="bios_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +layout_mode = 2 +text = "BIOS STANDARD" +icon = ExtResource("50_tl5ty") + +[node name="bios_button_expert" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container"] +layout_mode = 2 +text = "BIOS EXPERT" +icon = ExtResource("50_tl5ty") + +[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="reset_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/reset_container"] -layout_mode = 2 -text = "TK_RESET" - -[node name="reset_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/reset_container"] -layout_mode = 2 - -[node name="reset_single_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/reset_container"] -layout_mode = 2 -text = "TK_RESETSINGLE" - -[node name="reset_all_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/reset_container"] -layout_mode = 2 -text = "TK_RESETALL" - -[node name="reset_full_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/reset_container"] -layout_mode = 2 -text = "TK_RESETFULL" - -[node name="controls_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer"] -layout_mode = 2 - -[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container"] +[node name="controls_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] layout_mode = 2 text = "TK_CONTROLS" -[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container"] +[node name="controls_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] layout_mode = 2 -[node name="controller_templates_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container"] +[node name="controller_templates_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] layout_mode = 2 -[node name="controller_templates" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container/controller_templates_container"] +[node name="controller_templates" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container/controller_templates_container"] layout_mode = 2 size_flags_horizontal = 3 text = "TK_STEAMCONTEMP" -[node name="controller_templater_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container/controller_templates_container"] +[node name="controller_templater_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container/controller_templates_container"] layout_mode = 2 size_flags_horizontal = 10 size_flags_vertical = 4 text = "TK_INSTALL" -[node name="button_layout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/VBoxContainer/controls_container"] +[node name="button_layout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/controls_container"] layout_mode = 2 -[node name="status_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT"] -unique_name_in_owner = true +[node name="file_tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] layout_mode = 2 -text = "Status:" -[node name="status_code_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_TROUBLESHOOT/status_label"] -unique_name_in_owner = true -layout_mode = 0 -offset_left = 87.0 -offset_top = 3.0 -offset_right = 144.0 -offset_bottom = 35.0 +[node name="file_tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 +text = "TK_FILETOOLS" -[node name="Settings" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] +[node name="file_tools_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 + +[node name="usb_tool_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 +disabled = true +text = "TK_USBTOOL" + +[node name="backup_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 +disabled = true +text = "TK_BACKUPBTN" + +[node name="compress_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 +disabled = true +text = "TK_COMPRESSGAMES" + +[node name="move_files_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/file_tools_container"] +layout_mode = 2 +disabled = true +text = "TK_MOVEFILES" + +[node name="tools_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="tools_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +layout_mode = 2 +text = "TK_GENTOOLS" + +[node name="tools_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +layout_mode = 2 + +[node name="steamgrid_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +layout_mode = 2 +disabled = true +text = "TK_GRIDINSTALL" + +[node name="ps3_fw_install_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +layout_mode = 2 +text = "TK_PS3FWINSTALL" + +[node name="fav_steam" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/tools_container"] +layout_mode = 2 +text = "TK_FAVSTEAM" + +[node name="scan_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="scan_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 +text = "TK_SCAN" + +[node name="scan_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 + +[node name="ps3_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 +disabled = true +text = "TK_PS3SCAN" + +[node name="scummvm_scan" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 +disabled = true +text = "TK_SCUMMVMSCAN" + +[node name="multifile_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 +text = "TK_MULTIFILE" + +[node name="3ds_decrypt_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/scan_container"] +layout_mode = 2 +disabled = true +text = "TK_3DSDECRYPT" + +[node name="SETTINGS" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] visible = false layout_mode = 2 -metadata/_tab_index = 5 +metadata/_tab_index = 3 -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings"] +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS"] layout_mode = 2 follow_focus = true -[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 64 -[node name="system_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer"] +[node name="system_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] layout_mode = 2 -[node name="system_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="system_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 text = "TK_SYSTEM" -[node name="system_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="system_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 -[node name="update_notification" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="update_notification" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 button_pressed = true text = "TK_UPDATENOTIF" -[node name="easter_eggs" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="easter_eggs" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 disabled = true button_pressed = true text = "TK_EASTEREGGS" -[node name="multi_user_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="multi_user_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 -[node name="multi_user_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container/multi_user_container"] +[node name="multi_user_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container/multi_user_container"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 1 text = "TK_MULTIUSR" -[node name="multi_user_option" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container/multi_user_container"] +[node name="multi_user_option" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container/multi_user_container"] layout_mode = 2 size_flags_horizontal = 10 selected = 0 @@ -983,17 +961,17 @@ popup/item_1/id = 1 popup/item_2/text = "TK_CUSTOMUSR" popup/item_2/id = 2 -[node name="menu_music" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="menu_music" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 button_pressed = true text = "TK_MUSIC" -[node name="fancy_audio_player_here_(please_no)" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer/system_container"] +[node name="fancy_audio_player_here_(please_no)" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/system_container"] layout_mode = 2 size_flags_vertical = 1 text = "|| ------( )--------" -[node name="theme_optionbutton" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/Settings/ScrollContainer/VBoxContainer"] +[node name="theme_optionbutton" type="OptionButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 selected = 0 @@ -1010,20 +988,160 @@ popup/item_3/id = 3 popup/item_4/text = "OpenDyslexic3" popup/item_4/id = 4 -[node name="TK_ABOUT" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] +[node name="cheevos_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="cheevos" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +layout_mode = 2 +text = "TK_CHEEVOS" + +[node name="cheevos_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +layout_mode = 2 + +[node name="cheevos_login_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +layout_mode = 2 +theme_override_constants/h_separation = 64 +columns = 2 + +[node name="cheevos_username_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +text = "TK_CHEEVOSUNAME" + +[node name="cheevos_username" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] +custom_minimum_size = Vector2(256, 0) +layout_mode = 2 +size_flags_horizontal = 3 +text = "username" +placeholder_text = "username" + +[node name="cheevos_pass_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +text = "TK_CHEEVOSPWD" + +[node name="cheevos_pass" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_login_container"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "password" +placeholder_text = "password" +secret = true +secret_character = "*" + +[node name="cheevos_advanced_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container"] +layout_mode = 2 + +[node name="cheevos_advanced_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] +layout_mode = 2 +disabled = true +text = "TK_ADVANCED" + +[node name="cheevos_hardcore" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] +layout_mode = 2 +disabled = true +text = "TK_CHEEVOSHARDCORE" + +[node name="cheevos_loginout_container" type="HBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container"] +layout_mode = 2 +size_flags_horizontal = 8 +theme_override_constants/separation = 10 + +[node name="cheevos_trophies_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] +layout_mode = 2 +disabled = true +text = "TK_CHEEVOSTROPHYBTN" + +[node name="cheevos_loginout_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/cheevos_container/cheevos_advanced_container/cheevos_loginout_container"] +layout_mode = 2 +text = "TK_LOGIN" + +[node name="netplay_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="netplay" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container"] +layout_mode = 2 +text = "TK_NETPLAY" + +[node name="netplay_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container"] +layout_mode = 2 + +[node name="netplay_id_container" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container"] +layout_mode = 2 +theme_override_constants/h_separation = 64 +columns = 2 + +[node name="netplay_id_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 5 +text = "TK_NETPLAYID" + +[node name="netplay_id" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +custom_minimum_size = Vector2(256, 0) +layout_mode = 2 +size_flags_horizontal = 3 +text = "RetroDECK" +placeholder_text = "RetroDECK" + +[node name="netplay_address_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 5 +text = "TK_NETPLAYADDRESS" + +[node name="netplay_address" type="LineEdit" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "127.0.0.1" +placeholder_text = "127.0.0.1" + +[node name="blank_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 5 + +[node name="netplay_connect_disconnect_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/netplay_container/netplay_id_container"] +layout_mode = 2 +text = "TK_NETPLAYCONNECT" + +[node name="data_mng_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer"] +layout_mode = 2 + +[node name="data_mng_label" type="Label" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] +layout_mode = 2 +text = "TK_DATAMNG" + +[node name="data_mng_separator" type="HSeparator" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] +layout_mode = 2 + +[node name="saves_sync" type="CheckButton" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] +layout_mode = 2 +size_flags_horizontal = 3 +disabled = true +text = "TK_SAVESSYNC" + +[node name="ftp_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/SETTINGS/ScrollContainer/VBoxContainer/data_mng_container"] +layout_mode = 2 +size_flags_horizontal = 3 +disabled = true +text = "TK_FTPBTN" + +[node name="ABOUT" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] visible = false layout_mode = 2 script = ExtResource("4_m4rto") -metadata/_tab_index = 6 +metadata/_tab_index = 4 -[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT"] +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT"] layout_mode = 2 -[node name="about_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer"] +[node name="about_container" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer"] layout_mode = 2 alignment = 1 -[node name="rd_title" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] +[node name="rd_title" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container"] unique_name_in_owner = true clip_contents = false custom_minimum_size = Vector2(300, 150) @@ -1033,7 +1151,7 @@ scroll_active = false autowrap_mode = 2 tab_size = 2 -[node name="logo" type="TextureRect" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container/rd_title"] +[node name="logo" type="TextureRect" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container/rd_title"] custom_minimum_size = Vector2(128, 128) layout_mode = 2 offset_left = 166.0 @@ -1046,22 +1164,368 @@ texture = ExtResource("1_axfei") expand_mode = 1 stretch_mode = 4 -[node name="about_header" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] +[node name="about_header" type="RichTextLabel" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container"] clip_contents = false custom_minimum_size = Vector2(0, 40) layout_mode = 2 size_flags_vertical = 3 theme_override_font_sizes/normal_font_size = 23 -text = "TK_ABOUTHEADER" +text = "ABOUT RETRODECK" scroll_active = false -[node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/TK_ABOUT/ScrollContainer/about_container"] +[node name="GridContainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/ABOUT/ScrollContainer/about_container"] unique_name_in_owner = true layout_mode = 2 theme_override_constants/h_separation = 20 theme_override_constants/v_separation = 20 columns = 5 +[node name="WIP" type="MarginContainer" parent="Background/SplitContainer/MarginContainer/TabContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +metadata/_tab_index = 5 + +[node name="ScrollContainer" type="ScrollContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP"] +layout_mode = 2 +follow_focus = true + +[node name="VBoxContainer" type="VBoxContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="decorations_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "DECORATIONS - Borders, Widescreen" +icon = ExtResource("4_q6hd2") + +[node name="decorations_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +columns = 5 + +[node name="wide_screen" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +visible = false +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_WSCREEN" +text = "TK_WSCREEN" +icon = ExtResource("4_jldgc") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="shaders" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_SHADERS" +text = "TK_SHADERS" +icon = ExtResource("5_box56") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="mods" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_MODS" +text = "TK_MODS" +icon = ExtResource("6_u80kq") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="tate_mode" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_TATE" +text = "TK_TATE" +icon = ExtResource("7_i14ax") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="borders_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_BORDERS" +text = "TK_BORDERS" +icon = ExtResource("5_uiobi") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="hotkey_sound" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_HOTKEYSOUND" +text = "TK_HOTKEYSOUND" +icon = ExtResource("9_qwq2k") +clip_text = true +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="button_layout" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_BTNLAYOUT" +text = "TK_BTNLAYOUT" +icon = ExtResource("9_d2327") +clip_text = true +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="quick_resume" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_QRESUME" +text = "TK_QRESUME" +icon = ExtResource("11_c3qcy") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true +metadata/description = "This is a test description set to this element" + +[node name="rewind" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_REWIND" +text = "TK_REWIND" +icon = ExtResource("12_3jrmi") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true +metadata/description = "This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED. And I did it twice!!!This is another, very long and convoluted, description, that I put too much commas in to make in LONGER and more SOPHISTICATED." + +[node name="quit_confirm" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +tooltip_text = "TK_CONFIRMEXIT" +text = "TK_CONFIRMEXIT" +icon = ExtResource("13_8kii4") +clip_text = true +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="cheats" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +tooltip_text = "TK_CHEATS" +text = "TK_CHEATS" +icon = ExtResource("14_oe3l4") +clip_text = true +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="decorations_save" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/decorations_gridcontainer"] +unique_name_in_owner = true +visible = false +custom_minimum_size = Vector2(125, 125) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_styles/focus = SubResource("StyleBoxFlat_omewi") +text = "SAVE OR SELECT ALL?" +icon = ExtResource("11_p6y0k") +icon_alignment = 1 +vertical_icon_alignment = 0 +expand_icon = true + +[node name="borders_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +theme_override_constants/h_separation = 30 +columns = 6 + +[node name="CheckBox5" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("5_ja8to") +expand_icon = true + +[node name="CheckBox3" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("6_mvrie") +expand_icon = true + +[node name="CheckBox4" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("7_01lqn") +expand_icon = true + +[node name="CheckBox6" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("7_b8xj2") +expand_icon = true + +[node name="CheckBox" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("8_rvph4") +expand_icon = true + +[node name="CheckBox7" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("9_s3srh") +expand_icon = true + +[node name="CheckBox8" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("10_2jlmn") +expand_icon = true + +[node name="CheckBox9" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("5_4d7s7") +expand_icon = true + +[node name="CheckBox10" type="CheckBox" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/borders_gridcontainer"] +custom_minimum_size = Vector2(175, 175) +layout_mode = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +icon = ExtResource("12_pp08o") +expand_icon = true + +[node name="systems_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "SYSTEMS - Emulators, Console, Computers" +icon = ExtResource("17_0kr64") + +[node name="systems_gridcontainer" type="GridContainer" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +visible = false +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/h_separation = 10 +theme_override_constants/v_separation = 10 +columns = 6 + +[node name="Button3" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +tooltip_text = "RetroARCH" +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "RetroArch" +icon = ExtResource("4_xcuib") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button8" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "Dolphin" +icon = ExtResource("11_61sak") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button7" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +tooltip_text = "CITRA" +text = "RPCS3" +icon = ExtResource("8_ec4gt") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button5" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +tooltip_text = "PSPSSPP" +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "PSPSSPP" +icon = ExtResource("8_akxf7") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +tooltip_text = "Duckstation" +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "DuckStation" +icon = ExtResource("6_winpq") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button2" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +layout_mode = 2 +tooltip_text = "Melon DS" +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "MelonDS" +icon = ExtResource("7_4otos") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="Button9" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer/systems_gridcontainer"] +visible = false +layout_mode = 2 +tooltip_text = "CITRA" +theme_override_styles/focus = ExtResource("5_rjtkn") +text = "CITRA" +icon = ExtResource("10_wbaif") +icon_alignment = 1 +vertical_icon_alignment = 0 + +[node name="save_resume_button" type="Button" parent="Background/SplitContainer/MarginContainer/TabContainer/WIP/ScrollContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "FUNCTIONS - Save states, etc" +icon = ExtResource("18_h2o3e") + [node name="logo_animated" type="AnimatedSprite2D" parent="Background/SplitContainer/MarginContainer"] unique_name_in_owner = true visible = false @@ -1092,22 +1556,6 @@ mouse_filter = 1 mouse_default_cursor_shape = 8 script = ExtResource("4_nqqx3") -[node name="rekku_sprite" type="Sprite2D" parent="Background/SplitContainer/side_logo/rekku"] -position = Vector2(530.5, -989) -scale = Vector2(0.264648, 0.302734) -texture = ExtResource("32_omdu2") - -[node name="blink_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"] -sprite_frames = SubResource("SpriteFrames_k7pd1") -animation = &"blink" -autoplay = "blink" -frame_progress = 0.188668 - -[node name="speech_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"] -sprite_frames = SubResource("SpriteFrames_l20mt") -animation = &"speech" -autoplay = "speech" - [node name="speach_bubble" type="Panel" parent="Background/SplitContainer/side_logo/rekku"] layout_mode = 1 anchors_preset = 7 @@ -1115,25 +1563,25 @@ anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 -offset_left = 395.0 -offset_top = -830.0 +offset_left = 365.0 +offset_top = -783.0 offset_right = 673.0 offset_bottom = -402.0 grow_horizontal = 2 grow_vertical = 0 theme_override_styles/panel = SubResource("StyleBoxTexture_rf0rc") -[node name="helper_text" type="RichTextLabel" parent="Background/SplitContainer/side_logo/rekku"] +[node name="helper_text" type="RichTextLabel" parent="Background/SplitContainer/side_logo/rekku/speach_bubble"] layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_left = 414.0 -offset_top = -815.0 -offset_right = 668.0 -offset_bottom = -420.0 +offset_left = -132.0 +offset_top = -177.5 +offset_right = 149.0 +offset_bottom = 172.5 grow_horizontal = 2 grow_vertical = 2 text = "Rekku: @@ -1144,6 +1592,24 @@ fit_content = true scroll_following = true script = ExtResource("5_cprkf") +[node name="rekku_sprite" type="Sprite2D" parent="Background/SplitContainer/side_logo/rekku"] +position = Vector2(544, -898) +scale = Vector2(0.5, 0.5) +texture = ExtResource("57_1n3u5") + +[node name="blink_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"] +position = Vector2(-72, -252) +sprite_frames = SubResource("SpriteFrames_k7pd1") +animation = &"blink" +autoplay = "blink" +frame_progress = 0.188668 + +[node name="speech_anim" type="AnimatedSprite2D" parent="Background/SplitContainer/side_logo/rekku/rekku_sprite"] +position = Vector2(-76, -198) +sprite_frames = SubResource("SpriteFrames_l20mt") +animation = &"speech" +autoplay = "speech" + [node name="TextureRect" type="TextureRect" parent="Background/SplitContainer/side_logo"] visible = false layout_mode = 0 @@ -1163,7 +1629,7 @@ visible = false position = Vector2(134, 151) color = Color(0.858824, 0.890196, 1, 1) -[node name="coltroller_guide" type="PanelContainer" parent="."] +[node name="controller_guide" type="PanelContainer" parent="."] layout_mode = 1 anchors_preset = 12 anchor_top = 1.0 @@ -1174,15 +1640,16 @@ offset_top = -69.0 offset_right = -337.0 grow_horizontal = 2 grow_vertical = 0 +script = ExtResource("68_ahvw4") -[node name="controller_guide_text" type="RichTextLabel" parent="coltroller_guide"] +[node name="controller_guide_text" type="RichTextLabel" parent="controller_guide"] layout_mode = 2 theme_override_colors/default_color = Color(1, 1, 1, 0.607843) theme_override_font_sizes/normal_font_size = 23 fit_content = true scroll_active = false -[node name="a_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] +[node name="a_button" type="TextureButton" parent="controller_guide/controller_guide_text"] unique_name_in_owner = true layout_mode = 2 offset_left = 147.0 @@ -1193,7 +1660,7 @@ texture_normal = ExtResource("30_glnve") texture_pressed = ExtResource("31_j5ri1") stretch_mode = 0 -[node name="b_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] +[node name="b_button" type="TextureButton" parent="controller_guide/controller_guide_text"] unique_name_in_owner = true layout_mode = 2 offset_left = 314.0 @@ -1204,7 +1671,7 @@ texture_normal = ExtResource("33_1ghye") texture_pressed = ExtResource("34_fum2b") stretch_mode = 0 -[node name="l1_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] +[node name="l1_button" type="TextureButton" parent="controller_guide/controller_guide_text"] unique_name_in_owner = true layout_mode = 2 offset_left = 7.0 @@ -1215,7 +1682,7 @@ texture_normal = ExtResource("38_prt7u") texture_pressed = ExtResource("39_m4qgd") stretch_mode = 0 -[node name="r1_button" type="TextureButton" parent="coltroller_guide/controller_guide_text"] +[node name="r1_button" type="TextureButton" parent="controller_guide/controller_guide_text"] unique_name_in_owner = true layout_mode = 0 offset_left = 832.0 @@ -1226,7 +1693,7 @@ texture_normal = ExtResource("39_5ft88") texture_pressed = ExtResource("40_pnuor") stretch_mode = 0 -[node name="exit_button" type="Button" parent="coltroller_guide/controller_guide_text"] +[node name="exit_button" type="Button" parent="controller_guide/controller_guide_text"] layout_mode = 2 offset_left = 567.0 offset_top = -11.0 @@ -1239,7 +1706,7 @@ flat = true icon_alignment = 1 expand_icon = true -[node name="locale_option" type="OptionButton" parent="coltroller_guide/controller_guide_text"] +[node name="locale_option" type="OptionButton" parent="controller_guide/controller_guide_text"] unique_name_in_owner = true layout_mode = 1 anchors_preset = 3 @@ -1269,7 +1736,12 @@ popup/item_5/id = 5 popup/item_6/icon = ExtResource("11_ri2fv") popup/item_6/id = 6 -[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container/bios_button" to="." method="_on_bios_button_pressed"] -[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/scan_container/bios_button_expert" to="." method="_on_bios_button_expert_pressed"] -[connection signal="pressed" from="coltroller_guide/controller_guide_text/exit_button" to="." method="_on_exit_button_pressed"] -[connection signal="item_selected" from="coltroller_guide/controller_guide_text/locale_option" to="." method="_on_locale_selected"] +[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] +unique_name_in_owner = true +stream = ExtResource("71_ghxvk") +volume_db = -5.0 + +[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container/bios_button" to="." method="_on_bios_button_pressed"] +[connection signal="pressed" from="Background/SplitContainer/MarginContainer/TabContainer/TOOLS/ScrollContainer/VBoxContainer/troubleshoot_container/bios_button_expert" to="." method="_on_bios_button_expert_pressed"] +[connection signal="pressed" from="controller_guide/controller_guide_text/exit_button" to="." method="_on_exit_button_pressed"] +[connection signal="item_selected" from="controller_guide/controller_guide_text/locale_option" to="." method="_on_locale_selected"] diff --git a/tools/configurator/project.godot b/tools/configurator/project.godot index 068dea36..b32199d7 100644 --- a/tools/configurator/project.godot +++ b/tools/configurator/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="RetroDECK Configurator" -config/version="v0.051" +config/version="0.052" run/main_scene="res://main.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") boot_splash/bg_color=Color(0.141176, 0.141176, 0.141176, 0) @@ -105,6 +105,7 @@ quit1={ quit2={ "deadzone": 0.5, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":7,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":true,"script":null) ] } @@ -121,4 +122,5 @@ locale/translations=PackedStringArray("res://locales/interface.en.translation", textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" +textures/vram_compression/import_etc2_astc=true viewport/transparent_background=true diff --git a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres index ce995125..88e0b552 100644 --- a/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres +++ b/tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres @@ -1087,7 +1087,7 @@ cache/0/16/0/glyphs/95/uv_rect = Rect2(92, 148, 6, 1) cache/0/16/0/glyphs/95/texture_idx = 0 cache/0/16/0/kerning_overrides/16/0 = Vector2(0, 0) -[sub_resource type="Image" id="Image_5erl7"] +[sub_resource type="Image" id="Image_vwjgb"] data = { "data": PackedByteArray("4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg/////////////////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4P//////////4ODg4ODg4OD//////////+Dg4ODg4ODg///////////g4ODg4ODg4A=="), "format": "Lum8", @@ -1097,9 +1097,9 @@ data = { } [sub_resource type="ImageTexture" id="447"] -image = SubResource("Image_5erl7") +image = SubResource("Image_vwjgb") -[sub_resource type="Image" id="Image_u2s1p"] +[sub_resource type="Image" id="Image_ywacb"] data = { "data": PackedByteArray("AAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQACgAVACUANAA/AEYARwBIAEgARwBGAD8ANAAlABUACgARACU/d1rvVv9W/1b/Vv9W/1b/Vv9W/1rvP3cAJQARABkANFnvSP9E/0P/Q/9D/0P/Q/9D/0T/SP9Z7wA0ABkAHwA/VP9D/0P/Q/9D/0P/Q/9D/0P/Q/9D/1T/AD8AHwAiAEZS/0L/Qv9C/0L/Qv9C/0L/Qv9C/0L/Uv8ARgAiACQAR1H/QP9A/0D/QP9A/0D/QP9A/0D/QP9R/wBHACQAJABIT/8//z//P/8//z//P/8//z//P/8//0//AEgAJAAkAEhN/z7/Pv8+/z7/Pv8+/z7/Pv8+/z7/Tf8ASAAkACQAR0z/Pf89/z3/Pf89/z3/Pf89/z3/Pf9M/wBHACQAIgBGSv87/zv/O/87/zv/O/87/zv/O/87/0r/AEYAIgAfAD9J/zr/Ov86/zr/Ov86/zr/Ov86/zr/Sf8APwAfABkANEvvPf85/zn/Of85/zn/Of85/zn/Pf9L7wA0ABkAEQAlNXdK70f/Rv9G/0b/Rv9G/0b/R/9K7TV3ACUAEQAKABUAJQA0AD8ARgBHAEgASABHAEYAPwA0ACUAFQAKAAQACgARABkAHwAiACQAJAAkACQAIgAfABkAEQAKAAQ="), "format": "LumAlpha8", @@ -1109,7 +1109,7 @@ data = { } [sub_resource type="ImageTexture" id="53"] -image = SubResource("Image_u2s1p") +image = SubResource("Image_ywacb") [sub_resource type="StyleBoxTexture" id="54"] content_margin_left = 6.0 @@ -1123,7 +1123,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_7jtn8"] +[sub_resource type="Image" id="Image_haatj"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw5HjL85R4y/aEeMv3pHjL97R4y/e0eMv3tHjL97R4y/ekeMv2hHjL85R4y/DgAAAAAAAAAAAAAAAAAAAABHjL86R4y/dEeMvxBHjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8QR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/aUeMvw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvw9HjL9pAAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8GR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwhHjL97AAAAAAAAAAAAAAAAAAAAAEeMv3tHjL8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8IR4y/ewAAAAAAAAAAAAAAAAAAAABHjL97R4y/CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR4y/CEeMv3sAAAAAAAAAAAAAAAAAAAAAR4y/e0eMvwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeMvwZHjL97AAAAAAAAAAAAAAAAAAAAAEeMv2lHjL8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHjL8OR4y/aQAAAAAAAAAAAAAAAAAAAABHjL86R4y/dUeMvw9HjL8IR4y/CEeMvwhHjL8IR4y/CEeMvwhHjL8RR4y/dEeMvzoAAAAAAAAAAAAAAAAAAAAAR4y/DkeMvzpHjL9oR4y/ekeMv3tHjL97R4y/e0eMv3tHjL96R4y/aEeMvzlHjL8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1133,7 +1133,7 @@ data = { } [sub_resource type="ImageTexture" id="56"] -image = SubResource("Image_7jtn8") +image = SubResource("Image_haatj") [sub_resource type="StyleBoxTexture" id="57"] content_margin_left = 6.0 @@ -1147,7 +1147,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_vhvkw"] +[sub_resource type="Image" id="Image_kwe71"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJUJAS3dfWmzvW1do/1pWZ/9aVmf/WlZn/1pWZ/9aVmf/WlZn/1tXaP9fWmzvQkBLdwAAACUAAAARAAAAGQAAADRfWmvvTUpX/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9JRlL/TUpX/19aa+8AAAA0AAAAGQAAAB8AAAA/W1dm/0lGUv9IRVH/SEVR/0hFUf9IRVH/SEVR/0hFUf9IRVH/SEVR/0lGUv9bV2b/AAAAPwAAAB8AAAAiAAAARllVZP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/R0RQ/0dEUP9HRFD/WVVk/wAAAEYAAAAiAAAAJAAAAEdYVGT/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/0ZDUP9GQ1D/RkNQ/1hUZP8AAABHAAAAJAAAACQAAABIVlNj/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9FQk//RUJP/0VCT/9WU2P/AAAASAAAACQAAAAkAAAASFZTYv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/RUJO/0VCTv9FQk7/VlNi/wAAAEgAAAAkAAAAJAAAAEdVUWL/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/0RBTv9EQU7/REFO/1VRYv8AAABHAAAAJAAAACIAAABGVVFg/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9EQU3/REFN/0RBTf9VUWD/AAAARgAAACIAAAAfAAAAP1VRYP9EQU3/Q0BM/0NATP9DQEz/Q0BM/0NATP9DQEz/Q0BM/0NATP9EQU3/VVFg/wAAAD8AAAAfAAAAGQAAADRWU2TvR0NR/0M/Tf9CP0z/Qj9M/0I/TP9CP0z/Qj9M/0I/TP9DP03/R0NR/1dTZO8AAAA0AAAAGQAAABEAAAAlPjtGd1dTY+9TUF//U09e/1NPXv9TT17/U09e/1NPXv9TT17/U1Bf/1dTY+0+O0Z3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="), "format": "RGBA8", @@ -1157,7 +1157,7 @@ data = { } [sub_resource type="ImageTexture" id="59"] -image = SubResource("Image_vhvkw") +image = SubResource("Image_kwe71") [sub_resource type="StyleBoxTexture" id="60"] content_margin_left = 6.0 @@ -1175,7 +1175,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_djtfc"] +[sub_resource type="Image" id="Image_op27n"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAoAAAAVAAAAJQAAADQAAAA/AAAARgAAAEcAAABIAAAASAAAAEcAAABGAAAAPwAAADQAAAAlAAAAFQAAAAoAAAARAAAAJTw6RHdWU2HvUlBd/1FPXf9RT13/UU9d/1FPXf9RT13/UU9d/1JQXf9WU2HvPDpEdwAAACUAAAARAAAAGQAAADRWUmDvRkJO/0I+Sv9BPkn/QT5J/0E+Sf9BPkn/QT5J/0E+Sf9CPkr/RkJO/1ZSYO8AAAA0AAAAGQAAAB8AAAA/UU5b/0E+Sf9APkj/QD5I/0A+SP9APkj/QD5I/0A+SP9APkj/QD5I/0E+Sf9RTlv/AAAAPwAAAB8AAAAiAAAARk9MWf8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/Pz1H/z89R/8/PUf/T0xZ/wAAAEYAAAAiAAAAJAAAAEdOSlj/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/z47Rv8+O0b/PjtG/05KWP8AAABHAAAAJAAAACQAAABIS0lV/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP88OkT/PDpE/zw6RP9LSVX/AAAASAAAACQAAAAkAAAASEpHVP87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/OzlD/zs5Q/87OUP/SkdU/wAAAEgAAAAkAAAAJAAAAEdJRlP/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/zo4Qv86OEL/OjhC/0lGU/8AAABHAAAAJAAAACIAAABGR0VQ/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP85N0D/OTdA/zk3QP9HRVD/AAAARgAAACIAAAAfAAAAP0dDUP84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//ODU//zg1P/84NT//R0NQ/wAAAD8AAAAfAAAAGQAAADRHRFLvOjhC/zY0Pv82ND7/NjQ+/zY0Pv82ND7/NjQ+/zY0Pv82ND7/OjhC/0dEUu8AAAA0AAAAGQAAABEAAAAlMzE5d0dEUO9EQk3/REFM/0RBTP9EQUz/REFM/0RBTP9EQUz/REJN/0dEUe0zMTl3AAAAJQAAABEAAAAKAAAAFQAAACUAAAA0AAAAPwAAAEYAAABHAAAASAAAAEgAAABHAAAARgAAAD8AAAA0AAAAJQAAABUAAAAKAAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABA=="), "format": "RGBA8", @@ -1185,7 +1185,7 @@ data = { } [sub_resource type="ImageTexture" id="62"] -image = SubResource("Image_djtfc") +image = SubResource("Image_op27n") [sub_resource type="StyleBoxTexture" id="63"] content_margin_left = 6.0 @@ -1199,7 +1199,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_dfxxt"] +[sub_resource type="Image" id="Image_pjro5"] data = { "data": PackedByteArray("AAAABAAAAAoAAAARAAAAGQAAAB8AAAAiAAAAJAAAACQAAAAkAAAAJAAAACIAAAAfAAAAGQAAABEAAAAKAAAABAAAAAsAAAAWAAAAJwAAADYAAABBAAAASQAAAEoAAABLAAAASwAAAEoAAABJAAAAQQAAADYAAAAnAAAAFgAAAAsAAAATAAAAKTEvN4BGQ0/xQ0BM/0JAS/9CQEv/QkBL/0JAS/9CQEv/QkBL/0NATP9GQ0/xMS83fwAAACkAAAATAAAAHgAAAD1HRFDyOjhB/wsLDP8LCgz/CwoM/wsKDP8LCgz/CwsM/wsLDP8LCwz/OjhB/0dEUPIAAAA9AAAAHgAAACcAAABNREJO/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf8PDhH/Dw4R/w8OEf9EQk7/AAAATQAAACcAAAAsAAAAWEZCT/8UExb/ExIW/xMSFv8UExb/ExIW/xQTFv8UExb/FBMW/xQTFv8TEhb/RkJP/wAAAFgAAAAsAAAAMgAAAF1HRVD/GBcb/xgXG/8YFxv/GBcb/xgXG/8YFxv/GBcb/xkYHP8YFxv/GBcb/0dFUP8AAABdAAAAMgAAADMAAABjSUZT/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf8dHCH/HRwh/x0cIf9JRlP/AAAAYwAAADMAAAA2AAAAZkpHVP8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/IiEn/yIhJ/8iISf/SkdU/wAAAGYAAAA2AAAAOQAAAGlLSVX/JyYt/ycmLf8nJi3/JyYt/ycmLf8nJi3/JyYt/ygmLf8nJi3/KCYt/0tJVf8AAABpAAAAOQAAADgAAABsTkpY/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/8tKzP/LSsz/y0rM/9OSlj/AAAAbAAAADgAAAA1AAAAZVBNWv8zMTr/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTn/MzE5/zMxOf8zMTr/UE1a/wAAAGUAAAA1AAAALQAAAFlVUl/8RUJN/zk3QP84N0D/OTdA/zg3QP84N0D/ODdA/zg3QP86N0H/RUJN/1VSYPwAAABZAAAALQAAACAAAABEPTpFtFZSYP1STlz/UU5b/1FOW/9RTlv/UU5b/1FOW/9RTlv/Uk5c/1ZSYP09OkW0AAAARAAAACAAAAAUAAAAKAAAAEUAAABdAAAAbgAAAHkAAAB6AAAAfAAAAHwAAAB6AAAAeQAAAG4AAABdAAAARQAAACgAAAAUAAAACAAAABQAAAAhAAAAMAAAADoAAAA/AAAAQwAAAEMAAABDAAAAQwAAAD8AAAA6AAAAMAAAACEAAAAUAAAACA=="), "format": "RGBA8", @@ -1209,7 +1209,7 @@ data = { } [sub_resource type="ImageTexture" id="65"] -image = SubResource("Image_dfxxt") +image = SubResource("Image_pjro5") [sub_resource type="StyleBoxTexture" id="66"] content_margin_left = 6.0 @@ -1223,7 +1223,7 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 region_rect = Rect2(0, 0, 16, 16) -[sub_resource type="Image" id="Image_cu3dl"] +[sub_resource type="Image" id="Image_5uy45"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADf39+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAA4ODg/9/f34gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAODg4P/g4OD/39/fiAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAADg4OD/4ODg/+Dg4P/f39+IAAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAADg4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P8AAAAAAAAAAAAAAAAAAAAA4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/AAAAAAAAAAAAAAAAAAAAAODg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1233,9 +1233,9 @@ data = { } [sub_resource type="ImageTexture" id="425"] -image = SubResource("Image_cu3dl") +image = SubResource("Image_5uy45") -[sub_resource type="Image" id="Image_06k3s"] +[sub_resource type="Image" id="Image_ec5ho"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MXg/+D/4P/g/+D/4P/gwwAAAAAAAAAAAAAAAAAAAADg/+D/4P/g/+D/4P/g/+D/AAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P/hPAAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/gwwAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAOD/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P8AAAAA4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/wAAAADg/+D/4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/AAAAAODD4P/g/+D/4P/g/+D/4P/g/+D/4P/g/+D/38IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1245,9 +1245,9 @@ data = { } [sub_resource type="ImageTexture" id="427"] -image = SubResource("Image_06k3s") +image = SubResource("Image_ec5ho") -[sub_resource type="Image" id="Image_g0jqc"] +[sub_resource type="Image" id="Image_34hhs"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3hfgz+DO3hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g1+AZAAAAAAAAAAAAAAAAAAAAAAAA3Bbh0uD+4P7g/uD+4NfgGQAAAAAAAAAAAAAAAAAA3hfg1OD+4NHg/uD94dLg/uDU3hcAAAAAAAAAAAAAAADgzeD+4NDcFuD+4P3bFeDR4P7gzAAAAAAAAAAAAAAAAOC+4MXZFP8B4P7g/QAA2xXhyeDFAAAAAAAAAAAAAAAAAAAAAAAA/wHg/uD9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AeD+4P0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MThwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1257,9 +1257,9 @@ data = { } [sub_resource type="ImageTexture" id="429"] -image = SubResource("Image_g0jqc") +image = SubResource("Image_34hhs") -[sub_resource type="Image" id="Image_gk346"] +[sub_resource type="Image" id="Image_p5y3q"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbB99u4Mfg8+Dz4MfebdsHAAAAAAAAAAAAAAAAAADjG+DP4P7g/uD+4P7g/uD+4M7jGwAAAAAAAAAAAADbB+DP4P7g4eBT2A3YDd9Q4Nfg/uDO2wcAAAAAAAAAAN9u4P7g4eMSAAAAAAAAAADhEeDh4P7ebAAAAAAAAAAA4Mjg/uBTAAAAAAAAAAAAAAAA3lXg/uDGAAAAAAAAAADg8uD+2A0AAAAAAAAAAAAAAADbDuD+4PEAAAAA4J7g/uD+4P7g/uCeAAAAAAAAAAAAAN0P4P7g8QAAAADoC+DU4P7g/uDU6AsAAAAAAAAAAAAA3lbg/uDGAAAAAAAA4Svg8+Dz4SsAAAAAAAAAAAAA5BPh4uD+3mwAAAAAAAAAAN9g32AAAAAAAAAAANsO3lbh4uD+4M7VBgAAAAAAAAAAAAAAAAAAAAAAAAAA4P7g/uD+4M7jGwAAAAAAAAAAAAAAAAAAAAAAAAAAAADg8uDF3mzVBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1269,9 +1269,9 @@ data = { } [sub_resource type="ImageTexture" id="431"] -image = SubResource("Image_gk346") +image = SubResource("Image_p5y3q") -[sub_resource type="Image" id="Image_srd7s"] +[sub_resource type="Image" id="Image_soojw"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39/fCN7e3mzg4ODF4ODg9ODg4PPg4ODF3t7ebePj4wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eLuDg4Njg4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7h4eHa4ODgMgAAAAAAAAAAAAAAAAAAAAAAAAAA3t7eL+Dg4PDg4OD+4ODg4eDg4FPY2NgN2NjYDd/f31Dg4ODX4ODg/uDg4PLh4eEzAAAAAAAAAAAAAAAA4+PjCeDg4Nzg4OD+4ODg4ePj4xIAAAAAAAAAAAAAAAAAAAAA4eHhEeDg4OHg4OD+4ODg3+bm5goAAAAAAAAAAN/f33fg4OD+4ODg/uDg4FMAAAAA4ODgS+Dg4OPh4eHi4ODgSQAAAADe3t5V4ODg/uDg4P7f3995AAAAAAAAAADh4eHa4ODg/uDg4P7Y2NgNAAAAAOHh4eLg4OD+4ODg/uDg4OEAAAAA29vbDuDg4P7g4OD+4eHh2gAAAAAAAAAA4ODg2+Dg4P7g4OD+2NjYDQAAAADh4eHi4ODg/uDg4P7g4ODhAAAAAN3d3Q/g4OD+4ODg/uDg4NsAAAAAAAAAAN7e3nzg4OD+4ODg/t/f31AAAAAA4ODgSeHh4eLg4ODh39/fSAAAAADe3t5W4ODg/uDg4P7g4OB7AAAAAAAAAADV1dUM4ODg4+Dg4P7g4ODX4eHhEQAAAAAAAAAAAAAAAAAAAADk5OQT4eHh4uDg4P7g4ODh1dXVDAAAAAAAAAAAAAAAAN/f3zjg4OD04ODg/uDg4OHe3t5V29vbDtvb2w7e3t5W4eHh4uDg4P7g4OD03t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAA39/fN+Dg4N7g4OD+4ODg/uDg4P7g4OD+4ODg/uDg4P7g4ODd3t7eNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm5uYK39/fcODg4MXg4ODz4ODg8+Dg4MXf399u5ubmCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -1281,7 +1281,7 @@ data = { } [sub_resource type="ImageTexture" id="433"] -image = SubResource("Image_srd7s") +image = SubResource("Image_soojw") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_g6bu4"] texture = ExtResource("1_ak8qr") @@ -1359,7 +1359,7 @@ region = Rect2(96, 96, 16, 16) atlas = ExtResource("1_ak8qr") region = Rect2(96, 80, 16, 16) -[sub_resource type="Image" id="Image_0m0km"] +[sub_resource type="Image" id="Image_2m260"] data = { "data": PackedByteArray("AAAAAJiYmHlOTk4xAAAAAAAAAACNjY15Tk5OMQAAAAAAAAAAgoKCeU5OTjEAAAAAAAAAAE5OTjFOTk4cAAAAAAAAAAA4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjKy4ADhVXwAAAAAAAAAAAIGirQA4VV8AAAAAAAAAAACYmJh5Tk5OMQAAAAAAAAAAjY2NeU5OTjEAAAAAAAAAAIKCgnlOTk4xAAAAAA=="), "format": "RGBA8", @@ -1369,7 +1369,7 @@ data = { } [sub_resource type="ImageTexture" id="29"] -image = SubResource("Image_0m0km") +image = SubResource("Image_2m260") [sub_resource type="StyleBoxTexture" id="4"] content_margin_left = 6.0 @@ -1440,7 +1440,7 @@ bg_color = Color(0.490196, 0.490196, 0.490196, 1) corner_detail = 1 anti_aliasing = false -[sub_resource type="Image" id="Image_qu6fu"] +[sub_resource type="Image" id="Image_vuhl3"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN9Y3BYAAAAAAAAAAAAAAADcFt9YAAAAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAA2xXf0uD/4NfgGQAAAADbFd/S4P/g198YAAAAAAAAAAAAANsV39Lg/+DX4BnbFd/S4P/g198YAAAAAAAAAAAAAAAAAADbFd/S4P/h2uDW4P/g198YAAAAAAAAAAAAAAAAAAAAAAAA2xXf1uD/4P/g298YAAAAAAAAAAAAAAAAAAAAAAAAAADbFd/W4P/g/+Db4BkAAAAAAAAAAAAAAAAAAAAAAADbFd/S4P/f2uDW4P/g1+AZAAAAAAAAAAAAAAAAAADbFd/S4P/g198Y2xXf0uD/4NfgGQAAAAAAAAAAAADbFd/S4P/g198YAAAAANsV39Lg/+DX4BkAAAAAAAAAAN9Y4P7g09wWAAAAAAAAAADcFuDT4P7fWAAAAAAAAAAAAADfWNwWAAAAAAAAAAAAAAAA3BbfWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -1450,7 +1450,7 @@ data = { } [sub_resource type="ImageTexture" id="49"] -image = SubResource("Image_qu6fu") +image = SubResource("Image_vuhl3") [sub_resource type="StyleBoxTexture" id="127"] content_margin_left = 4.0 @@ -2271,7 +2271,7 @@ texture_margin_right = 2.0 texture_margin_bottom = 2.0 region_rect = Rect2(72, 64, 8, 8) -[sub_resource type="Image" id="Image_vsf8e"] +[sub_resource type="Image" id="Image_ri2jg"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5uqs87c4bPO3OGzztzhs87c4bPO3OGzztzhs3ObqrMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2281,7 +2281,7 @@ data = { } [sub_resource type="ImageTexture" id="199"] -image = SubResource("Image_vsf8e") +image = SubResource("Image_ri2jg") [sub_resource type="StyleBoxTexture" id="200"] texture = SubResource("199") @@ -2305,7 +2305,7 @@ texture_margin_right = 2.0 texture_margin_bottom = 2.0 region_rect = Rect2(64, 64, 8, 8) -[sub_resource type="Image" id="Image_58oo7"] +[sub_resource type="Image" id="Image_1syv2"] data = { "data": PackedByteArray("/wD//wD//wD//wD/Z3qFZnqGaHuGaHuGaHuGaHuGZnqGZ3qF/wD//wD//wD//wD//wD//wD/Z3qFZnqGV1FRTEJATUNBTUNBTUNBTUNBTEJAV1FRZnqGZ3qF/wD//wD//wD/Z3qFVkxLTEJATURBTUNBTkRCTkRCTkRCTkRCTUNBTURBTEJAV1FRZ3qF/wD//wD/ZnqGTEJATEJATUNBT0VDT0VDT0VDT0VDT0VDT0VDTUNBTEJATEJAZ3uH/wD/Z3qFV1FRTEJATEJATkRCT0RDUEVEUkZEUkZEUUZFT0RDTkRCTEJATEJAV1FRZ3qFZnqGS0A/TEJATUNBT0RDUUdFUkhGU0hHU0hHUkhGUUdFT0RDTkRCTEJAS0E/Z3uHZ3uHS0E/TEJATUNBT0RDUUdFVElGVUpHVUlHVUpHUkhGUEVETUNBTEJAS0E/aHyIZ3uHSkA+S0E/TUNBT0VDUUdFVElGVUtJVk1LVElGU0lHUEZETkRCTEJAS0E/aHyIZ3uHSkE+S0E/TEJAT0VDUUdFVElGVUtJVUtJVUpHUkhGUEZETkRCTEJASkA+aHyIZ3uHSD48S0I/S0E/TkRCUEVEUUZFU0lHU0lHUkhGUEVETkRCTEJAS0E/ST89aHyIZ3uHRj08SD48SkA+TEJATkRCT0RDUEVEUEVEUEZET0VDTEJAS0A/ST89Rz07Z3uHZ3qFV1FRRz47SUA9S0E/TEJATUNBTkRCTkRCTUNBTEJAS0E/ST89Rz07V1FRaHuG/wD/Z3uHRj08Rz07SD48ST89SkA+S0E/S0E/S0A/SkA+SD48Rz47Rz07Z3uH/wD//wD/Z3qFV1FRRTw7Rz07Rz07Rz07SD48SD48Rz07Rz07Rz47Rj08V1FRZnqG/wD//wD//wD/Z3qFZ3uHV1FRRjw6Rjw6Rz47Rz47Rjw6Rjw6V1FRZ3uHaHuG/wD//wD//wD//wD//wD//wD/ZnqGZ3uHaHyIaHyIaHyIaHyIZ3uHaHuG/wD//wD//wD//wD/"), "format": "RGB8", @@ -2315,7 +2315,7 @@ data = { } [sub_resource type="ImageTexture" id="204"] -image = SubResource("Image_58oo7") +image = SubResource("Image_1syv2") [sub_resource type="StyleBoxTexture" id="205"] texture = SubResource("204") @@ -2428,7 +2428,7 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 region_rect = Rect2(80, 0, 16, 8) -[sub_resource type="Image" id="Image_vwdns"] +[sub_resource type="Image" id="Image_du17m"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOD/4P/g/+D/4P/g/+D/4P8AAAAAAAAAAOFe4PTg/+D/4P/g/+D24WYAAAAAAAAAAAAA3yjf0uD/4P/g1+MtAAAAAAAAAAAAAAAAAADoC+Gf4Z/oCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), "format": "LumAlpha8", @@ -2438,9 +2438,9 @@ data = { } [sub_resource type="ImageTexture" id="306"] -image = SubResource("Image_vwdns") +image = SubResource("Image_du17m") -[sub_resource type="Image" id="Image_8u1x6"] +[sub_resource type="Image" id="Image_ydl7p"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g/+GfAAAAAAAAAAAAAAAA4P/g/+D/4P/g1egLAAAAAAAAAAAAAAAA4P/g/+D/4PThKwAAAAAAAAAAAAAAAAAA4P/g/+D/32AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), "format": "LumAlpha8", @@ -2450,9 +2450,9 @@ data = { } [sub_resource type="ImageTexture" id="308"] -image = SubResource("Image_8u1x6") +image = SubResource("Image_ydl7p") -[sub_resource type="Image" id="Image_naxpi"] +[sub_resource type="Image" id="Image_xttex"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAAAA/1n/FP8U/1kAAAAAAAAAAP9Z/xT/FP9ZAAAAAAAA/1n/FP8U/1kAAAAAAAD/Wf8U/xT/WQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="), "format": "LumAlpha8", @@ -2462,9 +2462,9 @@ data = { } [sub_resource type="ImageTexture" id="292"] -image = SubResource("Image_naxpi") +image = SubResource("Image_xttex") -[sub_resource type="Image" id="Image_ksn4y"] +[sub_resource type="Image" id="Image_vx2db"] data = { "data": PackedByteArray("FxYabx0cIe8gHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHvFxYabx0cIfAkIin/KCYt/ygmLv8oJi7/KCYu/ygmLv8oJi3/JCIp/x0cIfAgHiT5KCYt/ysqMf8sKjL/LCoy/ywqMv8sKjL/Kyox/ygmLf8gHiT5IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yEfJfcoJi7/LCoy/ywqMv8sKjL/LCoy/ywqMv8sKjL/KCYu/yEfJfchHyX3KCYu/ywqMv8sKjL/LCoy/ywqMv8sKjL/LCoy/ygmLv8hHyX3IR8l9ygmLv8sKjL/LCoy/ywqMv8sKjL/LCoy/ywqMv8oJi7/IR8l9yAeJPkoJi3/Kyox/ywqMv8sKjL/LCoy/ywqMv8rKjH/KCYt/yAeJPkdHCHwJCIp/ygmLf8oJi7/KCYu/ygmLv8oJi7/KCYt/yQiKf8dHCHxFxYabx0cIfAgHiT3IR8l9yEfJfchHyX3IR8l9yAeJPcdHCHuFxYabw=="), "format": "RGBA8", @@ -2474,7 +2474,7 @@ data = { } [sub_resource type="ImageTexture" id="39"] -image = SubResource("Image_ksn4y") +image = SubResource("Image_vx2db") [sub_resource type="StyleBoxTexture" id="272"] content_margin_left = 0.0 @@ -2534,7 +2534,7 @@ axis_stretch_horizontal = 2 axis_stretch_vertical = 2 region_rect = Rect2(24, 40, 8, 8) -[sub_resource type="Image" id="Image_jvlbm"] +[sub_resource type="Image" id="Image_4bgii"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loWFZjarCvtYFNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/4uLjf//////tra53U1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/0JCR//4+Pj//v7+/1dXWvtNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/05OUv8mJiv/JSUq/yUlKv/Fxcf//////6qqq/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/7i4uv//////X19j/yUlKv90dHf//////+3t7f8zMzj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv+NjY///////7i4uf81NTn/7e3t//////90dHf/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/Ojo+//v7+//6+vr/srK0///////Fxcf/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv+4uLr///////7+/v/4+Pj/RUVJ/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/YWFl////////////j4+S/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yYmK/9OTlL/Y2Nm/yoqL/8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2544,9 +2544,9 @@ data = { } [sub_resource type="ImageTexture" id="334"] -image = SubResource("Image_jvlbm") +image = SubResource("Image_4bgii") -[sub_resource type="Image" id="Image_pxng2"] +[sub_resource type="Image" id="Image_1s0ky"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNS1kHTUtZJ01LWVBNS1lmTUtZaE1LWWhNS1loTUtZaE1LWWhNS1loTUtZZk1LWVBNS1knTUtZBwAAAAAAAAAATUtZJzg3QLQgICT6Hh4i/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hx8j/x4eIv8gICT6ODdAtE1LWScAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPpNS1lQAAAAAAAAAABNS1lmHh4i/yIiJ/8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yIiJ/8eHiL/TUtZZgAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZaB8fI/8jIyj/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8jIyj/Hx8j/01LWWgAAAAAAAAAAE1LWWgfHyP/IyMo/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/IyMo/x8fI/9NS1loAAAAAAAAAABNS1loHx8j/yMjKP8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yMjKP8fHyP/TUtZaAAAAAAAAAAATUtZZh4eIv8iIif/JSUq/yUlKv8lJSr/JSUq/yUlKv8lJSr/JSUq/yUlKv8iIif/Hh4i/01LWWYAAAAAAAAAAE1LWVAgICT6ICAk/yIiJ/8jIyj/IyMo/yMjKP8jIyj/IyMo/yMjKP8iIif/ICAk/yAgJPtNS1lQAAAAAAAAAABNS1knODZAtCAgJPseHiL/Hx8j/x8fI/8fHyP/Hx8j/x8fI/8fHyP/Hh4i/yAgJfo4NkC0TUtZJwAAAAAAAAAATUtZB01LWSdNS1lQTUtZZk1LWWhNS1loTUtZaE1LWWhNS1loTUtZaE1LWWZNS1lQTUtZJ01LWQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2556,7 +2556,7 @@ data = { } [sub_resource type="ImageTexture" id="336"] -image = SubResource("Image_pxng2") +image = SubResource("Image_1s0ky") [sub_resource type="AtlasTexture" id="359"] atlas = ExtResource("1_ak8qr") @@ -2632,7 +2632,7 @@ border_width_left = 1 border_color = Color(0.2, 0.2, 0.2, 1) anti_aliasing = false -[sub_resource type="Image" id="Image_8h43v"] +[sub_resource type="Image" id="Image_t5208"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIKCgnmNjY15mJiYeYGirQCMrLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOFVfAE5OTjGCgoJ5jY2NeZiYmHlOTk4xTk5OMU5OTjE4VV8AOFVfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADhVXwBOTk4cTk5OMU5OTjFOTk4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -2642,7 +2642,7 @@ data = { } [sub_resource type="ImageTexture" id="111"] -image = SubResource("Image_8h43v") +image = SubResource("Image_t5208") [sub_resource type="AtlasTexture" id="20"] atlas = ExtResource("3_0m6kw") diff --git a/tools/configurator/scripts/SystemTab.gd b/tools/configurator/scripts/SystemTab.gd new file mode 100644 index 00000000..af806414 --- /dev/null +++ b/tools/configurator/scripts/SystemTab.gd @@ -0,0 +1,110 @@ +extends Control + +var app_data := AppData.new() +var current_system := Emulator.new() +var press_time: float = 0.0 +var is_launch_pressed: bool = false +var is_reset_pressed: bool = false +var reset_result: Dictionary +@export var PRESS_DURATION: float = 3.0 + +func _ready(): + app_data = data_handler.app_data + _connect_signals() + +func _process(delta: float) -> void: + if is_launch_pressed: + press_time += delta + %launch_progress.value = press_time / PRESS_DURATION * 100.0 + if is_reset_pressed: + press_time += delta + %reset_progress.value = press_time / PRESS_DURATION * 100.0 + if press_time >= PRESS_DURATION: + _do_complete() + press_time = 0.0 + is_launch_pressed = false + is_reset_pressed = false + %launch_progress.value = 0.0 + %reset_progress.value = 0.0 + +func _connect_signals() -> void: + %retroarch_button.pressed.connect(_hide_show_buttons.bind(%retroarch_button,%system_gridcontainer, %action_gridcontainer)) + %mame_button.pressed.connect(_hide_show_buttons.bind(%mame_button,%system_gridcontainer, %action_gridcontainer)) + %ruffle_button.pressed.connect(_hide_show_buttons.bind(%ruffle_button,%system_gridcontainer, %action_gridcontainer)) + %melonds_button.pressed.connect(_hide_show_buttons.bind(%melonds_button,%system_gridcontainer, %action_gridcontainer)) + %pcsx2_button.pressed.connect(_hide_show_buttons.bind(%pcsx2_button,%system_gridcontainer, %action_gridcontainer)) + %duckstation_button.pressed.connect(_hide_show_buttons.bind(%duckstation_button,%system_gridcontainer, %action_gridcontainer)) + %ppsspp_button.pressed.connect(_hide_show_buttons.bind(%ppsspp_button,%system_gridcontainer, %action_gridcontainer)) + %vita3k_button.pressed.connect(_hide_show_buttons.bind(%vita3k_button,%system_gridcontainer, %action_gridcontainer)) + %rpcs3_button.pressed.connect(_hide_show_buttons.bind(%rpcs3_button,%system_gridcontainer, %action_gridcontainer)) + %ryujinx_button.pressed.connect(_hide_show_buttons.bind(%ryujinx_button,%system_gridcontainer, %action_gridcontainer)) + %dolphin_button.pressed.connect(_hide_show_buttons.bind(%dolphin_button,%system_gridcontainer, %action_gridcontainer)) + %primehack_button.pressed.connect(_hide_show_buttons.bind(%primehack_button,%system_gridcontainer, %action_gridcontainer)) + %cemu_button.pressed.connect(_hide_show_buttons.bind(%cemu_button,%system_gridcontainer, %action_gridcontainer)) + %xemu_button.pressed.connect(_hide_show_buttons.bind(%xemu_button,%system_gridcontainer, %action_gridcontainer)) + %esde_button.pressed.connect(_hide_show_buttons.bind(%esde_button,%system_gridcontainer, %action_gridcontainer)) + %help_button.pressed.connect(_do_action.bind(%help_button)) + #%launch_button.pressed.connect(_do_action.bind(%launch_button)) + %launch_button.button_down.connect(_do_action.bind(%launch_button)) + %launch_button.button_up.connect(_on_Button_released.bind(%launch_progress)) + %reset_button.button_down.connect(_do_action.bind(%reset_button)) + %reset_button.button_up.connect(_on_Button_released.bind(%reset_progress)) + +func _hide_show_buttons(button: Button, buttons_gridcontainer: GridContainer, hidden_gridcontainer: GridContainer) -> void: + current_system = app_data.emulators[button.text.to_lower()] + match button.name: + "retroarch_button", "mame_button", "ruffle_button", "melonds_button", "pcsx2_button", "duckstation_button", \ + "ppsspp_button", "vita3k_button", "rpcs3_button", "ryujinx_button", "dolphin_button", "primehack_button", \ + "cemu_button", "xemu_button", "esde_button": + hidden_gridcontainer.visible = true + if button.toggle_mode == false: + for i in range(buttons_gridcontainer.get_child_count()): + var child = buttons_gridcontainer.get_child(i) + if child is Button and child != button: + child.visible=false + elif button.toggle_mode == true and hidden_gridcontainer.visible == true: + hidden_gridcontainer.visible = false + for i in range(buttons_gridcontainer.get_child_count()): + var child = buttons_gridcontainer.get_child(i) + if child is Button: + child.visible=true + child.toggle_mode = false + if hidden_gridcontainer.visible == true: + button.toggle_mode = true + +func _on_Button_released(progress: ProgressBar) -> void: + is_launch_pressed = false + is_reset_pressed = false + press_time = 0.0 + progress.value = 0.0 + +func _do_action(button: Button) -> void: + match [button.name, current_system.name]: + ["help_button", current_system.name]: + class_functions.log_parameters[2] = class_functions.log_text + "Launching " + current_system.name + " Help" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + class_functions.launch_help(current_system.url) + ["launch_button", current_system.name]: + is_launch_pressed = true + ["reset_button", current_system.name]: + is_reset_pressed = true + +func _do_complete() ->void: + if is_launch_pressed: + class_functions.log_parameters[2] = class_functions.log_text + "Launching " + current_system.name + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + var launch = class_functions.execute_command(current_system.launch,[], false) + class_functions.log_parameters[2] = class_functions.log_text + "Exit Code: " + str(launch["exit_code"]) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + if is_reset_pressed: + var parameters = ["prepare_component","reset",current_system.name] + %reset_button.text = "RESETTING-NOW" + class_functions.log_parameters[2] = class_functions.log_text + "Resetting " + current_system.name + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + await run_thread_command(class_functions.wrapper_command,parameters, false) + class_functions.log_parameters[2] = class_functions.log_text + "Exit Code: " + str(reset_result["exit_code"]) + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) + %reset_button.text = "RESET COMPLETED" + +func run_thread_command(command: String, parameters: Array, console: bool) -> void: + reset_result = await class_functions.run_command_in_thread(command, parameters, console) diff --git a/tools/configurator/scripts/app_data.gd b/tools/configurator/scripts/app_data.gd index 5b386d8d..851b6ef5 100644 --- a/tools/configurator/scripts/app_data.gd +++ b/tools/configurator/scripts/app_data.gd @@ -6,3 +6,4 @@ class_name AppData @export var about_links: Dictionary = {} @export var emulators: Dictionary = {} +@export var cores: Dictionary = {} diff --git a/tools/configurator/scripts/class_functions.gd b/tools/configurator/scripts/class_functions.gd index a138ae6f..88ef29db 100644 --- a/tools/configurator/scripts/class_functions.gd +++ b/tools/configurator/scripts/class_functions.gd @@ -1,6 +1,9 @@ -class_name ClassFunctions extends Control +class_name ClassFunctions -# This should be looked at again when GoDot 4.3 ships as has new OS.execute_with_pipe +extends Control +var log_text = "gdc_" +var log_parameters: Array = ["log", "i", log_text] +var wrapper_command: String = "../../tools/retrodeck_function_wrapper.sh" func array_to_string(arr: Array) -> String: var text: String @@ -9,6 +12,7 @@ func array_to_string(arr: Array) -> String: text = line.strip_edges() + "\n" return text +# TODO This should be looked at again when GoDot 4.3 ships as has new OS.execute_with_pipe func execute_command(command: String, parameters: Array, console: bool) -> Dictionary: var result = {} var output = [] diff --git a/tools/configurator/scripts/core.gd b/tools/configurator/scripts/core.gd new file mode 100644 index 00000000..835eb071 --- /dev/null +++ b/tools/configurator/scripts/core.gd @@ -0,0 +1,8 @@ +extends Resource + +class_name Core + +@export var name: String +@export var description: String +@export var system: Array +@export var properties: Array[CoreProperty] diff --git a/tools/configurator/scripts/core_property.gd b/tools/configurator/scripts/core_property.gd new file mode 100644 index 00000000..a744712e --- /dev/null +++ b/tools/configurator/scripts/core_property.gd @@ -0,0 +1,14 @@ +extends Resource + +class_name CoreProperty + +@export var borders: bool +@export var abxy_button: bool +@export var cheevos: bool +@export var cheevos_hardcore: bool +@export var ask_to_exit: bool +@export var multi_user_config_dir: String +@export var universal_dyn_input: bool +@export var quick_resume: bool +@export var widescreen: bool +@export var rewind: bool diff --git a/tools/configurator/scripts/data_handler.gd b/tools/configurator/scripts/data_handler.gd index 4b48cb4c..2b24a79c 100644 --- a/tools/configurator/scripts/data_handler.gd +++ b/tools/configurator/scripts/data_handler.gd @@ -34,9 +34,12 @@ func load_base_data() -> AppData: var emulator = Emulator.new() emulator.name = emulator_data["name"] emulator.description = emulator_data["description"] + emulator.url = emulator_data["url"] + #emulator.system = emulator_data["system"] + emulator.launch = emulator_data["launch"] if emulator_data.has("properties"): for property_data in emulator_data["properties"]: - print (emulator,"----",property_data) + #print (emulator,"----",property_data) var property = EmulatorProperty.new() if property_data.has("cheevos"): property.cheevos = property_data.get("cheevos",true) @@ -47,11 +50,36 @@ func load_base_data() -> AppData: if property_data.has("multi_user_config_dir"): property.multi_user_config_dir = property_data.get("multi_user_config_dir",true) emulator.properties.append(property) - emulators[key] = emulator + #TODO add systems too + var cores = {} + for key in data_dict["emulator"]["retroarch"]["cores"].keys(): + var core_data = data_dict["emulator"]["retroarch"]["cores"][key] + var core = Core.new() + core.name = core_data["name"] + core.description = core_data["description"] + if core_data.has("properties"): + for property_data in core_data["properties"]: + #print (core.name,"----",property_data) + var property = CoreProperty.new() + property.cheevos = true + property.cheevos_hardcore = true + property.quick_resume = true + if property_data.has("abxy_button"): + property.abxy_button = property_data.get("abxy_button",true) + if property_data.has("widescreen"): + property.widescreen = property_data.get("widescreen",true) + if property_data.has("borders"): + property.borders = property_data.get("borders",true) + if property_data.has("rewind"): + property.rewind = property_data.get("rewind",true) + core.properties.append(property) + cores[key] = core + var app_dict = AppData.new() app_dict.about_links = about_links app_dict.emulators = emulators + app_dict.cores = cores return app_dict else: print("Error parsing JSON") @@ -60,7 +88,7 @@ func load_base_data() -> AppData: get_tree().quit() return null -func save_base_data(app_dict: AppData): # was apP_data but gave warning +func save_base_data(app_dict: AppData): var file = FileAccess.open(data_file_path, FileAccess.READ) var existing_data = {} if file: @@ -71,18 +99,18 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning file.close() else: print("File not found. Creating a new one.") - var about_links = {} + #var about_links ={} + var about_links_new = Link.new() for key in app_dict.about_links.keys(): var link = app_dict.about_links[key] - about_links[key] = { + about_links_new[key] = { "name": link.name, "url": link.url, "description": link.description } - var new_data_dict = {} - # Convert about_links to a dictionary - var about_links = {} + #var about_links = {} + var about_links = Link.new() for key in app_dict.about_links.keys(): var link = app_dict.about_links[key] about_links[key] = { @@ -90,8 +118,6 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning "url": link.url, "description": link.description } - - # Convert emulators to a dictionary var emulators = {} for key in app_dict.emulators.keys(): var emulator = app_data.emulators[key] @@ -101,16 +127,16 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning #"standalone": property.standalone, "abxy_button": {"status": property.abxy_button} }) - emulators[key] = { "name": emulator.name, "description": emulator.description, + "launch": emulator.launch, + "system": emulator.system, + "url": emulator.url, "properties": properties } - new_data_dict["about_links"] = about_links new_data_dict["emulators"] = emulators - # Merge existing data with new data for key in new_data_dict.keys(): if existing_data.has(key): @@ -122,7 +148,6 @@ func save_base_data(app_dict: AppData): # was apP_data but gave warning existing_dict[sub_key] = new_dict[sub_key] else: existing_data[key] = new_data_dict[key] - # Serialize the combined data to JSON #var json_text = JSON.new().stringify(existing_data, "\t") #var json_text = json.stringify(existing_data, "\t") @@ -149,13 +174,14 @@ func modify_link(key: String, new_name: String, new_url: String, new_description print("Link not found") # Function to modify an existing emulator -func modify_emulator(key: String, new_name: String, new_description: String, new_properties: Array): +func modify_emulator(key: String, new_name: String, new_launch: String, new_description: String, new_properties: Array): #data_handler.modify_emulator_test() var app_dict = load_base_data() # was app_data if app_dict and app_dict.emulators.has(key): var emulator = app_dict.emulators[key] emulator.name = new_name emulator.description = new_description + emulator.launch = new_launch # Update properties emulator.properties.clear() @@ -165,9 +191,7 @@ func modify_emulator(key: String, new_name: String, new_description: String, new new_property.abxy_button = property.abxy_button new_property.ask_to_exit = property.ask_to_exit new_property.cheevos = property.cheevos - emulator.properties.append(new_property) - app_dict.emulators[key] = emulator save_base_data(app_dict) print("Emulator modified successfully") @@ -182,10 +206,10 @@ func add_emulator() -> void: link.url = "https://example.com" link.description = "An example description." app_data.about_links["example_site"] = link - var emulator = Emulator.new() - emulator.name = "Example Emulator" + emulator.name = "Example System" emulator.description = "An example emulator." + emulator.launch = "launcher" var property = EmulatorProperty.new() #property.standalone = true property.abxy_button = false @@ -195,29 +219,23 @@ func add_emulator() -> void: func modify_emulator_test() -> void: data_handler.modify_link("example_site", "Updated Site", "https://updated-example.com", "Updated description.") - - var new_properties = [] var new_property = EmulatorProperty.new() #new_property.standalone = false new_property.abxy_button = true new_properties.append(new_property) - - data_handler.modify_emulator("example_emulator", "Updated Emulator", "Updated description", new_properties) - + data_handler.modify_emulator("example_emulator", "Updated System", "launcher", "Updated description", new_properties) func parse_config_to_json(file_path: String) -> Dictionary: var config = {} var current_section = "" - var file = FileAccess.open(file_path, FileAccess.READ) if file == null: print("Failed to open file") return config - + while not file.eof_reached(): var line = file.get_line().strip_edges() - if line.begins_with("[") and line.ends_with("]"): # Start a new section current_section = line.substr(1, line.length() - 2) @@ -227,8 +245,7 @@ func parse_config_to_json(file_path: String) -> Dictionary: var parts = line.split("=") if parts.size() == 2: var key = parts[0].strip_edges() - var value = parts[1].strip_edges() - + var value = parts[1].strip_edges() # Convert value to proper type if value == "true": value = true @@ -242,10 +259,8 @@ func parse_config_to_json(file_path: String) -> Dictionary: config[key] = value else: config[current_section][key] = value - file.close() return config - func config_save_json(config: Dictionary, json_file_path: String) -> void: #var json = JSON.new() diff --git a/tools/configurator/scripts/emulator.gd b/tools/configurator/scripts/emulator.gd index 5b5900ad..4eda2798 100644 --- a/tools/configurator/scripts/emulator.gd +++ b/tools/configurator/scripts/emulator.gd @@ -1,6 +1,10 @@ extends Resource -class_name Emulator +class_name Emulator + @export var name: String @export var description: String +@export var launch: String +@export var url: String +@export var system: String @export var properties: Array[EmulatorProperty] diff --git a/tools/configurator/scripts/emulator_property.gd b/tools/configurator/scripts/emulator_property.gd index 51ef7670..07d7a673 100644 --- a/tools/configurator/scripts/emulator_property.gd +++ b/tools/configurator/scripts/emulator_property.gd @@ -1,4 +1,5 @@ extends Resource + class_name EmulatorProperty @export var borders: bool @@ -8,3 +9,4 @@ class_name EmulatorProperty @export var ask_to_exit: bool @export var multi_user_config_dir: String @export var universal_dyn_input: bool +@export var quick_resume: bool diff --git a/tools/configurator/scripts/link.gd b/tools/configurator/scripts/link.gd index e3a4b774..5e598d3e 100644 --- a/tools/configurator/scripts/link.gd +++ b/tools/configurator/scripts/link.gd @@ -1,5 +1,7 @@ extends Resource + class_name Link + @export var description: String @export var name: String @export var url: String diff --git a/tools/configurator/tk_about.gd b/tools/configurator/tk_about.gd index dddde099..35770c2b 100644 --- a/tools/configurator/tk_about.gd +++ b/tools/configurator/tk_about.gd @@ -83,18 +83,34 @@ func _connect_signals() -> void: func _about_button_pressed(id: String) -> void: match id: "rd_web": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_web_button.editor_description) "rd_changelog": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_changelog_button.editor_description) "rd_wiki": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_wiki_button.editor_description) "rd_credits": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_credits_button.editor_description) "rd_donate": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_donate_button.editor_description) "rd_contactus": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_contactus_button.editor_description) "rd_licenses": + class_functions.log_parameters[2] = class_functions.log_text + "Loading website for " + id + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) OS.shell_open(rd_licenses_button.editor_description) _: + class_functions.log_parameters[2] = class_functions.log_text + "Loading website - no matching ID found" + class_functions.execute_command(class_functions.wrapper_command,class_functions.log_parameters, false) print ("Website ID/Link not found")