YouTuber MattKC, dengan kata-katanya sendiri, mem-porting “ribuan aplikasi” ke Windows 95 dengan susah payah mem-porting fitur Windows 98 yang paling menonjol, .NET Framework, kembali ke versi 95 yang lama. Pembatasan utama Windows 95 dibandingkan dengan 98, adalah kurangnya .NET Framework— dalam banyak hal, Windows 98 sangat mirip dengan pendahulunya dalam hal desain dan fungsi. Tapi kenapa dia melakukan ini?
Video berdurasi 51 menit yang kami tonton beberapa kali sebagian besar mengungkapkan antusiasme yang tulus terhadap era perangkat keras dan perangkat lunak tersebut, seperti yang bisa dibayangkan jika dia bersedia membuat film tentang perluasan Windows 95 28 tahun setelah dirilis. Video asli, yang disematkan di bawah, juga memiliki beberapa garis singgung live-action lucu yang mengatur nada dan karakter, termasuk beberapa jeda yang diambil dengan indah.
Mengutuk KernelEx tidak berfungsi pada Windows 95; MattKC harus mencari tahu cara agar .NET Framework berfungsi dengan benar. Banyak file .DLL yang hilang, tetapi menggunakan alat dumping memungkinkan nama file yang hilang diidentifikasi sehingga DLL yang hilang dapat diganti atau diabaikan. Bahkan setelah mem-porting semua file DLL yang hilang, .NET masih tidak menghasilkan.
Agar .NET dapat berfungsi di Windows 95, diperlukan lebih banyak kunci registri daripada detik dalam video asli berdurasi 51 menit, 53 detik — jumlah total kunci registri yang diperlukan adalah 5.409.
Namun bahkan setelah di-porting, .NET tidak dapat melakukan debug JIT (Just In Time) dengan benar di Windows 95. Penyebabnya tampaknya adalah “ndphlpr,” sebuah driver Windows warisan misterius yang tidak digunakan di Windows 98 namun “diperlukan” untuk .NET sejak .NET crash tanpa itu. MattKC memutuskan bahwa berbohong kepada PC tentang memiliki ndphlpr mungkin berhasil, tetapi setelah penelitian mengungkapkan bahwa tidak ada yang tahu apa itu, dia mencoba memperbaikinya sepenuhnya.
Ini memunculkan kesalahan pengecualian kode mesin. Alat WinDebug tidak mendukung .NET secara asli (karena alat tersebut belum seharusnya ada), jadi MattKC masih harus menghadapi beberapa masalah kompatibilitas saat menguji Windows 95 dan 98 secara paralel. W95 dan W98 dijalankan di WinDebug selama berhari-hari untuk menemukan masalahnya, dan kemajuan pengaturan ulang sangat melelahkan.
Akhirnya, MattKC akhirnya menemukan blok kode terhalang yang tidak dapat dibaca oleh WinDebug. Setelah diuraikan, kode itu terungkap sebagai:
F2 0F 10 44 24 08 F2 05 2C BERSAMA
Kode yang disadap ini berkaitan dengan API Windows yang hilang untuk beberapa fungsi klik. Pengecualiannya adalah ia tidak dapat menemukan “NotifyWinEvent di user32.dll,” dan SSE2 mengaburkan instruksi dalam kode. Kemudian, .NET harus ditambal untuk menghilangkan ketergantungan SSE2—tetapi hal ini tidak memperbaiki kompatibilitas, hanya debugger .NET itu sendiri.
Setelah lebih banyak melakukan debug untuk Pulau Lego, MattKC akhirnya secara manual mengkodekan metode untuk pesan Pengecualian/kesalahan untuk dicetak ke jendela alih-alih terjadi di tempat yang tidak dapat dilihatnya. Ini berfungsi dan memungkinkan bagian terakhir dari kompatibilitas DLL diperbaiki. Setelah itu, Rebuilder untuk Lego Island dan aplikasi fungsi tangkapan layar khusus yang lebih modern kini berfungsi dengan baik di Windows 95.
Dan itu adalah sosok lain dari legenda “Orang Gila yang Bertekad Cukup”.