Jump to content
LaunchBox Community Forums

teeedubb

Members
  • Posts

    69
  • Joined

  • Last visited

Everything posted by teeedubb

  1. I removed the version field for game + watch via LBs bulk edit tool, but the duplicate names still show after restarting LB.
  2. Hi, Does anyone know why games names are being displayed twice on some platforms? It only seems to happen when I arrange by title, the handful of other view arrange by options I tried displayed single names. I thought it could be because of the version tag in the xml had the game name in it, but I removed them form the G+W xml and the names still display twice. <Game> <ApplicationPath>E:\emulation\roms\Game n Watch\Armor Battle.zip</ApplicationPath> <CommandLine /> <Completed>false</Completed> <ConfigurationCommandLine /> <ConfigurationPath /> <DateAdded>2017-04-03T10:37:55.3521623+10:00</DateAdded> <DateModified>2017-04-03T10:37:55.3521623+10:00</DateModified> <Developer /> <DosBoxConfigurationPath /> <Emulator>b32d056c-95aa-492e-b443-9eaa51b51273</Emulator> <Favorite>false</Favorite> <ID>165e5e13-5c8d-4051-8671-6f56f35fe6bf</ID> <LastPlayedDate>2017-04-21T14:04:11.9497084+10:00</LastPlayedDate> <ManualPath /> <MusicPath /> <Notes /> <Platform>Nintendo Game &amp; Watch</Platform> <Publisher /> <Rating /> <RootFolder /> <ScummVMAspectCorrection>false</ScummVMAspectCorrection> <ScummVMFullscreen>false</ScummVMFullscreen> <ScummVMGameDataFolderPath /> <ScummVMGameType /> <SortTitle /> <Source /> <StarRating>0</StarRating> <Status>Imported ROM</Status> <WikipediaURL /> <Title>Armor Battle</Title> <UseDosBox>false</UseDosBox> <UseScummVM>false</UseScummVM> <Version /> <Series /> <PlayMode /> <Region /> <PlayCount>3</PlayCount> <Portable>false</Portable> <VideoPath /> <Hide>false</Hide> <Broken>false</Broken> <Genre /> </Game> <Game> <ApplicationPath>E:\emulation\roms\Nintendo 64DD\Doshin The Giant.zip</ApplicationPath> <CommandLine /> <Completed>false</Completed> <ConfigurationCommandLine /> <ConfigurationPath /> <DateAdded>2017-04-04T10:07:58.5050087+10:00</DateAdded> <DateModified>2017-04-04T10:07:58.5050087+10:00</DateModified> <Developer>Nintendo</Developer> <DosBoxConfigurationPath /> <Emulator>b32d056c-95aa-492e-b443-9eaa51b51273</Emulator> <Favorite>false</Favorite> <ID>8264599e-fefa-4626-a59d-6ba1eccc376c</ID> <LastPlayedDate>2017-04-21T12:14:59.710632+10:00</LastPlayedDate> <ManualPath /> <MusicPath /> <Notes>As a god game, Doshin the Giant's gameplay revolves around typical god-like abilities and tasks, such as altering the geography, managing natural disasters or answering prayers from simulated worshipers. Its designer Kazutoshi Iida has described it as "Populous meets Mario". The player controls the Doshin as he tries to help, or hinder the islands inhabitants. Doing so causes the villagers to release love or hate, which Doshin absorbs. The two feelings cancel each other out, but if he gets enough of one type, he will grow in size. Doshin is the Love Giant, a yellow, featureless giant with a happy face and a few strands of hair. He is a benevolent, helpful being who, with his good actions, earns love from his people and increases in size (only for that day; by the next day, he is back to normal size). He can pick up people trees and other such things. Doshin can transform at will into his evil alter ego Jashin, the Hate Giant. In the GameCube version, he has wings and clawed feet and inspires Hate monuments that are slightly different from the Love monuments Doshin can earn. Jashin is known to be a destructive force to the natives, the exact opposite to Doshin's nature. With his bad actions, people show him their dislike, and he increases in size. The only thing the two giants have in common is that both have an outie belly button. Although he cannot pick up things, he can send streams of fire across the land, destroying structures in their way. Doshin and Jashin can both raise and lower terrain.</Notes> <Platform>Nintendo 64DD</Platform> <Publisher>Nintendo</Publisher> <ReleaseDate>1999-12-01T19:00:00+11:00</ReleaseDate> <RootFolder /> <ScummVMAspectCorrection>false</ScummVMAspectCorrection> <ScummVMFullscreen>false</ScummVMFullscreen> <ScummVMGameDataFolderPath /> <ScummVMGameType /> <SortTitle /> <Source /> <StarRating>0</StarRating> <Status>Imported ROM</Status> <DatabaseID>107946</DatabaseID> <WikipediaURL>https://en.wikipedia.org/wiki/Doshin_the_Giant</WikipediaURL> <Title>Doshin the Giant</Title> <UseDosBox>false</UseDosBox> <UseScummVM>false</UseScummVM> <Version>Doshin The Giant</Version> <Series /> <PlayMode>Single Player</PlayMode> <Region /> <PlayCount>3</PlayCount> <Portable>false</Portable> <VideoPath /> <Hide>false</Hide> <Broken>false</Broken> <Genre>Strategy</Genre> </Game> <Game> <ApplicationPath>E:\emulation\roms\Nintendo DS\3-in-1 Uno AND Skip-Bo AND Uno Freefall.7z</ApplicationPath> <CommandLine /> <Completed>false</Completed> <ConfigurationCommandLine /> <ConfigurationPath /> <DateAdded>2017-03-27T22:13:06.8326339+11:00</DateAdded> <DateModified>2017-03-27T22:13:06.8326339+11:00</DateModified> <Developer /> <DosBoxConfigurationPath /> <Emulator>b32d056c-95aa-492e-b443-9eaa51b51273</Emulator> <Favorite>false</Favorite> <ID>26a6d3b9-e1c6-4f11-969f-1b90548ed37f</ID> <ManualPath /> <MusicPath /> <Notes /> <Platform>Nintendo DS</Platform> <Publisher /> <Rating /> <RootFolder /> <ScummVMAspectCorrection>false</ScummVMAspectCorrection> <ScummVMFullscreen>false</ScummVMFullscreen> <ScummVMGameDataFolderPath /> <ScummVMGameType /> <SortTitle /> <Source /> <StarRating>0</StarRating> <Status>Imported ROM</Status> <WikipediaURL /> <Title>3-in-1 Uno AND Skip-Bo AND Uno Freefall</Title> <UseDosBox>false</UseDosBox> <UseScummVM>false</UseScummVM> <Version>3-in-1 Uno AND Skip-Bo AND Uno Freefall</Version> <Series /> <PlayMode /> <Region /> <PlayCount>0</PlayCount> <Portable>false</Portable> <VideoPath /> <Hide>false</Hide> <Broken>false</Broken> <Genre /> </Game>
  3. Thats good to know that merging platforms is on the cards - imho the db is one of lbs best features and I'd hate to see it become a mess due to semantics. Thats a good point about 'scrape as', and it got me thinking - between scrape as and playlists the current platforms could be emulated if all arcade platforms were under the one Arcade banner. Eg: Want to add a arcade platform (eg sega model 2) -> name the platform whatever you want, but scrape it as 'arcade'. Mabe default any arcade platforms to scrap as 'arcade' in LB? Though I'm not sure how platform metadata would be handled with this approach? Maybe a 'child platform' for sub systems for scraping purposes (eg 'nintendo classics')? Want to create a platform from a existing platform (eg cps2 from mame) -> create a playlist. One issue I see is if all arcade systems are under the one arcade platform the configuring emulators could get messy. Maybe being able to sort roms by folder would help with managing this - want to change the emu for all model 2 roms? sort the files by rom folder - could be a possibility. Or maybe hidden playlists that are only used for managing data? Anyways, hope that makes sense, most of it was me thinking out aloud. Looking forward to the upcoming improvements to the db. I'll hang off updating any arcade info until I hear about the merge (anyway, i get the feeling game and watch is gonna keep me busy for sometime). If there is anyway to help, please let us know.
  4. Hi, While uploading Model 3 media I noticed that the majority of the games were already in the Arcade platform, but they will not scrape as Model 3 because of the different platforms. I updated the Arcade platform here and there, but now the better media is for the Model 3 platform, because I didnt upload new images to the Arcade platform. This approach creates duplicates that in reality are for the same game on the same, but broad, platform. I can see this happening with other systems too, due to multiple 'arcade' platforms within the db (model 1/2/3, atomiswave, taito type x, etc). Maintaining metadata isnt fun and having to do it twice isnt going to make it any better. So I think some discussion would be good on how to structure the db to minimise dupes with arcade games would be good for everyone. I think the Arcade platform should be used differently, and needs to be more like the Platform Category withing LB, where Arcade is the only 'arcade' platform, and the other current 'arcade' platforms (taito type x etc) reside under the one Arcade parent. I'm just getting my head around LB but it could be possible that the current other 'arcade' platforms be converted into playlists? Apart from merging the info, I dont think this would need any extra fields added to the DB, just playlists to be maintained (which could be created from current platforms). A nice bonus would be all 'arcade' games appearing under the one Arcade platform What do you guys think?
  5. Save the script above as lb-rl-game-data.py somewhere on your PC, and update the lines beginning with 'lb_dir =' and 'rb_dir =' to point to your launchbox and rocketlauncher game data directories ( a dir full of xml or ini files named the same as platforms in either program). Watch the forward slashes. Download and install Python 2.7. After Python is installed you should be able to simply double click on the lb-rl-game-data.py file, if not, run the following in a cmd prompt (win+r > cmd > enter) "c:\path\to\python.exe" "c:\path\to\lb-rl-game-data.py"
  6. Dolphin runs fine when launched from lb, BB or externally - it's just lb that crashes. After rereading the OP I'm not sure if their issue is lb or dolphin crashing.
  7. I have noticed the same - either Wii or GC via dolphin dev releases causes lb to crash. Not sure if there is a way to post up lbs log file? I couldn't find anything when I poked around in a few dirs. Edit have you created a issue on the bug tracker? If not I can do it when I get home.
  8. Sweet, thanks for testing. I've posted about keeping the custom ini files through a update in RL and the Devs are talking about implementing it.
  9. Guys, I have put together a download for a preconfigured Sumatra pdf with joytokey to view pdfs with a controller from BB.
  10. I really like this idea, with one change - instead of the 'no boxart' text, have LB generate the covers on the fly with the game name on there, so instead of 'no boxart' it would be 'mr do'. I have seen some kodi skins do this for disc artwork.
  11. This is a Python2.7 script to generate RocketLauncher game data ini files from the LaunchBox xml files so that the info displayed in RL's Pause screen is the same as what is in LB. If populated, it will use the 'Title', 'Publisher', 'Developer', 'ReleaseDate', 'Genre', 'StarRating', 'PlayMode', 'Rating', 'WikipediaURL', 'Notes' fields from the LB xml and will skip games with no data. It creates a backup of your existing RL ini files in the RL game data ini folder. RL will overwrite these files on udating, so you will need to run the script after that. Not sure if its possible to work around this. You need to update the two variables to point to the folders that contain the LB and RL data files (beware of the forward slashes). # -*- coding: utf-8 -*- from __future__ import unicode_literals from __future__ import print_function from itertools import izip from HTMLParser import HTMLParser import os import shutil import re import sys import xml.etree.ElementTree as ET try: txt_encode = sys.getfilesystemencoding() except: txt_encode = 'utf-8' reload(sys) sys.setdefaultencoding('utf-8') lb_dir = 'd:/emulation/LaunchBox/Data/Platforms' rl_dir = 'c:/emulation/RocketLauncher/Data/Game Info' ### rl_dir_backup = os.path.join(rl_dir, 'backup') for system in os.listdir(lb_dir): if system.endswith(".xml"): system_name = system[:-4] print(system_name) xml_lb = os.path.join(lb_dir, system) ini_rl = os.path.join(rl_dir, system_name+'.ini') h = HTMLParser() if os.path.exists(ini_rl): if not os.path.exists(rl_dir_backup): os.makedirs(rl_dir_backup) if os.path.exists(os.path.join(rl_dir_backup, system_name+'.ini')): if os.path.exists(os.path.join(rl_dir_backup, system_name+'.ini.old')): os.remove(os.path.join(rl_dir_backup, system_name+'.ini.old')) shutil.move(os.path.join(rl_dir_backup, system_name+'.ini'), os.path.join(rl_dir_backup, system_name+'.ini.old')) shutil.move(ini_rl, rl_dir_backup) tree = ET.parse(xml_lb) root = tree.getroot() lb_label = ['Title', 'Publisher', 'Developer', 'ReleaseDate', 'Genre', 'StarRating', 'PlayMode', 'Rating', 'WikipediaURL', 'Notes'] rl_label = ['Title', 'Publisher', 'Developer', 'Released', 'Genre', 'Score', 'Players', 'Rating', 'Url', 'Description'] with open(ini_rl, 'w') as f: for game in root.findall('Game'): info_game = '' for lbl,rll in izip(lb_label, rl_label): if game.find(lbl) != None and game.find(lbl).text: if rll == 'Title': info = '[' + h.unescape(game.find(lbl).text) + ']' info = info.replace('\r', ' ').replace('\n', ' ') + "\n" info = re.sub(' +', ' ', info) info_game = info_game + info elif rll == 'Released': info = h.unescape(game.find(lbl).text)[:4] info = rll + '=' + info + "\n" info_game = info_game + info else: info = rll + '=' + h.unescape(game.find(lbl).text) info = info.replace('\r', ' ').replace('\n', ' ') + "\n" info = re.sub(' +', ' ', info) info_game = info_game + info s = ('Publisher', 'Developer', 'Released', 'Genre', 'Players', 'Rating', 'Url', 'Description') if any(x in info_game.encode("utf-8") for x in s): f.write(info_game.encode("utf-8")) f.write("\n")
  12. Hi, This is a bash script to remove duplicate artwork in LB. On my system it removed approx 30,000 images with took up about 5gb. I conducted some spot checks to make sure everything was working, but I didn't check all 30k images to verify if they were duplicates, so please use this script with caution. MAKE SURE YOU HAVE A BACKUP! It performs two types of searches: 1) For JPGs and PNGs with the same name and will delete JPGs if a PNG exists - eg. mario-03.jpg and mario-03.png. 2) A fdupes search of files with the same name, minus the files extensions and two characters on the end - eg mario-01.jpg and mario-02.jpg (files named mario-* will be pooled together for the search), but mario brothers-* will be searched separately. This is a linux script and there are several way to get it to run on windows: Natively, which is fastest. You can use a live media if you don't have a linux install. Or via Windows Subsystem for Linux or Cygwin. Either way you will need fdupes installed. The script has three options, set via variables at the beginning. Set "TMP_DIR" to the same drive that the LB image folder is located on to speed up file operations. Change "DELETE_DUPLICATES" to true only once you are happy with the results from the dry run - there is no undo feature! A list of duplicate files is written to files to lb-img-clean-log. I recommended to complete a 'image cleanup' via LB after running the script. MAKE SURE YOU HAVE A BACKUP! lb-img-clean.sh: #!/bin/bash LAUNCHBOX_MEDIA_DIR="/mnt/storage-ssd/emulation/LaunchBox/Images" TMP_DIR="/mnt/storage-ssd/lb-img-clean-temp" DELETE_DUPLICATES=false #set to true to delete ###### if [[ ! -d "$LAUNCHBOX_MEDIA_DIR" ]] ; then echo "LB media dir does not exist: "$LAUNCHBOX_MEDIA_DIR"" exit 1 fi if [[ ! "$(which fdupes)" ]] ; then echo "fdupes not found" exit 1 fi if [[ $DELETE_DUPLICATES = true ]] ; then while true; do read -p "DELETE DUPLICATES ENABLED!!! DO YOU WANT TO CONTINUE???" yn case $yn in [Yy]* ) read -t5 -n1 -r -p 'Press any key or starting in five seconds'; break;; [Nn]* ) exit 0;; * ) echo "Please answer yes or no.";; esac done else echo "Dry run..." fi WORKING_DIR="$TMP_DIR"/working if [[ -d "$TMP_DIR" ]] ; then rm -r "$TMP_DIR" fi mkdir -p "$WORKING_DIR" cd "$TMP_DIR" LB_DIR_SIZE=$(du -h -d0 "$LAUNCHBOX_MEDIA_DIR" | awk '{print $1}') LB_DIR_COUNT=$(find "$LAUNCHBOX_MEDIA_DIR" -type f | wc -l) LOG_FILE="$TMP_DIR"/lb-img-clean-log IFS=$(echo -en "\n\b") echo -en "\n" echo "LB media dir: "$LAUNCHBOX_MEDIA_DIR"" echo "Script temp dir: "$TMP_DIR"" echo "LB img dir pre size: "$LB_DIR_SIZE"" echo "LB img dir pre count "$LB_DIR_COUNT"" echo -en "\n" echo "Duplicate filename, different extension search..." echo "***duplicate filename, different extension search..." > "$LOG_FILE" for i in $(find "$LAUNCHBOX_MEDIA_DIR" -type f -name "*.jpg") ; do filename="$(basename "$i")" directory="$(dirname "$i")" extension="${filename##*.}" filename_noext="${filename%.*}" if [[ -f "$directory"/"$filename_noext".png ]] ; then echo "$i" >> "$LOG_FILE" if [[ $DELETE_DUPLICATES = true ]] ; then (rm "$i")& fi fi wait done echo "Starting fdupes search..." for d in $(find "$LAUNCHBOX_MEDIA_DIR" -mindepth 2 -type d) ; do fdupes "$d" >> "$TMP_DIR"/fdupes done echo "Preparing fdupes matches for file searches..." cat "fdupes" | while read line ; do echo $(echo -n "${line%.*}" | head -c-2) >> fdupes-cutted done echo "Searching for duplicate entries..." sed -i '/^$/d' fdupes-cutted uniq -d fdupes-cutted fdupes-cutted-uniq echo "***fdupes search..." >> "$LOG_FILE" cat "fdupes-cutted-uniq" | while read line ; do if [[ -d "$WORKING_DIR" ]] ; then rm -r "$WORKING_DIR" fi mkdir -p "$WORKING_DIR" filename="$(basename "$line")" directory="$(dirname "$line")" extension="${filename##*.}" filename_noext="${filename%.*}" mv "$line"* "$WORKING_DIR" OFFSET_IN_SEC=0 for file in $(ls "$WORKING_DIR"); do OFFSET_IN_SEC=$(( $OFFSET_IN_SEC + 1 )) TOUCH_TIMESTAMP=$(date -d "$OFFSET_IN_SEC sec" +%m%d%H%M.%S) touch -t $TOUCH_TIMESTAMP "$WORKING_DIR"/"$file" done if [[ $DELETE_DUPLICATES = true ]] ; then echo "***source directory: "$line"... " >> "$LOG_FILE" fdupes -dNf "$WORKING_DIR" >> "$LOG_FILE" else echo "***source directory: "$line"... " >> "$LOG_FILE" fdupes -f "$WORKING_DIR" >> "$LOG_FILE" fi mv "$WORKING_DIR"/* "$directory" done echo "Image cleanup completed..." if [[ $DELETE_DUPLICATES = true ]] ; then LB_DIR_SIZE=$(du -h -d0 "$LAUNCHBOX_MEDIA_DIR" | awk '{print $1}') LB_DIR_COUNT=$(find "$LAUNCHBOX_MEDIA_DIR" -type f | wc -l) echo "LB img dir post size: "$LB_DIR_SIZE"" echo "LB img dir post count "$LB_DIR_COUNT"" fi echo "Log file located at: "$LOG_FILE"" exit 0
  13. Pre-configured SumatraPDF + JoyToKey to view PDF's with a controller in LaunchBox View File This is a pre-configured SumatraPDF and JoyToKey to use for viewing PDF manuals in LaunchBox with a controller. It was setup with a DS3 using ScpTools Reloaded so it should also be compatible with a Xbox 360 controller. I have not tested it with any other controllers. The zip file contains SumatraPDF, JoyToKey and a AHK script that will launch JoyToKey in a hidden state, then SumatraPDF and when SumatraPDF is closed it will kill JoyToKey. For it to display PDF's in LaunchBox you need to configure the Windows default PDF viewer as 'SumatraPDF-JoyToKey.exe'. You can update either SumatraPDF or JoyToKey by placing the contents of the portable installs in the root directory. Script usage outside of LB is: "c:\path\to\SumatraPDF-JoyToKey.exe" "c:\path\to\pdf\file.pdf" Controls: D-Pad/Left analog stick: Up Down Left Right Right analog stick Up+Down/L+R triggers: Zoom in/out L+R bumpers: Go to First/Last page Cross (Green A on 360): Next page Square (Blue X on 360): Rotate image 90' Triangle (Yellow Y on 360): Cycle through zoom/fit to screen modes (reset zoom) Circle (Red B on 360): Exit SumatraPDF Forum thread Credits: JoyToKey SumatraPDF AutoHotKey Submitter teeedubb Submitted 03/22/2017 Category Third-party Apps and Plugins  
  14. Version 0.2

    301 downloads

    This is a pre-configured SumatraPDF and JoyToKey to use for viewing PDF manuals in LaunchBox with a controller. It was setup with a DS3 using ScpTools Reloaded so it should also be compatible with a Xbox 360 controller. I have not tested it with any other controllers. The zip file contains SumatraPDF, JoyToKey and a AHK script that will launch JoyToKey in a hidden state, then SumatraPDF and when SumatraPDF is closed it will kill JoyToKey. For it to display PDF's in LaunchBox you need to configure the Windows default PDF viewer as 'SumatraPDF-JoyToKey.exe'. You can update either SumatraPDF or JoyToKey by placing the contents of the portable installs in the root directory. Script usage outside of LB is: "c:\path\to\SumatraPDF-JoyToKey.exe" "c:\path\to\pdf\file.pdf" Controls: D-Pad/Left analog stick: Up Down Left Right Right analog stick Up+Down/L+R triggers: Zoom in/out L+R bumpers: Go to First/Last page Cross (Green A on 360): Next page Square (Blue X on 360): Rotate image 90' Triangle (Yellow Y on 360): Cycle through zoom/fit to screen modes (reset zoom) Circle (Red B on 360): Exit SumatraPDF Forum thread Credits: JoyToKey SumatraPDF AutoHotKey
  15. Please delete this thread, I have uploaded the file to the 'Downloads' section.
  16. Hi @Jason Carr, What I meant was to allow a few to update the db directly and not via the website. Reasoning behind that is that amassing system metadata is a much smaller task than metadata for games and is somewhat static (ie no ratings or additional types of artwork, like missing covers). I actually see benefit in keeping the system metadata locked as it is easy to complete in one go and will prevent minor updates which require moderation (updates and moderation could take place in this thread).
  17. Any chance to allow some privileged members update this info in the launchbox db? This would allow the LB developers to stay working on other aspects of the application. Or even someway to enable this info to the put in the db quicker? There are some popular systems missing info. Also having someones hard work go unused for months will sap their motivation. People who have contributed info in this thread would make excellent candidates. Big thanks to @In virtute Dei and others involved in providing this info (sorry if I missed anyone, I have only skimmed through the first and last pages)
×
×
  • Create New...