IOS: checkpoint native Wii Shop connectivity and Starlet optimizations
Add opt-in AX88772 Ethernet with libslirp NAT, pinned Windows runtime setup and USB/network regressions. Correct Hollywood DI/reset interrupt routing and physical SRAM DMA for AES, SHA, NAND, SDIO and OHCI. Keep aligned Thumb bus accesses inside native JIT blocks. Validated: 164 targeted tests pass. User confirmed Wii Shop connection and channel-list navigation at 100% speed / 59.96 FPS on 2026-09-12. Downloads and general channel performance remain unvalidated; local firmware, keys and runtime data are excluded.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
param([string]$BuildDirectory = '.starlet_msvc2')
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$repoRoot = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$cacheRoot = Join-Path $repoRoot '.starlet_network'
|
||||
$runtimeRoot = Join-Path $repoRoot "$BuildDirectory\Binaries\Network"
|
||||
$packages = Get-Content -Raw (Join-Path $repoRoot 'Externals\libslirp\runtime-msys2.json') | ConvertFrom-Json
|
||||
New-Item -ItemType Directory -Force -Path $cacheRoot, $runtimeRoot | Out-Null
|
||||
|
||||
foreach ($package in $packages) {
|
||||
$archive = Join-Path $cacheRoot ([Uri]$package.url).Segments[-1]
|
||||
if (-not (Test-Path -LiteralPath $archive)) {
|
||||
Write-Host "Downloading $($package.name)..."
|
||||
Invoke-WebRequest -Uri $package.url -OutFile $archive
|
||||
}
|
||||
if ((Get-FileHash -LiteralPath $archive -Algorithm SHA256).Hash -ne $package.sha256) {
|
||||
throw "SHA256 mismatch: $archive (preserved for inspection)"
|
||||
}
|
||||
# Extract only DLLs and licenses from verified packages; no installer or global PATH changes.
|
||||
$entries = @(tar -tf $archive)
|
||||
if ($LASTEXITCODE -ne 0) { throw "Cannot list $archive" }
|
||||
$selected = @($entries | Where-Object {
|
||||
$_ -match '^ucrt64/bin/[^/]+\.dll$' -or $_ -match '^ucrt64/share/licenses/[^/]+/[^/]+$'
|
||||
})
|
||||
if ($selected.Count -eq 0) { throw "No runtime files in $archive" }
|
||||
$extracted = Join-Path $cacheRoot $package.name
|
||||
New-Item -ItemType Directory -Force -Path $extracted | Out-Null
|
||||
tar -xf $archive -C $extracted @selected
|
||||
if ($LASTEXITCODE -ne 0) { throw "Cannot extract $archive" }
|
||||
Get-ChildItem -LiteralPath (Join-Path $extracted 'ucrt64\bin') -Filter '*.dll' -File |
|
||||
Copy-Item -Destination $runtimeRoot
|
||||
$licenses = Join-Path $extracted 'ucrt64\share\licenses'
|
||||
if (Test-Path -LiteralPath $licenses) {
|
||||
$licenseDestination = Join-Path $runtimeRoot "licenses\$($package.name)"
|
||||
New-Item -ItemType Directory -Force -Path $licenseDestination | Out-Null
|
||||
Get-ChildItem -LiteralPath $licenses -File -Recurse | Copy-Item -Destination $licenseDestination
|
||||
}
|
||||
}
|
||||
Write-Host "Local libslirp runtime ready: $runtimeRoot"
|
||||
Reference in New Issue
Block a user