シーナリを作成するには、シーナリコンパイラが必要です。 シーナリコンパイラは、シーナリの定義をテキストファイルとして書き、 それを BGL 形式のファイルに変換する、というツールです。
残念ながらシーナリコンパイラは Microsoft からはリリースされていません。 Microsoft は Flight Simulator 98(以下 FS98) の Scenery SDK を公開して おり、BGL の構造については公開しているものの、コンパイラは MASM を 使うようにという指示があるだけです。MASM を使ってシーナリを作成する のは非常に大変であり、そのうえ MASM はかなり高価です。 ちょっとシーナリを作成してみようか、という人に MASM を買えというのは 非現実的です。
幸い、シーナリコンパイラは第3者が作成したものがいくつかあり、 ほとんどが無料で使用できます。 このうち、もっとも有名なのは Manfred Moldenhauer 氏による SCASM です。
特に GUI のシーナリ作成ツールとして人気のある Airport や ASD といった ツールが SCASM を使用している、という理由もあり、 現状では SCASM が事実上の標準になっています。SCASM がなければ、 世界中のシーナリ作成のほとんどがストップしてしまう、といっても過言で はありません。
開発は Manfred Moldenhauer 氏だけが行っているようです。 (多少の協力者がいるかもしれませんが、詳しいことはわかりません。)
Moldenhauer 氏は Airport や ASD などのツールに対して特注の SCASM を作成 しているため、同じ SCASM でも微妙な違いがあります(バージョンが異なる)。 さらに、特注の SCASM には隠し機能がいくつか付いていることがあります。 たとえば、AFD(Airport Facility Directory) 向けの SCASM には、 BGL のセクション 20 のコードを生成する機能がついていますが、 この機能は全く公開されていません。
また、こういった特注の SCASM は、それ用のツールに添付して配布される ようになっています。そのため、現在 SCASM は(古いバージョンを除いて) 単体では配布されていないのです。
このため、SCASM の最新バージョンを調べるのは非常に大変です。 総本山というものがないのです。
ソースが公開されていないということは、他人が機能を追加しようとして もできない、ということです。機能を追加するには直接 Moldenhauer 氏に かけあうしか方法がありません。
今まではソースが公開されていなくてもそれほど問題はなかったのですが、 FS2000 が公開されたいま、FS2000 用の魅力的なシーナリの機能をフルに使うには SCASM のバージョンアップを待たねばなりません。その SCASM は今や単体では配布されていないし、最新バージョンがどれかも わからない、というのでは困るのです。
例えば、自分で新たなコマンドを追加することができません。 マクロ機能を使えば似たようなことはできますが、コマンドを追加する、 というのとはちょっと違います。
また、ラベルのオフセット計算機能がないため、ジャンプ命令をマクロで 定義することができません。このため、FS98 で追加された一部の機能 を実現することができません。実際、SCASM の生成した BGL コードを バイナリエディタで編集する、といった努力をしている人も現実にいます。
include のネストができません。これは多少大規模なシーナリを 作成するときには不便です(GUI ツールでは関係ありませんが)。
困ったことに、コマンドのパラメータは文脈によって 10 進数であったり 16 進数であったりします。例えば、Building の 第1引数は 10進数ですが、 第7引数は 16 進数です。これは '10' と書いたものが場所によって、 10 進数の 10 であったり、16 進数の 0x10 であったりするということです。
こういった問題を解決する最良の方法は、独自にコンパイラを作ることです。 これがこのプロジェクトの目的なのです。