This is a continuation of the work done by Nudgenudge, original can be found in this topic: http://forums.plexapp.com/index.php/topic/14280-game-launcher/
What has changed? basically allot and not so much. Allot of the internals have been redone to a working a state for me.
- Removed all the Plexhelperplus stuff. The binary is still included but not used anymore since quitting plex while trying to start an emulator didn't work. Instead plex is minimized.
- Rom scanning is done recursively now
- Made feedback somewhat working
- Split the preference and language stuff into the appropriate files allowing for translations.
- Made the grabber for MAME selectable
- Made location for emu and roms a preference item, they no longer need to be in the same dir.
- Changed the Gaintbomb grabber to get info for the same game of different hardware if we don't find a proper match.
- Changed the name matching for the grabbers to allow better matching. ( If a game isn't found now, your name either is bogus or giant bomb doesn't have info for it )
- Made the location for roms and emulators a preference item. They are not linked anymore so you can put both where you want them.
What's been added:
- Preference menu
- Favorite list support
- Search menu's
- Added controller preview image for mame
- Menu to launch a random game
- Optional splitting of arcade and console lists
- Minted mamelist support so only those roms get scanned that actually work
- Added option to exclude dirs from being scanned.
- Added list of known filetypes so we don't pick up .txt files anymore for example
- Added scanner for ProgettoEmma, an alternative for MAWS which is currently down. ( Since this is an italian site the contents are pulled through bing translation api )
- Zipfile support for all emulators
The mamelist support is done through a mamelist.csv file which is an extraction of "Romlister". A windows program that combines a full mame.xml file with controls.xml, catver.ini and nplayers.ini. From this merged list you export the things you want. Categories to export are "Romname, # of buttons, Controls, # players, Category, Year, Manufacturer and Orientation". You always have to select those as the database has 8 columns for it. The list that is included is for 0.144u6 with only working, non clones and no samples.
Full list of currently supported systems is here
Things to know:
- Due to the way plex works, some changes aren't instant visually. For example enabling the favorite list support in preferences won't show up until the next time you start Plex. ( You actually have to quit it and relaunch because it caches the main menu ). This is especially annoying when you set this up for the first time. After scanning and adding roms, if the main menu structure should change, it won't. Restart Plex for the changes to become apparent.
- Each system has it's own helper file. It's found inside the bundle in Content/Helpers/*system*.sh. This is responsible for launching the emulator and making sure plex gets minimized and the emulator stays in front. If you wish to change the emulator to a different one, open the systems.json file in the Resource/json directory. It lists all systems with their emulator.
Prerequisites:
- A mac ( this won't work on windows due to bash scripting )
- PMS + frontend must run on the same system
- OSX 10.6 or above
I don't offer support:
- on the working of emulators besides starting and stopping it.
- configuring a controller to use with all emulators, i use controllermate for it, a sample configuration is also included
What todo if something doesn't work like expected:
- Check the console log! All relevant info gets logged there and is a big help.
What todo in case of:
- a game doesn't get scanned at all: check if the rom is not in an excluded dir. You set the correct location to the rom folders in preferences. The extension of the file is in allowed list. Check the Resource/json/emulator.json file inside the bundle, if the file extension for the emulator is not in there, simply add it and rescan.
- an emulator doesn't launch: Check preferences for the correct location of the emulators.
- the mame roms scanning doesn't return results: if you enabled the mamelist option in preferences, make sure you also imported the list through the maintenance menu. With an empty db, there are no games and none get scanned. Or to go without, just disable it in the preferences and all roms get scanned no matter what.
Howto install:
- Place the "Game Launcher.bundle" in "~/Library/Application Support/Plex Media Server/Plugins"
- Place the "SDL.Framework" dir in "/System/Library/Framework" ( This is not a requirement of the plugin, but some emulators depend on it )
- Place the Roms folder where you want them and point to it in preferences
- Place the Emulators folder where you want them and point to it in preferences
Howto upgrade:
- Replace the "Game Launcher.bundle" file
- Update the emulator bundle if appropriate
- Most probably i have made changes to the database tables over time, if this thing goes south after an bundle update, you will have to remove
the sqlite db in ~/Library/Application Support/Plex Media Server/Plugin Support/Databases/com.plexapp.gamelauncher.db
restart PMS after removing it and a new one will be created automatically.
Howto get help:
- Ask! but i don't have a crystal bowl so telling it "just doesn't work" won't get you anywhere. There are a couple of things that are really helpful like what the
behavior of the plugin is, and what you expect it to be. For instance, if a game doesn't start, tell what the file extension is your trying and to which system it
belongs. It makes finding bugs allot easier. No console log means no help since it contains all relevant info to troubleshoot a not working setup.
The emulator bundle is mainly for x64 only. If you need x86 compatible stuff, you have to find it yourself or compile from scratch.
This is working for me on osx 10.6.8 with PMS 0.9.5.2 and Laika as frontend. Also tested on Lion and didn't find any problems.
#####################################################################
Update 11/11/2014 v1.9.1
Update 2/11/2014 v1.9.0
Added MobyGames grabber
Made some fixes to the menu items
Added OpenVGDB grabber ( sqlite rom database that is pulled in to the bundle on first start )
Added a new web interface since the old one break due to plex changes .... with the help from: dane22 & dagalufh and their excellent plugin!
Removed thegamesdb grabber since the site is gone
Excluded linked images from their domain linked from other grabbers
Fixed gamefaq grabber
Added code and config option for running the grabbers in threaded mode ( huge speed up :) thanks Camhenlin ! )
Fixed the decompression of archives due to the V2 framework
Updated the code of the plugin to V2 framework support. It no longer tries to show under an applications menu but now is under video. Most things are fixed. It's working again with latest PMS and Plex client. Only thing that doesn't work is the webserver to access / alter the library.
Updated emulator bundle to 1.5.3
- mupen64plus
- mame 0145u4
- mess 0145u4
- dolphin
Update 13/03/2012 v1.8.7:
Added a pre-compiled static build of convert to CPanel
Updated code for controller image display for mame to use the new convert binary
Updated a few emulators and kicked the bundle to 1.5.2
Update 11/03/2012 v1.8.6:
Cleaned up code around the controller image generation and added more debugging info
in case the image doesn't get generated for mame roms
Update 11/03/2012 v1.8.5:
Updated file extensions for Kega Fusion
Updated mess for snes support
Fixed a bug where the right video driver wasn't selected for mupen64plus
Update 07/03/2012 v1.8.4:
Added support for youtube trailers playback when available
Added support for native Mac applications / games
Added a 5th grabber for AllGame
Fixed the last few small bugs i could find
Updated the helper file for OpenEmu since it didn't get focus when launched
Updated the helper file for Kega Fusion since it didn't properly go full screen
Updated the helper file for Fuse since it didn't properly go full screen
Updated emulator bundle
Update 02/03/2012 v1.8.3:
More fixes, seems i messed up more then i thought ....
Fixed some grabbers not fetching data anymore
Fixed some logic in fuzzy string matching and making sure we don't request more pages then we actually need.
Update 01/03/2012 v1.8.2:
Bug fix time ...
Fixed a bug in the giantbomb grabber, seems some changes didn't get saved properly
Fixed a bug in the archive extraction detection
Fixed a bug in the gamefaqs grabber where unicode would give problems
Fixed a bug in the list console section when consoles are in a single list
Update 29/02/2012 v1.8.1:
Noticed a last minute bug where launching a game through the search options didn't work, fixed.
Update 29/02/2012 v1.8.0:
Added archive support for all systems ( it's handled in python now, only zip )
Added CRC based rom matching for grabbers that support it
Added fuzzy string matching to allow partial matches
Added more table colums, we now exhaust all info we can get from grabbers
Combined search output for nr of players to include console systems as well if there data for it
( In order to run this version, you need to remove the old sqlite db file ( for the last time, i promise )
Emulator bundle:
Emulator bundle v1.5.3
New bundle: