Skip to content

Sony PlayStation Portable platform integration for Galaxy 2.0

Notifications You must be signed in to change notification settings

TBemme/galaxy-integration-psp

Repository files navigation

galaxy-integration-psp

A Sony PlayStation Portable platform integration for GOG Galaxy 2.0

Features:

  • Add your PlayStation Portable games to your Library, with separate collections for owned and local ("installed") games.
  • Owned games import is based on a text list, which can accommodate the addition of physical games without requiring dumping.
  • Specify a folder for "local games" and path to an emulator, and this subset of your owned games are considered "installed" and can be launched via Galaxy.
  • Support for adding games with multiple entries from more than one region, provided they have a differing internal serial.

How to Install:

  1. Download the .zip from the Releases section, and extract the contents into your installed plugins folder. If you are on Windows, it will be at %localappdata%\GOG.com\Galaxy\plugins\installed

  2. Configure the plugin by editing the config.py file, and providing the desired paths and files.

The games list (PSP-list.txt)

Please provide a .txt file, with one game title on each line. These names must match exactly the format of the No-Intro .dat file you are using (with one exception detailed below), the included PSP-list.txt contains an example. By default, the plugin will look in its own directory for this file, but you can specify a different path in config.py

Exception for titles containing an "&" character: These titles will appear in the .dat file with the ampersand written out as &, however, in the PSP-list.txt (and the name of your .iso file, if you want it to be a local game), it must be a single "&" character.

This list can be generated by:

  • Comparing your dumped games against the .dat with a rom manager, and creating a 'have' list. The simplest to use in my experience is Rom Center, but if you are not familiar with the program, please carefully note the warning to only use on files you have backed-up. Rom Center can also allow you to create a list without renaming the files if desired.
    • If using Rom Center, please uncheck the "Add description" box when creating the report. For Romulus, use the 'description' column only, without column titles. clrmamepro 'have' lists should work with default settings.
  • If your dumped games are already named using the No-Intro format, you can use the included create_PSP-list.bat to automatically create the list for you. Put it into a directory with all your games, and open the file.
  • Creating a text file, and putting the titles of the games you wish to add to your Library, one per line. Use the DAT-o-MATIC search or open your .dat file in a browser or text editor to search for your title (for example, "Birth by Sleep") and add the game name (in this case, "2325 - Kingdom Hearts - Birth by Sleep (Europe) (En,Fr,De,Es,It)")

The games index (PSP.dat)

This plugin uses a No-Intro Sony PlayStation Portable .dat file as an index to prepare a game id (using the serial) and title, in order to add it to your Library. Both numbered and not numbered formats are supported. By default, the PSP.dat in the plugin directory uses the numbered format. If desired, an alternate .dat and path can be specified in config.py.

The game titles on the game list MUST match the full names in the .dat being used, unless they contain an "&", in which case the & in the .dat name will be matched against a single "&" character in the name on the game list.

Two recent .dat files (numbered and non numbered) are included, but more specific ones may be downloaded from datomatic.no-intro.org

Local/"Installed" games and emulation

Using config.py, you can specify a path to a directory of games that will be considered as local games/Installed by Galaxy. You may also specify a path to the executable of the emulator of your choice.

Please note that, in order to support launching them with this plugin, the games must be .iso files (not inside archives), and they must be named according to the .dat you have used. The one exception is titles that contain an "&" character, detailed above.

Known Issues/Caveats:

  • PSN-only games are not currently supported.
  • The game_id is currently generated based on the internal game serial (not box or disc label serials), and Galaxy does not appear to support adding adding a single game_id to your Library more than once. This will mean that you cannot add multiple copies of games with the same internal id - as far as I am aware, the common situations where this may happen are with Limited and Regular Editions of the same game, among revisions of the same region release of a game, and Asian region releases sometimes share another region release's internal id (such as Japan or USA).
    • If there is a case where you really wish to add both, a workaround is to edit your .dat file and change one of the duplicate serial fields you want to add to the box/disc serial instead.
  • When first connecting, there is an X displayed next to Installing & Launching and in the Library non-local games will display a "Not Compatible" message over the Install button, however Launching is a feature supported by this plugin.
  • Currently, the PlayStation Portable games category lacks a title when using the "Group by Platform" Library display. This does not seem able to be fixed by the plugin. In a possibly related issue, if more than one plugin that lacks "Group by Platform" title is installed at one time, the All Games tab of the Library will no longer work correctly when on Group by Platform view.
    • A workaround is to use a grouping other than by Platform.
  • I don't know or have a way of testing if this will work on macOS. The fallback/default paths use a Windows structure, so it will require all paths specified in config.py.

Games database related issues

  • Please keep in mind that the games database that all games must draw information from is still a work-in-progress by the GOG staff. It is not currently able to be edited by the plugin, or by users. So particularly for platforms that are only available via community-integration at this time, information on the game pages may be sparse, images may be missing or have cropping issues, and games may take a while to appear before they are linked to an entry.
    • The GOG games database appears to draw some data from IGDB. Some issues with missing information could be fixed by adding or changing it on the IGDB.
  • Sometimes games are successfully added (which can be verified in the logs file), but not visible in the Library. Or, some games were initially visible, but then disappeared. All games get information from GOG's game database. This includes being linked to a game title within the database and a "visible_in_library": field. This is not editable by the plugin. If this field is set to False, or in some cases it cannot find a game entry to link to, the game will not be visible. Wait some time (at least 24 hours, and restart Galaxy) to see if the game appears, or you can try filing a bug report with GOG.
  • A game was added to the Library and is visible, but it is not linked to the correct one/it appears as 'Unknown Game'. If you know what it is, you can use the Edit game window to search for the correct title to link it to. Especially if it is a Japanese title, they will often only be searchable under an English release title. If it is one of your 'local games', you can try launching the game to identify it.
  • On a game's page, an error message appears saying "Sorry, we couldn't load the data. Retry." keeps appearing. Logs indicate this is an error from failing to retrieve Activity Feed data for that particular game (this platform does not support any activity tracking), and a number of similar bugs have been reported to the Galaxy issue tracker. As before, wait some time (at least 24 hours, and restart Galaxy) to see if the problem is fixed, or you can try filing a bug report with GOG.

Acknowledgements

This is heavily based on my first plugin, for the Nintendo DS platform, so many thanks again to AHCoder and TheMas3212.