GoBoy هو Nintendo Gameboy متعدد المنصات ومحاكي ألوان Gameboy مكتوبة في Go. يمكن للمحاكي تشغيل غالبية ألعاب GB وبعض ألعاب CGB. هناك أيضا دعم اللون والصوت. تم بناء هذا المحاكي بشكل أساسي كتمرين تنموي وما زال يعمل قيد التقدم. لا تتردد في المساهمة إذا كنت مهتمًا بتطوير محاكي Gameboy.


يتضمن البرنامج وظائف تصحيح الأخطاء مما يجعلها مفيدة لفهم عملية المحاكي لبناء واحدة بنفسك. تتضمن هذه الوظائف طباعة الرموز المفرطة وتسجيل القيم على وحدة التحكم في كل خطوة (على الرغم من أن إبطاء المحاكاة بشكل كبير) وتبديل القنوات الصوتية الفردية.
قم بتنزيل أحدث إصدار من GoBoy من صفحة الإصدارات.
مع تثبيت GO ، يمكنك تثبيت GoBoy في صندوق Go الخاص بك عن طريق التشغيل:
go get github.com/Humpheh/goboy/cmd/goboyإذا كان لديك 1.11 يمكنك أيضًا القيام بذلك:
git clone https://github.com/Humpheh/goboy.git
cd goboy
go build -o goboy cmd/goboy/main.goGOBOY متوافق مع MACOS و Windows و Linux. يتطلب البناء على Windows 10 Mingw و Linux ، ستحتاج إلى تثبيت GTK.
يستخدم GOBOY بكسل مكتبة GO من أجل ربط التحكم وتقديم الرسومات ، الأمر الذي يتطلب OpenGL. قد تحتاج إلى تثبيت بعض المتطلبات التي يمكن العثور عليها على Pixels ReadMe.
goboy zelda.gbعناصر التحكم: ← ↑ ↓ → z x أدخل مساحة الخلفية
يمكن تدوير لوحة الألوان مع = (في وضع DMG) ، ويمكن صنع اللعبة كاملة مع F.
خيارات أخرى:
-dmg
set to force dmg mode
-mute
mute sound outputخيارات التصحيح أو التجريبية:
-cpuprofile string
write cpu profile to file (debugging)
-disableVsync
set to disable vsync (debugging)
-stepthrough
step through opcodes (debugging)
-unlocked
if to unlock the cpu speed (debugging)هناك بعض اختصارات لوحة المفاتيح المفيدة لتصحيح الأخطاء:
س - قوة تبديل الخلفية
W - قوة تبديل العفاريت
A - طباعة بيانات لوحة خلفية GB (CGB)
S - طباعة بيانات لوحة Sprite (CGB)
D - طباعة خريطة خلفية لتسجيلها
E - Toggle Opcode Printing to Console (سوف يتباطأ التنفيذ)
7،8،9،0 - قم بتبديل القنوات الصوتية من 1 إلى 4.
إذا كان ROM المحمّل يدعم البطارية A <rom-name>.sav (على سبيل المثال zelda.gb.sav ) ، سيتم إنشاء ملف ROM المحمّل يحتوي على تفريغ من الكبش من الخرطوشة. ستقوم حلقة في البرنامج بتحديث ملف حفظ هذا كل ثانية أثناء تشغيل اللعبة.
يجتاز Goboy حاليًا جميع الاختبارات في cpu_instrs من Blargg و ROMS instr_timing .


يتم تضمين ROMs هذه في الكود المصدر إلى جانب اختبار للتحقق من الإخراج كما هو متوقع ( instructions_test.go و timing_test.go ). يتم إجراء هذه الاختبارات أيضًا على كل التزام.
لا تتردد في فتح طلبات السحب لهذا المشروع أو اللعب إذا كنت مهتمًا! لا يزال هناك الكثير من الأخطاء الصغيرة التي يمكن العثور عليها بسهولة من خلال ممارسة الألعاب في المحاكي ، أو تأخذ مهمة من قائمة ToDo أدناه!




تم استخدام مجموعة كبيرة ومتنوعة من الموارد لفهم واختبار أجهزة GameBoy. بعض هذه تشمل: