Skip to content

V1.0.1#14309

Closed
ddobokki wants to merge 4 commits intoPCSX2:masterfrom
ddobokki:v1.0.1
Closed

V1.0.1#14309
ddobokki wants to merge 4 commits intoPCSX2:masterfrom
ddobokki:v1.0.1

Conversation

@ddobokki
Copy link
Copy Markdown

Description of Changes

Rationale behind Changes

Suggested Testing Steps

Did you use AI to help find, test, or implement this issue or feature?

ddobokki and others added 4 commits April 13, 2026 22:38
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>
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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!

@ddobokki
Copy link
Copy Markdown
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

@F0bes
Copy link
Copy Markdown
Member

F0bes commented Apr 15, 2026

It happens, GitHub makes it extraordinary easy to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants