Files
Sylpheed/crates/sylpheed-formats/examples/gp_title_entry_names.rs
sylph-decoder ec9ab203af handoff: Q2 enumerated six of eight screens and mis-paired the splashes
sylpheed-port caught that a reader counting the Q2 row gets twelve entries with no
slot for the boot splashes -- in a row already corrected once for an
ordinal-versus-entry error.

Verified off the disc: the splashes are 10/13 (palogo_sqex, publisher) and 11/14
(palogo_gamearts/seta/anima, developer). The row said 'in entry space 10/11 are
the publisher and developer splashes', which names one half of each of two
different pairs rather than a pair. All eight screens now enumerated, with the
per-entry names committed as reference data.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
2026-08-30 21:56:45 +00:00

15 lines
740 B
Rust

use sylpheed_formats::{pak::PakArchive, ui_layout};
use std::path::PathBuf;
fn main(){
let root=PathBuf::from(std::env::var("SYLPHEED_DISC").unwrap());
let ar=PakArchive::open(root.join("dat/GP_TITLE.pak")).unwrap();
for (i,e) in ar.entries().iter().enumerate(){
let Ok(by)=ar.read(e) else { println!("{i:2} <unreadable>"); continue };
let names: Vec<String> = ui_layout::parse_build(&by)
.map(|b| b.sprites.keys().take(2).cloned().collect()).unwrap_or_default();
let rec: Vec<String> = ui_layout::parse_build(&by)
.map(|b| b.records.keys().take(2).cloned().collect()).unwrap_or_default();
println!("{i:2} {} B sprites {:?} records {:?}", by.len(), names, rec);
}
}