Skip to content

Xenosaga I Extractor v1.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 03:17
· 21 commits to main since this release

Second release of the Xenosaga Episode I extractor kit. Everything since v1.0.0 is on the extract/browse (viewing) side plus the repack/translation layer; the packaged builds are rebuilt with all of it.

Added

  • Repack layer — patch writes any object back into the ISO in place; a byte-perfect clone of Monolith's ARX packer; pinkhair as the worked recolor example (with the disc-wide sweep for the 12 embedded copies of a character texture).
  • Translator text pipeline — text-export / text-import round-trip all 914 in-game text objects (588 scene/menu .txt + 326 U.M.N. mails) as UTF-8 with Shift-JIS byte budgets; docs/FRENCH-TRANSLATION-GUIDE.md and docs/ARABIC-TRANSLATION-SPEC.md.
  • Cutscene subtitles — subs-template / subs-burn author and burn subtitles into the .pss movies, audio untouched.
  • Sequenced BGM — music-export renders the Procyon SMD/SWD music to MIDI + SoundFont2 + WAV/FLAC, reversed from the game's own unstripped IOP driver (SSD.IRX).
  • Battle voice/SE banks — battle_audio browse kind, ~1,500 sample WAVs from yamamoto/snd/sed.
  • Embedded texture sweep — every dump file is swept for XTX blobs inside effect/scene/UI containers: 1,363 more PNGs (title, help and menu screens, room backdrops, effect sheets) plus a per-carrier manifest.
  • More content — PS2ICON3D hdd.res unpacked; hidden string tables sniffed out of binary files (event-item descriptions, casino dialogue, EUC-JP dev configs).

Fixed

  • Texture decode (GitHub issue #1) — palette tiles no longer show as a square of noise in the corner; character atlases no longer garble: raw true-colour regions (the hair sheets) are drawn from the canvas, companion-model palettes are merged (KOS-MOS's red eye), map atlases rescue their parked CLUTs, and every one of the 1,269 standalone textures decodes (was 1 undecodable).
  • Casino sheets — overlay texture descriptors now supply the casino/menu palettes; the 30 numbered tanaka sheets and the data viewer render instead of magenta blocks and pink tints. UI sheets with transparent cut-outs keep their own corner-spot palette (the slot frame, pay table, neon reel labels, window sheet, card-rarity labels and the Elsa deck map had been handed washed-out palettes by the ranking). The raw-CT32 and block-rescue passes are restricted to model-bound textures after they were caught repainting the slot reels, poker felt and one slot tile with noise — verified against v1.0.0 renders decoded from the tagged code.
  • Scene archives — the ~500 embedded textures reported as "undecodable" were ARX-compressed in place; they are now decompressed and decoded (all turn out to be per-scene copies of standalone textures, so the manifest doubles as a scene → texture provenance map). Two garbage PNGs decoded from inside compressed streams are gone.
  • BGM tempo — the driver's timebase is a fixed 96 PPQN; the first cut played the battle themes ~25% fast.
  • XTX sprite files that are all 16×16 sub-images (carddata/game/1p2p.xtx) decode.

Updated

  • docs/FORMATS.md — scene-archive layout (TOC + record header + ARX member), corrected repack notes, LEX/XTX palette pipeline, sequenced-BGM spec. docs/UPDATES.md has the per-change notes and what to re-run.
  • Packaging pins Python 3.12 and bundles numpy (for WAV/FLAC music rendering) and ffmpeg.

Before / after

Left or top: the earlier build. Right or bottom: v1.1.0. All renders are straight from browse --kinds textures on the retail USA disc.

KOS-MOS atlas (char/pc/kosmos.xtx) — v1.0.0 could not decode this file at all; top is the August interim build, bottom is v1.1.0 (hair band and eye).

KOS-MOS before/after

Casino slot machine (tanaka/slot_1.xtx) — v1.0.0 vs v1.1.0. The small square of noise at the bottom of the v1.0.0 render is the parked palette tile from issue #1, blanked now.

slot before/after

Casino poker table (tanaka/poker_1.xtx) — v1.0.0 vs v1.1.0.

poker before/after

Casino data viewer (tanaka/dataviewer.xtx) — v1.0.0 vs v1.1.0.

data viewer before/after

Casino slot frame (tanaka/slot_2.xtx) — v1.0.0 vs v1.1.0. v1.0.0 already had this one right; an interim build tinted it purple, and the final decoder keeps its corner-spot palette (the parked tile is blanked).

slot frame before/after

Still imperfect: tanaka/base.png (slot symbol sheet) is tinted by a wrong overlay palette, and two small regions of the KOS-MOS atlas are plane-packed 4bpp visor-HUD sheets whose palettes are not on disc.

Samples

Short excerpts, as documentation of what the kit produces. Regenerate the full set from your own disc.

  • Music, rendered by music-export from the sequenced SMD/SWD data at the corrected tempo: BATTLE1, first 20 s · U.M.N. Mode, first 20 s

  • Spoken dialogue: voice stream chain1/sound/vda/s191008, first 15 s (decoded by browse --kinds audio from the interleaved SPU ADPCM streams) · cutscene layer1_021, 20 s of the dubbed track (carved from layer 1 and converted by browse --kinds movies)

  • Battle dialogue: montage of eleven in-battle lines — KOS-MOS (special, boost, battle-end), Shion, Jr., MOMO, chaos and Ziggy, straight from the per-character yamamoto/snd/sed banks that browse --kinds battle_audio unpacks (file names km_sp1, shion_end5, jr_sp6, mo_bst3, chaos_bst3, z8_end2, …).

  • Dialogue text, as text-export and browse --kinds text deliver it:

    U.M.N. mail scene umn/event01.txt (speaker tags and control codes preserved):

    <speech>02
    <char>SHION
    <msg>
    \15\2They sure did.\37
    But guess what! I had the "RIOS 680RR" model even before
    they made their official announcement.\15\0\37
    </msg>
    

    Encephalon tutorial (scene/ST0210.evt, lifted from the Java constant pool by classes):

    After a battle, you'll flash for a few seconds. During this time, you won't trigger a new battle, even if you come in contact with the enemy. Remember this, okay?
    You want to move on to real combat? All right then, I'll transport you to your original location after the battle is over. Are you ready?
    

    Event items (karakama/evtitem.dat, sniffed string table):

    Master Key — A key to a prison cell.
    U-TIC Card — This card will disarm the electronic lock in corridor number 5.
    Flower Seed — Seed of the Ariadne flower.
    

Packages

  • Xenosaga-I-Extractor-win64.zip — Windows, embedded Python + ffmpeg, no install.
  • Xenosaga-I-Extractor-macos.zip — macOS (Apple Silicon) .app.

music-export WAV/FLAC rendering needs numpy (bundled in the packages; pip install -r requirements.txt from source).