5 Commits
8 changed files with 199 additions and 355 deletions

No files matched your search

+147
View File
@@ -1,5 +1,152 @@
# Changelog - PS5 Upload Suite
## Version 3.2.0 - Mobile Improvements & Bug Fixes (January 24, 2026)
### 🎯 Improvements
#### 💾 Accurate Storage Display
- **Storage now matches PS5 UI** - Shows ~848 GB instead of raw 872 GB
- **Accounts for reserved space** - Same calculation as PS5 system
- Uses proper calculation: `(total_blocks - reserved) * block_size`
#### 📱 Mobile App Improvements
- **Multi-select mode** - Toggle button (☑️/✅) to select multiple files/folders
- **Folder browser** - Visual folder picker for Copy/Move destinations with recursive navigation
- **Sorted file list** - Folders always displayed at top, then files (alphabetically)
- **Exit confirmation** - Prompt dialog when pressing back button
- **Delete folders** - Now supports folder deletion (not just files)
- **Batch operations** - Delete/download multiple items at once
#### 3. 🐛 Bug Fixes
- **Fixed empty folder deletion** - No more "Unexpected response" error when deleting empty directories
- **Fixed Copy/Move crash** - No longer crashes when selecting destination folder (saved file info before browsing)
- **Fixed multi-select count** - Correct item count in delete confirmation dialog
- **Fixed folder navigation** - Can enter folders after actions complete (auto-exit multi-select mode)
---
## Version 3.1.0 - Parallel Chunked Uploads (January 2026)
### 🚀 Performance Improvements
#### 1. ⚡ Parallel Chunked Uploads (104 MB/s!)
- **Large files (>100MB)** are now split into 500MB chunks
- **4 parallel connections** upload chunks simultaneously
- **Result:** ~104 MB/s upload speed (2x faster than before!)
- **Fixed race condition:** First chunk creates file before others start
- **Fixed closure bug:** Correct offset/size capture for parallel tasks
#### 2. 📊 Real-time Progress Display
- **Speed display** now updates in real-time during chunked uploads
- **ETA display** shows accurate time remaining
- **Progress bar** correctly shows 0-100% for chunked files
- No more speed dropping to 0 during large file uploads
#### 3. 💾 Storage Display Improvements
- **Changed label** to "Data Storage (/data)" for clarity
- **Uses statfs with f_bavail** for more accurate available space
- **Real-time updates** every 5 seconds when connected
---
## Version 3.0.0 - Mobile Client & Path Fixes (January 2026)
### 🐛 Critical Bug Fixes
#### 1. 🔧 Path Normalization Fix
- **Fixed:** Double-slash paths (`//mnt/ext1/...`) that caused directory creation to fail
- **Affected:** All file operations (upload, download, delete, rename, copy, move)
- **Solution:** Added `NormalizePath()` function in both client and server
- **Result:** 100% reliable directory creation and file uploads
#### 2. 📱 Android Mobile Client
- **NEW:** Full-featured Android app for PS5 file management
- **Multi-PS5 Profiles** - Save and switch between multiple PS5 consoles
- Upload files from phone to PS5
- Download files from PS5 with Share option
- Browse PS5 filesystem
- Create new folders
- Rename files/folders
- Copy files/folders
- Move files/folders
- Delete files
- Favorites for quick navigation
- Debug Log with Copy to clipboard
- Transfer History tracking
#### 3. 🛠️ Server Improvements
- Path normalization in all handler functions
- More robust error handling
- Improved stability for parallel uploads
---
## Version 2.1.0 - Performance & History (January 2026)
### 🚀 Performance Optimizations
#### 1. ⚡ Massive Upload Speed Boost (88-110 MB/s)
- **Server-side:** Replaced `fwrite()` with direct `write()` syscalls
- **Client-side:** 8 parallel large file uploads (optimal for PS5 disk)
- **Result:** 80-110 MB/s aggregate upload speed on Gigabit Ethernet
- **Peak bursts:** Up to 2.05 GB/s when hitting disk cache
- **Per-file:** 11-14 MB/s sustained per connection
#### 2. 📊 Transfer History
- Complete history of all uploads and downloads
- Success/Failed status tracking with error messages
- Speed statistics (average, min, max)
- Export to CSV/JSON for analysis
- Persistent storage across sessions
#### 3. 🔄 Auto-Clear History on Startup
- Optional checkbox to clear history automatically
- Useful for keeping UI clean between sessions
- Setting saved in `ps5_upload_settings.json`
#### 4. 🖥️ Maximized Window UI
- Application opens in full-screen mode by default
- Better visibility for large file transfers
- Can be resized/restored as needed
### Technical Improvements
- ✅ **16MB socket buffers** (up from 4MB) for maximum throughput
- ✅ **Per-file mutex locking** - Parallel writes without race conditions
- ✅ **File pre-allocation** - Reduces disk fragmentation for large files
- ✅ **Direct syscalls** - Bypasses stdio buffering overhead
---
## Version 2.0.0 - Download & Multi-PS5 (January 2026)
### 🎉 4 Major New Features
#### 1. 📥 Download Files (PS5 → PC)
- Right-click any file → "⬇️ Download to PC"
- Save file dialog for destination selection
- Real-time progress tracking with speed display
- Optimized with sendfile for maximum speed
#### 2. 🔍 File Search
- Search box in PS5 Files panel
- Real-time filtering as you type
- Case-insensitive search
- Quick "Clear" button to reset
#### 3. ⭐ Favorites/Bookmarks
- Save frequently used PS5 paths
- Quick dropdown navigation
- Add/Remove favorite paths
- Persistent storage in JSON
#### 4. 🎮 Multi-PS5 Support
- Save multiple PS5 profiles (IP + name)
- Quick switch between different PS5 consoles
- Dropdown profile selector
- Persistent profile storage
---
## Version 1.3.0 - Stable Release (January 13, 2026)
### 🎯 Major Achievement
Binary file not shown.
Binary file not shown.
+52 -98
View File
@@ -2,11 +2,11 @@
**By Manos**
**Version 3.1.0 - Parallel Chunked Uploads & Real-time Progress**
**Version 3.2.0 - Mobile Improvements & Bug Fixes**
Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s** upload speeds for large files using parallel chunked uploads!
⭐ **NEW in v3.1.0:** Parallel chunked uploads (2x faster!), real-time speed/ETA display, storage improvements!
⭐ **NEW in v3.2.0:** Accurate storage display (848 GB), mobile multi-select, folder browser, bug fixes!
📱 **Android Mobile Client available!**
@@ -15,49 +15,32 @@ Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s
---
## 📦 What's Included
## 📦 Downloads
Download the latest release from the [Releases](https://github.com/manos555555/PS5-Upload-Suite/releases) page:
### 1. PS5 Server Payload
- **File:** `payload/ps5_upload_server.elf`
- **File:** `ps5_upload_server.elf`
- **Port:** 9113
- **Protocol:** Custom binary (optimized for speed)
- **Features:**
- 16MB socket buffers (optimized for maximum throughput)
- SO_NOSIGPIPE enabled
- TCP_NODELAY for low latency
- Direct `write()` syscalls (bypasses stdio buffering for 80-110 MB/s upload)
- Per-file mutex locking (parallel writes without race conditions)
- File pre-allocation for large files (reduces fragmentation)
- Multi-threaded client handling
- High-speed custom binary protocol
- 16MB socket buffers for maximum throughput
- Multi-threaded client handling
### 2. Windows GUI Client
- **File:** `client/bin/Release/net6.0-windows/win-x64/publish/PS5Upload.exe`
- **Framework:** .NET 6.0 WPF
- **Features:**
- Modern dark theme UI (opens maximized for better visibility)
- Drag & drop file/folder upload
- Browse PS5 filesystem
- Real-time upload progress with speed tracking
- 8 parallel large file uploads (optimal aggregate throughput)
- 128MB TCP buffers for maximum network performance
- Transfer History with success/failed tracking
- Auto-clear history on startup option
- Storage space display
- Recursive folder upload
- **File:** `PS5Upload.exe`
- Self-contained executable (no .NET installation required)
- Modern dark theme UI
- Drag & drop file/folder upload
- Real-time upload progress with speed tracking
- Transfer History with success/failed tracking
- Storage space display
### 3. 📱 Android Mobile Client (NEW in v2.2.0)
- **File:** `mobile/bin/Release/net6.0-android/publish/com.ps5tools.uploadsuite-Signed.apk`
- **Framework:** .NET MAUI
- **Features:**
- **Multi-PS5 Profiles** - Save multiple PS5 with different IPs
- Upload files from phone to PS5
- Download files from PS5 to phone
- Browse PS5 filesystem
- Delete files/folders
- Favorites for quick navigation
- Debug Log with Copy function
- Transfer History
- Share downloaded files
### 3. 📱 Android Mobile Client
- **File:** `PS5UploadMobile.apk`
- Upload/download files from your phone
- Multi-PS5 Profiles support
- Browse PS5 filesystem
- Favorites for quick navigation
---
@@ -65,17 +48,13 @@ Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s
### Step 1: Load PS5 Payload
1. Copy `payload/ps5_upload_server.elf` to your PS5:
```
/data/etaHEN/payloads/ps5_upload_server.elf
```
1. Download `ps5_upload_server.elf` from the [Releases](https://github.com/manos555555/PS5-Upload-Suite/releases) page
2. Load the payload with elfldr
2. Copy it to your PS5: `/data/etaHEN/payloads/ps5_upload_server.elf`
3. You should see notification:
```
PS5 Upload Server: 192.168.0.XXX:9113 - By Manos
```
3. Load the payload with elfldr
4. You should see notification: `PS5 Upload Server: 192.168.0.XXX:9113 - By Manos`
### Step 2: Run Windows Client
@@ -140,55 +119,6 @@ Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s
**Note:** Upload speeds depend on network quality and PS5 disk write performance. WiFi has ~40-60% overhead compared to Ethernet.
---
## 🔧 Building from Source
### PS5 Payload
Requirements:
- PS5 SDK (prospero-clang)
- WSL or Linux
```bash
cd payload
bash compile.sh
```
### Windows Client
Requirements:
- .NET 6.0 SDK or later
- Windows 10/11
```cmd
cd client
build.bat
```
Or manually:
```cmd
dotnet publish -c Release -r win-x64 --self-contained true
```
---
## 📋 Protocol Specification
See [PROTOCOL.md](PROTOCOL.md) for detailed protocol documentation.
### Commands
- `PING` - Test connection
- `LIST_STORAGE` - Get storage info
- `LIST_DIR` - List directory contents
- `CREATE_DIR` - Create directory
- `DELETE_FILE` - Delete file
- `DELETE_DIR` - Delete directory
- `START_UPLOAD` - Begin file upload
- `UPLOAD_CHUNK` - Upload file chunk
- `END_UPLOAD` - Finish upload
- `DOWNLOAD_FILE` - Download file from PS5 (NEW v2.0)
- `SHUTDOWN` - Shutdown server
---
@@ -220,6 +150,30 @@ See [PROTOCOL.md](PROTOCOL.md) for detailed protocol documentation.
---
## 📝 What's New in v3.2.0
### 🎯 Improvements:
#### 1. 💾 Accurate Storage Display
- **Storage now matches PS5 UI** - Shows ~848 GB instead of raw 872 GB
- **Accounts for reserved space** - Same calculation as PS5 system
#### 2. 📱 Mobile App Improvements
- **Multi-select mode** - Toggle button to select multiple files/folders
- **Folder browser** - Visual folder picker for Copy/Move destinations
- **Sorted file list** - Folders always displayed at top
- **Exit confirmation** - Prompt when pressing back button
- **Delete folders** - Now supports folder deletion (not just files)
- **Batch operations** - Delete/download multiple items at once
#### 3. 🐛 Bug Fixes
- **Fixed empty folder deletion** - No more "Unexpected response" error
- **Fixed Copy/Move crash** - No longer crashes when selecting destination
- **Fixed multi-select count** - Correct item count in delete confirmation
- **Fixed folder navigation** - Can enter folders after actions complete
---
## 📝 What's New in v3.1.0
### 🚀 Performance Improvements:
@@ -345,7 +299,7 @@ See [PROTOCOL.md](PROTOCOL.md) for detailed protocol documentation.
## 📝 License
MIT License - Free to use and modify
This software is provided as-is for personal use.
---
-257
View File
@@ -1,257 +0,0 @@
# 🚀 PS5 Upload Suite v2.1.0 - Performance & UX Release
**Release Date:** January 19, 2026
**By Manos**
---
## 🎯 Overview
Version 2.1.0 brings **massive performance improvements** to upload speeds and several quality-of-life enhancements. Upload speeds have been optimized to achieve **88-110 MB/s aggregate throughput** on Gigabit Ethernet, with peak bursts up to **2.05 GB/s**.
---
## ⚡ What's New
### 1. 🚀 Massive Upload Speed Boost (88-110 MB/s)
**The Problem:**
- Previous versions achieved 60-150 MB/s download speeds but only 4-12 MB/s upload speeds
- Upload was bottlenecked by stdio buffering (`fwrite()`) and single-threaded disk writes
**The Solution:**
- **Server-side:** Replaced `fwrite()` with direct `write()` syscalls
- Bypasses stdio buffering overhead
- Eliminates unnecessary memory copies
- Direct kernel I/O for maximum performance
- **Client-side:** Optimized to 8 parallel large file uploads
- Leverages PS5 disk's parallel write capacity
- 128MB TCP buffers for maximum network throughput
- Intelligent queuing system for large files (>100MB)
**Results:**
- ✅ **88-110 MB/s** aggregate upload speed (Gigabit Ethernet)
- ✅ **11-14 MB/s** per file sustained
- ✅ **Peak bursts:** 610 MB/s - 2.05 GB/s (disk cache hits)
- ✅ **WiFi 6:** 32-70 MB/s aggregate (still 3-5x faster than before)
### 2. 📊 Transfer History
**New Feature:** Complete tracking of all file transfers
- **Success/Failed Tracking:** Every upload and download is logged with status
- **Speed Statistics:** Average, min, and max speeds for each transfer
- **Error Messages:** Detailed error information for failed transfers
- **Persistent Storage:** History saved to `ps5_transfer_history.json`
- **Export Options:** Export to CSV or JSON for analysis
- **Tabs:**
- **All:** Complete transfer history
- **Completed:** Only successful transfers
- **Failed:** Only failed transfers (with retry/remove options)
**Use Cases:**
- Verify all files uploaded successfully
- Identify problematic files
- Track transfer performance over time
- Audit file operations
### 3. 🔄 Auto-Clear History on Startup
**New Feature:** Optional automatic history clearing
- **Checkbox:** "🔄 Auto Clear on Startup" in Transfer History section
- **Persistent Setting:** Saved to `ps5_upload_settings.json`
- **Use Case:** Keep UI clean between sessions without manual clearing
- **Flexible:** Can be toggled on/off at any time
### 4. 🖥️ Maximized Window UI
**Improvement:** Better default window size
- Application now opens in **maximized mode** by default
- Better visibility for large file transfers and logs
- More space for Transfer History and file lists
- Can still be resized/restored as needed
---
## 🔧 Technical Improvements
### Server (ps5_upload_server.elf)
1. **Direct Syscalls for Upload:**
```c
// OLD: fwrite() + fflush() (slow)
fwrite(data, 1, data_len, upload_fp);
fflush(upload_fp);
// NEW: direct write() syscall (fast)
write(upload_fd, data, data_len);
```
2. **16MB Socket Buffers:**
- Increased from 4MB to 16MB
- `SO_RCVBUF` and `SO_SNDBUF` set to 16MB
- Reduces TCP stalls and retransmissions
3. **Per-File Mutex Locking:**
- Each file has its own mutex
- Parallel writes to different files without race conditions
- Maximum disk throughput utilization
4. **File Pre-Allocation:**
- Large files (>100MB) are pre-allocated on first chunk
- Reduces disk fragmentation
- Improves sustained write performance
### Client (PS5Upload.exe)
1. **8 Parallel Large File Uploads:**
- Optimal balance for PS5 disk performance
- `MAX_PARALLEL_LARGE_FILES = 8`
- Intelligent queuing for files >100MB
2. **128MB TCP Buffers:**
- `ReceiveBufferSize = 128MB`
- `SendBufferSize = 128MB`
- Maximum network throughput
3. **Transfer History System:**
- `ObservableCollection` for real-time UI updates
- JSON serialization for persistent storage
- Separate collections for completed/failed transfers
4. **Settings Management:**
- New settings file: `ps5_upload_settings.json`
- Extensible for future preferences
- Auto-loads on startup
---
## 📊 Performance Comparison
| Metric | v2.0.0 | v2.1.0 | Improvement |
|--------|--------|--------|-------------|
| **Upload Speed (Ethernet)** | 4-12 MB/s | 88-110 MB/s | **~10x faster** |
| **Upload Speed (WiFi 6)** | 2-8 MB/s | 32-70 MB/s | **~8x faster** |
| **Download Speed** | 100-120 MB/s | 100-120 MB/s | Same |
| **Peak Burst** | 190 MB/s | 2.05 GB/s | **~10x faster** |
---
## 📦 Files Included in Release
### Client Application:
- `PS5Upload.exe` - Main executable (self-contained, no .NET runtime needed)
- `ps5_logo.png` - Application icon
- All required DLLs bundled
### Server Payload:
- `ps5_upload_server.elf` - Optimized PS5 payload for etaHEN
### Documentation:
- `README.md` - Complete documentation
- `PROTOCOL.md` - Protocol specification
- `RELEASE_NOTES_v2.1.0.md` - This file
### Tools:
- `check_transfer_log.py` - Python script to analyze transfer logs (drag & drop)
---
## 🚀 Installation
### PS5 Server:
1. Copy `ps5_upload_server.elf` to `/data/etaHEN/payloads/`
2. Load with elfldr
3. Notification will show: "PS5 Upload Server: 192.168.0.XXX:9113 - By Manos"
### Windows Client:
1. Extract `PS5Upload.exe` to any folder
2. Run `PS5Upload.exe`
3. Enter PS5 IP address and click Connect
**No installation required!** Both are portable executables.
---
## 🔄 Upgrading from v2.0.0
1. **Replace server payload:** Upload new `ps5_upload_server.elf` to PS5
2. **Restart server:** Load the new payload with elfldr
3. **Replace client:** Overwrite old `PS5Upload.exe` with new version
4. **Done!** Your settings, favorites, and profiles are preserved
**Note:** Transfer history from v2.0.0 will NOT be migrated (new feature in v2.1.0).
---
## 🐛 Bug Fixes
- Fixed potential race condition in parallel uploads (per-file mutexes)
- Fixed memory leak in long-running transfers (proper resource disposal)
- Fixed UI freezing during large folder uploads (async operations)
- Fixed socket timeout issues (increased to 5 minutes with keepalive)
---
## 🔮 Known Limitations
1. **Upload Speed on WiFi:**
- WiFi has ~40-60% overhead compared to Ethernet
- Expected: 32-70 MB/s on WiFi 6 vs 88-110 MB/s on Ethernet
- This is a WiFi protocol limitation, not a software issue
2. **PS5 Disk Performance:**
- Sustained upload speed limited by PS5 internal disk write speed
- Single-threaded writes: 12-35 MB/s
- Parallel writes (8 connections): 88-110 MB/s aggregate
3. **Large File Transfers:**
- Files >100MB are chunked and uploaded in parallel
- Requires sufficient RAM on both PC and PS5
---
## 🙏 Credits
- **PS5 SDK** - For the development tools
- **etaHEN** - For enabling homebrew on PS5
- **PS5 Homebrew Community** - For testing and feedback
---
## 📞 Support
For issues, questions, or feature requests:
- **GitHub Issues:** https://github.com/manos555555/PS5-Upload-Suite/issues
- **Discussions:** https://github.com/manos555555/PS5-Upload-Suite/discussions
---
## 📝 Changelog
### v2.1.0 (2026-01-19)
- ⚡ Massive upload speed boost (88-110 MB/s aggregate)
- 📊 Transfer History with success/failed tracking
- 🔄 Auto-clear history on startup option
- 🖥️ Maximized window UI by default
- 🔧 Direct write() syscalls for upload (server-side)
- 🔧 16MB socket buffers (up from 4MB)
- 🔧 Per-file mutex locking for parallel writes
- 🔧 File pre-allocation for large files
- 🐛 Fixed race conditions in parallel uploads
- 🐛 Fixed memory leaks in long transfers
### v2.0.0 (Previous Release)
- 📥 Download files from PS5 to PC
- 🔍 File search with real-time filtering
- ⭐ Favorites/Bookmarks system
- 🎮 Multi-PS5 profile support
---
**Enjoy blazing-fast file transfers on your PS5!** 🚀
**- Manos**
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 KiB

After

Width:  |  Height:  |  Size: 93 KiB