Desteklenen motor · YU-RIS
YU-RIS (raiL-soft tarafından), yüzlerce doujin ve ticari Japon görsel romanının arkasındaki uzun soluklu bir Windows betikleme motorudur. Kaynakları .ypf paket arşivlerinde bulunur ve senaryo YSTB betiklerine derlenir (ysbin.ypf içindeki .ybn dosyaları, ysbin/yst00000.ybn gibi dahili yollarda). RuneTranslate .ypf paketlerini saf TypeScript'te okur — GARbro veya harici araç yok — girişleri açar ve her arşivin dosya adı anahtarını kurtarır, ardından derlenmiş YSTB betiklerini ayrıştırır: dört bölümü (komutlar, argüman tanımlayıcıları, dize değerleri, satır numaraları) ayırır ve betiğin 4 baytlık XOR anahtarını tanımlayıcı tablosundan otomatik kurtarır, böylece şifreli betikler anahtar avı olmadan açılır. Oradan Japonca diyaloğu dize tablosundan çeker ve her satırı düzenleyicide listeler; motorun komut operandlarını, değişken adlarını ve varlık yollarını varsayılan olarak hariç bırakır, böylece betik mantığının karşılaştırdığı bir şeyi asla çevirmezsiniz. Dışa aktarımda dize tablosunu yeniden oluşturur — daha uzun veya daha kısa çevirilerin sığması için her ofseti yamalayarak — aynı XOR anahtarını yeniden uygular ve çevrilmiş .ybn'yi arşiv yolunda gevşek olarak yazar. YU-RIS çalışma zamanı diskteki gevşek bir dosyayı .ypf içinde paketlenmiş aynı yola tercih ettiği için oyun basitçe çevirinizi yükler — yeniden paketleme yoktur. Bu motor hâlâ gerçek oyunlarda doğrulanıyor, bu yüzden yeniden dağıtmadan önce dışa aktarılan sürümü test edin.
Görsel romanlar binlerce satır boyunca sabit bir kadroya ve tekrarlayan terminolojiye dayanır ve makine çevirisi bir kahraman kızın adını üç bölümde üç farklı şekilde yazar. Karakterlerinizi, yer adlarını ve tekrarlayan terimleri önceden sözlüğe ekleyin, böylece her diyalog satırı onları tıpatıp aynı görüntüler. Sözlük 101 →
RuneTranslate'i oyun dizinine yönlendirin — oyunun yu-ris.exe'si ve .ypf paketleri olan klasör (genellikle bir pac/ alt klasöründe, betikler ysbin.ypf içinde). Oyunu zaten GARbro ile açtıysanız, gevşek bir ysbin/ .ybn betikleri klasörü de algılanır. Motor algılama YU-RIS düzenini otomatik tanır; orijinal klasörünüz asla değiştirilmez.
RuneTranslate .ypf paketlerini saf TypeScript'te açar, girişleri açar ve içindeki derlenmiş YSTB betiklerini ayrıştırır. Her betiğin 4 baytlık XOR anahtarını argüman tanımlayıcı tablosundan otomatik kurtarır — anahtar avı yok — Shift-JIS dize tablosunu çözer ve her Japonca satırı düzenleyicide betik dosyasına göre gruplandırarak listeler. Motor komut operandları, değişken adları ve varlık yolları yüzeye çıkarılır ancak varsayılan olarak hariç tutulur, böylece hikâye mantığı bozulmadan kalır.
Bu oyunlar diyalog ağırlıklı ve ton hassastır, bu yüzden bir LLM (OpenAI GPT-4o / Anthropic Claude) veya DeepL genellikle en iyi okunur; ücretsiz Google Translate veya yerel bir model (Ollama / LM Studio) kısa menü dizelerini ve seçimleri kapsar ve OpenAI uyumlu sağlayıcıyı OpenRouter veya NanoGPT'ye yönlendirebilirsiniz. İsteğe bağlı bir AI-refiner ikinci geçişi düz ifadeleri sıkılaştırır.
YU-RIS mesaj metni diyalog boyunca ters eğik çizgi kontrol kodlarını (satır sonu, renk, ruby) ve köşeli parantezli etiketleri örer. RuneTranslate bunların her birini çeviri sırasında sayısal yer tutucular olarak dondurur ve çıkışta geri yükler, böylece çevrilmiş satır orijinaliyle aynı biçimlendirmeyi ve ritmi korur.
Dışa aktarımda RuneTranslate oyunu kopyalar ve her çevrilmiş YSTB betiğini yeniden oluşturur — herhangi uzunluktaki çevirinin sığması için dize tablosu ofsetlerini yamalayarak ve aynı XOR anahtarını yeniden uygulayarak — ardından onu orijinal arşiv yolunda gevşek olarak yazar (örn. ysbin/yst00000.ybn). YU-RIS çalışma zamanı gevşek bir dosyayı .ypf içinde paketlenmiş aynı yola tercih eder, böylece oyun sadece çevirinizi yeniden paketleme olmadan okur. Dışa aktarılan kopyayı çalıştırın; dilinizde oynanır.