実機での動作について

  • Nestopia・NnnesterJ・VirtuaNESの3つで動作が確認できれば実機でも動く可能性が高いでしょう。
  • 背景のみならず、スプライトの表示もVBlank中に済ませる必要があります。

無限ループ

  • 以下の処理は無限ループになります。
signed char i;
char j;
j = 0;
for (i=10; i >= j; i--) {}
 

  • 回避するには、評価式に使用する変数もsignedにする必要があります。
signed char i,j;
j = 0;
for (i=10; i >= j; i--) {}
 

描画について

  • 背景の描画などを行った後は、スクロール値を設定する必要があります。
    ($2006や$2007にアクセスすると、スクロール値が書き換わるため。)
VBlank();
SetBackground(0x20,0x00,(char *)bg,10)
SetScroll( 0, 0 );
 
  • VBlank中やNMI割り込み中に行う処理の優先順位はDMA→BG描画(一部)→その他の処理(パッドのチェックなど)の順。
  • VBlank中を確認して描画処理を行っても、VBlank終了間際だと画面がちらつく場合があります。
    その場合はVBlankを2回チェックしてから描画処理を行いましょう。

計算について

  • サブルーチンの引数に割り算などをそのまま渡すと落ちます。
    例)SetScroll(10 / 3,0)
    一旦変数に入れるなどしてからサブルーチンを呼び出しましょう。