D2X-XL Bug Reports - MS Windows
Moderators: Grendel, Aus-RED-5
- Aus-RED-5
- DBB Friend
- Posts: 1604
- Joined: Fri Apr 23, 2004 7:27 am
- Location: Adelaide, South Australia
- Contact:
Diedel. D2x-w32 v1.3.67
Have a look at this. This is in high res 1024x768.
http://img8.echo.cx/my.php?image=staticscreen5qr.jpg
Need I say whats wrong in this pic?? hehe
Next. Another high res 1024x768 pic. The "kills" text is out of its box.
http://img205.echo.cx/my.php?image=kills5fi.jpg
Thanks mate!
Have a look at this. This is in high res 1024x768.
http://img8.echo.cx/my.php?image=staticscreen5qr.jpg
Need I say whats wrong in this pic?? hehe
Next. Another high res 1024x768 pic. The "kills" text is out of its box.
http://img205.echo.cx/my.php?image=kills5fi.jpg
Thanks mate!
Ferno,
about D2X-W32 tracker communication:
D2X-W32 game hosts simply send a one byte message to each tracker in their least, and the tracker uses the sender address of that data package as server IP:Port (which should not be the internal address). I thought that would work which every networking setup (direct / firewall / router / NAT / you name it). Am I wrong? I am not a networking expert.
Do direct UDP/IP connections work? If not you might need to adjust your firewall settings.
I could probably create a menu to allow for adding trackers in-game, but for the time being you can add additional trackers in d2x.ini. See my web site for details (go to the d2x page and check the side menu for the appropriate link).
Write back if you have/need more info.
Diedel
about D2X-W32 tracker communication:
D2X-W32 game hosts simply send a one byte message to each tracker in their least, and the tracker uses the sender address of that data package as server IP:Port (which should not be the internal address). I thought that would work which every networking setup (direct / firewall / router / NAT / you name it). Am I wrong? I am not a networking expert.
Do direct UDP/IP connections work? If not you might need to adjust your firewall settings.
I could probably create a menu to allow for adding trackers in-game, but for the time being you can add additional trackers in d2x.ini. See my web site for details (go to the d2x page and check the side menu for the appropriate link).
Write back if you have/need more info.
Diedel
I am not sure exactly what it means to switch ports. What settings on the computer and router(linksys) should I look at? I don't want to take up a lot of space in this thread, so if the answer is long would you open another thread to help me out?MD-2389 wrote:Everytime I've encountered it, it was always with someone that had high packet loss. It didn't matter if the other person used d2x or not.Diedel wrote:Camron,
I have heard of this problem before, but have never encountered it myself - neither when starting two D2X instances on the same machine, nor when playing via UDP/IP in a LAN.
Dennis,
what is '1366'?
Camron, its either something setup wrong on that computer or in the switch/router. Try switching ports and see if it follows.
thanks
UDP dirct connections work, but when I was playing a game with Psion and grendel using it, Grendel kept disappearing. I believe the packets were simply dropped and it would not receive any position or fire packets from grendel at that point on. But, it did receive the item pickup packets on my end. it was very strange.
"D2X-W32 game hosts simply send a one byte message to each tracker in their least, and the tracker uses the sender address of that data package as server IP:Port (which should not be the internal address)."
yep, that makes sense. But it becomes all for naught when D2x only sees the internal IP (IE: 192,168.1.199). The 192 IP range is what's considered an internal only IP and is not used on the internet.
So if I can't specify an external tracker IP (IE: 201.145.6.34) I don't think it will be able to see any games, even if the tracker is running properly.
"but for the time being you can add additional trackers in d2x.ini"
I already have that done. I can't tell if it's working or not though.
"D2X-W32 game hosts simply send a one byte message to each tracker in their least, and the tracker uses the sender address of that data package as server IP:Port (which should not be the internal address)."
yep, that makes sense. But it becomes all for naught when D2x only sees the internal IP (IE: 192,168.1.199). The 192 IP range is what's considered an internal only IP and is not used on the internet.
So if I can't specify an external tracker IP (IE: 201.145.6.34) I don't think it will be able to see any games, even if the tracker is running properly.
"but for the time being you can add additional trackers in d2x.ini"
I already have that done. I can't tell if it's working or not though.
Ferno,
just in case the term "tracker" is not entirely clear let me briefly explain it:
A tracker is a software process running on some server somewhere in the internet that keeps track of game hosts ("servers") that register with it.
So if you open a UDP/IP game via tracker as game host, your game host sends a 1 byte data packet to every D2X tracker the inet address it has of. This packet simply means "register me". The D2X tracker should then add the IP address of the sender of that message to its list of active D2X game hosts. A client will send a 1 byte packet to all D2X trackers known it saying "send me your list of game hosts". That list simply contains the IP addresses the tracker has received a registration request from.
So I don't really understand why D2X-W32 should only see local IP addresses (192.168.xxx.xxx).
In case you are setting up your own tracker (e.g. with the Perl code VEX-Munk has kindly provided), you need to make sure that its "external" IP address is known by all ppl who want to use it.
To allow you to check if your tracker works, I will add a switch to d2x.ini ("-internal_tracker {0|1}"). Use "-internal_tracker 0" to turn off the built-in tracker.
Edit: Switch added to v1.3.70, no new version number. So if you already have v1.3.70, just re-download it.
just in case the term "tracker" is not entirely clear let me briefly explain it:
A tracker is a software process running on some server somewhere in the internet that keeps track of game hosts ("servers") that register with it.
So if you open a UDP/IP game via tracker as game host, your game host sends a 1 byte data packet to every D2X tracker the inet address it has of. This packet simply means "register me". The D2X tracker should then add the IP address of the sender of that message to its list of active D2X game hosts. A client will send a 1 byte packet to all D2X trackers known it saying "send me your list of game hosts". That list simply contains the IP addresses the tracker has received a registration request from.
So I don't really understand why D2X-W32 should only see local IP addresses (192.168.xxx.xxx).
In case you are setting up your own tracker (e.g. with the Perl code VEX-Munk has kindly provided), you need to make sure that its "external" IP address is known by all ppl who want to use it.
To allow you to check if your tracker works, I will add a switch to d2x.ini ("-internal_tracker {0|1}"). Use "-internal_tracker 0" to turn off the built-in tracker.
Edit: Switch added to v1.3.70, no new version number. So if you already have v1.3.70, just re-download it.
More info: I tried to start a game using the build-in tracker. I'm running a NAT firewall and the tracker seemed to have picked up my external IP address. At one point Psion could see it but not join (keept poping in and discoed) beause I started the game w/ only one person (me) in it -- could that be changed ? After Psi figured out what I's doing, I tried waiting for Psi to show up on the player select list. At that point I lost all my IP connections that where going on in the background (Teamspeak & mIRC) -- something is fishy there. Psi then started a direct UDP game which I could join (and get toasted by him ). I saw the messages that Ferno was joining (and disco'ing) but never saw his ship or shots/missiles. I also could kill Psi (well, once in a while..) but I didn't see spew from those kills. I did open the default tracker/game udp port 28342 (IIRC) and 28343 (for good measure..) -- anything more ?
Sidenote -- at the end I accidently hit the fire button of my stick while being somewhere in the menu system. Lost all direction controls from that moment on (arrows on the kb, x/y/r on the stick). Not sure if it's related. Restarting d2x didn't fix it, the controls where still configured and the stick worked fine in D3. Gave up after that, will check in the evening if a reboot fixes that or if something broke in XP.
Edit: is there a way to delete the F9-F12 mapping for macros ? I'm using F11 for push-to-talk, it'll stop all ship motion dead in the water even if I'm holding down the forward key (have to release and re-push it for the ship to start moving again). Even stops the shaking effect of an earth shaker BTW..
Sidenote -- at the end I accidently hit the fire button of my stick while being somewhere in the menu system. Lost all direction controls from that moment on (arrows on the kb, x/y/r on the stick). Not sure if it's related. Restarting d2x didn't fix it, the controls where still configured and the stick worked fine in D3. Gave up after that, will check in the evening if a reboot fixes that or if something broke in XP.
Edit: is there a way to delete the F9-F12 mapping for macros ? I'm using F11 for push-to-talk, it'll stop all ship motion dead in the water even if I'm holding down the forward key (have to release and re-push it for the ship to start moving again). Even stops the shaking effect of an earth shaker BTW..
My brother had the same problem yesterday: Tried to join a game via tracker -> Skype connection was cancelled. D'oh. I don't know if this is D2X-W32 related and have to check that.
I had played a direct UDP/IP in the past with three participants and it had worked well - only my brother had big problems, but I blame his modem connection and ISP for these.
Edit: I have found and fixed one bug in the D2X-W32 tracker code that could cause such problems. Maybe there are more such bugs I haven't yet found though.
I had played a direct UDP/IP in the past with three participants and it had worked well - only my brother had big problems, but I blame his modem connection and ISP for these.
Edit: I have found and fixed one bug in the D2X-W32 tracker code that could cause such problems. Maybe there are more such bugs I haven't yet found though.
-
- Defender of the Night
- Posts: 13477
- Joined: Thu Nov 05, 1998 12:01 pm
- Location: Olathe, KS
- Contact:
I meant physically switch the ports you two use in the router. Thats it.Camron wrote:I am not sure exactly what it means to switch ports. What settings on the computer and router(linksys) should I look at? I don't want to take up a lot of space in this thread, so if the answer is long would you open another thread to help me out?
thanks
I'm familiar with how a tracker works. I've used at least three over the past few years.
Basically how a firewall setup works is this: you have your computer or computers that share an internal set of IP addresses, EG: 192.168.xx.xx. They are all routed through a central machine, be it an older PC delegated for firewall duties or a dedicated hardware appliance. It takes the internal IP's and ports, then forwards them to an external IP. EG: 154.20.xxx.xx
The external to internal (and vice versa) translation is handled by what's known as NAT (Network Address Translation). NAT also handles port forwarding. EG: Data that arrives on the external side on port 2092 can be 'shunted' to port 34193.
Hope this helps.
I don't understand why either.Diedel wrote:So I don't really understand why D2X-W32 should only see local IP addresses (192.168.xxx.xxx).
Basically how a firewall setup works is this: you have your computer or computers that share an internal set of IP addresses, EG: 192.168.xx.xx. They are all routed through a central machine, be it an older PC delegated for firewall duties or a dedicated hardware appliance. It takes the internal IP's and ports, then forwards them to an external IP. EG: 154.20.xxx.xx
The external to internal (and vice versa) translation is handled by what's known as NAT (Network Address Translation). NAT also handles port forwarding. EG: Data that arrives on the external side on port 2092 can be 'shunted' to port 34193.
Hope this helps.
Tried the 71 version yesterday night -- it still disconnects all other connections while I's waiting in the tracker game post window for ppl to join. Took a bit longer than before but still funky..
Another issue -- The joystick sensitivity setting. As far I can tell it's changing the turn rate for 100% joystick actuation, ei. on min setting it takes ~10s, and on max setting ~2s for a 360 on a fully actuated axis. What sensitivity should change tho is the way where on a joystick axis scale the max. turn rate of ~2s/360 is reached, not the turnrate itself. Eg. I want the turnrate at full speed at 20% joystick actuation to get the 3pd feeling (short throw). I'm pretty sure that's the way D1-D3 deal w/ the stick. (D3 for sure.)
Could you please change that ? Pretty please ?
Another issue -- The joystick sensitivity setting. As far I can tell it's changing the turn rate for 100% joystick actuation, ei. on min setting it takes ~10s, and on max setting ~2s for a 360 on a fully actuated axis. What sensitivity should change tho is the way where on a joystick axis scale the max. turn rate of ~2s/360 is reached, not the turnrate itself. Eg. I want the turnrate at full speed at 20% joystick actuation to get the 3pd feeling (short throw). I'm pretty sure that's the way D1-D3 deal w/ the stick. (D3 for sure.)
Could you please change that ? Pretty please ?
You can ignore the IP address D2X-W32 displays when hosting UDP/IP games - that's not the IP address the tracker gets.Ferno wrote:Whenever I select 'start udp/ip netgame via tracker' or 'start udp/ip netgame'
Grendel,
actually I have never changed the joystick sensitivity code ... and I think I need to read your post three more times to understand it. But "pretty please" is a very strong argument.
Let's see.. if Y is the multiplier of the turn rate in the range -1..1 (w/ the turn rate at 2s/360) and X is an axis input in the range -1..1:
Y = min(a*X^2,1) * s(X)
Where s(X) is the sign of X (-1 or +1) and
a is the sensitivity setting in the range of 1..~5
Should do the trick
Bitte, bitte..
Edit: The linear version would be min(a*X,1) w/ a in the range of 1..~4. Above formula would be better since it's a flatter curve around zero.
Y = min(a*X^2,1) * s(X)
Where s(X) is the sign of X (-1 or +1) and
a is the sensitivity setting in the range of 1..~5
Should do the trick
Bitte, bitte..
Edit: The linear version would be min(a*X,1) w/ a in the range of 1..~4. Above formula would be better since it's a flatter curve around zero.
kyaaaa!!! I just played coop online with a friend I haven't played with in forever! And it was great! Until we got to level 3. Red key forcefield didn't deactivate upon shooting the control panel, at which point we just duked it out (I won after blinding him with my Flash missiles ) and I left for work. I noted also that the forcefield at the end of level 2 didn't activate after the control panel was blown, but the forcefields blocking the Full Map, and later the Plasma Cannon and two Guideds worked just fine. So I don't know. I also noticed some weird transparency issues: I have the transparent effects enabled, yet explosions on robots from my friend's ship's weapons weren't (or at least when I payed attention, I was off elsewhere hording all the weapons for the most part ). That one shouldn't be too hard to track down.
oh yeah, and he couldn't join by tracker, he said that when he selected the netgame on the list, it blabbed something to the effect of "invalid selection" and wouldn't let him join. I had already started the coop game at this point (the "at least two players" alert window still shows btw), so it's possible that had something to do with it.
oh yeah, and he couldn't join by tracker, he said that when he selected the netgame on the list, it blabbed something to the effect of "invalid selection" and wouldn't let him join. I had already started the coop game at this point (the "at least two players" alert window still shows btw), so it's possible that had something to do with it.
You only get invalid choice when selecting an empty netgame slot in the game selection list - usually.
When trying to join netgames in progress, D2X-W32 does some consistency check that fails e.g. with D2:Counterstrike Level 1 - because that level has a coop bug (4 coop players plus player 1 - there are only 3 additional coop players allowed, player 1 being the fourth).
This check is not performed when joining a game before the host launches into the mine.
Maybe his problem was related to this.
Re forcefield problems: I have noted some sync'ing problems when playing coop with my brother recently (he had to fight a boss I had already killed, shooting an enemy invisible for me, there was spew floating around he or me couldn't see). This might be due to packet loss though. It would be nice if somebody could check this with an IPX coop game (via KALI).
When trying to join netgames in progress, D2X-W32 does some consistency check that fails e.g. with D2:Counterstrike Level 1 - because that level has a coop bug (4 coop players plus player 1 - there are only 3 additional coop players allowed, player 1 being the fourth).
This check is not performed when joining a game before the host launches into the mine.
Maybe his problem was related to this.
Re forcefield problems: I have noted some sync'ing problems when playing coop with my brother recently (he had to fight a boss I had already killed, shooting an enemy invisible for me, there was spew floating around he or me couldn't see). This might be due to packet loss though. It would be nice if somebody could check this with an IPX coop game (via KALI).
"Maybe his problem was related to this."
Yeah, it is. So why'd you add that in there? Take it out! As long as the two peers' level data matches, it's fine, ne?
D2 does sometimes have problems like that, but I don't think there's ever been boss problems, nor were the problems so common. Maybe you should add some kind of periodic state checking to make sure clients are synced and that nothing is prohibitively outside the gameplay intent of the level (ie, if a control panel is shot, whatever it does needs to have actually occurred).
What makes it fun is that the forcefield remained active on both systems, even though the control panel had been shot by him. If it were related to packet loss, he would have been able to let me into the red door and we could have finished the level. And I would have been horribly late for work.
Yeah, it is. So why'd you add that in there? Take it out! As long as the two peers' level data matches, it's fine, ne?
D2 does sometimes have problems like that, but I don't think there's ever been boss problems, nor were the problems so common. Maybe you should add some kind of periodic state checking to make sure clients are synced and that nothing is prohibitively outside the gameplay intent of the level (ie, if a control panel is shot, whatever it does needs to have actually occurred).
What makes it fun is that the forcefield remained active on both systems, even though the control panel had been shot by him. If it were related to packet loss, he would have been able to let me into the red door and we could have finished the level. And I would have been horribly late for work.
That consistency check serves to avoid more players entering a game in progress than the level allows for. Ofc this doesn't need to be checked for if players enter a game not yet launched, as the max. number of players is checked for there (or so ).
I need to check why it fails for D2:CS Level 1 - apart from it having too many coop players. What happens in the consistency check function is that it counts the number of active players and "ghosts" (i.e. killed and not yet respawned players), and for some reason 4 ghosts are reported. Maybe coop players are reported as "ghosts", but I don't yet know. This function needs to be fixed, not removed.
I need to check why it fails for D2:CS Level 1 - apart from it having too many coop players. What happens in the consistency check function is that it counts the number of active players and "ghosts" (i.e. killed and not yet respawned players), and for some reason 4 ghosts are reported. Maybe coop players are reported as "ghosts", but I don't yet know. This function needs to be fixed, not removed.
.73 problems
I'm having a problem with the newest version (.73). It only renders about 4 or 5 cubes deep around the ship for me. I've got it set to render the whole mine.
.72 worked great.
Is there any way you could host .72 again? Maybe host the most recent previous version as an alternate download for people with problems with the newest version?
Thanks for all the work on the program.
.72 worked great.
Is there any way you could host .72 again? Maybe host the most recent previous version as an alternate download for people with problems with the newest version?
Thanks for all the work on the program.
I was having the same problem as Elektron, and turning off render entire mine fixed the issue, but I do have a couple questions.
Firstly in version 1.3.72 I had render entire mine on, and it was working fine, so I'd think something had to have changed between builds to cause that. Any idea what that would be?
Secondly: Is the mouse sensitivity under the control options section supposed to reset every time? I like to have it at max, but it keeps going back to halfway when I exit and then run the game again. Setting it every time is just a teensy bit of an annoyance because I forget half the time until I am already playing. Of course i can change it in game
Thirdly: I was having problems with the game exiting during multiplayer games. I would go into the settings to change some toggles, but when I exited from those, the entire game would close. It seems to have cleared up though, was just testing it with a friend over the UDP
Finally this last is not a question at all, but rather a BIG heartfelt thanks for the work you have done so far. Hope it makes up for my nitpicky questions at least a little bit. I had not played d2 multiplayer for litterally years before trying out the UDP last night and finding a game that was up. I'd forgotten just what an absolute blast it is. I dunno why but other FPS type games just don't match the intensity.
Matrix / Arayenya
Firstly in version 1.3.72 I had render entire mine on, and it was working fine, so I'd think something had to have changed between builds to cause that. Any idea what that would be?
Secondly: Is the mouse sensitivity under the control options section supposed to reset every time? I like to have it at max, but it keeps going back to halfway when I exit and then run the game again. Setting it every time is just a teensy bit of an annoyance because I forget half the time until I am already playing. Of course i can change it in game
Thirdly: I was having problems with the game exiting during multiplayer games. I would go into the settings to change some toggles, but when I exited from those, the entire game would close. It seems to have cleared up though, was just testing it with a friend over the UDP
Finally this last is not a question at all, but rather a BIG heartfelt thanks for the work you have done so far. Hope it makes up for my nitpicky questions at least a little bit. I had not played d2 multiplayer for litterally years before trying out the UDP last night and finding a game that was up. I'd forgotten just what an absolute blast it is. I dunno why but other FPS type games just don't match the intensity.
Matrix / Arayenya
You aren't nitpicking, you are reporting bugs, which is appreciated.
I had fiddled around with the render entire mine option to improve frame rate with that mode (w/o success though), and it looks like some of that stuff is still active. I will take a look into that.
Anyway, you do not need that option for any of the usual levels out there - only Jeff250 managed to create little architectural wonder (containing lots of semi-transparent walls) recently that needs that option to render properly. Even a new level of mine also having a lot of see-through areas does not have that problem, and I do not tend to build simple structures.
Mouse sens should ofc remain the way it was set. I will look into that, too.
I had fiddled around with the render entire mine option to improve frame rate with that mode (w/o success though), and it looks like some of that stuff is still active. I will take a look into that.
Anyway, you do not need that option for any of the usual levels out there - only Jeff250 managed to create little architectural wonder (containing lots of semi-transparent walls) recently that needs that option to render properly. Even a new level of mine also having a lot of see-through areas does not have that problem, and I do not tend to build simple structures.
Mouse sens should ofc remain the way it was set. I will look into that, too.
Thanks
Good to hear that you'll be looking into it. I see 1.3.74 is out. Time for me to go download
Weird Stuff
Might have discovered a bit of an odd bug when playing via UDP. I was playing with 2 other people tonight, one of them being the game creator, the other joining like me. After a few seconds or so it would show the other joiner as having disconnected, and I would not be able to see him. He was still in the game though, and the host could see us both - we just could not see or interact with each other. We tested with a different map, and with each of us taking turns hosting. Same thing would happen for the two people that joined - they would not be able to see or interact with each other after a few seconds had passed. We found a workaround for the problem though with having one of the two joiners just rejoin the game. After that it was smooth sailing without any more strangeness.
On a side note.. thanks for fixing the bug with various settings not saving. Makes life so much easier.
Matrix / Arayenya
On a side note.. thanks for fixing the bug with various settings not saving. Makes life so much easier.
Matrix / Arayenya
Arayenya,
I cannot say much about the join problem, I will have to investigate this. Looks like the joiners do not receive the complete network information by the game host ...
If D2X-W32 crashes after calling up or leaving a menu, I need to know which menu that was. This usually happens when the program's option template for that menu is too small to hold all of that menu's options, so if initializing the template some memory is overwritten that does not belong to the template, this usually causing the program to crash.
I cannot say much about the join problem, I will have to investigate this. Looks like the joiners do not receive the complete network information by the game host ...
If D2X-W32 crashes after calling up or leaving a menu, I need to know which menu that was. This usually happens when the program's option template for that menu is too small to hold all of that menu's options, so if initializing the template some memory is overwritten that does not belong to the template, this usually causing the program to crash.
I think that D2x lost save game backwards compatibility within the last few versions. I've been playing fairly regularly, but now all of my saved games crash within a second of loading them with the latest version of D2x. I had a 1.3.13 version of D2x laying around, and it could load the old saved games successfully. Saved games that the latest version of D2x saves seem to be loaded successfully though as well.