Well I guess that the first thing which you have to do is get a clear understanding of how to build packet for example how do I add a word or a dword to a packet. how do I create a new one. and how do I sniff new packets. Well right now it's getting more difficult since edxSilkroadLoader doesn't work for 1.304 so you can't use that analyzer right now.
But I recommand you to learn how things work in the source. I mean using someone's source is easy but improving it and figuring out how he did things is kinda difficult with hardly any comment.
And I'm not giving you the correct code i'm just posting the correct patch packet. Cause if you're working on an emulator you have to know how you can build packets by yourself and not to let someone else update the packets for you so you can edit some stuff. That way you don't learn anything.
btw do you use any packet logger? because it helps a lot in the development cause you can check if a packet is send and more important correct and complete.
Oke well the final thing why don't you post the packet which causes this problem. You can post the source and the packet format. for example:
Code:
StartPacket(0x600D); // For patch info and news info
writer.appendByte(0);
writer.appendByte(1); // Error Code. 1 = no error?
SendPacket();
Code:
WORD Size
WORD Opcode
WORD Security
BYTE News/Patch Flag // 1 in the first patch packet. 0 in second patch packet. same for news??
BYTE Error flag // 1 no error, 2 means error??
As you can see the first piece of code is from my C++ project which isn't really portable but if you take a look at the second one you can use it in any language since this is the structure of the packet. the only difference is the implementation in your emulator.