View Full Version : Server select empty when using wifi (linux)
Indefinite
11-15-2015, 02:26 PM
On 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u5
Using iwlwifi firmware version 23.214.9.0 for ac7260
I have no problem using a wifi connection for anything else, but if I try to play p99 I always get an empty server select regardless of the wifi connection I use. For some reason, my RX is 6 Mbit/s, which I think is related to the problem. Though, disabling the power saving features for wifi and raising RX to ~150Mbit/s didn't fix it. Ethernet cable works fine. Has anyone experienced and resolved a similar problem?
Big_Japan
11-16-2015, 10:24 PM
I get this almost everytime I log in over wifi -- I have to log in 4-5 times to get the server list to appear. If persistence doesn't pay off I don't know what to tell you though.
Swish
11-17-2015, 05:44 AM
Yes can relate with the wifi, its a case of logging in a few times to get the server list to pop.
Ethernet all the way if you can do it.
On 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u5
Using iwlwifi firmware version 23.214.9.0 for ac7260
I have no problem using a wifi connection for anything else, but if I try to play p99 I always get an empty server select regardless of the wifi connection I use. For some reason, my RX is 6 Mbit/s, which I think is related to the problem. Though, disabling the power saving features for wifi and raising RX to ~150Mbit/s didn't fix it. Ethernet cable works fine. Has anyone experienced and resolved a similar problem?
Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.
Zaela
11-17-2015, 11:32 PM
Always had problems with empty server select on Linux. Threw together a little Windows app (https://dl.dropboxusercontent.com/u/70648819/downloads/EQEmu%20Server%20Lister.zip) that does nothing but connect to the login server and dump the server name strings. Never had any problems getting the server list using this app through Wine.
I assumed there was some issue with Wine's implementation of the Win32-specific socket functions (WSASocket and friends -- of course Verant and SOE used all the Windows-specific calls instead of the equivalent standard ones). Maybe it delays things just enough to exacerbate issues with wifi... but if it happens on Windows too, there's probably more to it than that.
No idea why Login specifically would be so fragile, char select and zones use the same packet protocol to address dropped packets. Maybe it doesn't actually wait until you receive the whole server list and just goes "they hit the Connect button, we're going to server select in x milliseconds whether we have anything to show them or not!" ? Would be a bizarre choice for a game that started in the dialup days, though.
dmorawski
11-18-2015, 01:42 PM
Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.
How would you go about configuring this?
I've always had this problem, as well, though only on Linux (both Ubuntu and Lubuntu). It seems there are a few different threads about this, but no solutions. Apparently...:
This mainly happens when you're using wireless or any other flakey connection. The loginserver has no dropped packet correction so it doesn't recover from them easily.
dafier
11-18-2015, 05:32 PM
How would you go about configuring this?
I've always had this problem, as well, though only on Linux (both Ubuntu and Lubuntu). It seems there are a few different threads about this, but no solutions. Apparently...:
I am pretty sure he means your router. Because I did what he said on my router and it appeared to have worked once, then it randomly kept not showing the server list.
I had weird issues using my Wireless N (100% connection strength). One was server select and the other was zoning. It just wouldn't load the zone even after 5 minutes. I just killed eqgame in my task manager, start it back up and sometimes wait for my LD in game to clear and reconnect. THAT was really annoying.
I use PoE right now and that works LOADS better, but omg I don't recommend it. The round trip between my comp and router is 8 to 10ms. (100 to 200 feet)
Indefinite
11-18-2015, 10:41 PM
Just a suggestion.
Assuming your wi-fi port re-director has it, (your wi-fi device).
Give your EQ Packets Priority. Was my problem once, and that fixed it.
It might not be the solution.. but worth a shot.
I've used the same router and traffic priorities to play p99 on a different laptop and have the same issue on other wifi networks; I don't think the problem is related to my router. I'm considering trying an older firmware version of iwlwifi, otherwise might just be out of luck =/
Zaela
11-19-2015, 12:10 AM
I had a thought after my last post. I know that, in my case at least, the server list packets are getting through fine, it's just that the Client chokes on them for whatever reason.
The EQEmu login server does have a lot of servers listed on it, so the server list is somewhat big (~6k), and gets split into several fragments (10 or so) to be sent over the wire. So I thought, why not just filter out all the non-P99 servers before letting the client see them? That way the client only has to deal with a few hundred bytes, in a single packet.
I made a tiny, localhost man-in-the-middle program between the client and the login server to do just that. It is totally working for me, server select is much much more reliable with it running. Some of the code is a bit of a mess right now (lots of last-minute debugging, couldn't test it while I was coding it at work), but you can find it here: https://github.com/Zaela/p99-login-middlemand. Includes a makefile. You can check for yourself, but I can promise that it doesn't try to sniff passwords or anything dumb like that -- all client-to-server packets are simply forwarded and maybe tweaked slightly due to the filtering desychronizing the session somewhat.
Definitely could have some bugs, but I urge you to at least give it a quick try. If it works out well, it shouldn't be too hard to set it up as a daemon and forget about all your server select problems for good.
One thing you will need to do if you want to try it is to update your eqhost.txt to point at the middleman:
[LoginServer]
Host=localhost:5998
It's configured to forward things to the EQEmu login server by default.
Zaela
11-19-2015, 03:18 AM
http://i.imgur.com/bLU00ZJ.png?1
Cause of failure in normal circumstances remains mysterious -- was starting to think that maybe something about some linux wifi implementations (or kernel versions, who knows) was making UDP packets much more likely to be delivered out of order... but on closer inspection, even when the server list fragments come through perfectly in order, the client will still choke.
But only on one of my machines. Two laptops running Linux Mint (17.0 and 17.2), both about the same distance and equally obstructed from the router (it's on a different floor); one has no problems with server select, the other fails more than 90% of the time unless the middleman filter is running (in which case it succeeds more than 90% of the time so far).
How would you go about configuring this?
I've always had this problem, as well, though only on Linux (both Ubuntu and Lubuntu). It seems there are a few different threads about this, but no solutions. Apparently...:
To enable higher priority for connections.
As I do not know what modem or modem/wireless device you have.
To enable a higher priority for connections. Look in the Modem and or modem/wireless
settings. You want to look for Gaming or priority packets, (Something like that).
I assume you have a more modern device.. so hopefully you will find those settings.
Also Note you will have to do this change to all devices on your network.. (( as your packets do go through them all. ))
Sorry it is a bit rough.. but the best advice I can give you as nobody know what you have.. except you.
mrquincy
12-20-2015, 06:00 PM
Swooping in to say thanks to Z! the middleman has resolved my wifi issues on Debian Jesse.
vital_beach
01-11-2016, 01:12 AM
How do I get the middleman running/working? I told it to make but make install wouldn't work.
Zaela
01-17-2016, 04:05 AM
How do I get the middleman running/working? I told it to make but make install wouldn't work.
Didn't have the time or knowhow to make an install script for it, that part is up to you. Some options:
a) Look into how to set up a daemon on your system (I understand this varies depending on your init system, although it will probably come down to filling in a few lines in a script template somewhere).
b) Work it into an EQ launching script like this guy did (http://www.project1999.com/forums/showpost.php?p=2166116&postcount=170). Has the potential benefit of only running the middleman when you're actually running EQ rather than having it on in the background all the time (although the resource usage is tiny either way).
c) Run it manually in a terminal. ./p99-login-middlemand
This works amazing!
I often had to try 10-30 times to get the list and now it is jackpot.
Mini-Howto that worked for me on Mint 17something. Mainly I had to learn how to compile the source and where to put it so as to use to use mgellan's newly modified shellscript launcher ('b' above).
Downloaded Zaela's .zip from the weblink. (p99-login-middlemand-master.zip)
Browsed to Downloads directory , Extracted via GUI browser (right click, Extract here)
Launched terminal
mkdir ~/bin
cd Downloads/
cd p99-login-middlemand-master/
make -f Makefile
cd bin/
cp p99-login-middlemand ~/bin
Modified the eqhosts to point to localhost as previously mentioned.
Give a shout if questions, try to explain better if you need. I'm just a sapling in the shadow of titans.
Wisteso
01-23-2016, 07:43 PM
Zaela, while I'm totally not surprised that you made that tool... You're still awesome and that was a great idea.
spee2k9
05-27-2016, 11:43 AM
Thanks Zaela middleman worked first time for me with on my wifi connection and Lubuntu laptop!
Mobile EQ is here again!
Zaela, you're the dog's bollocks!!
Received a pm request to expand upon the mini instructions I had provided a few posts back on how to implement the middlemand utility that mighty Zaela developed. Figure if one person needs it now then untold may need it in the future. Us Linux rookies gotta stick together! :P
Middlemand by Zaela filters the EQemu server list to only display P99 severs -- often fixing the 'blank server selection screen' problem for Linux clients. Note, one can always just try connecting over and over until the servers do display (10-30 times?); tedious, but functional in a pinch! Note, Zaela has also released a 'eqemu login helper' utility that is similar. Link below for those wanting to try that -- I have never tested it. Classic middlemand has been nearly flawless for me. Can't comment further -- he's the mastermind.
Most folks I presume breezed through this install, but for us rookies it can seem a bit more daunting. This is not 'the one and only true way' to accomplish install, but should you to success. Merely [exactly] what I did, individual results may vary, acknowledge some possible shortcuts for the advanced cool kids. :)
Step 1 - Download Zaela utility.
Link to Image - Step 1 Download (https://s31.postimg.org/7k61s52or/Step1_get_Hub.png)
Browse to https://github.com/Zaela/p99-login-middlemand
Click to download the .zip file. We presume your browser is going to automatically place it in your Home directory /Downloads. (~/Downloads)
If not, you'll need to figure out the 'where' and make adjustments.
Step 2 - Terminal Time.
Link to Image - Step 2 Terminal Commands (https://s31.postimg.org/iqwihov8b/Step2_unpack_Build.png)
Step 2a) Under our user home directory, we make 'bin' directory to later place our compiled binary.
mkdir ~/bin
Step 2b) Navigate to where we downloaded the utility .zip file. As mentioned in Step 1, it will probably be under your ~/Downloads directory, unless you are configured differently or did something advanced.
When typing the commands, I'll list the 'full text' in the code block, but save yourself the trouble and use Tab key to auto complete text. For example, you can probably just type 'cd Down'<Tab> for this step. If Tab isn't responding then it means there are multiple matches and you need to give it a few more letters. For example, there is probably also a 'Documents' folder, so if you only did 'Do'<Tab> then it would not be certain which directory you are attempting to auto complete for. Along the way if you attempt a Tab shortcut, keep adding letters as needed so that auto complete will work -- you may already have some 'p99' created items that would require you to lengthen the text before Tab works. Capitalization matters for your directory structure, so don't try a lowercase 'downloads' for 'Downloads'.
cd Downloads
Step 2c) The middlemand download comes bundled up as one .zip file. We will extract it so the contents inside can be utilized. Hint, probably can 'unzip p99'<Tab> as a shortcut so don't have to type it all out. When the file is unpacking, you'll see it scroll a list of all the content being inflated/extracted.
unzip p99-login-middlemand.zip
Step 2d) Navigate under the newly extracted directory that contains the files. Hopefully by now you are catching on; try 'cd p99'<Tab>
cd p99-login-middlemand
Step 2e) It is now time to build the utility from source code. Remember your capitalization on 'Makefile'. A few lines will scroll while it processes.
make -f Makefile
Step 2f) Once compiled, the new program will exist under a 'bin' subdirectory, let's navigate there.
cd bin
Step 2g) Now we want to copy the compiled program to the bin location we created in Step 2a. Hint; 'cp p99'<Tab>'~/bin'
cp p99-login-middlemand ~/bin
Step 3) Modify eqhost.txt
Hopefully you know where you installed EQ at on your disk - For me, that start of that path is ~/.wine/drive_c/
I followed the instructions provided by mgellen in the link below; albeit happened to change the exacting path from \Program Files\Everquest to \Games\Everquest.
Figure out where your install is, and browse [or terminal navigate] to it so we can modify your eqhost.txt file with your favorite text editor.
You have already have a shortcut/shell script used to launch the game (again for me, from mgellen post) -- this script will probably contain the path as well. (See step 4 for example text).
This eqhost file comes bundled with the P99 patches, and contains the text:
[LoginServer]
Host=login.eqemulator.net:5998
We will be changing it so that instead of querying login.eqemulator.net for our server list [and having it fail], we are querying our own local computer for that list -- a local list generated by middlemand!
[LoginServer]
Host=localhost:5998
Note that when applying future P99 updates, you'll need to be mindful of this file wanting to be overwritten if not careful. It won't 'break' anything other than you'll no longer be taking any advantage of all this hard work. Simply 'never' overwrite the file, or modify once again to these newly correct settings.
Step 4) Launch middleman daemon during EQ runtime
One could manually execute middlemand ['~/bin/p99-login-middlemand'] (..which may be a smart way to test it at first to make sure thigns are working!) or even have set it up to always be running in the background, but I really groove on the automated Start-Stop solution provided by mgellen!
As mentioned in Step 3, you happened to follow existing mgellen steps then will have a .sh script that has some action such as:
export WINEPREFIX=$HOME/.wine/
cd ~/.wine/drive_c/blah/blah/pathTo/EverQuest
taskset -c 0 padsp wine eqgame.exe patchme 2>/dev/null
That /blah/blah/pathTo is just a sample -- depends on where you told the game installer to go to.
There is probably more to this file (such as comments), but those are the sample commands that are launching the game.
Following the echo pid/kill advice mgellen provided, we can configure our game launcher to automatically Start and Stop middlemand when playing the game. Formal link below, but cut to the chase for what I have.
p1999-middlemand.sh
#!/bin/sh
# Launch logonserver middleman daemon
echo Launch middlemand
~/bin/p99-login-middlemand & echo $! >/tmp/p99middle.pid
echo
echo Launch EQ
# if you don't have the script's cwd set, you get XML errors
export WINEPREFIX=$HOME/.wine/
cd ~/.wine/drive_c/blah/blah/pathTo/EverQuest
# Bind to one core of the processor and launch.
# The client will spew a lot of errors, especially every time
# you target a mob, hence the stdout/stderr redirect.
# You probably want to leave off the 2>/dev/null until you're satisfied
# everything is working.
taskset -c 0 padsp wine eqgame.exe patchme 2>/dev/null
echo
echo Close middlemand
# Kill logonserver middleman daemon
kill -9 $(cat /tmp/p99middle.pid)
Step 5) Test, try, enjoy!
Related links, thinkgs that helped me along the way:
Zaela: p99 middleman deamon
http://www.project1999.com/forums/showpost.php?p=2112181&postcount=9
https://github.com/Zaela/p99-login-middlemand
Zaela: eqemu login helper
http://www.project1999.com/forums/showpost.php?p=2298168&postcount=15
https://github.com/Zaela/eqemu-login-helper
mgellan: middleman only runs while EQ is running
http://www.project1999.com/forums/showpost.php?p=2166116#170
mgellen: Running EQ under Linux
http://www.project1999.com/forums/showthread.php?t=14125
Few bonus notes:
As you'll find mentioned elsewhere for getting this working, VertexShaders=FALSE and WindowedMode=TRUE (plus correct resolution Width/Height values) were critical to getting the game working correctly at all for me. Find your eqclient.ini under the install path and make note of the follow settings. I used '....' to express bulk content that exists in the file but is not relevant us right now. Don't delete that content nor copy/paste exactly what I have below; just reference these values and make purposeful manual changes!
Note, my laptop display is operating at 1366x768 resolution. Your resolution may be different -- we'll want to look it up and make smart choices.
eqclient.ini
[Defaults]
....
VertexShaders=FALSE
...
WindowedModeXOffset=-1
WindowedModeYOffset=-19
WindowedMode=TRUE
[VideoMode]
Width=1366
Height=768
....
WidthWindowed=1366
HeightWindowed=768
WindowedWidth=1366
WindowedHeight=768
One way to look up your resolution is to use the xrandr tool at the terminal.
Run it to get display details. Add a '| grep current' to possible filter out the extra unneeded details;
Link to Image - xrandr Results (https://s31.postimg.org/u9d5rd9jf/tip_xrandr.png)
xrandr | grep current
You'll also note I have a WindowedModeXOffset and WindowedModeXOffset offset listed. These are to shift the Window 'Up and Over' so that it appears mostly fullscreen while being still in Windowed mode. You can manually do this via mouse click-dragging on title bar (might not be able to get 'small' enough numbers that way). My initial quick drag-drop approach resulted in numbers like 4 & -15; expect something along those lines in your file at first. Edit them to 'lower' values if you want to get that window perfectly tight against the edge.
The end.
Thank you for your time. :)
Old_PVP
08-17-2016, 05:24 PM
I can't figure out how to get this to work... I have ran into this blank server screen all day due to my shitty hotel wifi. I am running Windows 10. Are there any quick install apps or do I have to wade through this mess of computer lingo?
Zaela
08-17-2016, 06:06 PM
I can't figure out how to get this to work... I have ran into this blank server screen all day due to my shitty hotel wifi. I am running Windows 10. Are there any quick install apps or do I have to wade through this mess of computer lingo?
For Windows you could try this:
1) Download eqemu-login-helper (https://dl.dropboxusercontent.com/u/70648819/downloads/eqemu-login-helper.exe)
2) Run it (should pop up as an empty console window, keep it open)
3) Go to your eq folder and make a backup copy of eqhost.txt to restore later
4) Edit eqhost.txt to have the following contents:
[LoginServer]
Host=localhost:5998
5) Run EQ
I wouldn't give it much chance of success if the problem is shitty hotel wifi -- probably too many packets getting dropped, which the tool would be no help with.
ketzerei84
06-01-2017, 09:33 AM
This should be stickied instead of archived, middlemand still works like a charm. One thing thats happening to me though: ran my new .bat file through terminal, middlemand doesn't close because after EQ launches I get the following error in terminal:
ERROR - Mouse Wheel supported = TRUE
Edit: middlemand DOES close after eq is closed, it just stays running in the background until eq is closed.
Ruien
07-25-2017, 11:03 PM
I finally found this tool. Thank you so much Zaela.
I actually had given up playing EQ a couple of years ago specifically due to the fact it took 50+ login attempts just to log in (I run under Linux).
2 minutes after finding your github page, the problem is solved, just like that.
tristantio
09-08-2017, 10:50 PM
This tool is great, thanks - I no longer have to connect to a VPN to get the list (for whatever reason, running network over VPN seemed to correct the UDP problem with GNU/Linux wifi).
Priceline
09-12-2017, 03:11 PM
another option, works for me at least, is to tether to your cell which is connected to the wifi.
whiteice217
08-28-2018, 04:37 PM
I needed to make the fix to my machine today and figured I would try to help clean up the mess of reposes to just a quick how to.
Step 1 get middlemand
go to https://github.com/Zaela/p99-login-middlemand and download the zip
Step 2 make a bin folder in your home directory "in terminal"
sudo mkdir /home/YOUR USERNAME HERE/bin
Step 3 navigate to downloaded zip file "in terminal"
if like me it should be in your /home/YOUR USERNAME HERE/Downloads
Step 4 Unzip the file "in terminal"
unzip p99
Step 5 navigate into new zip folder "in terminal"
cd p99-login-middlemand-master
Step 6 Make the file "in terminal"
make -f Makefile
Step 7 Move new file to the new bin folder "in terminal"
mv p99-login-middlemand /home/YOUR USERNAME HERE/bin
Step 8 modify eqhost "in terminal"
My location may be different then yours. But you need to go into your everquest folder under your wine directory. Below is an example.
sudo nano /home/YOUR USERNAME HERE/.wine/drive_c/'Program Files'/Everquest/eqhost.txt
Once here you should see
[LoginServer]
Host=login.eqemulator.net:5998
change it to
[LoginServer]
Host=localhost:5998
then save
Step 9 run EQ and then middlemand together
Launch EQ, then before login start middlemand by using terminal and this command ./home/YOUR USERNAME HERE/bin/p99-login-middlemand
Step 9.1 (Easy start mode) Run EQ and Middlemand at the same time with a single click
If like me you have a desktop icon for EQ you can have middlemand launch with it. Just edit your .sh for eq . You simply need to point the first section to middlemand and the second section to your EQ.exe. You can use the same commands just make sure you update your paths correctly
example
#!/bin/bash
/home/YOUR USERNAME HERE/bin/p99-login-middlemand &
echo $! >/tmp/p99middle.pid
cd /home/YOUR USERNAME HERE/.wine/drive_c/'Program Files'/Everquest
taskset -c 0 padsp wine eqgame.exe patchme 2>/dev/null
kill -9 $(cat /tmp/p99middle.pid)
update this part to your middlemand path
/home/YOUR USERNAME HERE/bin/p99-login-middlemand &
update this part to your eqgame.exe patchme path
cd /home/YOUR USERNAME HERE/.wine/drive_c/'Program Files'/Everquest
taskset -c 0 padsp wine eqgame.exe patchme 2>/dev/null
That's it. Now you can double click your EQ Icon and see the project 1999 servers while connected to wifi. I'll see you in Norrath
I want to mention those that helped me figure this out. I based much of this update on there hard work
fb9: Thanks for the expanded version. I did use parts of it in this update
Zaela: Thanks for the middlemand program. without it this wouldn't be possible
mgellan: Thanks for the directions for the .sh update
Hezron
09-03-2018, 06:43 PM
I stuck at step 6 and a complete linux newb using mint.
When I try to use the Makefile command I get the following error code:
cc -c -o build/main.o src/main.c -O2 -Wall -Wno-strict-aliasing
In file included from src/connection.h:5:0,
from src/main.c:2:
src/netcode.h:10:10: fatal error: errno.h: No such file or directory
#include <errno.h>
^~~~~~~~~
compilation terminated.
Makefile:30: recipe for target 'build/main.o' failed
make: *** [build/main.o] Error 1
I don't know where to go from here?
whiteice217
09-03-2018, 07:13 PM
Are you in the directory where the make file is? Step 5 has you move into the newly unzipped folder. I'm no pro at Linux but it seems like it cannot locate your make file.
Your directory should look something like this.
/home/YOUR USERNAME HERE/Downloads/p99-login-middlemand-master
Castle2.0
11-15-2018, 09:40 AM
Looking for the windows version. The dropbox from Zaela link no longer works. Any suggestions or other download locations?
mantis502
11-13-2019, 02:09 PM
Is this easy to change for the new server list? I am unable to see any servers now.
EDIT:
Never mind that. I had to re-edit my login server to Host=localhost:5998
Castamere
01-24-2020, 04:05 PM
Looking for the windows version. The dropbox from Zaela link no longer works. Any suggestions or other download locations?
Id love this as well!
mrquincy
01-24-2020, 04:22 PM
This is what you're looking for, but you will need to compile it for your operating system:
https://github.com/Zaela/p99-login-middlemand
Castamere
01-24-2020, 04:28 PM
Know of any resources that would help get me started? Maybe i'm not searching for the correct thing, but i'm having a hard time figuring it out. I'm on win 10
mrquincy
01-24-2020, 04:32 PM
I'll have to defer to someone who uses Windows, unfortunately. You could download MS Visual Studio (just some basic free version if possible),, download a zip file of the linked source code, open that code in visual studio and find a button that says "build".
Other than that, I don't know that I'm going to be much help.
loramin
01-24-2020, 04:55 PM
I'm not sure y'all are going down a productive avenue: that program was designed to solve a Linux-specific issue, and even on Linux it doesn't solve that thing very well any more.
I can't swear that if you somehow manage to compile it on Windows, it won't help ... I just really, really doubt it.
But look, if you're on Mac/Windows you're one step ahead: you don't need this tool, and that's a good thing. What you need is the same thing Linux people (even with this tool) need, either:
A) to work the kinks out of your network, to truly fix the issue (and others in the technical forum know way more than me about this; look there), or
B) a $5/month VPN, to avoid it by using someone else's network
mrquincy
01-24-2020, 05:03 PM
FWIW, I agree that this has traditionally been a fix for linux (iwlwifi), not windows. I chose to answer the question rather than solve the problem.
This server is still part of my launching platform and it's never failed me. Loramin if you have more information on how to "fix the network", I'd be interested to hear it.
loramin
01-24-2020, 05:08 PM
FWIW, I agree that this has traditionally been a fix for linux (iwlwifi), not windows. I chose to answer the question rather than solve the problem.
This server is still part of my launching platform and it's never failed me. Loramin if you have more information on how to "fix the network", I'd be interested to hear it.
Personally I've gone with option B), so I don't have the details you're looking for ... but again, I know that people have solved it, and are willing to help others solve it ... I just don't have a specific thread to point you to.
You'll have to either dig through recent posts in the technical forum, looking for ones about this issue, or hope someone else speaks up.
mrquincy
01-24-2020, 05:18 PM
Suspect you're pushing UDP traffic over a TCP vpn, which could make sense. Thanks for sharing. EQ client not set up to handle the number of servers coming in through eqemu. Zaela's fix just filters them so there's less data being sent to client.
loramin
01-24-2020, 05:20 PM
Suspect you're pushing UDP traffic over a TCP vpn, which could make sense. Thanks for sharing. EQ client not set up to handle the number of servers coming in through eqemu. Zaela's fix just filters them so there's less data being sent to client.
Keep in mind Zaela's fix addressed one specific (and Linux-specific issue), that was introduced years ago.
Since then Rogean has made further changes, which is (presumably) why Middleman D stopped working for me awhile back, and I had to use a VPN. But honestly, the VPN is worth the money even separate from P99 (to let me use bit torrent safely), so that's why I haven't bothered to figure out the "real" solution.
acedeathkill
01-28-2020, 05:20 AM
Every patch resets the eqhosts.txt file, which should point to localhost instead of the loginserver for the eqmiddleman utility to work.
Benanov
01-29-2020, 10:38 AM
Has anyone just tried the age-old fix of changing your wireless card's txqueuelen to 0 instead of 1000? (Wifi cards might require 100 or something, gotta frob the knob a bit until you get a setting that works)
No one searches for "Bufferbloat" these days. TCP has a lot of built-in congestion control and can take a while for things to become responsive, and modern network configs put a lot of buffering and increase the lag time for those control systems to realize that yes Virginia we have a gigabit connection upstream.
Benanov
01-29-2020, 07:16 PM
Turns out qlen 0 doesn't fix it. Middlemand on wifi for me too.
rahmani
03-19-2021, 12:51 AM
I have the same problem described here but on LAN, which middleman fixes too.
magicfest2
06-14-2021, 01:58 AM
Built for windows here: https://github.com/rm-you/p99-login-middlemand/releases/tag/win-rel1
Rabcor
04-15-2022, 08:28 PM
Keep in mind Zaela's fix addressed one specific (and Linux-specific issue), that was introduced years ago.
Since then Rogean has made further changes, which is (presumably) why Middleman D stopped working for me awhile back, and I had to use a VPN. But honestly, the VPN is worth the money even separate from P99 (to let me use bit torrent safely), so that's why I haven't bothered to figure out the "real" solution.
Zaela's fix works for me, had a huge issue where everytime i launch the game my server list is empty and i'd have to wait around 30 minutes (not much less, not much more, there's like a window) before the server list would populate on my next login and i'd be able to get in.
Then I crashed on a zone-in and kinda ragequit cuz it'd take 30 mins to get back in, didn't play for a few weeks after.
Then today I tried Zaela's fix and it just worked. Maybe the reason it stopped working for you was that your eqhost.txt got reset or something? :confused:
Apparently it does 2 things, not just one, one of those things was to work around a linux issue with UDP over wifi, but that's just an afterthought, the main thing it does is to filter the serverlist to only show p99 servers, as Zaela said in the first page of this thread, so that the client doesn't have to process as big of a server list which seems to make it less error prone.
Indefinite
04-15-2022, 09:23 PM
I've been using this script to start both Zaela's login helper and eq for years now. I'd still be spamming logins to get servers shown to this day without the login helper, thank you Zaela!
https://gist.github.com/mgeitz/aa295061c51b26d53dd818d0ebb3e37a
Rabcor
04-16-2022, 04:23 PM
That script seems like maybe a bit much, I just installed it via lutris then configured lutris to use a pre-launch script to start a midi synthesizer (qsynth) for working audio and Zaela's login helper:
#!/bin/sh
if pgrep "qsynth" > /dev/null; then
:
else
/usr/bin/qsynth &>/dev/null
fi
if pgrep "p99-login" > /dev/null; then
exit
else
$HOME/Scripts/p99-login-middlemand &>/dev/null
fi
Then a post-exit script when i close the game:
#!/bin/sh
pkill qsynth
pkill p99-login
Honestly i'm a bit surprised Zaela's login helper isn't part of the lutris installer, it really should be. It's a godsend, I almost gave up on playing until i found out about it.
Anybody run into this issue on steam deck (arch linux) when trying to compile Zaela's login helper?
Code:
cc -c -o build/main.o src/main.c -O2 -Wall -Wno-strict-aliasing
In file included from src/connection.h:5:0,
from src/main.c:2:
src/netcode.h:10:10: fatal error: errno.h: No such file or directory
#include <errno.h>
^~~~~~~~~
compilation terminated.
Makefile:30: recipe for target 'build/main.o' failed
make: *** [build/main.o] Error 1
I'm trying to get EQ running on my steam deck but can't get through this step. Anybody give up on this and just use a VPN?
Rabcor
09-03-2022, 11:48 PM
Anybody run into this issue on steam deck (arch linux) when trying to compile Zaela's login helper?
Code:
cc -c -o build/main.o src/main.c -O2 -Wall -Wno-strict-aliasing
In file included from src/connection.h:5:0,
from src/main.c:2:
src/netcode.h:10:10: fatal error: errno.h: No such file or directory
#include <errno.h>
^~~~~~~~~
compilation terminated.
Makefile:30: recipe for target 'build/main.o' failed
make: *** [build/main.o] Error 1
I'm trying to get EQ running on my steam deck but can't get through this step. Anybody give up on this and just use a VPN?
Edit: I just realized, you're not running the command from the correct directory :'D you have to open the terminal inside the build directory before running the make command otherwise it complains about no such file or directory, oh well, I suppose you can still use my precompiled file if u want, if you don't manage to compile it yourself.
I'm not an expert on this, but building software like this usually has dependenies, in a lot of cases though it has the same dependencies. Steam deck's OS is arch based I think, and on arch there's a meta package called base-devel which contains a whole lot of common build dependencies.
One possible solution might be doing this (https://www.reddit.com/r/SteamDeck/comments/t8al0i/install_arch_packages_on_your_steam_deck/) and installing that meta package afterwards. (It's a bad idea for a lot of reasons, but i mean if you're desperate then you're desperate)
There's probably a better solution (I don't have a steam deck but i imagine it has a package manager and an official repository for packages in it which probably contain all the packages under the base-develpackage on arch, and installing each one manually would for instance be a better if slower solution)
If you're linux savvy at all you might also be better off just replacing steamos with a distro of oyur choice (manjaro for instance), if you're not though then you probably shouldn't.
Lastly (and probably most easily) you can just get it precompiled, here's mine, I compiled it on manjaro (the .txt extension was necessary to be able to upload the file, just download it, remove .txt, make it executable (chmod +x) and run it if you want to use it):
Naethyn
09-12-2022, 08:26 PM
Installing base-devel still results in the same error on makefile. I tried using your and my own precompiled file and that throws an error on GLIBC_2.34 not found. For now, tethering to my phone works on steamdeck, but I'd like to get this compiled for arch linux (steam os).
Lastly (and probably most easily) you can just get it precompiled, here's mine, I compiled it on manjaro (the .txt extension was necessary to be able to upload the file, just download it, remove .txt, make it executable (chmod +x) and run it if you want to use it):
I actually was in the correct directory, I was just lazy and copied and pasted this error from someone else who had the same issue as me.
Thank you for posting the precompiled script, I'm going to try that next. I've seen it suggested to install build essential libraries for arch linux, but that also threw back the same error w/ the .h file.
Fingers crossed!
Installing base-devel still results in the same error on makefile. I tried using your and my own precompiled file and that throws an error on GLIBC_2.34 not found. For now, tethering to my phone works on steamdeck, but I'd like to get this compiled for arch linux (steam os).
Have you tried any combination of VPNs? Hardware/software?
I thought I would have to use this, but I just tried p99 anyway and my server select is populating fine on the deck on both my fios and my 4g hotspot. I'm visiting some family this weekend so I'll try from their connection but so far it doesn't seem necessary.
-Mcoy
8bitbang
10-27-2022, 09:39 PM
I installed Project 99 in kubuntu 22.10 and used the p99-login-middlemand. The servers now show up and I made sure to use the latest Spell files. But I'm getting the spells file is out of date error. I have no issues on windows but sadly NZXT put a bad update and now my CPU cooler pump doesn't work under windows. So I resorted to using linux, can anyone provide any feedback?
8bitbang
10-28-2022, 07:37 PM
I installed Project 99 in kubuntu 22.10 and used the p99-login-middlemand. The servers now show up and I made sure to use the latest Spell files. But I'm getting the spells file is out of date error. I have no issues on windows but sadly NZXT put a bad update and now my CPU cooler pump doesn't work under windows. So I resorted to using linux, can anyone provide any feedback?
Figured it out, delete my post
nanopino
11-07-2022, 02:15 AM
Here's a repo with a python script that replicates Zaela's fix. No build tool chain required so it can run on the Steam Deck with minimal effort. Also has some beginner friendly instructions to setup Project 1999 on Steam Deck Gaming mode.
https://github.com/rtrajano/p99_login_helper
Muchew
12-06-2022, 11:43 AM
Here's a repo with a python script that replicates Zaela's fix. No build tool chain required so it can run on the Steam Deck with minimal effort. Also has some beginner friendly instructions to setup Project 1999 on Steam Deck Gaming mode.
https://github.com/rtrajano/p99_login_helper
Thanks for this. Any idea why I cant connect to login server after changing the eqhost? Pretty sure I followed instructions exactly. Prior to eqhost change I was able to login with no servers listed.
Only thing I did differently is install it to an SD card instead of home directly. Not sure why that would matter.
nanopino
12-21-2022, 02:58 AM
Thanks for this. Any idea why I cant connect to login server after changing the eqhost? Pretty sure I followed instructions exactly. Prior to eqhost change I was able to login with no servers listed.
Only thing I did differently is install it to an SD card instead of home directly. Not sure why that would matter.
In desktop mode, try running the script in a separate terminal. Navigate to where the script lives and type ./login_helper.py
Leave it running and start EQ with the eqhost.txt pointed at localhost:5998
The Launch Options might be hiding the error or if you followed the instructions exactly, you will have only 1 minute to login before the script kills itself. Modify the Launch Options to be 5m or more instead of the 1m that was suggested.
Muchew
12-21-2022, 11:32 AM
In desktop mode, try running the script in a separate terminal. Navigate to where the script lives and type ./login_helper.py
Leave it running and start EQ with the eqhost.txt pointed at localhost:5998
The Launch Options might be hiding the error or if you followed the instructions exactly, you will have only 1 minute to login before the script kills itself. Modify the Launch Options to be 5m or more instead of the 1m that was suggested.
Appreciate it. Was able to fix it, but then I accidentally tried to log into a different server. Now I can't connect to the login server for some reason lol. Not clicking the "quick connect" button.
Joffeyhinton2000
04-21-2024, 07:03 AM
I had a thought after my last post. I know that, in my case at least, the server list packets are getting through fine, it's just that the Client chokes on them for whatever reason.
The EQEmu login server does have a lot of servers listed on it, so the server list is somewhat big (~6k), and gets split into several fragments (10 or so) to be sent over the wire. So I thought, why not just filter out all the non-P99 servers before letting the client see them? That way the client only has to deal with a few hundred bytes, in a single packet.
I made a tiny, localhost man-in-the-middle program between the client and the login server to do just that. It is totally working for me, server select is much much more reliable with it running. Some of the code is a bit of a mess right now (lots of last-minute debugging, couldn't test it while I was coding it at work), but you can find it here: https://github.com/Zaela/p99-login-middlemand. Includes a makefile. You can check for yourself, but I can promise that it doesn't try to sniff passwords or anything dumb like that -- all client-to-server packets are simply forwarded and maybe tweaked slightly due to the filtering desychronizing the session somewhat.
Definitely could have some bugs, but I urge you to at least give it a quick try. If it works out well, it shouldn't be too hard to set it up as a daemon and forget about all your server select problems for good.
One thing you will need to do if you want to try it is to update your eqhost.txt to point at the middleman:
[LoginServer]
Host=localhost:5998
It's configured to forward things to the EQEmu login server by default.
How are you supposed to use this, ive been trying to play for days cant get it to work on my pc so i figured ill try my steam deck it will launch but no servers
nanopino
04-21-2024, 10:57 AM
How are you supposed to use this, ive been trying to play for days cant get it to work on my pc so i figured ill try my steam deck it will launch but no servers
Checkout this tool instead. It works with the Steam Deck and the README.md has step by step instructions on how to set it up. The original tool required a build step that doesn't work on the Steam Deck out of the box.
https://github.com/rtrajano/p99_login_helper
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.