[PR #2224] GPU: Implement texture dumping and replacement #926

Closed
opened 2026-01-29 19:10:11 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/stenzek/duckstation/pull/2224

State: closed
Merged: No


This is still a work in progress, but I'm PR'ing it so anyone interested can mess with it.

Rough TODO:

  • Support dumping by VRAM write and clut/palette.
  • Support replacing textures.
  • Improve dumping further and reduce the number of junk textures (it's much better than the initial version, but there's still room for improvement.
  • Implement on backends other than DX11.
  • Make sure it doesn't crash the software renderer.
  • Save texture replacement state to save state (at the moment it will be lost when you load state).
  • Save texture dumper state to save state (same as replacements, it's lost when loading).
  • Texture filtering options for the replacements (mipmaps/trilinear).

NOTE: This is a completely different/original implementation when compared to the functionality in beetle-psx. Texture packs created for it are not, and never will be compatible.

Settings:
img

Some initial results:
https://cdn.discordapp.com/attachments/792256355280355336/848559538672369664/Tomb_Raider_USA_2021-05-30_23-51-10.mp4
https://cdn.discordapp.com/attachments/695640472202379428/848895332749148190/Castlevania_-_Symphony_of_the_Night_USA_2021-05-30_19-47-52.mp4

img
img
img
img
img
img
img
img

**Original Pull Request:** https://github.com/stenzek/duckstation/pull/2224 **State:** closed **Merged:** No --- This is still a work in progress, but I'm PR'ing it so anyone interested can mess with it. Rough TODO: - [x] Support dumping by VRAM write and clut/palette. - [x] Support replacing textures. - [ ] Improve dumping further and reduce the number of junk textures (it's much better than the initial version, but there's still room for improvement. - [x] Implement on backends other than DX11. - [x] Make sure it doesn't crash the software renderer. - [ ] Save texture replacement state to save state (at the moment it will be lost when you load state). - [ ] Save texture dumper state to save state (same as replacements, it's lost when loading). - [ ] Texture filtering options for the replacements (mipmaps/trilinear). NOTE: This is a completely different/original implementation when compared to the functionality in beetle-psx. Texture packs created for it are not, and never will be compatible. Settings: ![img](https://cdn.discordapp.com/attachments/792256355280355336/850710140017311744/unknown.png) Some initial results: https://cdn.discordapp.com/attachments/792256355280355336/848559538672369664/Tomb_Raider_USA_2021-05-30_23-51-10.mp4 https://cdn.discordapp.com/attachments/695640472202379428/848895332749148190/Castlevania_-_Symphony_of_the_Night_USA_2021-05-30_19-47-52.mp4 ![img](https://cdn.discordapp.com/attachments/792256355280355336/850603757897121802/unknown.png) ![img](https://cdn.discordapp.com/attachments/695640472202379428/850589223660683264/unknown.png) ![img](https://cdn.discordapp.com/attachments/695640472202379428/850626231174299668/SCUS-94240_2021-06-05_16-44-35.png) ![img](https://cdn.discordapp.com/attachments/695640472202379428/850631439645278218/SCUS-94194_2021-06-05_17-05-14.png) ![img](https://cdn.discordapp.com/attachments/695640472202379428/849140584391901214/SLUS-00152_2021-05-30_23-29-40.png) ![img](https://cdn.discordapp.com/attachments/792256355280355336/848550530191589416/SLUS-00152_2021-05-30_23-16-19.png) ![img](https://cdn.discordapp.com/attachments/695640472202379428/848501496705581056/unknown.png) ![img](https://cdn.discordapp.com/attachments/792256355280355336/848492433310351420/unknown.png)
claunia added the pull-request label 2026-01-29 19:10:11 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/duckstation#926