欢迎光临散文网 会员登陆 & 注册

梦龙彩色掌机:自缚手脚的自研加密游戏机,远超GBA的性能却表现不如GBA

2023-03-18 20:33 作者:汤姆苏1930S  | 我要投稿

作为一个奔三的大叔,近期请假带仔无聊,搞了两台win掌机玩玩,无意中看到了号称国产自研的梦龙彩色掌机(2014年发布),就表现而言感觉稍逊于GBA,却有着各种正版IP授权的独占游戏,不禁让我好奇起来。毕竟上次喊自研的国产游戏机战斧(2016年发布)小霸王Z+(2019年发布)非常凄惨,记忆里只有几款游戏为独占,连充数的独占小游戏都没有,完全没有生态,也就丁果A320(2008年)有自研的独占游戏与PSP较量。

当年可以和PSP竞争的丁果A320

梦龙彩色掌机(英文名:Monon Color)这款明显对标我小时候的GBA的游戏机,在国产掌机都搞“开源”模拟器的情况下,居然有20款自研独占游戏为其保驾护航,除00后玩的洛克王国、机甲旋风,甚至包括90后耳熟能详的钢铁侠、英雄联盟、龙珠、喜羊羊,实属让人震惊。

20款独占游戏在国产产品里无出其右

机子和卡带一套,相较于成人来说,价格非常便宜,预计600能拿下20款游戏卡带+附加卡牌或徽章(类似于DLC)+2个充电版游戏机(因为有对战功能,才能完美体验),不过我机子目前还没到。

毕竟我是玩win掌机的,相较这些游戏,让我好奇的是,梦龙掌机这东西究竟是什么?因为太像GBA了我一开始以为是GBA的底层引擎+自研游戏的模式,毕竟现在开发GBA游戏不算很难,小时候还见过有人移植CS反恐精英(不过写完3D引擎后就没下文了)。

堪称黑科技的《车神3》GBA上的GTA

实际上事情比想象的复杂,这机子一句话概括:有着FC、SFC、GBA开源掌机的性能却被大部分被用于加密和“保密”(猜测)的自研系统游戏机

首先是硬件层面,这个游戏用的BIOS和底层游戏引擎非常独特,因此受到了国外模拟器开发团队网站MAME的关注。MAME认为破解它非常有挑战性,目前也没法完美模拟。

核心硬件上,CPU使用的是香港Appotech的Intel 8501架构的AX208处理器,核心频率达到96MHz,远强于GBA的16.78MHz,大概为PSP(330MHZ)和丁果A320(J47XX系列360MHz)的三分之一。与GBA和PSP有两个CPU类似,梦龙还有一个6502的MCU专门负责音频,这也是无法完美模拟的原因(后文会说)。

AX208是控制芯片,用于智能设备而不是作为主要CPU

卡带里面是闪存和主控。左侧是华邦的W25Q64FVSIG闪存,容量8mb,右侧是黑胶封装的主控。游戏文件存储在左侧这个flash芯片里,格式为bin。通过一定办法可以进行烧录(也就是GBA那样的换游戏文件)。游戏机本体并没有闪存,只有两个黑胶封装的主控芯片,这意味着机子本体不存在系统。很可能是卡带自带类似系统的代码。

卡带里8mb的闪存和主控

掌机的处理器AX208支持非常多的功能,包括JPG图片格式硬件解码、USB 2.0支持、内置液晶驱动(LCD Driver)、SPI ROM和SDCard存储/引导支持、UART、Infared,甚至LSFR(随机数生成器),以及加密来自您使用的任何媒体的传输的选项(可以在知网上查到)。除了SPI ROM作为梦龙掌机的传输介质,其他功能梦龙掌机基本没有利用。

接下来才是梦龙掌机最诡异的部分

一、梦龙使用内存的方式较为低效。游戏在启动时,它将大约7.5KB的固定代码加载到RAM(内存)中,还有正在玩的游戏卡专用的代码库。这些固定代码被发烧友和疑似梦龙内部人员指出可能是游戏底层引擎,并被烧录在游戏卡里(据说每个游戏卡前面几千行代码都完全一致)。为了满足内存需求,游戏机将额外的2KB jpg图片缓存作为常规内存使用,每当调用该库中的函数时,都会通过SPI逐字节地按需加载。很明显,这样的内存使用方式严重拖累了96MHz处理器的速度。

二、梦龙渲染画面的方式较为低效。与其他廉价开源掌机直接软件渲染某个像素点不同,梦龙使用了DAC(数模转换器)。但奇怪的是,屏幕以单像素宽的列从左到右进行渲染,但是ROM中的图形却是使用行表压缩的,因此在计算每一行的正确地址时又会有相当多的CPU占用。

三、梦龙在播放音频上有安全检查。梦龙掌机运行游戏时,有概率会出现不正常的长时间延迟卡死,看起来游戏会崩溃。导致游戏停滞的是安全检查。代码会要求将SPI中存储的数据与专门负责音频的6502的MCU的内部ROM进行比较,使得游戏出现不正常卡顿。同时,这个MCU内部ROM拒绝一切形式的转录,使得MAME没法完美模拟梦龙游戏,只能抛弃音乐。

四、梦龙游戏是解释运行。梦龙游戏是用MGLG字节码语言编程的,而仅有的i8051代码是解释器,在ROM中被认为是“固件”。这无疑使得系统的整体效率低下。

此外,梦龙掌机在输入上选择多路混用;在存档上选择直接修改并写入SPI ROM(好处是不会出现GBA那种因为内置电池没电导致存档丢失的问题,坏处是如果写入存档的时候没电,卡带极有可能就报废了);以及将2款游戏的刷卡功能选择集成在卡带上而不是游戏机上(这一点也使得MAME没法模拟刷卡)。

以上这些解释了梦龙为什么在拥有远高于GBA处理器主频的情况下,游戏表现却不尽人意。

为什么梦龙游戏机这么别扭?仅仅是因为梦龙研发能力差吗?MAME团队的一个解释提醒了我真实的原因,也是这专栏标题的来源。MAME团队认为,梦龙游戏是解释运行的可能原因是研发软件的部门不清楚研发硬件部门提供的硬件结构。梦龙研发团队有可能是故意以这种“别扭”的方式造就这台机器的。比如在2022年MAME搞懂这个小东西之前,几乎没人知道梦龙是什么处理器,疑似软件开发人员也对游戏卡带前面完全一样的代码闪烁其词(到2018年为止)。梦龙将底层引擎绑定在卡带里而不是游戏机里,最大的可能是保护引擎不被单独盗取;奇怪的画面渲染方式迷惑可能的盗版者;意想不到的在音频处理器里进行安全检查;软件研发人员可能不知道自己硬件究竟是什么等等,可谓是将保密做到了极致。

总的来说,相比竞争对手百逸掌机实则刷卡机,以及其他代代星、巴啦啦小魔仙等“自研”掌机只有没IP的劣质游戏,梦龙好歹算是有个“中国任天堂”的开头,获得了一定成功,不过和GBA差不多的游戏机,还是会埋没在越来越廉价的智能手机和开源掌机的历史洪流里,win掌机出现也意味着,以后架构、系统互通会是一种趋势,现在就差一个电池革命了(续航和散热一直是高性能便携设备硬伤)。

就像丁果解散,开源掌机几乎无真正的自研软件,梦龙也无法有机会再发展了,MAME也不一定继续修复音乐无法模拟,刷卡无法模拟的问题,想要完美体验梦龙的独占游戏只能买机子,但是对于本人来说,自研这条路还有龙芯在走,不过龙芯专门搞二进制翻译和转译层兼容别的平台生态,以后说不定能慢慢搞出龙芯原生龙64架构平台的软件生态,到时候也会有龙芯的独占游戏吧。

真正不依赖国外架构的国产CPU之一(另一个是申威)

参考资料:

1.《【教程】梦龙彩色掌机的卡带烧录与修改教程》2023.03.18 https://tieba.baidu.com/p/5590313166

2. 《MAME - emulating a handheld console, with ~20 licensed games from 2014 (videos included)》2023.03.18 https://www.reddit.com/r/emulation/comments/wv4j1d/mame_emulating_a_handheld_console_with_20/


梦龙彩色掌机:自缚手脚的自研加密游戏机,远超GBA的性能却表现不如GBA的评论 (共 条)

分享到微博请遵守国家法律