This Project aims to speedrun the Steam version of Final Fantasy X using tools such as python, virtual controllers and memory reading.
This is achieved by reading memory values and sending controller inputs that fit the situation.
We strive to only include code that is not seed-specific which causes the codebase to be quite large so we can cover as many edge cases as possible.
- Cutscene Remover Any% in
3:04:14https://www.youtube.com/watch?v=P0wDLfiLtOs - Any% in
8:45:14https://www.youtube.com/watch?v=xc-ixb5rCFU - Nemesis% in 13:35:08 https://www.youtube.com/playlist?list=PLIGp9aN2dv5tPDTB6uDKEybrAcD4ZP4zf
This project has been showcased on:
-
Q4G HH2 - Nov 2021 https://www.twitch.tv/videos/1205160940
-
TASgiving - Nov 2021 https://www.youtube.com/watch?v=Gvz-XdiNuKI
-
RPG Limit Break 2022 - October 17th 2022 https://www.youtube.com/watch?v=C598HEcfdgE
For troubleshooting please refer to our Discord: https://discord.gg/2Xh3SFmrVN
Currently, only the Windows version of the game is supported (due to the Cutscene Remover only being supported on this platform).
- Install the Steam version of Final Fantasy X (in other words, the Final Fantasy X/X-2 HD Remaster).
- Install Virtual gamepad port: https://github.com/ViGEm/ViGEmBus/releases/tag/v1.21.442.0
- Install Python version 3.10 or later (through Windows store or from https://www.python.org/downloads/). Ensure that python is added to the
PATHvariable during installation. If you run into problems on version 3.11 or later, try installing 3.10. - Download the repository to your computer: https://github.com/coderwilson/FFX_TAS_Python
- Install the python requirements using pip (comes with your python installation):
- Run
CMDorPowerShellas administrator. - Navigate to the
FFX_TAS_Pythondirectory. - Run
pip install -r requirements.txt
- Run
- The 4gb memory patch (improves game stability), follow installation instructions here: https://www.speedrun.com/ffx/guide/oyi9n
- [Optional] Set up LiveSplit timer:
- Install LiveSplit: https://livesplit.org/downloads/
- Set up timer/splits for FFX in LiveSplit: https://www.speedrun.com/ffx/guide/vnxps
- There are some autosplits that doesn't work with the Cutscene Remover, and should be disabled: MushroomRockRoad, Seymour, BevelleGuards, SanctuaryKeeper.
- The latest release of the Final Fantasy X Cutscene Remover: https://github.com/erickt420/FFXCutsceneRemover/releases
- Make sure the correct game settings are used:
- Open the game launcher and set language, change resolution and set to windowed or borderless mode.
- Launch the base game (
FFX.exe). PressEscapeand go intoSystem Settings > Key Bindings > Controllerand set theTalk/Examine/Confirmoption toA.
- Make sure that there are no physical XBox/Playstation controllers connected. This is because the virtual gamepad needs to be controller 1 for the TAS to work.
It's possible to congigure parameters for the TAS. There are a lot of parameters that are possible to set, which are all read from a file called config.yaml. When you first download the repository, there won't be a config.yaml file; in this case the TAS will use default parameters for everything. If you want to configure something, make a copy the provided config.yaml.example file and name it config.yaml. Keep an eye on the example file, as more parameters may be added in the future.
One of the possible configuration options is to start in the middle of a run using a FFX save. Set the GameState and step_counter values in config.yaml, please refer to tools/Legacy_lists_for_reference.txt for valid checkpoints.
In order for checkpoint saves to work, the saves in tas_saves must be installed correctly. Please ask in the Discord how to do this, as it currently requires a few steps beyond just copying the files.
- [Optional] Set up
config.yamlwith desired run parameters. - [Optional] Start LiveSplit
- Start the patched
FFX.exe - [Optional] Start the Cutscene remover
- In
CMDorPowerShellas administrator, runpy main.pyin theFFX_TAS_Pythondirectory.
The TAS should now be running!