【68000】メガドライブ用ソフト開発 3本目【Z80】
クソゲー作って萎えましょう。
- ここ数年間に完成された新作ソフト -
ピエアー ソーラー (RPG)
ttp://www.piersolar.com/
Uwol- Quest For Money (アクション)
ttp://shiru.untergrund.net/software.shtml (Mega Drive の項目)
ベガー プリンス (RPG)
ttp://www.beggarprince.com/
Pringles Game (アクション)
http://68000.web.fc2.com/pringles.html VGM/XGMという呼び名が無かっただけでやってる事は同じだと思う。
音量と音程を変えられるのはその音程の音とその音量の音を全てデータとして持ってるから。
容量が使えるようになってきたから使える技術なんだけど
PCMを多用した場合今度は4MB(32Mbit)に収められるかのせめぎ合いになるから極論でもない気はする。 >>292
音量と音程を変えられるのは変換テーブルを持ってるからで、
全ての音程、音量ごとに巨大なPCMデータを抱えてるVGM/XGMとは話が違うよ。
4チャンネル合成するところが同じだけ。
さらにVGM/XGMはループも展開したログだから極端に大きいし、
ドラムみたいな各曲共通のPCMデータもそれぞれの曲データに内包される。
それを同じ扱いにするのは乱暴すぎますよ。 >>293
それだと今度はゲームで使うには処理が重くなるからゲーム内容が限定されてしまうんじゃないかと。
確かに優秀なドライバでメガドライブに可能性を見せてくれてはいるんだけど。
多分その方は自分の知ってる方なんだけど、サイズの他に処理の事にも言及していたんじゃないかな。
ダライアスのBGMを担当していて、そのプログラマとの連携もしてるから、
処理に重さについても恐らくが話を聞いてると思う。
そのプログラマはファンタジーゾーンの処理落ちで色々苦戦していたし。 >>294
もちろん処理負荷とROM容量のバランスです。
同じ人だと思うけど、PCM2チャンネル程度でPCMダメと言うのはどうかという話であって、
PCM4チャンネルで常用できると主張したいわけではないです。
MDダライアス、ファンタジーゾーンのプログラマさんもまだ伸び代のある人で、
今の彼の腕がメガドライブの限界ではない事も留意しなければならないと思います。
実際、現役時代のメガドライブでPCM複数チャンネルのBGMを鳴らしてたゲームがあるのですから。 ゲームによってはそのPCM処理が重荷になる事があるってだけ。 メガドラのスタークルーザーはZ80だけでPCM3声を音階可変させてた
重いポリゴンゲームで出来てるんだから要はプログラマーの能力次第よ
PCM1、2声くらいで重荷とかねーわ >>297
Z80を使えば68Kの負荷は減らせるけど、PCMデータがROMにある時点でそれなりの負荷がかかるよ。
MDの仕様上、DMAを使いつつPCMを鳴らす事を考えるとPCMデータをZ80のRAMにコピーする必要がある。
このコピーの間は68Kを止めるしかないから。 >>298
Z80で音階を可変させてたって話な
例えばドラムとベース音1つをZ80RAMに全部入れられれば
Z80内でベースの音階を可変、ドラムと合成してPCM2声出せる
バッファリングはそうだけどそれを行ったからってゲームにならないとは思ってないでしょ? >>299
Z80のRAMが8KBしかないから多分入らないだろうな。
綺麗に鳴らすという事を諦めれば難しい事じゃないけど。 スタークルーザーは音質悪いけど、PCM3つ分がZ80メモリに収まってるのかな? エミュでZ80のワークRAMを覗いてみたけど、プログラムは0000h-055Fhまでの1375バイトまでしか使ってなかった。
XGM/VGMはPCMの再生音質を向上させてるから負荷の掛かり方は違うと思う。
MDPLAYERでの再生だけど、歌がこのレベルで再生できるから。
https://twitter.com/CadonSnd/status/1355911464683401220
https://twitter.com/5chan_nel (5ch newer account) >>302
そのワークRAMはスタークルーザーのこと? >>303
そそ。メガドライブはZ80から68Kのメモリ空間を
32KB単位のバンク切り替えで8000h-FFFFhに呼び出す機能が有り
PCMデータはそこから読み取る方法も有るんだけど、
これだとDMA動作中はZ80を停止させる必要があるからノイジーになってしまう。
ただ、このエミュだとワークRAMだけしか覗けないからZ80がどこを参照していたのかは不明。
XGM/VGMはDMA動作中でもPCM再生を止めないようにする為に
PCMデータをワークRAMにコピーしてる。 >>304
ありがとう
68000バスをアクセスしなかったらDMA中でもZ80を使えるとか、色々あってややこしいね >>305
PCMを使うって事が当たり前になってくるとその辺りの問題がかなり大きくなってくるね。
PCMを使わなければ素直なんだけど。 元ppz8の人のメガドラ用音源ドライバー、MDZはPCMの音質がいいな
それでいてPCMの音程、音量が変更できる
頑張ればPCM複数音で音程変更できそうとの事
自作ドライバーで多重PCMで音程、音量が変更できるは今のところAMPSだけかな? 音量だけ変更可ならmdsdrvがあるね
サンプリングレートが最大17kHzくらいで2PCM
最近のgui版で3PCMになったのかな?
海外勢はPCMのノウハウがあってうらやましい ゲーム用のドライバじゃなくサウンド再生に全振りすれば結構遊べる気がしないでもない。
PCMの波形を68Kに演算させてZ80に再生を任せるとか。
ゲーム用ドライバとしてだと音質確保するには結構トリッキーなことしないとダメだから手間がかかるね。 サウンド全振りならPCM16で音程・音量可変なんてのも出来るかもね。
Stephane氏のBad Apple!!みたいなソフトウェアADPCMも可能性のひとつ。
あれは全画面アニメーションもこなしながらだけど、それであれだけ鳴らせる。 XDMだとDMAでROMが読めない期間のデータを予めZ80にワークRAMに貯めこんでるみたいだった。 トイストーリーもそのやり方だね
どうするかを考えると、そこにたどり着くんだろうな DECOのサイドポケット、68Kのクロックアップしてると音量が狂ったりするから
PCMはZ80がやってるけどBGMのFM音源への書き込みは68Kがやってるみたいだな。 >>315
多分音色変更時のレジスタ書き込みに失敗してるんだと思う。
FM音源の書き込みウェイトをBUSYフラグを使わずにクロック計算してトラック処理をしたりしてるんだろうな。
MDのクロックアップは68Kに入るクロックだけを変更してるから
FM音源やZ80へのクロックは3.58MHzのままだから音程に影響は出ないし。
68KのクロックはVDPが作り出しているんだけど通常のクロックとは別に
V_BLANK中のみ10MHzでそれ以外の期間は13MHzを出す特殊なクロックが有ってそれを利用してる。 >>316
へー、面白いな
クロックもいろいろ拾えるんだね
>BUSYフラグを使わずにクロック計算してトラック処理
Hidecadeさんが作ったドライバがビジー終了まで待つだけだったから重すぎて、
海外の人から「そんなに時間がかかるはずがない」と指摘されてたのを思い出した >>317
可変のクロックはMDのゲームの場合V_BLANKにパッドを読むゲームが多いのでかなり有効だよ。
13MHzではパッドの読み取りが失敗するけど10MHzでは間に合うから。
CPUは交換しないと多分だめだけど。 小西さんがPCM2chに挑戦し始めたな
表現力が上がっていいよね 「虚数とか社会に出ていつ使うんだよ」にセガが回答 社内勉強会用の“ガチ数学”資料公開、ゲーム開発現場で使われていた
https://nlab.itmedia.co.jp/nl/spv/2106/16/news093_0.html >>319
難しくなるのは実際にゲームに組み込んだ時なんだよな。
DMA動作時のPCM再生をどうするか。 バッファリングをいかに上手くこなせるかだな
68000側もアセンブラで書くとCより楽
MAMEのIanさんがアドバイスくれてるし、やり遂げてほしい
TOY STORYを解析するのも勉強になる >>322
SGDKはソース公開してるんじゃなかったかな? >>323
SGDKのソースも勉強になるね
小西さんはタイマポーリングにこだわると苦労するかもしれない PCM使う上でもう一つのネックになるのがFM音源の書き込みの後のウェイトかな
再生レートを上げるとFM音源のデータを書く時間も制限されるし。
音色データを書くのもPCMの生成が来ない時間を意識する必要がでてくる。 FM音源のウェイトは地味に重いんだよねぇ。
XGMドライバーはウェイト代わりに別の処理をさせてるんだっけ。
そういう仕組みは必要だね。 自分が構想してるのはZ80にPCMデータを書かせた後は
そのウェイトの間にPCMデータをROMからZ80のワークRAMに貯め込むような方法。
数回やればDMA期間中再生する為のPCMデータは貯め込めるだろうな。と。
仮に55.5KHz(PCM再生ではマックスなレート)だとすると1フレーム当たり1000バイトあると足りるから。 SGDKってwindows2000だとビルド通らないの?
ダライアスの人のサンプルエラーなるわ
XPだと通ったけど
っつか今の時代だとHUCっていうC言語のPCエンジンライブラリまであるんだね SGDKは導入だけで力尽きてまたアセンブラに戻ったしなぁ。
BMP画像をを変換してメガドラで表示させて遊んでた。 PCやスマホで描かれた15色の画像をMD用に変換してるけど
1600万色を512色に落とすのがかなり大変だわ ツイッターのドット絵師さんがローゼンメイデンを描いていたからお借りして
メガドラで表示してみた
https://i.imgur.com/MHTfLXN.jpg >>216はまだ作り続けてるのかな
ポシャったにしてもどれくらい作れてたんだろうか >>335
色々やりながらだから待ってく進んでないけどね。作るのはやめてないよ。 テラドラの写真よくあげてる人?
もしそうなら5chに費やしてる時間をちょっとでもゲーム制作にまわしてほしいぞ 勝手移植版のボンジャックとゼビウスを見て来たけどちょっとモチベーションは上がったかな。
ただ、申し訳ないがそれだけに集中していられるわけじゃないので。
キャラの動きを未だ調節してるレベル。 よくよく考えなくても
68000で動くゼビウスってゴージャスだな >>339
つっても基板だとZ80を3つ使ってるからねぇ