Commit Graph
13 Commits
Author SHA1 Message Date
Martin Michelsen f7a0147176 prevent backpressure when m_read_enabled is not set 2024-03-17 18:37:55 -07:00
Martin Michelsen 3e9ac1aaf3 fix tapserver SIGPIPE handling on Linux 2024-03-17 18:37:55 -07:00
Martin Michelsen 5d8a01cba7 respond to further review feedback 2024-03-17 18:37:55 -07:00
Martin Michelsen 7775ea325f close modem socket after joining read thread 2024-03-17 18:37:55 -07:00
Martin Michelsen 9d0d2f0a40 handle ATH0 command 2024-03-17 18:37:55 -07:00
Martin Michelsen 12a7e17a41 fix warnings in windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen 9cf8131b23 respond to review feedback on tapserver implementation 2024-03-17 18:37:55 -07:00
Martin Michelsen dcb7a72c14 add modem files to windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen 02deaa6748 Implement GC modem adapter
This implements the GameCube modem adapter. This implementation is stable but not perfect; it drops frames if the receive FIFO length is exceeded. This is probably due to the unimplemented interrupt mentioned in the comments. If the tapserver end of the connection is aware of this limitation, it's easily circumvented by lowering the MTU of the link, but ideally this wouldn't be necessary.

This has been tested with a couple of different versions of Phantasy Star Online, including Episodes 1 & 2 Trial Edition. The Trial Edition is the only version of the game that supports the Modem Adapter and not the Broadband Adapter, which is what made this commit necessary in the first place.
2024-03-17 18:37:55 -07:00
Martin Michelsen 083116a89c rewrite tapserver interface for better error handling 2024-03-17 18:37:55 -07:00
Martin Michelsen a36600ae50 add TAPServer.cpp to Windows build 2024-03-17 18:37:55 -07:00
Martin Michelsen f90812d8e1 fix android syntax error 2024-03-17 18:37:55 -07:00
Martin Michelsen 0c364cbb4c implement tapserver BBA on all platforms
This expands the tapserver BBA interface to be available on all platforms. tapserver itself is still macOS-only, but newserv (the PSO server) is not, and it can directly accept local and remote tapserver connections as well. This makes the tapserver interface potentially useful on all platforms.
2024-03-17 18:37:55 -07:00