There is a very useful and rather old PSP homebrew app I use all the time to make custom games and apps for my PSP. Here is its download page: https://www.gamebrew.org/wiki/PSPBrew
It still works in Windows 11 but only if you install it on Windows, which is a big drawback for me as I have all my videogame-related apps on an external hard drive, and I plug it in when I need them.
I tried making a portable version of this windows app with the portableapps software as well as with other tools, but unfortunately I had no success.
I have extracted the install_script.iss file to see its dependancies. It seems it needs some specialized registry entries and one or more language files to run. I always get a "language file not found" error when I run the portable exe, no matter the way I make the portable app.
Can someone help me to make this app portable?
Here is the install script of PSPBrew setup executable, that I extracted:
;InnoSetupVersion=5.1.2
[Setup]
AppName=PSP Brew
AppVerName=PSP Brew 0.91
AppId=PSP Brew
AppPublisher=Stefano Russello
AppPublisherURL=http://www.StefanoRussello.it
AppSupportURL=http://www.psp-ita.com
AppUpdatesURL=http://www.StefanoRussello.it
DefaultDirName={pf}\PSP Brew
DefaultGroupName=PSP Brew
OutputBaseFilename=PSPbrew_091
Compression=lzma
PrivilegesRequired=none
DisableProgramGroupPage=yes
WizardImageFile=embedded\WizardImage0.bmp
WizardSmallImageFile=embedded\WizardSmallImage0.bmp
[Files]
Source: "{app}\PSPbrew.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}\png.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}\png.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}\dsk.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "{sys}\drivers\filedisk.sys"; DestDir: "{sys}\drivers"; Flags: ignoreversion
Source: "{sys}\msflxgrd.ocx"; DestDir: "{sys}"; Flags: uninsneveruninstall restartreplace regserver sharedfile
Source: "{app}\psp.ico"; DestDir: "{app}";
Source: "{app}\lang\Italiano.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Deutsch.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\English.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Espanol.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Francais.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Portugues.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Danish.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Dutch.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
Source: "{app}\lang\Chinese.lng"; DestDir: "{app}\lang"; Flags: ignoreversion
[Registry]
Root: HKCU; Subkey: "Software\PSPbrew"; ValueName: "Language"; ValueType: String; ValueData: "{language}";
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Services\FileDisk"; ValueName: "ErrorControl"; ValueType: Dword; ValueData: "$1";
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Services\FileDisk"; ValueName: "Start"; ValueType: Dword; ValueData: "$1";
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Services\FileDisk"; ValueName: "Type"; ValueType: Dword; ValueData: "$1";
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Services\FileDisk\Parameters"; ValueName: "NumberOfDevices"; ValueType: Dword; ValueData: "$4";
[INI]
FileName: "{app}\PSPbrew.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.StefanoRussello.it/";
[Run]
Filename: "{app}\PSPbrew.exe"; Description: "{cm:LaunchProgram,PSP Brew}"; Flags: postinstall skipifsilent nowait
[Icons]
Name: "{group}\PSP Brew"; Filename: "{app}\PSPbrew.exe";
Name: "{group}\Homebrew"; Filename: "{app}\PSPbrew.exe"; Parameters: "/sorthb";
Name: "{group}\{cm:ProgramOnTheWeb,PSP Brew}"; Filename: "{app}\PSPbrew.url";
Name: "{group}\{cm:UninstallProgram,PSP Brew}"; Filename: "{uninstallexe}";
Name: "{userdesktop}\PSP Brew"; Filename: "{app}\PSPbrew.exe"; Tasks: desktopicon;
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\PSP Brew"; Filename: "{app}\PSPbrew.exe"; Tasks: quicklaunchicon;
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}";
[UninstallDelete]
Type: files; Name: "{app}\PSPbrew.url";
[CustomMessages]
English.NameAndVersion=%1 version %2
English.AdditionalIcons=Additional icons:
English.CreateDesktopIcon=Create a &desktop icon
English.CreateQuickLaunchIcon=Create a &Quick Launch icon
English.ProgramOnTheWeb=%1 on the Web
English.UninstallProgram=Uninstall %1
English.LaunchProgram=Launch %1
English.AssocFileExtension=&Associate %1 with the %2 file extension
English.AssocingFileExtension=Associating %1 with the %2 file extension...
Francais.NameAndVersion=%1 version %2
Francais.AdditionalIcons=Icτnes supplιmentaires :
Francais.CreateDesktopIcon=Crιer une icτne sur le &Bureau
Francais.CreateQuickLaunchIcon=Crιer une icτne dans la barre de &Lancement rapide
Francais.ProgramOnTheWeb=Page d'accueil de %1
Francais.UninstallProgram=Dιsinstaller %1
Francais.LaunchProgram=Exιcuter %1
Francais.AssocFileExtension=&Associer %1 avec l'extension de fichier %2
Francais.AssocingFileExtension=Associe %1 avec l'extension de fichier %2...
Deutsch.NameAndVersion=%1 Version %2
Deutsch.AdditionalIcons=Zusδtzliche Symbole:
Deutsch.CreateDesktopIcon=&Desktop-Symbol anlegen
Deutsch.CreateQuickLaunchIcon=Symbol in der Schnellstartleiste anlegen
Deutsch.ProgramOnTheWeb=%1 im Internet
Deutsch.UninstallProgram=%1 entfernen
Deutsch.LaunchProgram=%1 starten
Deutsch.AssocFileExtension=&Registriere %1 mit der %2-Dateierweiterung
Deutsch.AssocingFileExtension=%1 wird mit der %2-Dateierweiterung registriert...
Espanol.NameAndVersion=%1 versiσn %2
Espanol.AdditionalIcons=Iconos adicionales:
Espanol.CreateDesktopIcon=Crear un atajo en el &Escritorio
Espanol.CreateQuickLaunchIcon=Crear un icono de acceso &rαpido
Espanol.ProgramOnTheWeb=%1 en la Web
Espanol.UninstallProgram=Eliminar %1
Espanol.LaunchProgram=Ejecutar %1
Espanol.AssocFileExtension=&Asociar %1 con la extensiσn de archivo %2
Espanol.AssocingFileExtension=Asociar %1 con la extensiσn de archivo %2...
Portugues.NameAndVersion=%1 versγo %2
Portugues.AdditionalIcons=Νcones adicionais:
Portugues.CreateDesktopIcon=Criar νcone no &Ambiente de Trabalho
Portugues.CreateQuickLaunchIcon=Criar νcone na barra de Iniciaηγo &Rαpida
Portugues.ProgramOnTheWeb=%1 na Web
Portugues.UninstallProgram=Desinstalar o %1
Portugues.LaunchProgram=Executar o %1
Portugues.AssocFileExtension=&Associar o %1 aos ficheiros com a extensγo %2
Portugues.AssocingFileExtension=A associar o %1 aos ficheiros com a extensγo %2...
Italiano.NameAndVersion=%1 versione %2
Italiano.AdditionalIcons=Icone aggiuntive:
Italiano.CreateDesktopIcon=Crea un'icona sul &desktop
Italiano.CreateQuickLaunchIcon=Crea un'icona nella barra &Avvio veloce
Italiano.ProgramOnTheWeb=%1 sul Web
Italiano.UninstallProgram=Disinstalla %1
Italiano.LaunchProgram=Avvia %1
Italiano.AssocFileExtension=&Associa l'estensione %2 a %1
Italiano.AssocingFileExtension=Associazione dell'estensione %2 a %1 in corso...
Dutch.NameAndVersion=%1 versie %2
Dutch.AdditionalIcons=Extra snelkoppelingen:
Dutch.CreateDesktopIcon=Maak een snelkoppeling op het &bureaublad
Dutch.CreateQuickLaunchIcon=Maak een snelkoppeling op de &Snel starten werkbalk
Dutch.ProgramOnTheWeb=%1 op het Web
Dutch.UninstallProgram=Verwijder %1
Dutch.LaunchProgram=&Start %1
Dutch.AssocFileExtension=&Koppel %1 aan de %2 bestandsextensie
Dutch.AssocingFileExtension=Bezig met koppelen van %1 aan de %2 bestandsextensie...
Danish.NameAndVersion=%1 version %2
Danish.AdditionalIcons=Ekstra ikoner:
Danish.CreateDesktopIcon=Lav ikon pε &skrivebordet
Danish.CreateQuickLaunchIcon=Lav &hurtigstart-ikon
Danish.ProgramOnTheWeb=%1 pε internettet
Danish.UninstallProgram=Afinstaller (fjern) %1
Danish.LaunchProgram=Kψr %1
Danish.AssocFileExtension=&Sammenkζd %1 med filtypen %2
Danish.AssocingFileExtension=Sammenkζder %1 med filtypen %2...
Chinese.NameAndVersion=%1 °ζ±Ύ %2
Chinese.AdditionalIcons=Έ½ΌΣΝΌ±κ:
Chinese.CreateDesktopIcon=ΤΪΧΐΓζ΄΄½¨ΝΌ±κ(&d)
Chinese.CreateQuickLaunchIcon=ΤΪΏμ½έΖτ¶―ΐΈ΄΄½¨ΝΌ±κ(&Q)
Chinese.ProgramOnTheWeb=ΝψΒηΙΟµΔ %1
Chinese.UninstallProgram=Π¶ΤΨ %1
Chinese.LaunchProgram=ΤΛΠΠ %1
Chinese.AssocFileExtension=½« %1 Σλΐ©ΥΉΓϋ %2 Α¬½Σ(&A)
Chinese.AssocingFileExtension=ΥύΤΪ½« %1 Σλΐ©ΥΉΓϋ %2 Α¬½Σ...
[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "English"; MessagesFile: "embedded\English.isl";
Name: "Francais"; MessagesFile: "embedded\Francais.isl";
Name: "Deutsch"; MessagesFile: "embedded\Deutsch.isl";
Name: "Espanol"; MessagesFile: "embedded\Espanol.isl";
Name: "Portugues"; MessagesFile: "embedded\Portugues.isl";
Name: "Italiano"; MessagesFile: "embedded\Italiano.isl";
Name: "Dutch"; MessagesFile: "embedded\Dutch.isl";
Name: "Danish"; MessagesFile: "embedded\Danish.isl";
Name: "Chinese"; MessagesFile: "embedded\Chinese.isl";