• 1
  • 13
  • 14
  • 15
  • 16(current)
  • 17
[RELEASE] Hyper Launcher - A ROM launcher using HyperSpin assets
Hi,

I'm trying to get this to work on android... (MM)

I use Kodi as replacement launcher, and although I have ArcBrowser working,
I would prefer to run something that is fully intergrated with kodi...

Im testing this with about an Atari Lynx romset (which work with the Handy core in retroarch)
I've installed the Hyperlauncher plugin.
I installed retroarch (and running with various cores).
I placed the lynx hyperlist xml in systems.
I created a system config file in systems_config which matched the earlier hyperlist
and finally I created a matching launcher script in the launcher_scripts folder
(although I had to put this folder in root, so as to be able to change the permissions to allow execution - a quirk of Android I guess)
Code:
#!/bin/bash
#$1 = system name , $2 = game name , $3 = full rom path (folder + file name + extension) , $4 = file name only , $5 = file extension


if [[ "$1" = "AtariLynx" ]] ; then
RETROARCH_CORE="/data/user/0/com.retroarch/cores/handy_libretro_android.so"
elif [[ "$1" = "Atari Lynx" ]] ; then
RETROARCH_CORE="/data/user/0/com.retroarch/cores/handy_libretro_android.so"
fi

retroarch -L "$RETROARCH_CORE" "$3"
[code]

For good measure I also added the roms and media.

Hyperlauncher runs correctly including videos,etc... I can navigate the systems and the roms/games with the correct metadata.

However when I try to launch Games... It simply gives an error

Code:
ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.TypeError'>
                                            Error Contents: encode() argument 1 must be string, not None
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.hyper.launcher/default.py", line 465, in <module>
                                                emulator_launcher()
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.hyper.launcher/default.py", line 252, in emulator_launcher
                                                subprocess.Popen(cmd.encode(txt_encode), shell=True, close_fds=True)
                                            TypeError: encode() argument 1 must be string, not None
                                            -->End of Python script error report<--

ERROR: GetDirectory - Error getting plugin://plugin.hyper.launcher/?filename=A.P.B.%20-%20All%20Points%20Bulletin%20(USA%2c%20Europe)&foldername=AtariLynx&game_name=A.P.B.%20-%20All%20Points%20Bulletin%20(USA%2c%20Europe)&launcher_script=%2fmnt%2fHlSCRIPTS%2fLynx.HL&mode=file&rom_extensions=lnx%20bin%20zip%207z&rom_path=%2fsdcard%2fRoms%2fLynx%2f

ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.hyper.launcher/?filename=A.P.B.%20-%20All%20Points%20Bulletin%20(USA%2c%20Europe)&foldername=AtariLynx&game_name=A.P.B.%20-%20All%20Points%20Bulletin%20(USA%2c%20Europe)&launcher_script=%2fmnt%2fHlSCRIPTS%2fLynx.HL&mode=file&rom_extensions=lnx%20bin%20zip%207z&rom_path=%2fsdcard%2fRoms%2fLynx%2f) failed

ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.TypeError'>
                                            Error Contents: encode() argument 1 must be string, not None
                                            Traceback (most recent call last):
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.hyper.launcher/default.py", line 465, in <module>
                                                emulator_launcher()
                                              File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.hyper.launcher/default.py", line 252, in emulator_launcher
                                                subprocess.Popen(cmd.encode(txt_encode), shell=True, close_fds=True)
                                            TypeError: encode() argument 1 must be string, not None
                                            -->End of Python script error report<--

I realise that launcher script is incorrect....

Can someone please help getting this to work on Android (has anyone got it running on Android?)

Thanks
Reply
Can't help you, sorry. Should try windows if you really want it to work.[/b]
Reply
I have certain system roms placed in separate folders...Dreamcast, PSX, Saturn.  How can I have Hyper Launcher look into these folders recursively to launch the roms? I don't remember having this issue the last time I set this up.  I'll be posting some pics later to show off my minimalistic approach using Kodi and this great add-on.
Reply
Tongue 
Define 'system rom' I don't have any issues. I have all bios files, mame, psx, etc... in in the rom folder, or emulator specific folder, as defined by path variables. A minimalist view, will not bog down kodi, as I've seen, with my heavily modified theme view, allot of gif animations in it... eye candy is beautiful though.
Reply
"System Roms" as in how certain disc-based roms are stored, i.e. my Dreamcast roms are in individual folders, the title of the folder being the game name, and the contents of the folder having the .gdi file along with the separate data files (.bin and .raw files).  Same goes for PSX (.cue and .bin), Sega CD (.cue, .img, .ccd), etc.  Obviously any single-file roms (.iso, .nes, or .sfc) are loaded just fine.  I just need it to go one level deeper inside of those certain game folders and load the appropriate file.
Reply
I have all my multi file roms in archives to save space so I dont think I ever tested this type of structure... what errors are you getting? Can you post your debug log file? Might be able to get it working via the launcher script.
Reply
Nice to see you revisiting. Have you tried Hyperlauncher with the newest version of kodi ? Any improvements ? More specifically, I was hoping the latest, will load gifs faster, better.
Reply
Hi,

No I haven't tried yet... I usually wait till the beta phase or later to test new versions of Kodi.
Reply
UPDATED for Kodi 18 Leia For sharing, this is the script that I used to launch retroarch from Hyper Launcher.  Almost every tweak was picked out of the libretro forums.  This thread mostly

https://forums.libretro.com/t/an-input-l...ation/4407

Running on Ubuntu 18.04 Bionic
Code:
#!/bin/bash
#$1 = system name , $2 = game name , $3 = full rom path (folder + file name + extension) , $4 = file name only , $5 = file extension

# stop function will sleep kodi and stop things like gameplay videos from playing in the background
stop() {
  sleep 1
  pidof kodi-x11 | xargs kill -STOP
}
stop &

# set your processor governor while playing.  Helps you set a higher frame delay without stuttering
sudo cpufreq-set -g performance

if [[ "$1" = "Sony PlayStation" ]] ; then
  core="mednafen_psx_libretro.so"

elif [[ "$1" = "Super Nintendo Entertainment System" || "$1" = "Nintendo Satellaview" ]] ; then
  core="snes9x2010_libretro.so"

elif [[ "$1" = "Nintendo Entertainment System" || "$1" = "Nintendo Famicom" ]] ; then
  core="quicknes_libretro.so"

elif [[ "$1" = "Nintendo Game Boy Advance" ]] ; then
  core="mgba_libretro.so"

elif [[ "$1" = "Sega Genesis" || "$1" = "Sega CD"   ]] ; then
  core="genesis_plus_gx_libretro.so"

elif [[ "$1" = "NEC PC Engine-CD" ]] ; then
  core="mednafen_pce_fast_libretro.so"

elif [[ "$1" = "NEC TurboGrafx-16" || "$1" = "NEC TurboGrafx-CD"  ]] ; then
  core="mednafen_supergrafx_libretro.so"

elif [[ "$1" = "MAME" ]] ; then
  core="mame_libretro.so"

elif [[ "$1" = "Nintendo 64" ]] ; then
  core="mupen64plus_libretro.so"

elif [[ "$1" = "Sony PSP" ]] ; then
  core="ppsspp_libretro.so"
  
elif [[ "$1" = "Nintendo Game Boy Color" ]] ; then
  core="gambatte_libretro.so"

elif [[ "$1" = "Nintendo Game Boy" ]] ; then
  core="gambatte_libretro.so"

elif [[ "$1" = "MSX 2" ]] ; then
  core="fmsx_libretro.so"

elif [[ "$1" = "Nintendo WiiWare" ]] ; then
  core="dolphin_libretro.so"
fi

__GL_SYNC_TO_VBLANK=0 retroarch -L "/usr/lib/libretro/$core" "$3"

# set the cpu back
sudo cpufreq-set -g powersave

# unpause kodi
pidof kodi-x11 | xargs kill -CONT
Reply
I absolutely love this addon. Are there any future plans to have this addon integrated into the Games menu in Kodi 18 Leia?
Reply
Hey mechevarria,

Glad youre enjoying the addon. Unfortunately, while I do have some ideas floating around in my head to improve the addon, I dont have any plans right now to work on the addon - I have a lot going on right now and dont have time to play games, let alone work on a front end for them Sad If I do start working on it again, it probably wont be till after kodi switches to python 3 as I'm sure there will be some significant changes required for the HL to keep working.
Reply
Just for anyone trying this on RPi LE 9.2 Estuary skin, I have a few issues:
  • Using Retroplayer as launcher, roms wont launch first time, I select the rom and then core, it then goes back to a different view (icon list.) If I then select the game it will launch straight away after selecting the core again. (I have defined rom_extensions as retroplayer save states files are in the same dir).
  • With the HL service running things get very rough, I get slowdowns until I restart kodi when moving through lists quickly and it's trying to load up background snaps. I also get some weird skin glitches in the systems list, I think its because I have no snaps defined for the emulators (dont want this).
Its a shame but I dont think this is usable despite it looking great with all the artworks.
Reply
As much as I hate to say it, its best not to invest time into this launcher as I havent had any time to put into improving it and probably wont in the forseeable future. With the switch to python 3 coming soon this addon will most likely not work in new versions of kodi. Its a shame as kodi is such a slick interface, but there are too many pieces to make it look as nicely as dedicated rom launchers, with having to mod skins to make use all the available info + artwork being one of the big ones. I recommend attract mode with skyscraper for linux and launchbox for windows, both are easy to launch from kodi for a seamless experience.
Reply
Reply
(2016-01-29, 04:52)teeedubb Wrote: Hyper Launcher
A ROM launcher for Kodi that uses HyperSpin assets.



Features:
  • Generates ROM lists from HyperList XML's.
  • Configure fallback artwork for game icons and fanart.
  • Background playback of trailer videos after a predefined idle time (requires service.hyper.launcher).
  • Is a video addon so more view and artwork types are available (clearart, banner, thumbs, poster, media, fanart and trailers)
  • Search all systems or individual systems.
  • Set launcher script per system or per game or when starting a ROM.
  • Sort lists by Name, Genre and Date, Rating and Studio.
  • Automatically navigate to last browsed system on Kodi restart.(requires service.hyper.launcher)
  • Attract mode when idle (requires service.hyper.launcher).
  • Display associated game and system artwork (videos, music, images and PDF manuals) in Kodi (PDF's require additional software).
  • RetroPlayer support (needs more testing with multi file roms)
  • Select random item.
  • Ability to launch game variants when selecting parent ROM.
  • Option to display a 'All Games' main menu item.

Configuration:
The addon requires several files to be copied to the addon_data/plugin.hyper.launcher directory within your userdata folder before the addon is usable (necessary folders are created on the addon's first run):
  • For each system, a HyperList XML file is required inside the systems folder. The name of the XML file is what will be displayed in Kodi and will used for system configs, system artwork and system videos.
  • A system config file in the systems_config folder for each system. File is to be named the same as the corresponding HyperList file with '-config' appended to the end. Eg: a HyperList XML file named "Atari 2600.xml" will be displayed in Kodi as "Atari 2600" and will require a config file named "Atari 2600-config.xml". Example file here.
  • A launcher script in the launcher_scripts folder, with the name of the launcher script contained within the system config file. To use RetroPlayer create an empty file called 'kodi_retroplayer' and use that as the launcher in the system-config.xml. Windows and Linux examples.
    Arguments that are passed to non RetroPlayer scripts are: %1 = system name , %2 = game name , %3 = full rom path (folder + file name + extension) , %4 = file name only , %5 = file extension.

Artwork:
  • System artwork goes in the 'systems_artwork/SYSTEM NAME' folder and is automatically used if present. They are named in the same style as the system config file, Eg: Trailer is -trailer, logo is -logo, poster is -poster, icon is -icon, fanart is -fanart. Usable video file types are .flv, .avi and .mp4 and usable artwork types are .png, .jpg and .ico. Additional system artwork (PDF manual's, videos etc)can be placed in the 'systems_artwork/SYSTEM NAME' and can be viewed via the context menu option "View Artwork' (Additional artwork does not need a specific name).
  • ROM artwork can be placed any where, with the paths defined in the system config file and will be automatically used if present. File name is to be the same as the ROM filename. For fanart and icons, you can configure a fallback artwork path to be used if the first choice is not found. Usable video file types are .flv, .avi and .mp4 and usable artwork types are .png, .jpg and .ico. Additional game artwork (PDF manual's, videos etc) within folder in the artwork base path can be viewed via the context menu option "View Artwork'.
  • Automatic background playback of trailers when idle, attract mode and returning to the last opened Hyper Launcher folder after launching a ROM requires the service.hyper.launcher addon to be installed. Idle time before either is defined in service.hyper.launcher addon settings, with 0 to disable.
  • For PDF files there are two options for viewing - Ghostscript and plugin.image.pdfreader. Ghost script is far more compatible and integrated, but needs a external program, can be slower and is not available on all platforms (Android). As a fallback plugin.image.pdfreader can be used and is available via my repo. Enable and configure via the addon's settings.

Additional configuration:
Alternate launchers:
You can set a alternate launcher for specific games via the system-config.xml. Example in the system-config.xml linked to above. The game name tag needs to be games filename. It is also possible to use a alternate launcher when running a ROM via the context menu.

Game variants:
The addon can be configured to display a list of game variants when selecting the parent game. Game variants need to be in a sub-folder in that systems rom directory and folder needs to be named the same as the game ROM (minus the file extension). Parent game file name also needs to be added to the system-config.xml, example in the system-config.xml linked to above. Alternate launchers can be configured for all the game variations or individual variants using the method above.

DOWNLOAD:
Install via my repo


plugin.hyper.launcher.systems.artwork
Contains icons, fanart, clear-logos and posters for many systems, which have been edited to suit Kodi. Is far from complete though, contributions are welcome. Guide for creating new artwork in archive.

Addon installation instructions can be found here.
Code can be found on GitHub.

Useful links:
RocketLauncher
HyperList
HyperSpin ROM tools
HyperSync
EmuMovies
EmuMovies DSU

Is there any news on PS2 emulator support?
Reply
  • 1
  • 13
  • 14
  • 15
  • 16(current)
  • 17

Logout Mark Read Team Forum Stats Members Help
[RELEASE] Hyper Launcher - A ROM launcher using HyperSpin assets4