Návody7 min čtení

Metin2: 32bitový nebo 64bitový klient? Ověřte EXE a příznak 4 GB

Čtecí kontrola architektury a příznaku LAA klienta Metin2. Rozdíl mezi limitem 2/4 GB, nativním x64 a kompatibilitou klienta se serverem.

Od METIN2.GG

Příznak 4 GB nezmění klienta x86 na x64

Klient Metin2 může zůstat 32bitovým programem x86, i když běží na 64bitových Windows a má zapnutý příznak Large Address Aware. Tento příznak, často spojovaný s označením „4GB patch“, se týká adresního prostoru. Nativní klient x64 je jiné sestavení pro jinou strojovou architekturu. Ani jeden z těchto údajů sám nedokazuje vyšší FPS nebo opravu každého pádu.

První užitečná otázka zní: jakou architekturu má skutečný spustitelný soubor hry? Požadavky serveru na Windows, launcher a herní proces mohou popisovat různé věci. Návod ukazuje čtecí kontrolu hlavičky EXE a vysvětluje, co její výsledek znamená. Nepředpokládá stejného klienta na všech serverech Metin2.

Postava Metin2 se zelenými svázanými vlasy, stříbromodrou zbrojí a širokou zlatou čepelí vedle abstraktních datových panelů klienta

Generovaná ilustrace podle herních referencí Metin2. Nejde o screenshot, měření paměti ani důkaz konkrétního sestavení klienta.

Paměťová čísla čtěte správně

Dokumentace Microsoftu k LAA a tabulky paměťových limitů rozlišují virtuální adresní prostor procesu a fyzickou RAM. Paměťové řádky níže předpokládají edici Windows pro x64. Řádek ARM64 určuje jinou architekturu souboru; netvrdí, že takový soubor běží na Windows x64.

Spustitelný souborMachine / formátLAACo z toho plyne
32bitový x860x014C / PE32VypnutýObvykle limit 2 GB uživatelského virtuálního adresního prostoru
32bitový x860x014C / PE32ZapnutýAž 4 GB uživatelského virtuálního adresního prostoru; pořád x86
Nativní x640x8664 / PE32+ZapnutýVětší adresní prostor podle vydání Windows a limitů procesu, místo stropu x86
ARM640xAA64 / PE32+Ověřit zvlášťJiná architektura; samotné PE32+ neznamená AMD64/x64

Jde o limity adresního prostoru, nikoli slib, že klient zvládne přidělit jediný souvislý blok 4 GB, využít veškerou RAM nebo se vyhnout každému selhání alokace. I nativní soubor x64 s vypnutým LAA má další omezení. Jeho efektivní limit tedy neurčujte jen podle označení „64bitový“.

Ani 32 GB fyzické RAM naopak neodstraní strop adresního prostoru procesu x86. Jeho zvýšení pomůže jen potížím, které na něm skutečně závisejí. Poškozený prostředek hry, neplatný ukazatel nebo nekompatibilní modul potřebují vlastní diagnostiku.

Proč na rozdílu záleží při vývoji Metin2

V diskusi Turkmmo z května 2026 autor jmenuje základ MartySama v5.8 a uvádí, že 64bitové sestavení serveru pro něj bylo snazší než port klienta. Odpovědi řeší údržbu distribucí x86 i x64 a zachování kompatibility paketů. Jsou to zprávy o jeho zdrojové sadě, nikoli otestovaný migrační postup pro jiný server.

Další nejasnost ukazuje nezávislá diskuse na Redditu o linuxovém serveru a klientu x64: na otázku, zda klienta portoval sám, autor odpovídá, že jej získal od někoho jiného. Screenshot ani informace o portu serveru neurčují původ, revizi a architekturu všech součástí.

Devlog EterNext z 1. dubna 2026 oznamuje nativní 64bitový klient tohoto konkrétního projektu. Jeho současný spustitelný soubor jsme neprověřovali a výkonnostní tvrzení nereprodukovali. Datované sdělení provozovatele vztahujte k danému projektu; před přenesením závěru na jiného klienta ověřte skutečné sestavení.

Zkontrolujte herní EXE bez jeho změny

Nejdřív určete soubor, který skutečně spouští hru. Patcher, updater a konfigurace mohou být samostatná EXE s různou architekturou. Použijte dokumentaci provozovatele nebo název herního procesu ve Správci úloh. Nepředpokládejte stejný název souboru u každého privátního klienta.

Specifikace PE/COFF Microsoftu definuje pole Machine, formát volitelné hlavičky a příznak IMAGE_FILE_LARGE_ADDRESS_AWARE. Následující čtečka pro Python 3 používá jen standardní knihovnu a otevírá vybraný soubor v binárním režimu pro čtení. Uložte ji jako pe_info.py a spusťte python pe_info.py client.exe; poslední název nahraďte skutečným souborem hry, který jste určili.

Python
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))

Údaje vyhodnocujte společně. Machine:0x014C, Format:PE32, LAA:true znamená obraz x86 označený jako large-address-aware, nikoli nativní x64. Machine:0x8664 spolu s PE32+ označuje AMD64; 0xAA64 označuje ARM64. Názvy vycházejí ze specifikace Microsoftu, nikoli z názvu souboru.

Čtečka kontroluje signatury DOS/PE, hranice hlaviček a tři podporované dvojice Machine/Magic. Je to malý inspektor metadat, nikoli úplný validátor pro načítání PE, ověřovač digitálního podpisu nebo posouzení bezpečnosti spuštění souboru. Nepodporovaná či nekonzistentní hlavička je důvod výstup dál neinterpretovat, ne pokyn EXE opravovat. Skript nepřepisuje hlavičky a kontrolovaný soubor nespouští.

Nativní x64 potřebuje víc než přepnutí hlavičky

Dokumentace Microsoftu k portování her jmenuje zkracování ukazatelů, zarovnání, uložené binární struktury a externí knihovny jako oblasti migrace. Běžné nativní DLL načítané přímo do procesu musí odpovídat jeho architektuře. Přejmenování nezmění knihovnu x86 na závislost pro x64.

V konkrétním stromu zdrojového kódu Metin2 prověřte ukládání ukazatelů či délek do užších číselných typů, rozhraní Pythonu a nativní části, dekodéry prostředků a knihovny používané danou revizí. Potom sestavte odpovídající závislosti. Přesná práce závisí na projektu; tento seznam není instalační patch pro neurčený source pack.

Výsledky architektury a výkonu posuzujte zvlášť. Porovnávejte stejnou revizi klienta, prostředky, scénu a nastavení a zaznamenávejte podmínky paměťových selhání i časy snímků. Microsoft doporučuje po portu nové profilování. Pro tento článek jsme nárůst FPS klienta Metin2 x64 neměřili.

Musí být také server 64bitový?

Síť přenáší bajty, nikoli označení CPU klienta. Klient s 32bitovou architekturou a 64bitový server spolu mohou komunikovat, pokud jejich skutečný protokol zůstane kompatibilní. Pro potvrzení konkrétní dvojice Metin2 jsou potřeba její definice paketů a testy. Shodný název serveru ani úspěšný překlad kódu kompatibilitu nepotvrzují.

Následuje názorný příklad formátu bajtů, nikoli definice paketu Metin2:

Python
import struct

for fmt in ("<BI", "<BQ"):
    packet = struct.pack(fmt, 1, 1000)
    print(fmt, len(packet), packet.hex())

Výstup je <BI 5 01e8030000 a <BQ 9 01e803000000000000. Podle dokumentace Python struct určuje < little-endian, standardní velikosti a absenci zarovnávacích mezer; I zabírá 4 bajty a Q 8. Pouhé rozšíření tohoto pole změní zprávu z 5 na 9 bajtů. Přijímač očekávající původní strukturu potřebuje dohodnutou změnu protokolu, ne předpoklad, že vše opraví nová architektura CPU.

Stejnou kontrolu potřebují uložená binární data a formáty prostředků. Zachovejte explicitní smlouvu dat přenášených sítí nebo ukládaných do souborů, případně změnu záměrně verzujte a testujte obě strany. Nenahrazujte mechanicky každé 32bitové celé číslo typem podle velikosti ukazatele: herní ID, čítače, délky a ukazatele mají různý účel.

Co kontrola prokáže hráčům a provozovatelům

Hráči hlavička odliší architekturu zadaného souboru od označení launcheru nebo požadavku na Windows. Používejte podporovanou distribuci serveru a od provozovatele si vyžádejte přesné herní sestavení, které obsahuje. Výsledek neověřuje přihlášení, vstup do světa, stabilitu ani kompatibilitu s ochranou daného serveru.

Provozovatelům se při auditu zdrojů a závislostí, které vlastní nebo mají právo používat, hodí zachovat známé funkční sestavení. Veřejně čitelný kód, odkaz ke stažení a open-source licence jsou různé skutečnosti. Tento článek nedoporučuje neověřený source pack jako připraveného 64bitového klienta.

Čtečku jsme spustili nad čtyřmi syntetickými vzorky hlaviček a dvěma existujícími spustitelnými soubory Windows. Kontrola potvrdila, že se jejich bajty nezměnily. Deset neúplných či nekonzistentních vzorků bylo odmítnuto. Příklad serializovaných bajtů také vrátil doložených 5 a 9 bajtů. Testy ověřují příklady; žádný klient Metin2 nebyl sestaven, upraven ani spuštěn a žádný výsledek herního výkonu netvrdíme.

U jiného projektu začněte jeho aktuálním sestavením a požadavky; příslušný profil pomůže najít adresář Metin2 privátních serverů. Pokud klient selhává při inicializaci grafiky, jiný příznak řeší samostatný návod k No Appropriate Device.

Zdroje

Zdroje prověřeny 5. listopadu 2026. Zdrojové výroky, metadata spustitelného souboru a skutečně vyzkoušené hraní zůstávají různými důkazy.

Často Kladené Otázky

Změní 4GB patch klienta Metin2 na 64bitový?

Zapnutí LAA v obrazu x86 nemění jeho strojovou architekturu. Proces x86 s LAA může mít na Windows x64 až 4 GB uživatelského virtuálního adresního prostoru; nativní x64 je jiné sestavení.

Dokazují 64bitové Windows také 64bitového herního klienta?

Ne. Operační systém, launcher a vlastní herní EXE jsou samostatné součásti. Ověřte pole Machine a formát volitelné hlavičky skutečného herního souboru nebo si od provozovatele vyžádejte přesné informace o sestavení.

Může klient x86 komunikovat se serverem x64?

Různá architektura CPU sama neurčuje kompatibilitu sítě. Musí odpovídat serializovaný protokol. Názorný příklad s 5 a 9 bajty ukazuje, proč jej změna šířky pole může porušit; konkrétní dvojici privátního serveru zde neověřujeme.

Související Stránky

Najdi svůj perfektní server

Procházej nejlépe hodnocené Metin2 privátní servery na METIN2.GG nebo přidej svůj vlastní server do žebříčku.