これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド fteqcc です。
プログラム:
NAME
fteqcc - FTE QuakeC コンパイラ
SYNOPSIS
fteqcc [オプション]
DESCRIPTION
このマニュアルページでは、 fteqcc
fteqcc QuakeC のソースコードを Quake1 のバイナレイ ゲーム データにコンパイルするプログラムです。
QuakeWorld ベースのゲーム。
OPTIONS
- 助けて オプションの概要を表示します。
-ファウトプロト
自動プロトタイピングを有効にする
-ファズム すべてのアセンブラ コードを qc.asm にダンプします
-Kキーワード、 -ノ-キーワード
言語キーワードをオンまたはオフにします。 切り替えることができるキーワードは次のとおりです: asm、break、
case、クラス、const、Continue、default、entity、enum、enumflags、extern、float、for、
goto、int、integer、noref、nosave、shared、state、string、struct、switch、
thinktime、typedef、union、var、vector。
-O0、 -O1、 -O2、 -O3、
0 から 3 の間の最適化レベルを使用します。0 では最適化は行われません。それ以外の場合は、
値にはセクション内のオプションが多かれ少なかれ含まれています 最適化.
-src ディレクトリにジョブを開始します。
ソース ファイル (progs.src) を検索するディレクトリを指定します。
-壁 すべての警告を表示
FORMAT
fteqcc はいくつかの出力形式をサポートしています。
-T標準、 -Tq1、 -トゥクェック
これはデフォルト設定であり、オリジナルの Quake1 と互換性のあるコードを生成します。
-Thexen2、 -Th2
Hexen2互換コードを出力します。
-Tkkqwsv、 -Tkk7、 -Tbigprogs、 -Tversion7、 -Tkkqwsv
KK バージョン 7 と互換性のあるプログラムを生成します
-トゥフテ FTE Quake に固有のコードを生成します。
最適化
次のオプションを使用して、最適化を微調整できます。 そのうちのいくつかは活性化されています
自動的に。
-O課題
c = a*b は XNUMX 回ではなく XNUMX 回の操作で実行され、古いエラーが発生する可能性があります。
逆コンパイラは失敗します。
-ショートテニフ
if (!a) は従来、XNUMX つのステートメントでコンパイルされていました。 この最適化は次のように行われます。
XNUMX つですが、一部の逆コンパイラが混乱する可能性があります。
-Ononvec_parms
オリジナルの qcc では、関数パラメータはベクトル ストアとして指定されていました。
浮く。 これはそれを修正します。
-Oconstant_names
プログレスから定数の名前が取り除かれるため、ファイルが小さくなります。 それ
逆コンパイラが名前を省略したり、数値を捏造したりするようにします。
-Oconstant_name_strings
プログレスから文字列定数の名前を取り除きます。 これによりアドオンが壊れる可能性があるため、
そういった場合には使用しないでください。
-Odupconstdefs
同じ値の定数の定義をマージします。 特別な注意を払う
継続的な警告への割り当て。
-重複文字列
progs に格納されている文字列テーブルを圧縮します。 かなりのものになります
これで小さくなります。
-Olocals
ローカルの名前と定義を削除します。 これにより、逆コンパイルが非常に困難になります
-O関数名
これにより、決して呼び出されない関数の名前が削除されます。 あまり役に立たない
インパクトあるけど。
-ファイル名
これにより、プログラムのファイル名が削除されます。 これは本当に古いものを混乱させる可能性があります
逆コンパイラですが、最近のものとは何の関係もありません。
-参照されていません
参照されていない変数のエントリを削除します。 井戸には違いはありません
維持されたコード。
-オーバーラップテンポ
一時変数をオーバーラップすることで pr_globals の数を最適化します。 QCでは、あらゆる
一般に、乗算、除算、演算は一時変数を生成します。
この最適化により過剰が防止され、Hexen2 のゲームコードの場合は、
50kごとにカウントします。 これはこれまでで最も重要な最適化です。
-不定算術
5*6 は実際に操作をプログラムに出力します。 そうすることでそのようなことが起こらなくなり、
コンパイラに効果的に 30 を参照させる
-Oprecache_file
関数呼び出しや文字列で使用された無駄なものを precache_file に取り除きます。
組み込み (実際には quake のスタブです)。
-Oreturn_only
return ステートメントで終わる関数の最後に Done ステートメントは必要ありません。
関数。 これにより一部の逆コンパイラが混乱し、関数が大きく見える可能性があります
彼らよりも。
-Ocompound_jumps
この最適化は、主にネストされた if/else ステートメントで効果を発揮します。
無条件ジャンプ文にジャンプすると、最終目的地にジャンプします。
その代わり。 これは逆コンパイラを混乱させるでしょう。
-Ostrip_functions
これまで直接呼び出されただけだった関数の「defs」を取り除きます。 これはそうなります
保存されたゲームには影響しません。
-Olocals_marshaling
すべてのローカルを pr_globals の XNUMX つのセクションに保存します。 大幅に削減します。 これ
オーバーラップテンポの仕事を効果的に実行します。 バグがあると何人かの人が気づいていましたが、
ただし、それが問題を引き起こす状況はまだわかっていません。
-Ovectorcals
関数がベクトルのみで呼び出される場合、関数呼び出しは次のようになります。
XNUMX つのベクトルの代わりに XNUMX つの浮動小数点数を格納します。 これにより、かなりの数の pr_global を節約できます
ここで、これらのベクトルには重複した座標が多数含まれていますが、完全には一致しません。
onworks.net サービスを使用してオンラインで fteqcc を使用する