## 这是 AquaMai 的 TOML 配置文件

## 

## - 井号 # 开头的行为注释，被注释掉的内容不会生效

##     - 为方便使用 VSCode 等编辑器进行编辑，被注释掉的配置内容使用一个井号 #，而注释文本使用两个井号 ##

## - 以方括号包裹的行，如 [OptionalCategory.Section]，为一个栏目

##     - 将默认被注释（即默认禁用）的栏目取消注释即可启用

##     - 若要禁用一个默认启用的栏目，请在栏目下添加「Disabled = true」配置项，删除它/注释它不会有效

## - 形如「键 = 值」为一个配置项

##     - 配置项应用到其上方最近的栏目，请不要在一个栏目被注释掉的情况下开启其配置项（会加到上一个栏目，无效）

##     - 当对应栏目启用时，配置项生效，无论是否将其取消注释

##     - 注释掉的配置项保留其注释中的默认值，默认值可能会随版本更新而变化

## - 该文件的格式和文字注释是固定的，配置文件将在启动时被重写，无法解析的内容将被删除

## 

## 试试使用 MaiChartManager 图形化配置 AquaMai 吧！

## https://github.com/clansty/MaiChartManager

Version = "2.2"

## AquaMai 的通用设置
[General]
## Mod 界面的语言，支持 en 和 zh

## 如果为空，将使用系统语言

## 配置文件也将以此语言保存
Locale = "zh"

## 使用自定义字体作为回退（解决中文字形缺失问题），或完全替换游戏原字体
[GameSystem.Assets.Fonts]
## 字体路径

## 使用分号分隔多个路径以构成 Fallback 链

## 默认为微软雅黑 Bold
#Paths = "%SYSTEMROOT%/Fonts/msyhbd.ttc"
## 将自定义字体作为游戏原字体的回退，尽可能使用游戏原字体
#AddAsFallback = true

## 加载所有存在的 .ab 图片资源（无视 AssetBundleImages.manifest）

## 导入了删除曲包之类的话，应该需要开启这个
[GameSystem.Assets.LoadAssetBundleWithoutManifest]

## 从指定目录下加载资源图片（自制谱用）
[GameSystem.Assets.LoadLocalImages]
#ImageAssetsDir = "LocalAssets"

## 自定义歌曲游玩界面背景
## 优先级: 首先读游戏自带 PV, 然后读本地 mp4 格式 PV, 最后读封面
[GameSystem.Assets.MovieLoader]
## 加载游戏自带的 PV
#LoadSourceMovie = true
## 从 LocalAssets 中加载 MP4 文件作为 PV
#LoadMp4Movie = false
## 加载 MP4 文件的路径
#MovieAssetsDir = "LocalAssets"
## 用封面作为背景 PV
## 请和 `LoadLocalImages` 一起用
JacketAsMovie = true

## 使用 ADX HID 固件的自定义输入（如果你没有使用 ADX 的 HID 固件，请不要启用。启用时请务必删除现有 HID 相关 DLL）
#[GameSystem.AdxHidInput]

## 使用自定义的摄像头 ID 而不是默认的

## 启用后可以指定游戏使用的摄像头
#[GameSystem.CustomCameraId]
## 启动时打印摄像头列表到日志中，可以作为修改的依据
#PrintCameraList = false
## DX Pass 1P
#LeftQrCamera = 0
## DX Pass 2P
#RightQrCamera = 0
## 玩家摄像头
#PhotoCamera = 0
## 二维码扫描摄像头
#ChimeCamera = 0

## 去除并隐藏游戏中的倒计时
[GameSystem.DisableTimeout]
## 也移除刷卡和选择模式界面的倒计时
#InGameStart = true

## 启用或禁用 IO4 和 DebugInput。配置 DebugInput 的按键映射。

## DebugInput 与 IO4（兼容 IO4 板 / segatools IO4 模拟）独立工作。

## （你应该至少启用一个输入源，除非你使用其他输入方案如 AdxHidInput。）
[GameSystem.KeyMap]
## 禁用 IO4（兼容 IO4 板 / segatools IO4 模拟）输入。

## 在禁用 IO4 输入后，你的兼容 IO4 板或 segatools IO4 模拟将被忽略。
#DisableIO4 = false
## 禁用 DebugInput，下列按键映射将不起作用。

## 在禁用 DebugInput 后，你需要兼容 IO4 板、segatools IO4 模拟或其他自定义输入方案才能游玩。

## 如果使用 IO4 模拟，你可以在 segatools.ini 的 [io4] 和 [button] 部分配置按键映射。
#DisableDebugInput = false
#Test = "ScrollLock"
#Service = "Pause"
#Button1_1P = "W"
#Button2_1P = "E"
#Button3_1P = "D"
#Button4_1P = "C"
#Button5_1P = "X"
#Button6_1P = "Z"
#Button7_1P = "A"
#Button8_1P = "Q"
#Select_1P = "Alpha3"
#Button1_2P = "Keypad8"
#Button2_2P = "Keypad9"
#Button3_2P = "Keypad6"
#Button4_2P = "Keypad3"
#Button5_2P = "Keypad2"
#Button6_2P = "Keypad1"
#Button7_2P = "Keypad4"
#Button8_2P = "Keypad7"
#Select_2P = "KeypadMultiply"

## 按住下方四个按钮（3456）快速重开本局游戏（像在 Freedom Mode 中一样，默认仅对非宴谱有效）
[GameSystem.QuickRetry]
## 在宴谱中强制启用
#EnableInUtage = false

## 如果你在用未经修改的客户端，会默认加密到服务器的连接，而连接私服的时候不应该加密

## 开了这个选项之后就不会加密连接了，同时也会移除不同版本的客户端可能会对 API 接口加的后缀

## 正常情况下，请保持这个选项开启
[GameSystem.RemoveEncryption]

## 单人模式，不显示 2P

## 同时为鼠标输入启用半径，以获得更真实的触摸屏体验
[GameSystem.SinglePlayer]
## 只显示主区域，不显示副屏
#HideSubMonitor = false
## 单人模式下刷卡登录直接进入下一个界面，无需跳过倒计时
#AutoSkip = true
## 修复单人模式下的烟花效果（如果启用了 HideHanabi，则会自动禁用）
#FixHanabi = true
## 触摸区域半径大小。请根据手指大小调整，可以去 Test 中测试
#Radius = 25.0
## 显示触摸点（仅限触屏输入）
#DisplayArea = false

## 音频独占与八声道设置
#[GameSystem.Sound]
## 是否启用音频独占
#EnableExclusive = false
## 是否启用八声道
#Enable8Channel = false

## 启用后，测试键必须长按才能进入游戏测试模式

## 当测试键被绑定到其它功能时，此选项自动开启
#[GameSystem.TestProof]

## 调整触摸屏串口波特率，默认值 9600

## 需要硬件配合，如果你不清楚你是否可以使用，请不要使用
#[GameSystem.TouchPanelBaudRate]
## 波特率
#BaudRate = 9600

## 映射触摸操作至实体按键
#[GameSystem.TouchToButtonInput]

## 解锁原本锁定（包括正常途径无法解锁）的游戏内容

## 由本 Mod 解锁的内容（除了被你升级过的角色以外）不会上传到你的账户

## 游玩时仍会像未开启解锁一样「获得」那些乐曲/收藏品/段位
#[GameSystem.Unlock]
## 解锁游戏里所有的区域，包括非当前版本的（并不会帮你跑完）
#Maps = true
## 解锁所有乐曲，并跳过紫/白解锁画面（会正常保存解锁状态）
#Songs = true
## 解锁游戏里所有可能的跑图券
#Tickets = true
## 解锁所有段位模式的段位（不需要十段就可以打真段位）
#Courses = false
## 不需要万分也可以进宴会场
#Utage = true
## 解锁所有称号
#Titles = false
## 解锁所有头像
#Icons = false
## 解锁所有姓名框
#Plates = false
## 解锁所有背景
#Frames = false
## 解锁所有搭档
#Partners = false
## 解锁所有旅行伙伴
#Characters = false

## 分辨率设置 / 窗口化
#[GameSystem.Window]
## 窗口化游戏
#Windowed = false
## 宽度（和高度）窗口化时为游戏窗口大小，全屏时为渲染分辨率

## 如果设为 0，窗口化将记住用户设定的大小，全屏时将使用当前显示器分辨率
#Width = 0
## 高度，同上
#Height = 0

## 设置游戏为付费游玩（锁定可用点数）或免费游玩
[GameSettings.CreditConfig]
## 是否免费游玩（设为 false 时为付费游玩）
IsFreePlay = false
## 锁定可用点数数量（仅在付费游玩时有效），设为 0 以禁用
LockCredits = 24

## 如果要配置店内招募的话，应该要把这个关闭
[GameSettings.ForceAsServer]

## 全局调整 A/B 判（单位和游戏里一样）或增加触摸延迟
#[GameSettings.JudgeAdjust]
## 调整 A 判
#A = 0.0
## 调整 B 判
#B = 0.0
## 增加触摸延迟
#TouchDelay = 0

## 使用自定义触摸灵敏度

## 这里启用之后 Test 里的就不再起作用了

## 这里禁用之后就还是用 Test 里的调

## 

## 在 Test 模式下调整的灵敏度不是线性的

## A 区默认灵敏度 90, 80, 70, 60, 50, 40, 30, 26, 23, 20, 10

## 其他区域默认灵敏度 70, 60, 50, 40, 30, 20, 15, 10, 5, 1, 1

## Test 里设置的 0 对应的是 40, 20 这一档，-5 是 90, 70，+5 是 10, 1

## Test 里的数字越大，这里的数字越小，对于官机来说，灵敏度更大

## 而 ADX 的灵敏度是反的，所以对于 ADX，这里的数字越大，灵敏度越大
#[GameSettings.TouchSensitivity]
#A1 = 40
#A2 = 40
#A3 = 40
#A4 = 40
#A5 = 40
#A6 = 40
#A7 = 40
#A8 = 40
#B1 = 20
#B2 = 20
#B3 = 20
#B4 = 20
#B5 = 20
#B6 = 20
#B7 = 20
#B8 = 20
#C1 = 20
#C2 = 20
#D1 = 20
#D2 = 20
#D3 = 20
#D4 = 20
#D5 = 20
#D6 = 20
#D7 = 20
#D8 = 20
#E1 = 20
#E2 = 20
#E3 = 20
#E4 = 20
#E5 = 20
#E6 = 20
#E7 = 20
#E8 = 20

## 防止因错误认为 AimeDB 服务器问题引起的灰网，建议开启
[Tweaks.IgnoreAimeServerError]

## 强制设置帧率上限为 60 帧并关闭垂直同步

## 如果你的游戏没有问题，请不要使用
#[Tweaks.LockFrameRate]
## 目标帧率，不建议修改。除非你知道你在做什么
#TargetFrameRate = 60

## 重置触摸面板
#[Tweaks.ResetTouch]
## 玩完一首歌自动重置
#AfterTrack = false
## 按键重置
#Key = "None"
#LongPress = false

## 原先如果你的账号版本比当前游戏设定的版本高的话，就会不能登录

## 开了这个选项之后就可以登录了，不过你的账号版本还是会被设定为当前游戏的版本
[Tweaks.SkipUserVersionCheck]

## 登录完成后直接进入选歌界面
#[Tweaks.TimeSaving.EntryToMusicSelection]

## 跳过“不要大力拍打或滑动哦”这个界面，数据一旦加载完就立马进入下一个界面
#[Tweaks.TimeSaving.IWontTapOrSlideVigorously]

## 跳过登录 / 注册游戏时候可能的 “发现了新的区域哟” “乐曲增加” “有活动哟” 之类的提示
[Tweaks.TimeSaving.SkipEventInfo]

## 跳过游戏结束的「再见」界面
#[Tweaks.TimeSaving.SkipGoodbyeScreen]

## 在自检界面，每个屏幕结束的时候都会等两秒才进入下一个屏幕，很浪费时间

## 开了这个选项之后就不会等了
[Tweaks.TimeSaving.SkipStartupDelays]

## 跳过 SDEZ 启动时的 WARNING 界面
#[Tweaks.TimeSaving.SkipStartupWarning]

## 跳过乐曲开始界面
#[Tweaks.TimeSaving.SkipTrackStart]

## 在选曲界面一键隐藏所有自制谱，或对一部分用户进行隐藏
#[UX.HideSelfMadeCharts]
## 登录时默认隐藏自制谱
#DefaultHide = false
## 切换自制谱显示的按键
#Key = "Test"
#LongPress = false
## 该文件中每行一个用户 ID，当这些用户登录时隐藏自制谱
#SelfMadeChartsDenyUsersFile = "LocalAssets/SelfMadeChartsDenyUsers.txt"
## 该文件中每行一个用户 ID，只有这些用户登录时才显示自制谱
#SelfMadeChartsWhiteListUsersFile = "LocalAssets/SelfMadeChartsWhiteListUsers.txt"

## 打完一首歌的时候立即向服务器保存成绩
[UX.ImmediateSave]

## 在游戏总结的计分板中显示击打误差的详细信息（以帧为单位）
#[UX.JudgeAccuracyInfo]

## 一键跳过登录过程直接进入选歌界面，或在选歌界面直接结束本局游戏
[UX.OneKeyEntryEnd]
Key = "Service"
LongPress = true

## 在游戏中途一键重试（1.30+）或跳过当前谱面
[UX.OneKeyRetrySkip]
RetryKey = "Service"
RetryLongPress = false
SkipKey = "Select1P"
SkipLongPress = false

## 练习模式
#[UX.PracticeMode]
## 显示练习模式 UI 的按键
#Key = "Test"
#LongPress = false

## 音符结束之后显示像 AstroDX 一样的「跳过」按钮
#[UX.QuickEndPlay]

## 选歌界面显示选择的歌曲的详情
#[UX.SelectionDetail]
## 显示友人对战目标分数
#ShowBattleAchievement = false

## 显示帧率
#[Utils.DisplayFrameRate]

## 将网络请求输出到 MelonLoader 控制台
#[Utils.LogNetworkRequests]
#Url = true
#Request = true
#RequestOmittedApis = "UploadUserPhotoApi,UploadUserPortraitApi"
#Response = true
#ResponseOmittedApis = "GetGameEventApi"
## 仅输出出错的响应，不输出成功的响应
#ResponseErrorOnly = false

## 登录时将 UserID 输出到日志
#[Utils.LogUserId]

## 在游戏中显示错误日志窗口而不是关闭游戏进程
[Utils.ShowErrorLog]
## 使用新版错误报告生成器
#UseNewErrorHandler = true

## 出现灰网时显示原因
[Utils.ShowNetErrorDetail]

## 自定义按钮贴图
## 从指定目录加载按钮贴图
#[Fancy.CustomButton]
## 按钮贴图的目录
#ButtonDir = "LocalAssets/Buttons"

## 自定义中间和右上角的 "CREDIT(S)"（可用点数）文本
#[Fancy.CustomCreditsString]
## 用于替换 "CREDIT(S)" 的自定义文本，留空则为空白
#CreditsString = ""
## 隐藏 "CREDIT(S)" 后的可用点数数量
#HideCreditsNumber = true

## 用自定义的图片替换「SEGA」和「ALL.Net」的标志
#[Fancy.CustomLogo]
## 从此目录中随机选择一张 PNG 图片用于「SEGA」标志
#SegaLogoDir = "LocalAssets/SegaLogo"
## 从此目录中随机选择一张 PNG 图片用于「ALL.Net」标志
#AllNetLogoDir = "LocalAssets/AllNetLogo"

## 自定义拍照的店铺名称

## 同时在 SDGA 中会启用店铺名称的显示（但是不会在游戏里有设置）
#[Fancy.CustomPlaceName]
#PlaceName = ""

## 提供自定义皮肤的能力（高级功能）

## 从自定义路径中加载皮肤贴图
#[Fancy.CustomSkins]
#SkinsDir = "LocalAssets/Skins"

## 自定义在歌曲开始界面上显示的难度贴图 (并不是真的自定义难度)

## 需要启用自定义皮肤功能

## 会通过自定义皮肤加载四个图片资源: musicBase, musicTab, musicLvBase, musicLvText
#[Fancy.CustomTrackStartDiff]

## 把右上角的版本更改为自定义文本
#[Fancy.CustomVersionString]
#VersionString = ""

## 在闲置时的演示画面上播放紫谱而不是绿谱
[Fancy.DemoMaster]

## 让圆弧形的 Slide 的判定显示与判定线精确对齐 (原本会有一点歪)

## 就像 majdata 里那样
#[Fancy.GamePlay.AlignCircleSlideJudgeDisplay]

## 这个 Patch 让 BreakSlide 的 Critical 判定也可以像 BreakTap 一样闪烁

## 推荐与自定义皮肤一起使用 (否则视觉效果可能并不好)
#[Fancy.GamePlay.BreakSlideJudgeBlink]

## 自定义 Note 类型
#[Fancy.GamePlay.CustomNoteTypes]

## 在歌曲开始界面, 把 TRACK X 字样, DX/标准谱面的显示框, 以及画面下方的滴蜡熊隐藏掉

## 录制谱面确认用
#[Fancy.GamePlay.DisableTrackStartTabs]

## 增加更多待命的音符贴图，防止奇怪的自制谱用完音符贴图池
#[Fancy.GamePlay.ExtendNotesPool]
## 要增加的对象数量
#Count = 128

## 这个 Patch 让 WiFi Slide 的判定显示有上下的区别 (原本所有 WiFi 的判定显示都是朝向圆心的), 就像 majdata 里那样

## 这个 bug 产生的原因是 SBGA 忘记给 WiFi 的 EndButtonId 赋值了
#[Fancy.GamePlay.FanJudgeFlip]

## 完全隐藏烟花
#[Fancy.GamePlay.HideHanabi]

## 更精细的判定表示

## 需开启 CustomSkins 并下载资源文件

## https://github.com/hykilpikonna/AquaDX/releases/download/nightly/JudgeDisplay4B.7z
#[Fancy.GamePlay.JudgeDisplay4B]

## 让 AutoPlay 的随机判定模式真的会随机产生所有的判定 (精确到子判定)

## 原本的随机判定只会等概率产生 Critical, LateGreat1st, LateGood, Miss(TooLate)

## 这里改成三角分布产生从 Miss(TooFast) ~ Critical ~ Miss(TooLate) 的所有 15 种判定结果

## 当然, 此处并不会考虑原本那个 Note 是不是真的有对应的判定 (比如 Slide 实际上不应该有小 p 之类的)
#[Fancy.GamePlay.RealisticRandomJudge]

## 使 Slide Track 消失时有类似 AstroDX 一样的向内缩入的动画
#[Fancy.GamePlay.SlideArrowAnimation]

## 让星星在启动拍等待期间从 50% 透明度渐入为 100%，取代原本在击打星星头时就完成渐入
#[Fancy.GamePlay.SlideFadeInTweak]

## 反转 Slide 层级, 使新出现的 Slide 像旧框一样显示在上层

## 启用以支持通过叠加多个星星达成的变色效果
#[Fancy.GamePlay.SlideLayerReverse]

## 推迟了歌曲开始界面的动画

## 录制谱面确认用
#[Fancy.GamePlay.TrackStartProcessTweak]

## 移除游戏画面的圆形遮罩
#[Fancy.HideMask]

## 在配置的目录下放置了旧版游戏的 Mai2Cue.{acb,awb} 并重命名的话，可以在播放游戏 BGM 的时候随机播放这里面的旧版游戏 BGM

## 无法在 2P 模式下工作
#[Fancy.RandomBgm]
#Mai2CueDir = "LocalAssets/Mai2Cue"

## 在一定时机执行命令的触发器
#[Fancy.Triggers]
## 在游戏闲置的时候执行指定的命令脚本

## 比如说可以在游戏闲置是降低显示器的亮度
#ExecOnIdle = ""
## 在玩家登录的时候执行指定的命令脚本
#ExecOnEntry = ""
