Vessel
Windows, Mac OSX, Linux
Configuration
To edit the configurations outside of Vessel, edit VesselConfig.ini. For Windows this is in "%APPDATA%\Vessel\VesselConfig.ini", for Mac and Linux this is in "~/.vessel/VesselConfig.ini".
Keyboard Input
To change the key bindings, edit VesselKeys.ini, found in Vessel's root folder. For Mac, this is in "Vessel.app/Contents/MacOS/VesselKeys.ini".
Game Saves
It is expected that the game saves for Vessel are cross-platform. For Windows they should be located in "%APPDATA%\Vessel\", and for Mac/Linux they should be in "~/.vessel/". Just poke your saves into those directories and you should be all set!
Mac OSX, Linux
MASSIVE DISCLAIMER! The Mac/Linux versions of Vessel are still in development and this section is subject to change prior to/on/after release. Consider this a preparation guide for now!
Known Issues
Note: The following section was originally written by Vessel's primary Mac/Linux developer, Ethan Lee, but may have been edited after the original post by other contributors.
Resolution Settings
The Problem: Resolution settings do not change after applying them in-game.
The Solution: Edit them in the config:
- Open up "~/.vessel/VesselConfig.ini" with your text editor of choice.
- Edit ForcePixelResolutionX for screen width, ForcePixelResolutionY for screen height, VSync for v-sync, and FullScreen for fullscreen.
Why? The renderer, being designed around Direct3D, set display resolutions in a way that SDL/OpenGL was not entirely comfortable with. As a quick fix, I made the engine initialization read the config inputs first, then initialize the display with those settings. I will look at fixing this in-game, however.
Gamepad Bindings
The Problem: I can't set my gamepad bindings in-game!
The Solution: Edit VesselGamepad.ini with your text editor of choice to configure your gamepad. The directions are located in the file. For Mac this will be in "Vessel.app/Contents/MacOS/VesselGamepad.ini", and for Linux this will be in "/path/to/Vessel/VesselGamepad.ini".
Why? The original Win32 version of the game uses XInput and stores configurations for various controllers into the engine itself. For the SDL port, I designed this SDL joystick config system to quickly enable controller support while supporting as many controllers as possible.
Additionally: If you've got a compiler handy, you can use this C file to determine your controller's config values. Note: Requires SDL headers/libs!
Controller Input
The INI File
From the ini file...
------------------------------------------------------------------------------- -- This is the config file for SDL joystick input. -- We map joysticks in a somewhat obtuse way in order make Vessel compatible -- with as many controllers as possible. Here's how it works: -- -- Let's say I've connected my Classic Controller Pro. Here's what will show up -- In the terminal output: -- Gamepad #0: Nintendo Wiimote -- Number of axes: 4 -- Number of hats: 1 -- Number of buttons: 11 -- -- We bind joystick values from 0 up, and we bind the axes, hats, and buttons -- in that order. -- 1 axis = 1 value. Example: The left thumbstick's x axis is 1 axis. -- 1 hat = 4 values: Up, Down, Left, Right in that exact order. -- 1 button = 1 value. Yeah. -- -- So let's look at the Classic Controller again. We have four axes, so we will -- use 0-3 as our axes keys. We have one hat after that, so values 4-7 will be -- that hat value's Down, Up, Left and Right keys (the CCP hat is upside down). -- The buttons will simply be 8-18 after that. -- -- If you don't want to bind a button value, just use -1. -- -- Unfortunately there is an element of trial-and-error due to controllers -- having no real standard, so you are highly encouraged to share your -- controller configurations with the community. I recommend making a database -- at the PCGamingWiki: http://www.pcgamingwiki.com/ -- -- Below is my set of bindings for the Classic Controller Pro, mounted with -- wminput and using this config: -- -- http://www.flibitijibibo.com/wminput/gamepad.wminput -- -- Love, flibit -- -------------------------------------------------------------------------------
The bindings that follow are named after the buttons found on the Xbox 360 controller. Simply bind the values described above to the equivalent 360 controller value.
Configurations
Below is a list of configurations for various controllers, contributed by the community.
Nintendo Wii Classic Controller Pro
This uses the wminput configuration found here: http://www.flibitijibibo.com/wminput/gamepad.wminput
[Binds] Button_A=9 Button_B=8 Button_X=11 Button_Y=10 Button_Black=13 Button_White=12 Button_LeftTrigger=14 Button_RightTrigger=15 Button_Start=17 Button_Back=16 Button_LeftThumb=18 Button_RightThumb=-1 DPad_Up=5 DPad_Down=4 DPad_Left=6 DPad_Right=7 Axis_LX=0 Axis_LY=1 Axis_RX=2 Axis_RY=3