- GTA San Andreas'taki 20 yıllık hata Windows 11 24H2'de ortaya çıktı
- GTA San Andreas'ta Skimmer uçağının Windows 11 24H2'de kaybolduğu bir hata bildirildi
- SilentPatch kullanılsa da sorun çözülmüyor
- Windows 11 23H2'de sorun ortaya çıkmıyor
- Windows 11 24H2'ye güncelleyen kullanıcıların tamamı bu hatayı yaşıyor
Hata incelemesi
Sorun neydi?
- SilentPatch kurulduğunda oyunun takılması sorunu yaşanıyor
CPlane::PreRender içinde küçük bir döngüye takılı kaldığı tespit edildi
- Uçağın pervane hızı anormal derecede yüksek ayarlanıyor
- Pervane hızı, uçağın irtifasıyla orantılı olarak hesaplanıyor
Neden ve nasıl?
- Skimmer'ın
vehicles.ide tanımında gerekli parametre eksik
- Vice City'de Skimmer bir tekne olarak tanımlanmıştı
- San Andreas'ta uçağa dönüştürüldü ancak gerekli parametre eklenmedi
Asıl kök neden
- Sorun, Windows 11 24H2'de yığının kullanılma biçiminin değişmesiyle ortaya çıkıyor
LeaveCriticalSection artık yığında daha fazla alan kullanıyor
- Önceden
fgets ve LeaveCriticalSection yığın alanının üstüne yazmıyordu, artık yazıyor
Bu sorun neden ancak şimdi ortaya çıktı?
- Windows 11 24H2'deki değişiklikler nedeniyle yığın alanı değişti
- Oyun, başlatılmamış yerel değişken kullandığı için bu sorun oluştu
- Sorun diğer platformlarda zaten düzeltilmişti
Bu sorunu oyunda çözmek isterseniz?
- Bir sonraki SilentPatch hotfix'ine kod düzeltmesi eklenecek
vehicles.ide dosyasını elle düzenleyerek sorun çözülebilir
Son söz
- Bu hatanın belirli bir OS sürümüyle doğrudan bağlantılı olması ilgi çekici
- Yığın yerleşimindeki değişikliklerin uyumluluğu etkileyebileceğini gösteriyor
- Girdi verileri doğrulanmalı ve derleyici uyarıları göz ardı edilmemeli
1 yorum
Hacker News yorumları
scanfdönüş değerinin kontrol edilmemesi ve böylece parametre sayısıyla eşleştiğinin doğrulanmaması olabilir. Bunun dışında bu, derleyicinin bilemeyeceği bir veri dosyası hatası gibi görünüyor-fsanitize=undefined,addressgibi araçlar kullanın