avatar_Profesor08

Mu Online: Widescreen мод и как его настроить

Автор Profesor08, 2011 Авг. 16, 14:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinewidescreen модразрешениемонитор

Profesor08

Все прекрасно видели в лаунчерах 4 типа разрешений для окна MU.
[640x480 - 800x600 - 1024x768 - 1280x1024 - 1600х1200]

Но что же делать обладателям широкоформатных маниторов? Есть два решения:
1 - Играть в оконном режиме при одном из четырех режимов
2 - Патчить свой майн

Роясь в нете я наткнулся на одну статейку, где было решение, но оно какое-то нето, тоесть у некоторых все идеально было, а у некоторых немного не-то, что надо.

Вот собственно эта инфа, как-раз то что я искал:

Спойлер
What we're gonna do here is replace some of the hardcoded resolutions with the one we choose to support. In this case I trashed 1600x1200, and replaced it with 1680x1050.

ok, lets get started:

Load main.exe in IDA (you obviously need an unpacked main.exe for this to work). I found the first code to be replaced by searching for a reference to "SOFTWARE\Webzen\Mu\Config", scroll down until the "call ds:RegCloseKey".
you should see a switch like this:
(искать надо по "SOFTWAREWebzenMuConfig" )


seg000:004B81D6                call    ds:RegCloseKey
seg000:004B81DC                mov    eax, ds:dword_5760A98
seg000:004B81E1                cmp    eax, edi
seg000:004B81E3                ja      short loc_4B8258
seg000:004B81E5                jmp    ds:off_4B829C[eax*4] ; switch here
seg000:004B81EC
seg000:004B81EC loc_4B81EC:                            ; case 0
seg000:004B81EC                mov    ds:width, 280h
seg000:004B81F6                mov    ds:height, 1E0h
seg000:004B8200                jmp    short loc_4B8258
seg000:004B8202 ; ---------------------------------------------------------------------------
seg000:004B8202
seg000:004B8202 loc_4B8202:                            ; case 1
seg000:004B8202                                        ;
seg000:004B8202                mov    ds:width, 320h
seg000:004B820C                mov    ds:height, 258h
seg000:004B8216                jmp    short loc_4B8258
seg000:004B8218 ; ---------------------------------------------------------------------------
seg000:004B8218
seg000:004B8218 loc_4B8218:                            ; case 2
seg000:004B8218                                        ;
seg000:004B8218                mov    ds:width, 400h
seg000:004B8222                mov    ds:height, 300h
seg000:004B822C                jmp    short loc_4B8258
seg000:004B822E ; ---------------------------------------------------------------------------
seg000:004B822E
seg000:004B822E loc_4B822E:                            ; case 3
seg000:004B822E                                        ;
seg000:004B822E                mov    ds:width, 500h
seg000:004B8238                mov    ds:height, 400h
seg000:004B8242                jmp    short loc_4B8258
seg000:004B8244 ; ---------------------------------------------------------------------------
seg000:004B8244
seg000:004B8244 loc_4B8244:                            ; case 4 ---> we need to patch these
seg000:004B8244                                        ;
seg000:004B8244                mov    ds:width, 640h    ; 640h = 1600 change to 690h
seg000:004B824E                mov    ds:height, 4B0h ; 4B0 = 1200 change to 41Ah

Now we should have the game creating a full screen window of the right size, but the font is all fucked up... let's fix it. Search for "UpdateWindow", scroll down a bit and you should see this:


seg000:004B9439                call    ds:UpdateWindow
seg000:004B943F                mov    eax, ds:hWnd
seg000:004B9444                push    eax
seg000:004B9445                call    sub_44F1D0
seg000:004B944A                add    esp, 4
seg000:004B944D                push    offset aGgConnectWindo ; "> gg connect Window Handle.rn"
seg000:004B9452                push    offset unk_5760850 ; int
seg000:004B9457                call    sub_41FAC0
seg000:004B945C                add    esp, 8
seg000:004B945F                mov    ecx, offset unk_5760850 ; int
seg000:004B9464                call    sub_41FC70
seg000:004B9469                mov    ecx, ds:hWnd
seg000:004B946F                push    ecx            ; HWND
seg000:004B9470                mov    ecx, offset unk_5760850 ; int
seg000:004B9475                call    sub_41FE50
seg000:004B947A                mov    ecx, offset unk_5760850 ; int
seg000:004B947F                call    sub_41FC70
seg000:004B9484                push    401h
seg000:004B9489                mov    edx, ds:hWnd
seg000:004B948F                push    edx
seg000:004B9490                mov    ecx, offset dword_5760828
seg000:004B9495                call    sub_447040
seg000:004B949A                mov    eax, ds:width        ; get width
seg000:004B949F                mov    [ebp+var_2458], eax
seg000:004B94A5                cmp    [ebp+var_2458], 400h    ; if(width>1024)
seg000:004B94AF                ja      short loc_4B94D7    ;  goto loc_4B94D7
seg000:004B94B1                cmp    [ebp+var_2458], 400h
seg000:004B94BB                jz      short loc_4B94FD
seg000:004B94BD                cmp    [ebp+var_2458], 280h
seg000:004B94C7                jz      short loc_4B94E5
seg000:004B94C9                cmp    [ebp+var_2458], 320h
seg000:004B94D3                jz      short loc_4B94F1
seg000:004B94D5                jmp    short loc_4B9513
seg000:004B94D7 ; ---------------------------------------------------------------------------
seg000:004B94D7
seg000:004B94D7 loc_4B94D7:                            ; CODE XREF: WinMain(x,x,x,x)+B0F␘j
seg000:004B94D7                cmp    [ebp+var_2458], 500h    ; --> change this to 690h
seg000:004B94E1                jz      short loc_4B9509
seg000:004B94E3                jmp    short loc_4B9513
[...a few lines below...]
seg000:004B956D                call    ds:CreateFontA  ; ---> gotcha

Now to use it, regedit to "HKEY_CURRENT_USERSoftwareWebzenMuConfig" and set Resolution to 4.

hope you figure it out ;]
[свернуть]

Недостаток этого решения в том, что надо ковырять сам майн, а для обычного человека, желающего поигра, это может доставить проблеммы.

Если у кого-то есть более лучшее решение, поделитесь.

P.S. Мне так и не удалось.

P.P.S.
На ОФФ форуме пишут в факе:
Q. Is there any way to force MU to run in widescreen resolution? My notebook native resolution is 1280x800.
A. There is no possibilities to run game in widescreen for now.

Zabuldon

Спасибо за информацию. (извините за некропостинг)

BeL4eNaK

#2
Кроме муруза кто-нибудь это внедрил уже?
1920х1080 с 16ти кратным сглаживанием и увлеченным обзором выглядит более чем впечатляюще. Тем кто не видел, рекомендую посмотреть их клиент.

Profesor08

1280x800 - максимальное widescreen разрешение, которого мне удалось добиться. Так как при более большом, возникала проблема с меню телепортов.

wizik

#4
Хм надо бы как то найти ф-ю где рисуется окна ну которые позади опций вещей и телепортов, похоже там надо размер подправить. Т.к. форматируется отступ между буквами похоже в зависимости от размера окна этого.

ps BeL4eNaK не заметил на мурузе разницы на х16 сглаживании и без него.

fiesta214

Цитата: BeL4eNaK от 2012 Дек. 11, 14:22  Кроме муруза кто-нибудь это внедрил уже?
1920х1080 с 16ти кратным сглаживанием и увлеченным обзором выглядит более чем впечатляюще. Тем кто не видел, рекомендую посмотреть их клиент.
а ты хочешь чтоб вообще ниче небыло видно?))) Всякие телеги будут запускать и по возможносте стучать в скайп что типо о ватафак почему ниче невидно с лупой там сидят)))

positive

Кто-то решил проблему с меню телепорта?  

SmallHabit

Да, и уже давно решили.

positive

Цитата: SmallHabit от 2014 Июнь 25, 20:16  Да, и уже давно решили. :trollface:

Так уже давно дополнили бы тему  :fkyeah:

Похожие темы (5)