PDA

View Full Version : Updated SVN



ShortBuss
06-20-2013, 09:42 AM
Referencing this thread: http://www.showeq.net/forums/showthread.php?6661-How-to-get-ShowEQ
The check out command: svn co https://seq.svn.sf.net/svnroot/seq/showeq/trunk showeq

Seems this will be changing based on a note I got from sourceforge.
**Note that <sf_userid> would be replaced with your sourceforge user id


Your svn repository in upgraded project seq is now ready for use.

Old repository url: http://seq.svn.sourceforge.net/svnroot/seq

New repository checkout command: svn checkout --username=<sf_userid> svn+ssh://<sf_userid>@svn.code.sf.net/p/seq/svn/ seq-svn

You should do a checkout using the new repository location. The old repository is read-only now.

For more detailed instructions on migrating to your new repo, please see https://sourceforge.net/p/forge/community-docs/Repository%20Upgrade%20FAQ/


I haven't tried checking into the old URL but based on the email it's supposed to be read only now. I'll check June changes into the new URL. I'm not sure but I think this means the old URL will still have old code and the only way to get the latest code from then on will be to use the new checkout command.

Anyone else get this note on the repository change?

BlueAdept
06-20-2013, 11:09 AM
Hmm...I did not get a notice of anything from SF about it. I guess it went to Ratts email. I haven't used the SVN in a long time. Ill have to make the changes to the documentation for it I guess.

Ill try to get some time on Friday to see if I need to do anything.

ShortBuss
06-20-2013, 11:29 AM
Maybe best to wait until I get the check-in done to be sure we need a change. Once check-in is done we could check out from both old and new URL and see which can see the changes.

fransick
06-20-2013, 12:37 PM
I got the notice and made the necessary changes to start using the new URL. Checking out from the new URL and applying your latest patch seems to be working... but you probably already knew that. Great work SB : )

ShortBuss
06-20-2013, 01:00 PM
I'm mostly given up on the mass of op-codes. There's a few key ones I've automated and beyond those I don't even know how the rest help ShowEQ. For the past month we've only had the minimal ones and no one has complained about missing function in ShowEQ.

Since the patch is out I'm going to wait a couple days before updating SVN so that I avoid causing any confusion.

fransick
06-20-2013, 01:33 PM
I'm mostly given up on the mass of op-codes. There's a few key ones I've automated and beyond those I don't even know how the rest help ShowEQ. For the past month we've only had the minimal ones and no one has complained about missing function in ShowEQ.

Since the patch is out I'm going to wait a couple days before updating SVN so that I avoid causing any confusion.

You are spot on, I believe any opcode that doesn't have a corresponding struct really isn't doing anything functionally. Maintaining them is a PITA but when I was learning I used to update them to eliminate more unknowns from the logs. Also back in the day there was a chance someone would get inspired by known opcodes and build functionality to utilize them. Today I mostly update the easy ones that do nothing just to make reading the logs easier when it gets down to finding the harder ones. Of course, I've been mostly MIA the past few patches too and no one is complaining, haha. I wonder how many active ShowEQ users there are these days?

ShortBuss
06-20-2013, 01:36 PM
Technically I'm not longer an active user as of a couple months ago due to loss of interest in EQ again, but I do still enjoy working through the fixes on patch day. I just can't bare to go through all those op-codes. Having the dates in there really help to remember which ones are important for what people are using it for now.

fransick
06-20-2013, 01:44 PM
I need to learn how to update the position struct changes they are so fond of making now. I cannot make heads or tails of that struct or the logs I try to capture to figure it out. Even the debug code to the console doesn't make sense to me. With some help, figured out and mapped changes to playerprofile struct a while back and at least that's stayed fairly stable. It's off a little now but not in any meaningful way. I enjoy working on patch day changes more than playing too, so might try to fix some of the small struct changes if I have time.

ShortBuss
06-20-2013, 02:07 PM
The only way to fix the position data is to use the two debug sections. Start with the 42byte one and change the if to 1 in player.cpp. This one is a bit easier to grasp because it always seems to be byte aligned and you don't have to worry about shifting a bit at a time to locate. Zone in and watch the output to console.

First start by figuring out if anything retained from last time. Usually one or two do. It's best if you do first do this with working debug so you can see exactly how it's supposed to look working. Get used to what min/max values you'll see in some of the output. I've been keeping the debug section current so you can just enable the if and it will show proper output.

Once you know which shouldn't be changed then time to start finding and fixing. This is all best guess with trial and error. Line up as best you can moving in X direction only, then move in X direction and watch console. Take your best guess at which one may be X based on movement. The number won't match your loc, so you can ignore that. You are looking for a number that changes as you move and stays the new value when you stop. You should see it do this if you move forward or backward. Figure out what you think it's being reported under and move the X variable there. Save, recompile, launch, zone, and see if you got it. If not, take note where it wasn't, then try to find again. The more you find the easier the next one is as there's less places for it to hide.

Note that X/Y/Z numbers change as you move and stay at the new value when you stop. Delta X/Y/Z numbers change when you are moving then reset to 0 when you stop. If bit's are not perfect it may not go back to zero so you just may see it change as you move then go back to what it was when you stop. Heading and Delta Heading behave the same as previous two. Note that Heading is 0 when you face north (I think) and then increases to a max of 2000 or so before stopping back at zero with a full circle. Pitch is 0 if you are facing straight ahead (I think). Animation behaves a lot like the X/Y deltas except that it's allways a positive value when you move forward regardless of direction and negative when you move backwards. It resets to zero when standing still.

The place holders will change in size as you shift them around. You may have to remove some as they are no longer needed or add in new ones. Keep the sizes below 12 and if you end up with 20 bits padding make it 2 place holders. That way you can more easily spot variables hiding in a placeholder position. As you add/remove placeholders update the print statement to show/remove them also.

Note that changes int he debug section do not affect the map at all. These only affect console output. So you won't see things working in the map until you carry the working changes into everquest.h.

The 24byte position data is very similar, but a bit harder because things can be off by a single bit. This is in spawnshell.cpp and there's 2 debug blocks here. You want the one that has an if on the output based on character id (0x1234 by default). Zone in a second character and take note of it's ID in showeq. Change the if to check for that ID. Make sure that the 2nd character is very close to your showeq character as the position data doesn't work if you are a short distance away.

You find the values much the same way as the 42byte one, but you may run into a situation where you think you have a variable, X for example, but the value is double, quadrupled, halved, etc. In this case you can start shifting the location a bit at a time either up or down. Can never remember which direction is which, so it's trial and error. Just keep shifting it a bit at a time until it lines up where you need. Of course moving everything around to stay at the 24 bytes is always tough. It does seem to always byte align every 4 bytes so as you shift things around try to keep them adding up to the 32bit sections.

fransick
06-20-2013, 02:17 PM
Excellent tutorial... when I last worked on it, I remember being able to basically identify the different variables (X,Y,Z etc) but wasn't making the connection on how to express it with padding etc in a struct. I'll take a look at a working debug now and see if that helps prep me for fixing when it breaks next time. Just reading your tutorial has given a few different things to look at and try : )

ShortBuss
06-20-2013, 02:22 PM
In case you hadn't figured it out the number in the variable after the ":" is the number of bits it is. So for example padding03:05; would be a 5 bit long variable. So when looking at the 24byte pos data trying to add things up to 32bits you could have a section with X @ 19 bits, Heading @ 10 bits, then throw in 3 bits padding.

For the variables without the ":" in them they are normal byte aligned sizes. For example a float is 4 bytes (32bits).

ShortBuss
06-24-2013, 08:05 AM
I have confirmed the old URL and old check-out method no longer work as that repository is no longer updated. So we need the instructions updated in a few places. First check-out now requires a sourceforce ID to be created. I don't know how access works and I hope anyone can check-out by default but could be some project configuration is needed. Anyway to request a sourceforge ID if you don't already have one: https://sourceforge.net/user/registration

Checkout-command changes to the following (replacing <sf_userid> with your sourceforge userid):


svn checkout --username=<sf_userid> svn+ssh://<sf_userid>@svn.code.sf.net/p/seq/svn/showeq/trunk showeq


Also the URL to view the code over HTTP has changed to the following:
http://svn.code.sf.net/p/seq/svn/showeq/

Everything else should be unchanged.

BluesClues
06-25-2013, 01:22 PM
I was able to pull down the svn 790 via this url without user/pass. I'm guessing it doesn't matter as I will probably never check something in.


svn checkout http://svn.code.sf.net/p/seq/svn/showeq/trunk showeq

ShortBuss
06-25-2013, 02:17 PM
ah great, I hadn't thought to try it by HTTP instead of SVN+SSL and glad to see that is working, so no need for creating a user ID.

BlueAdept
06-25-2013, 07:08 PM
Real busy for the next couple days. Ill try to update some of the stuff on Friday.

ShortBuss
10-31-2013, 08:43 AM
*poke poke*

We still need an update in the help thread here: http://www.showeq.net/forums/showthread.php?6661-How-to-get-ShowEQ

Just a small change to the first code block. This is the new checkout command:


svn co https://svn.code.sf.net/p/seq/svn/showeq/trunk showeq

BlueAdept
11-03-2013, 12:16 PM
Sorry I didnt know I needed to change that. I updated it. Its been about a year since I did a compile.

fransick
12-13-2013, 05:41 PM
I have sometime tonight to look at it but for the life of me I cannot get SEQ to compile with the position debug code in player.cpp. I change the (0) to (1) and compile but no debug data. I flew the red eye home this morning and may be having a senior moment but not having any luck.

fransick
12-14-2013, 12:29 PM
Managed to work out playerSelfPosStruct but having challenges with playerSpawnPosStruct... just capable enough to be dangerous with the movement packets so it's slow going. Like building a puzzle without the pictures sometimes.

notaguru
12-15-2013, 12:08 PM
Managed to work out playerSelfPosStruct but having challenges with playerSpawnPosStruct... just capable enough to be dangerous with the movement packets so it's slow going. Like building a puzzle without the pictures sometimes.

Thanks Fransick, your efforts are greatly appreciated!

fransick
12-15-2013, 04:28 PM
Thanks Fransick, your efforts are greatly appreciated! Thanks! Think I have it figured out now and can move onto opcodes. Should have something uploaded to SVN tonight.

Spanners
12-15-2013, 05:22 PM
You sir, are a star!
Due to the fact everything had moved around, my rudimentary efforts to ind and fix things were pointless at best as I figured the buyable aa cap must have broken something quite badly.

fransick
12-15-2013, 10:06 PM
SVN Updated... looks like everything is working okay. You may need to disable the ExpUpdate opcode as it has caused seg faults in the past. I didn't have any issues this time around but haven't stress tested it extensively to make sure it's stable. Wondering if it seg faults when you are max XP. I have to kill a few more mobs to test this theory. Losing too much XP on raids lately.

Enjoy

Spanners
12-16-2013, 02:26 AM
Thank you for your continued work on fixing this :)

Spanners
12-16-2013, 10:10 AM
Confirmed working on a raspberry pi again, although its not mine :-)

BlueAdept
12-16-2013, 01:50 PM
Thanks for the hard work and for keeping SEQ going.