8000 [Iso9660] Don't add supplementary volume descriptor if Joliet is not being used by tge-was-taken · Pull Request #96 · DiscUtils/DiscUtils · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[Iso9660] Don't add supplementary volume descriptor if Joliet is not being used #96

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tge-was-taken
Copy link

Having the extra volume descriptor present for me caused problems as the target loader didn't expect it.

@tge-was-taken
Copy link
Author

@LordMike Is there a problem with this PR?

@LordMike
Copy link
Member
LordMike commented Jun 3, 2018

Hi, sorry,..

I have a general issue with PR's because I don't have the knowledge required to verify them.

We can try though..

  • Have you verified the changes? How?
  • Did you check with other tools / specs / other sources to verify that this is the "correct" behaviour?

@tge-was-taken
Copy link
Author

Joliet is an extension to Iso9660, s 97B2 o that's why ISOs can come either with or without the joliet data.
I don't see how leaving in the Joliet specific data, that being the supplementary volume descriptor, in any way makes sense (in fact, you can find plenty of ISOs that don't have it, mostly ones that target older systems).
In this case I was dealing with something related to the PS2, where the loader would reject the ISO if it had the Joliet data (likely didn't support it) and other ISOs that did work did not have that extra data.
If you google around a bit you can find a few things describing lack of support (notably some Linux distro) for Joliet, and the like.

From https://wiki.sleuthkit.org/index.php?title=ISO9660:
"Supplementary volume descriptors are very similar to primary volume descriptors. The main difference is that supplementary volume descriptors can store file names in other encodings, such as Unicode and mixed case.

ISO9660 with "Joliet" support use the secondary volume descriptor to reference a duplicate directory tree that contains the Unicode names. ISO9660 with "Rock Ridge" adds additional metadata into the directory entries to store permissions and other metadata. These can exist in either the primary or secondary volume descriptor trees."

From https://wiki.osdev.org/ISO_9660:
"Joliet was defined by Microsoft Inc. to allow for filenames with up to 64 UCS-2 characters (16 bit). It is implemented as separate tree of Directory Records which begins by a root record in a Supplementary Volume Descriptor. That descriptor is similar to a Primary Volume Descriptor, but has a Type Code of 2."

@LordMike
Copy link
Member
LordMike commented Jun 4, 2018

Ok, so the "Joliet" directory tree is a complete duplicate? Everything in the main tree must also exist in the duplicated Unicode tree?

... that could pose a number of issues.. Damn. :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0