惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
V2EX - 技术
V2EX - 技术
Webroot Blog
Webroot Blog
Google Online Security Blog
Google Online Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
AI
AI
N
News and Events Feed by Topic
S
Secure Thoughts
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Cloudflare Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
Vercel News
Vercel News
V
Vulnerabilities – Threatpost
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
人人都是产品经理
人人都是产品经理
I
Intezer
Schneier on Security
Schneier on Security
Martin Fowler
Martin Fowler
J
Java Code Geeks
K
Kaspersky official blog
H
Heimdal Security Blog
O
OpenAI News
I
InfoQ
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
Hacker News - Newest:
Hacker News - Newest: "LLM"
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
S
Security @ Cisco Blogs
Security Latest
Security Latest
PCI Perspectives
PCI Perspectives
H
Hacker News: Front Page
C
CERT Recently Published Vulnerability Notes
博客园_首页
The Last Watchdog
The Last Watchdog
罗磊的独立博客
L
LINUX DO - 热门话题
U
Unit 42
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Scott Helme
Scott Helme

保罗的小宇宙

奇趣影棚项目 Vibe Coding 第一天问题记录 失业后的一次前端面试经历 威联通 NAS 使用 CloudFlared 远程访问 记一次被街头诈骗的经历 记一次升级 Nuxt 4 的诡异问题 记一次移动端 Safari 调试踩坑 记一次装机没有一次点亮的排查过程 2024 年终总结 该写好代码吗?写好了也可能变得不好了 排查了一个导致页面白屏的问题 从零开始部署 Ubuntu 服务器环境 使用 Docker 自动化部署的 NextJS 镜像大小优化
将 MO3 音乐导出成 WAV/MP3/OGG 等格式
2025-08-31 · via 保罗的小宇宙

近期开始回忆杀状态,在 Steam 上购买并游玩了一些以前玩过的经典小游戏,其中包括来自 PopCap 宝开出品的《吞食鱼:2》。

可能人老了吧,新的游戏都玩不动了,要么烧脑要么太肝,还是这种休闲小游戏玩法简单又上头!

当时这部作品也有人将它翻译成《大鱼吃小鱼》,其中“吞食鱼”这个说法来源自《幻想游戏》系列。它也推出过很多“不同版本”的续集(其实就是一个整合包),汇聚了很多来自不同厂商的休闲游戏。

吞食鱼 2.webp

游戏玩到了,BGM 也在反复洗脑了,那么如何将游戏里面的音乐提取出来继续听呢。了解博主过去黑历史的朋友应该知道,当时老喜欢用各种方式去提取各种游戏的资源素材了,其中《摩尔庄园》、《疯狂农场》等游戏都是我的常顾对象,收集各种游戏的 BGM 并且偶尔拿出来播放算是我的一个小众爱好。

我找到了当年的一些素材提取工具(文件的修改日期为 2015 年,实际可能更早),其中有一款工具叫做 XMPlay,它可以用于 MO3 音乐的播放和提取。

MO3 是一种音频文件格式,主要用于模块化音乐,类似于其他 MOD 格式(如 IT、XM、S3M 等)。它由 Ian Luck 为 BASSMOD 引擎开发,MO3 文件的一个显著特点是它使用 MP3 或 Ogg Vorbis 格式来编码音频样本,这使得文件体积相对较小,同时能够保持较高的音质

参考:MO3 是什么格式,为什么现在几乎没人使用了

对于模块化音乐,我的理解就是它将每一个音乐节拍的声音都作为一个片段存储,播放过程则是将所有片段循环复用,有点类似于 MID 音频格式,但是 MID 格式外放出来的音色受操作系统、播放软件等的影响较大

时隔已久,我甚至都忘记了当年是怎么使用它提取音乐了,一番研究后总算是找到了办法。

顺带一提,我 Google 之后得到的结果往往都是要你付费购买某些软件,几乎没什么中文文章提到过这些东西,看来确实有些小众啊,那么我就水一篇文章简单记录一下

首先从 un4seen 下载并打开 XMPlay 播放器,这里我使用的旧版本,界面稍微比较复古。

XMPlay 播放器界面.webp

正常打开一首 MO3 音乐播放(吞食鱼游戏目录下有个 music 文件夹里面就是),此时从播放器主界面右键 -> Options -> Output -> Output Device 选择 "WAV Writer" -> Apply

XMPlay 播放器导出界面.webp

此时点击音乐播放按钮,就会弹出对应的另存为界面,依次确认导出,所有的音乐都会导出成功。

如果想直接导出成 mp3、flac 和 ogg 格式,则需要下载对应的 CLI 工具,比如 Output Device 选择 "Encoder - LAME" 则是导出 mp3,需要先使用 winget 安装 lame 编码器

winget install lame
如果导出的音乐存在部分内容丢失或中断的情况,可能是因为你在播放器已经开始播放了,点击“停止播放”按钮再试一次即可

目前博主已知使用 MO3 格式作为背景音乐解决方案的游戏包括:

  • 吞食鱼:2(Feeding Frenzy)
  • 幻幻球(Peggle)
  • 仓鼠球(Hamster Ball)

理论上多数同期游戏都采用了这个方案,性价比特别高,比存储完整的 MP3、OGG 等格式都小,保真度还高。可惜从宝开《植物大战僵尸》等作品开始,都采用了 PAK 打包普通的音乐格式,此方案不再流行,也算是时代的眼泪了吧!

Paul

Paul

特立独行的一只前端菜狗。本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?同时欢迎订阅关注 我的日记,唠嗑(分享)每日的折腾经历。