EXCEEDの同人ソフト開発日記という名の備忘録

趣味のゲームソフト開発人。プロなのかアマなのかは不明(不定)らしい。

任天堂のソフトはいつも予定通りに出てこないって言われるけど、
ソフト作りっていうのは、そういうもの。
ゲームソフトは、期限までにやれと言われて、徹夜したり死に物狂いでやったからといって、
期待通りのものにはならない。そういうふうにすると、
結局、チームは妥協しなければならなくなる。
妥協させられて、できたものは、粗くなってしまう。
ユーザーは目が肥えていますから、受け付けてもらえない

山内 薄

自分の手の届かない場所からの罠

ついにメモリが苦しくなってきた。画面にゴミが出だしたのだ。結論からいうと、スタックポインタがフレームバッファ領域に侵食していた訳だが、最初は原因が全くわからず、HANDY Debugger を駆使して(これは非常に便利!)なんとか原因を突き詰めた(実際は20分ほどで分かったけど・・・)。実は、BLL ランタイムは独自にソフトウェアで、スタック領域(65c02 の 0x100〜0x1ff の領域とは違う)を確保し、独自のスタックを再現するのだが、その先頭アドレス(厳密には底辺アドレス)は、リンカが、「.bssの終了アドレス + 0x1000」のアドレスに勝手に決め打ちしてしまうため、(リンカオプションスイッチでアドレスを指定できない)今回のようなトラブルが発生してしまったのだった。緊急処置として、バイナリイメージデータのランタイムルーチン(スタートアップルーチン)の該当箇所にパッチを当てることで回避したが、これではっきりしたことは、


もうフリーエリアが 0x1000 バイトしか残っていない


ということであった(爆