DKR-R - TEXTURE DUMPING
v1.0.9 texture playtest 3

Texture pack creators can now get their textures straight from DKR-R!
Open TEXTURES, then expand TEXTURE DUMPING below the existing pack controls.
You do not need Blender, Python or another emulator installed.

The Texture Packs and CRT Overlays sections have not changed. Texture Dumping
now uses the same collapsible heading, with Export, Capture and My Dumps tabs.
Buttons fit their labels and wrap onto another row when space is tight.
Closing the section or changing tabs does not stop an export or capture.
An active job keeps a short status beside the heading, or below it when the
window is narrow. The section and selected tab are remembered for this session.

EXPORTING THE GAME AND YOUR MODS

Select your original US v1.0 or US v1.1 Game Pak in Play first. In the Export
tab, choose the categories you want, then press EXPORT TEXTURES. Choose mods lets you narrow
this down to individual installed mods. Include disabled mods is on by default;
exporting a disabled mod does not enable it or change your library.

This covers the original game's stored 3D and 2D textures, stored animation
frames, character textures/portraits, legacy track textures, modern dkrmap
artwork and custom car materials/portraits. Shared originals are stored once,
while each source keeps its own record in dump.json.

Include source artwork also exports embedded, as-authored car PNGs and PNG
artwork available in the selected tracks' installed companion HD packs.
Source_Artwork keeps the original PNG bytes. Runtime-oriented images remain
separate, because flipping, palette decoding or RGBA16 conversion can change
what the renderer actually uses. A low-resolution track payload cannot give
you back high-resolution art that was never installed. DDS-only artwork is
not converted back into an invented PNG source.

The exporter does not launch a mod, run Custom Magic Codes, modify your ROM,
change a save, or enable/disable anything. It processes sources separately.
Missing, unsupported or damaged items are reported in dump.json. An export
with skipped items is not a claim that everything was successfully decoded.

CAPTURING WHILE YOU PLAY

Open the Capture tab, press CAPTURE NEXT GAME, then play normally. This captures original decoded
native textures, even if you have an HD pack enabled. There is no need to
switch your packs off or disturb the water texture streaming.

Capture records texture variants you encounter, including palettes and
standard dynamically generated textures. It does not capture the final
screen, CRT filters, depth buffers or framebuffer-history images. Custom
Magic Code textures become available when their active mod actually draws
them. Capture cannot discover a dynamic texture you never encounter.

Filters apply to the installed-content export, not live capture. Capture
collects eligible textures encountered by the local renderer. It has no
effect on online rules, rollback checkpoints or the other players' settings.

Open Textures in the in-game settings to STOP CAPTURE. It finishes queued
writes in the background. If the writer needs to pause, use RESUME CAPTURE
once it catches up, then revisit any textures missed while paused.
No PNG encoding, filesystem writes or GPU readback run in the observation
callback. Failed writes are reported, not marked as successfully saved.

YOUR WORKSPACE

The normal destination is texture-dumps inside DKR-R's writable data folder,
not the executable or the mounted AppImage. Change folder changes this;
Show path displays the full destination without cluttering the main page.
Each supported Game Pak revision gets its own DKR-Texture-Dump-us.vXX folder.

Originals        Unedited, native-resolution decoded PNGs. Identical images
                 can share one file without sharing their source metadata.
Working          The copies you edit. Exporting again does not overwrite them.
Source_Artwork   Optional, exact embedded/companion PNG files.
dump.json        Source ownership, dimensions, formats, frames, palettes,
                 content digests, replacement identities and skipped items.
rt64.json        Created when you build a starter pack.
Texture-Starter.zip  An importable private authoring pack, created on request.

In My Dumps, Browse textures gives you searchable, paged previews with a transparency
checkerboard and frame information. PNG previews are available in the launcher;
the in-game overlay keeps the export/capture controls and source information.
Select the search field to open the on-screen keyboard. Open folder takes you straight
to the files. Re-export to the same destination to resume a cancelled job.
Open existing dump reopens a previous workspace after restarting DKR-R. You can
select either the usual parent folder or that existing dump folder when
resuming; DKR-R recognises its manifest instead of nesting another dump.

The browser now has proper edge padding, rounded corners and compact texture
cards. First, Previous, Next and Last move through pages; Go to page jumps
straight to a page number using the on-screen keyboard. You can also use the
controller's shoulder buttons or Page Up / Page Down. Clear search shows all
textures again. Refresh reloads the browser after files have changed.

Changing pages no longer reloads the whole dump or rebuilds export indexes.
The browser keeps a read-only source index and a small cache of recent
previews. The last completed page stays visible while another loads; you can
keep navigating rather than waiting for every intermediate page. A broken
PNG is marked on its card instead of preventing the whole page from opening.
Close cancels pending browser work without cancelling exports or captures.
The browser does not change your PNGs, working files or dump manifest.

MAKING A TEXTURE PACK

1. Export the textures you want.
2. Capture any items marked Needs in-game capture, then stop capture.
3. Edit the relevant PNG files in Working. Keep their intended orientation.
4. In My Dumps, press Create starter pack.
5. Import Texture-Starter.zip using the normal Import Texture Pack button.
6. Recreate and re-import the ZIP after further edits.

Only known or actually observed replacement identities go into the starter.
Unsupported identities stay visible in the report instead of getting fake
hashes. The known offline subset is DKR's aligned, power-of-two, palette-free
standard LoadBlock format. Other variants need runtime observation.
Runtime palette variants retain their own identities. If a source image
cannot be safely associated with one of them, edit the corresponding Runtime
entry rather than assuming that matching colours prove it is the same texture.

Water animation packs still follow DKR-R's existing complete-family rules.
Export/edit the full frame sequence; an incomplete replacement family can
remain on the original textures rather than flickering between resolutions.

Shared hashes replace every matching use of a texture. A folder named after
a character does not make a replacement exclusive to that character. If one
shared copy is edited, it is used for that identity. Conflicting edits are
reported so you can resolve them. Ambiguous unedited identities are omitted.
PNG is the editable working format; final distribution can use the existing
DDS/mipmap/RTZ publishing tools. Your starter ZIP is not automatically enabled.

Keep dumps of original game art private. Share your replacement artwork, not
the ROM dump. Originals, source reports and the ROM are not put in the starter
ZIP; unedited Working copies can still contain original artwork, so do not
publish the starter wholesale as if it were all your own new artwork.

PLAYTEST CHECKLIST

Please try the following on Windows and Linux/AppImage:
- Export original game textures without starting a game.
- Export an installed but disabled character, track and car.
- Check translucent textures, animation frames, portraits and both car tiles.
- Try a modern track with an installed companion PNG HD pack.
- Capture with an HD pack enabled, including water and custom car materials.
- Edit a known texture, create the starter ZIP and import it back into DKR-R.
- Disable an unrelated mod and confirm the intended replacement still matches.
- Cancel and resume an export; confirm Working edits are not overwritten.
- Try controller navigation, the search keyboard and a Steam Deck-sized window.
- Check an online session still behaves normally while capture is off/on.

This build is compile/link and statically inspected only. Gameplay and visual
acceptance remain with the owner/playtesters. No game or test target is run
during preparation. All authored changes are in patches/texture-dumping.
The Patch Pipeline makes isolated build copies; checked-out dependencies,
RecompiledFuncs and RecompiledPatches are not edited.
