mirror of
https://github.com/manos555555/PS5-Suite.git
synced 2026-10-06 07:00:30 +02:00
v4.2.1 - Bugfix: UI scrolling, file counting, frozen progress display
This commit is contained in:
1 parent
0123a55f52
commit
fe741b8e9f
4 files changed
+43
-15
No files matched your search
@@ -1,5 +1,27 @@
|
||||
# Changelog - PS5 Upload Suite
|
||||
|
||||
## Version 4.2.1 - Bugfix Release (February 8, 2026)
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
#### UI Scrolling Fix
|
||||
- **Fixed connection panel eating screen space** - Added `MaxHeight` constraint (250px) and `ScrollViewer` to the connection/payload settings panel
|
||||
- **Fixed header overflow** - Added `MaxHeight="120"` to header row
|
||||
- **Fixed content area too small** - Added `MinHeight="200"` to main content area
|
||||
- When the Auto-send Payload Expander was open, it consumed half the screen leaving no room for file lists
|
||||
|
||||
#### File Counting Fix
|
||||
- **Fixed chunked files never counting as completed** - `fileChunkCounts` was set to the actual number of chunks (e.g., 4 for a 2GB file), but `UploadFileParallelAsync` handles all chunks internally as a single Task. The main loop only saw 1 task completion per file, so chunked files never reached their completion threshold
|
||||
- Now correctly sets `fileChunkCounts = 1` per file since each file = 1 task
|
||||
|
||||
#### Progress Display Fix
|
||||
- **Fixed progress appearing frozen during heavy uploads** - All UI updates used `DispatcherPriority.Background` (lowest priority), which got starved when 24 parallel connections flooded the dispatcher queue
|
||||
- Upgraded `UpdateUploadStats` to `DispatcherPriority.Normal`
|
||||
- Upgraded per-file progress bars to `DispatcherPriority.Render`
|
||||
- Progress now updates smoothly even at 95%+ network saturation
|
||||
|
||||
---
|
||||
|
||||
## Version 4.2.0 - Game Mounter Integration (February 7, 2026)
|
||||
|
||||
### 🎮 Game Mounter Integration
|
||||
|
||||
@@ -2,14 +2,19 @@
|
||||
|
||||
**By Manos**
|
||||
|
||||
**Version 4.2.0 - Game Mounter Integration**
|
||||
**Version 4.2.1 - Bugfix Release**
|
||||
|
||||
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 v4.2.0:**
|
||||
⭐ **NEW in v4.2.1 (Bugfix):**
|
||||
- 🖥️ **Fixed UI scrolling** - Connection panel no longer eats half the screen
|
||||
- 🔢 **Fixed file counting** - Chunked files now count correctly as completed
|
||||
- 📊 **Fixed frozen progress** - Progress updates no longer freeze during heavy uploads
|
||||
|
||||
⭐ **v4.2.0 Features:**
|
||||
- 🎮 **Mount Games Button** - Mount uploaded games directly from the client
|
||||
- 🔍 **Multi-Path Scanning** - Scans internal storage, USB drives (0-3), and M.2 SSD
|
||||
- � **Duplicate Detection** - Skips already-mounted games automatically
|
||||
- 🔄 **Duplicate Detection** - Skips already-mounted games automatically
|
||||
- 📊 **Mount Summary** - Detailed results with PS5 notifications
|
||||
- 🧹 **Auto-Cleanup** - Removes mount entries for deleted games
|
||||
|
||||
|
||||
@@ -66,10 +66,10 @@
|
||||
|
||||
<Grid Margin="20">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" MaxHeight="120"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*" MinHeight="200"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
@@ -119,7 +119,9 @@
|
||||
BorderThickness="1"
|
||||
CornerRadius="4"
|
||||
Padding="15"
|
||||
Margin="0,0,0,15">
|
||||
Margin="0,0,0,15"
|
||||
MaxHeight="250">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
@@ -323,6 +325,7 @@
|
||||
</Expander>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
|
||||
<!-- Storage Info Panel -->
|
||||
|
||||
@@ -408,7 +408,7 @@ namespace PS5Upload
|
||||
private void UpdateUploadStats(int completedFiles, int activeTaskCount)
|
||||
{
|
||||
// CRITICAL FIX: Use InvokeAsync instead of Invoke to prevent UI freezing
|
||||
// When uploading thousands of small files, Invoke blocks the UI thread
|
||||
// Use Normal priority (not Background) so updates aren't starved during heavy uploads
|
||||
Dispatcher.InvokeAsync(() =>
|
||||
{
|
||||
// Update files remaining counter
|
||||
@@ -491,7 +491,7 @@ namespace PS5Upload
|
||||
{
|
||||
UploadFileNameText.Text = $"Uploading {activeTaskCount} files in parallel...";
|
||||
}
|
||||
}, System.Windows.Threading.DispatcherPriority.Background);
|
||||
}, System.Windows.Threading.DispatcherPriority.Normal);
|
||||
}
|
||||
|
||||
private void Log(string message)
|
||||
@@ -1158,11 +1158,9 @@ namespace PS5Upload
|
||||
taskIsLargeFile[task] = isLargeFile;
|
||||
taskIsHugeFile[task] = isHugeFile;
|
||||
|
||||
long chunkSizeForFile = fileSize >= HugeFileThresholdBytes ? HugeFileChunkSizeBytes : DefaultChunkSizeBytes;
|
||||
int chunkCount = fileSize > ChunkThresholdBytes
|
||||
? (int)((fileSize + chunkSizeForFile - 1) / chunkSizeForFile)
|
||||
: 1;
|
||||
fileChunkCounts[localPath] = chunkCount;
|
||||
// Each file is ONE task (UploadFileParallelAsync handles chunks internally)
|
||||
// So chunkCount must always be 1 for the completion counter to work
|
||||
fileChunkCounts[localPath] = 1;
|
||||
fileChunksCompleted[localPath] = 0;
|
||||
}
|
||||
|
||||
@@ -1625,7 +1623,7 @@ namespace PS5Upload
|
||||
{
|
||||
UploadProgressBar.Value = filePercent;
|
||||
UploadProgressText.Text = $"{FormatFileSize(aggregateBytes)} / {FormatFileSize(fileInfo.Length)} ({filePercent:F1}%)";
|
||||
}, System.Windows.Threading.DispatcherPriority.Background);
|
||||
}, System.Windows.Threading.DispatcherPriority.Render);
|
||||
|
||||
if (aggregateBytes == fileInfo.Length || aggregateBytes - previousLoggedBytes >= ChunkLogIntervalBytes)
|
||||
{
|
||||
@@ -1686,7 +1684,7 @@ namespace PS5Upload
|
||||
{
|
||||
UploadProgressBar.Value = filePercent;
|
||||
UploadProgressText.Text = $"{FormatFileSize(p.BytesSent)} / {FormatFileSize(fileInfo.Length)} ({filePercent:F1}%)";
|
||||
}, System.Windows.Threading.DispatcherPriority.Background);
|
||||
}, System.Windows.Threading.DispatcherPriority.Render);
|
||||
|
||||
if (p.BytesSent == p.TotalBytes || p.BytesSent - previousLoggedBytes >= SmallFileLogIntervalBytes)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user