`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.
== DETAILS
Updates to the newlib library bundled with DevKitPro have caused
incorrect behavior in `cpu_features_get_time_usec()`. Specifically,
it defines `_POSIX_MONTONIC_CLOCK` which results in calling newlib's
time functions which are.. buggy, at least on Wii U.
By moving the WIIU case higher up, we end up calling the actual
Wii U time library routines, and get nice snappy animations as a
result.
== TESTING
I tested this locally on my wiiu and confirmed resolved menu sluggishness.