Acum se poate! Windows 98 / ME pe ultima generație de procesoare Intel și AMD!

November 25, 2023

Dragi tovarăși si prieteni,

Până nu de mult Windows 98 era fructul interzis pe calculatoarele Intel de ultima generație. Nu atât Windows 98, cât toată generația 9x – Windows 95, 98 FE + SE, precum și Windows ME. Toată această generație se lovește de următoarea eroare când încercăm să instalăm pe hardware mai nou de generația 10 de la Intel, respectiv seriile 5xxx de la AMD:

While initializing device VCACHE:
Windows protection error. You need to restart your computer.

While initializing device VCACHE:
Windows protection error. You need to restart your computer.

Această nu este o eroare nouă, apărută acum pe calculatoarele de ultimă generație. Pe hardware-ul disponibil la apariția Windows 95/98 eroarea VCACHE era cauzată în special de probleme fizice cu memoria RAM (module SIMM/DIMM defecte) sau din cauza altor probleme de stabilitate cauzate de overclocking. Așadar, se știa că problema este cauzată în principal de memorie dar o vreme bună vreme nu s-a știut cauza exactă a acestei erori care s-a manifestat pe sistemele Intel începând cu generația 10 și pe cele AMD Ryzen, seriile 5xxx sau mai noi.

Ținând cont că folosim sisteme foarte rapide, te poți gândi că problema este cauzată de hardware … dar nu cei 4Ghz ai procesorului, SSD-ul sau memoria DDR4/DDR5 cauzează probleme. Odată ce am scăpat de eroarea VCACHE Windows 98 funcționează perfect și pe un sistem cu un procesor foarte rapid cum ar fi un Intel Raptor Lake, generația 13.

Windows 98 on Intel 13th Gen CPU, using Cregfix to bypass VCACHE error.

Ei bine, eroarea VCACHE este cauzată de o setare implicită din BIOS, respectiv din modulul CSM a celor de la AMI (American MegaTrends). Iar cum în momentul de față aproape că nu există placă de bază fară un BIOS AMI, eroarea s-a manifestat practic pe plăcile de bază apărute din 2020 încoace cu BIOS AMI.

Din fericire, userul Mintsuki i-a dat de cap si a creat un mic patch de numai 80 de baiți care rezolvă definitiv acestă problemă. Iată explicația lui Mintsuki care a postat chiar la unul din videourile mele de pe YouTube:

Este vorba despre un registru al procesorului care spune dacă codul kernel-ului ar trebui sau nu ar trebui să provoace erori de pagină (page fault) atunci când se scrie cod în pagini marcate ca read only. Inițial, arhitectura x86 nu avea un astfel de control și nici un fel de scriere a nucleului pe pagini read only nu producea nicio consecință. În jurul erei 486 (dacă nu mă înșel) și-au dat seama că este o prostie și că era nevoie și de un caz de utilizare pentru ca nucleul să poată provoca erori de pagină pe paginile care nu pot fi scrise (gândiți-vă la schimbarea pe disc și alte virtuale). Așa că au adăugat această „funcție” – dar din moment ce x86 este despre „backwards compatibility”, această caracteristică, la fel ca multe altele, este blocată în spatele unui bit de control în registrul CR0 (și anume CR0.WP). Evident, nu face bine pentru compatibilitate dacă bitul este activat implicit, așa cum putem vedea în acest caz. Multe firmware-uri UEFI moderne activează bitul, la fel ca multe sisteme de operare moderne, dar apoi nu reușesc să-l șteargă atunci când predă controlul unui sector de boot moștenit folosind CSM. Probabil că nimeni nu a prins asta vreodată; dar, de asemenea, trebuie să aveți în vedere că BIOS-ul CSM nu are se bazează pe un standard specificși, prin urmare, nu spune nimic despre starea în care ar trebui să se afle registrele de control, în afară de bunul simț. Deci, ar trebui să fie rezolvat de către furnizorii de firmware UEFI? Da, IMHO. Ei măcar consideră că asta este un bug? Greu de spus. Și plus, cregfix.com va fi în continuare util, deoarece nu ne putem aștepta ca toți furnizorii UEFI și producătorii de plăci de bază să livreze firmware-uri fixe, în special pentru modele mai vechi… Și, vorbind despre modele mai vechi, aș dori să subliniez că am urmărit această problemă timp de aproximativ 5-8 ani înainte de a afla în sfârșit cauza principală…”

În concluzie, tot ce trebuie să facem ca să scăpăm de această eroare este să copiem patch-ul cregfix.com în autoexec.bat. Aveți patch-ul mai jos pentru download.

Un video făcut la cald pe YouTube în momentul când a apărut acest patch, in noiembrie 2023.

YouTube player

CREGFIX funcționează foarte bine și cu Windows Millenium, doar că aici trebuie să activăm MS-DOS mode, detalii despre această procedură găsiți în video-ul de mai jos:

YouTube player

Comentarii

Nelamuriri? Intrebari?

Intreaba sau cauta raspunsul la sectiunea de intrebari si raspunsuri.