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

Not quite working #1

Open
t1op opened this issue Feb 23, 2023 · 5 comments
Open

Not quite working #1

t1op opened this issue Feb 23, 2023 · 5 comments

Comments

@t1op
Copy link

t1op commented Feb 23, 2023

I'm trying to get an OG Xbox working with l2tunnel running on Windows 11 (Alienware r16).
FYI- I have successfully connected Xemu to OG Xbox and Xemu with bridged adapter using Ethernet and a switch. I have also connected Xemu to Xemu with l2tunnel and hub.py.

I followed your guide to get my laptop's device description and the xbox mac address and run l2tunnel with this command:
l2tunnel.exe tunnel \Device\NPF_{0C4C9D2B-56CD-47F4-B076-749D1A19A5CE} -s 00:22:48:1B:8D:7C 0.0.0.0 1337 127.0.0.1 1338

I'm getting this message repeated over and over in the command line interface:
packet waiting from pcap
00:22:48:1b:8d:7c to ff:ff:ff:ff:ff:ff
forwarding to 127.0.0.1:1338
packet waiting from socket
recvfrom returned < 0
WSA Error = 10054

The only comprehensible help I could find for the WSA error was that there may be a firewall issue. I checked and verified that I have granted l2tunnel access through the firewall for both private and public.

If I change the 1338 to 1337 I get a lot of constant traffic, but never from Xemu.
I only see Xemu traffic if I specify the IP address of my laptop in Xemu instead of 127.0.0.1:1337.
Can you help?

@WIFIDarthMaul
Copy link
Owner

WIFIDarthMaul commented Feb 27, 2023 via email

@t1op
Copy link
Author

t1op commented Feb 27, 2023 via email

@WIFIDarthMaul
Copy link
Owner

WIFIDarthMaul commented Mar 1, 2023 via email

@t1op
Copy link
Author

t1op commented Mar 11, 2023

I finally got a chance to try things out again.
The older build of Xemu doesn't work with the game I'm testing. Timesplitters Future Perfect. Most of the screen goes black in the menu.
What game did you use for testing system link?

I did a little more testing.
In my previous test where I was getting the error, I had the Xbox running but not Xemu.
I tested with Xemu running and the error went away. I saw consistent traffic coming successfully from Xemu, lots of packets per minute. However, I only saw traffic from the Xbox once a minute and the system link game created on the Xbox was never visible in Xemu. If I started or stopped the system link game on the Xbox there a couple packets were immediately sent.
This leaves me with a few questions.
Why does it produce an error message without Xemu running but no error message when it is connected? Is this an indication that there is a communication problem with the Xbox, or is this just default behavior telling me that since Xemu isn't connected the packet doesn't have anywhere to go?
If the Xbox is communicating, why isn't the game visible? Does this relate to the reduced frequency of packet transfer? Is this l2tunnel not being setup correctly for the system link behavior of this game in particular? I tried Halo as well as a default. Same behavior.

@t1op
Copy link
Author

t1op commented Dec 2, 2023

I got it all working and put together a tutorial that worked. Sharing in case you might find it useful.

Tutorial to System Link from Xemu to Xemu using Windows 10/11

  1. Set up local network for online connections.
    a) Open a port on router for online connections (google "port forwarding").
    b) Get the local network public IP for online connections (google "what is my ip").
    i. This will change occasionally.
  2. Set up a remote host on a local networked computer.
    a) Get the IPv4 address of the computer.
    b) Install latest version of Python
    c) Install latest version of npcap
    d) Copy l2tunnel to host computer
    i. Create a folder named 'l2tunnel' (name is arbitrary)
    ii. Go to https://github.com/mborgerson/l2tunnel
    iii. Right click hub.py > Save Link As > save to 'l2tunnel' folder.
    iv. Releases > latest l2tunnel.exe.zip. Unzip it to the 'l2tunnel' folder.
    e) Double click hub.py to start remote hosting.
    • A terminal window opens and should say Waiting for UDP packets on 0.0.0.0:1337.
    • Do not close this until done system linking. Restart it if it closes.
  3. Set up UDP tunnel on client Xemu(s)
    a) Modern Wifi Networks often have multiple SSID. MAKE SURE YOUR CLIENT IS ON THE SAME ONE AS THE HOST.
    b) Launch Xemu.
    i. Go to Machine > Settings > Network.
    ii. Toggle "Enable" off if it is on.
    iii. For "Attached to" select "UDP Tunnel"
    iv. For a local network connection set "Remote Address" to the host IPv4 address + port 1337. Example: 192.168.0.142:1337
    v. For an online connection, set "Remote Address" to the host public IP address + open port. Example: 1.2.3.4:4976.
    * If an instance of Xemu fails to connect, try setting the "Remote Address" for an online connection.
    vi. Set Bind Address to 0.0.0.0:9999. (9999 is arbitrary. Pick any unused port.)
    vii. Toggle "Enable" on.
    * If you get a bind address error, change the port number and try again or exit and relaunch Xemu and try agian.
  4. Connect a System Link Game
    a) Machine > Load Disc > Select the system link game iso.
    b) Exit and relauch Xemu after the network settings are correct and game iso is selected.
    a) In-game enter a system link browser / game creation.
    • The client should then show up in the terminal window on the host.
  5. Repeat steps 2-4 for any additional instances of Xemu.
  6. Mac addresses must be unique in a network game.
    a) If a client is kicked when joining a game, this is a probable reason.
    b) Xemu generates a random one so this can happen.
    c) To generate a new one, use Xbox Eeprom Editor. https://github.com/Ernegien/XboxEepromEditor
    • If you would like Xemu to generate a new one:
      1. Delete/rename your xemu.toml
      2. Launch Xemu and check the settings to get the location.
      3. Reset your settings or restore your xemu.toml and point to the new eeprom.

Tutorial for connecting Xemu to real Xboxes on same LAN

  1. Setup a local remote host and Xemu as in previous post.
  2. Connect the real Xbox to a local networked computer (does not need to be the host)
    a) A real xbox needs to be connected to a computer running l2tunnel by ethernet, directly or through a hub/switch.
  3. Get the MAC address of your Xbox. (google "get xbox mac address") Example: 00:22:48:1B:8D:7C
  4. Get the Device Name of your host computer's ethernet adapter using l2tunnel.
    a) Open a command prompt in your l2tunnel directory
    b) Run "l2tunnel.exe list"
    c) Find Device Name associated with your ethernet adapter's common name.
    • Look in:
      • Windows 11: Network & Internet Settings>Advanced network settings;
      • Windows 10: Network & Internet Settings>Change adapter options settings)
        Example: \Device\NPF_{025DE087-B541-49ED-9269-05D1C868B2B2}
  5. Tunnel the Xbox incoming communication to the remote host
    a) Fill in this template and run this command in the terminal:
    l2tunnel.exe tunnel -s 1337
    Example: l2tunnel.exe tunnel \Device\NPF_{025DE087-B541-49ED-9269-05D1C868B2B2} -s 00:22:48:1B:8D:7C 0.0.0.0 9999 192.168.0.142 1337
    Note: if running Xemu on the same computer don't use the same local port 9999.
  6. Connect a System Link game like with Xemu.
  7. To connect multiple Xboxes, repeat steps 2-5 with a separate computer for each Xbox but referencing the same remote host.
  8. The remote host computer should optionally be able to connect an Xbox and run an instance of Xemu as well.

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

2 participants