mirror of
https://github.com/libretro/RetroArch.git
synced 2024-05-20 05:20:19 -04:00
Compare commits
3 commits
c4980aee55
...
56741848a5
Author | SHA1 | Date | |
---|---|---|---|
56741848a5 | |||
a2a7c666fb | |||
59413dd5e6 |
|
@ -1552,6 +1552,15 @@ static bool core_info_get_file_id(const char *core_filename,
|
|||
/* > Remove extension */
|
||||
strlcpy(core_file_id, core_filename, len);
|
||||
path_remove_extension(core_file_id);
|
||||
#if IOS
|
||||
/* iOS framework names, to quote Apple:
|
||||
* "must contain only alphanumerics, dots, hyphens and must not end with a dot."
|
||||
*
|
||||
* Since core names include underscore, which is not allowed, but not dot,
|
||||
* which is, we change underscore to dot. Here, we need to change it back.
|
||||
*/
|
||||
string_replace_all_chars(core_file_id, '.', '_');
|
||||
#endif
|
||||
|
||||
/* > Remove suffix */
|
||||
last_underscore = (char*)strrchr(core_file_id, '_');
|
||||
|
|
|
@ -505,7 +505,7 @@ static void NETRETROPAD_CORE_PREFIX(update_keyboard_cb)(bool down, unsigned keyc
|
|||
(keycode >= 123 && keycode < 127) ||
|
||||
(keycode == 272) ||
|
||||
(keycode >= 294 && keycode < 297) ||
|
||||
(keycode >= 309 && keycode < 323))
|
||||
(keycode >= 309 && keycode < RETROK_LAST))
|
||||
{
|
||||
snprintf(buf, sizeof(buf), "Key pressed: %d",keycode);
|
||||
message.msg = buf;
|
||||
|
|
|
@ -440,10 +440,10 @@ static uint8_t keyboard_body[] =
|
|||
/* 134 */ 2, 0, 255,
|
||||
/* 135 */ 2, 0, 255,
|
||||
/* 136 */ 2, 0, 255,
|
||||
/* 137 */ 1, 255,
|
||||
/* 138 */ 1, 255,
|
||||
/* 139 */ 1, 255,
|
||||
/* 140 */ 1, 255,
|
||||
/* 137 */ 2, 0, 255,
|
||||
/* 138 */ 2, 0, 255,
|
||||
/* 139 */ 2, 0, 255,
|
||||
/* 140 */ 2, 0, 255,
|
||||
/* 141 */ 1, 255,
|
||||
};
|
||||
|
||||
|
@ -587,8 +587,8 @@ static uint16_t keyboard_buttons[] =
|
|||
/* 135 */ 41, 1, 126, 10, 2, 272, 10, 2, 294, 10, 2, 295, 10, 2, 296, 10, 2, 309, 10, 2, 310, 10, 2, 311, 10, 2, 312, 10, 2, 313, 10, 2, 315, 10, 2, 316, 10, 2, 317, 10, 2, 318, 10, 2, 319, 10, 2, 320, 10, 2, 321, 10, 2, 322, 10, 2, 314, 10, 2, 0, 10, 16,
|
||||
/* 136 */ 1, 255,
|
||||
/* 137 */ 1, 255,
|
||||
/* 138 */ 1, 255,
|
||||
/* 139 */ 1, 255,
|
||||
/* 138 */ 37, 1, 324, 10, 2, 325, 10, 2, 326, 10, 2, 327, 10, 2, 328, 10, 2, 329, 10, 2, 330, 10, 2, 331, 10, 2, 332, 10, 2, 333, 10, 2, 334, 10, 2, 335, 10, 2, 336, 10, 2, 337, 10, 2, 338, 10, 2, 339, 10, 2, 340, 10, 2, 341, 10, 40,
|
||||
/* 139 */ 37, 1, 324, 10, 2, 325, 10, 2, 326, 10, 2, 327, 10, 2, 328, 10, 2, 329, 10, 2, 330, 10, 2, 331, 10, 2, 332, 10, 2, 333, 10, 2, 334, 10, 2, 335, 10, 2, 336, 10, 2, 337, 10, 2, 338, 10, 2, 339, 10, 2, 340, 10, 2, 341, 10, 40,
|
||||
/* 140 */ 1, 255,
|
||||
/* 141 */ 1, 255,
|
||||
};
|
||||
|
|
|
@ -167,6 +167,26 @@ enum xfvk_key
|
|||
XFVK_FK23 = 201,
|
||||
XFVK_FK24 = 202,
|
||||
|
||||
/* Multimedia keys */
|
||||
XFVK_MUTE = 121,
|
||||
XFVK_VOUP = 122,
|
||||
XFVK_VODN = 123,
|
||||
XFVK_BSTP = 136,
|
||||
XFVK_APP1 = 156,
|
||||
XFVK_APP2 = 157,
|
||||
XFVK_MAIL = 163,
|
||||
XFVK_FAVO = 164,
|
||||
XFVK_BBAC = 166,
|
||||
XFVK_BFWD = 167,
|
||||
XFVK_CDNX = 171,
|
||||
XFVK_PLAY = 172,
|
||||
XFVK_CDPR = 173,
|
||||
XFVK_CDST = 174,
|
||||
XVFK_HOMP = 180,
|
||||
XFVK_REFR = 181,
|
||||
XFVK_BSEA = 225,
|
||||
XFVK_MDIA = 234,
|
||||
|
||||
XFVK_LAST,
|
||||
XFVK_DUMMY = 255
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#define MAX_INPUT_DEVICES 16
|
||||
|
||||
#define RARCH_MAX_KEYS 137
|
||||
#define RARCH_MAX_KEYS 155
|
||||
|
||||
#define RARCH_FIRST_CUSTOM_BIND 16
|
||||
#define RARCH_FIRST_LIGHTGUN_BIND RARCH_ANALOG_BIND_LIST_END
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
#ifdef __APPLE__
|
||||
#include "drivers_keyboard/keyboard_event_apple.h"
|
||||
#endif
|
||||
|
||||
/* TODO: ensure that for UI display, menu_driver.c key_descriptors are shown instead of this */
|
||||
const struct input_key_map input_config_key_map[] = {
|
||||
{ "left", RETROK_LEFT },
|
||||
{ "right", RETROK_RIGHT },
|
||||
|
@ -203,6 +203,25 @@ const struct input_key_map input_config_key_map[] = {
|
|||
{ "clear", RETROK_CLEAR },
|
||||
{ "oem102", RETROK_OEM_102 },
|
||||
|
||||
{ "back", RETROK_BROWSER_BACK },
|
||||
{ "forward", RETROK_BROWSER_FORWARD },
|
||||
{ "refresh", RETROK_BROWSER_REFRESH },
|
||||
{ "bstop", RETROK_BROWSER_STOP },
|
||||
{ "search", RETROK_BROWSER_SEARCH },
|
||||
{ "favorites", RETROK_BROWSER_FAVORITES },
|
||||
{ "homepage", RETROK_BROWSER_HOME },
|
||||
{ "mute", RETROK_VOLUME_MUTE },
|
||||
{ "volumedown", RETROK_VOLUME_DOWN },
|
||||
{ "volumeup", RETROK_VOLUME_UP },
|
||||
{ "next", RETROK_MEDIA_NEXT },
|
||||
{ "prev", RETROK_MEDIA_PREV },
|
||||
{ "stop", RETROK_MEDIA_STOP },
|
||||
{ "play", RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ "email", RETROK_LAUNCH_MAIL },
|
||||
{ "media", RETROK_LAUNCH_MEDIA },
|
||||
{ "app1", RETROK_LAUNCH_APP1 },
|
||||
{ "app2", RETROK_LAUNCH_APP2 },
|
||||
|
||||
{ "nul", RETROK_UNKNOWN },
|
||||
{ NULL, RETROK_UNKNOWN },
|
||||
};
|
||||
|
@ -778,6 +797,27 @@ const struct rarch_key_map rarch_key_map_sdl[] = {
|
|||
#endif
|
||||
{ SDLK_UNDO, RETROK_UNDO },
|
||||
|
||||
#ifdef HAVE_SDL2
|
||||
{ SDLK_AUDIONEXT, RETROK_MEDIA_NEXT },
|
||||
{ SDLK_AUDIOPREV, RETROK_MEDIA_PREV },
|
||||
{ SDLK_AUDIOSTOP, RETROK_MEDIA_STOP },
|
||||
{ SDLK_AUDIOPLAY, RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ SDLK_AUDIOMUTE, RETROK_VOLUME_MUTE },
|
||||
{ SDLK_MEDIASELECT, RETROK_LAUNCH_MEDIA },
|
||||
{ SDLK_MAIL, RETROK_LAUNCH_MAIL },
|
||||
{ SDLK_CALCULATOR, RETROK_LAUNCH_APP2 },
|
||||
{ SDLK_COMPUTER, RETROK_LAUNCH_APP1 },
|
||||
{ SDLK_AC_SEARCH, RETROK_BROWSER_SEARCH },
|
||||
{ SDLK_AC_HOME, RETROK_BROWSER_HOME },
|
||||
{ SDLK_AC_BACK, RETROK_BROWSER_BACK },
|
||||
{ SDLK_AC_FORWARD, RETROK_BROWSER_FORWARD },
|
||||
{ SDLK_AC_STOP, RETROK_BROWSER_STOP },
|
||||
{ SDLK_AC_REFRESH, RETROK_BROWSER_REFRESH },
|
||||
{ SDLK_AC_BOOKMARKS, RETROK_BROWSER_FAVORITES },
|
||||
{ SDLK_VOLUMEUP, RETROK_VOLUME_UP },
|
||||
{ SDLK_VOLUMEDOWN, RETROK_VOLUME_DOWN },
|
||||
#endif
|
||||
|
||||
{ 0, RETROK_UNKNOWN },
|
||||
};
|
||||
#endif
|
||||
|
@ -891,6 +931,30 @@ const struct rarch_key_map rarch_key_map_dinput[] = {
|
|||
{ DIK_CAPSLOCK, RETROK_CAPSLOCK },
|
||||
{ DIK_NUMLOCK, RETROK_NUMLOCK },
|
||||
{ DIK_OEM_102, RETROK_OEM_102 },
|
||||
/* dinput.h included to MXE seems to carry only the alternate name circumflex */
|
||||
#ifdef DIK_PREVTRACK
|
||||
{ DIK_PREVTRACK, RETROK_MEDIA_PREV },
|
||||
#else
|
||||
{ DIK_CIRCUMFLEX, RETROK_MEDIA_PREV },
|
||||
#endif
|
||||
{ DIK_NEXTTRACK, RETROK_MEDIA_NEXT },
|
||||
{ DIK_MUTE, RETROK_VOLUME_MUTE },
|
||||
{ DIK_CALCULATOR, RETROK_LAUNCH_APP2 },
|
||||
{ DIK_PLAYPAUSE, RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ DIK_MEDIASTOP, RETROK_MEDIA_STOP },
|
||||
{ DIK_VOLUMEDOWN, RETROK_VOLUME_DOWN },
|
||||
{ DIK_VOLUMEUP, RETROK_VOLUME_UP },
|
||||
{ DIK_WEBHOME, RETROK_BROWSER_HOME },
|
||||
{ DIK_WEBSEARCH, RETROK_BROWSER_SEARCH },
|
||||
{ DIK_WEBFAVORITES, RETROK_BROWSER_FAVORITES },
|
||||
{ DIK_WEBREFRESH, RETROK_BROWSER_REFRESH },
|
||||
{ DIK_WEBSTOP, RETROK_BROWSER_STOP },
|
||||
{ DIK_WEBFORWARD, RETROK_BROWSER_FORWARD },
|
||||
{ DIK_WEBBACK, RETROK_BROWSER_BACK },
|
||||
{ DIK_MYCOMPUTER, RETROK_LAUNCH_APP1 },
|
||||
{ DIK_MAIL, RETROK_LAUNCH_MAIL },
|
||||
{ DIK_MEDIASELECT, RETROK_LAUNCH_MEDIA },
|
||||
|
||||
{ 0, RETROK_UNKNOWN },
|
||||
};
|
||||
#endif
|
||||
|
@ -1125,6 +1189,25 @@ const struct rarch_key_map rarch_key_map_x11[] = {
|
|||
{ XFVK_KP0, RETROK_KP0 },
|
||||
{ XFVK_KPDL, RETROK_KP_PERIOD },
|
||||
{ XFVK_KPEQ, RETROK_KP_EQUALS },
|
||||
|
||||
{ XFVK_MUTE, RETROK_VOLUME_MUTE },
|
||||
{ XFVK_VOUP, RETROK_VOLUME_UP },
|
||||
{ XFVK_VODN, RETROK_VOLUME_DOWN },
|
||||
{ XFVK_APP1, RETROK_LAUNCH_APP1 },
|
||||
{ XFVK_APP2, RETROK_LAUNCH_APP2 },
|
||||
{ XFVK_MAIL, RETROK_LAUNCH_MAIL },
|
||||
{ XFVK_FAVO, RETROK_BROWSER_FAVORITES },
|
||||
{ XFVK_BBAC, RETROK_BROWSER_BACK },
|
||||
{ XFVK_BFWD, RETROK_BROWSER_FORWARD },
|
||||
{ XFVK_CDNX, RETROK_MEDIA_NEXT },
|
||||
{ XFVK_PLAY, RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ XFVK_CDPR, RETROK_MEDIA_PREV },
|
||||
{ XFVK_CDST, RETROK_MEDIA_STOP },
|
||||
{ XVFK_HOMP, RETROK_BROWSER_HOME },
|
||||
{ XFVK_REFR, RETROK_BROWSER_REFRESH },
|
||||
{ XFVK_BSTP, RETROK_BROWSER_STOP },
|
||||
{ XFVK_BSEA, RETROK_BROWSER_SEARCH },
|
||||
{ XFVK_MDIA, RETROK_LAUNCH_MEDIA },
|
||||
|
||||
{ 0, RETROK_UNKNOWN },
|
||||
};
|
||||
|
@ -1279,6 +1362,28 @@ const struct rarch_key_map rarch_key_map_linux[] = {
|
|||
#endif
|
||||
{ KEY_UNDO, RETROK_UNDO },
|
||||
{ KEY_102ND, RETROK_OEM_102 },
|
||||
|
||||
#ifndef ANDROID
|
||||
{ KEY_MUTE, RETROK_VOLUME_MUTE },
|
||||
{ KEY_VOLUMEDOWN, RETROK_VOLUME_DOWN },
|
||||
{ KEY_VOLUMEUP, RETROK_VOLUME_UP },
|
||||
{ KEY_STOP, RETROK_BROWSER_STOP },
|
||||
{ KEY_PROG1, RETROK_LAUNCH_APP1 },
|
||||
{ KEY_PROG2, RETROK_LAUNCH_APP2 },
|
||||
{ KEY_MAIL, RETROK_LAUNCH_MAIL },
|
||||
{ KEY_BOOKMARKS, RETROK_BROWSER_FAVORITES },
|
||||
{ KEY_BACK, RETROK_BROWSER_BACK },
|
||||
{ KEY_FORWARD, RETROK_BROWSER_FORWARD },
|
||||
{ KEY_NEXTSONG, RETROK_MEDIA_NEXT },
|
||||
{ KEY_PLAYPAUSE, RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ KEY_PREVIOUSSONG, RETROK_MEDIA_PREV },
|
||||
{ KEY_STOPCD, RETROK_MEDIA_STOP },
|
||||
{ KEY_HOMEPAGE, RETROK_BROWSER_HOME },
|
||||
{ KEY_REFRESH, RETROK_BROWSER_REFRESH },
|
||||
{ KEY_SEARCH, RETROK_BROWSER_SEARCH },
|
||||
{ KEY_MEDIA, RETROK_LAUNCH_MEDIA },
|
||||
#endif
|
||||
|
||||
{ 0, RETROK_UNKNOWN },
|
||||
};
|
||||
#endif
|
||||
|
@ -1343,7 +1448,7 @@ const struct rarch_key_map rarch_key_map_android[] = {
|
|||
{ AKEYCODE_X, RETROK_x },
|
||||
{ AKEYCODE_Y, RETROK_y },
|
||||
{ AKEYCODE_Z, RETROK_z },
|
||||
{ AKEYCODE_DEL, RETROK_DELETE },
|
||||
{ AKEYCODE_FORWARD_DEL, RETROK_DELETE },
|
||||
{ AKEYCODE_NUMPAD_0, RETROK_KP0 },
|
||||
{ AKEYCODE_NUMPAD_1, RETROK_KP1 },
|
||||
{ AKEYCODE_NUMPAD_2, RETROK_KP2 },
|
||||
|
@ -1952,6 +2057,24 @@ const struct rarch_key_map rarch_key_map_winraw[] = {
|
|||
{ SC_SLASH, RETROK_SLASH },
|
||||
{ SC_APOSTROPHE, RETROK_QUOTE },
|
||||
{ SC_ANGLEBRACKET, RETROK_OEM_102 },
|
||||
{ SC_BROWSER_SEARCH, RETROK_BROWSER_SEARCH },
|
||||
{ SC_BROWSER_FAVORITES, RETROK_BROWSER_FAVORITES },
|
||||
{ SC_BROWSER_REFRESH, RETROK_BROWSER_REFRESH },
|
||||
{ SC_BROWSER_STOP, RETROK_BROWSER_STOP },
|
||||
{ SC_BROWSER_FORWARD, RETROK_BROWSER_FORWARD },
|
||||
{ SC_BROWSER_BACK, RETROK_BROWSER_BACK },
|
||||
{ SC_LAUNCH_EMAIL, RETROK_LAUNCH_MAIL },
|
||||
{ SC_LAUNCH_MEDIA, RETROK_LAUNCH_MEDIA },
|
||||
{ SC_MEDIA_PREV, RETROK_MEDIA_PREV },
|
||||
{ SC_MEDIA_NEXT, RETROK_MEDIA_NEXT },
|
||||
{ SC_VOLUME_MUTE, RETROK_VOLUME_MUTE },
|
||||
{ SC_LAUNCH_APP1, RETROK_LAUNCH_APP1 },
|
||||
{ SC_LAUNCH_APP2, RETROK_LAUNCH_APP2 },
|
||||
{ SC_MEDIA_PLAY, RETROK_MEDIA_PLAY_PAUSE },
|
||||
{ SC_MEDIA_STOP, RETROK_MEDIA_STOP },
|
||||
{ SC_VOLUME_DOWN, RETROK_VOLUME_DOWN },
|
||||
{ SC_VOLUME_UP, RETROK_VOLUME_UP },
|
||||
{ SC_BROWSER_HOME, RETROK_BROWSER_HOME },
|
||||
{ 0, RETROK_UNKNOWN }
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -664,6 +664,25 @@ enum retro_key
|
|||
RETROK_UNDO = 322,
|
||||
RETROK_OEM_102 = 323,
|
||||
|
||||
RETROK_BROWSER_BACK = 324,
|
||||
RETROK_BROWSER_FORWARD = 325,
|
||||
RETROK_BROWSER_REFRESH = 326,
|
||||
RETROK_BROWSER_STOP = 327,
|
||||
RETROK_BROWSER_SEARCH = 328,
|
||||
RETROK_BROWSER_FAVORITES = 329,
|
||||
RETROK_BROWSER_HOME = 330,
|
||||
RETROK_VOLUME_MUTE = 331,
|
||||
RETROK_VOLUME_DOWN = 332,
|
||||
RETROK_VOLUME_UP = 333,
|
||||
RETROK_MEDIA_NEXT = 334,
|
||||
RETROK_MEDIA_PREV = 335,
|
||||
RETROK_MEDIA_STOP = 336,
|
||||
RETROK_MEDIA_PLAY_PAUSE = 337,
|
||||
RETROK_LAUNCH_MAIL = 338,
|
||||
RETROK_LAUNCH_MEDIA = 339,
|
||||
RETROK_LAUNCH_APP1 = 340,
|
||||
RETROK_LAUNCH_APP2 = 341,
|
||||
|
||||
RETROK_LAST,
|
||||
|
||||
RETROK_DUMMY = INT_MAX /* Ensure sizeof(enum) == sizeof(int) */
|
||||
|
|
|
@ -236,7 +236,27 @@ struct key_desc key_descriptors[RARCH_MAX_KEYS] =
|
|||
{RETROK_POWER, "Power"},
|
||||
{RETROK_EURO, {-30, -126, -84, 0}}, /* "<22>" */
|
||||
{RETROK_UNDO, "Undo"},
|
||||
{RETROK_OEM_102, "OEM-102"}
|
||||
{RETROK_OEM_102, "OEM-102"},
|
||||
|
||||
{RETROK_BROWSER_BACK, "Back"},
|
||||
{RETROK_BROWSER_FORWARD, "Forward"},
|
||||
{RETROK_BROWSER_REFRESH, "Refresh"},
|
||||
{RETROK_BROWSER_STOP, "Stop"},
|
||||
{RETROK_BROWSER_SEARCH, "Search"},
|
||||
{RETROK_BROWSER_FAVORITES, "Favorites"},
|
||||
{RETROK_BROWSER_HOME, "Home Page"},
|
||||
{RETROK_VOLUME_MUTE, "Mute"},
|
||||
{RETROK_VOLUME_DOWN, "Volume Up"},
|
||||
{RETROK_VOLUME_UP, "Volume Down"},
|
||||
{RETROK_MEDIA_NEXT, "Next Track"},
|
||||
{RETROK_MEDIA_PREV, "Previous Track"},
|
||||
{RETROK_MEDIA_STOP, "Media Stop"},
|
||||
{RETROK_MEDIA_PLAY_PAUSE, "Media Play"},
|
||||
{RETROK_LAUNCH_MAIL, "Launch Email"},
|
||||
{RETROK_LAUNCH_MEDIA, "Launch Media"},
|
||||
{RETROK_LAUNCH_APP1, "Launch App1"},
|
||||
{RETROK_LAUNCH_APP2, "Launch App2"}
|
||||
|
||||
};
|
||||
|
||||
static void *null_menu_init(void **userdata, bool video_is_threaded)
|
||||
|
|
|
@ -9,16 +9,18 @@
|
|||
<key>INIntentDefinitionNamespace</key>
|
||||
<string>88xZPY</string>
|
||||
<key>INIntentDefinitionSystemVersion</key>
|
||||
<string>20A294</string>
|
||||
<string>23E224</string>
|
||||
<key>INIntentDefinitionToolsBuildVersion</key>
|
||||
<string>12A6144</string>
|
||||
<string>15E204a</string>
|
||||
<key>INIntentDefinitionToolsVersion</key>
|
||||
<string>12.0</string>
|
||||
<string>15.3</string>
|
||||
<key>INIntents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>INIntentCategory</key>
|
||||
<string>information</string>
|
||||
<key>INIntentDescription</key>
|
||||
<string>RetroArch Launch Widget</string>
|
||||
<key>INIntentDescriptionID</key>
|
||||
<string>tVvJ9c</string>
|
||||
<key>INIntentEligibleForWidgets</key>
|
||||
|
|
|
@ -120,7 +120,6 @@
|
|||
92CC05B921FE3C1700FF79F0 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059B21FE3C1700FF79F0 /* GCDWebServerDataRequest.m */; };
|
||||
92CC05BA21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */; };
|
||||
92CC05BB21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */; };
|
||||
92CC05BC21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */; };
|
||||
92CC05BD21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */; };
|
||||
92CC05BE21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */; };
|
||||
92CC05BF21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */; };
|
||||
|
@ -1467,7 +1466,6 @@
|
|||
07F7FB022A2DA8B800037C04 /* filters in Resources */,
|
||||
9222F2092315DAD50097C0FD /* Launch Screen.storyboard in Resources */,
|
||||
9204BE231D319EF300BD49DB /* InfoPlist.strings in Resources */,
|
||||
92CC05BC21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */,
|
||||
9222F20B2315DD3D0097C0FD /* retroarch_logo.png in Resources */,
|
||||
929784502200EEE400989A60 /* iOS/Resources/Icons.xcassets in Resources */,
|
||||
9222F1FF2314BA7C0097C0FD /* assets.zip in Resources */,
|
||||
|
@ -1755,7 +1753,9 @@
|
|||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = RetroArchTopShelfExtension/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = RetroArchTopShelfExtension;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 RetroArch. All rights reserved.";
|
||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
@ -1822,7 +1822,9 @@
|
|||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = RetroArchTopShelfExtension/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = RetroArchTopShelfExtension;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 RetroArch. All rights reserved.";
|
||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
|
|
@ -2377,7 +2377,7 @@ input[type="button"].btn-block {
|
|||
font-family: 'Glyphicons Halflings';
|
||||
|
||||
src: url('../fonts/glyphicons-halflings-regular.eot');
|
||||
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
||||
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
|
||||
}
|
||||
.glyphicon {
|
||||
position: relative;
|
||||
|
|
Binary file not shown.
|
@ -15,6 +15,8 @@
|
|||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>ROM</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.libretro.rom</string>
|
||||
|
@ -23,6 +25,8 @@
|
|||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>All Files</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Alternate</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
|
@ -48,6 +52,25 @@
|
|||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>GCSupportedGameControllers</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>ExtendedGamepad</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>DirectionalGamepad</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>MicroGamepad</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GCSupportsControllerUserInteraction</key>
|
||||
<true/>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.games</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
@ -61,8 +84,10 @@
|
|||
</array>
|
||||
<key>NSLocalNetworkUsageDescription</key>
|
||||
<string>RetroArch uses the local network to find local Netplay participants.</string>
|
||||
<key>UIApplicationExitsOnSuspend</key>
|
||||
<false/>
|
||||
<key>NSUserActivityTypes</key>
|
||||
<array>
|
||||
<string>ConfigurationIntent</string>
|
||||
</array>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
|
@ -91,23 +116,6 @@
|
|||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>GCSupportedGameControllers</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>ExtendedGamepad</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>DirectionalGamepad</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>ProfileName</key>
|
||||
<string>MicroGamepad</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>GCSupportsControllerUserInteraction</key>
|
||||
<true/>
|
||||
<key>UTImportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<key>CFBundleExecutable</key>
|
||||
<string>%CORE%</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>%CORE%</string>
|
||||
<string>%BUNDLE%</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>%IDENTIFIER%</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
|
@ -13,7 +13,7 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>1.0.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>1.0</string>
|
||||
<string>14.2</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
|
|
|
@ -29,15 +29,14 @@ mkdir -p "$OUTDIR"
|
|||
for dylib in $(find "$BASE_DIR"/modules -maxdepth 1 -type f -regex '.*libretro.*\.dylib$') ; do
|
||||
intermediate=$(basename "$dylib")
|
||||
intermediate="${intermediate/%.dylib/}"
|
||||
identifier="${intermediate/%$SUFFIX/}"
|
||||
intermediate="${identifier/%_libretro/}"
|
||||
fwName="${intermediate}_libretro"
|
||||
intermediate="${intermediate/%$SUFFIX/}"
|
||||
fwName="${intermediate//_/.}"
|
||||
echo Making framework $fwName from $dylib
|
||||
|
||||
fwDir="${OUTDIR}/${fwName}.framework"
|
||||
mkdir -p "$fwDir"
|
||||
lipo -create "$dylib" -output "$fwDir/$fwName"
|
||||
sed -e "s,%CORE%,$fwName," -e "s,%IDENTIFIER%,$identifier," iOS/fw.tmpl > "$fwDir/Info.plist"
|
||||
sed -e "s,%CORE%,$fwName," -e "s,%BUNDLE%,$fwName," -e "s,%IDENTIFIER%,$fwName," iOS/fw.tmpl > "$fwDir/Info.plist"
|
||||
echo "signing $fwName"
|
||||
codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --timestamp=none --preserve-metadata=identifier,entitlements,flags --generate-entitlement-der "$fwDir"
|
||||
codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" "$fwDir"
|
||||
done
|
||||
|
|
|
@ -2,36 +2,53 @@
|
|||
|
||||
WD=$(realpath $(dirname $0))
|
||||
|
||||
include_autoconfig=""
|
||||
include_cheats=""
|
||||
include_databases=""
|
||||
include_overlays=""
|
||||
include_shaders=""
|
||||
include_xmb=""
|
||||
assets_zip="$WD/assets.zip"
|
||||
|
||||
args=`getopt achmos $*`
|
||||
args=`getopt acdhimosx $*`
|
||||
set -- $args
|
||||
while :; do
|
||||
case "$1" in
|
||||
-a)
|
||||
include_autoconfig=1
|
||||
include_cheats=1
|
||||
include_databases=1
|
||||
include_overlays=1
|
||||
include_shaders=1
|
||||
include_xmb=1
|
||||
shift
|
||||
;;
|
||||
-c)
|
||||
include_cheats=1
|
||||
shift
|
||||
;;
|
||||
-d)
|
||||
include_databases=1
|
||||
shift
|
||||
;;
|
||||
-h)
|
||||
echo "$(basename $0) -- Rebuild assets.zip"
|
||||
echo "Meant to be used when building RetroArch yourself. The buildbot does not use this."
|
||||
echo
|
||||
echo " -a Include all assets, cheats, databases, input autoconfig, overlays, and shaders"
|
||||
echo " -c Include cheats"
|
||||
echo " -d Include databases"
|
||||
echo " -i Include input autoconfig"
|
||||
echo " -o Include overlays"
|
||||
echo " -s Include shaders"
|
||||
echo " -a Include cheats, overlays, and shaders"
|
||||
echo " -m Build for macOS (places in OSX directory"
|
||||
echo " -x Include XMB assets"
|
||||
echo " -m Build for macOS (places in OSX directory)"
|
||||
exit 0
|
||||
;;
|
||||
-i)
|
||||
include_autoconfig=1
|
||||
shift
|
||||
;;
|
||||
-m)
|
||||
assets_zip="$WD/OSX/assets.zip"
|
||||
shift
|
||||
|
@ -44,6 +61,10 @@ while :; do
|
|||
include_shaders=1
|
||||
shift
|
||||
;;
|
||||
-x)
|
||||
include_xmb=1
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
|
@ -64,8 +85,12 @@ pushd "$WD" &>/dev/null
|
|||
|
||||
rm -rf .media
|
||||
fetch_zip retroarch-assets
|
||||
fetch_zip retroarch-joypad-autoconfig
|
||||
fetch_zip libretro-database
|
||||
if [ -n "$include_autoconfig" ] ; then
|
||||
fetch_zip retroarch-joypad-autoconfig
|
||||
fi
|
||||
if [ -n "$include_cheats" -o -n "$include_databases" ] ; then
|
||||
fetch_zip libretro-database
|
||||
fi
|
||||
fetch_zip libretro-super
|
||||
if [ -n "$include_overlays" ] ; then
|
||||
fetch_zip common-overlays
|
||||
|
@ -78,19 +103,28 @@ fi
|
|||
pushd .media &>/dev/null
|
||||
|
||||
echo "Packaging assets"
|
||||
mkdir assets ; mv retroarch-assets/{COPYING,glui,menu_widgets,ozone,pkg,rgui,sounds,xmb} assets ; rm -rf retroarch-assets
|
||||
mkdir assets ; mv retroarch-assets/{COPYING,glui,menu_widgets,ozone,pkg,rgui,sounds} assets
|
||||
if [ -n "$include_xmb" ] ; then
|
||||
mv retroarch-assets/xmb assets
|
||||
fi
|
||||
rm -rf retroarch-assets
|
||||
rm -rf assets/pkg/wiiu
|
||||
|
||||
echo "Packaging autoconfig"
|
||||
mv retroarch-joypad-autoconfig autoconfig
|
||||
rm -rf autoconfig/{android,dinput,linuxraw,parport,qnx,sdl2,udev,x,xinput}
|
||||
if [ -n "$include_autoconfig" ] ; then
|
||||
echo "Packaging autoconfig"
|
||||
mv retroarch-joypad-autoconfig autoconfig
|
||||
rm -rf autoconfig/{android,dinput,linuxraw,parport,qnx,sdl2,udev,x,xinput}
|
||||
fi
|
||||
|
||||
if [ -n "$include_cheats" ] ; then
|
||||
echo "Packaging cheats"
|
||||
mv libretro-database/cht cht
|
||||
fi
|
||||
echo "Packaging database"
|
||||
mkdir database ; mv libretro-database/{cursors,rdb} database ; rm -rf libretro-database
|
||||
if [ -n "$include_databases" ] ; then
|
||||
echo "Packaging database"
|
||||
mkdir database ; mv libretro-database/{cursors,rdb} database
|
||||
fi
|
||||
rm -rf libretro-database
|
||||
|
||||
echo "Packaging info"
|
||||
mv libretro-super/info info ; rmdir libretro-super
|
||||
|
@ -106,9 +140,9 @@ if [ -n "$include_shaders" ] ; then
|
|||
mkdir shaders ; mv glsl-shaders shaders/shaders_glsl ; mv slang-shaders shaders/shaders_slang
|
||||
fi
|
||||
|
||||
rm -f ../assets.zip
|
||||
rm -f $assets_zip
|
||||
echo "Zipping final assets bundle..."
|
||||
zip -qr ../assets.zip *
|
||||
zip -qr $assets_zip *
|
||||
|
||||
popd &>/dev/null
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "retroarch_logo_back-1.png",
|
||||
"idiom" : "tv"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 215 B |
|
@ -1,11 +1,12 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "retroarch_logo_front-1.png",
|
||||
"idiom" : "tv"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -1,11 +1,12 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "retroarch_logo_middle-1.png",
|
||||
"idiom" : "tv"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -2,17 +2,6 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>RetroArch URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>retroarch</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>ALTBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>ALTDeviceID</key>
|
||||
|
@ -21,6 +10,30 @@
|
|||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>RetroArch</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>ROM</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.libretro.rom</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>All Files</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Alternate</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
@ -33,16 +46,19 @@
|
|||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>RetroArch URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>retroarch</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.games</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>GCSupportedGameControllers</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -60,25 +76,15 @@
|
|||
</array>
|
||||
<key>GCSupportsControllerUserInteraction</key>
|
||||
<true/>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.games</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>ROM</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.libretro.rom</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>All Files</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>public.data</string>
|
||||
<string>public.content</string>
|
||||
</array>
|
||||
</dict>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>UTImportedTypeDeclarations</key>
|
||||
<array>
|
||||
|
|
|
@ -154,7 +154,7 @@ else
|
|||
race
|
||||
quicknes
|
||||
smsplus
|
||||
blastem
|
||||
#blastem
|
||||
vice_x128
|
||||
vice_x64
|
||||
vice_x64sc
|
||||
|
@ -202,7 +202,8 @@ else
|
|||
virtualxt
|
||||
geolith
|
||||
vircon32
|
||||
melondsds
|
||||
#melondsds
|
||||
2048
|
||||
)
|
||||
for dylib in "${exports[@]}" ; do
|
||||
find_dylib $dylib
|
||||
|
|
12
playlist.c
12
playlist.c
|
@ -1131,11 +1131,23 @@ void playlist_resolve_path(enum playlist_file_mode mode,
|
|||
string_starts_with(path, ":/modules/") &&
|
||||
string_ends_with(path, ".dylib"))
|
||||
{
|
||||
/* iOS cores used to be packaged as .dylib files in the modules
|
||||
* directory; App Store rules require turning them into Frameworks and
|
||||
* putting them in the Frameworks directory. Because some playlists
|
||||
* include the old core path, we'll translate it here.
|
||||
*/
|
||||
path[string_index_last_occurance(path, '.')] = '\0';
|
||||
if (string_ends_with(path, "_ios"))
|
||||
path[string_index_last_occurance(path, '_')] = '\0';
|
||||
strlcpy(tmp, ":/Frameworks/", STRLEN_CONST(":/Frameworks/") + 1);
|
||||
strlcpy(tmp + STRLEN_CONST(":/Frameworks/"), path + STRLEN_CONST(":/modules/"), sizeof(tmp) - STRLEN_CONST(":/Frameworks/"));
|
||||
/* iOS framework names, to quote Apple:
|
||||
* "must contain only alphanumerics, dots, hyphens and must not end with a dot."
|
||||
*
|
||||
* Since core names include underscore, which is not allowed, but not dot,
|
||||
* which is, we change underscore to dot.
|
||||
*/
|
||||
string_replace_all_chars(tmp, '_', '.');
|
||||
strlcat(tmp, ".framework", sizeof(tmp));
|
||||
fill_pathname_expand_special(path, tmp, len);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue