diff --git a/CHANGES.md b/CHANGES.md index 75428f428c..0de3882c87 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,99 +2,99 @@ - IOS: Fix GL regression - 32bit color format cores were no longer rendering - CHEEVOS: Add support for N64 cheevos and other small fixes. - CHEEVOS: Add 'Achievements -> Achievements Verbose Mode'. Ability to display cheevos related messages in OSD, useful for RetroAchievements users. -- AUDIO: Mute now no longer disables/enables audio but instead properly mutes the audio volume. - Mute is also independent from the audio mixer volume. - AUDIO: Audio mixer's volume can now be independently increased/decreased, and muted. -- SDL2: Fix 'SDL2 driver does not see the hat on wired Xbox 360 controller" -- SCANNING: Fix PS1 game scanning -- SCANNING: Move content list builder into scanner task with progress, fixes menu freeze with large playlists -- VITA: Add support for external USB if mounted -- VITA: Add cheevos support -- MENU: Add 'User Interface -> Views'. Ability to display/hide online updater and core updater -options. -- LINUX: Add a tinyalsa audio driver. Doesn't require asoundlib, should be self-contained and -lower-level. +- AUDIO: Mute now no longer disables/enables audio but instead properly mutes the audio volume. Mute is also independent from the audio mixer volume. +- INPUT: Add mouse index selection; ability now to select between different mice +- INPUT: Fix 'All Users Control Menu' setting +- LINUX: Add a tinyalsa audio driver. Doesn't require asoundlib, should be self-contained and lower-level. +- LOBBIES: Announce the RetroArch version too - LOCALIZATION: Add Traditional Chinese translation - LOCALIZATION: Update French translation - LOCALIZATION: Update Italian translation - LOCALIZATION: Update Japanese translation - LOCALIZATION: Update Russian translation +- MENU: Add 'User Interface -> Views'. Ability to display/hide online updater and core updater options. + +- NETPLAY: Disconnecting one client shouldn't cause everyone to disconnect anymore +- SCANNER: Fix PS1 game scanning +- SCANNER: Move content list builder into scanner task with progress, fixes menu freeze with large playlists +- SDL2: Fix 'SDL2 driver does not see the hat on wired Xbox 360 controller" +- SETTINGS: Fix regression 'Custom Viewport is no longer overridable per-core or per-game' +- VITA: Add cheevos support +- VITA: Add support for external USB if mounted - WAYLAND: Fix menu mouse input - WII: Add support for single-port 'PS1/PS2 to USB controller adapter' -- INPUT: Fix 'All Users Control Menu' setting -- INPUT: Add mouse index selection; ability now to select between different mice -- SETTINGS: Fix regression 'Custom Viewport is no longer overridable per-core or per-game' # 1.6.0 -- AUTOSAVE/SRAM - Fix bug #3829 / #4820 (https://github.com/libretro/RetroArch/issues/3829) -- ENDIANNESS: Fixed database scanning. Should fix scanning on PS3/WiiU/Wii, etc. -- NET: Fix bug #4703 (https://github.com/libretro/RetroArch/issues/4703) -- ANDROID: Runtime permission checking +- ANDROID: Allow remotes to retain OK/Cancel position when menu_swap_ok_cancel is enabled - ANDROID: Improve autoconf fallback - ANDROID: Improve shield portable/gamepad device grouping workaround -- ANDROID: Allow remotes to retain OK/Cancel position when menu_swap_ok_cancel is enabled -- LOCALIZATION: Update/finish French translation -- LOCALIZATION: Update German translation -- LOCALIZATION: Update Japanese translation -- LOCALIZATION/GUI: Korean font should display properly now with XMB/MaterialUI's default font -- LOCALIZATION: Update Russian translation -- MENU: Improved rendering for XMB ribbon; using additive blending (Vulkan/GL) -- OSX/MACOS: Fixes serious memory leak -- WINDOWS: Added WASAPI audio driver for low-latency audio. Both shared and exclusive mode. -- WINDOWS: Added RawInput input driver for low-latency, low-level input. -- WINDOWS: Core mouse input should be relative again in cores -- MISC: Various frontend optimizations. -- VIDEO: Fix threaded video regression; tickering of menu entries would no longer work. -- WII: Fix crashing issues which could occur with the dummy core -- WIIU: HID Controller support -- WIIU: XMB/MaterialUI menu driver support -- WIIU: Initial network/netplay support +- ANDROID: Runtime permission checking +- AUDIO: Audio mixer support. Mix up to 8 streams with the game's audio. +- AUTOSAVE/SRAM - Fix bug #3829 / #4820 (https://github.com/libretro/RetroArch/issues/3829) +- ENDIANNESS: Fixed database scanning. Should fix scanning on PS3/WiiU/Wii, etc. - LOBBIES: Fallback to filename based matching if no CRC matches are found (for people making playlists by hand) - LOBBIES: GUI refinement, show stop hosting when a host has been started, show disconnect when playing as client - LOBBIES: if the game is already loaded it will try to connect directly instead of re-loading content (non-fullpath cores only) - LOBBIES: unify both netplay menus +- LOCALIZATION/GUI: Korean font should display properly now with XMB/MaterialUI's default font +- LOCALIZATION: Update German translation +- LOCALIZATION: Update Japanese translation +- LOCALIZATION: Update Russian translation +- LOCALIZATION: Update/finish French translation +- MENU: Improved rendering for XMB ribbon; using additive blending (Vulkan/GL) +- MISC: Various frontend optimizations. +- NET: Fix bug #4703 (https://github.com/libretro/RetroArch/issues/4703) +- OSX/MACOS: Fixes serious memory leak - THUMBNAILS: Thumbnails show up now in Load Content -> Collection, Information -> Database -- VITA: Fix slow I/O +- VIDEO: Fix threaded video regression; tickering of menu entries would no longer work. - VITA: Fix 30fps menu (poke into input now instead of reading the entire input buffer which apparently is slow) - VITA: Fix frame throttle -- VULKAN: Unicode font rendering support. Should fix bad character encoding for French characters, etc. +- VITA: Fix slow I/O - VULKAN: Fix some crashes on loading some thumbnails -- AUDIO: Audio mixer support. Mix up to 8 streams with the game's audio. +- VULKAN: Unicode font rendering support. Should fix bad character encoding for French characters, etc. +- WII: Fix crashing issues which could occur with the dummy core +- WIIU: HID Controller support +- WIIU: Initial network/netplay support +- WIIU: XMB/MaterialUI menu driver support +- WINDOWS: Added RawInput input driver for low-latency, low-level input. +- WINDOWS: Added WASAPI audio driver for low-latency audio. Both shared and exclusive mode. +- WINDOWS: Core mouse input should be relative again in cores # 1.5.0 -- MOBILE: Single-tap for menu entry selection -- MOBILE: Long-tap a setting to reset to default - ANDROID: Autoconf fallback - ANDROID: Mouse support / Emulated mouse support - AUTOCONF: Fix partial matches for pad name - CHEEVOS: Fix crashes in the cheevos description menu - CHEEVOS: WIP leaderboards support -- COMMON: Threading fixes - COMMON: 9-slice texture drawing support +- COMMON: Threading fixes - CORETEXT/APPLE: Ability to load menu display font drivers and loading of custom font. - DOS: Add keyboard driver - DOS: Improve color accuracy and scaling -- GUI: Various settings are now only visible when advanced settings is enabled -- GUI: Allow changing icon theme on the fly - GUI: Add a symbol page in the OSK +- GUI: Allow changing icon theme on the fly - GUI: Better dialogs for XMB +- GUI: Various settings are now only visible when advanced settings is enabled - LOCALIZATION: Add/update Korean translation - LOCALIZATION: Rewrite German translation - LOCALIZATION: Update several English sublabels - LOCALIZATION: Update several Japanese labels +- MOBILE: Long-tap a setting to reset to default +- MOBILE: Single-tap for menu entry selection - NET: Allow manual netplay content loading - NET: Announcing network games to the public lobby is optional now - NET: Bake in miniupnpc - NET: Fix netplay join for contentless cores +- NET: Fix netplay rooms being pushed on the wrong tab - NET: Lan games show next to lobbies with (lan) and connect via the private IP address - NET: Use new lobby system with MITM support -- NET: Fix netplay rooms being pushed on the wrong tab - NUKLEAR: Update to current version - SCANNER: Always add 7z & zip to supported extensions -- VULKAN: Find supported composite alpha in swapchain - VULKAN: Add snow/bokeh shader pipeline effects - at parity with GL now +- VULKAN: Find supported composite alpha in swapchain - WIIU: Keyboard support -- WINDOWS: Logging to file no longer spawns an empty window - WINDOWS: Fix loading of core/content via file menu +- WINDOWS: Logging to file no longer spawns an empty window # 1.4.1 diff --git a/command.c b/command.c index 845a1e5b7f..468941e782 100644 --- a/command.c +++ b/command.c @@ -1856,8 +1856,12 @@ bool command_event(enum event_command cmd, void *data) if (settings->bools.cheevos_hardcore_mode_enable) return false; #endif - - if (settings->bools.rewind_enable) +#ifdef HAVE_NETWORKING + /* Only enable state manager if netplay is not underway + TODO: Add a setting for these tweaks */ + if (settings->bools.rewind_enable + && !netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)) +#endif state_manager_event_init((unsigned)settings->rewind_buffer_size); } break; @@ -1880,10 +1884,19 @@ bool command_event(enum event_command cmd, void *data) case CMD_EVENT_AUTOSAVE_INIT: command_event(CMD_EVENT_AUTOSAVE_DEINIT, NULL); #ifdef HAVE_THREADS - if (autosave_init()) - runloop_set(RUNLOOP_ACTION_AUTOSAVE); - else - runloop_unset(RUNLOOP_ACTION_AUTOSAVE); +#ifdef HAVE_NETWORKING + /* Only enable state manager if netplay is not underway + TODO: Add a setting for these tweaks */ + settings_t *settings = config_get_ptr(); + if (settings->uints.autosave_interval != 0 + && !netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL)) +#endif + { + if (autosave_init()) + runloop_set(RUNLOOP_ACTION_AUTOSAVE); + else + runloop_unset(RUNLOOP_ACTION_AUTOSAVE); + } #endif break; case CMD_EVENT_AUTOSAVE_STATE: @@ -2272,6 +2285,11 @@ bool command_event(enum event_command cmd, void *data) command_event(CMD_EVENT_NETPLAY_DEINIT, NULL); return false; } + + /* Disable rewind & sram autosave if it was enabled + TODO: Add a setting for these tweaks */ + state_manager_event_deinit(); + autosave_deinit(); } break; /* init netplay via lobby when content is loaded */ @@ -2298,6 +2316,11 @@ bool command_event(enum event_command cmd, void *data) } string_list_free(hostname); + + /* Disable rewind if it was enabled + TODO: Add a setting for these tweaks */ + state_manager_event_deinit(); + autosave_deinit(); } break; /* init netplay via lobby when content is not loaded */ @@ -2324,6 +2347,11 @@ bool command_event(enum event_command cmd, void *data) } string_list_free(hostname); + + /* Disable rewind if it was enabled + TODO: Add a setting for these tweaks */ + state_manager_event_deinit(); + autosave_deinit(); } break; case CMD_EVENT_NETPLAY_FLIP_PLAYERS: diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h index 84605f079d..7ec58992f2 100644 --- a/intl/msg_hash_chs.h +++ b/intl/msg_hash_chs.h @@ -2974,7 +2974,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 4a51682c8a..f5afd1e642 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -2974,7 +2974,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 4fce47a371..89c6b8208c 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -2833,7 +2833,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h index 2cc2b36762..edf2d39225 100644 --- a/intl/msg_hash_fr.h +++ b/intl/msg_hash_fr.h @@ -3006,7 +3006,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h index 90b7052960..a65c5ea5a2 100644 --- a/intl/msg_hash_ko.h +++ b/intl/msg_hash_ko.h @@ -2969,7 +2969,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "뷰포트의 Y축 위치를 정의하는 데 사용되는 사용자 뷰포트 오프셋. '정수 단위 화면 크기'가 활성화 된 경우 무시되고 자동으로 중앙이 됩니다.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h index 3c04639de3..d33f317605 100644 --- a/intl/msg_hash_nl.h +++ b/intl/msg_hash_nl.h @@ -2837,7 +2837,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h index 42204ab2cf..7d37530f5f 100644 --- a/intl/msg_hash_pt_pt.h +++ b/intl/msg_hash_pt_pt.h @@ -2944,7 +2944,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Personalizar o deslocamento da janela de exibição usada para definir o eixo-Y da janela de exibição. Estes serão ignorados se a 'Escala Inteira' estiver habilitada. Então ele será centralizado automaticamente.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h index d1f777de78..83ef984957 100644 --- a/intl/msg_hash_ru.h +++ b/intl/msg_hash_ru.h @@ -2835,7 +2835,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 40e9c47eca..ebb8adfbc4 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3016,7 +3016,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h index 69fc0a05f5..9d253653e7 100644 --- a/intl/msg_hash_vn.h +++ b/intl/msg_hash_vn.h @@ -3004,7 +3004,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X, MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y, "Custom viewport offset used for defining the Y-axis position of the viewport. These are ignored if 'Integer Scale' is enabled. It will be automatically centered then.") MSG_HASH(MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER, - "Use MITM Server") + "Use Relay Server") MSG_HASH(MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER, "Forward netplay connections through a man-in-the-middle server. Useful if the host is behind a firewall or has NAT/UPnP problems.") MSG_HASH(MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER, diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 9805887fee..40d9f9efdc 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -932,7 +932,7 @@ static bool menu_content_find_first_core(menu_content_ctx_defer_info_t *def_info core_info_get_current_core((core_info_t**)&info); if (info) { - RARCH_LOG("Use the current core (%s) to load this content...\n", + RARCH_LOG("[lobby] use the current core (%s) to load this content...\n", info->path); supported = 1; } @@ -3415,7 +3415,7 @@ static int action_ok_netplay_connect_room(const char *path, netplay_room_list[idx - 3].port); } - RARCH_LOG("Connecting to: %s with game: %s/%08x\n", + RARCH_LOG("[lobby] connecting to: %s with game: %s/%08x\n", tmp_hostname, netplay_room_list[idx - 3].gamename, netplay_room_list[idx - 3].gamecrc); @@ -3649,13 +3649,13 @@ void netplay_refresh_rooms_menu(file_list_t *list) if (netplay_room_count != 0) { - RARCH_LOG ("Found %d rooms...\n", netplay_room_count); + RARCH_LOG ("[lobby] found %d rooms...\n", netplay_room_count); for (i = 0; i < netplay_room_count; i++) { /* Uncomment this to debug mismatched room parameters*/ #if 0 - RARCH_LOG("Room Data: %d\n" + RARCH_LOG("[lobby] room Data: %d\n" "Nickname: %s\n" "Address: %s\n" "Port: %d\n" @@ -3674,19 +3674,14 @@ void netplay_refresh_rooms_menu(file_list_t *list) netplay_room_list[i].timestamp); #endif j+=8; - if (netplay_room_list[i].lan) - { - snprintf(s, sizeof(s), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME_LAN), - netplay_room_list[i].nickname); - } - else - { - snprintf(s, sizeof(s), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME), - netplay_room_list[i].nickname); - } + snprintf(s, sizeof(s), "%s: %s", + netplay_room_list[i].lan ? "Local" : + (netplay_room_list[i].host_method == NETPLAY_HOST_METHOD_MITM ? + "Internet (relay)" : "Internet (direct)"), + netplay_room_list[i].nickname); + /*int room_type = netplay_room_list[i].lan ? MENU_ROOM_LAN : + (netplay_room_list[i].host_method == NETPLAY_HOST_METHOD_MITM ? MENU_ROOM_MITM : MENU_ROOM); */ menu_entries_append_enum(list, s, msg_hash_to_str(MENU_ENUM_LABEL_CONNECT_NETPLAY_ROOM), @@ -3729,7 +3724,7 @@ static void netplay_refresh_rooms_cb(void *task_data, void *user_data, const cha if (string_is_empty(data->data)) { netplay_room_count = 0; - RARCH_LOG("Room list empty\n"); + RARCH_LOG("[lobby] room list empty\n"); } else { @@ -3804,7 +3799,7 @@ static void netplay_refresh_rooms_cb(void *task_data, void *user_data, const cha netplay_room_list[i].lan = true; snprintf(s, sizeof(s), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME_LAN), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME), netplay_room_list[i].nickname); } netplay_room_count += lan_room_count; @@ -4376,9 +4371,17 @@ static int action_ok_netplay_enable_client(const char *path, static int action_ok_netplay_disconnect(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { + settings_t *settings = config_get_ptr(); #ifdef HAVE_NETWORKING netplay_driver_ctl(RARCH_NETPLAY_CTL_DISCONNECT, NULL); netplay_driver_ctl(RARCH_NETPLAY_CTL_DISABLE, NULL); + + /* Re-enable rewind if it was enabled + TODO: Add a setting for these tweaks */ + if (settings->bools.rewind_enable) + command_event(CMD_EVENT_REWIND_INIT, NULL); + if (settings->uints.autosave_interval != 0) + command_event(CMD_EVENT_AUTOSAVE_INIT, NULL); return generic_action_ok_command(CMD_EVENT_RESUME); #else diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index 750cf41cd9..22196ab0c9 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -23,6 +23,9 @@ #endif #include "../../verbosity.h" +#include +#include + #ifndef BIND_ACTION_SUBLABEL #define BIND_ACTION_SUBLABEL(cbs, name) \ cbs->action_sublabel = name; \ @@ -359,13 +362,10 @@ static int action_bind_sublabel_netplay_room( if (i < 1) return 0; - snprintf(s,len, "%s (%s)\n%s (%08x)\nType: %s (%s)", + snprintf(s,len, "RetroArch: %s\nCore: %s (%s)\nGame: %s (%08x)", + string_is_empty(netplay_room_list[i - 3].retroarchversion) ? "n/a" : netplay_room_list[i - 3].retroarchversion, netplay_room_list[i - 3].corename, netplay_room_list[i - 3].coreversion, - netplay_room_list[i - 3].gamename, netplay_room_list[i - 3].gamecrc, - netplay_room_list[i - 3].lan ? "LAN game" : - (netplay_room_list[i - 3].host_method == NETPLAY_HOST_METHOD_MITM ? - "MITM game" : "Lobby game"), netplay_room_list[i - 3].address); - + !string_is_equal(netplay_room_list[i - 3].gamename, "N/A") ? netplay_room_list[i - 3].gamename : "n/a", netplay_room_list[i - 3].gamecrc); #if 0 strlcpy(s, netplay_room_list[i - 3].corename, len); #endif diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 22c7a88f4e..3198c7c4a9 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -97,6 +97,9 @@ enum #ifdef HAVE_NETWORKING XMB_TEXTURE_NETPLAY, XMB_TEXTURE_ROOM, +/* stub these out until we have the icons + XMB_TEXTURE_ROOM_LAN, + XMB_TEXTURE_ROOM_MITM,*/ #endif #ifdef HAVE_IMAGEVIEWER XMB_TEXTURE_IMAGES, @@ -2148,6 +2151,11 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, #ifdef HAVE_NETWORKING case MENU_ROOM: return xmb->textures.list[XMB_TEXTURE_ROOM]; + /* stub these out until we have the icons + case MENU_ROOM_LAN: + return xmb->textures.list[XMB_TEXTURE_ROOM_LAN]; + case MENU_ROOM_MITM: + return xmb->textures.list[XMB_TEXTURE_ROOM_MITM]; */ #endif } @@ -3528,6 +3536,12 @@ static const char *xmb_texture_path(unsigned id) return "netplay.png"; case XMB_TEXTURE_ROOM: return "room.png"; + /* stub these out until we have the icons + case XMB_TEXTURE_ROOM_LAN: + return "room_lan.png"; + case XMB_TEXTURE_ROOM_MITM: + return "room_mitm.png"; + */ #endif case XMB_TEXTURE_KEY: return "key.png"; diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 08a1ebdff6..a019ab891f 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -167,6 +167,10 @@ enum menu_settings_type MENU_SETTING_HORIZONTAL_MENU, MENU_WIFI, MENU_ROOM, +/* + MENU_ROOM_LAN, + MENU_ROOM_MITM, +*/ MENU_NETPLAY_LAN_SCAN, MENU_INFO_MESSAGE, MENU_SETTINGS_SHADER_PARAMETER_0, diff --git a/network/netplay/netplay_discovery.h b/network/netplay/netplay_discovery.h index 5148a8af9a..97be8c88e1 100644 --- a/network/netplay/netplay_discovery.h +++ b/network/netplay/netplay_discovery.h @@ -76,6 +76,7 @@ struct netplay_room bool has_spectate_password; bool lan; bool fixed; + char retroarchversion [PATH_MAX_LENGTH]; struct netplay_room *next; }; diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index ed22135418..6cfa790268 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -18,7 +18,7 @@ #include #include -#include "version.h" +#include "../../version.h" #include #include @@ -523,7 +523,7 @@ static int16_t netplay_input_state(netplay_t *netplay, static void netplay_announce_cb(void *task_data, void *user_data, const char *error) { - RARCH_LOG("Announcing netplay game... \n"); + RARCH_LOG("[netplay] announcing netplay game... \n"); if (task_data) { @@ -568,7 +568,7 @@ static void netplay_announce_cb(void *task_data, void *user_data, const char *er if (mitm_ip && mitm_port) { - RARCH_LOG("Joining MITM server: %s:%s\n", mitm_ip, mitm_port); + RARCH_LOG("[netplay] joining relay server: %s:%s\n", mitm_ip, mitm_port); ip_len = (unsigned)strlen(mitm_ip); port_len = (unsigned)strlen(mitm_port); @@ -633,8 +633,9 @@ static void netplay_announce(void) *settings->paths.netplay_spectate_password ? 1 : 0, settings->bools.netplay_use_mitm_server, PACKAGE_VERSION); - - RARCH_LOG("%s\n", buf); +#if 0 + RARCH_LOG("[netplay] announcement URL: %s\n", buf); +#endif task_push_http_post_transfer(url, buf, true, NULL, netplay_announce_cb, NULL); free(username); @@ -1095,7 +1096,7 @@ static void netplay_toggle_play_spectate(netplay_t *netplay) snprintf(msg, sizeof(msg)-1, msg_hash_to_str(MSG_NETPLAY_YOU_HAVE_JOINED_AS_PLAYER_N), player+1); } - RARCH_LOG("%s\n", dmsg); + RARCH_LOG("[netplay] %s\n", dmsg); runloop_msg_queue_push(dmsg, 1, 180, false); netplay_send_raw_cmd_all(netplay, NULL, NETPLAY_CMD_MODE, payload, sizeof(payload)); @@ -1203,11 +1204,11 @@ bool init_netplay(void *direct_host, const char *server, unsigned port) if (netplay_is_client) { - RARCH_LOG("%s\n", msg_hash_to_str(MSG_CONNECTING_TO_NETPLAY_HOST)); + RARCH_LOG("[netplay] %s\n", msg_hash_to_str(MSG_CONNECTING_TO_NETPLAY_HOST)); } else { - RARCH_LOG("%s\n", msg_hash_to_str(MSG_WAITING_FOR_CLIENT)); + RARCH_LOG("[netplay] %s\n", msg_hash_to_str(MSG_WAITING_FOR_CLIENT)); runloop_msg_queue_push( msg_hash_to_str(MSG_WAITING_FOR_CLIENT), 0, 180, false); diff --git a/network/netplay/netplay_room_parse.c b/network/netplay/netplay_room_parse.c index ecefc904ff..096147c5bc 100644 --- a/network/netplay/netplay_room_parse.c +++ b/network/netplay/netplay_room_parse.c @@ -279,6 +279,12 @@ static JSON_Parser_HandlerResult JSON_CALL ObjectMemberHandler(JSON_Parser parse pCtx->cur_field = strdup(pValue); pCtx->cur_member = &rooms->cur->host_method; } + else if (string_is_equal_fast(pValue, "retroarch_version", 17)) + { + pCtx->cur_field = strdup(pValue); + pCtx->cur_member = &rooms->cur->retroarchversion; + pCtx->cur_member_size = sizeof(rooms->cur->retroarchversion); + } } }