For when original low-res sprites or ugly muddy pixellated textures don't cut it anymore, there are some emulators which allow for texture replacement - so that you can play your old games with shiny HD/4K textures to go with HD rendering. It's nice to play more of the retro games in the style of Super Mario All-Stars, the Ducktales remaster, or the N64 Zelda remakes.

Only problem: It's not as widely supported among emulators. This may be slowly changing, though. You'll need to get (or make) a texture pack in addition to the ROM. Goes without saying the game logic won't be altered. Also, this doesn't actually change the data inside the ROM proper, making this enhancement emulator-specific.

Currently, 2D sprite replacements are not as popular, so much of what's available among replacement packs are quite bland in the same fashion as Final Fantasy 6's iOS "remake" or RPG Maker stuff, but they're meant to be a proof-of-concept, no more. As of 2018, 2D sprite replacements have improved in quality with the release of several excellent 8-bit to 16-bit packs for NES.

Sprite Replacement (2D)

edit
 
Example of Castlevania 30th Anniversary
  • Mesen has support for HDNes HD packs and has made several improvements to it. Also includes HD Pack Builder that can be used to create new HD packs. Most newer packs only work on Mesen and not on HDNes.
  • HDNes an emulator that allows you to overlay custom sprites at 4X resolution over in-game NES sprites. These custom sprites are in true color without any of the palette restrictions inherent to the NES (alpha + 3 colors picked from around 50 possible colors). It can also do music replacement.

Notable sprite replacements packs

edit

SNES

edit

No emulator support this at the moment, (yet). Feature request for bsnes-hd: Add custom sprite/texture dumping/injection support

Game Boy

edit
  • GBE+ Works just like HDNES, with custom resolutions up to x10. Can be used to colorize monochrome GB games this way when used with x1 sprite replacements. Doesn't have a stable release yet.
  • GameOBJ Based on the Unity3d GB Emulator code "UnityGB". It replaces GB graphics with 3D objects and the result is... unique, certainly worth it. Video   here and   here.

Sega Master System

edit
  • HiSMS - Master System emulator with sprite replacement in HD resolutions.

Texture Replacement (3D)

edit
HD Packs Complete List Spreadsheet

Texture replacement for 3D systems is a broad enhancement feature in emulators that allows original game textures to be dumped, modified, and replaced with higher-quality or stylistically altered assets. While basic texture replacement is common, the overall scope and effectiveness of this feature depends on the range of supported subfeatures.

Texture dumping and loading

Core functionality typically includes:

  • Dumping original textures for editing
  • Loading custom replacement textures
  • Optional dumping of mipmaps
  • Optional dumping of video or FMV-related textures

These features form the foundation of texture pack creation and enable visual upgrades to 3D environments, models, and effects.

Texture loading behavior and performance

To reduce stutter and improve runtime performance, texture replacement systems may include:

  • Asynchronous texture loading
  • Preloading or precaching of replacement textures
  • Texture caching mechanisms

These options are especially important for large texture packs and high-resolution replacements.

Texture tracking and cache control

Advanced systems may track texture uploads more aggressively in order to:

  • Ensure consistent replacement of dynamically reused textures
  • Avoid cache invalidation issues
  • Improve reliability of replacements in complex rendering scenarios

Tracking can also allow dumping of textures after replacement, aiding debugging and refinement.

VRAM write dumping and replacement

Some texture replacement systems operate at the VRAM write level rather than only at the texture upload level. This allows dumping and replacing:

  • User interface elements
  • Menus and HUD graphics
  • Fonts and text glyphs
  • 2D elements rendered directly into VRAM

Additional controls may include:

  • Filtering dumped VRAM writes by size
  • Adjusting alpha channel handling
  • Selectively dumping only replaceable VRAM writes

VRAM write replacement greatly expands the range of assets that can be modified compared to traditional texture replacement alone.

Framebuffer and render target dumping

Support for dumping framebuffer or render-to-texture targets allows replacement or enhancement of:

  • Post-processing effects
  • Rendered UI elements
  • Special effects that are not stored as standard textures

This enables texture replacement to affect assets generated at runtime rather than only static resources.

Texture replacement scope limitations

Without additional supporting systems, texture replacement is often limited by:

  • One-to-one hash-based matching
  • Redundant texture hashes for visually identical assets
  • Difficulty maintaining large texture packs

These limitations can prevent consistent replacement of menus, fonts, title screens, briefings, and other presentation elements.

Enhancement subfeatures for comprehensive overhauls

To enable large-scale, maintainable texture packs, additional subfeatures may be required:

  • Wildcard or pattern-based matching to apply a single replacement across multiple related textures
  • Texture manifests or mapping rules to explicitly control replacement behavior
  • Hash reduction or normalization to group equivalent textures under a shared identifier
  • Texture grouping or categorization to organize assets such as UI, fonts, HUD, and in-game graphics

When these subfeatures are present, texture replacement can expand beyond simple visual upgrades and support full presentation overhauls, including menus, briefings, title screens, fonts, and overlays.

Emulators support

While many popular and recommended emulators advertise support for texture replacement, the actual feature set varies significantly between implementations. In practice, most emulators only support a subset of the texture replacement capabilities described above. At a minimum, texture replacement typically includes dumping original textures and loading custom replacements using hash-based matching. However, advanced aspects—such as asynchronous loading, aggressive texture tracking, VRAM write replacement, framebuffer dumping, or pattern-based matching—are often missing, incomplete, or experimental.

Because of these limitations:

  • Texture replacement is frequently restricted to static 3D textures.
  • UI elements, fonts, menus, and runtime-generated visuals may not be consistently replaceable.
  • Large texture packs can suffer from performance issues, redundancy, or maintenance difficulties.
  • Identical or reused textures may require multiple replacements due to strict one-to-one hash matching.

Nintendo Switch

edit
  • Ryujinx has a LayeredFS mod system which is found under "Users\<username>\AppData\Roaming\Ryujinx\mods\contents\" followed by the game's ID. This folder can be accessed directly by right-clicking the game title and selecting "Open Mods Directory". Texture packs can be placed in this folder.
  • Yuzu has a very similar LayeredFS mod system which is found under "Users\<username>\AppData\Roaming\yuzu\load".

Notable HD texture packs

edit

Nintendo 3DS (Citra)

edit
  • WIP

Notable HD texture packs

edit
  • Henriko Magnifico (multiple games) Link
  • The Legend of Zelda: A Link Between Worlds: Link
  • Super Mario 3D Land: Textures

Dedicated forum: Link

Citra Community Posts: Link

Nintendo 64

edit
  • Project64 - You will need a plugin such as Glide64, Rice, or GLideN64 to replace textures. GLideN64 is the only plugin that can do widescreen hacks and custom textures at the same time, though it has a high system requirement.
  • Mupen64Plus (standalone PC version) - Both Glide64 (and GLideN64) and Rice plugins support texture replacements, though not enabled by default. To enable the custom textures, change "LoadHiResTextures" to true and "ghq_hirs" to 1 in your mupen64plus.cfg. Note that the custom texture-related features are removed from the RetroArch port of Mupen64Plus. Custom texture folder location:
Windows XP and older:
C:\Documents and Settings\<username>\Application Data\Mupen64Plus\hires_texture
Windows Vista and newer:
C:\Users\<username>\AppData\Mupen64Plus\hires_texture
Mac, Linux, and others:
~/.local/share/mupen64plus/hires_texture
  • Mupen64Plus AE - This Android fork of Mupen64 also has texture replacement, but only on Rice plugin. The setting file does have "ghq_hirs" for Glide64, but changing it to 1 has no noticeable effect. Custom texture folder location:
Google Play Free Version:
/sdcard/Android/data/paulscode.android.mupen64plus.free/data/hires_texture
Google Play Donate Version:
/sdcard/Android/data/paulscode.android.mupen64plus/data/hires_texture

Notable texture packs

edit

Dedicated forum: Link.

GameCube/Wii

edit
 
Example of WW HD UI
  • Dolphin has a game-specific directory somewhere under "Documents\Dolphin Emulator\Load\Textures" with your game's ID (check the ISO properties to what it is) where you can put your custom sprites. Under "Graphics", go to the "Advanced" tab and enable "Load Custom Texture", then set "Texture Cache Accuracy" to "Safe". While running, it will replace that texture when the game loads it with the image files under that directory. Texture packs for Dolphin come as tons of image files to put in that directory.

Notable texture packs

edit
GameCube
edit

Dedicated forum: Link

Dreamcast

edit

Notable HD texture packs

edit

PlayStation

edit

Both DuckStation's texture-replacement-PR and beetle-psx-hw-libretro (mednafen_psx_hw_libretro) support this feature but it's still work-in-progress/experimental and incompatible with each others implementation.

Notable HD texture packs

edit

PlayStation 2

edit

Notable HD texture packs

edit
Spreadsheet

Dedicated forum: Link (This group is to collect HD texture packs for the PCSX2 emulator) Direct MediaFire links originate from this thread (which also contains additional packs): Link

PlayStation Portable

edit
  • PPSSPP has a game-specific directory under "user\Documents\PPSSPP\PSP\TEXTURES" with your game's ID (check the ISO properties to what it is) where you can install texture packs. Under "Tools", go to the "Developer Tools" and enable "Replace Textures". PPSSPP texture packs consist of textures in .png format, and a textures.ini file.

Notable HD texture packs

edit

Dedicated forum: Link

PlayStation Vita

edit

Notable HD texture packs

edit
edit