summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/DiscExtractor.cpp
diff options
context:
space:
mode:
authorbooto <remornicus@gmail.com>2018-08-02 03:29:01 -0400
committerbooto <remornicus@gmail.com>2018-08-02 05:32:05 -0400
commit800c1570ea6ab1ee827c482ed06186a391fbbda1 (patch)
tree86c1a29b7a0aa325ef558e16596b46552de1edd0 /Source/Core/DiscIO/DiscExtractor.cpp
parent14e156c29228b3b58ddb6c0c533a39c28b92cee3 (diff)
ExportDOL: ActionReplay has a 0'd dol offset. Don't try to extract.
Diffstat (limited to 'Source/Core/DiscIO/DiscExtractor.cpp')
-rw-r--r--Source/Core/DiscIO/DiscExtractor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/Core/DiscIO/DiscExtractor.cpp b/Source/Core/DiscIO/DiscExtractor.cpp
index f71b9d5aca..3bfdbc2c11 100644
--- a/Source/Core/DiscIO/DiscExtractor.cpp
+++ b/Source/Core/DiscIO/DiscExtractor.cpp
@@ -263,7 +263,13 @@ std::optional<u64> GetBootDOLOffset(const Volume& volume, const Partition& parti
if (!IsDisc(volume_type))
return {};
- return volume.ReadSwappedAndShifted(0x420, partition);
+ std::optional<u64> dol_offset = volume.ReadSwappedAndShifted(0x420, partition);
+
+ // Datel AR disc has 0x00000000 as the offset (invalid) and doesn't use it in the AppLoader.
+ if (dol_offset && *dol_offset == 0)
+ dol_offset.reset();
+
+ return dol_offset;
}
std::optional<u32> GetBootDOLSize(const Volume& volume, const Partition& partition, u64 dol_offset)