Repository navigation
Version 1.18.0
Pre-release
Pre-release
FFX Speedrun Mod v1.8.0
New Features
GUI Improvements
- Added graphical user interface: Complete Windows Forms GUI for easier configuration and control
- Launch Game button: Automatically locate and launch the FFX executable from the mod
- Auto-start feature: Automatically start the mod when FFX is detected, with UI checkbox and timer logic
- Category selection UI: Added speedrun category selection with rules link; dynamic updates based on settings
- Enhanced tooltips: Added helpful tooltips for UI elements to improve user experience
- Application icon: Custom icon with fallback to default if extraction fails
Configuration Management
- ConfigManager class: New centralized configuration file handling
- Executable directory configuration: Configuration files now stored in executable directory for better portability
- Preserve break checkbox state: Break checkbox state is remembered and restored when CSR is toggled
Code Quality & Architecture
- MemoryWatcherFactory: Refactored memory watchers to use factory pattern for improved maintainability
- Centralized offset constants: Consolidated cutscene transition logic using shared constants
- Character ID constants: Added constants for character IDs, equipment flags, and menu triggers
- Dialog box constants: New constants for dialog boxes, items, and battle states
- Helper methods: Refactored Transition class to use helper methods for character management
Performance Improvements
- Optimized transition lookups: Cached transition dictionaries to eliminate repeated property access (~60 times per second)
- Faster memory watcher lookups: Implemented O(1) dictionary-based name lookups instead of O(n) LINQ searches
- Reduced memory allocations: Pre-allocated and reused change detection lists, eliminating ~60+ allocations per second
- Early-exit optimization: Added ForceLoad check to skip unnecessary transition evaluations when not needed
- Dictionary optimization: Enhanced dictionary usage throughout for better performance
Bug Fixes
- Fixed null reference exception on startup: Corrected reflection-based field lookup in MemoryWatcherFactory
- Fixed dictionary initialization: Properly rebuild memory watcher name dictionary after reflection-based initialization
- Fixed process exit error: Added graceful exception handling when FFX closes, preventing "Cannot process request because the process has exited" error dialog
- Fixed RNG seed setting: Minor fix for setting seeds correctly
- Fixed formatting inconsistencies: Improved code formatting across transition classes and MemoryWatchers
User Interface Changes
- Removed sleep interval option from GUI: Sleep interval is now always set to the default value for backwards compatibility with existing timing documentation
- Adjusted UI layout: Improved spacing and positioning of log level and auto-start controls
- Enhanced button text: Clearer button labels for improved usability
- Real-time logging: Enhanced logging functionality with real-time event subscription
Code Refactoring
- Consolidated member variables: Improved organization in Transition class
- Improved readability: Removed unnecessary blank lines and enhanced code organization throughout
- Better maintainability: Refactored multiple classes for improved code structure
- Boss transition logic: Implemented comprehensive boss transition logic and cutscene offsets
Technical Details
- Built with .NET 8.0
- Improved memory management and reduced GC pressure
- Enhanced error handling and process lifecycle management
Installation Notes:
- Self-contained version: No prerequisites, just extract and run