They are the nasty little buggers responsible of most of the WTFs that can be heard theese days in the vicinity of my room.
And I want their heads in my wall.
I’ve been concentrating my efforts in making SimpleConnect.exe (a dplay documentation example) work, which means dirty work building and parsing messages, and some threading headaches. I’ve managed to speak dplay almost perfectly, but dplay natives still have a hard time undesrtanding me.
I’m trying to make one wine’d server instance of SimpleConnect work with a native client one, but even if I follow the protocol almost perfectly and my messages seem correct, there’s a point in the session negotiation where the native side stops following the rules that it follows without problems when talking with another native instance. Maybe he can smell I’m not pure. Or something.
After failing for no aparent reason in the server side, I tried switching sides and play as a humble client, and after fixing many bugs and implementing a nice amount of functionality, I got to the same point: there’s a point in the negotiation where the native server side can smell my fear and stops being nice. DPERR_NONEWPLAYERS, he says. Well, I never really loved you either. And my orgasms were faked.
Knowing me, I’m almost sure in a few days/weeks/months I’ll study this problem again and will end up hitting my head and yelling “oh god, how stupid I am”, discovering the moronic little bug that’s triggering all this head scratching, but, oh well, I’m already used to live with myself.
So for now, I suppose I’ll switch again to make the tests work, and to implement properly some little hacks I’ve wrote to make simple some complex details of the implementation, like a helper process to listen in UDP port 47624, or implementing stable TCP sessions between clients and server (right now I’m setting the connection up and down in each TCP message, instead of saving the socket and reuse it)