NOVA RAID — لعبة أركيد على Pico W

إصدار منشور

لعبة فضاء كاملة بلغة C على العتاد مباشرة، منشورة كملف UF2 — وأُصلحت بعد أن كشف أول تشغيل على العتاد الحقيقي عيبًا لم يلتقطه أي محاكٍ.

الدور
عمل فردي — التصميم والبرمجيات الثابتة وهندسة الإصدار
الفترة
2026
التقنيات
C · RP2040 · Pico SDK · SPI + DMA · PIO · GitHub Actions
روابط
المستودعصفحة المشروع وتنزيل UF2

القيد الذي شكّل كل شيء

تحتاج شاشة ST7796S نحو 39 مللي ثانية لاستقبال إطار كامل 480×320 عبر SPI بتردد 62.5 ميغاهرتز — وهذا وحده أكثر من ميزانية إطار عند 25 إطارًا في الثانية. الحل التصميمي: النواة 0 تحاكي وترسم إطارًا 240×160 بخطوة زمنية ثابتة، بينما تضاعف النواة 1 كل سطر وتبثه عبر DMA مزدوج التخزين، فيتداخل نقل الشاشة مع محاكاة الإطار التالي بدلًا من تعطيلها. (هذه حسابات تصميمية من ورقة البيانات لا قياسات على العتاد — والتمييز مهم.)

هندسة بلا وحدة فاصلة عائمة

لا FPU في Cortex-M0+: كل الحركة بحساب النقطة الثابتة 24.8 وجدول جيب من 64 مدخلًا. وتُحفظ أعلى النتائج في آخر قطاع فلاش 4 كيبيبايت مع إقفال النواة الثانية وتعطيل المقاطعات. ولا يلمس كود اللعبة العتاد إلا عبر طبقة تجريد صغيرة — ما يعني أن المصادر نفسها تُترجم على الحاسوب المكتبي، حيث يقود إطار اختبار مضيفي اللعبة عبر كل حالاتها في CI مع كل دفعة.

الخلل الذي لم يوجد إلا على العتاد الحقيقي

صدر v1.0.0 والاختبارات خضراء. أول إقلاع على اللوحة الفعلية عرض صورة سالبة الألوان — خلفية بيضاء وكائنات معكوسة. تبيّن أن شاشة اللوحة تعمل في وضع معكوس، وتسلسل التهيئة لم يرسل أمر INVON قط. أصلح v1.0.1 المشكلة في اليوم نفسه، مع كتابة السبب الجذري في ملاحظة الإصدار. ويحتفظ المستودع بالإصدارين وبصور العتاد قبل الإصلاح: النسخة الصادقة من «تم التحقق على العتاد» تتضمن ما وجده التحقق الأول.

الأدلة

عشرة إطارات ملتقطة بدقة البكسل من إطار الاختبار المضيفي (موسومة كصور مُولّدة لا فوتوغرافية)، وخمس صور للعبة تعمل على اللوحة الفعلية، ومخططات SVG، وإحدى عشرة دورة CI ناجحة، وإصداران موسومان بملفات UF2. كل كود اللعبة والرسوم والأصوات أصلية، والمكونات الخارجية منسوبة في README.

معرض الأدلة

لعبة NOVA RAID تعمل على لوحة Pico الفعلية مع عصا التحكم والأزرار
صورة فوتوغرافية للعتاد — اللعب على اللوحة الفعلية (الإصدار v1.0.0 قبل إصلاح الألوان).
شاشة افتتاح NOVA RAID بالشعار وحقل النجوم
إطار مُولَّد — التُقط بدقة البكسل عبر إطار الاختبار المكتبي، وليس صورة فوتوغرافية.
مخطط كتلي: النواة 0 للمحاكاة والرسم، والنواة 1 لمضاعفة البكسل والبث عبر DMA وSPI إلى الشاشة
مخطط — خط الرسم والعرض ثنائي النواة (من المستودع).