RubyBoy: محاكي Game Boy بلغة Ruby، الآن مع WebAssembly!
2025-02-08
قام المؤلف بإنشاء محاكي Game Boy يسمى RubyBoy بلغة Ruby، وأصدره كحزمة gem. تتناول هذه المقالة تفاصيل عملية التطوير، بما في ذلك تنفيذ واجهة المستخدم، وتحميل ROM، ودعم شرائح MBC، وتنفيذ وحدة المعالجة المركزية ووحدة معالجة الرسومات، واستراتيجيات تحسين الأداء. لزيادة الأداء، استخدم المؤلف YJIT، وتجنب إنشاء Hash غير الضروري، وحسّن حسابات الحلقة، واستفاد من التحسينات في Ruby 3.3، مما أدى إلى تحسينات كبيرة في السرعة. في النهاية، يعمل RubyBoy بنجاح في المتصفح بفضل WebAssembly، مما يسمح بالتنفيذ عبر الأنظمة الأساسية.
التطوير
محاكي Game Boy