Project

General

Profile

Emulator Issues #12128

Nintendo 64 (GC or Wii VC) Texture Dumping and Texture Replacement

Added by Admentus 2 months ago. Updated 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Most Nintendo 64 titles, either through GameCube discs (ex. The Legend of Zelda: Collector's Edition) or the Virtual Console

Game ID?

PZLE (The Legend of Zelda: Collector's Edition)
D43E (The Legend of Zelda: Master Quest)
NACE (The Legend of Zelda: Ocarina of Time)
NARE (The Legend of Zelda: Majora's Mask)
NALE (Super Smash Bros.)
NABE (Mario Kart 64)

As well as all other regions, and a lot more titles.

MD5 Hash?

2C66F072455CCDBE97A72E5C94784DF8 (PZLE01) (The Legend of Zelda: Collector's Edition)
1E23AFC69BFF50A7D20F32C5B739DC06 (D43E01) (The Legend of Zelda: Master Quest)

Too many other games, versions and regions to list. But the GameDiscs above should be proper US dumps. Dolphin (latest dev build) states that the discs have no issues through verification.

What's the problem? Describe what went wrong.

Texture dumping and texture replacement in Dolphin for Nintendo 64 games (either through Virtual Console emulation or GameCube discs with a provided emulator) has been a bit troublesome. Super Mario 64 is one of the few games that is except from these issues. Especially the Zelda games Ocarina of Time and Majora's Mask are hugely affected by it.

The core issue is that dumped textures tend to be many more than they should be. These additional dumped textures could end up in hundreds of duplicates, which is an non-exist task to perform. or in the best case scenario has tens of finite duplicates which are tiled and end up being a larger size each time. These tiled textures could especially take up a great amount of disk drive space. The base texture could be 32x32 for example with the largest tiled duplicate being 512x512 (just an example). An HD texture for that 32x32 could be retextured in 1024x1024, meaning the same texture should now 16384x16384 to fit the 512x512 tiled duplicate.

The Pirate's Fortress in Majora's Mask only has 291 textures in total. In comparison the graphics plugin GlideN64 should have 115 dumps instead. The exact same issue has existed long since on Nintendo 64 emulator graphics plugins such as Glide64, Rice and even GlideN64. Since a few months GlideN64 has finally fixed that issue for Nintendo 64 emulators. I believe the PR for GlideN64 that fixed it was: https://github.com/gonetz/GLideN64/commit/2d712f2ae0482d7da3b49397902551addd676107. The source code might prove useful perhaps. GlideN64 has a discussion surround it's own issue at: https://github.com/gonetz/GLideN64/issues/1885, which Nerrel requires, who is known for making the Majora's Mask 4K Texture Pack for GlideN64 for Nintendo 64 emulators.

Some textures are much worse through, like the Green Magic Meter for example in Ocarina of Time. Each unique Scene ID (area map) seems to dump a new textures. Be it overworld maps, dungeon rooms, underground grottos and even almost all Scene ID's again as both Child Link and Adult Link (and yes, even all dungeon rooms again).

It can be much worse than that through, such as the Mario Kart 64 Menu Select and Map Select. I am unsure about the conditions, but it seems that each possible combination of last chosen driver, last chosen map and toffees in each color you have causes textures in the Menu Select and Map Select have a different hash, which seems almost an infinite amount of hashes.

This is an especially annoying issue for those who want to work with custom textures, such as the following texture pack for the N64 Zelda titles: https://forums.dolphin-emu.org/Thread-zelda-64-uhd-v4-3-2020-05-02.

In the attached screenshots below you can see how many texture dumps a few titles and areas have. This is just a small sample showcased. The Pirate's Fortress screenshot only shows a fraction of the tiled duplicated textures.

What steps will reproduce the problem?

visit the following areas ingame and enable texture dumping:
- Great Bay: Pirate's Fortress (Majora's Mask) (Tiled Duplicates)
- Ikana Graveyard: Tombstone Caves (Majora's Mask) (Tiled Duplicates)
- Southern Swamp: Deku Shrine (Majora's Mask) (Tiled Duplicates)
- Dragonfly: Fly Effect (Majora's Mask, found in several areas such as Southern Swamp or Stone Tower Temple) (Infinite Duplicates)
- Several bosses such as Odolwa and Goth (Majora's Mask) (Infinite Duplicates ???)
- Green Magic Meter when entering a new area (Ocarina of Time) (Hundreds of Duplicates)
- Ganondorf Boss Fight (Cape) (Infinite Duplicates)
- Dungeon Map (Ocarina of Time & Majora's Mask) (Infinite Duplicates ???)
- Menu Select and Map Select (Mario Kart) (Infinite Duplicates ???)
- Any Multiplayer and Singleplayer stages (Super Smash Bros.) (Tiled Duplicates)
- There's probably a lot more I forgot to mention here

You will immediately notice an high amount of dumped textures. Depending on the situation these could be duplicates (hundreds) or tiled duplicates (tens of duplicates, but finite, where each new duplicate has a different size. All tiled duplicates are tiled versions of the base textures)

Is the issue present in the latest development version?

Yes. Current version I am using is 5.0-12088.

Is the issue present in the latest stable version?

Yes. 5.0.

If the issue isn't present in the latest stable version, which is the first broken version?

I think it was never fixed it all. Dolphin's new texture format made it in 4.0-5234. It was even worse before that. The issue has existed since the very beginning I started working on custom textures and texture dumping for Nintendo 64 titles on Dolphin. I tested even the build before that (4.0-5225) which still has the old texture format which still has the same issue.

If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.

See attached image files below. Visit the said areas above and enable Texture Dumping. See the GlideN64 PR that fixed it: https://github.com/gonetz/GLideN64/commit/2d712f2ae0482d7da3b49397902551addd676107

What are your PC specifications?

Intel i5-8600k, 3.60GHz
NVidia GTX 1070
Windows 10, Version 1909
32 GB RAM

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots, configuration files, savefiles, savestates)

See attached image files below. Visit the said areas above and enable Texture Dumping. See the GlideN64 PR that fixed it: https://github.com/gonetz/GLideN64/commit/2d712f2ae0482d7da3b49397902551addd676107

Mario Kart.png (63.5 KB) Mario Kart.png Mario Kart 64 - File Select (1P Mode) Admentus, 06/04/2020 09:51 AM
Pirate_s Fortress.png (134 KB) Pirate_s Fortress.png Majora's Mask - Pirate's Fortress (291 in total so far) Admentus, 06/04/2020 09:51 AM
Magic.jpg (2.02 MB) Magic.jpg Ocarina of Time - Green Magic Meter textures (332 in total so far) Admentus, 06/04/2020 09:51 AM
Smash.png (514 KB) Smash.png Super Smash Bros. - Smash the Targets (29 brick textures) Admentus, 06/04/2020 09:51 AM
7808
7809
7810
7811

History

#1 Updated by JMC4789 2 months ago

This sounds like the fact that a lot of these games completely break Dolphin's texture cache... I wonder if it's related.

#2 Updated by Admentus 2 months ago

To clarify further on the issue.

The PR for GlideN64 I linked (https://github.com/gonetz/GLideN64/commit/2d712f2ae0482d7da3b49397902551addd676107) only fixed the issue with the tiled texture duplicates, which mostly appear in some areas in Majora's Mask (Deku Shrine, Pirate's Fortress and the Ikana Graveyard - Tombstone Graves) and the stages for Super Smash Bros. The other issues I reported have not been fixed on GlideN64... Yet.

Also available in: Atom PDF