Shuushoku Game - Trendy Drama (Japan): initial recovered image archive
2026-11-02

The supplied original ROM is unchanged. Its SHA-256 is
ad058ee0487a293c4ddfac493adff024bc018cc278efd2f73759a685de8b35a3.

This is an INITIAL, INCOMPLETE recovery. It covers the title and opening
narrative, first name-entry bubble background, original interface layouts,
opening clubroom panorama and portrait expressions, bedroom day/night
palette variants, and one loaded 512x512 town tilemap window.
It is not the complete game image set. Later scenes, additional characters,
and the compressed ROM resource inventory remain to be decoded.

All recovered layer and portrait PNGs use the game's own planar graphics,
tile numbers, OAM flips, and original CGRAM palettes. Color zero is kept
transparent for source layers. Screens category entries are unmodified
native video frames; they are distinct from extracted layers. The text
tilemap and alternate interface tilemaps preserve raw layout outside the
active viewport. The town tilemap is a loaded scrolling window, with its
wrapping seam retained; it is not the complete world map.

Source records use the derived emulated VRAM/OAM/CGRAM addresses, not
invented ROM offsets. Most non-font tile sequences do not directly match
uncompressed ROM bytes; game-specific decompression is not yet decoded.
No redrawn artwork, recolored placeholder tiles or guessed image names.

Reproduce on Windows with Python3.12 and Pillow12.3:
1. Download native Snes9x libretro for Windows x86_64 from the official
   buildbot URL in upstream-reference.json. Check its SHA-256 against that
   record. This initial extraction uses Snes9x1.63 fae2fea.
2. Place the DLL at tools/snes9x_libretro.dll; set SHUUSHOKU_CORE to use
   another explicit native DLL path. The native DLL is not in this archive.
3. Copy your supplied ROM as tools/input.sfc, or set SHUUSHOKU_ROM to its
   path. These scripts read it only. Native battery RAM stays disposable.
4. From tools/, run these commands in this exact order:
   python capture.py
   python explore.py
   python explore2.py
   python explore3.py
   python explore4.py
   python explore5.py
   python explore6.py
   python export_gallery.py
   The input route starts with blank SRAM, accepts the original default
   character names with Start, advances opening dialogue with A, and uses
   the Go Out icon to load the town map. These are disposable test states.
5. Generated native states and RAM are private working files. The source
   archive contains ONLY the selected VRAM and parsed PPU fields required
   for reproducing PNG decoding, never full user saves or WRAM.

decode.py reads the native Snes9x snapshot tagged blocks, reconstructs
2bpp/4bpp/8bpp planar tiles and original 32/64-tile BG quadrant maps, and
assembles OAM sprites using tile bank selection, palettes and H/V flips.
The PPU layout is supported by pinned-snapshot.cpp and pinned-ppu.h from
the exact official libretro source commit recorded in upstream-reference.
Colors use exact BGR555 values expanded to RGB8 with floor(v*255/31).

images.json records every PNG's dimensions, byte count, SHA-256, input
capture identity, tilemap/tile addresses or crop and recovery limits.
all-recovered-images.zip contains every PNG and that manifest.
graphics-source.zip contains decoded-source VRAM/PPU, this workflow and
the extraction scripts. No full savestate or WRAM is distributed.

Snes9x source references retain their original Snes9x License. Original
game graphics and text remain the property of their original owners.
