這應該是一個國中以及高中的遺憾 當年英文程度不夠 有了Falcon 3.0確不會飛
也知道有個高檔的虛擬飛行搖桿叫做Thrustmaster FCS.
遊戲沒了!Steam又再買了一套...原來的磁片版已經借給侯東甫 高中畢業後都連絡不上了!!
可惜了當年中文翻譯說明書了.絕版品.
現在年近50..玩心來了 先上網研究如果買了這個牌子的搖桿要做那些前置作業
就是搖桿上的虛擬鍵盤設定!! 驚人原來時代的演進這30年來的遊戲可以這樣搞
Sol-R1 + Viper Grip 會變出啥樣的火花呢?
先來上Falcon 3.0的TATGET設定 Falcon3.tmc
include "target.tmh"
// --- 狀態記憶變數 ---
int Gear_Pos = 0; // 0=收, 1=放
int Brake_Pos = 0; // 0=收, 1=放
int Flap_Pos = 0; // 0=收, 1=放
int main()
{
// 初始化硬體 (Joystick = Sol-R1 底座 + Viper Grip)
if(Init(&Joystick, &LMFD, &RMFD)) return 1;
// 初始環境燈:綠色 (系統正常)
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(0, 255, 0));
// --- 軸向設定 ---
MapAxis(&Joystick, JOYX, DX_X_AXIS);
MapAxis(&Joystick, JOYY, DX_Y_AXIS);
MapAxis(&Joystick, SLIDER, DX_THROTTLE_AXIS); // Sol-R1 底座撥桿設為油門
// --- Viper Grip 戰鬥按鍵 ---
MapKey(&Joystick, TG1, ' '); // 扳機:機砲
MapKey(&Joystick, S2, USB_ENTER); // 紅鈕:發射飛彈
// TMS 映射雷達與目標
MapKey(&Joystick, TMSU, 'f'); // 雷達模式
MapKey(&Joystick, TMSD, 'r'); // 雷達範圍
MapKey(&Joystick, TMSL, 't'); // 目標鎖定
// CMS 映射防禦系統 (按下時 LED 會閃爍紅光)
MapKey(&Joystick, CMSU, CHAIN(
PULSE+'c',
LED(&Joystick, LED_ONOFF, LED_CURRENT+LED_FLASH)
));
MapKeyR(&Joystick, CMSU, LED(&Joystick, LED_ONOFF, LED_CURRENT+LED_STATIC));
// --- Sol-R1 底座功能與燈光邏輯 ---
// B1: 起落架 Gear
MapKey(&Joystick, B1, EXEC("Check_Gear_F3();"));
// B2: 襟翼 Flaps
MapKey(&Joystick, B2, EXEC("Check_Flaps_F3();"));
// B3: 減速板 Brakes
MapKey(&Joystick, B3, EXEC("Check_Brakes_F3();"));
// 視角控制 (POV Hat)
MapKey(&Joystick, H1U, USB_F1);
MapKey(&Joystick, H1D, USB_F4);
MapKey(&Joystick, H1L, USB_F2);
MapKey(&Joystick, H1R, USB_F3);
// --- Falcon 3.0 專屬:綠色系統喚醒儀式 ---
int i;
for(i=0; i<256; i=i+15) {
// 綠色通道 (G) 漸亮,R 和 B 保持為 0
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(0, i, 0));
Sleep(20);
}
// 最終固定在 Falcon 3.0 的經典螢光綠
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(0, 255, 0));
printf("FALCON 3.0 SYSTEM ONLINE. CRT INITIALIZED.");
}
// --- 邏輯函數定義 ---
int Check_Gear_F3() {
ActKey(PULSE+KEYON+'g');
if (Gear_Pos == 0) { GameOutput(&Joystick, OUT_ID_LED_1, ON); Gear_Pos = 1; }
else { GameOutput(&Joystick, OUT_ID_LED_1, OFF); Gear_Pos = 0; }
}
int Check_Flaps_F3() {
ActKey(PULSE+KEYON+'f');
if (Flap_Pos == 0) { GameOutput(&Joystick, OUT_ID_LED_2, ON); Flap_Pos = 1; }
else { GameOutput(&Joystick, OUT_ID_LED_2, OFF); Flap_Pos = 0; }
}
int Check_Brakes_F3() {
ActKey(PULSE+KEYON+'b');
if (Brake_Pos == 0) { GameOutput(&Joystick, OUT_ID_LED_3, ON); Brake_Pos = 1; }
else { GameOutput(&Joystick, OUT_ID_LED_3, OFF); Brake_Pos = 0; }
}
int EventHandle(int type, int alias, int x) { DefaultMapping(&events, alias, x); }
再來上Falcon 4.0的TATGET設定 Falcon4AF.tmc
include "target.tmh"
// --- 狀態記憶變數 ---
int Gear_Pos = 0;
int Brake_Pos = 0;
int main()
{
if(Init(&Joystick, &LMFD, &RMFD)) return 1;
// 初始環境燈:橘色 (F-16 電子儀表感)
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 120, 0));
// --- 軸向設定 ---
MapAxis(&Joystick, JOYX, DX_X_AXIS);
MapAxis(&Joystick, JOYY, DX_Y_AXIS);
MapAxis(&Joystick, SLIDER, DX_THROTTLE_AXIS);
// --- Viper Grip HOTAS ---
MapKey(&Joystick, TG1, ' '); // Trigger: Gun
// S2 發射飛彈:按下時底座燈光變紅,放開回橘
MapKey(&Joystick, S2, CHAIN(
DOWN+USB_ENTER,
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 0, 0));")
));
MapKeyR(&Joystick, S2, CHAIN(
UP+USB_ENTER,
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 120, 0));")
));
// TMS/DMS 映射 (Ctrl/Alt 組合鍵)
MapKey(&Joystick, TMSU, L_CTL+USB_UP);
MapKey(&Joystick, TMSD, L_CTL+USB_DOWN);
MapKey(&Joystick, DMSU, L_CTL+L_ALT+USB_UP);
MapKey(&Joystick, DMSD, L_CTL+L_ALT+USB_DOWN);
// CMS 防禦:按下時啟動閃爍警報
MapKey(&Joystick, CMSU, CHAIN(
PULSE+'z',
LED(&Joystick, LED_ONOFF, LED_CURRENT+LED_FLASH)
));
MapKeyR(&Joystick, CMSU, LED(&Joystick, LED_ONOFF, LED_CURRENT+LED_STATIC));
// --- Sol-R1 底座功能與燈光邏輯 ---
// B1: 起落架 (放下時 RGB 轉紅,確保視覺警示)
MapKey(&Joystick, B1, EXEC("Check_Gear_AF();"));
// B2: 減速板 (開啟時 LED 5 恆亮,提醒你現在速度受阻)
MapKey(&Joystick, B2, EXEC("Check_Brakes_AF();"));
// B4: Master Caution Reset (模擬警報解除)
MapKey(&Joystick, B4, CHAIN(
PULSE+L_CTL+'c',
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 120, 0));"),
LED(&Joystick, LED_ONOFF, LED_CURRENT+LED_STATIC)
));
// 視角控制 (POV Hat)
MapKey(&Joystick, H1U, USB_KP8);
MapKey(&Joystick, H1D, USB_KP2);
MapKey(&Joystick, H1L, USB_KP4);
MapKey(&Joystick, H1R, USB_KP6);
// 放在 main() 函式的結尾,啟動後的「系統喚醒」儀式
int i;
for(i=0; i<256; i=i+10) { // 燈光從無到有慢慢變亮
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(i/2, i/4, 0)); // 琥珀色漸亮
Sleep(20);
}
// 最終固定在你的 Falcon 4.0 橘色
GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 120, 0));
printf("SYSTEM READY. WELCOME BACK, PILOT."); // 這行字會出現在 T.A.R.G.E.T. 的視窗裡
}
// --- 邏輯函數定義 ---
int Check_Gear_AF() {
ActKey(PULSE+KEYON+'g');
if (Gear_Pos == 0) { GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 0, 0)); Gear_Pos = 1; }
else { GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(255, 120, 0)); Gear_Pos = 0; }
}
int Check_Brakes_AF() {
ActKey(PULSE+KEYON+'b');
if (Brake_Pos == 0) { GameOutput(&Joystick, OUT_ID_LED_5, ON); Brake_Pos = 1; }
else { GameOutput(&Joystick, OUT_ID_LED_5, OFF); Brake_Pos = 0; }
}
int EventHandle(int type, int alias, int x) { DefaultMapping(&events, alias, x); }
以上的設定是假設買了Sol-R1並更換Viper Grip的作法...Gemini也很可愛的提醒
使用說明:
奢華追加:機型燈光切換功能
我們可以利用 S4(小指鈕) 當作「功能切換鍵 (Shift Key)」。
操作邏輯: 按住 S4 不放,再撥動苦力帽(H1):
左 (H1L): 切換為 F-16 經典綠。
右 (H1R): 切換為 MiG-29 蘇聯青綠。
上 (H1U): 切換為 F-18 大黃蜂螢光綠。
請將這段代碼加入到你的
main()函式中:// --- 奢華享受:按住小指鈕 (S4) + 苦力帽 (H1) 切換機型燈光 ---
// H1L: 切換至 F-16 經典綠
MapKey(&Joystick, H1L, IFUSB(S4,
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(0, 255, 0)); printf(\"MODE: F-16 CLASSIC GREEN\n\");"),
USB_F2 // 如果沒按 S4,維持原本的 F2 視角功能
));
// H1R: 切換至 MiG-29 蘇聯青綠 (Turquoise)
MapKey(&Joystick, H1R, IFUSB(S4,
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(0, 255, 150)); printf(\"MODE: MiG-29 SOVIET BLUE-GREEN\n\");"),
USB_F3 // 如果沒按 S4,維持原本的 F3 視角功能
));
// H1U: 切換至 F/A-18 螢光綠 (偏白的高亮綠)
MapKey(&Joystick, H1U, IFUSB(S4,
EXEC("GameOutput(&Joystick, OUT_ID_LED_RGB, RGB(100, 255, 100)); printf(\"MODE: F/A-18 NAVY BRIGHT GREEN\n\");"),
USB_F1 // 如果沒按 S4,維持原本的 F1 視角功能
));
儲存與運行: 打開 T.A.R.G.E.T. Script Editor,貼上對應代碼,點擊 Compile 確認無誤後點擊 Run。
單機作業技巧:
在《Falcon 4.0》中,如果發現油門撥桿方向反了,可以將
MapAxis的最後一個參數加上AXIS_REVERSED。Sol-R1 的按鍵編號(B1~B23)請依據 T.A.R.G.E.T. GUI 內的編號對應,以上預設 B1~B5 為最常用的系統鍵。
DOSBox 提醒: T.A.R.G.E.T. Script Editor 程式運行
Falcon3.tmc後,DOSBox 的joysticktype設為fcs即可完美捕捉這些字母輸入。DOSBox 按鍵映射 (MapKey): 走的是「虛擬鍵盤通道」。這些訊號會讓電腦以為你真的按了鍵盤。關鍵設定提醒: 在
dosbox.conf中,請確保以下搭配:[joystick]
joysticktype=fcs
timed=false
# 重要:不要在 DOSBox 內部的 Mapper (Ctrl+F1) 重複設定搖桿按鈕,讓它保持空白,只讓 T.A.R.G.E.T. 處理按鍵。
沒有留言:
張貼留言