天马G前端的使用

天马G前端的使用

1 复古掌机的选择

最近搞了个手柄,正好有一个闲置的小米9,就想着看能不能装一个复古掌机出来。

其实市场上也有很多现成的复古掌机,目前主要是安卓和Linux两种。整体上看安卓的目前占优一点,因为除了大家都能玩的模拟器,安卓平台还能玩安卓的游戏。

项目Android 掌机Linux 掌机 (ArkOS / JELOS / Batocera)
启动速度20~40 秒5 秒以内
UI一致性❌ 多 app 无统一样式✅ 完整游戏平台风格
PS2(AetherSX2)✅ 可玩(Snapdragon / Dimensity / Unisoc)❌ 官方 Linux 版 core 不成熟
Switch(Yuzu)✅ 安卓有社区版 Yuzu❌ 完全无解
PSP/NDS/GBA etc✅ 但调用 APK,界面割裂✅ 全集成 Core,UI统一
云游戏 / Steam Link✅ 完全支持⚠️ 只能 Moonlight(若有 Core)
系统自由度限制 root,定制难✅ 想怎么魔改都行
易用性✅ 下载 ROM → 配 APK → 玩⚠️ 需要 BIOS / Core 手动配置
适合人群玩模拟器 + 云游戏 + 装APP想要 “开机就是游戏机” 的感觉
视觉体验类似安卓电视盒 + 各种前端像原生游戏机固件,主题风统一

有一个很奇怪点,安卓其实也是Linux的魔改版,为什么有些模拟器目前只能在安卓上运行。查了一下,这个就完全是生态和个人原因了。PS2模拟器的作者Tahlreth只开发了AetherSX2 for Android,其中使用了Android NDK + Vulkan/OpenGL ES来实现JIT。这些都几乎是安卓平台独有的,无法直接移植到Linux。

JIT / 动态重编译器(Dynarec)

JIT(即时编译)/ 动态重编译器(Dynarec)是模拟器、虚拟机等场景中核心的性能优化技术,它能在程序(如游戏 ROM 指令)运行时,将宿主设备不兼容的原始指令(如游戏机专属指令集)实时转换为宿主硬件可直接执行的机器码,而非逐条解释执行;同时,它会持续监测并识别频繁执行的 “热点代码”,通过函数内联、循环展开等优化手段生成更高效的机器码,大幅减少指令翻译开销,让原本因 “指令不兼容 + 解释低效” 卡顿的程序(如 PS2、Switch 游戏模拟),在手机、电脑等设备上实现流畅运行,平衡了跨平台兼容性与执行效率。

就复古掌机来说,最难的部分其实就是模拟器。涉及到对汇编指令的模拟和调度,也就是上面的JIT。之前写过一点GB的模拟器,后面空了发出来。

再看看市场的情况,截至今天2025/10/11。用很火的安伯尼克来看。

35XX是T700,1 颗 2.5GHz 的 Cortex-A76 大核、3 颗 2.3GHz 的 Cortex-A76 大核。406V是T820, 1 颗 2.7GHz 的 Cortex-A76 大核、3 颗 2.3GHz 的 Cortex-A76 大核。总体来说性能有提升,但是提升不大。可是价格却翻了2~3倍。

正好手里有一个闲置的小米9,配置高通骁龙 855 处理器。对比T820,855 单核几乎翻倍,整体多核也 1.5–2 倍以上。同时855GPU性能是T820的3倍以上。

而年初买的二手的小米9多少钱呢,350,现在可能还更便宜。自己再加上一个手机手柄,加完也就只是406V一半的价格,目前市场上的安卓掌机价格偏贵是不争的事实。自己动手价格减半,性能翻倍,中间还可以学一些知识。所以折腾一下小米9,看来是更明智的选择。。。

2 天马G前端的安装

看了一下,目前国内流行的就是天马G的前端。现在不管是玩家还是工作室,几乎都用的这个。

在网上买了一套包,照着安装即可。(在B站也很多,感觉也是可以用的)

安装分成三个步骤,首先是App,然后是配置,最后是Roms。

2.1 APKS

大概是这些内容,MT管理器是用来拷贝文件的,天马G就是整体入口,用的最多的其实还是RA,其它的就是各个单独的模拟器。我是用adb装过去的。安装完成之后启动一下赋予权限,不需要再高别的什么。

3.2 配置

配置有3个,PG_安卓主题包 v1.2 230514.zip,PG_天马G 安卓配置 v1.2 230415.zip,最后有一个Android文件夹。

这里PG_安卓主题包 v1.2 230514.zip,PG_天马G 安卓配置 v1.2 230415.zip都是天马G的配置文件,然后有一些金手指,文件存档之类。

还有一个Android的文件夹。

原因如下:

在 Android 11 及以上系统中,每个 App 的数据目录(Android/data/包名)是受系统沙盒保护的,普通文件管理器无法直接写入。
但天马 G 前端要让多个独立 App(Pegasus、RetroArch、AetherSX2)共享配置文件、ROM 路径和启动脚本,因此需要提前把它们的配置放好。

所以目前这部分只能手动弄。

3.3 Roms

Rom的内容就比较敏感的,就是合法与非法的区别,所以模拟器或者各大工作室,是不会提供ROM的,起码明面上不会,这些就要自己去找。不过好在国内这部分有现成的,就是跳坑者联盟有一个整合包,里面内容还挺全的。现在网上基本都是他家的。

Rom就是正常的游戏镜像,照理说直接拷贝到SD卡或者手机上就行了,但是天马G毕竟显示牛批嘛。所以根据天马前端UI的要求,要增加一些文件。

以恶魔城,白夜协奏曲为例,大概是这些文件。

一个主图,一个副图,一个介绍动画。

此外整体还有一个metadata,直接用精简包里面的即可。弄完之后放在手机根目录的 Roms下面。

如果是用的跳坑者联盟的发布,这些内容在精简包里面都是做好了的。

3.4 运行

比想的要顺利一点。

首先界面确实华丽了不少,比起一般linux掌机就是文字,确实好看也方便了很多。

使用USB直接外接的手柄,也是非常方便,几乎感觉不到延迟。

但是手机也有自己的问题,主要就是屏幕尺寸,运行很多游戏时,两边会有很大的黑边,影响了一部分游戏感受。不过PSP就看着好很多。

总体还是满意的,钱省了,然后闲置的物品也利用起来了,探索技术的心情也满足了。

3 天马G的技术原理

 天马G其实也是一个开源项目,官网地址是:https://pegasus-frontend.org/

其实和之前认为的有点点区别,天马G还真就只是一个前端,所有干的事情就相当于一个ROM管理器和模拟器启动器launcher。所有的核心内容,还是依赖于各家模拟器自己的APK。

整套本身实现是基于QT,所以才看到天马G现在有那么多平台。其实功能本身不复杂,也没有太核心的技术,还是调用第三方的模拟器。看了一下,Android的核心代码如下:

 public static String launchAmCommand(String[] args_arr) { final LinkedList<String> args = new LinkedList(Arrays.asList(args_arr)); if (args.isEmpty()) return "No arguments provided to 'am'"; final String am_command = args.pop().toLowerCase(); if (!am_command.equals("start")) return "For 'am', only the 'start' command is supported at the moment, '" + am_command + "' is not"; try { Intent intent = IntentHelper.parseIntentCommand(args); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); m_self.startActivity(intent); } catch (Exception e) { return e.toString() + ": " + e.getMessage(); } return null; }

拼接好参数,JNI直接startActivity去调用三方模拟器。天马G提供的,就是一套UI框架,也只有一套这个。如果你直接装一个RetroArch,感觉其实也能玩,还方便很多。

4 FPGA的扩充

对模拟器本身还是挺关注的,能否接一个FPGA来提升性能呢?将来的将来的将来再看吧。。。

Read more

python+机器学习基于肺癌数据分析可视化与预测系统

python+机器学习基于肺癌数据分析可视化与预测系统

收藏关注不迷路!! 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 文章目录 * 详细视频演示 * 项目介绍 * 系统效果图 * 源码获取 详细视频演示 文章底部名片,联系我看更详细的演示视频 项目介绍 Python+机器学习肺癌数据分析可视化与预测系统介绍 一、系统概述 该系统以Python为核心开发语言,结合机器学习技术,针对肺癌数据构建了集数据预处理、特征工程、模型训练、评估优化及可视化展示于一体的完整解决方案。系统支持从医院电子病历、医学影像数据库、临床试验数据及公开医学数据集等多源采集数据,涵盖患者基本信息、临床症状、影像学特征、病理检查结果及治疗预后信息等。通过深度挖掘数据价值,系统旨在辅助医疗决策、疾病诊断及治疗效果评估,为肺癌的早期筛查、个性化治疗及预防提供科学依据。 二、系统功能模块 数据采集与预处理 数据采集:系统支持从多种数据源采集肺癌相关数据,确保数据的多样性和全面性。 数据清洗:处理缺失值、异常值和重复数据,采用

By Ne0inhk

【Python 爬虫】Playwright 多浏览器并发实战:Chromium/Firefox/WebKit 性能对比与优化

1. 为什么你需要多浏览器并发爬虫? 如果你只用过单浏览器爬虫,可能会觉得“一个浏览器不就够了吗?”。我以前也是这么想的,直到在一个真实项目里踩了坑。当时我需要从几个大型电商网站抓取价格数据,一开始只用 Chromium,跑得挺快。但没过多久,网站的反爬机制就启动了,不仅速度变慢,还频繁弹出验证码。更头疼的是,我发现有些页面在 Firefox 上渲染出来的商品列表结构,和 Chromium 里看到的不太一样,导致我写好的定位器失效了。 这就是单浏览器的局限性:容易被识别、兼容性有盲区、性能瓶颈单一。而 Playwright 原生支持 Chromium、Firefox 和 WebKit 三大引擎,这不仅仅是“多一个选择”,而是给了我们一套组合拳。你可以把爬虫任务想象成一支特种部队:Chromium 像突击手,速度最快,生态工具最全;Firefox 像侦察兵,在某些反爬策略下更隐蔽;WebKit 则像特工,能模拟 Safari

By Ne0inhk
Anaconda安装(2024最新版)

Anaconda安装(2024最新版)

安装新的anaconda需要卸载干净上一个版本的anaconda,不然可能会在新版本安装过程或者后续使用过程中出错,完全卸载干净anaconda的方法,可以参考我的博客! 第一步:下载anaconda安装包         官网:Anaconda | The Operating System for AI (不过官网是外网,这里推荐国内清华大学的镜像源,对于国内的网络友好,下载速度更快!) 清华镜像网:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /anaconda/archive/ | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/         这里有许多版本,博主这些选择下载最新版本的2024.06-1版本

By Ne0inhk
【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器

【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器

🌟 超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器 🌈 个人主页:创客白泽 - ZEEKLOG博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自每一个灵感闪现的夜晚。愿以开源之火,点亮前行之路。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦 📖 概述 在当今数字化社交时代,Emoji已成为全球通用的视觉语言。本文介绍如何使用Python和PyQt5开发一个功能全面的Emoji工具箱,包含完整的Unicode 14.0标准表情库,提供分类浏览、智能搜索和快捷复制等功能。该项目具有以下技术亮点: * 采用MVC架构设计 * 支持跨平台运行(Windows/macOS/Linux) * 实现高性能的emoji渲染和搜索 * 提供现代化的UI交互体验 * 完整包含1800+个标准emoji 🎯 功能特性 1. 全量Emoji集合 * 涵盖9大分类体系 * 每个emoji包含官方名称标注 * 支持最新Unicode 14.0标准 2. 智能搜索系统 * 支持中文

By Ne0inhk