Disable Blender-based release setup pending direct conversion

This commit is contained in:
chazmm committed 2026-09-08 04:08:15 +01:00
1 parent 7aa4f13353
commit 64d321763c
6 files changed
+23 -18

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
python-version: '3.13'
- name: Install setup packager
run: python -m pip install pyinstaller==6.19.0 numpy==2.2.6 Pillow==11.3.0
- name: Build source-only release
- name: Build Windows package
shell: pwsh
run: ./Build-Release.ps1
- uses: actions/upload-artifact@v4
+1
View File
@@ -1,5 +1,6 @@
param()
$ErrorActionPreference = 'Stop'
throw 'Release packaging is paused until the Blender-free ISO converter is ready.'
Push-Location $PSScriptRoot
try {
$packagePython = Join-Path $PSScriptRoot 'target/package-venv/Scripts/python.exe'
+5 -7
View File
@@ -10,10 +10,9 @@ Includes skating, tricks, grinds, offboard movement, difficulty settings and
## Play
Download the Windows release ZIP, extract it and run `skate3rust.exe`.
Select your own Skate 3 Xbox 360 ISO when prompted. Setup prepares the skater,
animations and disc maps locally, then starts University. The first setup needs
internet access for conversion tools and can take a while.
ISO setup is under development. Release packaging is paused while the asset
converter is changed to work without Blender. Use a prepared local asset set
for now.
Use an XInput controller to play. Escape opens graphics, difficulty and map
settings. Loading another map restarts the game session.
@@ -29,9 +28,8 @@ Use `PLAY-MAP.bat` to select a map. An XInput controller is required for gamepla
Escape opens difficulty and graphics settings.
Development builds use a prepared asset set in `assets/private/` or the
first-run installation above. `Build-Release.ps1` builds the portable Windows
package with its setup helper; it also requires Python 3.13. Published GitHub
releases build and attach this package automatically.
installed asset directory. The Windows release workflow is present, but
packaging is disabled until direct ISO conversion is ready.
Custom animations and climbing support remain available, but no custom clips
are shipped. The included format-demo map is original procedural content.
+4 -3
View File
@@ -17,9 +17,10 @@ reference: https://github.com/NFSTools/VaultLib. Its lookup8 hash and record
reader preserve data from the user's BIN/VLT files; no settings payload is
bundled.
First-run setup downloads Blender 5.0.1 and XboxDev extract-xiso from their
publishers and verifies pinned SHA-256 hashes. Their distributions retain their
own license files. Game assets are never downloaded from this project.
Release setup is paused pending direct asset conversion. Blender is not
downloaded by setup. The retained authoring scripts can use a separately
supplied Blender executable. XboxDev extract-xiso retains its own license
files. Game assets are never downloaded from this project.
The setup executable bundles Python, NumPy, Pillow, Tcl/Tk and PyInstaller's
bootloader. Their license information is retained by the packager alongside
+5
View File
@@ -1,5 +1,10 @@
# Windows installation
**Paused:** the Blender-based conversion approach below was rejected. The
public setup entry point and release packaging are disabled pending direct
conversion. The notes below describe the earlier implementation, not a ready
release. Setup no longer downloads Blender.
`Build-Release.ps1` produces `target/skate3rust-windows-x64.zip`. Keep its
`support` directory beside `skate3rust.exe`. The game links Bevy and the MSVC
runtime statically; the setup helper bundles Python, NumPy, Pillow and Tcl/Tk.
+7 -7
View File
@@ -6,8 +6,6 @@ from .vlt import convert as convert_vlt
from .physics_skeleton import convert as convert_skeleton
TOOLS=Path(__file__).resolve().parents[1]
BLENDER_URL='https://download.blender.org/release/Blender5.0/blender-5.0.1-windows-x64.zip'
BLENDER_SHA='921d77f6c505a35b2c2f6e67d4ad1c10b72418338ba0e0d3ea7f582a5e5fe46e'
XISO_URL='https://github.com/XboxDev/extract-xiso/releases/download/build-202505152050/extract-xiso-Win64_Release.zip'
XISO_SHA='fec88d03c7efd6205ab09be4abba70c0afd0eb27a5709f0a6235b828ba5ac11e'
@@ -53,7 +51,6 @@ def dependency(cache,name,url,sha,report):
return executable
def run(args,log,report):
report('Running '+Path(args[0]).name)
kwargs={'creationflags':subprocess.CREATE_NO_WINDOW} if os.name=='nt' else {}
external=os.name=='nt' and getattr(sys,'frozen',False) and Path(args[0]).resolve()!=Path(sys.executable).resolve()
if external:
@@ -74,7 +71,6 @@ def run(args,log,report):
with child as process:
for line in process.stdout:
log.write(line);log.flush()
if line.strip():report(line.strip()[-180:])
if process.wait():raise RuntimeError('Conversion failed. See '+str(log.name))
def task(script,*args):
@@ -110,6 +106,7 @@ def convert_map(archive,work,maps,stage,blender,game_exe,log,report):
build_archive(manifest_path,collision)
final=maps/(label+'.skate')
embed_archive(raw_package,collision,final)
report('Checking converted map: '+label)
run([game_exe,'--assets',stage/'assets','--map',final,'--check-assets'],log,report)
entry={'name':label,'path':'maps/'+final.name,'sha256':digest(final)}
remove_intermediate(district_work,work)
@@ -117,6 +114,10 @@ def convert_map(archive,work,maps,stage,blender,game_exe,log,report):
def install(iso,base,game_exe,report,game_root=None):
raise RuntimeError('ISO setup is paused while direct asset conversion is implemented. No Blender will be downloaded or installed.')
def _authoring_install(iso,base,game_exe,report,blender,game_root=None):
base=base.resolve();base.mkdir(parents=True,exist_ok=True)
lock=base/'setup.lock'
try:fd=os.open(lock,os.O_CREAT|os.O_EXCL|os.O_WRONLY)
@@ -135,6 +136,7 @@ def install(iso,base,game_exe,report,game_root=None):
if not iso.is_file() or iso.suffix.lower()!='.iso':raise RuntimeError('Select an Xbox 360 Skate 3 ISO')
extractor=dependency(base/'tools','extract-xiso',XISO_URL,XISO_SHA,report)
game_root=work/'disc'
report('Extracting your ISO')
run([extractor,'-x',iso,'-d',game_root],log,report)
else:game_root=game_root.resolve()
for required in ['default.xex','data/big/miscload.big','data/big/miscboot.big','data/big/db.big',
@@ -166,9 +168,7 @@ def install(iso,base,game_exe,report,game_root=None):
character=work/'character'
run(task(TOOLS/'extract_default_skater.py','--owned-data-root',stock,'--work-root',character,
'--private-root',private/'default_skater','--utt-root',TOOLS/'vendor/utt'),log,report)
# Blender is a portable conversion dependency, downloaded from its
# publisher and hash checked. It is never installed system-wide.
blender=dependency(base/'tools','blender',BLENDER_URL,BLENDER_SHA,report)
report('Building the skater model and rig')
blend=character/'skater.blend'
run([blender,'--background','--factory-startup','--python-exit-code','1',
'--python',TOOLS/'vendor/skate3_anim/blender_rx2_abin_export.py','--',