Also fixes a crash on startup with '--disable-rgui'.
Thread 1 "retroarch" received signal SIGSEGV, Segmentation fault.
0x0000000000529f52 in strlcpy_retro__ (dest=0x7fffffffbb17 "treaming_toggle",
source=0x1 <error: Cannot access memory at address 0x1>, size=250)
at libretro-common/compat/compat_strl.c:38
38 while (--n && (*dest++ = *source++)) src_size++;
(gdb) bt
dest=0x7fffffffbb17 "treaming_toggle",
source=0x1 <error: Cannot access memory at address 0x1>, size=250)
at libretro-common/compat/compat_strl.c:38
size=250) at libretro-common/compat/compat_strl.c:60
out_path=0x7fffffffbb10 "input_", dir=0x94b460 "input", path=0x0,
delim=95 '_', size=256) at libretro-common/file/file_path.c:964
prefix=0x94b460 "input", btn=0x0, bind=0x151e180 <input_autoconf_binds+4672>)
at input/input_driver.c:2483
binds=0x151cf40 <input_autoconf_binds>) at tasks/task_autodetect.c:172
params=0x26adb40, task=0x26b74f0) at tasks/task_autodetect.c:252
params=0x26adb40, task=0x26b74f0) at tasks/task_autodetect.c:393
at tasks/task_autodetect.c:851
at libretro-common/queues/task_queue.c:182
at libretro-common/queues/task_queue.c:609
at frontend/frontend.c:146
at frontend/frontend.c:170
Fixes https://github.com/libretro/RetroArch/issues/7893
This allows optionally sorting configure files and is needed to fix the
order of inputs in the autoconfig profiles which should not be sorted
alphabetically.
Fixes https://github.com/libretro/RetroArch/issues/7873
My previous patch sometimes generated double slashes. All of these
problems are because the original version of this function assumed that
the app path always ends with a slash and the home path never does,
which is not true on UWP (they both have a slash)
The "z" modifier was introduced in c99, but using "l" instead
seems to work.
setting_list.c: In function ‘setting_get_string_representation_size’:
setting_list.c:175:24: warning: ISO C90 does not support the ‘z’ gnu_printf length modifier [-Wformat=]
snprintf(s, len, "%" PRI_SIZET,
^~~
setting_list.c: In function ‘setting_get_string_representation_size_in_mb’:
setting_list.c:183:24: warning: ISO C90 does not support the ‘z’ gnu_printf length modifier [-Wformat=]
snprintf(s, len, "%" PRI_SIZET,
^~~
setting_list.c: In function ‘setting_set_with_string_representation’:
setting_list.c:508:24: warning: ISO C90 does not support the ‘z’ gnu_scanf length modifier [-Wformat=]
sscanf(value, "%" PRI_SIZET, setting->value.target.sizet);
^~~
libretro-common/file/config_file.c: In function ‘config_get_size_t’:
libretro-common/file/config_file.c:692:32: warning: ISO C90 does not support the ‘z’ gnu_scanf length modifier [-Wformat=]
if (sscanf(entry->value, "%" PRI_SIZET, &val) == 1
`menu_animation_update` enumerates `menu_animation.list` to process each
`tween`. It was observed that some tweens execute a callback that
pushes more animations via `menu_animation_push`. During the push, if
the tween `list` does not have enough space, a `realloc` occurs,
potentially invalidating the existing list. The remaining pointer access
in menu_animation_update is therefore invalid. Best case is the memory
is unused and thus does not affect the program. Worst case is memory
corruption.
== DETAILS
Since the content file could potentially be huge, hashing the
whole thing at runtime may take a really long time. Plus, it
was loading the whole file into RAM at once.
Now, we only load 1MB at a time and hash up to the first 64MB.
== TESTING
I don't have any large content files to test it with, but I
tested it with a small one and confirmed that the hash was
correct.
== DETAILS
Fixes a bug where content CRC32 is not calculated when content loading
is done by the core instead of libretro. This impacts the ability to
do accurate content matching on netplay.
This notably affects MAME, but is by no means limited to MAME.
Change summary:
- adds a method to the crc32 implementation that calculates crc32 for
a file (as opposed to an in-memory buffer)
- fix a minor bug that would print the "core will load its own content"
right before attempting to load compressed content
- in the actual "core will load its own content" path, calculate the CRC32
and log it before returning
== TESTING
Tested locally on OSX:
- loaded content
- started netplay
- confirmed CRC showing in netplay data
- verified CRC32 against external crc32 tool
== DETAILS
For local netplay, it's useful to have your IP address easily
available. This commit makes the Information > Network Information
menu display the Wii U's IP address.
Change summary:
- Fix the logging init to be reentrant to avoid socket consumption
- Add implementation of POSIX `getifaddrs()` and `freeifaddrs()`
to `missing_libc_functions.c`
- Remove compiler directives protecting the code paths that call
`getifaddrs()` from being used in Wii U builds
== TESTING
Have tested locally, successfully get IP address information in
the Information > Network Information.
I think this may also fix NAT traversal. Will need to be tested.