Skip to content

Releases: OakRoller/3Danmu

v1.1.0

Choose a tag to compare

@OakRoller OakRoller released this 01 Aug 14:22

新功能

以下几项来自社区 PR,感谢贡献:

  • 分 P 选集。多 P 视频点进去直接播第一 P,不再先问一遍。要换集时,
    播放页下屏左下角的按钮是「选集」——上屏视频照常播,下屏滑动翻找、点按切换。
  • 画面比例。自动 / 16:9 / 9:16 / 4:3 / 1:1 / 3:2 / 4:5,当场生效并记住。
    想去掉上下黑边、或者把竖屏片撑大时用。
  • 弹幕显示与弹幕范围。弹幕可覆盖全屏 / 1/2 / 1/4 / 1/8 屏(从顶部往下算),
    不想挡脸就往小调。

修复

  • 拖动进度条到接近片尾会整机崩溃。判定「已读完文件」时只认了一种返回值,
    于是读到结尾被当成断线,反复请求超出范围的数据;期间产生的残缺视频帧
    送进硬件解码器,把整台机器带走。两处都修了。
  • 每次开程序后,第一个视频不自动播放(要手动按一次播放)。HOME 挂起的
    暂停请求会一直留到下一次播放,于是刚进播放器就把自己暂停了。
  • 按 HOME 很卡,连 3DS 主界面都跟着卡。封面缓存的统计线程会一直敲文件
    系统而且从来跑不完——顺带导致 100MB 缓存上限其实从未生效过。整个删掉了。
  • 硬解降级后回不到硬解。原来只重试一次,现在按 10 秒 / 30 秒 / 60 秒试三次。
  • 空评论区一直显示「加载中」。另外「加载失败」和「真的没有评论」现在分开提示。
  • 输入法正在输入的那行字是全屏最糊的(字号写死了一个过期的值)。

改进

  • 列表加载失败会自动重试(最多 3 次,等待期间可按 B 放弃)。
  • 翻页时上屏列表保持不动,只在下屏状态条提示,不再闪一次白。
  • 输入法候选:多音节拼音时,第一个字的候选不再被挤掉;整串匹配的词只占
    开头几个。翻页也不会再漏掉候选。
  • 播放页的视频标题会滚动显示(多 P 视频的标题很长)。
  • 键盘布局上移,底排功能键更好按。
  • 设置页加了作者联系方式。

从 v1.0.1 升级:直接覆盖安装,设置和登录状态都保留。

v1.0.1 Bug Fixes

Choose a tag to compare

@OakRoller OakRoller released this 31 Jul 13:03

v1.0.1

修复

  • 扫码登录后仍显示未登录。B 站改了登录接口:凭证从跳转 URL 的参数
    挪到了响应头,旧的取法一个都取不到。全新安装的用户 100% 会撞上。
  • 登录后发不了弹幕、观看历史不同步。3DS 系统 API 一次只给得出一个
    同名响应头,读不到 bili_jct。改为自己走 TLS 取完整响应。

改进

  • 视频没声音时,播放界面会说明原因 —— 并且区分「主机缺 dspfirm.cdc」
    和「这个视频本来就没音轨」。前者要处理,后者不用。
  • 「缓冲中」改为只在真卡住时才出现。以前正常播放中也会一闪一闪。

从 v1.0.0 升级:直接覆盖安装即可,设置和登录状态都会保留。

v1.0.0 — 首个正式版

Choose a tag to compare

@OakRoller OakRoller released this 30 Jul 19:57
1b86433

3Danmu 的第一个正式版本。运行在装有自制系统的 New 3DS / New 2DS 上。

主要功能

  • MVD 硬件解码,480P 满帧 30fps(New 3DS)
  • 滚动弹幕、发弹幕、CC 字幕
  • 裸眼 3D(左右分屏片源)
  • 自带触屏拼音输入法,5 万词库,任何机型都能打中文
  • 扫码登录、历史记录、收藏夹、观看进度同步

安装

  • .cia — 用 FBI 安装,之后从主菜单直接进(推荐)
  • .3dsx — 放到 SD 卡 /3ds/,从 Homebrew Launcher 启动

⚠️ 没声音的话先 dump DSP 固件:Luma3DS 里 L + 下 + SELECT
→ Miscellaneous options → Dump DSP firmware。做一次就够,详见 README。

文件说明

文件 内容
3danmu-1.0.0-*.zip 二进制包(.3dsx / .cia / 文档 / 许可)
3danmu-1.0.0-*-src.zip 完整源码

两个包都发布是必需的 —— FFmpeg 静态链接遵循 LGPL 2.1,
分发二进制必须同时提供对应源码。

已知问题

见 README。遇到崩溃请拍下 Luma 报错页,
遇到卡死请附上 sdmc:/3ds/3danmu/trace.log 的最后十几行 ——
这两样能让定位快一个数量级。

许可

本程序静态链接了 FFmpeg(LGPL 2.1+)、
使用了 Noto Sans CJK(SIL OFL 1.1)等第三方组件。

本项目代码按 MIT 发布。


非官方项目,与哔哩哔哩、任天堂均无关联。仅供学习交流,严禁商业用途。