ポッキー for P6
大体、プログラムが終わりました。後は、BASIC変換用ののAWKスクリプトを書くだけです。
一区切り付いたので、技術的な事をまとめます。
と言っても、基本はリトルバンパイアとほとんど同じです。
今回面倒だったのは、以下の3点。
1)音楽再生が単なるPLAY文で実行されている
前のアリスソフト用BGM演奏プログラムを使うために、PLAY文からBGM演奏プログラム用に変換するプログラムを書いています。
また、エンベロープを使った場合に音が鳴らないバグがあったので、修正しました。
(リトルバンパイアで、このバグに相当する曲があります。どうしよう...)
2)ディスク容量が足りない
2Dを1DDにするので、通常では不足する事はないのですが...
ポッキーのディスクは、通常の1セクタ=256バイト、1トラック=16セクタの80トラックではなく、1セクタ=512バイト、1トラック=10セクタの84トラックです。このため、ディスク容量自体がかなり違います。
アリスソフトでも似たような状況だったのですが、CGのサイズが640x200→320x200になるので、グラフィック容量が少なくなって避けられていました。
ポッキーでは、
・複数の画像ファイルを1つのファイルにする。
・メッセージファイルを圧縮する。
で回避しています。
3)速度が遅い
アリスソフトではあまり気にならなかったのですが(それでもちょっと遅い)、ポッキーでは許容範囲を超えた遅さでした。
ディスクからデータを読み出し、そのデータを文字列として、全部処理をしています。そのため、MID$を多用しています。
MID$自体の処理があまり速くなく、さらに文字領域を毎回確保するために、ガベージコレクションも割りと発生していました。
以上の問題点の対策として
・文字領域を決まった場所に割り当てる。
・MID$をマシン語処理する。
としてます。
とりあえずそれなりな速度にはなっています。速い、とは言えませんが...
2014年11月25日
この記事へのコメント
コメントを書く

