﻿====================================================================
PPXCLUB 是 街机 等 怀旧玩家 比较多 的 中文论坛。
PPXCLUB 发布页面：
    www.ppxclub.com/705838-1-1

源代码：
    https://github.com/gdicnng/JJui

在线说明：
    readthedocs 上免费挂的在线文档，不知道效果怎样，网络连接好不好。
    网址：
        https://jjui.readthedocs.io
        https://jjui.rtfd.io

JJui 可以使用的第三方主题：
    https://github.com/gdicnng/JJui_themes

百度网盘：
    不知道百度网盘的链接能活多久
    链接：https://pan.baidu.com/s/1guTSDIWr66S6ewIdyMQPjA 
    提取码：r9b9 
====================================================================
Github 源代码中的文件/文件夹

JJui.pyw     文件：源代码，主程序，显示 MAME 主列表（街机部分）
JJui_sl.pyw  文件：源代码，主程序，显示 MAME Software list 列表(非街机)(这个使用麻烦)
jjui_source  文件夹：其它源代码、内置图片、记录文本(_log.txt)
             
             主要的源代码部分，就是以上的 文件/文件夹
             
             
.jjui        文件夹：
               临时文件夹
               没有这个文件夹的话，运行程序时，会创建这个文件夹
               主要是用于保存 配置文件 jjui.ini 
               （反正都要有这个文件夹了，顺便，把，其它的一些文件 的 默认保存位置 也设置到了这里）
             
folders      文件夹：
               第三方目录测试文件，
               没什么用，可以删掉，
               如果文件格式忘记的话，可以参考一下
             
             以下可能没什么作用
             
docs         文件夹：说明文件的源代码
               一般，不需要关心这个
               可以去查看这些源代码生成的： 离线说明文件 、在线说明文件
             
LICENSE      文件：LICENSE 文件
             
.backup      文件夹：老版本备份
.github      文件夹：github 自动生成 exe 等操作相关的（一般，不需要关心这个）
.gitignore   文件：（一般，不需要关心这个）
.readthedocs.yaml  文件：在线文档生成时用到此文件（一般，不需要关心这个）
README.md    文件：Github 页面显示的简单说明（一般，不需要关心这个）
             
gamelist_translation_tool
             文件夹：翻译游戏列表的工具（一般，不需要关心这个）
             
.windows_*.bat
             文件：（一般，不需要关心这个）
               bat 脚本，将 源代码 转换为 .exe 

====================================================================

因为用户比较少，估计会有许多问题用没被发现。

有些功能，没什么人 用过、测试过 ，可能会有一些 bug 。 

====================================================================
v
    
    菜单 → 周边 → 提取图片
        复制图片
        范围 ：当前游戏列表中显示的游戏
    
    图片显示比例 4:3
        菜单 → 周边 → 图片 使用 4:3 或 3:4 的比例
        
            宽的图片 显示为 4:3
            高的图片 显示为 3:4           
            
            仅适用于一部分游戏
            有很多 其它比例 的游戏
            多个屏幕的游戏，图片的画面比例自然也不同
            
            MAME 主列表
                要选出来哪些游戏是 4:3 的，我也不知道怎样选
                只是简单筛选了一下
                    1，类型为 raster
                    2，只有一屏幕
                    
                    （如果使用了删除功能，如果内置的目录 中 已删除了此两项，会影响到此功能选择的范围）

                其它类型的，此选项不会改变原图片比例
            
            Software List 列表
                未 筛选
    
    清除数据
        添加一个按钮
            菜单→文件路径→模拟器路径→清除数据
            
            也可以手动清理对应的文件（ .jjui 文件夹中 *.bin 文件）

v 2.1.05
    
    增加 BIOS 选择器（ 仅少部分街机游戏有 BIOS 可选 ）
        仅街机部分
        游戏列表，选中游戏，鼠标右击，弹出菜单，增加 BIOS 选择器
            仅一部分游戏可以选择不同 BIOS 
            因为官方原版有这功能，所以就加了一个类似的


    按 F1 键，显示运行参数列表
        首先，要选中一个游戏,
            按 F1 键，弹出参数列表窗口
            或者
            鼠标右击，弹出菜单，选 自定义运行方式，弹出参数列表窗口

    仅 JJui ，运行参数 添加：按源代码分类
        运行参数，
        仅 JJui，增加按 源代码分类
            运行参数保存位置的话，在 .jjui\emu_source 文件夹，对应的 文件夹里，
            按 F1 键，可以看到 位置 写在 列标题处
        JJui 整体的快捷键 是 :（Ctrl + ） 数字键，对应 1.txt 、2.txt 、……等
        源代码分类的快捷键，如果需要的话，（Ctrl + ） Alt + 数字键，
        
        现在 按 F1 ，可以显示 参数列表，文件名可以随便取，其它文件名不用数字键可以鼠标点击了


    自定义运行参数添加，用于自动选择 uni_bios ，仅 NEOGEO 一类游戏有用
    
        %unibios_last% 
        %unibios_last_other%
        
        JJui
            用于 NEOGEO 一类的游戏，自动选择 unibios
            %unibios_last% 
                JJui 中设置的模拟器，选择 uni-bios 的最后一个
            %unibios_last_other%
                运行参数中自己设置的其它 mame 模拟器，选择 uni-bios 的最后一个
                用 自定义设置的 %cwd% ，作为 工作目录
                用 自定义设置的 第一条 指令， 当作 mame 程序
                所以 %unibios_last_other% 要添加在 运行参数的 后面一些位置
        JJui_sl
            用于 aes、neogeo、neocd 一类的
            和 JJui 相比 需要多添加一个参数
            需要多添加一个参数，指定 游戏机种类，比如 使用的是游戏机 aes
                %unibios_last%  aes
                %unibios_last_other%  aes
        
        如果选中的话，指令自动添加： -bios ?????
        比如 mame.exe kof97 -bios unibios40
        
        仅用于 mame 模拟器
        需要模拟器支持这样的指令： mame.exe kof97 -listxml
        列出单个游戏的 xml ，（特别老的版本 不是 xml 格式， 或者 只能导出所有游戏的 xml，都不合适）
        然后用于解析
        过程：
            查找 bios 名称，
            如果有 uni 字符在其中，提取出来，
            简单排个序，
            取最后一个，
            如果发现有出错的地方，可以跟我说一下
        
            比如 mame32m ，
                核心版本比较旧，0.84 版
                    不能导出单个游戏的 xml 
                    导出全体 xml ，不方便。
                导出全体的 xml ，因为是整体解析，所以，卡住时间长 、占用内存多
                不如自己在运行参数中手动设置 bios 版本了
            
            比如 mame32k 
                这个核心版本更老，0.67 版
                完全不支持 -listxml 指令
                那时好像是 -listinfo 指令 导出的格式不同
                这种，不行
            
            我自己找 mameplus 0.168 版、老的 0.138 版、更老的 0.118 版，试了一下，都可以。


    周边图片，添加选项，优先搜索普通文件
        jjui 
            → 菜单 
            → 周边 
            → 图片，使用 zip 压缩包时，仍然优先搜索普通文件
        
        这样，使用网上下载的 .zip 格式的 全套 周边图片时，
        仍然，可以优先显示 文件夹中的 普通 图片文件。
        
        如果 有 喜欢自己截图的，方便 配合 .zip 压缩包 一起使用。


    外部分类，节约一点空间
        如果使用 第三方 目录的话，如果使用得比较多的话，感觉占用了比较多的内存空间。
        各种分类，都是重复的游戏 id 名称，
        稍微处理了一下，感觉节约了一些空间


    分类文件中
        mame 以 源代码分类
            添加功能
                某个 源代码 分类中，如有不需要显示的 游戏
                    分类文件中
                    一行以 英文减号 开头，之后 英文空格 或 制表符号 分隔一下，之后 游戏 id
        
        mame sl 以 xml 分类，同上

    lanyer 提意见，弄个 全局的列表 的 黑名单。
    （这个估计没有什么作用）
    （给小朋友用的话，可以过滤掉 18+ 游戏。真需要的话，可以参考一下 18+ 的一些分类文件，复制一下 ）
        
        .jjui\hide_list.txt 
        .jjui\hide_list_sl.txt 
            这个之前就有，黑名单，拥有列表 的 黑名单
        
        .jjui\hide_list_all.txt
        .jjui\hide_list_all_sl.txt
            这个新添加的，黑名单，全局列表 的 黑名单
        
            全局列表的黑名单，仅仅只是不显示而已，并没有删除列表。
            不会节约空间。
            因为需要记录 黑名单，反而会多用一点空间。
            
            如果，需要删除 列表的部分内容，之前就有的功能，jjui→菜单→游戏列表→瘦身→.....
        
        lanyer 提到 整成 动态的列表，方便 查看、编辑。
        但是，如果弄成动态的列表，需要修改的地方太多，
        所以，静态的将就用吧。


v 2.1.04
    
    报错信息显示
        jjui，运行 mame 时，如果 returncode 不为 0 ，显示 stderr 信息
            stdout 的信息没管它
            stderr 的信息，mame 退出后，显示
        配置文件 jjui.ini 中，选项 show_error_info 可以关闭此功能，关闭后就和原来一样了
    
    JJui_sl
        alt_title 备注名 可能有多个值,如果有多个，用逗号分隔
    
    macos ，鼠标右击，似乎不一样，改一下

v 2.1.03
    
    换行符号 /r/n
        linux 上，/r 也会显示一个空方框之类的，稍微改一下
    
    目录，第三方目录，选中一个项目，在这个项目位置处，鼠标右击，
        查看 此项 超出范围 的游戏，仅查一个条目
        如果，需要查看多个条目 或者 需要清理内容：之前已有的功能： 菜单→分类列表→导出外置分类并清理
    
    目录，搜索栏
        原来：Esc 按两次，隐藏搜索栏
        添加：鼠标右击两次，隐藏搜索栏，有时候 点一下鼠标方便点
    
    周边文档，建目录时，时间好几秒，
        弄个进度条
            不准确表示进度
            显示一个进度条，仅表示需要等待
    
    出招表，字符替换，换一些

v 2.1.02
    出招表 
    菜单→周边→出招表 对照表 查看
        可以看到 从 出招表 原始文件 到 文本内容 的 转换对照表
            有兴趣的可以看看
                主要看看有没有出错的地方
    
    出扫表 英文版，子分类，有点不太对头
        调整了一下
        虽然一般也用不到英文版
    
    目录处，搜索结果列表
        添加：
            鼠标右击，弹出菜单：
                收起全部
                返回
    
    目录处，Ctrl + C ，复制所在处，文字内容
    
    在 虚拟机 linux 平台上试用发现点问题
    在 linux 平台上
        鼠标右键弹，点击时，弹单出菜单，改为：
            鼠标右键，释放时，弹出菜单

v 2.1.01
    
    自定义分类目录的编辑：
        删除所有主版本
        删除所有副版本
        添加所有主版本
        添加所有副版本
        有待测试
    
    分类目录处，添加搜索功能。
        点击 分类标题处，显示搜索栏
        双击 Esc ，退出搜索状态，显示原始内容
        
    分类目录处，如键盘有输入，向后 搜索 跳转
        目前设置的是400毫秒，400毫秒没有更新输入，则开始搜索
        只匹配字符串开头
            如果原来在第一层，没展开的第二层内容不管
            如果原来在第二层，只搜索同一层的内容
    
    三组列表
        （单层列表、双层列表、双层可收缩列表。虽然同一时间，只显示一个列表）
        切换列表时，一些选项，列表在切换时，稍微同步一下
    
    列表
        在搜索栏处，输入字符，按 向上的箭头↑ 或 向下的箭头↓，向上 或 向下 搜索 跳转
            只配匹 id （kof97 、kov 、…… 等）
            只配匹开头：比如 kof 能 配匹 kof97；但 97 不会 配匹 kof97
    
    点击分类目录，分类切换时，偿试定位之前选择的游戏
        在菜单中，可以开启、关闭
        默认关闭
    
    等等 ......
    
v.2.1
    瘦身功能:
        菜单 → 目录 → 瘦身
        菜单 → 游戏列表 → 瘦身
            有待测试
    
    搜索：
        菜单 → 游戏列表 → 搜索设置
            默认的搜索范围： ID + 列表全部列
            默认忽略大小写
                忽略大小写 可以 取消
                可以限制搜索范围
    
    原来：回车，进入游戏
    添加：Ctrl + 回车，进入游戏，不隐藏 UI
    
    原来：数字 1-9 键，多模拟器，快捷键
    添加: 0 键
    添加: Ctrl + 数字，启动 时 不隐藏 UI
    
    原来：搜索 文字输入框 处，按 回车，搜索
    添加：搜索 文字输入框 处，按 Ctrl + 回车，正则搜索
    
    原来：列表，右键菜单，导出 仅 ID
    添加：列表，右键菜单，导出 详细
    
    列表，鼠标右键菜单，可以点击复制文字
        id
        英文
        译文
        SL 的 alt title
        以及当前 所在 单元格的文字
    
    列表翻译批量导入的工具，此功能没有加到 UI 当中，另外使用一下。
        源代码 gamelist_translation_tool 文件夹，仅 源代码 上传了 github
        因为 翻译资源 都是别人的 ，我只是拿过来调整一下格式，翻译资源 没有上传 github
        PPXCLUB 贴子 2 楼，有 收集的 翻译资源
    
    系统问题
    python 3.7 之后的，应该没啥。
    python 3.7 之前的，tkinter 界面，字符不能超 U+0000-U+FFFF 。
        一般的字符都不会超。
        但，之前自己整理 nes 列表时，有一个 蚯蚓吉姆 的，姆打字成虫字旁的𧉯，不小心就超了，列表显示就 bug 了。
        处理一下：
            python 老版本，游戏列表导入翻译时，如果有超过的字符，则显示为 unicode 码点，比如 𧉯 显示为 U+2726F 。
    
    等等 ......

v.2.0.3 :
    PPXCLUB 49楼，s1w27345 ，反应有问题，sl 初始化时。
    我用他说的版本，试了一下，没有发现什么。
    但是换更早的 0.162 ，初始化时，确实有点问题，
    但和 s1w27345 反应的 是不是 相同的问题，不好说。
    解决 0.162 初始化 的 问题。
        在解析 xml 中，需要得到的是 文本，但 xml.etree.ElementTree.Element.text 有可能反回值为 None 。
    
    和此差不多的，解析 xml ，有没有可能有其它的意外，
    比如 id 是大写？ id 前后有空格 ？
    应该没有什么问题，到现在也没有看到有什么问题，但谁知道呢。
    id 最重要 稍微处一下吧，其它就不管了。
    
    看到了一条 Pillow 的提示
    DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01).
    Use Resampling.BILINEAR instead.
    虽然目前还没有出 Pillow 10 ，但还是改一下吧
    
    既然试了一下 0.162 版 SL
    命令行中
    mame.exe nes smb1
        这样能打开来
    mame.exe nes -cart nes:smb1
        这样能打开来
    mame.exe nes nes:smb1
        这样不能；但 新版本 能
    SL 的 几个 配置样本 文件，(.jjui\emu_sl\*\*.txt)，稍微改一下，以适应 老的 0.162 等

2023-01-09：
    仅更新列表，software list 列表，其中 的 FC ／ NES 部分的列表。

v.2.0.2
    2023-01-05
    
    v2.0.1 发现个比较明显的问题，启动时，如果周边启动是文本区，那么 图片区 分隔条 位置 不正确。
    紧急修理一下

v2.0.1
    2023-01-03

之前的
    大都记不得了
    
    用户群体少，提意见的人也很少。
    PPXCLUB 贴子里 有几条意见。
    PPXCLUB 的 lanyer 在 QQ 里，提过许多意见。
