EXI: Don't kill Dolphin when receiving BBA_IOB #12574
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR prevents Dolphin from being killed when receiving
BBA_IOB
. Apparently, in some circumstances, the game might be in such situation and it might be non-fatal. For instance, when sending tons of UDP packet to an unbound port this situation can happen. This seems to only affect BBA TAP adapter.I was able to replicate the issue on Windows 10 (OpenVPN 2.4.11's TAP Adapter V9) with Mario Kart: Double Dash and Kirby Air Ride. It happens during the matchmaking sequence, right after Dolphin's BBA acquired an IP address and announced it via ARP.
The following python script can be used to spam UDP packets to an unbound port (Wireshark can be used to find Dolphin's BBA IP using arp filter):
Games don't appear to crash when the error is occurring and I'd rather have these games crash than the emulator exiting silently without a panic alert.
Ready to be reviewed & merged.