New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sizing alignment issues cause dvd read failures in some games #9
Comments
Thanks for telling me about this! Before we continue however, what is your current version of pyisotools (should be v2.X.Y)? I remember a bug very similar to this which I have fixed recently. |
I pulled directly from the git to test. So 2.4.4, potentially + some commits |
Awesome. Next thing I need to know is what the non modified size of the vanilla Metal Arms ISO is, and what the size of the pyisotools modified ISO is. |
Looking into it deeper - it looks like it is a case of adding additional files to the iso that breaks the alignment - which may be out of scope for your project. Size of vanilla: 1459978240 The files added are large (23MB) so its likely due to additional entries in the file table? or something similar. |
Adding files itself isn't an issue, which I can verify because I use pyisotools for my own projects which add many files to the ISO. However, is it possible that with adding such large files you've managed to surpass the ISO capacity? Although I find that pretty unlikely since if that were the case, you'd probably have an ISO that is at least many kilobytes larger than usual. Another idea, did you extract the ISO with or without positional information dumped? If you did it with positional info, it could cause problems with adding new files since the old ones are effectively "frozen" into place. |
I agree this is unlikely. I replaced the files being added with smaller files (3 MB rather than 25MB) and the resulting iso was actually 32 bytes larger than before. (Also i am expanding files in the iso by more than this amount but that doesn't seem to affect anything.
Unsure, I'm just calling "GamecubeISO.from_iso(src)" and "GamecubeISO.from_root(src)". If thats the default behavior then that may be why |
Oh wait wrong functions, I am because extract defaults to that. Let me replace that and try. |
Disabling dump positions resulted in no change - Still having the issue |
Alright, I'll see if I can replicate the bug and from there patch it out. |
I can send you an example root folder if it would help - accept my discord FR |
Games like Metal Arms read the iso in 80 byte chunks and pysiotools creates an iso that is not divisible by 80 bytes. This causes the game to read past the end of the iso when accessing the last block of data and causes a DVD fatal error in dolphin.
Workaround: Append X nullbytes such that the dvd size is divisible by 80.
The text was updated successfully, but these errors were encountered: