Win3mu

Eski Win16 uygulamalarını çalıştırmanın artık DOS uygulamalarını çalıştırmaktan çok daha acı verici olduğu günümüzde Windows 3 uygulamalarını güncel Windows sürümlerinde çalıştırmak isteyenler için Win3mu'dan bahsetmek istiyorum.

Win3mu Nedir?

Win3mu, Topten Software'den Brad Robinson tarafından geliştirilmeye başlanmış bir Windows 3.0 emülatörüdür. 16 bit Windows çalıştırılabilir dosyalarını yükleyen ve UPA çağrılarını modern 32 bit veya 64 bit Windows UPA'sına eşleyen bir 8086 MİB emülasyonu da içerir.

Ne yazık ki Win3mu şu anda çoğu Windows 3 programını çalıştıramıyor, ancak oldukça az sayıda oyunu oynatabiliyor:


Artık Özgür Yazılım!

Win3mu, ilk başta böyle bir şeyin yapılıp yapılamayacağını görmek için başlatılan bir hobi projesiydi. Ne yazık ki hem geliştiricisinin projeye karşı eskisi kadar ilgisinin kalmaması hem de yetiştirmesi gereken ücretli projeler olması nedeniyle bir süre sonra Brad Robinson projeye zaman ayıramamaya başladı.

Bunun üzerine Robinson, projenin bir kenarda sessizce ve yavaş yavaş ölmesini beklemek yerine, birisinin ilgisini çekip geliştirmeye devam etmesi umuduyla Win3mu'nun tüm kaynak kodlarını GNU Genel Kamu Lisansı ile özgür yazılım topluluğuna teslim etti.

Kurulum

Yukarıdaki videoda Win3mu için bir kurulum programı görünse de şu anda bir yükleme programı, destek yüküne maruz kalınabileceği endişesiyle sunulmuyor. Win3mu yalnızca kaynak kod olarak sunulmakta ve son kullanıcılardan daha çok kaynak kodlarına bakmak ve onunla oynamak isteyen geliştiriciler hedeflenmektedir.

Robinson, bir başkası yükleme paketi hazırlamak istiyorsa bunda serbest olduğunu ancak kendisinden son kullanıcıların destek sorularını yanıtlamasının beklenmemesini istediğini, bununla birlikte zamanı izin verdiği ölçüde proje üzerinde çalışan diğer geliştiricilere cevap verip yardımcı olacağını belirtmiş durumda.

Win3mu'nun ikilik dosyaları internette bulunabiliyor, ben de kendi oluşturduğum kurulum programını sadece geçici olarak şuraya koyuyorum. Bununla birlikte hiçbir şekilde benim de destek vermediğimi ve sorumluluk kabul etmediğimi bilmenizi isterim.

Tavsiye ettiğim yöntemse:
  • Kaynak kodlardan derleme yapmak
  • Sonrasında, oluşan ikilik dosyaları kullanıp kurulum paketi oluşturmak
  • Kurulum paketini kullanarak kurulum yapmak.
Okuyunca biraz karışık geliyor olabilir ama aslında o kadar da zor değil:
  • İlk önce bir Windows makineye ihtiyacınız var.
  • Sonrasında sisteminizde Visual Studio 2017, .NET 4.6.1 ve Inno Setup kurulu değilse bunları kurmalısınız.
  • Derleme ve paketleme için gerekli yazılımları kurduktan sonra Win3mu'nun kaynak kodlarını indirmelisiniz. Win3mu'nun resmi deposu bitbucket.org/toptensoftware/win3mu adresinde yer alıyor. Buradan tüm alt modülleri (Sharp86) de içerecek şekilde indirmeniz gerekiyor. İşleri daha da kolaylaştırmak için GitHub'daki Mwyann çatallamasından da indirme işlemini gerçekleştirebilirsiniz. Ana sayfada Clone or download > Download ZIP yolunu izlemeniz yeterli.
  • Arşiv indikten sonra arşivi açıp içindeki Win3mu.sln proje dosyasını açın.
  • Doğrudan deneme yapmak için Debug kipinde kurulum paketi oluşturmak içinse Release kipinde tüm alt projeleri derleyin.
  • Setup dizinine girin ve buradaki Win3muSetup.iss dosyasına sağ tıklayarak içerik menüsünden compile seçeneğini seçin.
  • build/Setups altında oluşan SetupWin3mu-100.exe kurulum dosyasını kullanarak kurulum yapın.
  • Herhangi bir 16 bitlik Windows uygulamasına sağ tıklayarak Convert with Win3mu seçeneğini seçin. Her şey yolunda giderse orijinal dosya programismi.exe16 olarak isimlendirilir ve program simgesinin de görünür olduğu programismi.exe dosyası oluşturulur.
  • Şimdi oluşan yeni dosyayı çalıştırmayı deneyebilirsiniz. Bazı modüllerin (SHELL, COMMDLG, OLECLI...) eksikliğinden dolayı hata alıyorsanız bunları orijinal WINDOWS\SYSTEM dizininden veya internetten temin edip uygulamanın bulunduğu dizine kopyalamanız gerekiyor (benim commdlg.dll dosyasını internetten bulup indirmem gerekti deneme yaptığım uygulama için).
  • Artık iki seçenek var: ya uygulamanız çalışacak ya da "Unsupported ordinal #**** in module **** invoked" benzeri bir hata alacaksınız. Böyle bir hata alırsanız ya ilgili fonksiyon gerçeklenene kadar beklemeniz ya da bu fonksiyonu kendinizin gerçeklemesi gerekiyor.

Teknik Detaylar

Win3mu projesinin geliştirimi sırasında Brad Robinson nasıl bir yol izlediğini açıklayan bir dizi makale de yazdı. Eğer geliştiriciyseniz ve emülasyon konusuyla ilgiliyseniz bu yazıları da okumak isteyebilirsiniz.

Sonuç

Win3mu'yu sadece MoonStar Sözlük ile denedim. Win3mu, programı sözlük dosyalarının içeri aktarıldığı noktaya kadar çalıştırmayı başarıyor ama sonrasında yukarıda bahsettiğim şekilde bir istisna verip kapanıyor. Daha anlaşılır bir ifadeyle MoonStar Sözlük'ün arayüzünü görebiliyoruz (ingame) ama sözlük işlevinden yararlanamıyoruz (not playable).

Win3mu eğer özgür yazılım topluluğu tarafından benimsenirse ve gerçekten böyle bir ihtiyaç varsa gelişimini sürdürecektir. Siz de gelişimine katkı verebilirsiniz. Eski Windows uygulamalarını Linux'ta veya derlemeyi başarabilirseniz Windows'ta Wine ile çalıştırmak veya benim de bu yazıyı hazırlarken duyduğum daha az bilinen alternatifleri (merak edenler kaynaklar kısmına bakabilir veya benim sonraki yazılarımı bekleyebilir) denemek de seçenekleriniz arasında.

Kaynaklar ve Ek Okumalar

Yorumlar

Bu blogdaki popüler yayınlar

Diğer Dillerde Hoşçakal

Mızıka Tabları Nasıl Okunur

conio.h