A9VG电玩部落论坛

 找回密码
 注册
搜索
楼主: gfgfgfgf

2025年最新OPL中文版发布(支持txt中文列表)

[复制链接]

精华
0
帖子
1174
威望
0 点
积分
2008 点
种子
1167 点
注册时间
2007-1-17
最后登录
2025-5-22
 楼主| 发表于 2025-5-16 03:49  ·  海南 | 显示全部楼层
本帖最后由 gfgfgfgf 于 2025-5-16 13:57 编辑
xbox1978 发表于 2025-5-4 01:41
官方的一切正常。


我好像知道真正的问题在哪了,这其实是两个不同的问题。
第一:0.8之前包括0.8版本都不能离开U盘,只要你没插U盘就会卡死,这个是我的问题。
第二:如果你没插U盘,同时还开启了BDM模式,会因为找不到U盘,从而把APPS文件夹当作U盘目录,这个是官方的问题。

不插U盘会卡死的问题,我已经修复了,下次更新0.9的时候会带上。
官方这个问题我不敢随便修,可能它这么做是有它的道理。
不过我做了一个在BDM块设备中关闭USB的功能,可以用来解决这个问题,手动关闭USB后就不会在记忆卡或其他任何设备的APPS目录下生成文件了。

精华
0
帖子
235
威望
0 点
积分
248 点
种子
24 点
注册时间
2012-7-14
最后登录
2025-5-23
发表于 2025-5-17 01:48  ·  安徽 | 显示全部楼层
gfgfgfgf 发表于 2025-5-16 03:49
我好像知道真正的问题在哪了,这其实是两个不同的问题。
第一:0.8之前包括0.8版本都不能离开U盘,只要你 ...

5月6日对supportbase.c修改接近完美,我一直在用。你现在修改的部分,默认关闭USB是不写入记忆卡文件,但开启后依然会写入两个文件。5月6日的那个修改只会写入一个空白的列表文件。其它很正常。你最新修改的有点bug,就是在设置选项内选确定后,它会从总菜单自动跳转到BDM界面。

精华
0
帖子
1174
威望
0 点
积分
2008 点
种子
1167 点
注册时间
2007-1-17
最后登录
2025-5-22
 楼主| 发表于 2025-5-17 10:32  ·  海南 | 显示全部楼层
本帖最后由 gfgfgfgf 于 2025-5-17 11:20 编辑
xbox1978 发表于 2025-5-17 01:48
5月6日对supportbase.c修改接近完美,我一直在用。你现在修改的部分,默认关闭USB是不写入记忆卡文件,但 ...


多出来的txtinfo.bin是用来存txt文件的修改时间和文件大小信息的,用来判断缓存需不需要更新。
这个bin文件非常小,而且是用二进制方法读取和写入,对性能没有什么影响。
之前是把txt文件信息直接存到txtCache.bin里的,但是这样会有个bug,如果CD和DVD文件夹里都有游戏,保存的信息就会出现异常,缓存有可能接收到错误的更新指令,或接收不到更新指令。
当然了,如果你只在DVD里存游戏,CD文件夹是空的,那就完全没有任何问题。

之前关不了usb的版本,你只要给机器常驻一个U盘,应该是不会在记忆卡里生成txt文件的,找不到U盘会把APPS当作mass0设备。

还有从设置菜单返回后,好像是一定会回到BDM界面,我试了英文原版,也是这样的。

精华
0
帖子
235
威望
0 点
积分
248 点
种子
24 点
注册时间
2012-7-14
最后登录
2025-5-23
发表于 2025-5-17 13:21  ·  安徽 | 显示全部楼层
本帖最后由 xbox1978 于 2025-5-17 13:23 编辑
gfgfgfgf 发表于 2025-5-17 10:32
多出来的txtinfo.bin是用来存txt文件的修改时间和文件大小信息的,用来判断缓存需不需要更新。
这个bin文 ...


5月6日的那个版本,没有出现你说的问题。我觉得应该从格式入手,凡是在FAT32和exFAT格式下才容许写入列表动作,超出这两种格式的设备禁止写入列表。其它保持官方不动!

精华
0
帖子
2968
威望
0 点
积分
2994 点
种子
16 点
注册时间
2007-1-16
最后登录
2025-5-22
发表于 2025-5-17 13:46  ·  江苏 | 显示全部楼层
楼主,请问你这个版本OPL怎么不带语言包lng和字体ttf?   我们需要单独下载吗?

精华
0
帖子
1174
威望
0 点
积分
2008 点
种子
1167 点
注册时间
2007-1-17
最后登录
2025-5-22
 楼主| 发表于 2025-5-17 14:06  ·  海南 | 显示全部楼层
mervyn 发表于 2025-5-17 13:46
楼主,请问你这个版本OPL怎么不带语言包lng和字体ttf?   我们需要单独下载吗? ...

3m版本不需要,默认语言就是中文。
你要是同时需要使用其他未内置中文字库的OPL,才需要下载语言包。

精华
0
帖子
1174
威望
0 点
积分
2008 点
种子
1167 点
注册时间
2007-1-17
最后登录
2025-5-22
 楼主| 发表于 2025-5-17 14:14  ·  海南 | 显示全部楼层
本帖最后由 gfgfgfgf 于 2025-5-17 14:19 编辑
xbox1978 发表于 2025-5-17 13:21
5月6日的那个版本,没有出现你说的问题。我觉得应该从格式入手,凡是在FAT32和exFAT格式下才容许写入列表 ...


没有改成txtinfo的版本是一定有问题的,错误是存在的,需要进行特定操作才会出现,正常使用感觉不到。
如果你频繁改动txt,频繁写入和删除游戏的话,是有概率遇到的,我就是要经常修改txt,经常增减游戏来测试稳定性,所以才会发现这个问题。

设备使用了什么格式,fat32还是exfat,应该是在sdk里判断的,我没办法在代码里进行判断。如果你知道方法的话,可以指点一下。
另外你应该知道无限记忆卡这个东西吧,opl会把记忆卡识别成mass设备很可能是为了兼容无限记忆卡。但因为存在bug,把普通记忆卡也识别成了mass。

精华
0
帖子
235
威望
0 点
积分
248 点
种子
24 点
注册时间
2012-7-14
最后登录
2025-5-23
发表于 2025-5-17 15:15  ·  安徽 | 显示全部楼层
本帖最后由 xbox1978 于 2025-5-17 15:34 编辑

#include <sys/statvfs.h> // 用于获取文件系统信息

// 检查文件系统是否为FAT32或exFAT
static int isSupportedFilesystem(const char *path) {
    struct statvfs fsInfo;
    if (statvfs(path, &fsInfo) != 0) {
        return 0; // 获取文件系统信息失败,默认不支持
    }

    // 检查文件系统类型
    if (strcmp(fsInfo.f_basetype, "vfat") == 0 ||   // FAT32
        strcmp(fsInfo.f_basetype, "exfat") == 0) {  // exFAT
        return 1;
    }

    return 0;
}

int sbReadList(base_game_info_t **list, const char *prefix, int *fsize, int *gamecount) {
    // 检查文件系统是否支持
    if (!isSupportedFilesystem(prefix)) {
        LOG("Unsupported filesystem. Only FAT32 and exFAT are allowed for writing game lists.\n");
        return 0;
    }

    // 原有的函数逻辑
    int fd, size, id = 0, result;
    int count;
    char path[256];

    free(*list);
    *list = NULL;
    *fsize = -1;
    *gamecount = 0;

    // 错误识别到记忆卡时,跳过扫描
    if (strncasecmp(prefix, "mc", 2) == 0) {
        return 0;
    }

    // ... 其余原有代码保持不变 ...
}

supportbase.c修改部分,你做一下参考

精华
0
帖子
1174
威望
0 点
积分
2008 点
种子
1167 点
注册时间
2007-1-17
最后登录
2025-5-22
 楼主| 发表于 2025-5-17 16:42  ·  海南 | 显示全部楼层
本帖最后由 gfgfgfgf 于 2025-5-17 16:51 编辑
xbox1978 发表于 2025-5-17 15:15
#include  // 用于获取文件系统信息

// 检查文件系统是否为FAT32或exFAT


没办法用,编译通不过。。。。
OPL的源代码,只能使用非常基本的函数进行编写,一些比较高级的函数大概率是通不过的。
只能用它已经添加进去的头文件里的函数,自己额外添加头文件大概率是用不了的。
很多高级功能需要用到sdk里的接口函数,但是我不会,我对sdk完全不懂,顶多照着老外之前写好的代码,尝试把里面的函数拿出来边改边试,看看到底什么效果。

精华
0
帖子
2968
威望
0 点
积分
2994 点
种子
16 点
注册时间
2007-1-16
最后登录
2025-5-22
发表于 2025-5-17 21:50  ·  江苏 | 显示全部楼层
gfgfgfgf 发表于 2025-5-17 14:06
3m版本不需要,默认语言就是中文。
你要是同时需要使用其他未内置中文字库的OPL,才需要下载语言包。 ...

好的,还有一个问题,请教这个生成的txt文件默认采用的啥编码格式?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-5-23 11:57 , Processed in 0.210395 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部