PC-6601SR版 Ys2 オープニングの作り方(10)

シーン8 イースが左から出てくる


雲の部分はスクロールしません。スクロールするのは、イースの部分だけです。
なので、ハードウエアスクロールが使えません。ソフトウエアスクロールです。

最初、ハードウエアスクロールで、普通にやって、「あれ? なんかおかしいぞ?」って、思ったのは、内緒です。(^^;;


まず、一枚絵と、イースの部分に分割します。


背景の、一枚絵です。
セル分解します。(同じ部分は、一つにまとめるので、メモリー効率がよくなります。)

イースだけ切り出しました。イースは、128x80ドットあります。
右端から、ちょっとずつ表示されます。



それを90度右に回転します。
そして、一番下のラインから順番にベタデータ化します。
イースは、ベタイメージです。順番に表示されていくので、圧縮していません。


PC-6601SRは、パックドピクセルなので、1バイト=1ドットです。
スクロールするのに、シフト命令は使いません。LDDRで、1バイトずつ、ずらします。
イースの高さの分だけ、右に1ドット(1バイト)スクロールします。

  • 右に1ドットスクロールする
  • 左端にイースのデータを書き込む

というのを、128回繰り返します。


[追記] 2012/2/23

どうも、遅く、うねうねうねうね。。となってしまうので、Z80の命令を最適化しました。(LDDR命令ではなく、LDD命令を184個並べてみました。。汗)

よく、使われる手ですね。回数が分かっていて、メモリーに余裕があるときしか使えませんが。


すこしだけ、ましになったような気がします。。(^^;;
もうちょっと、改善できないか、考え中です。