argarak / uqm-vita

PS Vita port of The Ur-Quan Masters
Other
6 stars 0 forks source link
cmake port psvita sdl2 uqm ur-quan-masters vita

[[./sce_sys/icon0.png]]

uqm-vita is a port of the Ur-Quan Masters project to the PS Vita system.

Gameplay video: https://www.youtube.com/watch?v=9YE5_cMjox8

The Ur-Quan Masters is a volunteer project that brings the classic game 'Star Control II' to modern systems. The code from the Ur-Quan Masters project is derived from code written by Toys for Bob, Inc. for the 3DO version of 'Star Control II'.

uqm-vita is derived from David Holmes' UQM cmake build system (https://github.com/dholmes215/uqm).

** Pre-requisites

You will need a PS Vita equipped to run homebrew. Follow https://vita.hacks.guide/ if you haven't yet hacked your Vita.

For uqm-vita to function correctly, you will need either the =FdFix= or =rePatch= plugins which fix a problem where file descriptors are invalidated after suspend and resume, causing erratic behaviour when suspending then resuming the game if not installed.

If you have neither installed, =FdFix= is recommended. Installation instructions can be found here: https://github.com/TheOfficialFloW/FdFix (note that your taiHEN config may be in =ur0:tai/config.txt= instead)

It is recommended to save your game before suspend if possible.

** Installation

Make sure you have read the [[#Pre-requisites][Pre-requisites]].

Note: if you have already obtained the application through the Vita Homebrew Browser or otherwise, you only need to copy and extract your chosen data zip.

  1. Visit the Github releases page to download game data and binaries: https://github.com/argarak/uqm-vita/releases
  2. Download =uqm.vpk= and either of =uqm-data-minimal.zip= or =uqm-data-full.zip=.
    • =uqm-data-minimal.zip= contains only the base configuration and content to make the game work. Choose this version if you intend on installing your own selection of addons.
    • =uqm-data-full.zip= contains the base configuration, content and all addon packs from [[http://sc2.sourceforge.net/downloads.php][the Ur-Quan Masters project download page]], i.e. the 3DO music, voice audio and all of the official Precursor music remix packs (fairly large ~380MiB).
  3. Make sure both files are downloaded correctly (you may want to check the MD5 hashes on the release page) and copy both the vpk file and the zip file to the =ux0:/data= directory (either using FTP, USB or otherwise).
  4. Once both files are copied (=uqm-data-full.zip= may take a while), extract/copy the =uqm= folder inside of the zip to the =ux0:/data= directory, after which you can delete the zip file to clear unnecessary space.
  5. Install the vpk file.

If you used the content files from =uqm-data-full.zip=, you will need to enable the extra content in the Setup menu, then restart uqm-vita.

*** Installing Addon Packs

If you copied the files in =uqm-data-minimal.zip= you may want to install addon packs which you can find on [[http://sc2.sourceforge.net/downloads.php][the Ur-Quan Masters project download page]]. Addon packs can be installed by copying the addon file (usually =.uqm= or =.zip=) to =ux0:/data/uqm/content/addons=. Only official UQM addon packs will work.

** Building

If you want to build your own version of uqm-vita, you will need to configure vitasdk with all default packages installed. You will also need =cmake= and all prerequisites to vitasdk. Instructions on installing vitasdk can be found at [[https://vitasdk.org/]].

First clone and navigate to the repository. Then execute the following commands:

+begin_src bash

mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. # or Debug if you prefer make

+end_src

You can specify the amount of concurrent processes for make with =-j=, e.g. =-j6=, to build faster if your hardware allows.

If compilation succeeds, you should find =uqm.vpk= in the build directory to transfer to your Vita via FTP, USB or otherwise. Note that you will need the game content installed also, follow the instructions at the [[#Installation][Installation]] stage, and omit installing the provided release vpk with installing your own build.

Install [[https://github.com/CelesteBlue-dev/PSVita-RE-tools/tree/master/PrincessLog/build][PrincessLog]] if you want remote logging for debugging purposes.

** Default Controls

In melee, the default controls are:

| Control | Purpose | |----------------------+----------------------------| | D-Pad | Movement | | Left Analogue Stick | Directional Turning | | Right Analogue Stick | Throttle (Digital Control) | | R1 | Primary Attack | | L1 | Secondary Attack | | Select | Pause Game | | Start | Quit |

In *Space, the default controls are:

| Control | Purpose | |----------------------+----------------------------| | D-Pad | Movement/Selection | | Left Analogue Stick | Directional Turning | | Right Analogue Stick | Throttle (Digital Control) | | Circle | Open Menu | | X | Confirm | | R1 | Zoom In (Starmap) | | L1 | Zoom Out (Starmap) | | Square | Search (Starmap) | | Triangle | Search Next (Starmap) | | Select | Pause Game | | Start | Quit |

When landed on a planet, the default controls are:

| Control | Purpose | |----------------------+----------------------------| | D-Pad | Movement | | Left Analogue Stick | Directional Turning | | Right Analogue Stick | Throttle (Digital Control) | | R1 | Lander Weapon | | L1 | Takeoff (Alternate) | | Square | Takeoff | | Select | Pause Game | | Start | Quit |

Touchscreen input is not supported. In the Super Melee menu, the Square button is used to remove the selected ship from either team.

** Options

In the Setup menu, which can be accessed from the main menu, there are multiple options to configure, some of which work better than others at the moment. Refer to the following table for various gotchas or unexpected behaviour with certain options:

| Category | Option | Notes | |----------+---------------+----------------------------------------------------------------------------------------------| | Graphics | Resolution | No effect. Original game is always 320x240 upscaled to match the Vita resolution. | | | Aspect Ratio | No effect. Will always letterbox to fit the original aspect ratio. | | | Display | No effect. | | | Gamma | No effect. | | | Scaler | "None" by default (recommended). Bilinear also works fine, other scalers are extremely slow. | | 3DO/PC | Melee Zoom | "Stepped" by default. Smooth scrolling results in lag in melee, avoid if you can.* | | Sound | Positional | Not supported. | | Advanced | Show FPS | This shows FPS in the remote console (not on screen). For this use a FPS counter plugin. | | | Sound Driver | OpenAL not supported. | | | Sound Quality | High quality sound causes lag. Medium quality is recommended. |

/*this may be due to some quirk with the gxm renderer, if you have an idea why smooth scaling could be slow, please let me know here: [[https://github.com/argarak/uqm-vita/issues/3][Issue #3]]/

There is also a hidden option in the =ux0:/data/uqm/uqm.cfg= file called =directionaljoystick= where you can disable the directional turning joystick input.

** Gameplay

If you're new to the game, I highly suggest reading the [[https://wiki.uqm.stack.nl/Non-Spoiler_Hints][Non-Spoiler Hints]] at the [[https://wiki.uqm.stack.nl/Main_Page][Ultronomicon]] wiki. There are other useful articles there if you are already familiar with the game, keep in mind most pages are spoiler heavy!

If you want an arcade experience of the battle system, try the Super Melee mode!