Closed
Conversation
Add Omron ME56PS2 USB modem device emulation enabling modem-based online multiplayer for PS2 games (e.g., Armored Core 2 Another Age). - FTDI FT232-style USB framing with AT command parser - TCP/IP bridge: game data tunneled over TCP sockets - Server mode (listen) and client mode (dial out) - Configurable RemoteHost, RemotePort, ServerMode in PCSX2 UI - Non-IP dial strings fall back to configured settings - Optimized ring buffer (memcpy), socket tuning, 1ms select timeout Based on me56ps2-emulator by Masataka Sawahara (MIT License) https://github.com/msawahara/me56ps2-emulator PCSX2 port by ChungSo Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce Balanced/Compatible/Fast SubTypes so users can trade latency
for data integrity based on their opponent setup. Motivated by AP/HP
desync reports from Japanese users playing real PS2 vs PCSX2 over the
original me56ps2-emulator bridge: the v1.0.0 tuning optimized for low
latency sacrificed integrity vs the reference 40ms IN pacing.
Modes (all share the same correctness fixes below):
- Balanced (default): 20ms IN pacing, 65536B sock bufs, 512B recv chunks
- Compatible (stable): 40ms IN pacing, OS-default bufs, 64B recv chunks
mirrors original me56ps2-emulator timing for real-HW opponents
- Fast (low latency): 0ms, 4096B bufs, 4096B chunks — v1.0.0 tuning
Correctness fixes applied universally:
- send() partial-send loop with EAGAIN retry (was dropping tail bytes)
- RingBuffer::available() now mutex-protected (was racing with writer)
Implemented via PCSX2 SubTypes pattern; single DEVTYPE_MODEM entry, no
deviceproxy changes. Docs updated in How_to_use_{EN,KR,JP}.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Testing showed Compatible mode had excessive latency. Drop it from the UI and docs so only Balanced (default) and Fast remain. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Thank you for submitting a contribution to PCSX2
As this is your first pull request, please be aware of the contributing guidelines.
Additionally, as per recent changes in GitHub Actions, your pull request will need to be approved by a maintainer before GitHub Actions can run against it. You can find more information about this change here.
Please be patient until this happens. In the meantime if you'd like to confirm the builds are passing, you have the option of opening a PR on your own fork, just make sure your fork's master branch is up to date!
Author
|
Sorry about this I should have created the PR from my fork instead of opening it directly on the original repository. That was my mistake |
Member
|
It happens, GitHub makes it extraordinary easy to do. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of Changes
Rationale behind Changes
Suggested Testing Steps
Did you use AI to help find, test, or implement this issue or feature?