Welcome to X-Wing Revival! I started making this because I wanted to have an X-Wing LAN party in 2011, and found that X-Wing Alliance (released in 2002) didn't run correctly on modern PCs. We've come a long way since then! The goal is still to recreate the feeling of a classic LucasArts X-Wing game, but X-Wing Revival has developed into its own unique take on the genre, with a focus on fast dogfighting, epic battles, multiplayer balance, and staying true to classic Star Wars ship designs. (TIE Fighters don't have missiles!)
If you're looking for the official X-Wing title of 2020, check out Star Wars Squadrons: https://store.steampowered.com/app/1222730/STAR_WARS_Squadrons/
== CREDITS AND THANKS ==
Ship models were shamelessly pilfered from X-Wing Alliance asset files, including many beautiful high-res models from the X-Wing Alliance Upgrade Project. https://xwaupgrade.com/
Special thanks to NoJoe, Peter, and Sawyer for all the test flights, and to The Rebel Alliance for helping me bring balance to the forces. https://therebelalliance.zyp.mx/
== GAME TYPES ==
Fleet Battle: Each team tries to destroy the enemy capital ships while defending their own. The last team with any surviving capital ship wins. Respawn is only possible while your team's flagship is alive, so prioritize its protection. Cruisers and Battleships will respawn if their entire group is destroyed before the flagship, but it takes time to replace a large group of capital ships.
Battle of Yavin: Rebels must fly down the trench and try to hit the exhaust port with a pair of proton torpedoes. Imperials must try to prevent the Rebels from doing this before the time limit runs out. Harder AI skill effects turrets too!
Flagship Hunt: The attacking team must destroy the defending team's flagship before the time limit runs out. (This mode was previously called "Capital Ship Hunt".)
Team Deathmatch: The team to hit the kill limit first wins. Respawn always enabled.
Team Elimination: The last team with any ships remaining wins. Players can control AI ships when the player's ship has been destroyed, but no new ships will be given to either team once the match has started.
Team Kessel Run: Race through the asteroid field, gaining points for your team with each checkpoint reached. First team at the score limit (or last team alive) wins.
FFA Deathmatch: The player to hit the kill limit first wins. Respawn always enabled.
FFA Elimination: Last man standing wins, and there's no respawn whatsoever.
FFA Kessel Run: Race through the checkpoints in the asteroid field. First player to reach the score limit (or last player alive) wins. Basically Carmageddon in space.
Mission: Play a campaign level or custom scripted mission.
== TROUBLESHOOTING / FAQ ==
Textures are blank. Everything looks like white boxes!
Windows: This is a directory permissions problem. This often happens on Windows 10/11 if you attempt to unzip X-Wing Revival in your Downloads folder or on the desktop.
The solution is to move the zip file to a different directory like "C:\Program Files"
before extracting it.
Mac: This is usually caused by the Quarantine file system attribute, which prevents a downloaded program from reading files, even if they were extracted from the same zip.
The solution is to open Utilities/Terminal and remove the Quarantine flag from the
directory you extracted X-Wing Revival to:
xattr -dr com.apple.quarantine "/Applications/X-Wing Revival"
My OS warns about or won't allow a downloaded or unsigned application to run.
Apple and Microsoft have made it disappointingly onerous to distribute software for their platforms without paying them for code-signing. Fortunately for those of us who still value running whatever we want on our own computers, there are workarounds.
Windows: In the SmartScreen popup, click "More Info" at bottom, then "Run Anyway". The permanent fix is in Windows Security, "App & Browser Control", "Reputation-based protection settings". Turn off "Check apps and files".
Mac: You might be able to just right-click to run an unsigned app. (Unconfirmed.) The permanent fix to allow apps downloaded from anywhere is done in the Terminal: sudo spctl --global-disable
I recommend the permanent fixes for power users only, or anyone who misses the 90's.
Should I run "X-Wing Revival.exe" or "X-Wing Revival Legacy.exe" on Windows?
You should try "X-Wing Revival.exe" first. This is the 64-bit version using SDL 2.0. If you are on a 32-bit system or having problems that did not occur in old versions of X-Wing Revival, you can try "X-Wing Revival Legacy.exe" which is 32-bit SDL 1.2. NOTE: SDL 1.2 and 2.0 often have different joystick axis mappings, so you may need to alter control binds or restore defaults when switching between them.
Linux asks what application to open files of type "executable" with.
Click Cancel, then right-click "X-Wing Revival.elf", select "Properties", then go to the "Permissions" tab, and check "Allow this file to run as a program". Close this window. Now double-clicking "X-Wing Revival.elf" should run it.
== PREFERENCES ==
--Graphics--
Fullscreen: Toggle fullscreen, and set the resolution for fullscreen mode. Windowed resolution can be changed by dragging the lower-right corner.
FOV: Set horizontal field of view in degrees. Default "auto" uses vFOV 60.
MSAA (Antialiasing): Use multiple samples to reduce jagged edges. Can be GPU-heavy, especially when VR is enabled. (Renamed from "FSAA" to avoid confusion with FXAA.)
VSync (Vertical Synchronization): Eliminate tearing by only drawing frames when the monitor is ready to refresh. Recommended for fast systems, but turning this off is an easy way to improve framerate and reduce stuttering.
Framebuffer Textures: Use framebuffer objects as live textures for the cockpit. This shouldn't hurt performance much, but some old video cards don't support it. Framebuffers are also used for the VR eyes, so this is required for VR.
Texture Quality: Limit the maximum texture resolution; downsample anything too large. This may improve performance with very limited VRAM and is required on some ancient video cards, but if your PC was made in the last 20 years you can leave this High.
AF (Anisotropic Filtering): Improve texture clarity and detail. Slightly GPU-heavy. Trilinear mode is the standard non-anisotropic mode. Linear mode uses bilinear filtering without mipmapping, which looks sharp but sparkles at longer distances.
Shaders: Use GLSL vertex and fragment shaders instead of old fixed-pipeline OpenGL. Recommended for performance and better appearance, but a few old motherboards may perform better with this off, and some ancient video cards require this off.
Lighting: Per-pixel can be GPU-heavy, especially in VR, but looks much better on large surfaces like capital ships and the Death Star trench. Requires shaders.
Dynamic Lights: Number of point light sources (lasers, torpedos, explosions, etc) to use for lighting each object. Higher values use a bit more CPU and GPU power.
Blastpoints: Number of damage blastpoints to draw per object. Higher values can be very GPU-heavy, especially at higher quality. Requires shaders.
Blastpoint Quality: Controls shader complexity used to draw blastpoints. Low does most work per vertex. Medium and High operate per pixel, which can be quite GPU-heavy when combined with high blastpoint count, anti-aliasing, and/or VR.
Effects: Adjust the number of sprites per explosion. Lowest removes shot impact effects entirely. Most should leave this High, but lower settings may reduce the CPU load of dynamic lights and/or the GPU load of layered transparencies.
Engine Glow: Draw engine glow effects. Very little performance impact on most GPUs.
Asteroid Level of Detail: Controls how far away asteroids render in higher detail. Can be somewhat CPU-heavy and GPU-heavy with many asteroids, especially in VR. NOTE: This is even more CPU-heavy when shaders are disabled!
Death Star Trench/Surface: Draw 3D details over the flat surfaces of the Death Star. Can be somewhat GPU-heavy and CPU-heavy, especially in VR. NOTE: This is even more CPU-heavy when shaders are disabled!
FPS: Show framerate (and physics rate if hosting) in bottom right.
--Virtual Reality--
Enable VR Mode: Enable VR HMD output and seated head tracking, using OpenVR/SteamVR. Tested with the HTC Vive, and it should work for the Oculus Rift, Valve Index, or any other HMD. Non-Vive headsets may require view tweaks below. VERY GPU-HEAVY!
Sway: Enable cockpit swaying motions in VR. More immersive, but can be nauseating.
FOVW / FOVH: Field of view in degrees; negative means vertical FOV. Default: -111
Eye Separation: Spacing in meters between the two eyes. Default: 0.0625
Center Offset: Offset in pixels from screen center to eye center. Default: 87
--Sound--
Volume: Master volume that affects all playback.
Effects: Volume of sound effects.
Engines: Engine sound volume, relative to effect volume.
Music: Volume of all music, including end-of-round victory/defeat music.
Menu Music: Play background music in the menus and lobby.
Game Music: Play background music while flying.
S.Alarm: Play alarm sound when losing a deflector shield.
--Networking--
Rate: Send updates to the server at this rate. Default: 30
Predict: Shots fire immediately instead of waiting for server. Default: All My Shots
== CONTROLS ==
Swap Yaw/Roll: Normally X = roll and twist/pedals = yaw. This option swaps those controls so the joystick points your ship and twist/pedals change your ship's roll, which is how classic X-Wing games were controlled.
Invert Turrets: Normally turrets pitch the same way ships do. This reverses them.
--Joystick--
Deadzone: Ignore some stick/twist motion near the center to prevent drift. NOTE: This setting is not used for calibrated devices!
X / Y / Twist: Sharpest is most responsive while Smoothest is least twitchy.
--Controller--
Deadzone: Ignore some thumbstick motion near the center to prevent drift. NOTE: This setting is not used for calibrated devices!
Sticks: Sharpest is most responsive while Smoothest is least twitchy.
Triggers: Sharpest is most responsive while Smoothest is least twitchy.
--Mouse--
Mode: Disabled: Disable mouse input in game. Mode: Turret Aim: Mouse does not control flight, but does aim for turret gunners. Mode: Yaw/Pitch: Mouse controls yaw and pitch in flight, and aims turrets. Mode: Roll/Pitch: Mouse controls roll and pitch in flight, and aims turrets. Mode: Freelook: Use mouse to look around the cockpit.
Invert Pitch: Make mouse flying feel more like using a joystick (up = pitch down).
Input: Sharpest is most responsive while Smoothest is least twitchy.
--Binds--
Show Only Connected Devices: Hide control binds for devices that were not found.
Refresh: Search again for connected joysticks.
Default Binds:
Joy X-Axis: Roll Joy Y-Axis: Pitch Joy Twist/Pedals: Yaw Joy Throttle: Throttle Joy Hat: Look Around Joy Button 1 (Trigger): Fire Joy Button 2: Change Weapon Joy Button 3: Change Firing Mode Joy Button 4: Target Nearest Enemy Joy Button 5: Look Center / VR Head Center Joy Button 6: Target Ahead Joy Button 7: Target Attacker Joy Button 8: Target Incoming Warhead Joy Button 9: Recall Stored Target 1 Joy Button 10: Recall Stored Target 2 Joy Button 11: Change Shield Direction Joy Button 12: Show Scores
X52 Button 1 (Trigger): Fire X52 Button 2 (Fire): Change Weapon X52 Button 3 (A): Target Ahead X52 Button 4 (B): Target Nearest Enemy X52 Button 5 (C): Change Firing Mode X52 Button 6 (Pinkie): Look Center / VR Head Center X52 Button 7 (D): Change Shield Direction X52 Button 8 (E): Target Attacker X52 Button 9 (T1): Target Incoming Warhead X52 Button 10 (T2): Target Data-Link X52 Button 11 (T3): Cockpit Seat X52 Button 12 (T4): Toggle Co-Pilot (Chewie) X52 Button 13 (T5): Gunner Seat 1 X52 Button 14 (T6): Gunner Seat 2 X52 Button 20 (Hat 2 Up): Recall Stored Target 1 X52 Button 21 (Hat 2 Right): Recall Stored Target 2 X52 Button 22 (Hat 2 Down): Recall Stored Target 3 X52 Button 23 (Hat 2 Left): Recall Stored Target 4 X52 Button 24 (Hat 3 Up): Hold to Store Target X52 Button 25 (Hat 3 Right): Target Next X52 Button 26 (Hat 3 Down): Show Scores X52 Button 27 (Hat 3 Left): Target Previous X52 Button 31 (Clutch): Target Incoming Warhead
SideWinder Button 1 (Trigger): Fire SideWinder Button 2: Change Weapon SideWinder Button 3: Target Ahead SideWinder Button 4: Change Firing Mode SideWinder Button 5 (A): Target Nearest Enemy SideWinder Button 6 (B): Target Attacker SideWinder Button 7 (C): Target Incoming Warhead SideWinder Button 8 (D): Change Shield Direction SideWinder Button 9 (Shift): Look Center / VR Head Center
Xbox Left Stick: Yaw/Pitch Xbox Right Stick: Look Around Xbox Right Stick Click: VR Head Center Xbox Triggers: Roll Xbox Left Bumper: Target Center Xbox Right Bumper: Fire Xbox A: Throttle Decrease Xbox B: Change Firing Mode Xbox X: Throttle Increase Xbox Y: Change Weapon Xbox Back: Show Scores Xbox Start: Change Shield Direction Xbox D-Pad Up: Target Nearest Enemy Xbox D-Pad Down: Target Attacker Xbox D-Pad Left: Target Previous Enemy / Spectate Previous Xbox D-Pad Right: Target Next Enemy / Spectate Next
Mouse Left-Click: Fire Mouse Right-Click: Target Center Mouse Middle-Click: Change Weapon Mouse Scroll Up: Target Previous Mouse Scroll Down: Target Next Mouse Thumb-Button Big (Back): Throttle Decrease Mouse Thumb-Button Little (Forward): Throttle Increase
Arrows: Yaw/Pitch Backslash: 0% Throttle Left Bracket: 33% Throttle / Spectate Previous Right Bracket: 67% Throttle / Spectate Next Backspace: 100% Throttle Plus: Throttle Increase Minus: Throttle Decrease Numeric Keypad: Look Around Numeric Keypad 5: Look Center / VR Head Center Space: Fire Ctrl: Target Center Q: Target None W: Change Weapon E: Target Attacker R: Target Nearest Enemy T: Target Next Y: Target Previous U: Target Newest I: Target Incoming O: Target Objective P: Target Next Player A: Target Current Target's Attacker S: Shield Direction D: Roll Left F: Roll Right G: Target Groupmate H: Target Dockable K: Eject X: Change Firing Mode V/CapsLock: Target Data-Link F1: Cockpit Seat F2: Gunner Seat 1 F3: Gunner Seat 2 F4: Toggle Co-Pilot (Chewie) F5: Recall Stored Target 1 F6: Recall Stored Target 2 F7: Recall Stored Target 3 F8: Recall Stored Target 4 Shift: Hold to Store Target 1: View Cockpit 2: View Crosshair 3: View Chase 4: View Drop Camera 5: View Cinema 6: View Fixed 7: View Selfie 8: View Gunner 9: View Cycle 0: View Instruments Tab: Show Scores Return/Enter: Toggle/Send Chat Esc/F10: Menu Backtick/Tilde: Toggle Console
To rebind an analog axis, click the box and then move your joystick or controller axis in the positive direction (pitch up, yaw right, roll right, throttle up, etc). If the result is reversed from what you want, rebind it in the other direction.
To rebind a digital control, click the box and then press the desired button or key.
To unbind a control entirely, right-click its box; all of its binds will be cleared.
== CALIBRATION ==
== CONSOLE COMMANDS ==
X-Wing Revival features a Quake-style console which allows power users to tweak the game parameters. Press backtick (tilde) to toggle the console. If you mess anything up, quit and delete settings.cfg to restore defaults.
Here are some of the commands currently implemented:
status: Show the status of various game subsystems, including framerate and ping.
show: Show all variables.
set
When hosting, you can also use the "sv" command to control the server:
sv show: List game variables.
sv set
From a dedicated server console, the sv commands are used without the "sv" keyword.
== COMMAND-LINE OPTIONS ==
You can control X-Wing Revival's behavior with these command-line options:
-host: Start a new game immediately.
-connect
== NETWORKING AND PORT-MAPPING ==
By default, X-Wing Revival servers run on TCP port 7000. If you wish to host a game online, you'll need to map this port from your firewall to your PC. You can override the server port by changing the "sv_port" variable.
Local games are announced by sending LAN broadcasts on UDP port 7000. If you have a software firewall enabled (such as Windows Firewall) and want to play over LAN, make sure this port is allowed so you can discover local games.
== VIRTUAL REALITY ==
This version of X-Wing Revival has OpenVR (SteamVR) support! I've only tested this on the HTC Vive, but it should work on other headsets with SteamVR support, such as Oculus Rift, Valve Index, etc. See the Preferences for VR view tweaks.
When playing in VR, there's no radar yet, so pick up your visual scanning! Messages won't display by default, but you can show them by pressing return to toggle chat or holding tab to show scores.
== ABOUT THE SCREENSAVER ==
To use X-Wing Revival as your screensaver, simply copy the RaptorEngine.scr file into C:\Windows and select "RaptorEngine" in the Screen Saver settings. Before you can preview or activate it, you'll need to click "Settings...", browse to your copy of "X-Wing Revival.exe", and click "OK".
The RaptorEngine screensaver wrapper is only currently available for Windows. You can also launch the game with "-screensaver" to watch screensaver mode on any platform.
You can customize the screensaver by creating a text file "screensaver.cfg" with console commands to execute, such as "sv gametype yavin" or "sv rebel_fighter A/W".
== VERSION HISTORY ==
Alpha 0.4.5 (2024-08-28):
Alpha 0.4.4 (2024-07-27):
Alpha 0.4.3 (2024-06-12):
Alpha 0.4.2 (2024-06-06):
Alpha 0.4.1 (2024-05-15):
Alpha 0.4 (2024-05-04):
Alpha 0.3.5 (2024-02-24):
Alpha 0.3.4 (2024-02-07):
Alpha 0.3.3 (2023-12-16):
Alpha 0.3.2 (2023-12-02):
Alpha 0.3.1 (2023-11-22):
Alpha 0.3 (2023-11-07):
Alpha 0.2 (2023-05-04):
Alpha 0.1.9 (2021-05-04):
Alpha 0.1.8 (2020-05-04):
Alpha 0.1.7 (2019-05-04):
Alpha 0.1.6 (2018-05-04):
Alpha 0.1.5 (2017-05-04):
Alpha 0.1.4 (2016-05-04):
Alpha 0.1.3 (2015-05-04):
Alpha 0.1.2 (2014-05-28):
Alpha 0.1.1 (2014-05-03):
Alpha 0.1 (2013-08-29):