View Single Post
  #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