EQ2Interface.com
Search Downloads


Go Back   EQ2Interface > Developer Discussion > UI Developer Discussion

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Unread 06-20-2007, 02:19 AM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default eq2ui_settings.ini

Goaldan's post got me poking around in this file. My Internet has been off for a week and won't be back on for another 3 so I'm stuck with dial up and can't seem to log in to make more test because of a long update.

Here is a quick note on Goaldan's find.

Offsets 0000-0005: Unknown

Offsets 0006-0009: Total number of custom channels

If there are any chat channels

Offset 000A: The custom channel information starts.

Bytes 0-3: Channel Number. Bytes must be read in reverse order to get the correct decimal value.
Bytes 4-5: Length of the channel name. As before, bytes must be read in reverse order to get the correct decimal value.
Bytes 6+: Name of the channel.

I've managed to extract more information.

After the last byte of chat channel data or at Offset A in the case of no chat channel is a unknown byte. After that byte is where the window data starts.

The way the file stores the window is by module. (inventory, mainhud ect.) Then the windows that has been accessed that are in that module. If a window has never been accessed then its settings will not show up in the settings.ini file.

Ref:

B# = Byte (8 bits) followed by a note number
W# = Word (16 bits) followed by a note number


The byte structure layout of the ui setting data is as follows:

W1,W2,<model name bytes>,W3,W4,<window name bits>,B5,W6,B7...

Data Notes:

1. Number of modules stored in the settings file.
2. Length of the model name
3. Number of window stored in the model
4. Length of the window name
5. Unknown (buffer byte I guess /shrug) This Byte is always 01
6. Window data Byte count
7. This is the start of the window data. From this point on when I refer to the start of the window data this is the point I mean and I will give it the name Window Data Offset: 0;

After that it, starts over with W4 until you reach the total number of windows that is in W3. After the last Window data Byte it starts over with W2.

There are also 15 Bytes at the end of the file that I am unsure of their use ATM.

Window data offset, these are counting from Window Data Offset 0:

PackLocation: Offset 4, Size Byte
Horizontal Position: Offset 5-9, Size DWord
Vertical Position: Offset 9-12, Size Dword
Width: Offset 13-14, Size Word
Height: Offset 17-18, Size Word
Visible: Offset 21, Size Byte
__________________
Landiin's EQ2MAP Updater Discussion Download

Last edited by Landiin : 07-05-2007 at 08:31 PM.
Reply With Quote
  #2  
Unread 06-20-2007, 03:41 AM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

Here is a little app I tossed together to explore the settings.ini file.

I do not bleave this breaks any EULA as we modded this file all the time in eq1 and no where have they said not to. If it is let me know and I will promply stop exploring this path any more.
__________________
Landiin's EQ2MAP Updater Discussion Download

Last edited by Landiin : 06-21-2007 at 09:42 PM.
Reply With Quote
  #3  
Unread 06-21-2007, 09:52 PM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

I added some items to the app to help speed up conversions.
  • Added an ASCII Grid that will reflects the HEX in the data grid.
  • Added a binary display that converts the HEX of the selected cell to binary.
  • Added a Convert selected control that will convert a selected range of cells to Decimal, it will also display the selected range in binary.
This should help in decoding the bit wise changes to Bytes and help find screen X and Y positions.
__________________
Landiin's EQ2MAP Updater Discussion Download

Last edited by Landiin : 06-25-2007 at 09:00 AM.
Reply With Quote
  #4  
Unread 06-25-2007, 09:05 AM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default Rc 1

Here is RC 1, I think I've added every thing that any one could need to snoop on the data in this file.

Redesigned the Apps layout and added a compare data tab that scans for changes in the selected file and displays them side by side with the one in memory . I'll edit this post later when I have more time for all the details

for now here is the new version.

Leave some feed back if you have any ideas or suggestions.
__________________
Landiin's EQ2MAP Updater Discussion Download

Last edited by Landiin : 06-29-2007 at 08:14 AM.
Reply With Quote
  #5  
Unread 06-25-2007, 12:04 PM
gm9 gm9 is offline
gm10-1
Premium Member
EQ2Interface Super Mod
Featured
 
Join Date: Feb 2006
Posts: 6,479
Default

Pretty cool idea, should be easy enough to decode it based on that. Was a bit confused until I noticed that "open uisettings file" will not load the selected file but rather the first file in the folder.

Another issue I experienced was that for one window in one file the cursor would be set at an incorrect position (middle of window name). The file structure appeared correct, at least the problematic window data started exactly at the position where it should be according to the previous window's data byte count (your W5), so I assume it's an issue with your app. Can give you the file if you want to test it out.

From quickly looking at my default uisettings files for windows where I know the sizes I can tell you the following (position given as decimal byte offset with start of the window data section as byte 1):

Code:
Bytes - Contents
~~~~~~~~~~~~~~~~~
14+15 - Window width
18+19 - Window height
Strangely enough I saw no further differences between windows, in particular no location information. Will have to experiment for those.

A really useful function that you should add to your program would be to allow the user to remove module/window information from the file.

In any case thanks for decoding the file so far, this will speed up the process of updating my default settings files a lot!
__________________
P R O F I T U I ∙ R E B O R N [Auto-Updater] | [Portal] | [F.A.Q.] | [Support Forums]
~ Retired ~
If it does not work, you likely installed it incorrectly. Always try a clean install before reporting bugs.
Reply With Quote
  #6  
Unread 06-25-2007, 01:56 PM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

Yes I should relabel that button to open ui setting folder or something other then file.

Yes please give the the settings file that causes the cursor to be placed wrong and what window it is doing it on.

I'll add in the ability to modify the file, I was just using to decode the file, but it'll be easy enough to allow byte changes and the removing of unwanted window settings. Guess While I am at it, I'll go ahead and put in chat channel management too.
__________________
Landiin's EQ2MAP Updater Discussion Download
Reply With Quote
  #7  
Unread 07-05-2007, 03:04 PM
Landiin Landiin is offline
Slayer of clock cycles
This person is a EQ2Map developer.
Featured
 
Join Date: Nov 2004
Server: Oasis
Posts: 3,464
Default

Quote:
Originally Posted by Landiin
After the last byte of the chat channel or Offset A if there isn't any chat channels there are 3 unknown bytes. They are most always 01, 07, 00 or 01, 06, 00 for me any ways.
Well figured out what two of the 3 bytes are. The fist byte after the last chat channel data is still unknown, but the next two are the number of modules that is stored in setting files. I can't believe I missed that, it was so obvious. It was sticking out like a sour thumb when I was looking at the adding chat channel issue..
__________________
Landiin's EQ2MAP Updater Discussion Download
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

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 12:26 AM.


Our Network
EQInterface | EQ2Interface | WoWInterface | LoTROInterface | ESOUI | MMOUI