روتين لتبديل GBA إلى وضع GBC حسب البرنامج!
يمكن العثور على رمز المصدر هنا:
https://github.com/antoniond/gba-switch-to-gbc
مقطع فيديو يوضح الكود هنا:
https://www.youtube.com/watch؟v=PCIQQPOKBGI
لقد قمت بإعداد BIOS GBA وبحثت عن التعليمات التي تتحقق DISPCNT Bit 15 (على العنوان 0x00001958 ). إذا تم اكتشاف عربة GBC (مستحيلة في الأجهزة الحقيقية) يتم استدعاء روتين فرعي. معظمها مجرد شاشة تتلاشى ، ولكن هناك بعض المعلومات حول تكوين السجلات اللازمة للتبديل إلى وضع GBC.
يمكنه حتى تعديل بعض السجلات الأخرى لتغيير شاشة GBC! يمكن أن يطبق تحويل Affine ، أو تطبيق تأثير Mossaic ... هناك بعض الأشياء للاختبار في الكود.
لاحظ أن وضع "شاشة التمدد" التي تمكّنها عن طريق الضغط على L يتجاوز جميع سجلات التحول ، ولكن لا تزال هناك تأثيرات مثل الفسيفساء و Greenswap في وضع التمدد.
لاحظ أنه بمجرد إدراج خرطوشة GBC في GBA ، لا يمكن استخدام eRam. هذا يعني أن الوظيفة التي تنتقل إلى وضع GBC (وأي وظيفة تستخدم للانتظار قبل التبديل) تحتاج إلى وضع في IRAM ، وكذلك أي متغير يستخدمه الوظائف.
يجب أن تعمل في GBA ، GBA SP ، GB Micro ، ولكن ليس في DS. إذا كنت أتذكر بشكل صحيح ، فإن ARM7 يختلف في NDS. يعد وضع GBA في DS مجرد وضع توافق ، ولكن في GBA و GBA SP و GB Micro يشتمل SOC على وحدة المعالجة المركزية GBC أيضًا.
النتائج هي:
يبدو أن GB Micro في وضع GBC لا يمكنه قراءة أي شيء من العربة. لا بد لي من إجراء المزيد من الاختبارات ، لكنني جربت خرطوشة تعمل بسرعة 3.3 فولت ولا يقوم جهاز GB Micro بتحميل القمامة في شعار Nintendo مثل GBC الحقيقي أو MGB.
لبناءها ، تحتاج إلى Devkitpro.
موقع الويب الخاص بي: www.skylyrac.net/
بفضل:
DWEDIT ، بالنسبة إلى ROM الأصلي الذي حاول إدخال وضع GBC:
https://www.dwedit.org/dwedit_board/viewtopic.php؟id=339
النقيض ، لاكتشاف أن الكود يجب أن يكون في IRAM للعمل بالفعل.
مأخوذة من هنا: https://problemkaputt.de/gbatek.htm#auxgbagamepakbus
8bit-gamepak-switch (GBA ، GBA SP فقط) (وليس DS)
يوجد مفتاح صغير داخل فتحة الخرطوشة ، ويتم دفع المفتاح لأسفل عند إدراج خرطوشة 8bit ، ويتم إصدارها عند إدخال خرطوشة GBA (أو إذا لم يتم إدخال خرطوشة).
يتحكم المفتاح ميكانيكيًا فيما إذا كانت VDD3 أو VDD5 يتم إخراجها في VDD35 ؛ أي. في وضع GBA ، يتم استخدام إشارات/إشارات الطاقة 3V في فتحة الخرطوشة ومنفذ الارتباط ، بينما يتم استخدام وضع 8Bit 5V.
يتسحب المفتاح بالإضافة إلى ذلك في 35 إلى 3V عند إدراج عربة 8bit ، يمكن تحديد الحالة الحالية لـ IN35 في وضع GBA عبر المنفذ 4000204H (Waitcnt) ، إذا تم دفع المفتاح ، فيمكن تنشيط وضع CGB عبر المنفذ 4000000h (Dispcnt.3) ، يمكن تعيين هذا البتات فقط بواسطة البصيرات في المنطقة الثانوية (Eg.
في وضع 8bit ، تعمل حافلة الخرطوشة إلى حد كبير بالنسبة لـ GBA SRAM ، ومع ذلك ، من المتوقع أن يتم تفسير إشارة 8Bit /CS في PIN 5 ، بينما يتم تفسير GBA SRAM /CS2 في PIN 30 على أنها إشارة /إعادة ضبط بواسطة شريحة 8Bit MBC (إن وجدت). في الممارسة العملية ، يبدو أن هذا يؤدي إلى استلام 00H كبيانات عند محاولة قراءة خراطيش 8bit من داخل وضع GBA.