45

SeeNaロジックについて

たいにゃん @bugnekotinyan
前かいたかもしれないけどSeenaロジック
たいにゃん @bugnekotinyan
まず、Seenaのマップは64x64=4096なので、このなかに平均2割のブロックがあるとして800個のポリゴン処理は、当時のマシンではきついと判断して処理方法を変更。 視点からブロックにぶつかるまでサーチして、ブロックのとの距離をもとめます
たいにゃん @bugnekotinyan
ブロックの高さはすべておなじなので、後ろのブロックが見える可能性が無いのでサーチはそこで打ちきれます 距離が求まったら、高さが計算できるので高さと面の色をテーブルに保存しておきます。 このとき、 pic.twitter.com/VLPjv7Va8V
 拡大
たいにゃん @bugnekotinyan
表示エンジン側では、テーブルをもとに、縦の長方形で塗りつぶしていくことで処理を高速化します。 基本的に同じ命令なのでループにせずに展開しとび先を変えることで多少速度を稼ぎます pic.twitter.com/iSzXOGgdT0
 拡大
たいにゃん @bugnekotinyan
このとき、バイト単位で処理できるように2つセットでしょりします。 色1で高さ11、色2で高さ7を塗るときは、 色1と透明で4回、色1と色2で7回処理することでまとめて処理します pic.twitter.com/TXH0kPRtpb
 拡大
たいにゃん @bugnekotinyan
また、マップは64x64ですがリニアにはとらず、64バイトのあとは192バイト未使用で256バイト先から続きをつかいます。 これで、HレジスタがY座標LレジスタがX座標となりシフト処理が不要になります pic.twitter.com/5cHLWmrZPj
 拡大
たいにゃん @bugnekotinyan
ブロックサーチの際は、ブロックが無いエリアはとばすわけですが、これもHLレジスタから有り無しがすぐ判断できるので 小数点以下を保持しているDEレジスタを使うことなく処理できます pic.twitter.com/qduwsDT1mB
 拡大
たいにゃん @bugnekotinyan
とはいえ、ブロックがない所をとばすのにも処理なりのクロックはかかるため、 SeeNaでは、表示物が少ないほど演算処理が重くなります。 何もない所でも透明で毎回上書きしてるので、描画処理はほとんど変わりません
たいにゃん @bugnekotinyan
ちなみに、マップそのものの変化は少ないため、無印8801では、演算処理をDISKがわのCPUにやらせて、結果の高さと色情報のみを受け取っています。 マップと処理プログラムをおくぐらいのメモリーはあったのです。
たいにゃん @bugnekotinyan
あと、88は1画面しかVRAMがないので、プレーン0とプレーン1を交互に使ってパレットを変更することでで書き換えが見えないようにします
たいにゃん @bugnekotinyan
パレットを変更する関係上確か使える色は5色か6色だったきがします。 メイン画面は、青背景に、黄色と、1行おきの黄色で灰色を表現していたと思います。のこりのプレーンをつかって、ちまちましたものをだしていたかな
たいにゃん @bugnekotinyan
それではエッチなことを研究するので、今日はこのくらいで~
たいにゃん @bugnekotinyan
ちなみにシーナの正しい表記はSeeNaです。 Nを小文字で書く人には、 SmallTalkと書いて反撃するからね
たいにゃん @bugnekotinyan
追記 あとサインコサインのテーブルは、 360/256度のうち、32こだけもってあとは反転とかして小数点以下の分は直線補完してたとおもうけど、512バイトぐらいだったら、持った方がよかったんじゃないかと今は思うのです そんなにメモリーぎちぎちだったのか
たいにゃん @bugnekotinyan
マップは32x32だったような気がしてきた いい加減するな自分

PC-8001のセミグラフィックでも実現可能?

いくた♥️なお/C96 土曜日南 テ05a @ikutana
@bugnekotinyan もしかして、8001のセミグラフィックとかでも実現可能?
たいにゃん @bugnekotinyan
解像度的には実はそれほど変わらないのでいけそうなきもするけど、あの変態セミグラは強敵かと @ikutana

プロテクトについて

たいにゃん @bugnekotinyan
SeeNaプロテクトというか簡易暗号化部分 add sub xorを使う簡単なものでしたが、diskごとにどれをつかうかとソルトの値は乱数で、 この復号部分のプログラムのバイナリ値を使って一部データを復号するので、簡単なパッチでは別diskに適用できぬくくなってたはず
たいにゃん @bugnekotinyan
一部トラックは変則的な単密度フォーマットにしてあり、読み込もうとすると、コントローラーがハングアップする確率が高く、 これは単にコピーツールを作ってる人へのいやがらせでした ゲーム中にはもちろんそのトラックにはアクセスしません
たいにゃん @bugnekotinyan
あと、ダミーのfatとかいれてあり、NEC純正のbackup.n88だとこぴーできて遊べるようにしてあったのも、 コピーツール作者に、散々苦労しなくてもできちゃうんだよ、ご苦労様、けけけ というメッセージでもあったのです
wizforest @wizforest
@bugnekotinyan 質問です。 diskごとにソルトがランダムだったというのは、市販品が1つづつ、複製の際に違うものにしてあったということでしょうか?
たいにゃん @bugnekotinyan
1枚ずつ、システムソフトでプロテクトかけましたにゃ @wizforest
残りを読む(11)

コメント

空家の恵比寿様1968 @ebcdic_ascii 2016年7月5日
まさか2016年になってご本人の解説を見ることができるとは
渡志郎 @watarishirou28 2016年7月5日
なつかしさに涙するBEEPER
カシオ松下@レゲー @matsushita_8bit 2016年7月6日
たいにゃん氏は天才です!(`・ω・´)
義明_雑談用 @yoshiaki_idol 2016年7月6日
たいにゃん氏のシステムソフト時代のゲームで一番ハマったのは「パズルトピア」だな。もう20年以上前だよな確か・・・
内赤RS @uchiakars 2016年7月16日
フルスクリーン版には度肝を抜かれた想い出。日の丸ファクトリーのBGMも懐かしい。
ログインして広告を非表示にする
ログインして広告を非表示にする