hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.81k stars 2.12k forks source link

Texture hash collisions (TOEIC TEST missing texture) #8249

Open daniel229 opened 8 years ago

daniel229 commented 8 years ago

Look at the words like that on the right side. Since https://github.com/hrydgard/ppsspp/pull/7029 01 02

unknownbrackets commented 8 years ago

Hmm, so this is probably a hash collision. Just got lucky before, maybe. Surprising that it would collide - what does the texture look like in the GE debugger (mostly interested in size / if it has other words)?

-[Unknown]

daniel229 commented 8 years ago

In GE debugger 02

other tabs https://gist.github.com/daniel229/0774777c0c65ac61d1ca

unknownbrackets commented 5 years ago

Could you try exporting a GE frame dump? These help a lot.

See here for instructions - it's not hard and works on Android too: https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump

You can zip that and then drag and drop it into a reply here.

-[Unknown]

benderscruffy01 commented 5 years ago

still happens toeic DUMP.ZIP

unknownbrackets commented 5 years ago

Ah - it looks fine in the dump, I thought it would be two textures on the same frame. Makes sense that it'd be a previous texture, though.

If you create memstick/PSP/TEXTURES/NPJH50574 and put a textures.ini in that folder with this content:

[options]
version = 1
hash = xxh32

That will cause it to use a different texture hashing method. It's a bit slower, but probably won't matter for this case. Does that fix it as expected?

I think the quick hash has worked well for most games, but XXH32 is probably more collision proof (though definitely slower...) We could either switch the default, or I guess (lesser evil) use compat.ini.

-[Unknown]

benderscruffy01 commented 5 years ago

that fixed it toeic