< 返回版块

Mike Tang 发表于 2026-09-07 09:05

Gecko:GameCube/Wii 模拟器大幅提速与存档

Gecko 是用 Rust 写的 GameCube/Wii 模拟器与调试器,目标同时覆盖 Homebrew、逆向与可玩体验。核心使用 Cranelift 做 PowerPC、DSP 与顶点解码 JIT,渲染走 wgpu,并提供 egui 调试 UI、FIFO 录制/回放、Lua 脚本与 MCP 等开发者工具。跨平台支持 Windows/Linux/macOS,以及 x86 与 ARM。

本轮更新带来整体性能提升,许多原先“能启动但帧率不够玩”的游戏现已可玩,例如 LEGO Batman。新增 savestates,可在任意时刻存档并恢复。调试器支持 freecam:解锁相机后可脱离游戏镜头观察场景。作者表示 Super Mario Galaxy 系列与多款 LEGO 游戏现已 fully playable,并放出 Galaxy 实机视频;dev/nightly 分支还有使 Xenoblade Chronicles 可工作的修复。GitHub 提供每日 nightly 构建,截图兼容库见 emu.layle.dev。作者还预告了基于同一核心的多系统模拟器,浏览器端 SNES 已可运行。

原文链接:https://github.com/ioncodes/gecko

用 ESP32 在 Rust 里实现 STM32 的 SWD 编程器

文章是嵌入式实验笔记:在没有 ST-Link 的情况下,用 ESP32 DevKit 充当 SWD 主机,对 STM32F103C8T6 Blue Pill 实现 Serial Wire Debug 通信。本篇完成用 Rust bit-bang SWD 读取目标 DP 的 IDCODE;真正刷写固件留到下一篇。

硬件上 ESP32 与 Blue Pill 各自 USB 供电,信号线为 GPIO18→SWCLK(PA14)、GPIO19→SWDIO(PA13),并共地。文中从 SWD 双线协议讲起,用 Flex 管理双向 SWDIO,实现 clockwrite_bit/read_bit 以及 LSB-first 的多位读写;并按 ARM 规范完成 JTAG→SWD 切换序列(不少于 50 个 SWDIO 高电平时钟周期、发送 0xE79E、再拉高 50 周期)。示例代码仓库为 implferris/swd-rust-idcode。

原文链接:https://blog.implrust.com/posts/2026/09/swd-protocol-programmer-embedded-rust/

Empower:Rust + egui 可视化编程引擎

Empower 是作者业余约三年开发的可视化编程引擎,用 Rust 与 egui 实现,架构接近游戏引擎,希望同时服务初学者与需要复杂逻辑的开发者。开发者在图形编辑器中搭程序,再导出为面向目标操作系统的独立可执行文件。

仓库拆成三块:Empower Engine 提供节点图、资源、项目、编译、执行与导出等基础能力;Empower Studio 是 immediate-mode GUI 前端,含停靠窗口、项目/导出编辑与可视化日志;Empower Application 是目标机上的运行时可执行文件,规划支持 Linux/macOS/Windows。当前首发定位为 proof of concept。本地可 cargo buildcargo run -p empower-studio

原文链接:https://github.com/Stretchyfish/empower

Drop 顺序应否写入函数 API 契约

作者在实现类似 smallvec 的 toy crate 时,注意到 Iterator::nth_back 的默认实现会反复调用 next_back,元素按反向顺序 drop;若为性能改用 ptr::drop_in_place 批量销毁,则变成正向 drop。标准库 std::vec::IntoIter::nth_back 同样是正向 drop。

讨论点在于:Rust 里 drop guard 很常见,跳过中间元素时的析构顺序是否应被视为函数 API 契约的一部分,还是仅作实现细节。相关行为可对照 Rust Reference 的 destructors 章节。

原文链接:https://www.reddit.com/r/rust/comments/1w8o4wx/do_you_think_drop_order_should_be_part_of_a/


From Rust中文社区 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页