- Joined
- Oct 12, 2011
- Messages
- 554
- Reaction score
- 318
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
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:
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
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:
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
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
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:
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/offsets-zszc-client-848484/
Please, if it helped you, press a like, it was much work for me to perform it.
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,[COLOR="#FF0000"]320[/COLOR]
00544B47 . 75 0A JNZ SHORT SRO_Clie.00544B53
00544B49 . 8B45 04 MOV EAX,DWORD PTR SS:[EBP+4]
00544B4C . 3D 58020000 CMP EAX,[COLOR="#FF0000"]258[/COLOR]
00544B51 . 74 50 JE SHORT SRO_Clie.00544BA3
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,[COLOR="#FF0000"]640[/COLOR]
do the same for this line, but this time change 4B0 to 438
Code:
00544B98 . 3D B0040000 CMP EAX,[COLOR="#FF0000"]4B0[/COLOR]
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,[COLOR="#FF0000"]640[/COLOR]
00647DA6 . 75 0D JNZ SHORT SRO_Clie.00647DB5
00647DA8 . 81BC24 6801000>CMP DWORD PTR SS:[ESP+168],[COLOR="#FF0000"]4B0[/COLOR]
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,"[COLOR="#FF0000"]892[/COLOR],[COLOR="#00FF00"]6[/COLOR],[COLOR="#0000FF"]140[/COLOR],[COLOR="#FFA500"]184[/COLOR]"
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:
You must be registered to see links
You must be registered to see links
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/offsets-zszc-client-848484/
Please, if it helped you, press a like, it was much work for me to perform it.
Last edited: