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

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

PC-8001版モンスターパニック(誰が知ってるんだそれは)の作者。FC版ルナボール、ZANAC、PCE版ガンヘッド、スーパーアレスタ、海外MS版パワーストライク2等のプログラマー・・・って昔のばっかで最近コレってのがないのはどうなん。このアイコンはコンパイル時代のHDDから掘り出したんだけど描いたのダレでござるか。

ぱんどら @kopandacco

趣味はPCのジャンクいじり。組んだりバラしたり壊したり(おい)エロねたもRTするのでフォローしてくださる方はご注意を。絵描きは最近復活したけど技量的にはうんまあほら。ですのでこの可愛いアイコンはのとすさん(https://t.co/5AtdySPD9l)制作なのです。


ぱんどら @kopandacco

なんかスプライトダブラーの話が流れてるので反応。ごめん、やってない。スプライトが画面の上や下に偏ると恩恵が全然ない事と、切り替え点近辺に居るスプライトは2倍登録しなきゃいけない事から、シューディングではメリットが薄いと判断し(つづく)

2014-08-08 19:38:36
ぱんどら @kopandacco

(つづき)そもそも重い処理なので、ただでさえ動作速度のシビアなMSX2でスプライト制御にこれ以上時間を割くと処理が間に合わない、というか普通に間に合ってないしって事で見送り。まあ同じ状況で実装しちゃったタイトルがあるんだからある意味理由にならんかもしれんけど。

2014-08-08 19:38:48
ゆんゆん探偵 @yunyundetective

そうそう。スプライトの偏りでダブラーの効率すごい変わるの。だからGGでスプライトダブラー実装した時は、スプライトの偏り具合に応じて動的に分割ラインを上下させる仕組みも一緒に実装してやった。

2014-08-08 19:42:51
ぱんどら @kopandacco

30フレームのゲームなら時間に割と余裕あるから、引き合ったのかもしれんね。まあメインでちゃんと作ったMSX2のゲームってZANAC-EX(納期短かったんでイマイチちゃんとできてないが)とALESTE2だけだもんなあ。

2014-08-08 19:38:57
ぱんどら @kopandacco

あまり関係ないがMSX2というか9938はスプライトを置けないY座標がある。もともと9918は画面外の特定座標(なんだっけ、0xD8あたり?)がエンドマークになってて、それ以後のスプライトは表示されなくなる。別に悪くない仕様ですよ、バッファクリア省略できるし。

2014-08-08 20:04:39
ぱんどら @kopandacco

さて9938は、縦スクロールするとスプライトも同期するという、設計者出てこいと言いたくなる珍奇な仕様がありまして。(キャプテン端末に使おうとしたから?)スクロールすると画面内にエンドマーク座標が入ってきちゃうのですよ旦那。

2014-08-08 20:04:45
NAONORI @naonori_msx

@kopandacco 9958で解消するモード付けてよ!って言いたいですよねw

2014-08-08 20:55:57
ぱんどら @kopandacco

@naonori_msx ぶっちゃけ同期しなければすべて解決なのです!

2014-08-08 21:25:23
ぱんどら @kopandacco

スプライトを設置時に縦スクロール値を引くと、時々それがエンドマーク座標になってしまい、以後のスプライトが全部消えるという案件が発生する。MSX2のレイドックの敵が時々一斉に消えちゃうのはこれが原因と推測される。

2014-08-08 20:04:52
ぱんどら @kopandacco

だから計算後にエンドマーク座標になったら-1して回避とかしました。アレスタ2とかZANAC-EXで、スクロールの遅い面で自機を放置すると、たまにぴょこっと縦に動くのがそれ。ぶっちゃけ・・・世が世ならリコールものの欠陥だよねえこれ。おおらかな時代だったというか。

2014-08-08 20:04:58
ぱんどら @kopandacco

とか書いてると「あれ、これ前に書いたっけ」な気分になってくるが、ま、いっか。

2014-08-08 20:06:04
ぱんどら @kopandacco

ちなみにMSX2でもっぱら使われてたモードでは、スプライトの縦16dotそれぞれが何色かまで全部指定しなきゃいけませんでした。他機種ならCG(キャラクタジェネレータ)で持つべき色情報を、毎回転送しなきゃならない装飾情報に頼るという悪手。

2014-08-08 20:17:37
ぱんどら @kopandacco

ほんと誰が設計したのこのチップ。小一時間問い詰めたい。あとスプライトを2枚重ねて3色を表現する機能を追加したんだから、総枚数だけ32枚のままにせず、せめて最低でも倍にするとこだろ、そこは。

2014-08-08 20:17:52
ぱんどら @kopandacco

で、MSX2のラインカラーの転送に苦しめられている方向けの小ネタ。転送したいラインカラーをVRAMの隙間にあらかじめ一式書き込んでおいて、VRAMブロック転送コマンドで必要な種類のをスプライトアトリビュートに転送するとかなり早いよ! お試しあれ!・・・誰が試すんだΣ\( ̄▽ ̄)

2014-08-08 20:18:34
MSX研究所長 @yoshimatsuTUQ

MSX2に特有の縦スクロールの「ぴょこ」は、ティアリング対策をするような人にとっては拷問だったと思う。レイドックの時は多分そういう仕様だと分からなかったんだろう。

2014-08-08 22:05:19
ぱんどら @kopandacco

@yoshimatsuTUQ むしろ予想できたら変というか(そもそもほかにBGにスプライトが同期するハードってあったのだらうか)

2014-08-09 00:34:47
MSX研究所長 @yoshimatsuTUQ

@kopandacco BGとスプライトが1ラインずれてる、というのも長らく見落としてた仕様でした。

2014-08-09 00:35:58
ぱんどら @kopandacco

@yoshimatsuTUQ それは今の今まで忘れてた気がする(ぉぃ)

2014-08-09 00:41:45