software per recuperare la lista giochi di Teknoparrot

Problemi e soluzioni su configurazioni software, firmware
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4747
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 62 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da pucci »

Gothrek ha scritto: 02/12/2022, 11:02 Ti allego l'ultima versione che avevo fatto.
comunque il path non viene salvato... :)
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4831
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 271 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Gothrek »

pucci ha scritto: 02/12/2022, 12:06
Gothrek ha scritto: 02/12/2022, 11:02 Ti allego l'ultima versione che avevo fatto.
comunque il path non viene salvato... :)
impossibile :D ho testato :D

il primo è vuoto (perchè prima non lo avevi) e poi se premi la x che chiude il programma lo salva.
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4747
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 62 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da pucci »

a me non lo fa. se vuoi mando un video
può essere che le versioni precedenti sporchino la configurazione? ho installato la nuova in cartella separata
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4831
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 271 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Gothrek »

pucci ha scritto: 02/12/2022, 13:04 a me non lo fa. se vuoi mando un video
può essere che le versioni precedenti sporchino la configurazione? ho installato la nuova in cartella separata
la versione (sul lato sx) è la 1.0.0.3 ?

quando riavvii l'app (naturalmente la textbox è vuota) ma se premi i punti per selezionare una dir lui ha automaticamente settato la precedente quindi devi solo confermare

questa "riselezione" con conferma è necessaria per evitare che avviando il software inneschi prima dell'avvio tutte le attività di caricamento della tabella che "pianterebbe" il software fino alla sua conclusione.

ps ora salva anche la disposizione delle colonne e la larghezza ultima impostata.
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4747
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 62 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da pucci »

Gothrek ha scritto: 02/12/2022, 13:05
pucci ha scritto: 02/12/2022, 13:04 a me non lo fa. se vuoi mando un video
può essere che le versioni precedenti sporchino la configurazione? ho installato la nuova in cartella separata
la versione (sul lato sx) è la 1.0.0.3 ?
SI
teknopa.JPG
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4831
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 271 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Gothrek »

pucci ha scritto: 02/12/2022, 13:07
Gothrek ha scritto: 02/12/2022, 13:05
pucci ha scritto: 02/12/2022, 13:04 a me non lo fa. se vuoi mando un video
può essere che le versioni precedenti sporchino la configurazione? ho installato la nuova in cartella separata
la versione (sul lato sx) è la 1.0.0.3 ?
SI

teknopa.JPG
quando riavvii l'app (naturalmente la textbox è vuota) ma se premi i punti per selezionare una dir lui ha automaticamente settato la precedente quindi devi solo confermare

questa "riselezione" con conferma è necessaria per evitare che avviando il software inneschi prima dell'avvio tutte le attività di caricamento della tabella che "pianterebbe" il software fino alla sua conclusione. Caricamente che potrebbe essere inutile/non voluto se si volesse scegliere una dir diversa

ps ora salva anche la disposizione delle colonne e la larghezza ultima impostata.
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4747
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 62 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da pucci »

ok perfetto, ora funziona, pensavo che compilasse già la textbox
Avatar utente
Emu

Donatore
Affezionato
Affezionato
Messaggi: 264
Iscritto il: 30/11/2014, 13:00
Medaglie: 1
Città: ReggioEmilia

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Emu »

pucci ha scritto: 01/12/2022, 16:51
Emu ha scritto: 22/11/2022, 1:02 Ciao Pucci
Negli ultimi anni ho latitato il forum per motivi personali, ma sperando di non fare un torto a Gothrek ho buttato giù uno script PowerShell che fa i check che hai chiesto, e volendo scarica pure le icone mancanti.
Per eseguirlo devi salvarlo come file di testo ed estensione .PS1, poi modifichi il path del tuo TecnoParrot e dovrrsti essere a posto. In alto ci sono alcune variabili che puoi modificare

[removed]
Spero ti possa essere utile.

Per questo genere di attività preferisco degli script, perchè si possono modificare al volo in caso di qualche aggiornamento, e ti puoi fare script nuovi per esigenze analoghe tra diversi emulatori.

Emu
grazie @Emu!
ci sarebbero alcune cose da perfezionare:
1) andrebbe aggiunta un ultima colonna con il nome "breve" del gioco (in pratica è il nome del file che viene letto), la colonna dovrebbe avere come titolo "FileName"
2) sembra esserci un problema con la colonna "HasIcon" perchè viene impostata a "No" su alcuni giochi che in realtà l'icona ce l'hanno, precisamente questi
GameName IconName
Akai Katana Shin for NESiCAxLive Icons\AkaiKatakanaShinNesica.png
Baseball Heroes 2 Icons\BaseballHeroes.png
Battle Climaxx! Icons\BattleClimax.png
Big Buck Hunter Pro Home Icons\BBHHome.png
Guilty Gear Xrd REV2 Icons\GGXrdREV2.png
Guilty Gear Xrd REV2 (APM3) Icons\GGXrdREV2.png
Harikiri Baseball Icons\Harikiri.png
Horse Riders 2 Icons\HorseRiders.png
Hot Wheels Icons\HotWheels.png
Infinity Blade FX Icons\InfinityBlade.png
Koihime Enbu Icons\KoihimeEnbu.png
Spiderman Icons\Spiderman.png
Super Street Fighter IV: Arcade Edition Icons\StreetFighterIVArcadeEdition.png
Super Street Fighter IV: Arcade Edition (Export) Icons\StreetFighterIVArcadeEditionEXP.png
Under Night In-Birth Exe:Late[st] Icons\UnderNightInBirthLatest.png
Ciao Pucci
Ti allego la versione con la colonna del FileName:

Check-TeknoParrot-Resources_v1.1.ps1

Codice: Seleziona tutto

#############################################################################
### VARIABILI PERSONALIZZABILI ###
#############################################################################

# Specificare di seguito la directory dove si trova TP, terminando la stringa con "\"
$TeknoParrotFolder = "E:\Emulator\Arcade\TeknoParrot\"

# Per abilitare/disabilitare l'esportazione su CSV
$ExportCSV = $true

# Nome file CSV di Export, creato nella directory di TecnoParrot
$CSVExportFile = "GamesList.csv"

# Delimitatore usato nell'esportazione in CSV
$CSVDelim = ";"

# Per abilitare il download delle icone mancanti
$DownloadMissingIcons = $true

#############################################################################
### COSTANTI - NON TOCCARE ###
#############################################################################

# Estensione dei files delle icone
$IconExtension = "png"

# Questo è l'URL base per scaricarsi le icone, se si abilita il download
$IconsBaseURL = "https://raw.githubusercontent.com/teknogods/TeknoParrotUIThumbnails/master/Icons/"

#############################################################################
### MAIN ###
#############################################################################

# Leggo i files XML dei GamesProfiles
Write-Host "Lettura files XML dei GamesProfiles in" $($TeknoParrotFolder + "GameProfiles\") -ForegroundColor Cyan
$GamesProfiles = Get-ChildItem $($TeknoParrotFolder + "GameProfiles\*.xml")

# Creo l'array vuoto di giochi
$Games = @()

# Processo tutti i files della directory GamesProfiles
Write-Host "Processo i files XML dei GamesProfiles..." -ForegroundColor Cyan
foreach ($GameProfile in $GamesProfiles){
    # Leggo il file XML
    [xml]$GP = Get-Content $GameProfile.PSPath

    # Controllo se esiste il file JSON corrispondente al file XML del GP
    $DescriptionFilePath = $TeknoParrotFolder + "Descriptions\" + $GameProfile.BaseName + ".json"
    if (Test-Path $DescriptionFilePath){
        # Leggo il file JSON corrispondente al file XML del GP
        $Json = Get-Content $DescriptionFilePath

        $Description = $JSON | ConvertFrom-Json
    } else {
        Write-Host ""
        Write-Host "ATTENZIONE: File $DescriptionFilePath non presente!" -ForegroundColor Yellow
        $Description = @{
            platform = ""
            release_year = ""
            nvidia = ""
            nvidia_issues = ""
            amd = ""
            amd_issues = ""
            intel = ""
            intel_issues = ""
            general_issues = ""
        }
    }

    # Verifico se c'è il file con l'icona
    if ($GP.GameProfile.IconName.Length -gt 1){
        #$IconFilePath = $TeknoParrotFolder + "Icons\" + $GameProfile.BaseName + "." + $IconExtension
        $IconFilePath = $TeknoParrotFolder + $GP.GameProfile.IconName
        if (Test-Path $IconFilePath){
            $HasIcon = "Yes"
        } else {
            $HasIcon = "No"
            if ($DownloadMissingIcons){
                $IconName = $GP.GameProfile.IconName.Replace("Icons\","")
                Write-Host
                Write-Host "Download icona mancante $IconName" -ForegroundColor Magenta
                $IconURL = $IconsBaseURL + $IconName
                try {
                    $resp = Invoke-WebRequest -Uri $IconURL -UseBasicParsing -OutFile $IconFilePath
                }
                catch {
                    if( $_.Exception.Response.StatusCode.Value__ -eq 200 ) {
                        #Write-Host "Download OK!"-ForegroundColor Green
                    } elseif( $_.Exception.Response.StatusCode.Value__ -eq 404 ) {
                        Write-Host "ERRORE: File non presente all'URL $IconURL"-ForegroundColor Yellow
                    } else {
                        Write-Host "WARNING: Errore download file da verificare manualmente" -ForegroundColor Red
                    }
                }
                if (Test-Path $IconFilePath){
                    $HasIcon = "Yes"
                }
            }
        }
    }

    # Estraggo i campi interessanti e me li salvo in un nuovo oggetto
    $Game = [PSCustomObject][ordered]@{
        FileName = $GameProfile.BaseName

        GameName = $GP.GameProfile.GameName
        GameGenre = $GP.GameProfile.GameGenre
        IconName = $GP.GameProfile.IconName
        EmulationProfile = $GP.GameProfile.EmulationProfile
        GameProfileRevision = $GP.GameProfile.GameProfileRevision
        Is64Bit = $GP.GameProfile.Is64Bit
        EmulatorType = $GP.GameProfile.EmulatorType
        DevOnly = $GP.GameProfile.DevOnly
        Patreon = $GP.GameProfile.Patreon
        ExecutableName = $GP.GameProfile.ExecutableName
        ExecutableName2 = $GP.GameProfile.ExecutableName2
        HasTwoExecutables = $GP.GameProfile.HasTwoExecutables

        platform = $Description.platform
        release_year = $Description.release_year
        nvidia = $Description.nvidia
        nvidia_issues = $Description.nvidia_issues
        amd = $Description.amd
        amd_issues = $Description.amd_issues
        intel = $Description.intel
        intel_issues = $Description.intel_issues
        general_issues = $Description.general_issues

        HasIcon = $HasIcon
    }

    # Aggiungo il record appena creato all'array
    $Games += $Game
    Write-Host "." -NoNewline
}

Write-Host
Write-Host

# Mostro i giochi a schermo
$Games | Out-GridView

# Esporto su CSV
if ($ExportCSV){
    Write-Host "Esportazione elenco giochi in" $($TeknoParrotFolder + $CSVExportFile) -ForegroundColor Cyan
    $Games | Export-Csv $($TeknoParrotFolder + $CSVExportFile) -Delimiter $CSVDelim -NoTypeInformation
}
Per quanto dici sulle icone mancanti, in realtà tutte quelle che hai indicato più anche Rambo a me sono indicate come mancanti, nel senso che NON le ho nella "TeknoParrot\Icons" e non ci sono, almeno con il nome esatto, all'URL https://github.com/teknogods/TeknoParro ... ster/Icons da dove vengono scaricate quelle mancanti (Se attiva l'opzione).

Ho verificato diversi files e posso dirti questo:
  • *Per quanto riguarda Rambo (Che tu però hai), il file indicato nell'XML è "Icons\RAMBO.png" (In maiuscolo) mentre su GitHub si chiama Rambo.png (Con solo la prima lettera minuscola), per questo non riesce a scaricarlo.
    *AkaiKatakanaShinNesica ha un typo nel campo IconName Icons\AkaiKatakanaShinNesica.png, quindi in base al nome del campo effettivamente il file che c'è su GitHub ha un nome differente
    * BaseballHeroes.png, BattleClimax.png, BBHHome.png, GGXrdREV2.png e Spiderman.png su GitHub non ci sono
    * SuperStreetFighterIVArcadeEdition ha come IconName Icons\StreetFighterIVArcadeEdition.png , questo forse è stato rinominato perchè su GitHub il file si chiama SuperStreetFighterIVArcadeEdition.png
Tieni presente che i files localmente sono case insensitive, cioè non distinguono miuscole e maiuscole, mentre per scaricarle da GitHub sono case sensitive, che vuol dire che RAMBO è diverso da Rambo.

Ora non ho tempo di controllarli tutti, ma ti chiedo: se controlli a mano i files che sono nella tua directory Icons, rispetto alla colonna IconName quelli indicati come mancanti ci sono? Da cosa dici che ci sono, hai visto il file o l'icona in TP?

Se effettivamente non hai i file con il nome esatto, visto il numero esiguo di files, io li sistemerei a mano uno per uno, poi rilanci lo script e verifichi se manca ancora qualcosa.

Se può aitare, posso scrivere a schermo l'elenco dei vari files mancanti (JSON e Icone) in due elenchi facilmente fruibili al termine dello script, senza dover aprire il CSV in Excel ed applicare filtri

Emu
Emu
Avatar utente
Emu

Donatore
Affezionato
Affezionato
Messaggi: 264
Iscritto il: 30/11/2014, 13:00
Medaglie: 1
Città: ReggioEmilia

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Emu »

Gothrek ha scritto: 01/12/2022, 22:42
pucci ha scritto: 01/12/2022, 16:51
Emu ha scritto: 22/11/2022, 1:02 Ciao Pucci
Negli ultimi anni ho latitato il forum per motivi personali, ma sperando di non fare un torto a Gothrek ho buttato giù uno script PowerShell che fa i check che hai chiesto, e volendo scarica pure le icone mancanti.
Per eseguirlo devi salvarlo come file di testo ed estensione .PS1, poi modifichi il path del tuo TecnoParrot e dovrrsti essere a posto. In alto ci sono alcune variabili che puoi modificare

Check-TeknoParrot-Resources.ps1:

Codice: Seleziona tutto


#############################################################################
### VARIABILI PERSONALIZZABILI ###
#############################################################################

# Specificare di seguito la directory dove si trova TP, terminando la stringa con "\"
$TeknoParrotFolder = "E:\Emulator\Arcade\TeknoParrot\"

# Per abilitare/disabilitare l'esportazione su CSV
$ExportCSV = $true

# Nome file CSV di Export, creato nella directory di TecnoParrot
$CSVExportFile = "GamesList.csv"

# Delimitatore usato nell'esportazione in CSV
$CSVDelim = ";"

# Per abilitare il download delle icone mancanti
$DownloadMissingIcons = $false

#############################################################################
### COSTANTI - NON TOCCARE ###
#############################################################################

# Estensione dei files delle icone
$IconExtension = "png"

# Questo è l'URL base per scaricarsi le icone, se si abilita il download
$IconsBaseURL = "https://raw.githubusercontent.com/teknogods/TeknoParrotUIThumbnails/master/Icons/"

#############################################################################
### MAIN ###
#############################################################################

# Leggo i files XML dei GamesProfiles
Write-Host "Lettura files XML dei GamesProfiles in" $($TeknoParrotFolder + "GameProfiles\") -ForegroundColor Cyan
$GamesProfiles = Get-ChildItem $($TeknoParrotFolder + "GameProfiles\*.xml")

# Creo l'array vuoto di giochi
$Games = @()

# Processo tutti i files della directory GamesProfiles
Write-Host "Processo i files XML dei GamesProfiles..." -ForegroundColor Cyan
foreach ($GameProfile in $GamesProfiles){
    # Leggo il file XML
    [xml]$GP = Get-Content $GameProfile.PSPath

    # Controllo se esiste il file JSON corrispondente al file XML del GP
    $DescriptionFilePath = $TeknoParrotFolder + "Descriptions\" + $GameProfile.BaseName + ".json"
    if (Test-Path $DescriptionFilePath){
        # Leggo il file JSON corrispondente al file XML del GP
        $Json = Get-Content $DescriptionFilePath

        $Description = $JSON | ConvertFrom-Json
    } else {
        Write-Host ""
        Write-Host "ATTENZIONE: File $DescriptionFilePath non presente!" -ForegroundColor Yellow
        $Description = @{
            platform = ""
            release_year = ""
            nvidia = ""
            nvidia_issues = ""
            amd = ""
            amd_issues = ""
            intel = ""
            intel_issues = ""
            general_issues = ""
        }
    }

    # Verifico se c'è il file con l'icona
    if ($GP.GameProfile.IconName.Length -gt 1){
        #$IconFilePath = $TeknoParrotFolder + "Icons\" + $GameProfile.BaseName + "." + $IconExtension
        $IconFilePath = $TeknoParrotFolder + $GP.GameProfile.IconName
        if (Test-Path $IconFilePath){
            $HasIcon = "Yes"
        } else {
            $HasIcon = "No"
            if ($DownloadMissingIcons){
                $IconName = $GP.GameProfile.IconName.Replace("Icons\","")
                Write-Host
                Write-Host "Download icona mancante $IconName" -ForegroundColor Magenta
                $IconURL = $IconsBaseURL + $IconName
                try {
                    $resp = Invoke-WebRequest -Uri $IconURL -UseBasicParsing -OutFile $IconFilePath
                }
                catch {
                    if( $_.Exception.Response.StatusCode.Value__ -eq 200 ) {
                        #Write-Host "Download OK!"-ForegroundColor Green
                    } elseif( $_.Exception.Response.StatusCode.Value__ -eq 404 ) {
                        Write-Host "ERRORE: File non presente all'URL $IconURL"-ForegroundColor Yellow
                    } else {
                        Write-Host "WARNING: Errore download file da verificare manualmente" -ForegroundColor Red
                    }
                }
                if (Test-Path $IconFilePath){
                    $HasIcon = "Yes"
                }
            }
        }
    }

    # Estraggo i campi interessanti e me li salvo in un nuovo oggetto
    $Game = [PSCustomObject][ordered]@{
        GameName = $GP.GameProfile.GameName
        GameGenre = $GP.GameProfile.GameGenre
        IconName = $GP.GameProfile.IconName
        EmulationProfile = $GP.GameProfile.EmulationProfile
        GameProfileRevision = $GP.GameProfile.GameProfileRevision
        Is64Bit = $GP.GameProfile.Is64Bit
        EmulatorType = $GP.GameProfile.EmulatorType
        DevOnly = $GP.GameProfile.DevOnly
        Patreon = $GP.GameProfile.Patreon
        ExecutableName = $GP.GameProfile.ExecutableName
        ExecutableName2 = $GP.GameProfile.ExecutableName2
        HasTwoExecutables = $GP.GameProfile.HasTwoExecutables

        platform = $Description.platform
        release_year = $Description.release_year
        nvidia = $Description.nvidia
        nvidia_issues = $Description.nvidia_issues
        amd = $Description.amd
        amd_issues = $Description.amd_issues
        intel = $Description.intel
        intel_issues = $Description.intel_issues
        general_issues = $Description.general_issues

        HasIcon = $HasIcon
    }

    # Aggiungo il record appena creato all'array
    $Games += $Game
    Write-Host "." -NoNewline
}

Write-Host
Write-Host

# Mostro i giochi a schermo
$Games | Out-GridView

# Esporto su CSV
if ($ExportCSV){
    Write-Host "Esportazione elenco giochi in" $($TeknoParrotFolder + $CSVExportFile) -ForegroundColor Cyan
    $Games | Export-Csv $($TeknoParrotFolder + $CSVExportFile) -Delimiter $CSVDelim -NoTypeInformation
}

Spero ti possa essere utile.

Per questo genere di attività preferisco degli script, perchè si possono modificare al volo in caso di qualche aggiornamento, e ti puoi fare script nuovi per esigenze analoghe tra diversi emulatori.

Emu
grazie @Emu!
ci sarebbero alcune cose da perfezionare:
1) andrebbe aggiunta un ultima colonna con il nome "breve" del gioco (in pratica è il nome del file che viene letto), la colonna dovrebbe avere come titolo "FileName"
2) sembra esserci un problema con la colonna "HasIcon" perchè viene impostata a "No" su alcuni giochi che in realtà l'icona ce l'hanno, precisamente questi
GameName IconName
Akai Katana Shin for NESiCAxLive Icons\AkaiKatakanaShinNesica.png
Baseball Heroes 2 Icons\BaseballHeroes.png
Battle Climaxx! Icons\BattleClimax.png
Big Buck Hunter Pro Home Icons\BBHHome.png
Guilty Gear Xrd REV2 Icons\GGXrdREV2.png
Guilty Gear Xrd REV2 (APM3) Icons\GGXrdREV2.png
Harikiri Baseball Icons\Harikiri.png
Horse Riders 2 Icons\HorseRiders.png
Hot Wheels Icons\HotWheels.png
Infinity Blade FX Icons\InfinityBlade.png
Koihime Enbu Icons\KoihimeEnbu.png
Spiderman Icons\Spiderman.png
Super Street Fighter IV: Arcade Edition Icons\StreetFighterIVArcadeEdition.png
Super Street Fighter IV: Arcade Edition (Export) Icons\StreetFighterIVArcadeEditionEXP.png
Under Night In-Birth Exe:Late[st] Icons\UnderNightInBirthLatest.png
diopadre..mi evitavo un paio d'ore di codice :D
np

scusa l'ignoranza, ma siti di scraping tipo screenscraper piuttosto che adb non hanno info su questi giochi?
Ciao Gothrek
Scusami ma mi ero messo a fae lo script in background nei ritagli di tempo, poi quando sono andato a postarlo ho trovato le tue risposte, ho preferito postarlo ugualmente per non buttare via l'oretta di lavoro, anche perchè ho pensato che potrebbe essere utile anche ad altri per altre situazioni riciclando pezzi

Emu
Emu
Avatar utente
Gothrek
Moderatore
Moderatore
Messaggi: 4831
Iscritto il: 13/07/2017, 13:30
Città: Roma
Grazie Inviati: 17 volte
Grazie Ricevuti: 271 volte

Re: software per recuperare la lista giochi di Teknoparrot

Messaggio da Gothrek »

@Emu

hai fatto benissimo, è stata cmq una scusa per capire qualcosa in piu' su teknoparrot che ignoravo completamente.
Rispondi

Torna a “Miscellanea software”