Jump to content
LaunchBox Community Forums

Klopjero

Members
  • Posts

    794
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by Klopjero

  1. 5 hours ago, PadeMoNiuM Prods said:

    t’s incredibly hard to find Castlevania game themes for the Japanese versions. They’re basically impossible to come across. That’s why I really think you’re being modest here.)šŸ˜…

    These games come in two categories:

    1. the box art and theme is pretty much the same in japan as it is for the rest of the world. so all the needs is the japanese logo.. super easy right?
    2. Or the regional differences are so big that due to censorship, upped or lowered difficulty that it deservers it's own theme. sometimes it just because the box covers are so vastly different per region that it just looks cool in BB
    5 hours ago, PadeMoNiuM Prods said:

    By the way, I actually made Legacy of Darkness and Bloodstained as well. If you want them, I can post the themes and you can include them, just add a link to them. It could be a nice bit of cooperation between us.

    I know that kind of collaboration isn’t very common in this community, but personally I see things differently. For me, that’s what a community is supposed to be — sharing, but also working together.
    Of course, if you prefer to make your own themes, no problem at all, I totally understand.

    I know, I remember my hyperspin days. but you have to admit that your style is rather unique, you tend to use lots of effects in your themes. while alot of us here are happy with giving box art the HS treatment ;)

    Ā 

    5 hours ago, PadeMoNiuM Prods said:

    And just to be clear, this isn’t a ranking or some kind of ā€œbest creatorsā€ list. It’s simply a centralization of links, something practical so everyone can find the themes more easily.

    I'm all for it, it could do with a pin then.. for the event that this post also vanishes in the vast ocean of forum posts.

    5 hours ago, PadeMoNiuM Prods said:

    Right now, if someone wants to find your Castlevania themes, even I don’t know where to look. You go into Game Media, sure, but in which section?

    there IS a search bar, but this is very convenient.Ā 

  2. 2 hours ago, PadeMoNiuM Prods said:

    because for example there’s @Klopjero who made every single Castlevania theme!

    That's an exaggeration, Still havent done the Castlevania Collections releases, I'm still struggling with the Japanese Legacy of shadow... I still want to to finish the related themes for getsufumaden and the bloodstained themes. be sure to give @SuhrvivorĀ a shout out, his themes are super awesome and an inspriration to me. without those i would have never started on the Castlevania themes.Ā 

    • Game On 1
  3. 47 minutes ago, fredrikpj said:

    @KlopjeroĀ also having the same issue, crashed first going into Big Box with latest update, after changing to FFmpeg it always crashes, regardless if I start Big Box or Launchbox. How did you edit the settings?

    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. 9 minutes ago, gspawn said:

    I converted it from png I think, is it yours? I thought Viking's. If yours is, I apologize for the misdirectionĀ 

    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.

    • Thanks 1
  5. 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

  6. 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

    Ā 

  7. 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 ?Ā 
    Ā 

    • Like 1
×
×
  • Create New...