diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp
index 609871926d..6f9ef165a7 100644
--- a/rpcs3/rpcs3qt/game_list_frame.cpp
+++ b/rpcs3/rpcs3qt/game_list_frame.cpp
@@ -1077,7 +1077,7 @@ void game_list_frame::CreateShortcuts(const game_info& gameinfo, const std::set<
#endif
}
- if (!gameid_token_value.empty() && gui::utils::create_shortcut(gameinfo->info.name, target_cli_args, gameinfo->info.name, gameinfo->info.icon_path, target_icon_dir, location))
+ if (!gameid_token_value.empty() && gui::utils::create_shortcut(gameinfo->info.name, gameinfo->info.serial, target_cli_args, gameinfo->info.name, gameinfo->info.icon_path, target_icon_dir, location))
{
game_list_log.success("Created %s shortcut for %s", destination, qstr(gameinfo->info.name).simplified());
}
diff --git a/rpcs3/rpcs3qt/shortcut_utils.cpp b/rpcs3/rpcs3qt/shortcut_utils.cpp
index 40b79ae88a..c575b8117d 100644
--- a/rpcs3/rpcs3qt/shortcut_utils.cpp
+++ b/rpcs3/rpcs3qt/shortcut_utils.cpp
@@ -66,6 +66,7 @@ namespace gui::utils
}
bool create_shortcut(const std::string& name,
+ [[maybe_unused]] const std::string& serial,
[[maybe_unused]] const std::string& target_cli_args,
[[maybe_unused]] const std::string& description,
[[maybe_unused]] const std::string& src_icon_path,
@@ -280,6 +281,16 @@ namespace gui::utils
"\tAPPL\n"
"\tCFBundleSignature\n"
"\t\?\?\?\?\n"
+#if defined(ARCH_ARM64)
+ "\tCFBundleIdentifier\n"
+ "\tnet.rpcs3" + (serial.empty() ? "" : ("." + serial)) + "\n"
+ "\tLSArchitecturePriority\n"
+ "\t\n"
+ "\t\tarm64\n"
+ "\t\n"
+ "\tLSRequiresNativeExecution\n"
+ "\t\n"
+#endif
"\n"
"\n";
diff --git a/rpcs3/rpcs3qt/shortcut_utils.h b/rpcs3/rpcs3qt/shortcut_utils.h
index eff4cdb32a..1b47182cbb 100644
--- a/rpcs3/rpcs3qt/shortcut_utils.h
+++ b/rpcs3/rpcs3qt/shortcut_utils.h
@@ -12,6 +12,7 @@ namespace gui::utils
};
bool create_shortcut(const std::string& name,
+ const std::string& serial,
const std::string& target_cli_args,
const std::string& description,
const std::string& src_icon_path,
diff --git a/rpcs3/rpcs3qt/welcome_dialog.cpp b/rpcs3/rpcs3qt/welcome_dialog.cpp
index 28b7ca8bb4..04a3813632 100644
--- a/rpcs3/rpcs3qt/welcome_dialog.cpp
+++ b/rpcs3/rpcs3qt/welcome_dialog.cpp
@@ -79,12 +79,12 @@ welcome_dialog::welcome_dialog(std::shared_ptr gui_settings, bool
{
if (ui->create_desktop_shortcut->isChecked())
{
- gui::utils::create_shortcut("RPCS3", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::desktop);
+ gui::utils::create_shortcut("RPCS3", "", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::desktop);
}
if (ui->create_applications_menu_shortcut->isChecked())
{
- gui::utils::create_shortcut("RPCS3", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::applications);
+ gui::utils::create_shortcut("RPCS3", "", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::applications);
}
m_user_wants_dark_theme = ui->use_dark_theme->isChecked();