Jump to content
LaunchBox Community Forums

Klopjero

Members
  • Posts

    785
  • Joined

  • Last visited

  • Days Won

    9

Klopjero last won the day on March 7

Klopjero had the most liked content!

Recent Profile Visitors

5,864 profile views

Klopjero's Achievements

64-Bit Supercomputer

64-Bit Supercomputer (6/7)

571

Reputation

  1. now thats pretty cool
  2. will this contribute to an eventual native linux version of LB ?
  3. you have figured it out but i will reply so if people coming to this thread with the same question know ow to do it. open windows explorer and browse to your Launcbox folder and open the data folder located inside. using your plaintext editor like notepad open bigboxsettings.xml locate the <VideoPlaybackEngine>, and change it to <VideoPlaybackEngine>Windows Media Player</VideoPlaybackEngine>. then save and close the file.
  4. returning to WMP made BB stable again. if devs have suggestions on how to improve ffmpeg or how to better provide testing info please prove them
  5. Manualy edited the bigboxsettings file and changed to video engine back to WMP, to see if this improves the situation
  6. going to options now also crashes BB
  7. Hi, when BB is loading the screensaver big box crashes, no error messages on screen just hard crash. Changed to FFMPEG from WMP, will check if changing bck makes a difference
    It looks great! you accomplished the impossible, by making the text list view look sexy.
  8. It doesn't matter if I go to platform view/ platform category view, or open up a platform from the game discovery page. it hangs BB.
  9. It's weird but BB hangs when I load the platformview with the new Aetherial Theme, anyone else have this ?
  10. yea I made that, and no need to apologise, I thought it was great seeing it come by. Besides that I really do have to congratulate you with coming up with such a brilliant and effective way to solve the colorfull playlist problem. congratulations! placing those mascottes in front of the screen or besides the keyboard or theming the console or PC to fit with that franchise is really elegant.
  11. that custom lightgun cabs look familiar @gspawn
  12. so what I ended up doing is just import the whole library. close LB. wrote a different powershell that would add a custom field to each game that would contain the Arcade system metadata so I could build play lists that way. # TeknoParrot add customField to database # Author: klop # Updated: Extended to export LaunchBox Playlist XMLs by platform (from JSON metadata) and enrich the Platform DB with Arcade Platform info using CustomField blocks # ------------------ # Load TeknoParrot Platform XML # ------------------ $platformPath = "[path to]/LaunchBox/Data/Platforms/Teknoparrot.xml" [xml]$platformXml = Get-Content $platformPath $gameIndex = @{} foreach ($game in $platformXml.LaunchBox.Game) { $gameIndex[$game.Title] = $game } # Prepare for appending CustomFields after <Game> entries $launchBoxNode = $platformXml.SelectSingleNode("/LaunchBox") # ------------------ # Process each game and read associated JSON metadata # ------------------ $metadataPath = "[path to tekno parrot]\Metadata" # Path to teknoparrot $groupedGames = @{} foreach ($game in $gameIndex.Values) { $applicationPath = $game.ApplicationPath if (-not $applicationPath) { continue } $profileName = [System.IO.Path]::GetFileNameWithoutExtension($applicationPath) $jsonFilePath = Join-Path $metadataPath "$profileName.json" if (Test-Path $jsonFilePath) { try { $json = Get-Content $jsonFilePath | ConvertFrom-Json $platformName = $json.platform # Add custom field as a sibling of <Game> under root $customFieldNode = $platformXml.CreateElement("CustomField") $gameIdNode = $platformXml.CreateElement("GameID") $gameIdNode.InnerText = $game.ID $customFieldNode.AppendChild($gameIdNode) | Out-Null $nameNode = $platformXml.CreateElement("Name") $nameNode.InnerText = "Arcade Platform" $customFieldNode.AppendChild($nameNode) | Out-Null $valueNode = $platformXml.CreateElement("Value") $valueNode.InnerText = $platformName $customFieldNode.AppendChild($valueNode) | Out-Null $launchBoxNode.AppendChild($customFieldNode) | Out-Null # Group by platform for playlist creation if (-not $groupedGames.ContainsKey($platformName)) { $groupedGames[$platformName] = @() } $groupedGames[$platformName] += $game } catch { Write-Warning "Failed to parse JSON: $jsonFilePath" } } else { Write-Warning "Missing JSON for: $profileName" } } # ------------------ # Save updated Platform DB with ArcadePlatform entries # ------------------ $platformXml.Save($platformPath) Write-Host "Updated Teknoparrot.xml with Arcade Platform custom fields." # ------------------ # Create a LaunchBox Playlist XML for each platform group # ------------------ foreach ($platformName in $groupedGames.Keys) { $playlistGames = $groupedGames[$platformName] $playlistId = [guid]::NewGuid().ToString() $playlistXml = New-Object xml $root = $playlistXml.CreateElement("LaunchBox") $playlistXml.AppendChild($root) | Out-Null # Playlist metadata $playlist = $playlistXml.CreateElement("Playlist") $root.AppendChild($playlist) | Out-Null $playlist.AppendChild($playlistXml.CreateElement("PlaylistId")).InnerText = $playlistId $playlist.AppendChild($playlistXml.CreateElement("Name")).InnerText = $platformName $playlist.AppendChild($playlistXml.CreateElement("NestedName")).InnerText = $platformName $playlist.AppendChild($playlistXml.CreateElement("IncludeWithPlatforms")).InnerText = "false" $playlist.AppendChild($playlistXml.CreateElement("IsAutogenerated")).InnerText = "false" # Add games to playlist $i = 0 foreach ($game in $playlistGames) { $pg = $playlistXml.CreateElement("PlaylistGame") $root.AppendChild($pg) | Out-Null $pg.AppendChild($playlistXml.CreateElement("GameId")).InnerText = $game.ID $pg.AppendChild($playlistXml.CreateElement("GameTitle")).InnerText = $game.Title $pg.AppendChild($playlistXml.CreateElement("GameFileName")).InnerText = [System.IO.Path]::GetFileName($game.ApplicationPath) $pg.AppendChild($playlistXml.CreateElement("GamePlatform")).InnerText = "Teknoparrot" $pg.AppendChild($playlistXml.CreateElement("ManualOrder")).InnerText = "$i" $i++ } # Save $safeName = ($platformName -replace '[^a-zA-Z0-9_\- ]', '_') $playlistOutputPath = "[path to launchbox]/Playlists/$safeName.xml" #it also generates extra playlistst $playlistXml.Save($playlistOutputPath) Write-Host "Playlist '$platformName' created at $playlistOutputPath" } this is isnt the solution for the helpful unhelpful behavior when your importing Teknoparrot though
  13. I thought I found the issue... I had declared the TP\userprofiles folder as the games folder for the system. but that wasn't it either
  14. I'm having a difficult time importing my setup teknoparrot games. I use my sorting script that sorts the games into folders named after PC Arcade system, so i can add the games to LB by selecting the XML's and dropping them into LB and have it do it's thing. This would work for most of my systems, but for some reason LB decides that it will import all the setup games from the [TP folder]\userprofiles folder instead. which is neat, but not what i want. I'm assuming that it has to do with build in logic, I also assume that the XML files have been parsed by the import as it reads the game name and not the file name. somehow even if I'm not telling LB what I'm importing by not telling what type of game files I want it to import, or declare a default emulator for it, it will read the XML's and return to the TP\USERPROFILES folder. This would be so awesome if it would also give me the option to sort the games into seperate platforms or generate the playlists for those platforms, but right now It frustrates me. any suggestions ?
×
×
  • Create New...