Abi merhabalar, bundan yıllar yıllar önce (sanırım 8 veya 9 yaşındaydım) Sonic Heroes oyununun PC versiyonunun dvdroot dizinindeki ses dosyalarını çıkartmak için uzunca bir süre *.pac formatlı dosyaları inceleyebileceğim ve kayıpsız olarak extract edebileceğim bir program arayışındaydım, uzun uğraşlar ve çabalar sonucu ne yazık ki böyle bir program bulamamıştım. Yıllar sonra aklıma tak etti ve sizin açtığınız konuya denk geldim, yaptığım araştırmalar sonucunda ve elde ettiğim veriler ışığında bu konuya cevap vermek istedim. Bu bahsedeceklerim tamamen oyundan oyuna farklılık göstermekte, bazı oyunların imaj dosyaları incelendiğinde direkt olarak *.pac uzantılı dosyalara erişebiliyoruz. Bazı oyunlarda da ne yazık ki geliştiricilerin kriptografiden yararlanarak şifrelediği CRI Middleware tarafından geliştirilen
ROFS imaj formatı karşılıyor bizi. Spesifik oyunlarda geliştiriciler oyun içi 3D karakter modelleri, efektler, seslendirme ve dokuları bu şifrelenmiş formatın içerisinde saklıyor. Şifrelenme mevzusu da oyundan oyuna değişiklik gösteriyor, kimi oyunda antin guntin şifreler varken kimi oyunun ROFS imajı şifrelenmemiş vaziyette.
ROFS imaj formatı internetten indirdiğimiz ya da sahip olduğumuz oyun dosyalarını incelediğimizde karşımıza çıkıyor.
(ROFS.CVM, DISC.CVM, DATA.CVM, BGM.CVM, VOICE.CVM gibi...) Bu format aslında bir header mantığı görüyor diyebiliriz, yani düpedüz *.ISO formatını taklit eden bir imaj dosyası, tıpkı ISO imajı mantığına göre çalışıyor fakat geliştiriciler erişilemesin diye şifreliyorlar. CVM dosyaları CD Filesystem dosya sistemini içeriyor, salt okunur bir biçimde olduğunu söyleyebiliriz. Şifrelenmemiş ROFS imajları HxD (Hex Editor) tarzı programlarla kod bloğundaki ilk
0x1800 byte'lık kısım silinip, dosya uzantısı *.ISO olarak değiştirildiğinde Daemon Tools, Virtual Clone Drive vb. programlarla mount edilebilir hale geliyor. Eğer içerisindeki dosyaları aktarmak istediğiniz oyunun ROFS imajı şifresiz ise
Apache3 gibi bir yazılımla da extract edilebildiğini iddia edenler var. Bu format genellikle
Arcana Heart, Persona, Virtua Fighter, Yakuza, Shinobi gibi oyunlarda kullanılıyor. Bu formatı kullanan bir çok oyun mevcut. Fakat ne yazık ki yukarıda bahsettiğim yöntemle her ROFS imajını açamıyoruz. Araştırmalarıma göre bazı oyunların çeşitli bölgelere ait olan sürümleri şifrelenmemiş halde olabiliyor, örnek vermek gerekirse oyunun PAL bölge kodlu versiyonunda CVM dosyası şifreliyken, NTSC ya da JAP bölge kodlu versiyonlarında şifresiz olabiliyormuş. Tabii bu tamamen şans işi, tek tek imajları deneme yanılma yöntemiyle incelemek gerekiyor.
ROFS formatını decrypt eden bir yazılım da yazılmış fakat burada devreye geliştiricilerin ROFS imajı için belirledikleri şifreyi bulma kısmı giriyor. Eğer ROFS imajını extract edeceğiniz oyunun şifresi mevcut ise ya da geliştiriciler tarafından hiç şifrelenmemiş ise roxfan adlı kullanıcının yazdığı
CVMTool isimli yazılımı kullanarak *.CVM formatlı dosyayı kolaylıkla erişilebilir bir *.ISO imaj dosyasına dönüştürebiliyoruz. roxfan nickli elemanın yazdığı yazılımla alakalı fazla bir bilgi bulamadım, sanırım CMD ekranı gibi komut girdisi mantığı ile çalışan bir yazılım (Commandline Tool). Aşağıda verdiğim linkteki forumda hangi oyunların imajlarının şifresinin bulunduğuna dair bir konu açılmış, fakat bu şifreleri yazan eleman nasıl bulduğuna dair bir bilgi vermemiş. Bu şifrelerin bazılarını da internetten bulduğunu söylüyor.
Söz konusu forumun linki:https://www.emu-land.net/forum/index.php?topic=76737.02007 yılında CVM formatlı dosyaların encrypt ve compression edilmesine yönelik açılmış olan bir forum konusu:https://forum.xen-tax.com/viewtopic.php@p=132219.html#p132219CVMTool yazılımı hakkında bilgi veren bir link:https://amicitia.miraheze.org/wiki/CVMroxfan adlı kullanıcının yazdığı "CVMTool" adlı yazılım:https://app.box.com/v/cvmtoolŞifresiz CVM dosyalarını ISO imajına convert eden 2005 tarihli eski bir yazılım:http://projects.sappharad.com/tools/cvm2iso.zipPersona 3 oyun imajının BGM.CVM dosyasının içerisindeki müzikleri CVMTool programı ile değiştiren birinin yazdığı rehber:https://aloshi.com/tag/ps2Şifreleri henüz bulunamamış ve CVM dosyası şifreli olan oyunların şifrelerini bulmak için CVM dosyasını HxD (Hex Editor) tarzı bir yazılımla açarak, içerisinde
"VOL", "ROFS", "ADXF_AddRofsVol" gibi satırları aratıp şifrenin bulunabileceğini ya da oyunun yürütülebilir dosyasında
(*.ELF) bu şifrenin saklı olduğunu söyleyenler de var. Bu iş gittikçe komplike bir hâl alıp, insanın tadını tuzunu kaçıracak seviyeye geliyor diyebiliriz.
Yukarıda anlattıklarım yüksek oranla PlayStation 2, Gamecube, Wii oyunları için geçerli. PS3 ve XBOX 360 gibi yeni nesil konsollara çıkmış ve Criware desteği olan oyunlarda
CVM TOC Encryption adı verilen bir şifreleme algoritması kullanılıyor ve bu algoritma henüz kırılabilmiş değil.
Yanlış bilgi verdiysem, çok uzun anlatıp don lastiği gibi uzattıysam affola :) Retro oyunların dosyalarını merak edip, incelemek isteyenler için yardımcı olabildiysem ne mutlu bana..
Bahsettiğim *.PAC dosyalarına direkt olarak erişiminiz varsa, aşağıdaki linklerde verdiğim yöntemlerle bu dosyaları görüntüleyebilirsin abi;
1. PACTool https://github.com/Sewer56/PACTool - 28 Eylül 2023'te yayınlanmış, genel olarak söz konusu *.pac uzantılı dosyaların içerisindeki ses dosyalarını görüntüleyip, extract edebiliyor fakat yukarıda bahsettiğim oyundan oyuna değişiklik gösterme durumu burada devreye giriyor. Bazı oyunlar normal ve çoğu yazılım ve cihaz tarafından tanınan
(örnek vermek gerekirse; Windows Audio Waveform *.wav, MPEG Audio Layer 3 *.mp3 gibi..) ses formatları yerine bilgisayardaki audio player'ların oynatamadığı ve bizim kod çözme/dönüştürme yapamadığımız formatlar barındırıyor. Bu formatları açabilmek için o oyun üzerine internette hiç tool mevcut mu veya yazılmış mı bunu araştırmak gerekiyor.
Bazı oyunların ses dosyaları extract edildiğinde, düzgün bir şekilde ses alınamama
(ses dosyasının hızlı çalması veya ses tonlarının kalın veya çok tiz çıkması) durumu var. Bunun için ses dosyasının frekansı 22050Hz ya da 24000Hz olarak değiştirildiğinde düzgün bir biçimde çıktı alınabileceğini söyleyenler var. Bunu hiç deneme şansım olmadı, hangi oyunlarda böyle sıkıntı çıkarıyor onu pek araştırmadım. Sanırım bu farklı formatlar oyun geliştiricileri tarafından custom format oluşturulup; ses dosyalarını kendi yazdıkları programlar ile rahatlıkla işleyip, değiştirebilmek, üzerinde oynayabilmek için yapıyorlar. Bence burada bahsettikleri format yüksek ihtimalle *.ADX uzantılı ses dosyaları, zira bu ses dosyası formatı da CRI Middleware'ın bir eseri.
Ayrıyeten bu *.pac uzantılı dosyalar sadece ses formatı değil de bazen oyun içerisindeki 3D model ve objelerin dosyalarını da barındırabiliyor. Bunun için
RRUnpacker diye bir yazılım öneriyorlar.
2. https://www.youtube.com/watch?v=vooJrAuSATw Bu videoda da Hex Editor ile extract edilebileceğini göstermiş fakat bu yöntem zahmetli ve başarı oranı düşük gibi hissettirdi bana, bunu hususi denemek gerekiyor.