忘れた頃に発作のように更新するS98Player for iPhoneの新版 2.0をリリースしました。

S98Player for iPhone
S98Playerは、PC-9801シリーズ等で採用されたYAMAHA製FM音源チップ(OPN、OPNA、OPMなど)のサウンドログ(S98形式)およびPMDファイルを再生するアプリです。アルバムアート表示やループ・ランダム再生、再生音量調整機能などを備えています。また、新たにCarPlayにも対応し、車内でもチップチューンを楽しめます。主な特長:- S98(Version 1および3)、PMD形式対応- ymfmによる高品質なFM音源再現- 音源ごとのボリューム調整(FM音源・SSG音源・リズム音源・ADPCM音源)- ランダム再生・アルバム単位でのループ再生- CarPla…
主な更新内容
- FM音源シミュレーションをfmgenからymfmに変更:
- 音質の再現性が向上しました。一方でCPUの処理能力が以前より多く必要になったため、電池の持ちに影響を与えるかもしれません。
- UIを全面的に刷新:
- アルバムごとに楽曲を整理し、管理しやすくなりました。
- これまで画面上部にあった操作エリアを画面下部にミニプレイヤーとして配置し、操作性を向上させました。
- アルバムアートの表示が可能になりました。
- カスタマイズ機能の強化:
- S98およびPMDそれぞれで、FM音源・SSG音源・リズム音源・ADPCM音源の個別ボリューム調整に対応しました。
- アルバムごとのボリューム調整も、アプリ内で行えるようになりました。
- アルバム名やアルバムアートを自由に変更できるようになりました。
- ランダム再生やアルバム単位でのループ再生機能を追加しました。
- CarPlayに対応
- アプリの安定性向上:
- 向上したはず、多分…。
過去バージョンからの変更点
- イコライザー機能を削除:あまり使われることがなかったと思います。
- ルートディレクトリ直下のファイル読み込み:従来ルートディレクトリ直下のファイルもロードしていましたが、今回からはルートディレクトリ直下のS98やPMDファイルはロードされません。アルバムごとの整理・再生管理をより明確にするため、必ずアルバムごとにフォルダを作成し、そこにファイルを格納してください。
- Settings.plistの扱いを一部修正:以前のバージョンでは、PMDの各音源の音量を設定ファイル内で指定する方法を紹介しましたが(以前の記事を参照)、新バージョンではアプリ内で直接音量設定ができるようになったため、設定ファイル内の表記を調整しました。
- 必要OSバージョンの変更:今回はiOS16.6以降としました。大幅にバージョンが上がってしまい申し訳ありません。
音量調整に関するTips
S98の音量調整
YM2608はPC-98やPC-88で広く利用されましたが、機種ごとにFM音源とSSG音源のバランスが異なります。
設定画面で全体の音量調整が可能ですが、PC-98向けログとPC-88向けログが混在すると、どうしてもバランス調整が難しくなります。その場合、全体の設定は多く含まれる機種向けとし、少ない機種はアルバム単位で個別調整することをおすすめします。
- 推奨バランス例:
- PC-98: FM 0, SSG -20〜-18
- PC-88: FM 0, SSG -12〜-10
- PC-8001: FM 0, SSG -10〜-8
PMDの音量調整
PMDは基本的にPC-98をターゲットにしたものですが、ゲームごとにPMDドライバ起動時に独自の音量設定をしているケースがあり、それを反映しないと音のバランスが崩れてしまいます。
一番正確なのは各ゲームのBATファイルを見る方法ですが、それが難しい場合、hootの設定ファイルを参考にするとよいかもしれません。
S98/PMDのサンプルデータについて
チップチューンを楽しんでみたいものの、手元にS98やPMDファイルを持っていない…という方もいらっしゃると思います。サンプルデータを公開されているサイトをいくつかご紹介します。
- GIMIC
- OPNAやOPMのサンプルファイルが置かれています。OPMのサンプルファイルは、OPNAとは異なる音色を楽しめます。
- Re:birth
- 梅本さんの曲などが配布されています。YM2608のADPCMを活用したS98も多くあり、表現の幅を楽しめます。
- 東方幻想懐古曲
- 東方の旧作データが公開されています。
まとめ
というわけで、S98Player for iPhone 2.0リリースのお知らせでした。前回は4年前、初版は15年前という、改めて見るととんでもなく古いアプリです…。
今バージョンの実装は、過去のコードが散逸してしまったこともあり、多くはスクラッチからの実装になっています。その際に役に立ったのがClaude CodeによるAI vibe codingです。vibe codingの知見も少し貯まってきましたので別エントリで紹介しようと思います。
コメント