Repository navigation
4.0.0
项目正式更名为 GKME
新增
新增陀螺仪坐标系选择器,支持自定义编辑
世界空间模式陀螺仪映射算法
陀螺仪转鼠标/摇杆映射功能
新增陀螺仪按钮激活模式(GyroActivateMode):支持"始终开启"和"按下特定按钮开启"两种模式
autoHold + gyroActivate 复合按钮跟随 toggle 状态触发
陀螺仪映射在按钮未按下时自动归零
双马达手机及多马达控制器支持
新增鼠标按钮支持(LMB/RMB/MMB)
触控板添加鼠标加速度属性
鼠标手势支持(双指手势)
陀螺仪在蓝牙模式下也可转鼠标,统一鼠标总线并使用向量叠加
蓝牙连接时触控板直接模拟鼠标移动
横向滚动支持
键盘功能增强
浮动编辑器新增键盘按键支持
键盘按键支持滑动/重叠/autoHold 功能
方向键支持 Unicode 字符
修复 HID 键盘扫描码以匹配 Mousedroid 标准
扳机功能
新增滑动扳机和模拟线性扳机
修复扳机重置错误和扳机位缺失问题
修复 LTRT 反转问题
新增外观设置导出/导入功能,支持图片和颜色配置
显示模式从预设页迁移到外观设置页
控制标签添加控制器/键盘/鼠标前缀
浮动编辑面板优化:进入特定设置后隐藏保存/放弃/添加按钮,新增返回按钮
陀螺仪设置改名,编辑面板交互改进
新增预设复制功能
编辑模式按钮选择和拖拽可靠性提升,修复幽灵按钮问题
添加控件键盘按键预览形状修复
新增端口占用检测和错误处理
启用 R8 代码压缩和资源缩减,减小安装包体积
音频设置中仅在设备实际存在时显示对应手机马达选项
移除默认左/右手柄预设,新增 JSON 解析缓存
底部导航栏 Tab 顺序重新排列,移除自定义 Tab
震动反馈:D-pad 和键盘按键增加震动反馈
非锁定控件支持独立调整大小
重构:分层按钮触摸架构,独立的震动处理管线
重构:集中化 bit 名称映射到 BitNameMapper
UI 文案优化:物理手柄 → 实体手柄
修复
切换显示模式时预览不更新及图标重叠问题
外观设置页面切换时预览空白问题
陀螺仪方向标签重复显示问题
鼠标按钮状态同步、触控板旋转和蓝牙鼠标上报问题
线性扳机视图重建、滑动方向和行程距离问题
重构
项目重命名: 包名从 com.zyz4.gamepademu 统一改为 com.zyz4.gkme,模块和资源引用全面更新
布局仓库重构及相关文件更新
蓝牙 HID 服务和 UDP 连接管理器优化
Windows 端重大更新
技术栈迁移
从 WPF 迁移到 Avalonia UI 框架
启用 NativeAOT 编译,支持 AOT 编译和 Trim,显著减少部署体积并提升启动速度
项目正式更名为 GKME,从 GamepadEmuHost 改名
重构网络层为专用线程模型:收发线程分离,输入事件驱动立即上报,大幅提升响应速度
硬编码控制器配置文件:用 C# 静态 ControllerProfile 对象替代 JSON 解析,绕过 NativeAOT 下的 System.Text.Json 反序列化问题
输入子系统重构
键盘输入使用 C++ DLL 封装 SendInput:
由于 .NET 结构体 Marshal 失败,改用 C++ DLL 封装 SendInput API
UI/UX 改进
新增系统托盘图标:支持显示/隐藏窗口和退出菜单
新增关于对话框:展示项目信息
修复端口冲突导致崩溃:启动时检测 UDP 端口冲突,显示友好提示后退出
窗口最小化/关闭行为优化:最小化保留任务栏图标,关闭(X 按钮)隐藏到托盘