Updated documentation.

This commit is contained in:
2019-11-06 22:15:38 +00:00
parent 2aa82cd9ee
commit 84415fcf05
14 changed files with 760 additions and 200 deletions

View File

@@ -159,12 +159,31 @@ namespace DiscImageChef.Server.Controllers
return View();
}
[Route("DONATING")]
public ActionResult DONATING()
[Route("DONATING"), Route("NEEDED")]
public ActionResult Needed()
{
var sr =
new StreamReader(Path.Combine(_environment.ContentRootPath ?? throw new InvalidOperationException(),
"docs", "DONATING.md"));
"docs", "NEEDED.md"));
string mdcontent = sr.ReadToEnd();
sr.Close();
mdcontent = mdcontent.Replace(".md)", ")");
ViewBag.Markdown = Markdown.ToHtml(mdcontent);
ViewBag.lblVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
return View();
}
[Route("NEEDINFO")]
public ActionResult NeedInfo()
{
var sr =
new StreamReader(Path.Combine(_environment.ContentRootPath ?? throw new InvalidOperationException(),
"docs", "NEEDINFO.md"));
string mdcontent = sr.ReadToEnd();
sr.Close();

View File

@@ -46,7 +46,22 @@
<None Update="docs\Changelog.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\DONATING.md">
<None Update="docs\CODE_OF_CONDUCT.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\CONTRIBUTING.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\ISSUE_TEMPLATE.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\NEEDED.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\NEEDINFO.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\PULL_REQUEST_TEMPLATE.md">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="docs\README.md">

View File

@@ -0,0 +1,42 @@
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "DiscImageChef";
}
@{
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : NEEDED.cshtml
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : DiscImageChef Server.
//
// --[ Description ] ----------------------------------------------------------
//
// Renders list of needed donations.
//
// --[ License ] --------------------------------------------------------------
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
//
// ----------------------------------------------------------------------------
// Copyright © 2011-2019 Natalia Portillo
// ****************************************************************************/
}
<p>
@Html.ActionLink("Return to main page.", "Index")<br />
DiscImageChef list of hardware and software needed:
</p>
<div class="container">@Html.Raw(ViewBag.Markdown)</div>

View File

@@ -7,7 +7,7 @@
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
// Filename : DONATING.cshtml
// Filename : NEEDINFO.cshtml
// Author(s) : Natalia Portillo <claunia@claunia.com>
//
// Component : DiscImageChef Server.
@@ -37,6 +37,6 @@
}
<p>
@Html.ActionLink("Return to main page.", "Index")<br />
DiscImageChef list of things to be donated:
DiscImageChef list of information needed:
</p>
<div class="container">@Html.Raw(ViewBag.Markdown)</div>

View File

@@ -1 +0,0 @@
../../.github/CODE_OF_CONDUCT.md

View File

@@ -0,0 +1,73 @@
# Contributor Covenant Code of Conduct for DiscImageChef
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [claunia@claunia.com](mailto:claunia@claunia.com). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org

View File

@@ -1 +0,0 @@
../../CONTRIBUTING.md

View File

@@ -0,0 +1,323 @@
# Contributing to DiscImageChef
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to DiscImageChef and its modules.
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose
changes to this document in a pull request.
#### Table Of Contents
[Code of Conduct](#code-of-conduct)
[I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question)
[What should I know before I get started?](#what-should-i-know-before-i-get-started)
* [DiscImageChef and modules](#discimagechef-and-modules)
[How Can I Contribute?](#how-can-i-contribute)
* [Reporting Devices](#reporting-devices)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Enhancements](#suggesting-enhancements)
* [Your First Code Contribution](#your-first-code-contribution)
* [Pull Requests](#pull-requests)
* [Patronizing us](#patronizing)
* [Donating hardware to test](#donating)
* [Providing information](#needed-information)
[Styleguides](#styleguides)
* [Git Commit Messages](#git-commit-messages)
* [Code Styleguide](#code-styleguide)
## Code of Conduct
This project and everyone participating in it is governed by the
[DiscImageChef Code of Conduct](.github/CODE_OF_CONDUCT.md). By participating, you are expected
to uphold this code. Please report unacceptable behavior to [claunia@claunia.com](mailto:claunia@claunia.com).
## I don't want to read this whole thing I just have a question!!!
> **Note:** Please don't file an issue to ask a question. You'll get faster results by
using the resources below.
You can join our IRC channel on chat.freenode.net at channel #DiscImageChef
## What should I know before I get started?
### DiscImageChef and modules
DiscImageChef is a large open source project &mdash; it's made up of 18 modules. When you initially consider contributing to DiscImageChef, you might be unsure about which of those modules implements the functionality you want to change or report a bug for. This section should help you with that.
DiscImageChef is intentionally very modular. Here's a list of them:
* [Claunia.RsrcFork](https://github.com/claunia/Claunia.RsrcFork) -
This library includes code for handling Mac OS resource forks, and decoding them, so any
code related to Mac OS resource forks should be added here.
* [Claunia.Encoding](https://github.com/claunia/Claunia.Encoding) -
This library includes code for converting codepages not supported by .NET, like those used
by ancient operating systems, to/from UTF-8.
* [plist-cil](https://github.com/claunia/plist-cil) -
This library includes code for handling Apple property lists.
* [SharpCompress](https://github.com/adamhathcock/sharpcompress) -
This library includes code for handling compression algorithms and compressed archives. Any
need you have of compression or decompression should be handled with this library, and any new algorithm should be added here.
* [DiscImageChef](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef) -
This module contains the command line interface. In the future a GUI will be added.
* [DiscImageChef.Checksums](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Checksums) -
This module contains the checksum, hashing and error correction algorithms.
* [DiscImageChef.CommonTypes](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.CommonTypes) -
This module contains interfaces, structures and enumerations needed by more than one of the other modules.
* [DiscImageChef.Console](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Console) -
This module abstracts consoles used by other modules to output information, so they can be
redirected to a CLI or to a GUI output.
* [DiscImageChef.Core](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Core) -
This module contains the implementation of the functions and commands that are called by the
user interface itself.
* [DiscImageChef.Decoders](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Decoders) -
This module contains internal disk, drive and protocol structures as well as code to marshal,
decode and print them.
* [DiscImageChef.Devices](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Devices) -
This module contains code to talk with hardware devices in different platforms. Each platform
has lowlevel calls in its own folder, and each device protocol has highlevel calls in its own
folder. Device commands are separated by protocol standard, or vendor name.
* [DiscImageChef.Device.Report](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Device.Report) -
This is a separate application in C89 designed to create device reports on enviroments where
you can't run .NET or Mono but can run Linux.
* [DiscImageChef.DiscImages](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.DiscImages) -
This module provides reading capabilities for the disk/disc images, one per file.
* [DiscImageChef.Filesystems](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Filesystems) -
This module provides the filesystem support. If only identification is implemented a single
file should be used. For full read-only support, a folder should be used.
* [DiscImageChef.Filters](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Filters) -
A filter is a modification of the data before it can be passed to the disk image module
(compression, fork union, etc), and this module provides support for them. If a image is
compressed, say in gzip, or encoded, say in AppleDouble, a filter is the responsible of
decompressing or decoding it on-the-fly.
* [DiscImageChef.Helpers](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Helpers) -
This module contains a collection of helpers for array manipulation, big-endian marshalling,
datetime conversion, hexadecimal printing, string manipulation and byte swapping.
* [DiscImageChef.Partitions](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Partitions) -
This module contains code for reading partition schemes.
* [DiscImageChef.Server](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Server) -
This module contains the server-side code that's running at https://www.discimagechef.app
* [DiscImageChef.Settings](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Settings) -
This module contains code for handling DiscImageChef settings.
* [DiscImageChef.Tests](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Tests) -
This module contains the unit tests for the rest of the modules. You should add new unit
tests here but cannot run all of them because the test images they require amount to more
than 100GiB.
* [DiscImageChef.Tests.Devices](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Tests.Devices) -
This module presents a menu driven interface to send commands to devices, as a way to test
the Core module, as those tests cannot be automated. It can be used to debug drive responses.
## How Can I Contribute?
### Reporting Devices
DiscImageChef tries to be as universal as possible. However some devices do not behave in
the expected ways, some media is unknown and needs to be known prior to enabling dumping of it,
etc.
For that reason, DiscImageChef includes the [device-report command](https://github.com/claunia/DiscImageChef/wiki/Reporting-physical-device-capabilities).
Using this command will guide you thru a series of questions about the device, and if it
contains removable media, for you to insert the different media you have, and create a report
of its abilities. The report will automatically be sent to our server and saved on your computer.
Please note that we do not store any personal information and when possible remove the drive
serial numbers from the report.
If you have a drive attached to a computer that you cannot run the full DiscImageChef on it
but can compile a C89 application, you can use [DiscImageChef.Device.Report](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Device.Report).
In this case the report will only be created locally and you should attach it to a bug report.
### Reporting Bugs
This section guides you through submitting a bug report for DiscImageChef. Following these guidelines
helps maintainers and the community understand your report :pencil:, reproduce the
behavior :computer: :computer:, and find related reports :mag_right:.
Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you
might find out that you don't need to create one. When you are creating a bug report, please
[include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out
[the required template](.github/ISSUE_TEMPLATE.md), the information it asks for helps us resolve
issues faster.
> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're
experiencing, open a new issue and include a link to the original issue in the body of your
new one.
#### Before Submitting A Bug Report
* **Check the [wiki](https://github.com/claunia/DiscImageChef/wiki)** for a list of common
questions and problems.
* **Determine [which module the problem should be reported in](#discimagechef-and-modules)**.
* **Perform a [cursory search](https://github.com/search?q=+is%3Aissue+user%3Aclaunia)**
to see if the problem has already been reported. If it has **and the issue is still open**,
add a comment to the existing issue instead of opening a new one.
#### How Do I Submit A (Good) Bug Report?
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). After
you've determined [which module](#discimagechef-and-modules) your bug is related to,
create an issue on that repository and provide the following information by filling in
[the template](.github/ISSUE_TEMPLATE.md).
Explain the problem and include additional details to help maintainers reproduce the problem:
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible.
For example, start by explaining how you started DiscImageChef, e.g. which command exactly
you used in the terminal. Also note that some device commands requires you to have
administrative privileges, be in a specific group, or be the root user, so try it again with
escalated privileges.
* **Provide specific examples to demonstrate the steps**. Include links to media images,
reports of the devices, or the output of using [DiscImageChef.Tests.Devices](https://github.com/claunia/DiscImageChef/tree/master/DiscImageChef.Tests.Devices).
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **Include a copy of the output in the terminal** enabling both verbose, using the `-v`
command line parameter, and debug, using the `-d` command line parameter, outputs.
* **If you're reporting that DiscImageChef crashed**, try doing the same with the debug
version and include a crash report with a stack trace. Include the crash report in the issue
in a [code block](https://help.github.com/articles/markdown-basics/#multiple-lines), a
[file attachment](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/),
or put it in a [gist](https://gist.github.com/) and provide link to that gist.
* **If the problem wasn't triggered by a specific action**, describe what you were doing
before the problem happened and share more information using the guidelines below.
Include details about your configuration and environment:
* **Which version of DiscImageChef are you using?**
* **What's the name and version of the OS you're using**?
* **Are you running DiscImageChef in a virtual machine?** If so, which VM software are you
using and which operating systems and versions are used for the host and the guest?
* **Are you trying to execute a device command?** If so, who manufactured the device, which
model is it, and how is it connected to the computer?
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for DiscImageChef, including
completely new features and minor improvements to existing functionality. Following these
guidelines helps maintainers and the community understand your suggestion :pencil: and find
related suggestions :mag_right:.
Before creating enhancement suggestions, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion).
Fill in [the template](.github/ISSUE_TEMPLATE.md), including the steps that you imagine you would
take if the feature you're requesting existed.
#### How Do I Submit A (Good) Enhancement Suggestion?
Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/).
After you've determined [which module](#discimagechef-and-modules) your enhancement suggestion
is related to, create an issue on that repository and provide the following information:
* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description of the suggested enhancement** in as many details as
possible.
* **Provide specific examples to demonstrate the steps**. If the feature is about a media image,
filesystem, partitioning scheme, or filter, please include as many test files as possible,
and if applicable which software created them.
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **List some other applications where this enhancement exists.**
* **Specify which version of DiscImageChef you're using.**
* **Specify the name and version of the OS you're using.**
### Your First Code Contribution
Unsure where to begin contributing to DiscImageChef? You can start by looking through these `beginner` and `help-wanted` issues:
* [Beginner issues][beginner] - issues which should only require a few lines of code, and a test or two.
* [Help wanted issues][help-wanted] - issues which should be a bit more involved than `beginner` issues.
Both issue lists are sorted by total number of comments. While not perfect, number of
comments is a reasonable proxy for impact a given change will have.
If you want to read about using DiscImageChef, the [wiki](https://github.com/claunia/DiscImageChef/wiki) is available.
Do not modify the interfaces. If you need or want to, comment in an issue how and why you
want to change it and we'll discuss it. Same applies for creating new interfaces.
DiscImageChef uses C# 7 language features (inline declaration, Tuples, etc.) so it can only
be compiled with [VisualStudio](http://www.visualstudio.com) 2017 or higher, [Xamarin Studio](https://www.xamarin.com/download)
7 or higher, [MonoDevelop](http://www.monodevelop.com) 7 or higher, or [JetBrains Rider](https://www.jetbrains.com/rider/) 2017.2 or higher.
### Pull Requests
* Fill in [the required template](.github/PULL_REQUEST_TEMPLATE.md)
* Do not include issue numbers in the PR title
* Follow the [code styleguide](#code-styleguide).
* Include test files as applicable, that do not have software under copyright inside them,
if possible.
* Document new code based using XML documentation wherever possible.
* DO NOT end files with a newline.
* Avoid platform-dependent code, unless absolutely needed. Any call to a part of the
.NET framework that doesn't start with `System.` is probably platform-dependent.
* Do not call libraries external to .NET. Only Interop calls to the operating system kernel
(that is `KERNEL32.DLL` in Windows and `libc` in others) will be accepted. If you need to
talk with a USB devices your pull request must implement calls both to `WinUsb` and `libusb`.
### Patronizing
If you want to donate money you can become a patron at https://www.patreon.com/DiscImageChef
This money will be used to get more hardware on which to test DiscImageChef.
### Donating
You may donate us one of the [devices we need](NEEDED.md).
### Needed information
If you have test images, imaging applications that generate formats we do not support, or
documentation about media dump formats, filesystems or partitioning schemes we do not
support, you can provide us with that information to add support for them.
## Styleguides
### Git Commit Messages
* Use the present tense ("Add feature" not "Added feature")
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
* Limit the first line to 72 characters or less
* Reference issues and pull requests liberally after the first line
* Consider starting the commit message with an applicable emoji:
* :art: `:art:` when improving the format/structure of the code
* :racehorse: `:racehorse:` when improving performance
* :non-potable_water: `:non-potable_water:` when plugging memory leaks
* :memo: `:memo:` when writing docs
* :penguin: `:penguin:` when fixing something on Linux
* :apple: `:apple:` when fixing something on macOS
* :checkered_flag: `:checkered_flag:` when fixing something on Windows
* :bug: `:bug:` when fixing a bug
* :fire: `:fire:` when removing code or files
* :green_heart: `:green_heart:` when fixing the CI build
* :white_check_mark: `:white_check_mark:` when adding tests
* :lock: `:lock:` when dealing with security
* :arrow_up: `:arrow_up:` when upgrading dependencies
* :arrow_down: `:arrow_down:` when downgrading dependencies
* :shirt: `:shirt:` when removing linter warnings
### Code Styleguide
- Braces are unindented at next line (BSD style).
- Braces with no content should be opened and closed in the same line.
- Constants should be ALL_UPPER_CASE.
- Do not use braces for statements that don't need them.
- Do not use more than one blank line.
- Do not use spaces before or after parentheses.
- Do not use `var` ever.
- `else`, `while`, `catch` and `finally` should be on a new line.
- If you know C apply a simple rule: Be as C as and as less C# or C++ as possible.
- If you will only store variables, use a struct. If you need it to be nullable, use a
nullable struct if applicable.
- Indent statements and cases.
- Indent using 4 spaces (soft tab).
- Instace and static fields should be lowerCamelCase.
- Public fields should be UpperCamelCase.
- Separate attributes.
- Use 120 columns margins.
- Use built-in keywords: `uint` instead of `UInt32`.
- Use expression bodies only for properties, indexes and events. For the rest use block
bodies.
- Use implicit modifiers.
- Use inline variable declaration.
- Use struct implicit constructor.
- Use UNIX (`\n`) endline character.
> Note: DiscImageChef is quite low-level so unneeded object-oriented abstractions
(e.g. using classes when a struct suffices) will be rejected. LINQ is accepted.

View File

@@ -179,7 +179,7 @@
### - Create sidecar
- Add filesystems only to the appropriate partition and track.
- Fix CD Lead-in, TOC and XGD tags.
- Fix CD first track pregap, TOC and XGD tags.
- Fix diameter setting.
- Fix SCSI MODE SENSE.
- Fix USB descriptors.

View File

@@ -1,174 +0,0 @@
Hardware donations
==================
This is a list of hardware that I'm searching but is too rare or too expensive for me to get them.
The reason I want this hardware is because having it is the only way to add enhanced support for them (e.g. media detection, ECC support, raw dumping, etc.).
After adding enhanced support all drives will be given to the Canary Islands Computer Museum.
- 3.5" magneto-optical media: 540MiB, 1.3GiB
- 5.25" magneto-optical drive and media
- 8" shugart drive
- ADR drive and tapes
- AIT drive and tapes
- Apple twiggy and media
- Caleb UHD144 drive
- Castlewood Orb 2.2 and 5.7
- DLT drive and tapes
- DiscFerret
- HD-DVD media
- Host-aware and host-controller SAS and SATA zoned hard disks
- Insite floptical drive
- Iomega Bernoulli
- Iomega Ditto drive and tapes
- Iomega JAZ and JAZ 2
- Iomega REV
- Iomega ZIP750 drive
- LD-ROM drive and media
- LTO drive and tapes
- LV-ROM drive and media
- Mammoth drive and tapes
- Panasonic Blu-ray recorder
- Plasmon UDO and UDO2 drives and media
- SCSI floppy drive (e.g. Teac FD235JS806-U)
- SLR drive and tapes
- Sony Hi-MD and media
- Sony HiFD
- Sony MD-DATA and media
- Sony Professional Disc for DATA
- Stringy floppy
- Syquest EZ135 drive and media
- Syquest EZFlyer drive and media
- Syquest Quest drive and media
- Syquest SQ2542 drive and media
- Syquest SQ306RD drive and SQ100 media
- Syquest SQ3105 drive and SQ310 media
- Syquest SQ312RD drive and SQ200 media
- Syquest SQ319RD drive and SQ300 media
- Syquest SQ3270 drive and SQ327 media
- Syquest SQ5110 drive and SQ800 media
- Syquest SQ5200C drive and SQ2000 media
- Syquest SQ555 drive and SQ400 media
- Syquest SparQ drive and media
- Syquest SyJet drive and media
- T9840, T9940, T10000 drive and tapes
- Travan drive and tapes
- Triton drive and media
- VXA drive and tapes
Software donations
==================
This is a list of software whose physical media has some characteristics that needs
to be investigated to allow correct dumping of such characteristics. Usually those
are copy protections.
- CD-V
- CD-i Ready
- A Christmas Songbook
- Accelerator
- Alien Gate
- Beyond Limits
- Escape
- Lucky Luke
- Louis Armstrong
- Dark Fables of Aesop
- More Dark Fables of Aesop
- Mozart
- Opera Imaginaire
- Pavarotti
- Steel Machine
- The Apprentice
- Dimo's Quest
- The Worlds of...
- SafeDisc
- Age of Wonders II: The Wizard's Throne
- Beowulf
- Black & White 2
- Brothers in Arms: Road to Hill 30
- Call of Duty: World at War
- Carmageddon II: Carpocalypse Now
- Close Combat: Invasion Normandy
- Codename: Eagle
- Command & Conquer: Generals
- FIFA Football 2002
- Football Manager 2007
- SecuROM
- Arabian Nights
- Arcania: Gothic 4
- Boiling Point: Road to Hell
- Caesar IV
- Cars 2
- Clive Barker's Jericho
- Colin McRae Rally 04
- Colin McRae Rally 2.0
- Colin McRae Rally 3
- Command & Conquer: Red Alert 3 - Uprising
- Commandos: Strike Force
- Devil May Cry 4
- Die Hard: Nakatomi Plaza
- Disney Planes
- Divinity II: Developer's Cut
- StarForce
- Anno 1701
- Black Mirror 3
- BloodRayne 2
- Chronostorm: Siberian Border
- Codename: Outbreak
- Dead to Rights
- Disciples III: Renaissance
- Game of Thrones
- Gothic 3
- Gothic 3: Forsaken Gods
- Mass Effect
- Mount & Blade
- Pac-Man World 2
- Tages
- Act of War: High Treason
- Anno 1701
- Beyond Good & Evil
- Codename: Panzers - Cold War
- Darkstar One
- Desperados 2: Cooper's Revenge
- Driver: Parallel Lines
- Faery: Legends of Avalon
- Fahrenheit
- Fantasy Wars
- Glory of the Roman Empire
- Gothic 3
- Hard to Be a God
- Helldorado
- Moto Racer 3
- Nail'd
- Nostradamus: The Last Prophecy
- Rag Doll Kung Fu
- Rayman Origins
- RoboCop (2003)
- Runaway 2: The Dream of the Turtle
- S.T.A.L.K.E.R.: Shadow of Chernobyl
- Secret Files: Tunguska
- Silverfall
- SpellForce 2: Shadow Wars
- Still Life 2
- The Chronicles of Riddick: Assault on Dark Athena
- War Front: Turning Point
- XIII
- Solidshield
- A-Train 8
- Anno 2070
- Assassin's Creed: Brotherhood
- Crysis 2
- Dead Mountaineer's Hotel
- Dead Space 2
- Hard to Be a God
- Helldorado
- I Am Alive
- Jack Keane
- James Cameron's Avatar: The Game
- Medal of Honor: Airborne
- Need for Speed: Hot Pursuit
- ObsCure II
- Risen
- Shift 2 Unleashed
- Still Life 2
- Warfare
- X3: Terran Conflict

View File

@@ -1 +0,0 @@
../../.github/ISSUE_TEMPLATE.md

View File

@@ -0,0 +1,49 @@
### Prerequisites
* [ ] Are you running the latest version?
* [ ] Can you reproduce the problem in the debug version?
### Check and fill as appropriate:
* [ ] I was running DiscImageChef under Windows [version here]...
* [ ] I was running DiscImageChef under Linux [version here]...
* [ ] I was running DiscImageChef under FreeBSD [version here]...
* [ ] I was running DiscImageChef under macOS [version here]...
* [ ] ...using .NET Framework [version here]...
* [ ] ...using .NET Core [version here]...
* [ ] ...using Mono [version here]...
* [ ] ...in 32-bit
* [ ] ...in 64-bit
### Description
[Description of the bug or feature]
### Exact command line used:
`DiscImageChef [command] [parameters]`
### Expected behavior:
[What you expected to happen]
### Actual behavior:
[What actually happened]
### If command was expected to work with a device fill this out:
* **Manufacturer**:
* **Model**:
* **Bus**:
* [ ] Parallel ATA
* [ ] Serial ATA
* [ ] SCSI (any)
* [ ] ATAPI (mark above if parallel or serial)
* [ ] USB
* [ ] FireWire
* [ ] PCMCIA
* [ ] SecureDigital
* [ ] MultiMediaCard
### Output of command execution with debug output enabled
```
Paste the whole output of the executed command when you append '-d' to your command line parameters here
```

View File

@@ -0,0 +1,175 @@
This is a list of hardware, software, and general information needed to expand and better support various unique hardware and
software configurations for DiscImageChef. We accept donation of this hardware, or loans: paying for shipping is greatly appreciated,
but can make other arrangements depending on cost. For media, we do accept loans, but please be aware that due to its age, there is
no guarantee it will still be working after it is returned and thus donations are preferred.
Drives
======
This is a list of drives. The reason we need these drives is because it is the only way to add enhanced support for them (e.g. media
detection, ECC support, raw dumping, etc.). Also some drives depart from the specifications and need special workarounds. If a drive is
listed here, but the media it uses is not listed below, we already have media for it. Drives are preferred in ATA/ATAPI, SCSI, USB or
FireWire buses. Parallel port drives require a larger amount of work, and there is no guarantee it can work, at all, with other drives. If in
doubt, please contact us.
- 5.25" magneto-optical (preferibly the 9.6Gb supporting one)
- 8" shugart floppy drive (preferibly the 240VAC one)
- ADR tape drive
- AIT tape drive
- Apple FileWare "twiggy"
- Caleb UHD144
- Castlewood Orb 5.7
- DLT tape drive
- DiscFerret
- Host-aware and host-controlled SAS and SATA zoned hard disks
- Insite floptical
- Iomega Bernoulli (not the 90Mb one)
- Iomega Ditto tape drive
- Iomega JAZ
- Iomega JAZ 2
- Iomega REV 70Gb
- Iomega ZIP750
- LD-ROM
- LTO 1, 3, 4, 6, 7
- LV-ROM
- Mammoth tape
- Panasonic Blu-ray recorder
- Plasmon UDO
- Plasmon UDO 2
- SLR tape drive
- Sony MD-DATA (e.g. MDM-111, MDH-10)
- Sony Professional Disc for DATA
- Stringy floppy drive
- Syquest EZ135 drive
- Syquest EZFlyer drive
- Syquest Quest drive
- Syquest SQ2542 drive
- Syquest SQ306RD drive
- Syquest SQ3105 drive
- Syquest SQ312RD drive
- Syquest SQ319RD drive
- Syquest SQ3270 drive
- Syquest SQ5110 drive
- Syquest SQ5200C drive
- Syquest SQ555 drive
- Syquest SyJet drive
- T9840, T9940, T10000 tape drives
- Travan tape drive
- Triton drive
- VXA tape drive
Media
=====
This is the media for the drives listed above, or media for drives we do have, but lack and thus cannot test the actual hardware.
- 3.5" magneto-optical media: 540MiB
- 5.25" magneto-optical media: 128MiB, 640MiB, 9.6GiB
- ADR tapes
- AIT tapes
- Apple FileWare "twiggy" floppies
- Caleb UHD144 floppy
- Castlewood Orb 5.7
- DLTtape, DLTtapeII, DLTtapeIII
- Recordable and rewritable HD-DVD
- Iomega Bernoulli (not the 90MiB one)
- Iomega Ditto drive and tapes
- Iomega JAZ
- Iomega REV 70Gb
- LD-ROM
- LTO 3, 4, 6, 7 tapes
- LV-ROM
- Mammoth tapes
- Plasmon UDO
- Plasmon UDO 2
- SLR tapes
- Sony HiFD floppy
- Sony MD-DATA discs
- Sony Professional Disc for DATA
- Stringy floppy
- Syquest EZ135 media
- Syquest EZFlyer media
- Syquest Quest media
- Syquest SQ2542 media
- Syquest SQ100 media
- Syquest SQ310 media
- Syquest SQ200 media
- Syquest SQ300 media
- Syquest SQ327 media
- Syquest SQ800 media
- Syquest SQ2000 media
- Syquest SQ400 media
- Syquest SyJet media
- T9840, T9940, T10000 tapes
- Travan tapes
- Triton media
- VXA tapes
Software
==================
This is a list of software whose physical media has some characteristics that needs
to be investigated to allow correct dumping of such characteristics. Usually those
are copy protections.
- CD-i Ready
- A Christmas Songbook
- Accelerator
- Alien Gate
- Beyond Limits
- Escape
- Lucky Luke
- Louis Armstrong
- Dark Fables of Aesop
- More Dark Fables of Aesop
- Mozart
- Opera Imaginaire
- Pavarotti
- Steel Machine
- The Apprentice
- Dimo's Quest
- The Worlds of...
- SafeDisc
- Beowulf
- Black & White 2
- Brothers in Arms: Road to Hill 30
- Carmageddon II: Carpocalypse Now
- Close Combat: Invasion Normandy
- Codename: Eagle
- SecuROM
- Arabian Nights
- Arcania: Gothic 4
- Boiling Point: Road to Hell
- Cars 2
- Clive Barker's Jericho
- Colin McRae Rally 04
- Colin McRae Rally 2.0
- Colin McRae Rally 3
- Command & Conquer: Red Alert 3 - Uprising
- Devil May Cry 4
- Die Hard: Nakatomi Plaza
- Disney Planes
- StarForce
- Black Mirror 3
- BloodRayne 2
- Chronostorm: Siberian Border
- Codename: Outbreak
- Dead to Rights
- Disciples III: Renaissance
- Mount & Blade
- Pac-Man World 2
- Tages
- Anno 1701
- Darkstar One
- Faery: Legends of Avalon
- Helldorado
- Nostradamus: The Last Prophecy
- Silverfall
- Solidshield
- A-Train 8
- Anno 2070
- Assassin's Creed: Brotherhood
- Dead Mountaineer's Hotel
- Dead Space 2
- Helldorado
- I Am Alive
- ObsCure II
- Shift 2 Unleashed
- Warfare

View File

@@ -1 +0,0 @@
../../NEEDINFO.md

View File

@@ -0,0 +1,11 @@
Information and test data
=========================
This is a list of information I need, including test disk images.
- DiscFerret stream images
- Information about the KenCode compression algorithm, or an implementation in C or Pascal
- Information about the structure and compression algorithm for XPACK disk images, or an implementation in C
- KryoFlux stream images
- NetWare 286 license and installation media for adding support to its filesystem
- NetWare 386 license and installation media for adding support to its filesystem

View File

@@ -1 +0,0 @@
../../.github/PULL_REQUEST_TEMPLATE.md

View File

@@ -0,0 +1,14 @@
## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] New filesystem, test images in [url]
- [ ] New disc image, test images in [url]
- [ ] New partition scheme, test images in [url]
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] I have read the **CONTRIBUTING** document.
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.

View File

@@ -2,14 +2,14 @@ DiscImageChef v4.5.99.1693
Disc Image Chef (because "swiss-army-knife" is used too much)
Copyright © 2011-2018 Natalia Portillo <claunia@claunia.com>
Copyright © 2011-2019 Natalia Portillo <claunia@claunia.com>
[![Build status](https://dev.azure.com/DiscImageChef/DiscImageChef/_apis/build/status/DiscImageChef-.NET%20Desktop-CI)](https://dev.azure.com/DiscImageChef/DiscImageChef/_build/latest?definitionId=4)
[![Build Status](https://travis-ci.org/claunia/DiscImageChef.svg?branch=master)](https://travis-ci.org/claunia/DiscImageChef)
[![Build Status](https://travis-ci.org/discimagechef/DiscImageChef.svg?branch=master)](https://travis-ci.org/discimagechef/DiscImageChef)
[![Build status](https://ci.appveyor.com/api/projects/status/vim4c8h028pn5oys?svg=true)](https://ci.appveyor.com/project/claunia/discimagechef)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef?ref=badge_shield)
You can see statistics and device reports [here](https://www.discimagechef.app/Statistics.aspx)
You can see statistics and device reports [here](https://www.discimagechef.app/Stats)
DiscImageChef is a fully featured media dump management solution. You usually know media dumps
as disc images, disk images, tape images, etc.
@@ -24,6 +24,10 @@ To see list of pending things to do, check the [TODO list](TODO.md).
If you want to contribute in any way please read the [contributing guide](CONTRIBUTING.md).
Stable releases in [Github](https://github.com/discimagechef/DiscImageChef/releases).
CI beta builds [here](https://goo.gl/6dZPMq).
System requirements
===================
DiscImageChef should work under any operating system where there is [Mono](http://www.mono-project.com/)
@@ -45,11 +49,23 @@ Features
* Analyzes a disk image getting information about the disk itself and analyzes partitions and filesystems inside them
* Can checksum the disks (and if optical disc, separate tracks) user-data (tags and metadata coming soon)
* Can compare two disk images, even different formats, for different sectors and/or metadata
* Can list and extract contents from filesystems that support that
* Can list and extract contents from supported filesystems
* Can read several disk image formats.
* Can read several known sector by sector formats with variable bytes per sector.
* Can read standard sector by sector copies for optical and magnetic discs with constant bytes per sector.
* Can verify sectors or disk images if supported by the underlying format
* Can dump media from ATA, ATAPI, SCSI, USB, FireWire and SDHCI drives (magnetic disks, optical discs, magnetoptical disks, flash devices, memory cards and tapes) to several supported image formats.
* Can convert between image formats.
* Include an opensource archival image format with compression and deduplication.
* Can create standard open XML metadata from existing images.
* Can measure readability and speed of media (same that can be dumped, MHDD style)
* Has an online database with drive capabilities, and can report the capabilities of any drive.
* Works on any operating system and architecture where Mono or .NET Framework is supported (drive access requires Windows, Linux or FreeBSD).
* Has a graphical interface (work in progress)
Feature requests
================
[![Feature Requests](http://feathub.com/discimagechef/DiscImageChef?format=svg)](http://feathub.com/discimagechef/DiscImageChef)
Supported disk image formats (read-only)
========================================
@@ -88,6 +104,7 @@ Supported disk image formats (read and write)
* CDRWin cue/bin cuesheets, including ones with ISOBuster extensions
* CisCopy disk image (aka DC-File, .DCF)
* CloneCD
* CopyTape
* DataPackRat's d2f/f2d disk image format ("WC DISK IMAGE")
* Digital Research DiskCopy
* DiscImageChef format
@@ -138,15 +155,22 @@ Supported partitioning schemes
Supported file systems for read-only operations
===============================================
* 3DO Opera file system
* Apple DOS file system
* Apple Lisa file system
* Apple Macintosh File System (MFS)
* CD-i file system
* CP/M file system
* High Sierra Format
* ISO9660, including Apple, Amiga, Rock Ridge, Joliet and Romeo extensions
* Microsoft 12-bit File Allocation Table (FAT12), including Atari ST extensions
* Microsoft 16-bit File Allocation Table (FAT16)
* Microsoft 32-bit File Allocation Table (FAT32), including FAT+ extension
* U.C.S.D Pascal file system
* Xbox filesystems
Supported file systems for identification and information only
==============================================================
* 3DO Opera file system
* Acorn Advanced Disc Filing System
* Alexander Osipov DOS (AO-DOS for Electronika BK-0011) file system
* Amiga Fast File System v2, untested
@@ -161,7 +185,6 @@ Supported file systems for identification and information only
* BSD Fast File System (FFS) / Unix File System (UFS)
* BSD Unix File System 2 (UFS2)
* B-tree file system (btrfs)
* CD-i file system
* Coherent UNIX file system
* Commodore 1540/1541/1571/1581 filesystems
* Cram file system
@@ -173,19 +196,14 @@ Supported file systems for identification and information only
* Fossil file system (from Plan9)
* HAMMER file system
* High Performance Optical File System (HPOFS)
* High Sierra Format
* HP Logical Interchange Format
* IBM Journaling File System (JFS)
* ISO9660
* Linux extended file system
* Linux extended file system 2
* Linux extended file system 3
* Linux extended file system 4
* Locus file system
* MicroDOS file system
* Microsoft 12-bit File Allocation Table (FAT12), including Atari ST extensions
* Microsoft 16-bit File Allocation Table (FAT16)
* Microsoft 32-bit File Allocation Table (FAT32), including FAT+ extension
* Microsoft Extended File Allocation Table (exFAT)
* Microsoft/IBM High Performance File System (HPFS)
* Microsoft New Technology File System (NTFS)
@@ -212,7 +230,6 @@ Supported file systems for identification and information only
* UnixWare boot file system
* Veritas file system
* VMware file system (VMFS)
* Xbox filesystems
* Xenix file system
* Xia filesystem
* Zettabyte File System (ZFS)
@@ -250,5 +267,6 @@ These disk image formats cannot be read, but their contents can be checksummed o
* SuperCardPro
## License
License
=======
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fclaunia%2FDiscImageChef?ref=badge_large)

View File

@@ -33,7 +33,7 @@
* Add support for differencing QCOW images. (https://github.com/claunia/DiscImageChef/issues/143)
* Add support for differencing QED images. (https://github.com/claunia/DiscImageChef/issues/144)
* Add support for DiscFerret devices. (https://github.com/claunia/DiscImageChef/issues/140)
* Add support for dumping CD Lead-In in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/113)
* Add support for dumping CD First Track Pregap in FreeBSD. (https://github.com/claunia/DiscImageChef/issues/113)
* Add support for encrypted NDIF images. (https://github.com/claunia/DiscImageChef/issues/149)
* Add support for encrypted QCOW2 images. (https://github.com/claunia/DiscImageChef/issues/145)
* Add support for encrypted QCOW images. (https://github.com/claunia/DiscImageChef/issues/146)