Game&Watch三十五周年纪念版刷机完全教程(9.6更新环境配置视频) 晒机防潮 心得研究

五级用户 hualazimo7 10月前 22812

       目前gw35周年的两款机型马里奥和塞尔达都可以通过本文所述方式刷入第三方系统,只是程序中涉及机型指令的不同(mario&zelda),本篇教程中所述内容基本来自中文网仅有的三篇教程,和我自己在刷机过程中的一点心得。肯定不是完美的,如果有什么错误还请指出。  



录了个换芯片视频,简单看看吧。

【给老男人们的塞尔达gamewatch刷个机,先换个64mb芯片】 https://www.bilibili.com/video/BV1Z8411q765/?share_source=copy_web&vd_source=e48efec23ec5e97d832816d1e3478a00


【讲一讲如何配置Game&Watch刷机所需要的环境-哔哩哔哩】 https://b23.tv/WngYvAP

   

sudo apt upgrade -y
sudo apt install binutils-arm-none-eabi python3 libftdi1 -y
sudo apt install python3-pip python3-pil git cmake -y

     

cd ~
git clone https://github.com/kbeckmann/ubuntu-openocd-git-builder
cd ~/ubuntu-openocd-git-builder/
git checkout 13f52d2
git submodule update --init --recursive
./build.sh
sudo dpkg -i openocd-git_*_*.deb
sudo apt -y -f install
export OPENOCD="/opt/openocd-git/bin/openocd"

 


      1.3.2 将ToolChain工具加入到PATH中

export PATH=$PATH:/home/regan/gnw/gcc-arm/bin/
#regan需要改为你设置的ubuntu用户名

     

      图片5.jpg

cd ~/gnw
git clone https://github.com/ghidraninja/game-and-watch-backup.git
cd ~/gnw/game-and-watch-backup

      下完后你的gnw文件夹中将有game-and-watch-backup这个文件夹。

# 设定 OPENOCD 执行路径
export OPENOCD="/opt/openocd-git/bin/openocd"
# 1_检查 OpenOCD,若 OpenOCD 设定正常,会回应 Running sanity checks...Looks good!
./1_sanity_check.sh stlink mario(zelda) 选填你的机型
# 2_备份第1阶段
./2_backup_flash.sh stlink mario(zelda)


# 3_备份第2阶段
./3_backup_internal_flash.sh stlink mario(zelda)


# 4_J锁装置
./4_unlock_device.sh stlink mario(zelda)


# 5_还原成原始内容
./5_restore.sh stlink mario(zelda)



      3.编译安装自制系统(retro-go )

      3.1下载 sylverb 版 retro-go 代码,并设置编译环境

cd ~/gnw
git clone https://github.com/sylverb/game-and-watch-retro-go.git
cd ~/gnw/game-and-watch-retro-go

     

cd ~/gnw/game-and-watch-retro-go
git checkout e54b02b
git submodule update --init --recursive

      子文件转移好以后执行

make clean
chmod a+x scripts/*.sh
python3 -m pip install -r requirements.txt

      下载一些编译工具

cd ~/gnw/game-and-watch-retro-go
git clone https://github.com/STMicroelectronics/STM32CubeH7.git
mv STM32CubeH7/Drivers

   

      3.3执行编译

       3.3.1 编辑json文件

cd ~/gnw/game-and-watch-retro-go
export PATH=$PATH:/home/regan/gnw/gcc-arm/bin/
make romdef ROMINFOCODE=UTF-8

   

      正式步骤

#先 echo $PATH 确认 ToolChain 有没有在路径中,如果没有的话先执行:
export PATH=$PATH:/home/regan/gnw/gcc-arm/bin/
# 接着执行以下指令
export OPENOCD="/opt/openocd-git/bin/openocd"
# 连接方式:stlink - ST-LINK
export ADAPTER=stlink
# Game&Watch 机型 : mario - 马里奥款, zelda - 塞尔达款
export gnw_tg=zelda
cd ~/gnw/game-and-watch-retro-go
# 清除前次的编译结果
make clean
# 下面这行中,拿掉 flash 表示只编译系统,不进入刷写程序。
make GCC_PATH=/home/regan/gnw/gcc-arm/bin/ COVERFLOW=1 CHEAT_CODES=1 COMPRESS=lzma CODEPAGE=936 EXTFLASH_SIZE_MB=4 OVERCLOCKING_LEVEL=2 GNW_TARGET=zelda -j8 flash

   

sudo apt upgrade -y
sudo apt install git python3-pip cmake -y

cd ~/gnw
git clone https://github.com/BrianPugh/game-and-watch-patch
cd ~/gnw/game-and-watch-patch
pip3 install -r requirements.txt

cd ~/gnw/game-and-watch-patch
make download_sdk

   

      5.2编译原厂系统

export ADAPTER=stlink

# 设定 OPENOCD 路
export OPENOCD="/opt/openocd-git/bin/openocd"

# 先 echo $PATH 确认 gcc-arm 是否在 $PATH 路径中。若没有
export PATH=$PATH:/home/regan/gnw/gcc-arm/bin/

# 提示: 扩容 >= 64MB 时,make 参数一定要加上 LARGE_FLASH=1 ,否则会出现 Flash sector_erase failed on sector 0 的错误

cd ~/gnw/game-and-watch-patch
make clean
make PATCH_PARAMS="--device=zelda" LARGE_FLASH=1 flash_patched


      5.3编译自制系统

cd ~/gnw/game-and-watch-retro-go
make clean

# 编译第二区块的指令,为步骤3.3.2 的 make 参数中, EXTFLASH_SIZE_MB 值要扣减去原厂系统的容量,马里奥1MB,塞尔达4MB, 再加上两个参数 EXTFLASH_OFFSET=[偏移量] INTFLASH_BANK=2 。其他的参数都和步骤 3.3.2 相同
# 例如扩容至 16MB 的 zelda 款来说,参数为 EXTFLASH_SIZE_MB=12 EXTFLASH_OFFSET=4194304 INTFLASH_BANK=2,完整 make 指令如下(参考3.3.2有些参数可以不加):

make GCC_PATH=/home/regan/gnw/gcc-arm/bin/ COVERFLOW=1 CHEAT_CODES=1 COMPRESS=lzma CODEPAGE=936 EXTFLASH_SIZE_MB=12 GNW_TARGET=zelda EXTFLASH_OFFSET=4194304 INTFLASH_BANK=2 OVERCLOCKING_LEVEL=2 -j8 flash



# 套件更新
sudo apt upgrade -y
# 安装 git (如已安装可省略)
sudo apt install git python3-pip -y
# 下载与安装 LCD-Game-Shrinker 工具
cd ~
git clone https://github.com/bzhxx/LCD-Game-Shrinker
cd ~/LCD-Game-Shrinker
python3 -m pip install -r requirements.txt

      接着安装 Inkscape ,它是知名的编辑矢量素材的软件。

sudo apt install inkscape -y

    

cd ~/LCD-Game-Shrinker
python3 shrink_it.py


    


       


-----------------------------------------------------------我是分割线

参考资料:

https://zhuanlan.zhihu.com/p/478352882

https://benjenq.pixnet.net/blog/post/48408020

https://apple524.github.io/2022/04/03/g-w-hack/


上几张效果图




IMG_20230903_230114.jpg

IMG_20230903_230142.jpg

IMG_20230903_230202.jpg

IMG_20230903_230212.jpg

IMG_20230903_230225.jpg

IMG_20230903_230232.jpg

IMG_20230903_230239.jpg(()


上一篇:合金装备4的存档导入方法
下一篇:WIIU移动硬盘内置折腾篇
最新回复 (232)
  • 四级用户 xyq220122 10月前
    0 2
    沙发
  • 五级用户 Beepnow 10月前
    0 3
    手里有一个,一直想扩容来着,研究看看
  • 四级用户 hakban 10月前
    0 4
    太流弊了,这样也能折腾~
  • 六级用户 大内高高手 10月前
    0 5
    胖虎机器芯片能识别了?啥问题?
  • 五级用户 不能登录 10月前
    1 6
    虽然我不懂,但是大受震撼
  • 四级用户 hoboyo 10月前
    0 7
    非常感谢细致的教程,有机会也折腾一下GameWatch
  • 四级用户 c83186595 10月前
    0 8
    蓝色和紫色还有区别啊,怪不得我蓝的就是搞不定
  • 五级用户 hualazimo7 10月前
    0 9
    大内高高手 胖虎机器芯片能识别了?啥问题?

    丢人,芯片焊反烧了??换了个新的活了

  • 六级用户 大内高高手 10月前
    0 10
    hualazimo7 大内高高手 胖虎机器芯片能识别了?啥问题? 丢人,芯片焊反烧了??换了个新的活了
    还好只是flash芯片
  • 六级用户 大内高高手 10月前
    1 11
    c83186595 蓝色和紫色还有区别啊,怪不得我蓝的就是搞不定

    应该不是颜色的事,看图片是品牌的区别吧,两个品牌的外壳都有多种颜色,可能两种板子用到的驱动之类的不同吧。不过上次我买的哪个还真没注意,印象里应该是上面ST标的那个吧,买的时候因为这种更便宜?。。今天才知道有区别。

  • 五级用户 hualazimo7 10月前
    0 12
    大内高高手 还好只是flash芯片
    嗯!再不深夜搞了,辣么大个点能看歪
  • 五级用户 hualazimo7 10月前
    0 13
    c83186595 蓝色和紫色还有区别啊,怪不得我蓝的就是搞不定
    都是搞stm32的话,上stm32官网升级下固件试试
  • 五级用户 a92126 10月前
    0 14
    点赞,以后想折腾了再动手试试,焊接太麻烦了
  • 受限用户 无毒有呕 10月前
    0 15
  • 五级用户 hualazimo7 10月前
    0 16
    无毒有呕 好东西,虽然我都是花钱找人弄的
    通一次知道原理了,后面就容易了
  • 五级用户 jilaqi444 10月前
    0 17
    不明觉厉,这个普通人做不来,要是简单点的话,我也想尝试下
  • 五级用户 hualazimo7 10月前
    0 18
    jilaqi444 不明觉厉,这个普通人做不来,要是简单点的话,我也想尝试下
    不难,耗时间就是
  • 四级用户 云大花 10月前
    0 19
    真是保姆级教程,感谢
  • 五级用户 xh2408 10月前
    1 20
    我马里奥款买了3台,塞尔达买了2台,就等找人pj了
    • 老男人游戏网配套论坛
      234
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。