Metin2: klient 32- czy 64-bitowy? Sprawdź EXE i flagę 4 GB
Sprawdź architekturę klienta Metin2 i flagę LAA bez modyfikowania EXE. Wyjaśniamy limity 2/4 GB, natywne x64 oraz zgodność z serwerem.
Flaga 4 GB nie zmienia klienta x86 w x64
Klient Metin2 może pozostać 32-bitowym programem x86, nawet gdy działa w 64-bitowym Windows i ma włączoną flagę Large Address Aware. Ta flaga, często kojarzona z „łatką 4 GB”, dotyczy przestrzeni adresowej. Natywny klient x64 to inna kompilacja o innej architekturze maszynowej. Żadne z tych określeń samo w sobie nie dowodzi wyższych FPS ani usunięcia wszystkich awarii.
Pierwsze przydatne pytanie brzmi: jaką architekturę ma właściwy plik wykonywalny gry? Wymagania Windows podane przez serwer, jego launcher i proces gry mogą opisywać różne rzeczy. Ten poradnik wyjaśnia kontrolę nagłówka EXE wyłącznie przez odczyt oraz ograniczenia jej wyniku. Nie zakłada, że każdy serwer Metin2 udostępnia tego samego klienta.

Wygenerowana ilustracja na podstawie materiałów referencyjnych Metin2. Nie jest zrzutem ekranu, pomiarem pamięci ani dowodem konkretnej kompilacji klienta.
Prawidłowo odczytuj liczby dotyczące pamięci
Dokumentacja LAA Microsoftu i tabele limitów pamięci odróżniają wirtualną przestrzeń adresową procesu od zainstalowanej fizycznej pamięci RAM. Wiersze dotyczące limitów pamięci zakładają wydanie Windows x64. Wiersz ARM64 identyfikuje inną architekturę pliku; nie oznacza, że taki plik działa w Windows x64.
| Plik wykonywalny | Machine / format | LAA | Znaczenie |
|---|---|---|---|
| 32-bitowy x86 | 0x014C / PE32 | Wyłączona | Zwykle limit 2 GB wirtualnej przestrzeni adresowej użytkownika |
| 32-bitowy x86 | 0x014C / PE32 | Włączona | Do 4 GB wirtualnej przestrzeni adresowej użytkownika; nadal x86 |
| Natywny x64 | 0x8664 / PE32+ | Włączona | Większa przestrzeń adresowa zależna od wersji Windows i limitów procesu, zamiast pułapu x86 |
| ARM64 | 0xAA64 / PE32+ | Sprawdź osobno | Inna architektura; samo PE32+ nie oznacza AMD64/x64 |
Są to limity przestrzeni adresowej. Nie obiecują, że klient przydzieli jeden ciągły blok 4 GB, wykorzysta całą pamięć RAM ani uniknie każdego nieudanego przydziału pamięci. Natywny obraz x64 z wyłączoną flagą LAA również ma dodatkowe ograniczenia. Nie wyciągaj więc wniosku o rzeczywistym limicie z samego określenia „64-bitowy”.
Analogicznie 32 GB fizycznej pamięci RAM nie usuwa pułapu przestrzeni adresowej procesu x86. Jego podniesienie pomaga tylko w problemach, które rzeczywiście od niego zależą. Uszkodzony zasób, nieprawidłowy wskaźnik lub niezgodny moduł wymaga osobnej diagnozy.
Dlaczego to rozróżnienie ma znaczenie przy rozwijaniu Metin2
W dyskusji na Turkmmo z maja 2026 autor wskazuje bazę MartySama v5.8 i pisze, że 64-bitowa kompilacja serwera była łatwiejsza niż przeniesienie klienta. Odpowiedzi dotyczą równoległego utrzymywania dystrybucji x86 i x64 oraz zachowania zgodności pakietów. To relacje dotyczące jego konkretnego zestawu źródeł, a nie przetestowana procedura migracji innego serwera.
Niezależna dyskusja na Reddicie o serwerze Linux i kliencie x64 pokazuje kolejną niejasność: zapytany, czy sam przeniósł klienta, autor odpowiada, że otrzymał go od kogoś innego. Zrzut ekranu ani sam fakt przeniesienia serwera nie określa pochodzenia, rewizji i architektury każdego składnika.
Dziennik EterNext z 1 kwietnia 2026 zapowiada natywnego 64-bitowego klienta dla tego konkretnego projektu. Nie zbadaliśmy jego aktualnego pliku wykonywalnego ani nie odtworzyliśmy deklarowanych wyników wydajności. Datowaną wypowiedź operatora traktuj jako informację o tym projekcie; sprawdź faktyczną kompilację, zanim odniesiesz ją do innego klienta.
Sprawdź EXE gry bez jego modyfikowania
Najpierw ustal, który plik uruchamia grę. Patcher, aktualizator i konfigurator mogą być oddzielnymi plikami o różnych architekturach. Sprawdź dokumentację operatora lub nazwę procesu gry w Menedżerze zadań. Nie zakładaj, że każdy prywatny klient używa tej samej nazwy pliku.
Specyfikacja PE/COFF Microsoftu definiuje pole Machine, format opcjonalnego nagłówka i flagę IMAGE_FILE_LARGE_ADDRESS_AWARE. Poniższy czytnik w Pythonie 3 korzysta tylko z biblioteki standardowej i otwiera wybrany plik w trybie binarnego odczytu. Zapisz go jako pe_info.py, a następnie uruchom python pe_info.py client.exe, zastępując ostatnią nazwę ustalonym właściwym plikiem gry.
import json
import struct
import sys
def inspect_pe(path):
with open(path, "rb") as f:
size = f.seek(0, 2)
f.seek(0)
dos = f.read(64)
if len(dos) != 64 or dos[:2] != b"MZ":
raise ValueError("Missing DOS header")
offset = struct.unpack_from("<I", dos, 0x3C)[0]
if offset < 64 or offset + 26 > size:
raise ValueError("PE offset outside file")
f.seek(offset)
header = f.read(24)
if header[:4] != b"PE\0\0":
raise ValueError("Missing PE signature")
machine = struct.unpack_from("<H", header, 4)[0]
optional_size, flags = struct.unpack_from("<HH", header, 20)
if optional_size < 2 or offset + 24 + optional_size > size:
raise ValueError("Truncated optional header")
magic = struct.unpack("<H", f.read(2))[0]
expected = {0x014C: 0x010B, 0x8664: 0x020B, 0xAA64: 0x020B}
if machine not in expected or magic != expected[machine]:
raise ValueError("Unsupported or inconsistent Machine/Magic")
return {
"Machine": f"0x{machine:04X}",
"Format": "PE32" if magic == 0x010B else "PE32+",
"LAA": bool(flags & 0x0020),
}
if __name__ == "__main__":
if len(sys.argv) != 2:
raise SystemExit("Usage: python pe_info.py client.exe")
print(json.dumps(inspect_pe(sys.argv[1]), indent=2))
Interpretuj pola razem. Machine:0x014C, Format:PE32, LAA:true oznacza obraz x86 oznaczony jako large-address-aware, a nie natywny plik wykonywalny x64. Machine:0x8664 wraz z PE32+ wskazuje AMD64, natomiast 0xAA64 oznacza ARM64. Nazwy te wynikają ze specyfikacji Microsoftu, nie z nazwy pliku.
Czytnik sprawdza sygnatury DOS/PE, granice nagłówków i trzy obsługiwane pary Machine/Magic. Jest małym inspektorem metadanych, a nie kompletnym walidatorem programu ładującego PE, narzędziem do sprawdzania podpisów ani oceną, czy plik można bezpiecznie uruchomić. Nieobsługiwany lub niespójny nagłówek oznacza, że należy przerwać interpretowanie wyniku, nie naprawiać EXE według tej informacji. Skrypt nie łata nagłówków i nie wykonuje pliku.
Natywne x64 wymaga więcej niż zmiany nagłówka
Poradnik Microsoftu dotyczący przenoszenia gier wymienia obcinanie wskaźników, wyrównanie, utrwalone układy danych binarnych i biblioteki zewnętrzne jako kwestie migracji. Zwykłe natywne biblioteki DLL ładowane wewnątrz procesu muszą odpowiadać jego architekturze. Zmiana nazwy DLL x86 nie czyni z niej zależności x64.
W drzewie źródeł Metin2 sprawdź kod zapisujący wskaźniki lub długości w węższych typach całkowitych, granicę między Pythonem a kodem natywnym, dekodery zasobów i biblioteki używane w danej rewizji. Następnie zbuduj odpowiednie zależności. Dokładny zakres prac zależy od projektu; ta lista nie jest łatką do zainstalowania w niezidentyfikowanej paczce źródeł.
Rozdziel architekturę od wyników wydajności. Porównuj tę samą rewizję klienta, zasoby, scenę i ustawienia. Oprócz czasów klatek zapisuj warunki występowania awarii związanych z pamięcią. Microsoft zaleca ponowne profilowanie po przeniesieniu programu. Na potrzeby tego artykułu nie zmierzyliśmy wzrostu FPS w kompilacji Metin2 x64.
Czy serwer też musi być 64-bitowy?
Sieć przesyła bajty, a nie etykietę CPU klienta. 32-bitowy klient i 64-bitowy serwer mogą współpracować, jeśli ich rzeczywisty protokół pozostanie zgodny. Potwierdzenie tego dla konkretnej pary Metin2 wymaga jej definicji pakietów i testów. Zgodne nazwy serwera ani udana kompilacja nie dowodzą kompatybilności.
Oto poglądowy przykład formatu bajtowego, a nie definicja pakietu Metin2:
import struct
for fmt in ("<BI", "<BQ"):
packet = struct.pack(fmt, 1, 1000)
print(fmt, len(packet), packet.hex())
Wynik to <BI 5 01e8030000 i <BQ 9 01e803000000000000. Według dokumentacji Python struct prefiks < określa little-endian, standardowe rozmiary i brak dopełnienia wynikającego z wyrównania. I zajmuje 4 bajty, a Q 8. Samo poszerzenie tego pola zmienia wiadomość z 5 do 9 bajtów. Odbiorca oczekujący starego układu potrzebuje uzgodnionej zmiany protokołu; nowa architektura CPU sama tego nie naprawia.
Taki sam audyt dotyczy zapisanych danych binarnych i formatów zasobów. Zachowaj jawne kontrakty transmisji i plików albo świadomie wersjonuj zmiany oraz przetestuj obie strony. Nie zastępuj automatycznie każdej 32-bitowej liczby całkowitej typem o rozmiarze wskaźnika: identyfikatory gry, liczniki, długości i wskaźniki pełnią różne funkcje.
Co ta kontrola potwierdza graczom i właścicielom
Graczowi kontrola nagłówka pozwala odróżnić architekturę podanego pliku od etykiety launchera lub wymagań Windows. Korzystaj z dystrybucji obsługiwanej przez serwer i zapytaj operatora, jaką kompilację gry zawiera. Wynik nie weryfikuje logowania, wejścia do świata, stabilności ani współpracy z zabezpieczeniami serwera.
Jako właściciel zachowaj działającą kompilację podczas audytu źródeł i zależności, których jesteś właścicielem lub na których używanie masz licencję. Publicznie czytelny kod, link do pobrania i licencja open source to różne rzeczy. Ten artykuł nie poleca niezweryfikowanej paczki źródeł jako gotowego 64-bitowego klienta.
Czytnik uruchomiliśmy na czterech syntetycznych próbkach nagłówków i dwóch istniejących plikach wykonywalnych Windows, potwierdzając niezmienność ich bajtów. Odrzucono dziesięć uszkodzonych lub niespójnych próbek. Przykład serializacji dał również opisane wyniki 5/9 bajtów. Kontrole te potwierdzają przykłady; nie zbudowano, nie zmodyfikowano ani nie uruchomiono klienta Metin2 i nie deklarujemy wyniku wydajności gry.
W innym projekcie zacznij od jego aktualnej kompilacji i wymagań. Odpowiedni profil znajdziesz w katalogu prywatnych serwerów Metin2. Jeśli klient zatrzymuje się podczas inicjalizacji grafiki, osobny poradnik No Appropriate Device opisuje ten odmienny objaw.
Źródła
- Microsoft: LAA i 4 GB przestrzeni adresowej, limity pamięci według wersji Windows, format PE/COFF, przenoszenie gier na 64 bity.
- Python: standardowe formaty binarne i wyrównanie.
- Turkmmo: pytanie o migrację wskazanej bazy źródeł oraz Reddit: odpowiedzi autora o pochodzeniu klienta.
- EterNext: własne ogłoszenie migracji.
Źródła sprawdzono 5 listopada 2026. Wypowiedzi źródeł, metadane pliku wykonywalnego i przetestowana rozgrywka pozostają oddzielnymi dowodami.
Najczęściej Zadawane Pytania
Czy łatka 4 GB zmienia klienta Metin2 na 64-bitowego?
Czy 64-bitowy Windows dowodzi, że klient gry też jest 64-bitowy?
Czy klient x86 może połączyć się z serwerem x64?
Powiązane Strony
Znajdź swój idealny serwer
Przeglądaj najlepiej oceniane prywatne serwery Metin2 na METIN2.GG lub dodaj własny serwer do rankingu.

