Results 1 to 14 of 14

Thread: September & October Patch

  1. #1
    Registered User
    Join Date
    Mar 2012
    Posts
    21

    September & October Patch

    I just pushed to SVN the changes that I've been sharing in the helpdesk thread, which resolve the problems caused by the past couple of game patches. I held off on bumping the version and creating a new tarball due to fransick's indication of possible problems. I'd like to make sure he can get it running. I also included stddef.h in message.h since some users have trouble compiling without it. I'm hoping it doesn't cause problems for those that didn't need it.

  2. #2
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: September & October Patch

    Thanks r6. I havent had time to try it.
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

    ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#

    Famous Quotes:

    Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)

    Razzle: I showeq my wife

  3. #3
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: September & October Patch

    As posted in help forum, compiled fine and is working. I'll set about working on missing opcodes over the weekend. I have that process down and actually enjoy the puzzle it represents more than the game itself these days. Go figure...

  4. #4
    Registered User
    Join Date
    Nov 2010
    Posts
    82

    Re: September & October Patch

    Are there any concide notes on howto find opcodes these days?

    I'd like to be more help round here than I am currently.
    Your dad.

  5. #5
    Registered User
    Join Date
    Mar 2012
    Posts
    21

    Re: September & October Patch

    Quote Originally Posted by Spanners View Post
    Are there any concide notes on howto find opcodes these days?

    I'd like to be more help round here than I am currently.
    Simplest explanation is probably something like this:

    0) Hurry up and read this post before the next EQ patch comes out
    1) Startup a stable version of ShowEQ
    2) Click Network -> Log -> Zone Data (or hit F7)
    3) Login a pet-class character to EQ to a mostly quiet zone like Arena, Guild Hall, etc.
    4) Create a pet
    5) Dismiss the pet
    6) Kill a mob
    7) Rename ~/.showeq/logs/zone.log to ~/.showeq/logs/zone.log.yyyyMMdd
    8) Preserve that renamed zone log file for when the next patch comes out
    9) On patch day, repeat steps 1-6
    10) Compare the new zone.log with the preserved zone.log and try to match the packets with the new opcodes
    11) Update zoneopcodes.xml with new opcodes
    12) Rinse and repeat until satisfied

    Those steps will work for patches that don't change structs. For heavier patches, it will likely require digging through the zone.log packet dumps with a fine tooth come to re-align the structs.

  6. #6
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: September & October Patch

    Working on more opcode updates tonight... already have a bunch updated but you guys had most of the critical ones done already!

  7. #7
    Registered User
    Join Date
    Nov 2010
    Posts
    82

    Re: September & October Patch

    Thanks r6express, I'll do 1-8 now and await patch day

    great stuff.
    Your dad.

  8. #8
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: September & October Patch

    SVN updated with opcode updates. Also made a slight change to interface.cpp to ignore struct match on groupinvite.

    Didn't increment the version number just yet as I am hopeful I'll be able to make a few other fixes this week (not traveling for change). Just need to better understand r6express' changes... now if Sandy doesn't knock out the power...

  9. #9
    Registered User
    Join Date
    Mar 2012
    Posts
    21

    Re: September & October Patch

    Quote Originally Posted by fransick View Post
    SVN updated with opcode updates. Also made a slight change to interface.cpp to ignore struct match on groupinvite.

    Didn't increment the version number just yet as I am hopeful I'll be able to make a few other fixes this week (not traveling for change). Just need to better understand r6express' changes... now if Sandy doesn't knock out the power...
    Fransick,

    The charProfileStruct change is now modeled after how the spawnStruct is populated. Instead of doing a simple byte copy from the packet data into the charProfileStruct, it now starts at data byte 0 and dynamically reads each piece of information and then puts it into the correct struct location. I had to make this change because EQ now sends dynamically sized information, primarily related to string sizes. Specifically, the potion belt or bandolier data segments were compacted to a set of dynamically sized strings instead of a hardcoded string length. This made the packet smaller but forced us to read the charProfileStruct more intelligently. If you look at the new function called fillProfileStruct(), you can see how it starts at byte 0 of the packet's data array and starts to read each individual piece of info. Also, I noticed that apparently for a very long time showeq was making a lot of assumptions about how many array elements are in the object arrays embedded in the packet data. However, I found that each array inside the packet is prefaced with the array length. So my new function first reads the array length and then iterates across that count, populating each new array element. So it's now less brittle for those occasions when SOE increases the amount of elements stored in the arrays. That said, there are still several MAX_*** constants that should be removed from showeq and instead the charProfileStruct array should be instantiated based on the dynamic count I'm now reading in the packet. I didn't take the time to clean that up because it was busy work and I didn't have a lot of time to spend on it. Also, some more cleanup would be to remove all those now unneeded filler struct members like unknown00801, etc. Since we don't fill the struct in one big byte copy those filler members are pointless now.

    I'll try to check the forums more frequently in case you have more questions.
    Last edited by r6express; 11-02-2012 at 07:27 AM.

  10. #10
    Administrator
    Join Date
    Sep 2005
    Posts
    354

    Re: September & October Patch

    Quote Originally Posted by r6express View Post
    Fransick,

    The charProfileStruct change is now modeled after how the spawnStruct is populated. Instead of doing a simple byte copy from the packet data into the charProfileStruct, it now starts at data byte 0 and dynamically reads each piece of information and then puts it into the correct struct location. I had to make this change because EQ now sends dynamically sized information, primarily related to string sizes. Specifically, the potion belt or bandolier data segments were compacted to a set of dynamically sized strings instead of a hardcoded string length. This made the packet smaller but forced us to read the charProfileStruct more intelligently. If you look at the new function called fillProfileStruct(), you can see how it starts at byte 0 of the packet's data array and starts to read each individual piece of info. Also, I noticed that apparently for a very long time showeq was making a lot of assumptions about how many array elements are in the object arrays embedded in the packet data. However, I found that each array inside the packet is prefaced with the array length. So my new function first reads the array length and then iterates across that count, populating each new array element. So it's now less brittle for those occasions when SOE increases the amount of elements stored in the arrays. That said, there are still several MAX_*** constants that should be removed from showeq and instead the charProfileStruct array should be instantiated based on the dynamic count I'm now reading in the packet. I didn't take the time to clean that up because it was busy work and I didn't have a lot of time to spend on it. Also, some more cleanup would be to remove all those now unneeded filler struct members like unknown00801, etc. Since we don't fill the struct in one big byte copy those filler members are pointless now.

    I'll try to check the forums more frequently in case you have more questions.
    Very cool... I'll see if I can make heads or tails of it all and do some of the busy cleanup. I have very little programming experience (read that as none in fact) so it is a bit of a jigsaw puzzle exercise for me but I enjoy the challenge and the learning that comes with it! As soon as I have some time at home, I'll see if I can get after that busy work.

    Somewhere Ratt, Dophaz and others are cringing that I am playing with code...

  11. #11
    Registered User
    Join Date
    Mar 2012
    Posts
    21

    Re: September & October Patch

    Quote Originally Posted by fransick View Post
    Very cool... I'll see if I can make heads or tails of it all and do some of the busy cleanup. I have very little programming experience (read that as none in fact) so it is a bit of a jigsaw puzzle exercise for me but I enjoy the challenge and the learning that comes with it! As soon as I have some time at home, I'll see if I can get after that busy work.

    Somewhere Ratt, Dophaz and others are cringing that I am playing with code...
    I just turned on email notifications for my forum account, so if you want me to do a quick review when you're finished, PM me or reply here and I'll come a'running.

  12. #12
    Did you SEQ today? BlueAdept's Avatar
    Join Date
    Dec 2001
    Posts
    2,008

    Re: September & October Patch

    Just a quick FYI. Got hit hard with sandy. Still no power. 3 1/2 feet of water. Heater and water heater shot. No inet at place Im staying. Hope to get back to normal soon.
    Filters for ShowEQ can now be found here. filters-5xx-06-20-05.tar.gz

    ShowEQ file section is here. https://sourceforge.net/project/show...roup_id=10131#

    Famous Quotes:

    Ratt: WTF you talkin' about BA? (Ok.. that sounds like a bad combo of Diffrent Strokes and A-Team)

    Razzle: I showeq my wife

  13. #13
    Developer
    Join Date
    Jul 2004
    Posts
    920

    Re: September & October Patch

    Fransick, no one is going to cringe. It's great that you're getting your hands dirty. It is people like you that have showeq going over the years through many different sets of developers. I didn't know what I was doing when I started either, but through the patience and help of ksmith, Doodman, FatherNitWit, Quackrabbit and others, I eventually knew what I was doing.

    Some of those MAX_ constants are used cross-struct in everquest.h. Some are used to malloc UI data. Someone who wants to clean things up should just remove them all, see what horrors happen, and clean up the remains.

  14. #14
    Developer
    Join Date
    Nov 2007
    Posts
    539

    Re: September & October Patch

    Quote Originally Posted by BlueAdept View Post
    Just a quick FYI. Got hit hard with sandy. Still no power. 3 1/2 feet of water. Heater and water heater shot. No inet at place Im staying. Hope to get back to normal soon.
    i feel for those in need. Good luck BA.

    You are doing a bang up job Fran. Keep at it. Everyone appreciates your hard work.

    Razzle

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

You may post new threads
You may post replies
You may post attachments
You may edit your posts
HTML code is Off
vB code is On
Smilies are On
[IMG] code is On