Changing resolution in OldSchool Clients (ZSZC, ECSRO)

Results 1 to 13 of 13
  1. #1
    Developer sladlejrhfpq is offline
    MemberRank
    Oct 2011 Join Date
    671Posts

    Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    I decided to re-release, since a lot asked me for it about pm, enjoy.

    Hi guys here is my next release. It was kinda hard to do, but I decided to release it, and try to fix the swsro files together. I don't want to see in my thread such things like "bugged files" etc. These are the oldest files, from the best times, and it worth the time to care with it. If you follow this guide, you will be able to change your oldschool client's resolution to your screen size. You will need different files for each resolution, so if there are any good coders, please contact me, and code a resolution changer tool. I am using the ZSZC client. I am going to release some tools for it.
    So let's start.

    You will need these tools:

    XVI32
    OllyDBG
    Photoshop
    And some tools for the ZSZC Client, which you can find at the bottom of this thread.

    ZSZC Client's blowfish key: (if somebody need)

    ASCII: 2009Äę
    HEX: 32 30 30 39 C4 EA

    So, the first thing we will do is, to edit our sro_client.exe, and add the resolutions we want to use. It can be 5 different resolutions.
    Open the sro_client.exe with OllyDBG

    Press Ctrl+G, and go to this address: 00544B41
    We are at the available resolutions now, your screen should look like this:



    Lets see what is there, here is the first resolution
    Code:
    00544B41   . 81F9 20030000  CMP ECX,320
    00544B47   . 75 0A          JNZ SHORT SRO_Clie.00544B53
    00544B49   . 8B45 04        MOV EAX,DWORD PTR SS:[EBP+4]
    00544B4C   . 3D 58020000    CMP EAX,258
    00544B51   . 74 50          JE SHORT SRO_Clie.00544BA3
    CMP ECX,320 is the width of the first resolution, which is 800 in decimal
    CMP EAX,258 is the height of the first resolution, which is 600 in decimal

    so, as we can see, the available resolutions are:

    800x600
    1024x768
    1280x1024
    1152x864
    1600x1200

    lets say, we want to add 1920x1080 resolution instead of the 1600x1200
    what we need to do, is click on this line:
    Code:
    00544B89   > 81F9 40060000  CMP ECX,640
    hit spacebar, and change 640 to 780 ( so we changed 1600 to 1920 )

    do the same for this line, but this time change 4B0 to 438
    Code:
    00544B98   . 3D B0040000    CMP EAX,4B0
    We have to do this for 2 more times, at different addresses. Lets go to 0063F4F7
    do the same as before. After you are done, go to 00647D51

    its a little bit different, then before, but the same thing. You will see something like this:
    Code:
    00647DA1   > 3D 40060000    CMP EAX,640
    00647DA6   . 75 0D          JNZ SHORT SRO_Clie.00647DB5
    00647DA8   . 81BC24 6801000>CMP DWORD PTR SS:[ESP+168],4B0
    Do the changes again. After it, we are done with sro_client.exe
    for saving it:
    Right Click->Copy->Select All
    Right Click->Copy to executable->Selection
    A new window will appear.
    Right Click on it->Save file

    Now the resolution is available. But the client will still start with 1024x768.
    We need to modify SROptionSet.dat, which is in the Settings folder of your client. If you dont have one, start your client to generate.
    If you have it, make a backup, it is important and open this file with XVI32
    press Ctrl+G, and go to hex offset: 5A
    you will see 00 04 there, we must change it to 80 07 (780)
    after it go to hex offset: 62, and change 00 03 to 38 04

    Maybe it looks strange, that why 07 80 is stored as 80 07, it is the little endian byte order, which is used by intel processors.

    If you did everything correct, it should look like this:



    Our client will start with 1920x1080.
    Next problem is, the position of all buttons, and texts. These settings are stored inside the Media.pk2, in resinfo folder.

    We will need the following files:
    ginterface.txt
    pstitle.txt
    pscharacterselect.txt
    pscharacterchina.txt

    Extract them using the ZSZC Pk2 Extractor.

    Here are the list which functions (or whatever they are) need to be modified:

    ginterface.txt

    Minimap position:
    GDR_MINIMAP:CIFMinimap



    pstitle.txt

    Login Screen:

    Login Window
    GDR_STA_LOGINWINDOW:CIFStatic

    Connect
    GDR_BTN_OK:CIFButton

    Exit
    GDR_BTN_CANCEL:CIFButton

    Requesting user confirmation
    GDR_TEXT_MESSAGE:CIFTextBox

    Server Select
    GDR_STA_SERVERWINDOW:CIFStatic

    Select
    GDR_BTN_SACCEPT:CIFButton

    Cancel
    GDR_BTN_SCANCEL:CIFButton


    pscharacterselect.txt

    Create
    GDR_BTN_CREATE:CIFButton

    Cancel
    GDR_BTN_BACK:CIFButton

    Start
    GDR_BTN_START:CIFButton

    Delete
    GDR_BTN_DELETE:CIFButton

    Cancel
    GDR_BTN_BACK2:CIFButton

    Restore
    GDR_BTN_RESTORE:CIFButton

    Text Box
    GDR_TEXT_MESSAGE:CIFTextBox

    Delete Time Window
    GDR_STA_REMAINTIME:CIFStatic


    pscharacterchina.txt

    Confirm
    GDR_BTN_OK:CIFButton

    Cancel
    GDR_BTN_BACK:CIFButton

    Explain Window
    GDR_STA_EXPLAIN:CIFStatic

    Rotate Window
    GDR_STA_ROTATE:CIFStatic

    Customize Window
    GDR_STA_CUSTOM:CIFStatic

    Create Window
    GDR_STA_WCREATE:CIFStatic

    Text Box
    GDR_TEXT_MESSAGE:CIFTextBox


    I will show an example how it works, lets see for example ginterface.txt, and the minimap settings

    Code:
    	GDR_MINIMAP:CIFMinimap
    	{
    		ClientRect=RECT,"0,0,0,0"
    		Color=COLOR,"255,49,79,177"
    		DDJ=STRING,"interface\\minimap\\mm_window.ddj"
    		FontColor=COLOR,"255,255,255,255"
    		FontIndex=INTEGER,"0"
    		HAlign=INTEGER,"1"
    		ID=INTEGER,"10"
    		Rect=RECT,"892,6,140,184"
    		Style=INTEGER,"0"
    		SubSection=STRING,""
    		Text=STRING,""
    		UV_LB=POINT,"0,1"
    		UV_LT=POINT,"0,0"
    		UV_RB=POINT,"1,1"
    		UV_RT=POINT,"1,0"
    		VAlign=INTEGER,"1"
    	}
    The position where the minimap starts in pixels from the left side
    The position where the minimap starts in pixels from the top of the screen
    The width of mm_window.ddj in pixels
    The height of mm_window.ddj in pixels

    we have to modify only the first and the second.
    I know it would be easy to calculate from the screen sizes (1024-892=132, 1920-132=1788), but we will use a different way, to determine the positions, because in the other files, it will be different. (x and y are 0,0 so we have to set the values)

    Log in first, with 1024x768, and make a screen shot when you are in the game.

    Open this screenshot in photoshop. It should look like this>



    Create a new image, and make the size 1920x1080
    Go back to the image you just opened, select it and copy to the 1920x1080 one. After it move it to the upper right corner, and click on the background layer (it is important).



    We have to determine the width from the left side. Select everything on the picture, from the map's left side to the screen's left side. Press Ctrl+C. Click on File->New...

    It will show you the width and height of the selected part of the picture.




    As you can see on the picture, it says 1793 pixels. "(1024-892=132, 1920-132=1788)". It is nearly the same value, as I've calculated before, only 5 pixels difference, but in other cases we won't be able to do this as I've said it before.
    So, if there would be 0, we couldn't calculate, but we could check it, in this example. For example later at buttons, it will be really different. Note that in some cases you have to move your 1024x768 pixels picture to the left upper corner, to the right downer corner etc.
    Also note, that we just placed the minimap in the right position. Before you start editing, make sure you have screenshots from:

    Ingame(as we just did)
    Login screen
    Character select screen
    Character select screen, when you have selected a character
    Character select screen, when you have selected a deleting character
    Character create screen.

    If you start the game now, with the SROptionSet.dat you modifed to 1920x1080, you won't be able to log in, because of the buttons. You will have to place them to the right position, this is why I said make the pictures before you start.
    If you will start the client with 1024x768, log in, and change to 1920x1080, the minimap position won't work, this is why you have to do everything as I wrote in the tutorial.

    Maybe there are easier way to get the pixels, I am not good in editing pictures, and it was the easiest one for me, but you can see how you should start.
    Also I am releasing my working 1366x768 resolution. (my laptop's screen size), so you can see how I fixed for example the text boxes. I believe it is not difficult, to make a resolution following this tutorial, but takes time for sure.

    /////////////////////////////////////////////////////////////////////////////////////

    Addresses for ECSRO sro_client.exe

    Code:
    004819C5     81F9 20030000  CMP ECX,320
    004819CB   . 75 0A          JNZ SHORT sro_clie.004819D7
    004819CD   . 8B47 04        MOV EAX,DWORD PTR DS:[EDI+4]
    004819D0     3D 58020000    CMP EAX,258
    004819D5   . 74 50          JE SHORT sro_clie.00481A27
    004819D7   > 81F9 00040000  CMP ECX,400
    004819DD   . 75 0A          JNZ SHORT sro_clie.004819E9
    004819DF   . 8B47 04        MOV EAX,DWORD PTR DS:[EDI+4]
    004819E2   . 3D 00030000    CMP EAX,300
    004819E7   . 74 3E          JE SHORT sro_clie.00481A27
    004819E9   > 81F9 00050000  CMP ECX,500
    004819EF   . 75 0A          JNZ SHORT sro_clie.004819FB
    004819F1   . 8B47 04        MOV EAX,DWORD PTR DS:[EDI+4]
    004819F4   . 3D 00040000    CMP EAX,400
    004819F9   . 74 2C          JE SHORT sro_clie.00481A27
    004819FB   > 81F9 80040000  CMP ECX,480
    00481A01   . 75 0A          JNZ SHORT sro_clie.00481A0D
    00481A03   . 8B47 04        MOV EAX,DWORD PTR DS:[EDI+4]
    00481A06   . 3D 60030000    CMP EAX,360
    00481A0B   . 74 1A          JE SHORT sro_clie.00481A27
    00481A0D   > 81F9 40060000  CMP ECX,640
    00481A13   . 0F85 85030000  JNZ sro_clie.00481D9E
    00481A19   . 8B47 04        MOV EAX,DWORD PTR DS:[EDI+4]
    00481A1C   . 3D B0040000    CMP EAX,4B0
    Code:
    005EBF6D  |> 81F9 20030000  ||CMP ECX,320
    005EBF73  |. 75 08          ||JNZ SHORT sro_clie.005EBF7D
    005EBF75  |. 81FE 58020000  ||CMP ESI,258
    005EBF7B  |. 74 40          ||JE SHORT sro_clie.005EBFBD
    005EBF7D  |> 81F9 00040000  ||CMP ECX,400
    005EBF83  |. 75 08          ||JNZ SHORT sro_clie.005EBF8D
    005EBF85  |. 81FE 00030000  ||CMP ESI,300
    005EBF8B  |. 74 30          ||JE SHORT sro_clie.005EBFBD
    005EBF8D  |> 81F9 00050000  ||CMP ECX,500
    005EBF93  |. 75 08          ||JNZ SHORT sro_clie.005EBF9D
    005EBF95  |. 81FE 00040000  ||CMP ESI,400
    005EBF9B  |. 74 20          ||JE SHORT sro_clie.005EBFBD
    005EBF9D  |> 81F9 80040000  ||CMP ECX,480
    005EBFA3  |. 75 08          ||JNZ SHORT sro_clie.005EBFAD
    005EBFA5  |. 81FE 60030000  ||CMP ESI,360
    005EBFAB  |. 74 10          ||JE SHORT sro_clie.005EBFBD
    005EBFAD  |> 81F9 40060000  ||CMP ECX,640
    005EBFB3  |. 75 44          ||JNZ SHORT sro_clie.005EBFF9
    005EBFB5  |. 81FE B0040000  ||CMP ESI,4B0
    Code:
    005EB141  |. 3D 20030000    CMP EAX,320
    005EB146  |. 75 0A          JNZ SHORT sro_clie.005EB152
    005EB148  |. 817C24 48 5802>CMP DWORD PTR SS:[ESP+48],258
    005EB150  |. EB 42          JMP SHORT sro_clie.005EB194
    005EB152  |> 3D 00040000    CMP EAX,400
    005EB157  |. 75 0A          JNZ SHORT sro_clie.005EB163
    005EB159  |. 817C24 48 0003>CMP DWORD PTR SS:[ESP+48],300
    005EB161  |. EB 31          JMP SHORT sro_clie.005EB194
    005EB163  |> 3D 80040000    CMP EAX,480
    005EB168  |. 75 0A          JNZ SHORT sro_clie.005EB174
    005EB16A  |. 817C24 48 6003>CMP DWORD PTR SS:[ESP+48],360
    005EB172  |. EB 20          JMP SHORT sro_clie.005EB194
    005EB174  |> 3D 00050000    CMP EAX,500
    005EB179  |. 75 0A          JNZ SHORT sro_clie.005EB185
    005EB17B  |. 817C24 48 0004>CMP DWORD PTR SS:[ESP+48],400
    005EB183  |. EB 0F          JMP SHORT sro_clie.005EB194
    005EB185  |> 3D 40060000    CMP EAX,640
    005EB18A  |. 75 0A          JNZ SHORT sro_clie.005EB196
    005EB18C  |. 817C24 48 B004>CMP DWORD PTR SS:[ESP+48],4B0
    The differences between the two clients are only these, and of course the blowfish key
    ECSRO's blowfish key is the same as the official clients (169841), so you can use the same tools as you use for vsro files.
    /////////////////////////////////////////////////////////////////////////////////////

    Download links:

    ZSZC Client:
    Hotfile.com: ?????????? ?????? ? ???? ????: ZSZC.part1.rar
    Hotfile.com: ?????????? ?????? ? ???? ????: ZSZC.part2.rar

    but as I've said before, we need different files to Media.pk2 for every resolutions, and I did only 1366x768
    If you need offsets for level cap, party matching, skill show up etc, you can find it in this thread:
    http://forum.ragezone.com/f722/offse...client-848484/

    Please, if it helped you, press a like, it was much work for me to perform it.
    Last edited by sladlejrhfpq; 22-06-13 at 10:24 AM.


  2. #2
    Account Upgraded | Title Enabled! LeMbo is offline
    MemberRank
    Sep 2012 Join Date
    241Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    I hope it help someone :) good luck

  3. #3
    Account Upgraded | Title Enabled! MarcoTozzi is offline
    MemberRank
    Nov 2009 Join Date
    276Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    I would be lazy to do this, nor to find all this stuff :D gj

  4. #4
    Novice bardaryo is offline
    MemberRank
    Mar 2013 Join Date
    2Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Thanks alot man...

  5. #5
    Xeulin™ Showtek is offline
    MemberRank
    Nov 2011 Join Date
    UKLocation
    264Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Thanks, thats really helpful :)

  6. #6
    Learning denise456 is offline
    MemberRank
    Feb 2012 Join Date
    BrasilLocation
    318Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Thanks,

  7. #7
    Apprentice htc1991 is offline
    MemberRank
    Jan 2010 Join Date
    24Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    fix open stall dc zszc
    Last edited by htc1991; 29-07-13 at 04:47 PM. Reason: 1

  8. #8
    Account Upgraded | Title Enabled! Unrealx420 is offline
    MemberRank
    Jun 2008 Join Date
    HellLocation
    217Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Can you just release the ZSZC sro_client.exe and the media that you fixed already? the resolution you did is exactly what I need. it would be appreciated.
    Last edited by RevoLand; 30-07-13 at 08:43 AM. Reason: Don't quote the whole thread again mate :P

  9. #9
    Developer sladlejrhfpq is offline
    MemberRank
    Oct 2011 Join Date
    671Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Here you go
    Attached Files Attached Files

  10. #10
    Apprentice tanjusan is offline
    MemberRank
    Oct 2013 Join Date
    9Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    hello,
    can you make the same for ecsro please?
    thanks!

  11. #11
    Apprentice tanjusan is offline
    MemberRank
    Oct 2013 Join Date
    9Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Quote Originally Posted by sladlejrhfpq View Post
    Here you go
    hello,
    can u make the same for ecsro client?

  12. #12
    Proficient Member tschulian is offline
    MemberRank
    Jul 2012 Join Date
    ErlangenLocation
    151Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    Thx!
    Edited my ECSRO Client!
    Look so great!

  13. #13
    Apprentice intime is offline
    MemberRank
    Jan 2012 Join Date
    12Posts

    Re: Changing resolution in OldSchool Clients (ZSZC, ECSRO)

    BÖÖÖ

    Hello Brother
    I am interested in ecsro files. I have a question.
    - The skill bar does not save in the game.
    Nothing happens when I go in and out.

    how can i solve it?

    thanks



Advertisement