- psofix is an injected dynamic-linked library (.dll) for Phantasy Star Online, whose purpose is to fix various bugs found within the game, as well as extend features using a plugin system to allow users, such as yourself, to create and share extended features that do not require updates of the main project. psofix includes a number of bug fixes internally, which can be configured to be enabled or not based on the users choice. The plugin interface extends what users have access to by exposing userful events to every loaded plugin, such as Direct3D events.
What is psofix for?
- psofix is created for (specifically) Phantasy Star Online v2 for the PC. This project is not designed for any other version of the game, or any other application for that matter. The project is aimed to overall, work for any version of PSOPC, the internal mechanics of the hook does not use address-specific code at all, but rather API hooks to achive the goals it currently has. The main purpose is to force the game to play windowed, without issue.
User System Requirements
- psofix has been developed on Windows 7 Ultimate, and tested on Windows XP Home, Windows XP Pro, and Windows 7 Ultimate editions. Overall the hook should work on any system that can play PSOPC. However some requires are needed to use this project. (Some users may not need to download either of these!)
Microsoft Visual Studio 2008 Runtimes (Install both of these!)
- Main Package: http://www.microsoft.com/downloads/deta ... laylang=en
- Service Pack 1: http://www.microsoft.com/downloads/deta ... laylang=en
- Fullscreen pso.exe: http://www.schtserv.com/fpso.zip
- Mirror: http://126.96.36.199/psofix/ext_downloads/fpso.zip
Below are a list of features currently included inside the main distributed hook package. Some of the things listed here are a little vague on the descriptions to keep the lists nice and neat looking, please see the notes below for more details on certain things listed.
- Full, unrestricted hook.
- Loader to inject hook into pso.exe
- Fixes windowed mode to give you a full, true, windowed mode. (See Note 1.)
- Fixes windowed mode being forced to a specific size. (See Note 1.)
- Fixes DirectInput from handling keyboard events when PSO does not have focus, or is minimized.
- Fixes alt+tabbing and minimizing. PSO will not crash if you switch windows. (See Note 2.)
- Fixes blinking that PSO does in the task bar when it does not have focus.
- Includes hooking option to disable the mouse movement, unlocking the mouse from PSO so you can use it freely. (See Note 3.)
- Includes hooking option to connect to any server you wish, in case you play on private servers.
- Includes hooking option to fix typing problems on Windows Vista and Windows 7. (See Note 4.)
- Includes aspect ratio resizing, so you do not mess up the look of the screen.
- Includes in-game console for easier command access.
- Includes plugin system to allow loading external modules for various purposes.
- Currently, none.
- Keep In Mind...
Everything done by the hook is done in memory, no patches are made to your pso.exe meaning if you do not wish to use psofix any more, or you wish to play without it sometimes, you just simply don't use it. Your pso.exe is untouched, no files are edited at all to make anything work above. psofix will only access its configuration files and plugin files, it does not touch any other files on your system.
- Note 1. Windowed Mode
psofix includes the ability to force the fullscreen game into windowed mode. This means you do not need to use the windowed mode pso.exe anymore. The window mode in psofix strives to give you normal gameplay is if the game was designed to run in a window. Various fixes are added to the hook to ensure that there are no bugs left unfixed while playing windowed. This window mode is also not limited to a set size window. You can play PSO at any screen resolution you wish. However, the actual game being rendered cannot exceed a certain resolution, and must stretch to the windows size. (This is not something fixable this is hard coded into the game.)
- Note 2. Alt+Tabbing
Currently, this ONLY works if you are playing windowed. The game will still crash if you attempt to use psofix while the game is set to play fullscreen. This is a feature being worked on.
- Note 3. Mouse Hook
The mouse hook is for those who do not use the mouse in game at all. This will completely remove that annoying "rubber-band" effect the mouse has when you click outside of the PSO window. Keep in mind, this fully disables mouse movement in game when this is enabled. So only enable it if you wish to not use the mouse ever, at all.
- Note 4. Imm Ime Hook (Typing Issue)
The Imm Ime hook allows Windows Vista and Windows 7 users to be able to type normally in game, without needing to install the Windows IME as before. This removes the need to be annoyed with the IME not working, or needing to hold some weird key combination while moving the window to get the typing to work.
The in-game console allows you to access functions that are registered to the console, such as loading and unloading plugin files, finding help with specific functions, etc. Plugins can also register commands to the console to extend their functionality and expose more useful features to the users.
The in-game console can be accessed by pressing the: Insert key.
psofix currently registers the following functions to the console automatically:
- Command: clear
The clear command allows you to delete the current text visible inside the console window.
- Command: load
Syntax: /load [plugin]
Arguments: [plugin] which should be replaced with the name of the plugin you wish to load. (Does not require you to type .dll in the name, but you can if you wish to.)
The load command allows you to load a plugin while playing. Plugins that fail to load will print an error the console giving a reason why it failed. You can report these issues/errors to plugin developers to help with making plugins work properly.
- Command: unload
Syntax: /unload [plugin]
Arguments: [plugin] which should be replaced with the name of a plugin that is currently loaded.
The unload command allows you to unload a plugin that has already been loaded. Plugins that fail for any reason will print an error to the console giving a reason why they failed. You can report these issues/errors to plugin developers to help with making plugins work properly.
- Command: help
Syntax: /help [command]
Arguments: [command] should be replaced with the name of the command you want help with. This argument is optional. If you do not put a command name in, /help will print a full list of currently registered commands and their descriptions.
The help command prints the description of the given command. If no command is given, then it will print a table of all the currently registered commands to the console.
psofix comes with default standard settings to be used out of the box for typical users. These settings are 'minimal' in the sense that they should work for everyone.
- Screen Resolution: 800x600
- Direct3D Resolution: 640x480
- Startup Position -1, -1 (Center screen.)
- Aspect Ratio 4:3
- Mouse Hook: Disabled
- Imm Ime Hook: Disabled
- Winsock Hook: Disabled
Below are posts which detail each configuration file. Please read through them before editing any files! All configuration files can be edited using a standard text-editor such as Notepad. (I recommend using Notepad++)