[PR #29] [MERGED] ISO 9660 support #53

Open
opened 2026-01-29 21:16:47 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/SabreTools/SabreTools.Serialization/pull/29
Author: @Deterous
Created: 10/29/2025
Status: Merged
Merged: 10/29/2025
Merged by: @mnadareski

Base: mainHead: main


📝 Commits (10+)

📊 Changes

29 files changed (+2730 additions, -0 deletions)

View changed files

📝 ExtractionTool/Features/MainFeature.cs (+5 -0)
SabreTools.Serialization/Extensions/ISO9660.cs (+38 -0)
SabreTools.Serialization/Models/ISO9660/BaseVolumeDescriptor.cs (+209 -0)
SabreTools.Serialization/Models/ISO9660/BootRecordVolumeDescriptor.cs (+27 -0)
SabreTools.Serialization/Models/ISO9660/Constants.cs (+118 -0)
SabreTools.Serialization/Models/ISO9660/DecDateTime.cs (+54 -0)
SabreTools.Serialization/Models/ISO9660/DirectoryExtent.cs (+14 -0)
SabreTools.Serialization/Models/ISO9660/DirectoryRecord.cs (+88 -0)
SabreTools.Serialization/Models/ISO9660/DirectoryRecordDateTime.cs (+47 -0)
SabreTools.Serialization/Models/ISO9660/Enums.cs (+227 -0)
SabreTools.Serialization/Models/ISO9660/ExtendedAttributeRecord.cs (+111 -0)
SabreTools.Serialization/Models/ISO9660/FileExtent.cs (+20 -0)
SabreTools.Serialization/Models/ISO9660/FileSystem.cs (+15 -0)
SabreTools.Serialization/Models/ISO9660/GenericVolumeDescriptor.cs (+15 -0)
SabreTools.Serialization/Models/ISO9660/PathTableGroup.cs (+35 -0)
SabreTools.Serialization/Models/ISO9660/PathTableRecord.cs (+42 -0)
SabreTools.Serialization/Models/ISO9660/PrimaryVolumeDescriptor.cs (+22 -0)
SabreTools.Serialization/Models/ISO9660/SupplementaryVolumerDescriptor.cs (+24 -0)
SabreTools.Serialization/Models/ISO9660/Volume.cs (+50 -0)
SabreTools.Serialization/Models/ISO9660/VolumeDescriptor.cs (+30 -0)

...and 9 more files

📄 Description

This PR adds support for disc images (formally called ISO 9660 volumes), detected by files with .iso extension

  • ISO 9660 models (multi-volume models are added but not yet used)
  • ISO 9660 reader
  • ISO 9660 printer (TODO: Decode strings depending on the volume descriptor type)
  • ISO 9660 wrapper
  • ISO 9660 dummy extractor (implementation to come later)

Note: Internally it is referred to as "ISO9660" but all printing to console should be formatted as "ISO 9660" (with a space)

Example output from ISO9660.Printer
info-2025-10-29_143439.1810.txt


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/SabreTools/SabreTools.Serialization/pull/29 **Author:** [@Deterous](https://github.com/Deterous) **Created:** 10/29/2025 **Status:** ✅ Merged **Merged:** 10/29/2025 **Merged by:** [@mnadareski](https://github.com/mnadareski) **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (10+) - [`6b425b1`](https://github.com/SabreTools/SabreTools.Serialization/commit/6b425b11e95e0ae646dd2a65b9c82ba14bd83bb5) Begin defining ISO9660 models - [`5707130`](https://github.com/SabreTools/SabreTools.Serialization/commit/57071307cea110a4efab1ea9c3a6fe9832ff7431) Fix initial models - [`4f1f588`](https://github.com/SabreTools/SabreTools.Serialization/commit/4f1f588e8798378740bb28af6c431c34831e2679) Improve ISO9660 models - [`790ab40`](https://github.com/SabreTools/SabreTools.Serialization/commit/790ab4057a5c19092451a1107b5bf30030a5d076) ISO9660 models - [`a735059`](https://github.com/SabreTools/SabreTools.Serialization/commit/a735059540b9c471485b1f0f63ce90b464ce207e) Merge branch 'SabreTools:main' into main - [`390135c`](https://github.com/SabreTools/SabreTools.Serialization/commit/390135c296b50914b55ef697fd49645058b76f29) Fix fields - [`fce04ea`](https://github.com/SabreTools/SabreTools.Serialization/commit/fce04ea3a3ef40924928ed2a107c658cd26ea25e) Nullable and enums - [`2f1d6bb`](https://github.com/SabreTools/SabreTools.Serialization/commit/2f1d6bbf53b3eaee9261329dbc81771251b4ebe7) Fix flags attribute - [`406e87b`](https://github.com/SabreTools/SabreTools.Serialization/commit/406e87b95f0ad51c6a83e6e4748bef1a59c0774f) Start ISO9660 Reader code - [`2106f46`](https://github.com/SabreTools/SabreTools.Serialization/commit/2106f4625f0950cb8a7f47f0b5f5c2c6dde9343d) semicolon ### 📊 Changes **29 files changed** (+2730 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `ExtractionTool/Features/MainFeature.cs` (+5 -0) ➕ `SabreTools.Serialization/Extensions/ISO9660.cs` (+38 -0) ➕ `SabreTools.Serialization/Models/ISO9660/BaseVolumeDescriptor.cs` (+209 -0) ➕ `SabreTools.Serialization/Models/ISO9660/BootRecordVolumeDescriptor.cs` (+27 -0) ➕ `SabreTools.Serialization/Models/ISO9660/Constants.cs` (+118 -0) ➕ `SabreTools.Serialization/Models/ISO9660/DecDateTime.cs` (+54 -0) ➕ `SabreTools.Serialization/Models/ISO9660/DirectoryExtent.cs` (+14 -0) ➕ `SabreTools.Serialization/Models/ISO9660/DirectoryRecord.cs` (+88 -0) ➕ `SabreTools.Serialization/Models/ISO9660/DirectoryRecordDateTime.cs` (+47 -0) ➕ `SabreTools.Serialization/Models/ISO9660/Enums.cs` (+227 -0) ➕ `SabreTools.Serialization/Models/ISO9660/ExtendedAttributeRecord.cs` (+111 -0) ➕ `SabreTools.Serialization/Models/ISO9660/FileExtent.cs` (+20 -0) ➕ `SabreTools.Serialization/Models/ISO9660/FileSystem.cs` (+15 -0) ➕ `SabreTools.Serialization/Models/ISO9660/GenericVolumeDescriptor.cs` (+15 -0) ➕ `SabreTools.Serialization/Models/ISO9660/PathTableGroup.cs` (+35 -0) ➕ `SabreTools.Serialization/Models/ISO9660/PathTableRecord.cs` (+42 -0) ➕ `SabreTools.Serialization/Models/ISO9660/PrimaryVolumeDescriptor.cs` (+22 -0) ➕ `SabreTools.Serialization/Models/ISO9660/SupplementaryVolumerDescriptor.cs` (+24 -0) ➕ `SabreTools.Serialization/Models/ISO9660/Volume.cs` (+50 -0) ➕ `SabreTools.Serialization/Models/ISO9660/VolumeDescriptor.cs` (+30 -0) _...and 9 more files_ </details> ### 📄 Description This PR adds support for disc images (formally called ISO 9660 volumes), detected by files with .iso extension - ISO 9660 models (multi-volume models are added but not yet used) - ISO 9660 reader - ISO 9660 printer (TODO: Decode strings depending on the volume descriptor type) - ISO 9660 wrapper - ISO 9660 dummy extractor (implementation to come later) Note: Internally it is referred to as "ISO9660" but all printing to console should be formatted as "ISO 9660" (with a space) Example output from ISO9660.Printer [info-2025-10-29_143439.1810.txt](https://github.com/user-attachments/files/23202168/info-2025-10-29_143439.1810.txt) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 21:16:47 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SabreTools/SabreTools.Serialization#53