feat: initialise workspace — Milestone 1 asset explorer
Three-crate Cargo workspace structured per PROJECT.md spec: - crates/sylpheed-formats — Xbox 360 format parsers (no Bevy) - crates/sylpheed-viewer — Bevy 0.15 asset viewer + egui UI - crates/sylpheed-cli — CLI tools (extract/list/sniff/texture) Milestone 1 features: - XISO disc image reading via xdvdfs 0.8 - XPR2 texture container parsing + Morton de-tiling - D3DFORMAT → wgpu TextureFormat mapping (DXT1/3/5, DXN, ARGB) - Custom Bevy AssetLoader for .xpr files - Orbit camera (LMB orbit, RMB pan, scroll zoom) - egui file browser + RE notes panel - CLI: extract / list / sniff / texture info / texture export - GitHub Actions CI (Linux, macOS, Windows, WASM) - Trunk WASM build config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
30
crates/sylpheed-formats/src/lib.rs
Normal file
30
crates/sylpheed-formats/src/lib.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
//! # sylpheed-formats
|
||||
//!
|
||||
//! Asset format parsers for Project Sylpheed: Arc of Deception (Xbox 360).
|
||||
//!
|
||||
//! This crate handles:
|
||||
//! - Reading game files from XISO disc images (native only)
|
||||
//! - Parsing Xbox 360 texture formats (XPR2 containers + DXT de-tiling)
|
||||
//! - Parsing mesh formats (to be reverse engineered)
|
||||
//! - Parsing audio formats (XMA → standard PCM)
|
||||
//!
|
||||
//! ## Platform notes
|
||||
//! XISO reading is only available on native (Windows/macOS/Linux).
|
||||
//! On WASM, assets must be pre-extracted and served over HTTP.
|
||||
|
||||
pub mod texture;
|
||||
pub mod vfs;
|
||||
|
||||
// XISO reading is not available in-browser
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub mod xiso;
|
||||
|
||||
// Mesh parsing — scaffold for reverse engineering
|
||||
pub mod mesh;
|
||||
|
||||
// Audio parsing — scaffold for XMA handling
|
||||
pub mod audio;
|
||||
|
||||
/// Re-export the most commonly used types at the crate root.
|
||||
pub use texture::{X360Texture, X360TextureFormat};
|
||||
pub use vfs::{GameAssets, VfsError};
|
||||
Reference in New Issue
Block a user