Came back to fix the original version!

On branch godot-data-demo
 Changes to be committed:
	modified:   config/retrodeck/reference_lists/features.json
	modified:   tools/configurator/main.gd
	modified:   tools/configurator/main.tscn
	modified:   tools/configurator/res/pixel_ui_theme/RetroDECKTheme.tres
	modified:   tools/configurator/scripts/data_handler.gd
	modified:   tools/configurator/scripts/emulator.gd
	deleted:    tools/configurator/scripts/emulator_option.gd
	modified:   tools/configurator/tk_about.gd
This commit is contained in:
monkeyx-net 2024-08-14 23:15:10 +01:00
parent 0308896940
commit 342b1ea56f
8 changed files with 1173 additions and 1103 deletions

View file

@ -41,91 +41,499 @@
"url": "https://retrodeck.readthedocs.io/en/latest/" "url": "https://retrodeck.readthedocs.io/en/latest/"
} }
}, },
"emulator": {
"cemu": {
"description": "Wii U emulator",
"launch": "Cemu-wrapper",
"name": "Cemu",
"properties": [
{
"abxy_button": true,
"multi_user_config_dir": "Cemu"
}
],
"system": "wiiu"
},
"citra": {
"description": "Citra Nintendo 3DS Emulator (via Ponzu)",
"name": "Citra (via Ponzu)",
"ponzu": true,
"properties": [
{
"abxy_button": true,
"ask_to_exit": true
}
],
"system": "n3ds"
},
"dolphin": {
"description": "Dolphin Wii and GameCube Emulator",
"launch": "dolphin-emu-wrapper",
"name": "Dolphin",
"properties": [
{
"abxy_button": true,
"ask_to_exit": true,
"cheevos": true,
"cheevos_hardcore": true,
"universal_dyn_input": true
}
],
"system": [
"gc",
"wii"
]
},
"duckstation": {
"description": "PlayStation Emulator",
"launch": "duckstation-qt",
"name": "Duckstation",
"properties": [
{
"ask_to_exit": true,
"cheevos": true
}
],
"system": "psx"
},
"mame": {
"description": "MAME: Multiple Arcade Machine Emulator",
"launch": "mame",
"name": "MAME",
"system": [
"arcade"
]
},
"melonds": {
"description": "MelonDS Nintendo DS Emulator",
"launch": "MelonDS",
"name": "melonds",
"system": "nds"
},
"pcsx2": {
"description": "PCSX2 Play Station 2 Emulator",
"name": "pcsx2",
"properties": [
{
"ask_to_exit": true,
"cheevos": true
}
],
"system": "ps2"
},
"ppsspp": {
"description": "PPSSPP: PlayStation Portable Emulator",
"launch": "PPSSPPSDL",
"name": "PPSSPP",
"properties": [
{
"cheevos": true,
"cheevos_hardcore": true
}
],
"system": "psp"
},
"primehack": {
"description": "A fork of Dolphiin to enhance Metroid Prime experience",
"launch": "primehack-wrapper",
"name": "PrimeHack",
"properties": [
{
"ask_to_exit": true,
"universal_dyn_input": true
}
],
"system": [
"wii"
]
},
"retroarch": {
"cores": {
"citra_libretro": {
"description": "Nintendo 3DS Libretro Core",
"name": "Citra",
"properties": [
{
"abxy_button": true
}
],
"system": "n3ds"
},
"desmume_libretro": {
"description": "DeSmuME Nintendo DS Libretro Core",
"name": "desmume",
"properties": [
{
"abxy_button": true
}
],
"system": "nds"
},
"gambatte_libetro": {
"description": "Game Boy/Color Libretro Core",
"name": "Gambatte",
"properties": [
{
"abxy_button": true,
"borders": true,
"rewind": true
}
],
"system": [
"gb",
"gbc"
]
},
"genesisplusgx_libetro": {
"description": "SEGA MS/GG/MD/CD Libretro Core",
"name": "Genesis Plus GX",
"properties": [
{
"borders": true,
"rewind": true,
"widescreen": true
}
],
"system": [
"ms",
"gg",
"mc",
"cd"
]
},
"genesisplusgxwide_libetro": {
"description": "SEGA MS/GG/MD/CD Libretro Core for Wide Screen",
"name": "Genesis Plus GX Wide",
"properties": [
{
"rewind": true,
"widescreen": true
}
],
"system": [
"ms",
"gg",
"mc",
"cd"
]
},
"mame_libretro": {
"description": "MAME: Multiple Arcade Machine Libretro Core",
"name": "MAME",
"properties": [
{
"tate_mode": true
}
],
"system": "arcade"
},
"melonds_libretro": {
"description": "MelonDS Nintendo DS Libretro Core",
"name": "melonds",
"properties": [
{
"abxy_button": true
}
],
"system": "nds"
},
"mgba_libetro": {
"description": "Game Boy Advance Libretro Core",
"name": "mGBA",
"properties": [
{
"abxy_button": true,
"borders": true,
"rewind": true
}
],
"system": "gba"
},
"mupen64plus-next_libetro": {
"description": "Nintendo 64 Libretro Core",
"name": "Mupen64Plus-Next",
"properties": [
{
"abxy_button": true,
"borders": true,
"widescreen": true
}
],
"system": "n64"
},
"picodrive_libetro": {
"description": "SEGA MS/MD/CD/32X Libretro Core",
"name": "PicoDrive",
"properties": [
{
"borders": true,
"rewind": true,
"widescreen": true
}
],
"system": [
"ms",
"md",
"cd",
"32x"
]
},
"snes9x-current_libetro": {
"description": "Super Nintendo Libretro Core",
"name": "Snes9x - Current",
"properties": [
{
"abxy_button": true,
"borders": true,
"rewind": true,
"widescreen": true
}
],
"system": "snes"
},
"swanstation_libretro": {
"description": "Swanstation Libretro Core",
"name": "SwanStation",
"properties": [
{
"borders": true,
"widescreen": true
}
],
"system": "psx"
}
},
"description": "RetroArch (Multi-emulator Frontend)",
"launch": "retroarch",
"name": "RetroArch",
"properties": [
{
"cheevos": true,
"cheevos_hardcore": true,
"quick_resume": true
}
]
},
"rpcs3": {
"description": "RPCS3 PlayStation 3 Emulator",
"launch": "rpcs3",
"name": "RPCS3",
"properties": [
{
"ask_to_exit": true
}
],
"system": "ps3"
},
"ryujinx": {
"description": "Ryujinx Nintendo Switch Emulator",
"launch": "Ryujinx.sh",
"name": "Ryujinx",
"system": "switch"
},
"vita3k": {
"description": "Vita3K PSVita Emulator",
"launch": "Vita3K",
"name": "Vita3k",
"system": "psvita"
},
"xemu": {
"description": "xemu Xbox Emulator",
"launch": "xemu",
"name": "xemu",
"system": "xbox"
},
"yuzu": {
"abxy_button": true,
"description": "Yuzu Nintendo Switch Emulator (via Ponzu)",
"launch": "Yuzu",
"name": "Yuzu (via Ponzu)",
"ponzu": true,
"system": "switch"
}
},
"emulators": {
"cemu": {
"description": "Wii U emulator",
"name": "Cemu",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"citra": {
"description": "Citra Nintendo 3DS Emulator (via Ponzu)",
"name": "Citra (via Ponzu)",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"dolphin": {
"description": "Dolphin Wii and GameCube Emulator",
"name": "Dolphin",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"duckstation": {
"description": "PlayStation Emulator",
"name": "Duckstation",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"example_emulator": {
"description": "An example emulator.",
"name": "Example Emulator",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": true
}
]
},
"mame": {
"description": "MAME: Multiple Arcade Machine Emulator",
"name": "MAME",
"properties": []
},
"melonds": {
"description": "MelonDS Nintendo DS Emulator",
"name": "melonds",
"properties": []
},
"pcsx2": {
"description": "PCSX2 Play Station 2 Emulator",
"name": "pcsx2",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"ppsspp": {
"description": "PPSSPP: PlayStation Portable Emulator",
"name": "PPSSPP",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"primehack": {
"description": "A fork of Dolphiin to enhance Metroid Prime experience",
"name": "PrimeHack",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"retroarch": {
"description": "RetroArch (Multi-emulator Frontend)",
"name": "RetroArch",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"rpcs3": {
"description": "RPCS3 PlayStation 3 Emulator",
"name": "RPCS3",
"properties": [
{
"abxy_button": {
"status": false
},
"standalone": false
}
]
},
"ryujinx": {
"description": "Ryujinx Nintendo Switch Emulator",
"name": "Ryujinx",
"properties": []
},
"vita3k": {
"description": "Vita3K PSVita Emulator",
"name": "Vita3k",
"properties": []
},
"xemu": {
"description": "xemu Xbox Emulator",
"name": "xemu",
"properties": []
},
"yuzu": {
"description": "Yuzu Nintendo Switch Emulator (via Ponzu)",
"name": "Yuzu (via Ponzu)",
"properties": []
}
},
"finit_default_options": { "finit_default_options": {
"rd_controller_profile": { "rd_controller_profile": {
"name": "RetroDECK Steam Controller Profiles Install",
"description": "Install RetroDECK Steam Input profiles to Steam - Recommended", "description": "Install RetroDECK Steam Input profiles to Steam - Recommended",
"enabled": true "enabled": true,
"name": "RetroDECK Steam Controller Profiles Install"
}, },
"rpcs3_firmware": { "rpcs3_firmware": {
"name": "RPCS3 Firmware Install",
"description": "Install firmware needed for PS3 emulation", "description": "Install firmware needed for PS3 emulation",
"enabled": false "enabled": false,
"name": "RPCS3 Firmware Install"
}, },
"vita3k_firmware": { "vita3k_firmware": {
"name": "Vita3K Firmware Install",
"description": "Install firmware needed for Vita3K emulation", "description": "Install firmware needed for Vita3K emulation",
"enabled": false "enabled": false,
"name": "Vita3K Firmware Install"
} }
}, },
"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"
}
},
"incompatible_presets": {
"borders": "widescreen"
},
"helper_files": { "helper_files": {
"dolphin_mods": { "dolphin_mods": {
"filename": "how-to-install-dolphin-mods.txt", "filename": "how-to-install-dolphin-mods.txt",
"location": "$mods_folder/Dolphin" "location": "$mods_folder/Dolphin"
}, },
"primehack_mods": { "duckstation_textures": {
"filename": "how-to-install-primehack-mods.txt", "filename": "how-to-install-Duckstation-textures.txt",
"location": "$mods_folder/Primehack" "location": "$texture_packs_folder/Duckstation"
}, },
"mesen_textures": { "mesen_textures": {
"filename": "how-to-install-Mesen-textures.txt", "filename": "how-to-install-Mesen-textures.txt",
"location": "$texture_packs_folder/RetroArch-Mesen" "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": { "mupen64plus_cache_textures": {
"filename": "how-to-install-Mupen64Plus-textures.txt", "filename": "how-to-install-Mupen64Plus-textures.txt",
"location": "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "location": "$texture_packs_folder/RetroArch-Mupen64Plus/cache"
@ -134,9 +542,17 @@
"filename": "how-to-install-Mupen64Plus-textures.txt", "filename": "how-to-install-Mupen64Plus-textures.txt",
"location": "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "location": "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture"
}, },
"duckstation_textures": { "pcsx2_textures": {
"filename": "how-to-install-Duckstation-textures.txt", "filename": "how-to-install-PCSX2-textures.txt",
"location": "$texture_packs_folder/Duckstation" "location": "$texture_packs_folder/PCSX2"
},
"ppsspp_textures": {
"filename": "how-to-install-PPSSPP-textures.txt",
"location": "$texture_packs_folder/PPSSPP"
},
"primehack_mods": {
"filename": "how-to-install-primehack-mods.txt",
"location": "$mods_folder/Primehack"
}, },
"psvita_games": { "psvita_games": {
"filename": "how-to-install-psvita-games.txt", "filename": "how-to-install-psvita-games.txt",
@ -147,6 +563,53 @@
"location": "$bios_folder/switch/firmware" "location": "$bios_folder/switch/firmware"
} }
}, },
"incompatible_presets": {
"borders": "widescreen"
},
"splash_screens": {
"kodomo_golden_week": {
"end_date": "0505",
"end_time": "2359",
"filename": "rd-kodomo-golden.svg",
"start_date": "0429",
"start_time": "0000"
},
"lunar_dragon": {
"end_date": "0212",
"end_time": "2359",
"filename": "rd-lunar-dragon-splash.svg",
"start_date": "0209",
"start_time": "0000"
},
"retrodeck_birthday": {
"end_date": "0304",
"end_time": "2359",
"filename": "rd-gm-bday-splash.svg",
"start_date": "0304",
"start_time": "0000"
},
"st_patricks_day": {
"end_date": "0317",
"end_time": "2359",
"filename": "rd-stpatricks-splash.svg",
"start_date": "0317",
"start_time": "0000"
},
"valentines_day": {
"end_date": "0214",
"end_time": "2359",
"filename": "rd-valentines-splash.svg",
"start_date": "0214",
"start_time": "0001"
},
"xmas": {
"end_date": "1231",
"end_time": "2359",
"filename": "rd-xmas-splash.svg",
"start_date": "1201",
"start_time": "0000"
}
},
"system": { "system": {
"3do": { "3do": {
"name": "3DO Interactive Multiplayer" "name": "3DO Interactive Multiplayer"
@ -640,316 +1103,5 @@
"zxspectrum": { "zxspectrum": {
"name": "Sinclair ZX Spectrum" "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,
"properties": [
{
"abxy_button": true,
"ask_to_exit": true
}
]
},
"melonds": {
"description": "MelonDS Nintendo DS Emulator",
"name": "melonds",
"system": "nds",
"launch": "MelonDS"
},
"pcsx2": {
"name": "pcsx2",
"description": "PCSX2 Play Station 2 Emulator",
"system": "ps2",
"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"
}
} }
} }

View file

@ -9,8 +9,6 @@ var log_results: Dictionary
var theme_option: OptionButton var theme_option: OptionButton
signal signal_theme_changed signal signal_theme_changed
var custom_theme: Theme = $".".theme var custom_theme: Theme = $".".theme
var emu_select_option: OptionButton
var emu_pick_option: OptionButton
var log_option: OptionButton var log_option: OptionButton
var tab_container: TabContainer var tab_container: TabContainer
var anim_logo: AnimatedSprite2D var anim_logo: AnimatedSprite2D
@ -24,8 +22,8 @@ func _ready():
_connect_signals() _connect_signals()
_play_main_animations() _play_main_animations()
data_handler.add_emaultor() #data_handler.add_emulator()
data_handler.modify_emulator_test() #data_handler.modify_emulator_test()
$Background/locale_option.selected = class_functions.map_locale_id(OS.get_locale_language()) $Background/locale_option.selected = class_functions.map_locale_id(OS.get_locale_language())
""" """
@ -67,8 +65,6 @@ func _ready():
func _get_nodes() -> void: func _get_nodes() -> void:
status_code_label = get_node("%status_code_label") status_code_label = get_node("%status_code_label")
theme_option = get_node("%theme_optionbutton") theme_option = get_node("%theme_optionbutton")
emu_select_option = get_node("%emu_select_option")
emu_pick_option = get_node("%emu_pick_option")
tab_container = get_node("%TabContainer") tab_container = get_node("%TabContainer")
anim_logo = get_node("%logo_animated") anim_logo = get_node("%logo_animated")
log_option = get_node("%logs_button") log_option = get_node("%logs_button")
@ -77,22 +73,8 @@ func _connect_signals() -> void:
#signal_theme_changed.connect(_conf_theme) #signal_theme_changed.connect(_conf_theme)
theme_option.item_selected.connect(_conf_theme) theme_option.item_selected.connect(_conf_theme)
signal_theme_changed.emit(theme_option.item_selected) signal_theme_changed.emit(theme_option.item_selected)
emu_select_option.item_selected.connect(_emu_select)
emu_pick_option.item_selected.connect(_emu_pick)
log_option.item_selected.connect(_load_log) log_option.item_selected.connect(_load_log)
func _emu_select(index: int) -> void:
emu_pick_option.visible = true
#change to radio button select
_play_main_animations()
if (index == 3): # make function and pass start and end
emu_pick_option.set_item_disabled(1, true)
emu_pick_option.set_item_disabled(2, true)
func _emu_pick(index: int) -> void:
emu_pick_option.visible = true
_play_main_animations()
func _load_log(index: int) -> void: func _load_log(index: int) -> void:
var log_content:String var log_content:String
match index: match index:

View file

@ -165,7 +165,7 @@ grow_vertical = 2
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
tab_alignment = 1 tab_alignment = 1
current_tab = 2 current_tab = 5
script = ExtResource("3_id6l4") script = ExtResource("3_id6l4")
[node name="TK_GRAPHICS" type="MarginContainer" parent="Background/MarginContainer/TabContainer"] [node name="TK_GRAPHICS" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
@ -324,6 +324,7 @@ button_pressed = true
text = "TK_HOTKEYSOUND" text = "TK_HOTKEYSOUND"
[node name="TK_SYSTEM" type="MarginContainer" parent="Background/MarginContainer/TabContainer"] [node name="TK_SYSTEM" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
visible = false
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_right = 240 theme_override_constants/margin_right = 240
@ -576,41 +577,6 @@ text = "TK_GENTOOLS"
[node name="tools_separator" type="HSeparator" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] [node name="tools_separator" type="HSeparator" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"]
layout_mode = 2 layout_mode = 2
[node name="emu_select_option" type="OptionButton" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
item_count = 4
selected = 0
popup/item_0/text = "TK_SELECT_EMU"
popup/item_0/id = 0
popup/item_0/disabled = true
popup/item_0/separator = true
popup/item_1/text = "RetroArch"
popup/item_1/id = 1
popup/item_2/text = "MAME"
popup/item_2/id = 2
popup/item_3/text = ""
popup/item_3/id = 3
[node name="emu_pick_option" type="OptionButton" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 4
item_count = 4
selected = 0
popup/item_0/text = "TK_ACTION_EMU"
popup/item_0/id = 0
popup/item_0/disabled = true
popup/item_0/separator = true
popup/item_1/text = "HELP"
popup/item_1/id = 1
popup/item_2/text = "LAUNCH"
popup/item_2/id = 2
popup/item_3/text = "RESET"
popup/item_3/id = 3
[node name="emu_open_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"] [node name="emu_open_button" type="Button" parent="Background/MarginContainer/TabContainer/TK_TOOLS/ScrollContainer/VBoxContainer/tools_container"]
layout_mode = 2 layout_mode = 2
text = "TK_EMUOPEN" text = "TK_EMUOPEN"
@ -813,7 +779,6 @@ disabled = true
text = "TK_FTPBTN" text = "TK_FTPBTN"
[node name="TK_TROUBLESHOOT" type="MarginContainer" parent="Background/MarginContainer/TabContainer"] [node name="TK_TROUBLESHOOT" type="MarginContainer" parent="Background/MarginContainer/TabContainer"]
visible = false
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_right = 240 theme_override_constants/margin_right = 240

File diff suppressed because one or more lines are too long

View file

@ -2,7 +2,7 @@ extends Node
class_name DataHandler class_name DataHandler
var data_file_path = "res://data_list.json" var data_file_path = "../../config/retrodeck/reference_lists/features.json"
var app_data: AppData var app_data: AppData
func _ready(): func _ready():
@ -30,24 +30,18 @@ func load_base_data() -> AppData:
about_links[key] = link about_links[key] = link
var emulators = {} var emulators = {}
for key in data_dict["emulators"].keys(): for key in data_dict["emulator"].keys():
var emulator_data = data_dict["emulators"][key] var emulator_data = data_dict["emulator"][key]
var emulator = Emulator.new() var emulator = Emulator.new()
emulator.name = emulator_data["name"] emulator.name = emulator_data["name"]
emulator.description = emulator_data["description"] emulator.description = emulator_data["description"]
print (emulator.name)
#emulator.options = [] if emulator_data.has("properties"):
#emulator.properties = []
for option_data in emulator_data["options"]:
var option = EmulatorOption.new()
option.resettable = option_data["resettable"]
emulator.options.append(option)
for property_data in emulator_data["properties"]: for property_data in emulator_data["properties"]:
var property = EmulatorProperty.new() var property = EmulatorProperty.new()
property.standalone = property_data.get("standalone", false) property.standalone = property_data.get("standalone", false)
property.abxy_button_status = property_data.get("abxy_button", {}).get("status", false) # property.abxy_button_status = property_data.get("abxy_button", {}).get("status", false)
emulator.properties.append(property) emulator.properties.append(property)
emulators[key] = emulator emulators[key] = emulator
@ -97,12 +91,6 @@ func save_base_data(app_data: AppData):
var emulators = {} var emulators = {}
for key in app_data.emulators.keys(): for key in app_data.emulators.keys():
var emulator = app_data.emulators[key] var emulator = app_data.emulators[key]
var options = []
for option in emulator.options:
options.append({
"resettable": option.resettable
})
var properties = [] var properties = []
for property in emulator.properties: for property in emulator.properties:
properties.append({ properties.append({
@ -113,7 +101,6 @@ func save_base_data(app_data: AppData):
emulators[key] = { emulators[key] = {
"name": emulator.name, "name": emulator.name,
"description": emulator.description, "description": emulator.description,
"options": options,
"properties": properties "properties": properties
} }
@ -155,20 +142,13 @@ func modify_link(key: String, new_name: String, new_url: String, new_description
print("Link not found") print("Link not found")
# Function to modify an existing emulator # Function to modify an existing emulator
func modify_emulator(key: String, new_name: String, new_description: String, new_options: Array, new_properties: Array): func modify_emulator(key: String, new_name: String, new_description: String, new_properties: Array):
var app_data = load_base_data() var app_data = load_base_data()
if app_data and app_data.emulators.has(key): if app_data and app_data.emulators.has(key):
var emulator = app_data.emulators[key] var emulator = app_data.emulators[key]
emulator.name = new_name emulator.name = new_name
emulator.description = new_description emulator.description = new_description
# Update options
emulator.options.clear()
for option in new_options:
var new_option = EmulatorOption.new()
new_option.resettable = option.resettable
emulator.options.append(new_option)
# Update properties # Update properties
emulator.properties.clear() emulator.properties.clear()
for property in new_properties: for property in new_properties:
@ -184,7 +164,7 @@ func modify_emulator(key: String, new_name: String, new_description: String, new
print("Emulator not found") print("Emulator not found")
func add_emaultor() -> void: func add_emulator() -> void:
var link = Link.new() var link = Link.new()
link.name = "Example Site" link.name = "Example Site"
link.url = "https://example.com" link.url = "https://example.com"
@ -194,9 +174,6 @@ func add_emaultor() -> void:
var emulator = Emulator.new() var emulator = Emulator.new()
emulator.name = "Example Emulator" emulator.name = "Example Emulator"
emulator.description = "An example emulator." emulator.description = "An example emulator."
var option = EmulatorOption.new()
option.resettable = true
emulator.options.append(option)
var property = EmulatorProperty.new() var property = EmulatorProperty.new()
property.standalone = true property.standalone = true
property.abxy_button_status = false property.abxy_button_status = false
@ -207,10 +184,6 @@ func add_emaultor() -> void:
func modify_emulator_test() -> void: func modify_emulator_test() -> void:
data_handler.modify_link("example_site", "Updated Site", "https://updated-example.com", "Updated description.") data_handler.modify_link("example_site", "Updated Site", "https://updated-example.com", "Updated description.")
var new_options = []
var new_option = EmulatorOption.new()
new_option.resettable = false
new_options.append(new_option)
var new_properties = [] var new_properties = []
var new_property = EmulatorProperty.new() var new_property = EmulatorProperty.new()
@ -218,7 +191,7 @@ func modify_emulator_test() -> void:
new_property.abxy_button_status = true new_property.abxy_button_status = true
new_properties.append(new_property) new_properties.append(new_property)
data_handler.modify_emulator("example_emulator", "Updated Emulator", "Updated description", new_options, new_properties) data_handler.modify_emulator("example_emulator", "Updated Emulator", "Updated description", new_properties)
func parse_config_to_json(file_path: String) -> Dictionary: func parse_config_to_json(file_path: String) -> Dictionary:

View file

@ -3,5 +3,4 @@ extends Resource
class_name Emulator class_name Emulator
@export var name: String @export var name: String
@export var description: String @export var description: String
@export var options: Array[EmulatorOption]
@export var properties: Array[EmulatorProperty] @export var properties: Array[EmulatorProperty]

View file

@ -1,4 +0,0 @@
extends Resource
class_name EmulatorOption
@export var resettable: bool

View file

@ -21,6 +21,9 @@ func _ready():
for id in app_data.about_links: for id in app_data.about_links:
var web_data = app_data.about_links[id] var web_data = app_data.about_links[id]
var linkT =Link.new()
linkT = app_data.about_links[id]
print ("FREEED" + linkT.name)
match id: match id:
"rd_web": "rd_web":
%website_button.tooltip_text = web_data.description %website_button.tooltip_text = web_data.description