じぇみに広野氏が語るMSX2ソフトの開発技術

元コンパイルの開発者、じぇみに広野氏(@jeminilog/@kopandacco)が語るMSX2ソフトの開発技術に関するツイートをまとめました。
22
MSX研究所長 @yoshimatsuTUQ

メインでちゃんと作ったのが2本だけ!しかも片方がアレスタ2!凄い人は凄いんだ、という他ない。

2014-08-08 22:06:42
ぱんどら @kopandacco

@yoshimatsuTUQ 別にMSX2をほかに触ってないわけじゃないんですが、アレスタとか真ゴルベリアスは手伝っただけなんでカウントせんかったと。(えーとあと何があったっけ)

2014-08-09 00:33:34
ゾルゲ市蔵 @zolge1

アレスタ2と言えば三角オプションがよかった。計算の都合らしいけど見た目もよくって他で使われなかったのが残念だ。あと1面の寄生された飛行機もいいビジュアルだ。

2014-08-08 22:37:27
ぱんどら @kopandacco

@zolge1 いえ( ̄▽ ̄)3の倍数ってコンピューターとちっとも相性がよくないので、あれは単に「毎回円形じゃ面白くない!」と逆らってみた結果です。結局パワスト2では妥協?して円形に戻っちゃったという。

2014-08-09 00:28:39
ぱんどら @kopandacco

@zolge1 ああでも、そうか・・・気に入ってくれた人がちゃんといたと。意地張った甲斐が少しでもあったんですね・・・。よし!次は五角形オプショ(やめなさい

2014-08-09 00:53:14
ゾルゲ市蔵 @zolge1

@kopandacco そうですか!当時何かの記事で、「オプションを丸く動かすより三角のほうが少しでも処理を稼げる…」みたいな文章を読んだ記憶があって、長らくそれで三角なのだと思ってました。情報ありがとうございます。

2014-08-09 07:06:33

じぇみに @jeminilog

そういえばMSX2版ZANACの時、開発期間が短かったのもあって相当苦労したのだけど(当初予定では一か月だけど、それはさすがに無理でした。そういえば直前までZANACじゃなくて「妖魔戦記」という別のシューティングゲーム作る話だったんだがなんでやろ)

2014-12-08 18:09:30
じぇみに @jeminilog

なんでかっつーとMSXに興味持ってる方なら大体ご存知の様に、MSX2はメガドラやPCエンジンの様な、8*8dotのキャラクターを敷き詰めて絵にするBGマシン(造語)じゃないのですね。フルグラフィックで描画する機械なのです。

2014-12-08 18:09:38
じぇみに @jeminilog

MSX1互換モードでは確かにBGマシンなのだけど、MSX2で追加されたモードにはBG機能がない。(はいそこ横80文字テキストモードがあったとか言わない。あれで作れるゲームと言ったらスタートレックとかフリートコマンダーになっちゃうでしょ)

2014-12-08 18:09:46
アカハナ7(フツーのキイロのクルマにノッテルオヂ㌠) @akahana7

@jeminilog ずっとMSX2にもBGあると誤解してたので、今、軽く驚いてます(;´Д`)

2014-12-08 18:14:00
じぇみに @jeminilog

@akahana7 ないのですじゃ。だもんでBASICもいちいちMSX1モードに戻ってきますね。

2014-12-08 18:16:46
じぇみに @jeminilog

正直あの時点ではPCエンジンみたいなハードにしてくれた方がゲーム開発者は20倍くらい楽だったと思うんだけど、多分なんかゲーム以外の展開に野望があったんでしょうね。スプライトもえらく貧弱なまま放置されてたし。(ある意味では改悪されてた)

2014-12-08 18:09:54
じぇみに @jeminilog

全てがフルグラフィックで、MACやWindows機に繋がる先進的な設計と言えなくもないが、逆に言うとその当時のスペックでは只の無謀とも言える。16色しかないし。でもまあ開発者は手に入れた武器で戦うしかないので仕方ない。

2014-12-08 18:10:03
じぇみに @jeminilog

あとプラス点として、98でしかできなかった様なフルグライックのゲームもMSXで一応作れるようになった。アリスソフトあたりのとか。ビデオ出力で見ると文字読めないけど。

2014-12-08 18:10:13
じぇみに @jeminilog

まあ、だからアクションゲーム作る場合は工夫が必要。CPUは決して早いとは言えない3.58MHzのZ80Aのままだったし。でもZANACの時点じゃ工夫もへったくれも、時間がなくて正攻法で(悪く言うと馬鹿正直に)作ったんで遅い遅い。

2014-12-08 18:10:25
じぇみに @jeminilog

最低仕様のVRAM64Kで動く様にしたせいも多少ある。でも正直VRAM64KのMSX2って1、2機種しか出てないはずだからあまり意味はなかったのだが。作るなよそんな半端な規格。MSX1の時もRAM8Kなんてカシオくらいしか出してないよ?

2014-12-08 18:10:33
じぇみに @jeminilog

で、何が遅いかというと、背景のパーツを8*8単位でせっせこVRAM対VRAM転送コマンドで行ってたからなんだけど、確かに同じデータ量をCPUでゴリゴリ書くよりは早いんだが、BGマシンでキャラクタ1個を書くよりは2ケタくらい遅い。

2014-12-08 18:10:40
じぇみに @jeminilog

けれどその後、例えばアレスタとかゼビウスとかはそこまで遅くはないでしょ。アレスタ2とか一応高速スクロールもしてる。どうやってるかというと、手法自体は先ほどの転送コマンドを使ってるんだけど、CPUが律儀に待たないのね。

2014-12-08 18:10:47
じぇみに @jeminilog

背景描画に必要な転送コマンドをバッファに溜め込んで、1つ発行した後は通常処理に戻って敵を動かしたり弾を動かしたり、適当に間を開けて前回のコマンドが終わってるかチェックし、終わってたら溜まってる次の転送コマンドを送る。

2014-12-08 18:10:54
じぇみに @jeminilog

VDPはほっといても動いてるから、そうやってCPUとVDPを並行処理させてるイメージ。これはアレスタ、ゼビウスを担当した国廣君(その後某社に行って広島(違)作った人)の発案。これで劇的に速度が改善した。

2014-12-08 18:11:03
じぇみに @jeminilog

@hor11 あれも最後に救いのないゲームでしたねーとあさっての方向にタゲそらし

2014-12-08 18:19:48