Go Back   EQEmulator Home > EQEmulator Forums > General > General::General Discussion

General::General Discussion General discussion about EverQuest(tm), EQEMu, and related topics.
Do not post support topics here.

Reply
 
Thread Tools Display Modes
  #1  
Old 03-02-2005, 04:25 PM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default Communicating Version Numbers

As of now, the EQEmu community really seems to have no way of explaining client versions except for patch dates. Patched before so and so date but after some other date. And a lot of times I have seen people that are unsure of what version they have. The reason why I am posting this message is because I am proposing we set up some sort of general system of checking and communicating what client version someone has. I just spent about 15 minutes using a crc32 api that I had used with a patch system I wrote and some MFC to create a prototype of what I'm trying to demonstrate.

The program is called EQVerCheck.exe. What it does is simple. You place it in your EQ directory and run it, and it spits back a 2 different version numbers. A short one, which will most likely change every time live has a patch that breaks eqemu except in very rare circumstances. Or, in case it doesnt, or in the event that we need to look at it in more detail, a long version string.


In the above picture, you can see what was spit out for me in my EQ folder that contains my client version that is compatible with 0.6.0. It spits out the following information (which is copy/pastable!)
Quote:
SHORT VERSION: SEQ12107
LONG VERSION: EQ803157012C78A812C924A7C100000000B8291587
Heres how it works. Both codes consists of 6 sections. The first section is the indentifier, for either the SEQ (Short Version String) or EQ (Long Version String). The rest of the string in the long version is devided into 5 parts, 8 digits per section. Each section represents an individual file. The short version after the 1st section, is divided into 5 more sections as well, leaving 1 digit per section.

Quote:
SHORT VERSION: SEQ|1|2|1|0|7
LONG VERSION: EQ|80315701|2C78A812|C924A7C1|00000000|B8291587
In respective order, the 5 sections represent the checksum for the following files: eqgame.exe, eqgraphicsdx9.dll, eqmain.dll, eqgfx_dx8.dll, mss32.dll. Looking back at my 5th section (4th file), It appears I have that file missing. This is a file used in older clients and is no longer used anymore in 6.0, but is still used in 5.3 and older versions, and so I included it.

The short version string essentially takes the last digit of every section and displays it alone. More often than not, a patch to live will change the whole version number for the files that were patched. I would imagine this would not be a problem to display 1 digit.

Like I said, this was just an idea I had and I whipped it up to present. What do you think about something like this? Im posting this in the general forum because I want to start a discussion more on how we can get a better system of explaining patch versions and communicating them to new users. Ideally, I think it would be alot more organized and eliminate some confusion to tell people that, for instance, 0.6.0 is compatible with client SEQ12107 rather than "if you patched after 12/1/2004 and before 12/15/2004". If anyone is interested I'll release the binary tomorrow (when im awake). But I'd like to hear your thoughts first.

This what what the program spat out for me in my various client versions.
Quote:
0.6.0 Client:
SHORT VERSION: SEQ12107
LONG VERSION: EQ803157012C78A812C924A7C100000000B8291587

0.5.7 Client:
SHORT VERSION: SEQB8A67
LONG VERSION: EQE3BA1BFBE29BABE86737812A1E2727A6B8291587

0.6.1 Client: (LIVE)
SHORT VERSION: SEQ38E67
LONG VERSION: EQ525C423393085DA81BB74D3E1E2727A6B8291587

What do you guys think?
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
Reply With Quote
  #2  
Old 03-02-2005, 04:37 PM
RangerDown
Demi-God
 
Join Date: Mar 2004
Posts: 1,066
Default

I'm all for it as long as it is a self-contained application. That is, it requires no setup files, and only depends on Windows components that are pretty much guaranteed to be in your bare bones install. Lest we have to support them on getting this version checker going before we can support them with their original question... too complicated

Hopefully this utility doesn't lead the users to ask the forbidden question. If so, the team will of course look down on it.
__________________
<idleRPG> Rogean ate a plate of discounted, day-old sushi. This terrible calamity has slowed them 0 days, 15:13:51 from level 48.
Reply With Quote
  #3  
Old 03-02-2005, 04:58 PM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default

Yeah its just a binary. Unless your running 95 and you've never run an MFC app, its only going to need the binary. You just pop it into your EQ directory and hit go... I originally had intended to make it so that you would hit browse somewhere and select your EQ folder, but I figured this was easier.

Edit: It appears Im actually supposed to have eqgfx_dx8.dll in my EQ directory, so, the proper SEQ string for 0.6.0 is: SEQ12167
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.

Last edited by Cisyouc; 03-03-2005 at 01:01 AM..
Reply With Quote
  #4  
Old 03-03-2005, 01:42 PM
Cisyouc
Demi-God
 
Join Date: Jun 2004
Location: Heaven.
Posts: 1,260
Default

For the download, it is now available here.
http://www.eqemulator.net/forums/showthread.php?t=17992
__________________
namespace retval { template <class T> class ReturnValueGen { private: T x; public: ReturnValueGen() { x = 0; }; T& Generator() { return x; }; }; } int main() { retval::ReturnValueGen<int> retvalue; return retvalue.Generator(); }
C++ is wonderful.
Reply With Quote
  #5  
Old 03-04-2005, 02:24 AM
Belfedia
Demi-God
 
Join Date: Jan 2005
Posts: 1,109
Default

Fine work !!!

Now we need devs make same in EQEMU's exe
If zone.exe and world.exe have same version number
we can find right zone/world for right eqclient to easy
but it is a Gadget i know :p
__________________
__________________________________________________ _____________________________________
I speak english like a spanish cow..., I speak spanish like a english pudding...
But I try to speak good french !!! (Non au langage SMS sur forum)
http://eqfroggy.new.fr : Froggy French Server Website.
Reply With Quote
  #6  
Old 03-12-2005, 04:37 PM
ActionAlligator
Fire Beetle
 
Join Date: Jan 2005
Posts: 13
Default What Version Is This Compatible With?

Hi. Um, my version is SEQAA767. Is there a way to find out what version I am compatible with, or do I ask? If there is, can you please help? Thx.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:39 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3