Blog

  • 电波万事屋8周年随笔

    前两年的今天好像什么都没写,那今年就写点什么吧。

    终于,这个网站在不知不觉中已经运转了8年,还是有点超出我的预期的。

    能让万事屋没有突然消失的一大原因,其实是按年付费的VPS。同期开通的其他几个便宜VPS,凡是月付的,全部早已不复存在。因为每个月都要记着续费,总会有忘记的可能,而年付一般都能记住在哪个月得续费。

    想到这里,或许得夸一波万事屋用的VPS运营商,同样也营业了8年,没有跑路。

    刚开始建站的时候用的是阿里云,建站一个月后搬迁到现在的这个VPS上,直到现在。可以算是非常稳定。

    记得建站前几年的时候,我还是会经常打理打理网站,优化点这里那里之类的,最近是完全懒得动了,偶尔水一篇文章,给网站做个备份,让自己不要完全忘记还有个网站在跑,就已经是和万事屋相关的全部活动了。

    这8年来,收藏夹里有很多比较有年头的个人网站,都是文章更新速度越来越慢,直到长期停更,然后服务器无法访问,彻底消失。

    或许未来的那一天,万事屋也会关站吧,期待那时我能提前发个通知,证明站长还是知道这个网站的存在的,是因为不想维护了而关门大吉的。

    乐观点想,至少今年我记得给VPS续费,所以万事屋肯定能够迎来9周年的那一天。

    然后,如果明年依旧能够记得续费,万事屋两年后就可以算是十年老站啦。

    期待那一天的到来,并且好奇未来的我会以什么样的心情来写10周年随笔。

  • Switch 2,防御性购买

    其实本来没打算买的,因为种种原因,还是买了。姑且算是一种“防御性购买”吧。

    按照原本的规划,我会在满足以下任一条件的时候再买:

    • 出了我想玩的独占游戏
    • 出了好看的限定机

    然而在2026年6月的现在,这2个条件对于我来说都没满足。

    看了直面会,毫无波澜,没什么特别想玩的。

    限定手柄倒是预告了一款,可惜限定机依旧没消息。

    但想到上个月(2026年5月)的时候,任天堂宣布在售游戏机全部涨价,还是趁现在各大电商有活动的时候买一台吧。

    然而,买的是日版。折扣后价格的确便宜,至少是低于官方售价的。

    至于多语言版,会留到想要的限定机推出之后再买。

    既然买了,那么Splatoon的新作就首发入手吧,顺便在Switch 2上玩几局Splatoon 3,看看游戏画面有多大的提升。

    现在的闪存市场依旧疯狂,各种电子产品在短期内价格基本上只会居高不下。如果等等会后悔,那就抓紧时间下手;如果不算是刚需,那就接着慢慢等。

  • EZODE-B烧录卡非专业试玩

    EZ小组在本周突然官宣推出新版本的GBA烧录卡,叫EZ-Flash Omega Definitive Edition B,简称EZODE-B。

    根据官网的介绍,EZODE-B在硬件上和旧版本的EZODE相比有所升级:NOR可用空间增加到了960Mb(120MB,和EZ-Flash Air相同),PSRAM空间增加到了512Mb(64MB)。在内核功能上,EZODE-B新增了NOR游戏任意擦除的功能,不用从最后烧录进NOR的游戏开始删除了。

    而在价格上,竟然比旧版的EZODE便宜。

    加量还降价?但这让我联想到了叠瓦机械硬盘,好不好用不是纸面参数说了算的。

    总之,买一张玩玩看就知道了。

    新版本是周三上架的,因此在周末之前就拿到了卡。事不宜迟,开箱开玩。

    因为是非专业测试,所以新旧版本耗电量对比是没工具测的。而且偷懒起见,这篇文章依旧不会放图。

    1.准备工作

    1.1.先吐个槽

    新卡到手,第一件事当然是拆开外壳看看PCB,并和旧版EZODE比比看差别在哪。

    最显眼的差别,当然是PCB的阻焊颜色,变成蓝色了。所以EZODE-B的“B”就是“Blue”的“B”吗?

    换个颜色的确能增加辨识度,可是蓝板子配黑壳子,不是很好看。

    粗略一看布局,不能说和EZ-Flash Air一模一样,但确实能说实在太像了。把它命名为“EZADE(EZ-Flash Air Definitive Edition)”反而更合适一点(笑)。

    EZODE-B正面的元件和旧版EZODE没有太大的差别,只是布局有所改变。主要的差异点在背面。

    旧版EZODE背面有3块大芯片,从左到右分别是Spansion S71PL064JA0BAW07 内核MCP芯片、Xilinx XC6SLX16 主控FPGA芯片和Spansion S98WS512PE0FW020 NOR存储MCP芯片。

    EZODE-B则是精简掉了左边的内核MCP芯片,右边的NOR存储MCP芯片换成了和Air一样的Spansion S98WS01GPF0FW003。

    因为内核MCP芯片被精简掉了,所以EZODE-B的内核文件是存放在S98WS01G里面的,会占用64Mb空间。这就可以解释NOR可用空间是960Mb而不是1024Mb了。

    1.2.准备TF卡

    因为我有一张旧版EZODE,所以只要把那上面的TF卡拔过去就行了。

    TF卡的准备工作可以参考官网的PDF说明书:https://www.ezflash.cn/omegade-cn.pdf

    简单来说,就是先确认TF卡的容量。如果容量不超过32GB,那么将TF卡格式化为FAT32文件系统;如果容量超过32GB,则是格式化为exFAT文件系统。

    格式化完成后,在TF卡根目录分别新建2个文件夹,命名为CHEATIMGS,分别存放金手指文件和游戏缩略图文件。在官网下载对应的文件并解压到对应文件夹。

    金手指文件下载地址:https://www.ezflash.cn/zip/omegacheatlibrary.zip

    游戏缩略图文件下载地址:https://www.ezflash.cn/zip/IMGS.zip

    最后,把想玩的游戏复制到TF卡里,把TF卡塞进EZODE-B烧录卡里,把EZODE-B插入GBA或者NDS或者NDSL里,开始游戏。

    2.一些测试

    2.1.超容ROM测试(有待验证)

    既然EZODE-B的PSRAM容量升级到了512Mb(64MB),那么超过256Mb(32MB)的ROM理论上就可以直接启动,加载到PSRAM里运行了。

    首先测试游戏ROM。试了几个超过256Mb口袋妖怪改版,确实都能在“启动带辅助”(但没开金手指)的模式下通过PSRAM正常加载(能不能正常游玩里面所有的内容还没有测试过)。测试列表如下:

    暗之冰花(48MB,火红改版):正常运行

    暗黑古坛传说(56MB,绿宝石改版):正常运行

    其实我不怎么在烧录卡上玩改版游戏,所以也只是随便找了2个进行测试。就结果来看没什么大问题。

    20260703更新:其实我也只是测了能正常启动,没有完整地玩完上述2个游戏。根据卧看微尘大佬的指正,当前(2026年7月)没有真正意义上的超容ROM,超容的原因是改版过程中导入数据时填错了地址。上面测试的2个ROM的实际有效数据没有超过32MB,超出的部分大部分是00或者ff之类的空数据,末尾会有一些填错地址的数据。

    这么看,如果真正玩完一遍,大概率是会出问题的吧。

    是我测试草率了,测的时候也没和其他人交流(其实大佬一个月前就指出问题了,但我没加群,还是某位加了群的友人昨晚提醒我的)。后面写文章之前得认真测完,避免误导。

    20260605更新:看海外论坛GBAtemp大佬们的帖子,也不是所有超容的ROM都能玩,必须要ROM也支持Bank切换才行。这么看来,如果是基于旧版本汉化ROM的改版,可能有点呛,得实际试试才知道。

    然后再测测电影ROM。用Ausar博士的电影卡工具(https://gbam3.ausar.xyz/)做了一个没超过64MB的ROM,在“直接启动”的模式下完整看完一遍,可以正常播放。

    2.2.NOR写入测试

    依次往NOR里面写入了1个128Mb(16MB)的ROM、1个64Mb(8MB)的ROM、1个128Mb(16MB)的ROM。

    把第2个写入的64Mb(8MB)ROM删除,按Start键查看空间使用状态,可以看到中间有64格从绿色变成了灰色。

    再写入1个128Mb(16MB)的ROM,按Start键查看空间使用状态。因为写入的ROM容量(128Mb,16MB)大于中间空闲的空间(64Mb,8MB),所以空闲的空间依旧空着,新写入的数据块是从最后写入的ROM之后开始写的。

    这么看,EZODE-B的NOR擦写管理依旧没能达到SuperChis Prime那样完全随意擦写的程度,而且不能做到磨损平衡,还是有一定提升空间的。

    20260605更新:今天打开GBA,发现之前烧录到NOR的游戏全部消失了,不知道是不是固件bug还是怎么回事。总之再重新烧录一遍观察观察。

    2.3.游戏兼容性测试

    游戏兼容性其实也没有测试的必要,因为和旧版EZODE基本没区别。

    但值得吐槽的是,旧版EZODE启动白屏的GTA Advance,在EZODE-B里面在“直接启动”的模式下可以正常运行了。不知道是兼容性确实有所优化,还是我的旧版EZODE卡有问题。

    2.4.振动功能测试

    20260606更新:用了一星期,发现EZODE-B的振动功能时不时会失效。一旦失效,就得关机重新插拔烧录卡才能恢复正常,只重启机器没有任何效果。

    不知道是不是它的固件问题。对于常玩振动游戏的玩家来说,这个毛病挺闹心的。

    3.个人吐槽

    一番测试下来,功能上暂时没有测出什么特别大的差别。看来加量降价的说法还是基本属实的。

    如果之前没买过旧版EZODE,且不差钱,买一张EZODE-B玩玩也是个不错的选择。

    目前(2026年5月)它在功能上依旧是当之无愧的旗舰,就是价格依旧不是非常亲民。

    20260605更新:防止误会,还是得说明一下,我没有偏向任何一家的产品,因此会把文章尽可能写得中立一点。如有错误之处,还请留言指正。

    文章的最后,吐槽点题外话。

    EZODE-B将NOR升级到960Mb,新增了NOR自由擦写ROM的功能,颇有一种在对标SuperChis Prime的感觉。不知道EZ小组是不是因为感受到了来自Chis小组的挑战,才执行加量降价的策略。

    答案或许是否定的,因为EZ小组官方的说法是旧版EZODE部分物料持续缺货,就推出了EZODE-B。

    至于可信度如何,那就不好说了。

    尝试搜了下那几个MCP芯片的数据表,完全搜不到官方资料。毕竟MCP芯片属于定制产品,后缀不同,封装的内容也会有差别。网上公开的资料很有限。

    再加上那几颗芯片丝印上的生产日期都是零几年(作为对比,EZODE-B用的FM28V100-TG FRAM存档芯片是2025年生产的),缺货也是意料之中的结果。

  • ChisFlash 1.0V虚拟铁电RTS烧录卡试玩记录

    ChisFlash 1.0V烧录卡是Chis小组于去年(2025年)开源的一款GBA烧录卡。它最大的亮点是硬件通过一颗4Mb SRAM芯片实现对RTS即时存档文件的快速缓存,可以在很短的时间内完成即时存档或即时读档操作。

    由于它在刚发布的时候暂时还未实装即时存档功能,在很长的一段时间里,ChisFlash 1.0V用起来和普通的虚拟铁电卡完全一致。

    直到上个月(2026年4月)Ausar博士为ChisFlash 1.0V开发了专用的RTS即时存档补丁,这款烧录卡终于满血登场,可以体验到它的完整功能了。

    我前段时间刚好DIY了一张ChisFlash 1.0V,因此可以在第一时间进行测试。至于这篇文章嘛,本来想在五一当天写的,但还是咕到今天才写(笑)。

    1.开源信息

    1.1.烧录卡PCB

    ChisFlash 1.0V烧录卡的PCB可以在立创开源硬件平台获取:https://oshwhub.com/morinaka/chisflash-ji-shi-cun-dang-xu-ni-tie-dian-zhuan-ka

    编译好的固件也可以在相同页面获取。

    1.2.RTS即时存档补丁

    由A博士开发的RTS即时存档补丁最新版本为防止被一键抄袭,暂不开源。可以在GitHub上获取旧版本补丁的源代码:https://github.com/ArcheyChen/GBA-RTS-PATCH

    ChisFlash 1.0V专用的Web版补丁工具源代码同样可以在GitHub获取:https://github.com/ArcheyChen/GBA-RTS-PATCH-WEB

    2.游戏烧录

    在焊接好或者买到一张ChisFlash 1.0V烧录卡后,需要先给游戏ROM打上专用RTS补丁再进行烧录,才能在游戏内进行即时存档。

    存档类型不是SRAM的游戏ROM还需要在打专用RTS补丁前打上SRAM补丁。

    2.1.确认存档类型

    GBA游戏的存档类型可以通过GBA Tool Advance工具(简称GBATA)进行查看,这款工具也可以给游戏ROM打SRAM补丁。

    GBATA的英文版可以在这个网站下载:https://dlhb.gamebrew.org/gbahomebrews/gbata7a_en.zip

    它的中文版由于没有找到直链下载地址,这篇文章里就不列出了,建议自行搜索。

    下载并启动GBATA工具,将游戏ROM拖到它的窗口里,在“Save Type”/“存档类型”一栏即可看到游戏的存档类型。

    如果游戏的存档类型是FLASH或者EEPROM,且没有“Patched”字样,就得给它打SRAM补丁了。

    2.2.注入SRAM补丁

    点击“SRAM Patcher”/“SRAM 补丁”标签页,按“Select”/“选择”按钮选择打补丁后的ROM文件保存位置,点击“Patch”/“打补丁”按钮即可给ROM注入SRAM补丁。

    2.3.注入专用RTS补丁

    浏览器访问网页版ChisFlash 1.0V RTS补丁工具:https://gbarts.ausar.xyz/

    首先点击“Browse”按钮选择GBA ROM文件,或者也可以直接把游戏ROM拖拽进窗口。

    如果有EZ-Flash的金手指文件,可以选择整个金手指目录(默认名是CHEAT)。工具会自动匹配游戏适用的金手指,最多可选64个条目,可以自行选择想要注入进ROM的部分。

    如果没有,可以在EZ-Flash官网下载一份:https://www.ezflash.cn/zip/omegacheatlibrary.zip

    最后点击Patch ROM按钮,获得打上RTS补丁并且注入金手指文件的游戏ROM,这个ROM就可以烧录进ChisFlash 1.0V了。

    2.4.烧录游戏ROM

    将打好补丁的游戏ROM烧录到ChisFlash 1.0V烧录卡中,开玩。

    3.一些测试

    游戏内通过按L+R+StartL+R+Select组合键均可启动RTS补丁注入的游戏内菜单,在菜单里可进行即时存档、即时读档、开关金手指、游戏软重启操作。

    3.1.游戏兼容性

    根据我的粗略测试,基本所有汉化版游戏ROM在打上RTS补丁后均可正常游玩,不过也有少量ROM不能打补丁或者打完补丁不能正常运行。主要分为3种类型。

    • 32MB空间彻底塞满的游戏:公主联盟、死神-血染尸魂界等
    • 非官方的自制游戏:好狗狗星系等
    • 兼容性不是很好的游戏:GTA Advance等

    只要能打补丁并且正常进入游戏,RTS功能就可以正常使用。

    我完整地速通了一遍白夜协奏曲,中间也用到了好多次即时存档功能,打Boss Rush时开金手指锁了下血,游戏过程非常流畅。

    3.2.其他注意点

    即时存档功能虽然好用,但也不能非常频繁地使用。在连续读取同一份即时存档文件超过10次时,有小概率会导致游戏花屏(实际画面是黑屏加上白色扫描线),只能关机重启。因此建议该正常存档时还得多存档。

    4.个人吐槽

    ChisFlash 1.0V目前(2026年5月)可以说是辅助功能最强大的GBA单卡烧录卡了,自己动手DIY一张的成本也很友好,非常值得做一张或者买一张玩玩。

    感谢ChisFlash创始人Bread和Mori,感谢GBA RTS补丁开发者Ausar,感谢虚拟铁电技术开创者CQZ。正因为有各位大佬的开发与开源,玩家们可以用上便宜好用的GBA烧录卡。同时也感谢EZ小组公开了非常完整的GBA游戏金手指库。

    最近学着DIY了各种能够复刻的ChisFlash烧录卡,在想着要不要写几篇文字版的过程记录。或许不久后在想写的时候就会写出来吧。

  • 从DeepSeek到OpenClaw

    这个名为OpenClaw的AI代理网关,在春节过后就像去年(2025年)的DeepSeek模型一样突然成为了周围都在聊的热门话题。

    为什么呢?或许是因为它们都能在自己的电脑上本地部署,能给用户一种AI技术的参与感吧。

    而且各大媒体文章将它描述得特别厉害,似乎部署了OpenClaw,它就能听指令完成电脑上的各种操作。

    上周末实在无聊,就打开之前部署DeepSeek-R1的那台电脑,装一个OpenClaw体验一下。

    因为当时用的是Windows系统,所以先创建一个WSL实例,把OpenClaw装在里面。安装很简单,就是看着脚本读条罢了。主要是安装完成之后的配置。

    去年在电脑上装的Ollama,刚好能用做OpenClaw的LLM提供商,这也能够免得去申请LLM模型的API了。

    Web_Search模块对接的搜索引擎,选的是DuckDuckGo,因为直接就能用,不需要申请什么东西。

    初始化配置好后,简单试用了一下,可玩的内容还确实挺多的。如果想要好好配置一番,会有那么点复杂,得多看看文档。因此决定后面有空了再慢慢研究。

    反正截至目前(2026年3月),OpenClaw还只是β测试版,等它迭代到正式版后再用也不迟。

  • DSpico烧录卡固件编译折腾记录

    我入手的那张DSpico烧录卡里的固件不支持在未破解的NDSi和3DS上运行,就打算自己编译一份支持这个功能的固件试试。

    前几天根据官方文档尝试编译,步骤复杂了点,但还是能比较快地编译出来。

    趁还没有忘记当时是怎么操作的,还是按照惯例写一篇文章进行记录。

    1.环境准备

    1.1.准备网络环境

    编译DSpico固件时,免不了会访问GitHub等海外站点。在内地操作的场合,要么开一台海外VPS进行操作,要么就想办法让编译环境能完整访问国际互联网。

    1.2.部署编译环境

    DSpico固件需要在Linux环境下编译。需要准备一台Linux虚拟机或者在WSL环境下操作。

    我的Arch小平板性能不是很好,所以还是根据老习惯部署一台Debian 13虚拟机进行操作。

    1.3.安装依赖包

    首先添加.NET 9.0的软件源。下面命令通过wget下载的包适用于Debian 13。如果用的是不一样的发行版或版本,可以参考微软写的文档(https://learn.microsoft.com/zh-cn/dotnet/core/install/linux)下载对应的包。

    wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb

    添加完毕后,按照惯例更新一下。

    sudo apt update && sudo apt upgrade -y

    然后安装如下依赖。

    sudo apt install git cmake gcc-arm-none-eabi build-essential dotnet-sdk-9.0 -y

    1.4.安装BlocksDS SDK

    编译DSpico固件时需要用到BlockDS SDK。安装这个SDK前,需要先安装Wonderful Toolchain工具链。

    这个工具链目前还只支持安装在/opt/wonderful目录,所以需要先创建这个目录,并把目录所有者设置为当前用户。

    sudo mkdir /opt/wonderful
    sudo chown -R "$USER" /opt/wonderful

    下载Wonderful Toolchain工具链的二进制包,解压到/opt/wonderful目录下,解压完成后删除压缩包。

    wget https://wonderful.asie.pl/bootstrap/wf-bootstrap-x86_64.tar.gz
    tar -xzf wf-bootstrap-x86_64.tar.gz -C /opt/wonderful/ && rm wf-bootstrap-x86_64.tar.gz

    用Wonderful Toolchain工具链的包管理器更新一下wf-tools包。

    /opt/wonderful/bin/wf-pacman -Syu wf-tools

    更新完成后,可以在当前用户配置文件中注册一个wf-env命令,执行这个命令后,Wonderful Toolchain工具链将会自动将其组件临时添加到环境变量中。

    echo "alias wf-env='source /opt/wonderful/bin/wf-env'" >> ~/.profile

    用户配置文件修改完成后,最好先登出一下再重新登录,从而让修改后的用户配置文件生效。

    exit

    重新登录后,就可以安装BlocksDS SDK了。先用注册的wf-env命令添加环境变量,再在wf-pacman包管理器中启用blocksds仓库,然后进行安装。安装完成后重新添加一遍环境变量,把装好的BlocksDS SDK也添加进去。

    wf-env
    wf-config repo enable blocksds
    wf-pacman -Syu
    wf-pacman -S blocksds-toolchain blocksds-nflib blocksds-nitroengine
    wf-env

    2.编译步骤

    编译DSpico固件之前,要按照顺序依次编译DSpico引导加载程序LNH-team/dspico-bootloader、NDS ROM的加密工具Gericom/DSRomEncryptor、Wfruxxed漏洞补丁LNH-team/dspico-wrfuxxed,并用以上编译好的工具生成固件编译所以来的几个文件,最后再编译固件。

    总之就是挺复杂的。还好dspico-dldi可以直接从Release下载,可以减少点工作量。

    2.1.新建文件夹

    因为要陆续编译好几个仓库,所以最好在家目录下创建一个dspico目录,要编译的GitHub仓库全部克隆到这个目录下,显得稍微整齐一点。

    mkdir ~/dspico
    cd ~/dspico

    2.2.下载DSpico DLDI

    因为Release页面可以直接下载,所以就不手动编译了。

    wget https://github.com/LNH-team/dspico-dldi/releases/download/v1.0.1/DSpico.dldi

    2.3.编译DSpico Bootloader

    先克隆LNH-team/dspico-bootloader仓库,用于生成固件的BOOTLOADER.nds引导加载程序。

    更新一下包含的子模块,编译。

    git clone https://github.com/LNH-team/dspico-bootloader.git
    cd dspico-bootloader
    git submodule update --init
    make

    编译完成后,回到~/dspico目录,给生成的BOOTLOADER.nds文件打个补丁。

    打补丁的工具是BlocksDS SDK里的dlditool工具,理论上也能把它添加进环境变量,但我编译的时候图省事,直接用它的绝对路径了。

    cd ~/dspico
    /opt/wonderful/thirdparty/blocksds/core/tools/dlditool/dlditool DSpico.dldi dspico-bootloader/BOOTLOADER.nds

    2.4.编译DSRomEncryptor

    接下来需要编译DSRomEncryptor工具,给BOOTLOADER.nds按照NDS标准进行加密,让它变得更逼真一些。

    克隆Gericom/DSRomEncryptor仓库,编译走起。

    git clone https://github.com/Gericom/DSRomEncryptor.git
    cd DSRomEncryptor
    dotnet build

    编译完成后,还是回到~/dspico目录。

    cd ~/dspico

    DSRomEncryptor工具加密NDS ROM文件时,需要用到NDS和NDSi的BIOS文件。这些都能在互联网档案馆里找到。

    wget -O DSRomEncryptor/DSRomEncryptor/bin/Debug/net9.0/biosnds7.rom https://archive.org/download/dsi-nands.-7z/NDS_Bios.zip/NDS_Bios7.bin
    wget -O DSRomEncryptor/DSRomEncryptor/bin/Debug/net9.0/biosdsi7.rom https://archive.org/download/dsi-nands.-7z/DSi_Bios.zip/NDS_Bios7i.bin

    2个BIOS文件准备好后,用DSRomEncryptor工具生成加密后的default.nds文件。

    DSRomEncryptor/DSRomEncryptor/bin/Debug/net9.0/DSRomEncryptor dspico-bootloader/BOOTLOADER.nds default.nds

    2.5.编译DSpico Wrfuxxed

    DSpico通过利用NDSi无线网络测试卡带的漏洞,实现未破解NDSi或3DS环境下的正常加载。当前编译的仓库就是这个漏洞的利用工具。

    克隆LNH-team/dspico-wrfuxxed仓库,再一次编译。

    git clone https://github.com/LNH-team/dspico-wrfuxxed.git
    cd dspico-wrfuxxed
    make

    编译完成后依旧是回到~/dspico目录,给生成的uartBufv060.bin文件打个补丁。

    cd ~/dspico
    /opt/wonderful/thirdparty/blocksds/core/tools/dlditool/dlditool DSpico.dldi dspico-wrfuxxed/uartBufv060.bin

    2.6.编译DSpico Firmware

    终于可以开始编译固件了。先克隆LNH-team/dspico-firmware仓库。

    git clone https://github.com/LNH-team/dspico-firmware.git

    要实现未破解NDSi或3DS环境下的正常加载,就需要准备NDSi无线网络测试卡带的ROM文件,ROM文件的SHA-1哈希值还必须是2d65fb7a0c62a4f08954b98c95f42b804fccfd26

    依然是在什么都有的互联网档案馆上面找。

    wget -O dspico-firmware/roms/dsimode.nds https://archive.org/download/wrfu_0.60_fixed/wrfu.srl

    把前几步准备好的default.ndsuartBufv060.bin这2个文件分别复制到对应的目录中。

    cp default.nds dspico-firmware/roms
    cp dspico-wrfuxxed/uartBufv060.bin dspico-firmware/data

    进入LNH-team/dspico-firmware仓库目录,更新包含的子模块。

    cd dspico-firmware
    git submodule update --init
    cd pico-sdk
    git submodule update --init
    cd ..

    修改CMakeLists.txt文件,去掉DSPICO_ENABLE_WRFUXXED选项前的注释,编译出来的固件就能在未破解NDSi或3DS环境下正常加载了。

    sed -i 's/#DSPICO_ENABLE_WRFUXXED/DSPICO_ENABLE_WRFUXXED/g' CMakeLists.txt

    最后,开始编译。

    bash compile.sh

    编译完成后,可以在仓库目录下的build目录下找到DSpico.uf2固件文件。

    把DSpico烧录卡里插着的TF卡(如果有的话)移除,将TF卡槽旁边的MicroUSB调试接口连到电脑上,将DSpico.uf2固件文件复制到新出现的那个分区里,固件就会自动刷写。

    3.个人吐槽

    其实固件编译时还有其他几个选项。

    ENABLE_R4_MODE:让DSpico官方支持模拟Wood 1.62固件,但要求TF卡容量不超过4GB,不是很实用。

    ENABLE_PREVENT_DSI_AUTOBOOT:让DSpico在DSi环境下启动时,不自动跳过菜单直接进入DSpico内核。感觉实用性一般,除非是一定要通过NDSi菜单启动烧录卡。

    虽然编译过程确实复杂了些,但是只要成功编译一次,后面版本更新后再重新编译就会简单很多。

  • DSpico烧录卡初期版先行体验

    DSpico烧录卡是LNH小组在去年(2025年)11月底的时候推出的NDS烧录卡。这款烧录卡有着丰富的开发接口,应该可以做出不逊于DS Two烧录卡的各种功能,未来可期。

    最近终于有人开始出售成品的DSpico烧录卡,就入手了一张,测测它的早期版本体验怎么样。

    目前也能看到很多大佬分享的Type-C接口版DSpico,Mori大佬也改过一版PCB。虽然都想入手试试,但是都没有公开发售。那就先来测一下已经买到的官方版吧。

    1.准备工作

    在开始体验DSpico前,还是得按照惯例准备一张TF卡,格式化好后将内核文件与游戏ROM拷进去。

    DSpico的GitHub仓库中有详细的说明文档:https://github.com/LNH-team/dspico/blob/develop/GUIDE.md

    对于已经刷好固件的成品卡,可以跳过前8章的各种编译以及刷写固件操作,从第9章的格式化TF卡开始看。

    1.1.格式化TF卡

    文档建议按照这个教程进行格式化:https://dsi.cfw.guide/sd-card-setup.html

    概括地说就是不超过32GB的TF卡格式化成FAT32文件系统,超过32GB的TF卡格式化成exFAT文件系统。

    因为这次只是简单测测,没必要用容量太大的卡,就准备了1张32GB的TF卡并格式化。

    1.2.准备内核文件

    DSpico作为一款NDS烧录卡,同样需要将它的内核文件复制到TF卡的根目录,烧录卡才能正常使用。

    基础版的内核文件目录结构是这样的:

    .
    ├── _pico
    │ ├── themes
    │ │ ├── material
    │ │ │ └── theme.json
    │ │ └── raspberry
    │ │ ├── bannerListCell.bin
    │ │ ├── bannerListCellPltt.bin
    │ │ ├── bannerListCellSelected.bin
    │ │ ├── bannerListCellSelectedPltt.bin
    │ │ ├── bottombg.bin
    │ │ ├── gridcell.bin
    │ │ ├── gridcellPltt.bin
    │ │ ├── gridcellSelected.bin
    │ │ ├── gridcellSelectedPltt.bin
    │ │ ├── scrim.bin
    │ │ ├── scrimPltt.bin
    │ │ ├── theme.json
    │ │ └── topbg.bin
    │ ├── aplist.bin
    │ ├── savelist.bin
    │ ├── picoLoader7.bin
    │ └── picoLoader9.bin
    └── _picoboot.nds

    里面包含的文件分别属于pico_launcherpico_loader仓库,需要先在Release页面分别下载,再整合进TF卡。

    Pico_Launcher下载地址:https://github.com/LNH-team/pico-launcher/releases/latest

    Pico_Loader下载地址:https://github.com/LNH-team/pico-loader/releases/latest

    对于DSpico烧录卡,下载Pico_Loader时应选择Pico_Loader_DSPICO.zip这个文件。

    文件下载完成后,把解压后的Pico_Launcher复制到TF卡的根目录,并把LAUNCHER.nds重命名为_picoboot.nds。然后再把解压后的Pico_Loader的几个文件复制到TF卡的_pico文件夹里。

    1.3.准备额外文件(可选)

    如果想让烧录卡支持玩DSiWare游戏,需要在基础版内核文件的基础上,将NDSi的部分NAND文件复制到TF卡根目录,详见https://github.com/LNH-team/pico-loader#emunand

    NDSi的NAND文件可以在互联网档案馆里找到:https://archive.org/download/dsi-nands.-7z/DSi_Nands.zip

    压缩包里有各个版本的NDSi NAND二进制文件,选择一个喜欢的版本,用ninfs工具(https://github.com/ihaveamac/ninfs/releases/latest)将它挂载到电脑上一个空文件夹里面,然后把twl_main.img这个文件复制到电脑上另一个空文件夹解压。

    解压后就能看到所需要的shared1shared2sys这3个文件夹了。直接把它们都复制到TF卡根目录。

    其中shared2文件夹里有个名为0000的文件,似乎用不到,可以删掉。

    另外一个photo文件夹,可以直接在TF卡根目录新建。

    1.4.准备游戏ROM

    在TF卡根目录新建一个GAME文件夹,然后把各种游戏ROM复制进去。

    截至2026年1月,DSpico官方内核还不支持显示中文,所以游戏ROM得以英文或者拼音命名。

    2.一些测试

    虽然上文中介绍了DSpico内核文件的准备步骤,但是我测试时用的是清流之风大佬整合的内核文件。那一版内核文件中还整合了GBARunner 3、MoonShell 2以及Wood内核,相比之下可玩性更加丰富。

    另外,茶叶大佬开源了一版界面支持中文显示,并优化了很多内容的Pico-Launcher内核(开源地址:https://github.com/chaye7417/pico-launcher/tree/chinese),非常好用。在官方内核还没有实质性更新前,推荐用这个。

    测试中用到的各种游戏ROM都是汉化版的。DSiWare除外,因为没有汉化。

    2.1.设备兼容性

    DSpico的设备兼容性取决于所使用的固件类型。用默认选项编译出的固件无法在未破解NDSi、NDSiLL以及3DS全系列上运行,启动烧录卡时,下屏会出现报错提示。

    官方提供的解决方法是编译时启用DSPICO_ENABLE_WRFUXXED选项,通过NDSi无线网络测试卡带的漏洞,绕过烧录卡检测机制。

    刷上这种固件的DSpico烧录卡在NDSi环境下开机会直接启动到烧录卡内核界面。在3DS的系统菜单下,烧录卡的图标和名称都会变得和测试卡带一样。

    或许没默认版好看,但重在能用。

    DSpico的固件刷写挺简单的。只要取出TF卡,将TF卡槽旁边的MicroUSB调试接口连到电脑上,把后缀名是.uf2的固件文件复制到新出现的那个分区里,复制进去的固件就会自动刷写完成。

    而固件的编译准备起来就比较麻烦了,或许之后我会单独记录一下WRFUXXED版固件的编译过程。

    2.2.NDS游戏兼容性

    在官方内核中简单测了几款NDS游戏ROM,结果如下:

    • 苍月十字架:正常运行
    • 口袋妖怪 黑2:可在DSi增强模式运行
    • 勇者斗恶龙9:没感觉到卡顿
    • 逆转检察官2:无法运行,白屏

    根据DSpico的官方文档所说,它的固件支持TF卡的快速读写,再加上现在的TF卡随机读写性能比当年的TF卡强上很多,所以只要是能正常运行的游戏,玩起来应该都不会出现卡顿现象。

    不过官方内核下的反烧录补丁似乎还有待完善,NDS世代末期集成了反烧录机制的游戏,目前在官方内核中应该都玩不了(虽然切换到Wood内核也一样玩不了)。

    2.3.DSiWare游戏兼容性

    我复制到TF卡里的是美版NDSi的NAND文件。因为NDSi平台是锁区的,所以只能正常玩美版的DSiWare游戏。

    尝试运行了下神游版的任天狗狗,会提示ONLY FOR iQUE DS,看来想玩的话必须把NAND文件换成神游版的才行。

    随意测了几款美版的DSiWare游戏,除了动物森友会计算器白屏无法启动外,大多数都能正常玩。涉及到摄像头的场合,也能正常调用NDSi、3DS或者2DS的摄像头。

    2.4.GBA游戏兼容性

    GBARunner 3的兼容性其实还不错,但不少汉化游戏依旧不能正常运行。我测试的几款游戏兼容性情况如下。

    • 晓月圆舞曲:正常运行
    • 瓦力欧制造:正常运行,但是有间歇性爆音
    • 公主联盟:正常运行
    • 海贼王 目标赏金王:正常运行
    • 口袋妖怪 绿宝石:无法运行,白屏
    • GTA Advance:无法运行,黑屏

    能正常运行的游戏玩起来很流畅,动作没有拖慢。测试晓月圆舞曲时依旧按照惯例找幻影骑士跳了段探戈,毫无卡顿。

    3.个人吐槽

    DSpico烧录卡目前最大的亮点是可以玩DSiWare游戏,别的暂时没了。

    和DS Two相比,DSpico的厚度能够正常塞到卡槽里,耗电也更低一些。不过就上面的测试表现来看,它暂时还不能取代常驻NDS卡槽里的DS Two。

    论功能性,它暂时还不支持即时存档,甚至还不能通过快捷键从游戏返回到内核菜单。论兼容性,还有不少NDS游戏ROM不能正常启动。

    但它是一款软硬件开源的烧录卡,GitHub仓库的更新也比较活跃。目前的不足或许能在未来全部解决。

  • SuperChis Prime烧录卡简单把玩

    SuperChis Prime烧录卡是Chis小组最近推出的一款GBA烧录卡,它在硬件上延续SuperCard的架构,可以看作是SuperCard现代化版本,并且开源。

    元旦假期时发现不少制卡大佬开始预售,就下单了一张。我买的是中配版,将标准版的SRAM换成了FRAM。

    理论上SRAM存档芯片的标准版也够用。SRAM存档芯片是依靠纽扣电池供电来维持存档数据的,电池寿命保守估计应该能有10年左右。不过那颗纽扣电池是直接焊在卡带上的。哪天突然意外罢工,更换起来就难了。所以还是换不需要电池的FRAM存档芯片更为可靠。

    下单后等了几天,烧录卡到手。下班后拿了快递回家,晚饭吃好,开玩。

    1.准备工作

    在开始用SuperChis Prime烧录卡打电动前,先要做一点准备工作。可以跟着Mori大佬做的视频(https://www.bilibili.com/video/BV15GvXBZENx)进行操作。

    1.1.准备TF卡

    和SuperCard一样,SuperChis里面也需要塞一张TF卡,用于存放游戏文件、存档文件、模拟器文件、固件设置以及金手指。

    对于32GB及以下的TF卡,可以格式化为FAT32文件系统;32GB以上的TF卡,则是格式化为exFAT文件系统。

    由于目前(2026年1月9日)烧录卡内的SuperFW Chis 0.18版固件是beta测试版,大于32GB的TF卡兼容性暂时还没玩家测试过,所以暂时尽量不要使用大容量TF卡。

    SuperFW Chis 0.19正式版固件已于2026年1月17日发布,但还是建议用不大于32GB容量的TF卡,不容易出问题。而且GBA游戏ROM也不大,32GB的卡已经绰绰有余了。

    格式化完成后,可以在TF卡根目录建立一个名为.superfw的文件夹。

    进入.superfw文件夹,再创建2个分别名为cheatsemulators文件夹。

    其中cheats文件夹用于存放金手指文件,可以在SuperFW的GitHub仓库下载:https://github.com/davidgfnet/superfw-cheats/releases

    另一个emulator文件夹则是存放模拟器文件。根据Bread大佬的补充,SuperFW Chis版固件的内核中已经内置了各种模拟器文件,无需像SD/Lite版固件一样单独下载。

    当然如果想要自行下载模拟器文件,也是没问题的。SuperFW目前支持的模拟器文件和文件命名方式可以参考SuperFW官方文档:https://superfw.davidgf.net/docs/usermanual/emulators

    其中模拟GBC的Goomba Color可以换成Jagoomba Color,兼容性更好一些。Jagoomba Color可以在GitHub下载:https://github.com/EvilJagaGenius/jagoombacolor/releases/latest

    另外还可以前往GitHub下载最新版本的固件,放在TF卡根目录。下载的时候应该选择Chis版,文件名一般是superfw-chis.fw。最新版固件下载地址:https://github.com/davidgfnet/superfw/releases/latest

    至此,.superfw文件夹里的内容已经准备完成。接下来回到根目录,将GBA以及其他支持的游戏ROM文件复制进去。为了方便查找,建议新建几个文件夹分类放置。

    游戏ROM复制好,就可以将TF卡从系统中弹出,并塞进SuperChis的卡槽里了。

    1.2.升级SuperFW固件

    把烧录卡插到GBA卡槽或NDS的Slot-2卡槽,打开电源,进入SuperFW固件菜单后通过R键切换至最右边的图标,进入固件信息页面。

    确认当前的固件版本是否为最新版本,如果不是,就要根据提示同时按下十字键下+B+Start启用固件升级功能。

    然后按L键切换至软盘图标的文件列表页面,在根目录找到superfw-chis.fw固件文件,按A进入固件更新页面,然后同时按下L+R+十字键上开始更新固件。

    等到固件更新成功后,重启游戏机,让烧录卡以最新版固件的状态运行。

    1.3.修改固件配置

    还是因为SuperFW Chis 0.18版固件是个测试版,功能不是很稳定,所以需要把里面的一些配置修改一下,从而保障游戏稳定运行,存档读档不出问题。

    即使是更新到SuperFW Chis正式版固件,还是需要稍微改一改固件配置的,因为Direct-Save对于不少游戏来说真的没法正常存档……

    在SuperFW固件菜单中通过R键切换至扳手图标右边的那个有个“文”字的图标,进入菜单设置页面。这个页面可以修改菜单语言。语言修改完成后,记得“将设置保存到SD卡”。

    接着按一下L键切换至扳手图标的全局设置(Global Settings)页面,修改以下选项:

    • 游戏启动方式(Game boot):改为跳过BIOS(Skip BIOS boot)
    • 快速ROM读取(Fast ROM loading):改为已启用(Enabled)
    • EWRAM超频(EWRAM overclock):改为已禁用(Disabled)
    • Direct-Save:改为已禁用(Disabled)

    修改完成后,同样要“将设置保存到SD卡”。

    2.一些测试

    准备工作完成后,终于可以开始评测一下SuperChis Prime的实际体验了。

    2.1.NOR烧录

    首先试一下SuperCard不具备的NOR烧录功能。SuperChis Prime配备了128MB(1Gb)的NOR闪存空间,其中124MB(992Mb)可用于烧录游戏ROM(比隔壁的EZ-Flash Air还大),可以把游戏烧录进去玩。

    在菜单中选中想要烧录到NOR闪存的游戏,按Select键进入烧录菜单,即可进行烧录。删除NOR闪存内的游戏可以随便删,没有删除顺序一说。这个功能应该是截至目前(2026年1月)其他GBA烧录卡都没能实现的。

    烧录到NOR闪存的游戏不仅可以秒速启动,还能够显著改善从TF卡直接启动时的运行拖慢问题。常玩的动作游戏可以考虑烧录到NOR闪存里面玩。

    作为对比,晓月圆舞曲直接从TF卡运行时,打幻影骑士时游戏明显拖慢掉帧,烧录到NOR闪存后就比较流畅了。

    2.2.游戏内菜单

    受SDRAM容量限制,从TF卡运行32MB(256Mb)的ROM时,如果不给ROM打补丁,就不支持固件游戏内菜单。

    可以访问SuperFW的补丁在线生成网页(https://patchtool.superfw.davidgf.net/),生成一个和ROM同名的.patch补丁,并把补丁文件复制到TF卡根目录下的.superfw\patches文件夹,就可以正常使用游戏内菜单了。

    顺带一提,打了这个补丁,也可以在SuperCard烧录卡上正常开启游戏内菜单。

    2.3.游戏兼容性

    简单测了下我常玩的一些GBA游戏,基本都能运行。在SuperCard上不能运行的游戏,SuperChis也同样运行不了。应该是SuperCard架构的天生缺陷吧。

    根据我的实际体验,它的兼容性总体来说是比EZODE(EZ-Flash Omega Definitive Edition)好一点的。EZODE上启动后白屏(也有可能是我没设置好)的GTA Advance和公主联盟,SuperChis都可以正常运行。就是这2个游戏都是32MB的ROM,需要烧录进NOR闪存,才能支持固件游戏内菜单。

    3.个人吐槽

    总体来说,SuperChis Prime的实际表现比较符合我对它的预期。运行速度比SuperCard更快,NOR闪存提升了游戏的流畅度和兼容性。或许等SuperFW再迭代几个版本后,还能够释放出更大的潜力。

    要说美中不足的地方嘛,主要还是体现在游戏兼容性上,但这也是SuperCard架构缺陷导致的,解决难度应该不低。改架构的话,或许SuperFW固件也得跟着大改,这又是另一大难题了。

    至于它还不支持RTC时钟电路,倒也不是特别大的问题。GBA平台上用到时钟的游戏也没那么多,除了所有玩家都知道的口袋妖怪宝石系列外,其他的好像只有我们的太阳系列、千年家族还有洛克人EXE系列了吧(大概)。

    不过口袋妖怪玩家的基数摆在那里,RTC时钟电路在后续的硬件版本中大概率还是会实装的,耐心等大佬们继续开发吧。

  • 2025->2026

    反复确认电脑上显示的日期,今天确实是今年(2025年)的12月31日没错。这就到年底了啊。

    还记得去年的12月31日晚上,我(操作的角色)和友人S桑(的角色)站在暴风城门口看着烟花,等着2025年的到来。结果没想到,在2025年的第1天,我就又退游了。

    原因在于活动限量送的红色摩托车坐骑没抢到。就以此为契机,不玩了。游戏卸载,等以后又想玩的时候再说吧。

    原本用来玩魔兽的时间,后面就用来研究研究其他感兴趣的玩意儿。虽然也只是在消遣,但是总比一直钉在游戏里面好。

    所以今年的新游戏好像就玩了个百日战纪,其他玩的游戏都是老平台上的老游戏。玩魔兽期间基本摆烂的舰队收藏,今年也陆续恢复原本的运营模式。

    今年在现实生活中的经历,可以概括为:“选择”。

    留下还是离开,是去年的我出的选择题。今年春节前陆续面试过一批公司,也收到好几个聘用通知书邮件,可是那些新岗位都有些这样那样的缺陷,实在难说完美。

    在计划开始提流程办手续的前一天晚上,做了个梦,梦到一只黑色的猫突然“miau”了一声。然后醒了。

    一看时间才5点,可以再躺一会儿,于是就继续复盘一遍即将做出的选择。最终精炼成,“从火坑跳进雷池,值得吗?”

    答案就很显然了。出乎我家人、友人、以及我自己的预料,竟然选择了留下。

    到现在为止的经历也证明了那也算是个还可以的选择。起码现在不会经常想着跳槽,并且也找到了适合现有环境的发展路线。

    比起是否留下的问题,那段经历让我感受最深刻的是“选择”本身。

    “成年人当然是全都要”的说法,在面对严肃的选择时,就行不通了。比起全都要,在限定时间内果断准确地找到战略上的更优解,才是更应该做的事。

    至少现在的我可以告诉去年的我,”你不会后悔的。梅雨终将散去,真正后悔的反而是老东家。(笑)“

    关于那段插曲嘛,还是等哪次和友人们线下聚会时当段子讲吧。

    在电脑前写写停停,依然有点没法相信今年已经快要结束了、明天,将是新的一天;明年。将是新的一年。期待在明年的年底,也能保持和现在一样的心情与状态。

  • Hyprland UWSM注销后黑屏排查思路

    大概是本月(2025年12月)初的时候,在更新完软件包后,发现在Hyprland-UWSM会话中不能正常注销用户了。

    点击注销按钮后,屏幕一直黑屏,SDDM界面一直不显示。

    Ctrl+Alt+F3进TTY,通过sudo systemctl restart sddm命令重启SDDM服务,倒是可以重新选择桌面会话登录了。

    切换不带UWSM的Hyprland会话登录,再注销试试,倒是正常。说明问题要么出在UWSM上,要么出在Hyprland上。

    当然也不能排除是我用的HyDE dotfile的问题,总之先试着看看是什么问题吧。

    不抱希望地尝试排查,竟然意外地搞定了。

    上半个月在打砍口垒冬活,今天打完圣诞节限定任务,就来把这个问题的解决办法记录一下吧。

    1、解决方式

    不卖关子,先写解决方式。

    把状态栏、注销菜单等所有包含注销按钮的组件调用的注销命令全部换成loginctl kill-session $XDG_SESSION_ID,然后等Hyprland修复这个bug吧。

    以我用的HyDE桌面环境为例,waybar状态栏右上角的电源按钮用左键点击是调用wlogout;用右键点击是调用waybar的菜单模块。所以这2个都要改一下。

    在改配置文件前,建议按照惯例把修改前的配置文件备份一份。

    1.1.修改wlogout配置文件

    HyDE环境下的wlogout配置文件在~/.config/wlogout目录下。需要修改的是该目录下的layout_1layout_2这2个配置文件。它们都有这样一段配置。

    {
    “label”: “logout”,
    “action”: “hyde-shell logout”,
    “text”: “Logout”,
    “keybind”: “e”
    }

    hyde-shell logout替换成loginctl kill-session $XDG_SESSION_ID即可。

    {
        "label": "logout",
        "action": "loginctl kill-session $XDG_SESSION_ID",
        "text": "Logout",
        "keybind": "e"
    }

    1.2.修改waybar配置文件

    HyDE环境下的waybar配置文件位于~/.local/share/waybar/modules目录。需要修改的是其中的custom-power.jsonccustom-powermenu.jsonc这2个文件。它们都有一段这样的配置。

    “menu-actions”: {
    “lock”: “hyde-shell lockscreen.sh”,
    “logout”: “hyprctl dispatch exit 0”,
    “shutdown-now”: “shutdown now”,
    “shutdown-wait”: “systemctl poweroff”,
    “reboot-now”: “systemctl reboot”,
    “reboot-firmware”: “systemctl reboot –firmware-setup”,
    “suspend”: “systemctl suspend”,
    “hibernate”: “systemctl hibernate”
    },

    hyprctl dispatch exit 0替换成loginctl kill-session $XDG_SESSION_ID即可。

    1.3.最好重启下系统

    确实是从Windows那边带过来的坏习惯(笑)。不过因为第一次登录的会话实际上没有完全注销掉,重启一下也没坏处,刚好也能应用修改后的配置文件。

    2.排查思路

    我一开始的排查方向是看看日志,总之先journalctl -b粗略地看一遍吧。

    然后看到在进行注销时,Hyprland报错关闭了。当时没有记录,完整报错信息已经忘了。

    loginctl命令看看现有会话,发现先前登录的会话根本没注销掉。

    因为UWSM是将桌面会话包装成守护进程来运行的,所以Hyprland的异常退出影响到了后面的注销会话。会话没注销,SDDM就不会重新启动登录界面,这就导致了黑屏的现象。

    尝试回退Hyprland的版本,发现一旦回退,会动到好多东西,于是放弃,还是找临时解决方法吧。

    先看看注销按钮调用的是什么命令,于是在翻了一堆文档后找到上面那些配置。

    在终端中敲一下原本调用的命令,效果和点注销按钮一样,屏幕持续黑屏,只能切换到TTY重启SDDM服务,再次登录。

    试了试号称最佳实践的loginctl terminate-user ""uwsm stop命令,也没用,都是执行完后黑屏。

    后来搜到NIX OS论坛下的这个帖子(https://discourse.nixos.org/t/sddm-gets-black-screen-after-logout-from-hyprland-uwsm/66777),虽然帖子里的问题和我遇到的不完全相同,但是解决方式值得一试。就是上文中替换的loginctl kill-session $XDG_SESSION_ID命令。

    3.个人吐槽

    Hyprland毕竟不是特别主流的窗口管理器,所以还是容易遇到这样那样的问题的。遇到问题了,就尝试自己解决解决,也能顺带地学学Linux知识(笑)。

    如果解决不掉,那就换个更为主流的桌面环境来用(不)。