diff options
-rw-r--r-- | engines/adl/disk.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/adl/disk.cpp b/engines/adl/disk.cpp index a9c7a5922e..214f76aeae 100644 --- a/engines/adl/disk.cpp +++ b/engines/adl/disk.cpp @@ -166,6 +166,11 @@ bool DiskImage_NIB::open(const Common::String &filename) { byte *output = diskImage + (track * _sectorsPerTrack + sector) * _bytesPerSector; if (newStyle) { + // We hardcode the DOS 3.3 mapping here. TODO: Do we also need raw/prodos? + int raw2dos[16] = { 0, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 15 }; + sector = raw2dos[sector]; + output = diskImage + (track * _sectorsPerTrack + sector) * _bytesPerSector; + // 6-and-2 uses 342 on-disk bytes byte inbuffer[342]; _f->read(inbuffer, 342); |