emoose / xbox-winfsp

Brings native support for Xbox filesystems (FATX, STFS & GDFX/XGD/XDVDFS) to Windows.
62 stars 6 forks source link

Cannot mount some ISOs #5

Closed rapperskull closed 3 years ago

rapperskull commented 3 years ago

Hi, I cannot mount some ISOs. They all match the hashes on Redump. When I try to mount one of them, the program is stuck on the blinking cursor. Other ISOs work just fine. I'm using the latest version, compiled from source.

ISOs tested and not working so far: Name Redump link
Halo - Combat Evolved (Europe) (Es,It) http://redump.org/disc/21512/
Max Payne (Europe) (En,Fr,Es,It) http://redump.org/disc/19488/
Simpsons, The - Road Rage (Europe) (En,Fr,De) http://redump.org/disc/25596/
emoose commented 3 years ago

That's odd, I was mostly testing/developing against 360 ISOs though, I guess maybe some OG Xbox games have a weird filesystem or something. I'll try getting hold of that to test with soon. If you find any other games that act similarly please let me know!

rapperskull commented 3 years ago

Sure! This is the redump link: http://redump.org/disc/21512/ I've also noticed that XISOs (created with Qwix) don't work. But I think that's beyond the scope of this program (?)

rapperskull commented 3 years ago

The same happens with Max Payne (Europe) (En,Fr,Es,It): http://redump.org/disc/19488/

emoose commented 3 years ago

Might have found a fix for it, latest commit I just pushed seems to fix the "Halo - Combat Evolved (Europe) (Es,It)" image for me at least, any chance you can try it with the other images you listed?

rapperskull commented 3 years ago

Well, it surely works. I arrived at the exact same fix while debugging the program. XISOs are now read too, and all 360 games I was not able to mount are now mountable. What I still don't understand is why we need to keep track of the sector number. Can't we just use dirSize?

emoose commented 3 years ago

Can't really remember the reason for it now, think it might be to do with the padBytes stuff though, IIRC if a directory-entry is large enough to cross over into a new sector it'll be replaced with 0xFF padding up to the next sector, instead of the entry being split between sectors, or something like that, so we have to handle things by sectors instead of just using the dirSize.

Anyway glad to hear it works, I'll look into making a 0.4 release now.