Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

USB-Ethernet adapter research #1357

Open
Hydreigon223 opened this issue Mar 1, 2024 · 5 comments
Open

USB-Ethernet adapter research #1357

Hydreigon223 opened this issue Mar 1, 2024 · 5 comments

Comments

@Hydreigon223
Copy link

Later S2x6 games would use a USB-Ethernet adapter likely to replace iLink. There are some cases where it's used to connect to an online server but server emulation would be up to someone else. Here is a list of the following games I know of that use this device:

  • Battle Gear 3 (Tuned)
  • Zoids Infinity (EX+)
  • Idolm@ster (somehow?!?)
  • Cobra the Arcade
  • Tekken 5 (to some not as important extent imho)
  • MotoGP
  • Ace Driver 3 Final Turn
  • Time Crisis 4
@Hydreigon223 Hydreigon223 changed the title USB-Ethernet research USB-Ethernet adapter research Mar 1, 2024
@Keropon
Copy link
Contributor

Keropon commented Mar 1, 2024

What I'd like to research is the possibility of having a Idolm@ster Tower unit act as a Local Server for two (or more) Idolm@ster Station units.

Do you have any photos or anything else of that adapter? is it ETH to USB or USB to ETH? Since the 2x6 has a USB port that's blocked by a sticker... 🤔

It was this thing.

image

@Hydreigon223
Copy link
Author

Hydreigon223 commented Mar 2, 2024

The adapter itself has the USB VID and PID set as the following.

  • VID: 07A6
  • PID: 8513

Since the board itself consists of an ADM8513, both ID values are pretty obvious. Hooking this up should theoretically be straightforward as documentation for these kinds of drivers exist.

@uyjulian
Copy link

uyjulian commented Mar 3, 2024

OHCI probably needs to be implemented first for USB. So will take some effort to implement if you go the low level hardware way

However, if going the driver substitution way...
It simply uses the an986 driver.
In any case if it uses inet or eenet networking stack (or other middleware/thirdparty networking stack that has a PPP module available for the modem port), one way go around it is grab the ppp module from somewhere and then make a slirp modem driver with the modem api.
Another way to go around it is if networking functionality is performed on the EE, to just hook libnetglue to use host BSD sockets like it is currently done for libmc2
Another way is to reimplement just enough of the IOP driver stack to interface with BSD sockets.

@Hydreigon223
Copy link
Author

I'm fine with whatever route seems the most efficient (personally leaning towards the driver route). It's a question on what the devs will agree to when implenting this.

@uyjulian
Copy link

uyjulian commented Apr 8, 2024

There are basically 4 network stacks used on the PS2:

  • inet (SCE)
  • eenet (SCE)
  • NDK (SN Systems)
  • AVE-TCP (Access Co., Ltd)

For ethernet support, it is possible to use the SCE-provided ent_smap.irx (for eenet) or smap.irx (for the other three network stacks; glue modules needed for the third party ones).
For modem support, it is possible to use the SCE-provided spduart.irx (all four network stacks needing PPP glue module).

There may also be drivers for USB ethernet hardware and USB modem hardware (such as an986), which may or may not require glue modules.

All of the aforementioned network stacks have BSD socket-like APIs on the IOP and EE.

So either replacing the network stack driver or the ethernet/modem hardware driver looks feasible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants