Skip to content

Bulk FTP Save Management#252

Open
tonytwostep wants to merge 5 commits intobucanero:mainfrom
tonytwostep:bulk-ftp-operations
Open

Bulk FTP Save Management#252
tonytwostep wants to merge 5 commits intobucanero:mainfrom
tonytwostep:bulk-ftp-operations

Conversation

@tonytwostep
Copy link

@tonytwostep tonytwostep commented Feb 19, 2026

Overview

This is an enhancement that allows for bulk management of saves with a configured FTP target. Two new menu items are conditionally displayed in the Bulk Save Management menu and are consistent with other bulk options, allowing for either all or a selected list of saves to be uploaded to the FTP server.

I noticed this was a requested feature within #227, coincidentally also being a feature that I personally wanted for my own backups.

Demo Video

output.mp4
  • Shows the app with an FTP server connected and some pre-existing saves for the account
  • FTP server's target directory is shown on the right side within the file explorer
  • Four different games (9 saves total) are selected from my HDD (all starting with the letter B for visual clarity)
  • The new option Upload Selected Saves to FTP is used
    • Interactive dialog is shown (yes/no) and progress bar is properly displayed/updated
    • The destination directory updates in real time along with games.txt entries
    • Success dialog shows that 9/9 saves were uploaded
  • The FTP Server screen within the application is shown again, which is properly updated with the four new game entries

Additional Context

I generally tried to keep everything consistent with how you had the other features laid out as to not be disruptive. Used the same enum member naming, same conditionals for displaying FTP menu options, etc.

The bulk FTP functionality itself should be identical to what you had for single file operations, just in sequential form.

More than happy to move things around, so just let me know.

Testing Done

After getting all dependencies installed, I built the executables and .pkg with the debug flag and made use of ps4load + socat to push the EBOOT.bin and tail the live logs.

The PS4Load tool is awesome btw, thank you very much for that.

I also tested by installing the .pkg on my system, and running through the newly added functionality as well as existing functionality to ensure nothing broke.

Potential Additon to Dev Docs

One thing that should probably be added to the docs is that you need to move over some of the assets to /data/apollo/debug/ on the PS4 if debugging like this or the application will crash. This was easily identifiable via the logs though, so not a big deal at all.

Please let me know if there's additional testing/cases you want me to try.


Lastly, I'm really new to the whole orbis toolchain and ps4 development environment, and am still very much in the learning phase, so if I got anything wrong here I would greatly appreciate any corrections.

Thank you in advance for considering this PR.

@bucanero
Copy link
Owner

hi @tonytwostep , thanks for the PR. 👍

I'm about to release a new version so I'll review this PR after the release is out.

About ps4load + debug, yes it's not explicit on the Readme, but due to the fact that ps4 assets are only embedded when you build a complete .pkg, I made the setup so asset files are loaded for /data/apollo/debug/ when running a debug build.

@tonytwostep
Copy link
Author

hi @tonytwostep , thanks for the PR. 👍

I'm about to release a new version so I'll review this PR after the release is out.

About ps4load + debug, yes it's not explicit on the Readme, but due to the fact that ps4 assets are only embedded when you build a complete .pkg, I made the setup so asset files are loaded for /data/apollo/debug/ when running a debug build.

Makes sense and sounds good. I appreciate the additional context too, still getting used to the flow of things, but ps4load made iterative development very easy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments