FS25 16x Map Fix – de hoofdoorzaak + een reparatietool
Waarom crashen 16x (en grotere) kaarten in Farming Simulator 25 met een “allocReg”-fout?
of blijft u steken bij “100% shader-compilatie”? Hier vindt u de volledige diagnose en een hulpmiddel
hierdoor is laden en synchroniseren in de multiplayer-modus op normale hardware mogelijk.
Belangrijk:
Vind je het hulpmiddel leuk?
U kunt de ontwikkeling op Ko-fi ondersteunen - vermeld alstublieft "16x Map Fix", zodat ik weet waar ik aan moet werken.
Diagnostiek op een speciale server en een client met 16 GB RAM, beide met dezelfde 16x-kaart.
De tool verminderde allocReg-fouten op een echte 16x-kaart van 878.987 naar 0, waardoor deze speelbaar werd in multiplayer.
Kortom (TL;DR),
De allocReg-crash wordt feitelijk veroorzaakt door twee verschillende problemen die er identiek uitzien:
Oorzaak Oplossing
Geheugenvereisten in de modus voor één speler - een 16x-kaart vereist ongeveer 20-32 GB tijdens de eerste compilatie van dichtheidsgegevens (dichtheidskaarten); 16 GB is niet genoeg.
Een groot wisselbestand (48GB+) + DX11 → de originele, ongewijzigde kaart wordt geladen. Multiplayer
Een tegelregistratie met vaste capaciteit in de synchronisatiemodule voor dichtheidskaarten reduceert het beschrijfbare dichtheidsniveau van de kaart tot 8192 pixels voor kaarten met een dichtheid van 16384 pixels - zie onderstaande tool.
Bewijs dat het geen RAM-probleem is in multiplayer: een speciale server met 262 GB RAM produceerde nog steeds dezelfde 3014 "allocReg" -fouten. Meer RAM of een groter wisselbestand helpt niet in de multiplayer-modus; alleen minder tegels lossen het probleem op.
De oorzaak in detail.
De overvolle lagen (fruit, aarde, onkruid, infolaag) zijn de beschrijfbare 'terreindetail'-dichtheidskaarten van het spel - je ploegt, zaait en oogstt overal in de lagen, ook buiten het zicht, en de server bewaakt de hele kaart. Beschrijfbare gegevens kunnen geen gebruik maken van “virtuele texturering” (waarbij alleen zichtbare, alleen-lezen tegels worden gestreamd). Daarom moeten deze lagen volledig in het geheugen zitten en geregistreerd zijn. Je grondstoffenvereisten schalen mee met het kaartgebied: 16x betekent 16 keer het aantal tegels. In de modus voor één speler laadt de client zijn eigen vooraf gecompileerde .gdm-bestanden; Het enige knelpunt is de korte piek in het geheugengebruik tijdens de eerste compilatie, die wordt afgehandeld door een voldoende groot wisselbestand.
In de multiplayer-modus zendt de server dichtheidskaarten uit naar elke deelnemende client, die ze live opnieuw compileert via het tegelregister met een vaste grootte (TiledBitmapOperationCompiler). Een dichtheid van 16384 pixels leidt tot overflow - en dus tot duizenden "allocReg" -bewerkingen. Dit vertegenwoordigt een harde capaciteitslimiet die onafhankelijk is van RAM; Dit is precies de reden waarom zelfs servers met 262 GB RAM falen en de effectieve bovengrens van GIANTS voor de multiplayer-modus vier keer de standaardgrootte is (4x): een 4x-kaart is het grootste gebied waarvan de schrijfbare dichtheid past in zowel het register als de synchronisatie per verbinding.
Het gereedschap
tool/mapfix.py + tool/Optimize-Map.bat (slepen en neerzetten in Windows). Het schaalt elke extra grote dichtheid of informatielaag (16384 pixels, macht van twee) van een kaart naar de motorveilige 8192 pixels - precies de resolutie waarop werkende 4x-kaarten worden verzonden. Veld- en gewasinformatie blijft behouden (decodering → herbemonstering dichtstbijzijnde buur → hercodering; geverifieerd als 99,9% pixelidentiek, gewasdekking ongewijzigd). Hoogtekaarten en terreingeometrie (dem.png, raster met 2ⁿ+1 punten) worden herkend op basis van hun grootte (niet een macht van twee) en worden niet gewijzigd.
Toepassing
Sleep het zip-bestand van uw kaart naar de map Optimize-Map.bat (vereist Python 3 - Pillow wordt automatisch geïnstalleerd).
Er wordt een bestand met de extensie “_fixed.zip” aangemaakt in dezelfde map - uw originele bestand blijft ongewijzigd.
Upload de gecorrigeerde kaart naar je server, start een nieuw spel (belangrijk: oude saves bevatten de oude poëzierevisie) en neem deel aan het spel.
Inclusief grleconvert (MIT-licentie) om te converteren tussen .gdm/.grle en PNG. Ondersteunt 16x en 32x kaarten; De uitvoer is altijd in het veilige 8192 pixelformaat.
Opmerking over de multiplayer-modus (GIANTS automatisch opslaan).Zelfs met een gecorrigeerde grafische kaart voert de GIANTS Dedicated Server een blokkerende automatische opslag uit (“auto_save_interval”, standaard: 10 minuten). Bij grote grafische kaarten blokkeert dit opslagproces de rode draad zo lang dat de verbinding met de client precies op dat moment verloren kan gaan (“connection lost”), terwijl de server zelf online blijft. Om dit probleem te minimaliseren, verhoogt u de waarde auto_save_interval in dedicatedServerConfig.xml (bijvoorbeeld naar 30-60).
Aanvullende modificatie: Auto VRAM Optimizer
Een kleine, op zichzelf staande mod die de textuurstreaminglimiet in FS25 (standaard ongeveer 4 GB) verhoogt naar het werkelijke VRAM van uw grafische kaart. Dit resulteert in soepeler laden en minder pop-ins op alle grafische kaarten met meer dan 4 GB VRAM - niet alleen op 16x-kaarten.