こちらではゲーム&ウオッチの改造方法を紹介します
初めに
下記リンクで紹介しているように、本体についているusbについては充電しか使用できないようです
ですのでそこから改造といった簡単なものではありません
本体を分解しても壊しても大丈夫といった方向けの記事になります
機材を揃える必要があるのと、半田作業にlinuxの導入も必要
できることもかなり限定的
ロマン要素が多い改造で、どうしてもゲーム&ウォッチでエミュレーターを起動したいといった方向けです
色々なゲーム、最新ゲームを遊べるといったものではないのでそういった方はスルー推奨です
ゲーム&ウオッチに搭載されているメモリの容量は少ないみたいなので、ゲーム&ウォッチの時計機能など、本来の機能を維持しつつ、エミュレーターや自作ソフトを導入したい場合はチップをやり替えないといけないみたいです
これはかなり上級者向けで、初心者はブリックさせる可能性大です
ゲームの追加に関してはゲーム&ウオッチ スーパーマリオブラザーズは本来は1MBしかないので、ゲームボーイのゲームを一つでも入れたらオーバーします
フラッシュを交換できるなら16MBまで拡張可能だが、先ほど述べたように初心者ではブリックのリスク大
ゲーム&ウオッチ ゼルダの伝説は発売しないと分かりませんが、もともと入っているゲームの中にゲームボーイがあるようなのでゲーム&ウオッチ スーパーマリオブラザーズよりも搭載しているフラッシュの容量が多いと思われます
ですのでそちらの方がよりゲームを追加できると思います
起動可能なエミュレーター
ゲームボーイ&ゲームボーイカラー
ゲームギア
ファミリーコンピューター
pcエンジン
sms
など
ですのでこちらの記事で紹介するのはゲーム&ウォッチの時計機能など、本来の機能を無視してエミュレーターや自作ソフトを動作させる方法を紹介します
必要なもの
stm32プログラマー
自分は様々な解説サイトで紹介されているSTマイクロエレクトロニクス STM Nucleo-F103RBを使用します
そのほかにもこういったものも使用できるそうです
https://www.amazon.co.jp/s?k=STM32+プログラマ&__mk_ja_JP=カタカナ&ref=nb_sb_nossST-LINK2ならSWCLK, GND, SWDIO で1,3,4 の3本を接続するだけでいいようです
Nintendoツールキット ニンテンドー ドライバーセット 任天堂 開封・分解・修理ツールキット
あると便利
デュポンワイヤー
ICクリップ
書き換え後はケーブルが邪魔なので半田付けするよりはこういったクリップで接続して、書き換えが終わったら外せるようにした方がいいです
はめてもしっかり接続されていない場合もあるので、しっかり手で押さえるなどした方がよい場合もあるので注意
参考動画
参考サイト
gbatemp
A Novice Hacking A Game & Watch 旧
how-to-get-launcher-and-retrogo-on-your-g&w
discordサーバー
STマイクロエレクトロニクス STM Nucleo-F103RB基盤説明
最新
改造手順
分解
バッテリーのコードを外しておく
配線
購入したstm32プログラマーに対応する部分を画像を参考に接続
VDDは配線する必要なし
Tマイクロエレクトロニクス STM Nucleo-F103RBの場合
VDDは配線する必要なし
ゼルダは配線が少し違います!
二つ飛ばしてマリオと同じようにすればいけましたマリオを弄ったことがある人なら大して混乱はおこらないと思います
Playerから取り外し可能デバイスからSTM32プログラマを選択し、接続をクリック
game-and-watch-backupフォルダの中のbackupsフォルダをどこか別の場所にも大事にコピーして保存しておくこと
バックアップ
下記リンクを参考にubuntuを導入&起動
下の画像を参考に端末を開き、
sudo apt-get install binutils-arm-none-eabi python3 libftdi1
次に
wget https://nightly.link/kbeckmann/ubuntu-openocd-git-builder/workflows/docker/master/openocd-git.deb.zip
unzip openocd-git.deb.zip
sudo dpkg -i openocd-git_*_amd64.deb
sudo apt-get -y -f install
git clone --recurse-submodules https://github.com/ghidraninja/game-and-watch-backup.git
cd game-and-watch-backup
と打ち込む
説明
1_sanity_check.sh
健全性チェックを実行し、必要なすべてのツールが使用可能であることを確認します
2_backup_flash.sh
SPIフラッシュの内容をバックアップします。デバイスの内容を変更しません。
3_backup_internal_flash.sh
内部フラッシュをバックアップします。これを行うために、SPIフラッシュの内容が変更されます。手順5で復元されるまで、デバイスは動作を停止します。
4_unlock_device.sh
これにより、アクティブな読み取り保護が無効になります。これにより、STM32の内部フラッシュが消去されます。
5_restore.sh
これにより、元のファームウェアが復元されます。
解凍したgame-and-watch-backupフォルダ内で右クリックから端末を開く
順番に打ち込む
export OPENOCD="/opt/openocd-git/bin/openocd"
マリオなら
./1_sanity_check.sh stlink mario
ゼルダなら
./1_sanity_check.sh stlink zelda
マリオなら
./2_backup_flash.sh stlink mario
ゼルダなら
./2_backup_flash.sh stlink zelda
画像のように表示されたら成功
マリオなら./3_backup_internal_flash.sh stlink mario
ゼルダなら
./3_backup_internal_flash.sh stlink zelda
マリオなら./4_unlock_device.sh stlink mario
ゼルダなら
./4_unlock_device.sh stlink zelda
マリオなら./5_restore.sh stlink mario
ゼルダなら
./5_restore.sh stlink zelda
本体の電源を入れて普通に起動したら成功
エミュレーター&ゲームの追加
再びubuntuのホームで端末を開き、順番に打ち込んでいく
sudo apt-get install gcc-arm-none-eabi
sudo apt remove gcc-arm-none-eabi
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
sudo tar xjf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /usr/share/
sudo ln -s /usr/share/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc
sudo apt-get install git
git clone --recursive https://github.com/ghidraninja/game-and-watch-flashloader
cd game-and-watch-flashloader
sudo apt-get install make
make
cd ..
git clone --recurse-submodules https://github.com/kbeckmann/game-and-watch-retro-go.git
game-and-watch-retro-goフォルダの中にある
romsフォルダの中に起動できるハードのフォルダが入っているので、その中にゲームのバックアップデータを入れる
ゲーム吸出し方法
gbはゲームボーイ&ゲームボーイカラー
ggはゲームギア
nesはファミリーコンピューター
pceはpcエンジン
smsはsms
端末で
cd game-and-watch-retro-go
export OPENOCD="/opt/openocd-git/bin/openocd"
make flash
で書き込み開始
書き込みが終わったら本体を起動
ゲームを選択Resume gameで続きからNew gameでリセットされた状態から
Add favoriteでお気に入りに登録
Delete saveでセーブデータを削除
Gameボタンを押すと表示される
Debug menuは開発者向けのデバッグメニュー
Brightnessは明るさ
Save & Continueはセーブして続ける
Save & Quitはセーブしてゲームを終了
Reloadはゲームのリセット
Options
Brightnessは明るさ
Volumeは音量
Scalingは画面表示の大きさを変更
Filteringはフィルタ
Speedは動作速度を速めることが可能
Paretteは表示される色の変更
セーブデータのバックアップ&リストア
バックアップ
game-and-watch-backupフォルダ内で右クリックから端末を開き、
./dump_saves.sh build/gw_retro_go.elf save_states
と打ち込むと
save_states
フォルダに保存される
各保存状態は
save_states /エミュレーターの種類/ゲームの名前.saveにある
この後、ゲームを変更し、フラッシュしても安全
buildフォルダの中にあるgw_retro_go.elfファイルは消さないように
リストア
game-and-watch-backupフォルダ内で右クリックから端末を開き、
./program_saves.sh build/gw_retro_go.elf save_states
を実行
save_statesフォルダの中身が書き込まれる
buildフォルダの中にあるgw_retro_go.elfファイルは消さないように
program_saves.shは、バックアップしたすべてのセーブデータを書き込む
たとえば、ゲーム A、B、Cのセーブをバックアップする
後で、新しいゲーム Dを追加し、Aを削除してから、ビルドしてフラッシュ
実行すると、BとCの保存状態が書き込まれ、他には何も書き込まれない
コメント
コメントを投稿