البرامج الثابتة المخصصة لأحدث لعبة Nintendo ومشاهدة لوحات المفاتيح.
يحتوي هذا الريبو على رمز مخصص بالإضافة إلى أداة تصحيح لإضافة وظائف إضافية إلى لعبة الأسهم ومشاهدة البرامج الثابتة. باختصار ، يتيح لك هذا المشروع تشغيل البرامج الثابتة الخاصة بك ومشاهدتك جاءت مع Retro-Go.
GAME
LEFT
+) لبدء تشغيل Retro-Go من Internal Flash Bank 2.make help
لمشاهدة جميع خيارات التكوين.PATCH_PARAMS="--device=mario"
)--smb1=path-to-patched-smb1-rom.nes
--smb1-graphics=path-to-patch.ips
ips/
واكتشفها تلقائيًا عبر العلامة- --smb1-graphics-glob
PATCH_PARAMS="--device=zelda"
)--no-beep
يستخدم هذا الريبو أداة Gnwmanager CLI. انظر إلى تعليمات حول كيفية التثبيت.
تثبيت تبعيات Python اللعبة والمشاهدة (> = Python3.6 المطلوبة) عبر:
pip3 install -r requirements.txt
ضع internal_flash_backup_${DEVICE}.bin
و flash_backup_${DEVICE}.bin
في جذر هذا الريبو. لاستخراجها من نظام GNW الخاص بك ، راجع البرنامج التعليمي لفتح Gnwmanager. على سبيل المثال ، إذا قمنا بتصحيح لعبة mario
and Watch ، فنحن بحاجة إلى ملفات internal_flash_backup_mario.bin
و flash_backup_mario.bin
في الدليل الجذر لهذا المشروع.
راجع القسم المناسب أدناه لنموذج جهازك.
لخيارات التكوين الإضافية ، قم بتشغيل make help
.
نظرًا لأن معظم الناس سيستخدمون هذا مع Retro-Go ، يريدون الحد الأدنى من التخزين الخارجي المستخدم ، ولا يهتمون بصور النوم أو Mario Song Easter Egg ، إليك أوامر التوصية. لاحظ أن هذا يستخدم 128 كيلو بايت من البنك الداخلي 1 ويتطلب نسخة مصححة من OpenOCD مثبتة.
# in this repo
make clean
make PATCH_PARAMS="--device=mario --internal-only" flash
# in the retro-go repo
make clean
make -j8 INTFLASH_BANK=2 flash
هذا يفترض أنك قمت بترقية الفلاش الخارجي إلى شيء أكبر من 4 ميجابايت. راجع وثيقة Zelda لاستخدام Retro-Go مع رقاقة الفلاش 4 ميغابايت.
# in this repo
make clean
make PATCH_PARAMS="--device=zelda" flash
# in the retro-go repo
make clean
# In this example, I'm assuming you have a 64MB flash chip (60 = 64 - 4)
make -j8 EXTFLASH_SIZE_MB=60 EXTFLASH_OFFSET=4194304 INTFLASH_BANK=2 flash
خطوات لفلاش من حاوية Docker (تعمل على Linux ، مثل Archlinux أو Ubuntu):
# Go into the docker directory of this repo.
cd docker/
# Pull the pre-built docker image.
docker pull brianpugh/game-and-watch-patch:latest
# When done, use the image to create a container with the attached docker-compose.yaml file.
# You have to edit the compose file and set the path to the directory with your firmware backup (volumes section of the file).
docker compose up -d
# This will create and run a container game-and-watch-patch.
# The firmware backup files will be mounted into /tmp/firmware of the container.
# Now, go inside the container copy the backup files and proceed as described above in the Usage section.
docker exec -it game-and-watch-patch /bin/bash
إذا واجهت مشكلات الإذن ، فتأكد من أن المستخدم في مجموعة Docker.
keystone-engine
التبعية Python على RPI3 إذا لم تتمكن من تثبيت keystone-engine
على Raspberry Pi 3 ، فحاول:
raspi-config
git clone https://github.com/keystone-engine/keystone
cd keystone/bindings/python/
python3 -m pip install .
المراحل الرئيسية لتطوير ميزة:
Core/Inc/stock_firmware.h
.Core/Src/main.c
. هناك فرصة جيدة لوظيفة مخصصة ستتصل بالوظيفة في (2). من المحتمل أن تضطر أيضًا إلى إضافة -Wl,--undefined=my_custom_function
إلى LDFLAGS
في makefile بحيث لا يتم تحسينه كرمز لا يمكن الوصول إليه.patches/patches.py
.هذه هي المرة الأولى التي أقوم فيها بتطوير تصحيحات لمصدر مغلق. لقد وثقت رحلتي على أمل أن يساعد الآخرين. إذا كان لديك أي توصيات أو نصائح أو حيل أو أي شيء من هذا القبيل ، فيرجى ترك مشكلة github وسأقوم بتحديث الوثائق!
بفضل المجتمع الذي جعل هذا ممكنًا! تم بناء هذا الريبو بمساعدة الآخرين. المشار إليها أثناء تطوير هذا المشروع:
أود أيضًا أن أشكر Discord stacksmashing على كل المساعدة (الصراخ الخاص لـ cyanic)!