Firmware khusus untuk game Nintendo yang lebih baru dan menonton konsol.
Repo ini berisi kode khusus serta utilitas penambalan untuk menambahkan fungsionalitas tambahan ke game stok dan tonton firmware. Singkatnya, proyek ini memungkinkan Anda untuk menjalankan firmware permainan Anda dan menonton bersama bersama retro-go.
GAME
LEFT
+) untuk meluncurkan Retro-GO dari Internal Flash Bank 2.make help
untuk Melihat Semua Opsi Konfigurasi.PATCH_PARAMS="--device=mario"
)--smb1=path-to-patched-smb1-rom.nes
--smb1-graphics=path-to-patch.ips
ips/
dan mintalah Patcher secara otomatis menemukannya melalui bendera --smb1-graphics-glob
PATCH_PARAMS="--device=zelda"
)--no-beep
Repo ini menggunakan alat CLI GNWManager. Lihat instruksi tentang cara menginstal.
Instal Dependensi Python Game-and-Watch-Patch (> = Python3.6 Diperlukan) melalui:
pip3 install -r requirements.txt
Tempatkan internal_flash_backup_${DEVICE}.bin
dan flash_backup_${DEVICE}.bin
di root repo ini. Untuk mengekstrak ini dari sistem GNW Anda, lihat tutorial GNWManager Unlock. Misalnya, jika kita menambal game mario
dan menonton, kita memerlukan file internal_flash_backup_mario.bin
dan flash_backup_mario.bin
di direktori root proyek ini.
Lihat bagian yang sesuai di bawah ini untuk model perangkat Anda.
Untuk opsi konfigurasi tambahan, jalankan make help
.
Karena kebanyakan orang akan menggunakan ini dengan retro-go, menginginkan jumlah minimum penyimpanan eksternal yang digunakan, dan tidak peduli dengan gambar tidur atau telur paskah Mario, berikut adalah perintah yang direkomendasikan. Perhatikan bahwa ini menggunakan 128kb Bank Internal 1 yang tidak berdokumen dan membutuhkan versi yang dipasang OpenOCD yang ditambal.
# 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
Ini mengasumsikan Anda telah meningkatkan flash eksternal ke sesuatu yang lebih besar dari 4MB. Lihat dokumen Zelda untuk menggunakan retro-go dengan chip flash stok 4MB.
# 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
Langkah -langkah untuk berkedip dari wadah Docker (berjalan di Linux, misalnya Archlinux atau 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
Jika Anda mengalami masalah izin, pastikan pengguna Anda ada di grup Docker.
keystone-engine
Python Dependency pada RPI3 Jika Anda tidak dapat menginstal keystone-engine
pada Raspberry Pi 3, coba:
raspi-config
git clone https://github.com/keystone-engine/keystone
cd keystone/bindings/python/
python3 -m pip install .
Tahap utama untuk mengembangkan fitur:
Core/Inc/stock_firmware.h
.Core/Src/main.c
. Ada kemungkinan besar fungsi khusus Anda akan memanggil fungsi di (2). Anda mungkin juga harus menambahkan -Wl,--undefined=my_custom_function
ke LDFLAGS
di makefile sehingga tidak dioptimalkan sebagai kode yang tidak dapat dijangkau.patches/patches.py
.Ini adalah pertama kalinya saya mengembangkan tambalan untuk biner sumber tertutup. Saya mendokumentasikan perjalanan saya dengan harapan itu membantu orang lain. Jika Anda memiliki rekomendasi, tips, trik, atau hal seperti itu, silakan tinggalkan masalah GitHub dan saya akan memperbarui dokumentasi!
Terima kasih kepada komunitas yang memungkinkan ini! Repo ini dibangun dengan bantuan orang lain. Repos dirujuk selama pengembangan proyek ini:
Saya juga ingin mengucapkan terima kasih kepada perselisihan Stacksmashing atas semua bantuannya (teriakan khusus untuk @cyanic)!