aaru-dps / Aaru

Aaru Data Preservation Suite
Other
501 stars 33 forks source link

NEC PC-88 disk images are not recognized #834

Open sdsnatcher opened 10 months ago

sdsnatcher commented 10 months ago

Version

6.0.0~alpha9+e10c237e

Commit hash

No response

Tested debug version?

Which operating systems have you used?

What is the architectural bit size you're using?

What processor are you using?

Description

.d88 disk images are stated to be supported, but when I try to use aaru with a NEC PC-88 disk image, it complains that it's unable to recognize it:

$ ./aaru i print ../DENKEN_CG.D88 
aaru 6.0.0~alpha9+e10c237e
Copyright © 2011-2023 Natalia Portillo

Unable to recognize image format, not printing

Plenty of NEC PC-88 disk images can be found for testing here.

The specific disk image used on this test can be found here.

Exact command line used

./aaru i print ../DENKEN_CG.D88

Expected behavior

Should recognize and be able to run commands on NEC PC-88 images dumped in .d88 disk format.

Actual behavior

Throws a "Unable to recognize image format" error.

Output of command execution with debug output enabled

aaru 6.0.0~alpha9+e10c237e
Copyright © 2011-2023 Natalia Portillo

DEBUG (PrintHex command): --debug=True
DEBUG (PrintHex command): --input=../DENKEN_CG.D88
DEBUG (PrintHex command): --length=1
DEBUG (PrintHex command): --long-sectors=False
DEBUG (PrintHex command): --start=0
DEBUG (PrintHex command): --verbose=False
DEBUG (PrintHex command): --width=32

Identifying image format... ⣟
                             DEBUG (Format detection): Trying plugin Aaru Format
DEBUG (Format detection): Trying plugin ACT Apricot Disk Image
DEBUG (Format detection): Trying plugin Alcohol 120% Media Descriptor Structure
DEBUG (Format detection): Trying plugin Anex86 Disk Image
DEBUG (Anex86 plugin): fdihdr.unknown = 1263420740
DEBUG (Anex86 plugin): fdihdr.hddtype = 1130319429
DEBUG (Anex86 plugin): fdihdr.hdrSize = 1162108743
DEBUG (Anex86 plugin): fdihdr.dskSize = 20301
DEBUG (Anex86 plugin): fdihdr.bps = 0
DEBUG (Anex86 plugin): fdihdr.spt = 0
DEBUG (Anex86 plugin): fdihdr.heads = 0
DEBUG (Anex86 plugin): fdihdr.cylinders = 415824
DEBUG (Format detection): Trying plugin Apple 2IMG
DEBUG (Format detection): Trying plugin Apple Disk Archival/Retrieval Tool
DEBUG (Format detection): Trying plugin Apple DiskCopy 4.2
DEBUG (Format detection): Trying plugin Apple New Disk Image Format
DEBUG (Format detection): Trying plugin Apple NIB
DEBUG (Format detection): Trying plugin Apple Universal Disk Image Format
DEBUG (Format detection): Trying plugin Basic Lisa Utility
DEBUG (Format detection): Trying plugin BlindWrite 4
DEBUG (Format detection): Trying plugin BlindWrite 5
DEBUG (Format detection): Trying plugin CDRDAO tocfile
DEBUG (Format detection): Trying plugin CDRWin cuesheet
DEBUG (Format detection): Trying plugin CisCopy Disk Image (DC-File)
DEBUG (Format detection): Trying plugin CloneCD
DEBUG (Format detection): Trying plugin CopyTape
DEBUG (Format detection): Trying plugin CPCEMU Disk-File and Extended CPC Disk-File
DEBUG (Format detection): Trying plugin d2f disk image
DEBUG (Format detection): Trying plugin D88 Disk Image
DEBUG (D88 plugin): d88hdr.name = "DENKEN_CG_DEMO"
DEBUG (D88 plugin): d88hdr.reserved is empty? = True
DEBUG (D88 plugin): d88hdr.write_protect = 0x00
DEBUG (D88 plugin): d88hdr.disk_type = D2 (0)
DEBUG (D88 plugin): d88hdr.disk_size = 415824
DEBUG (Format detection): Trying plugin Digital Research DiskCopy
DEBUG (Format detection): Trying plugin DIM Disk Image
DEBUG (Format detection): Trying plugin DiscFerret
DEBUG (Format detection): Trying plugin DiscJuggler
DEBUG (DiscJuggler plugin): dscLen = -1
DEBUG (Format detection): Trying plugin DiskDupe DDI Disk Image
DEBUG (Format detection): Trying plugin Dreamcast GDI image
DEBUG (Format detection): Trying plugin Dunfield's IMD
DEBUG (Format detection): Trying plugin HD-Copy disk image
DEBUG (Format detection): Trying plugin IBM SaveDskF
DEBUG (Format detection): Trying plugin KryoFlux STREAM
DEBUG (Format detection): Trying plugin MAME Compressed Hunks of Data
DEBUG (Format detection): Trying plugin MAXI Disk image
DEBUG (MAXI Disk plugin): tmp_header.unknown = 68
DEBUG (MAXI Disk plugin): tmp_header.diskType = 69
DEBUG (MAXI Disk plugin): tmp_header.heads = 78
DEBUG (MAXI Disk plugin): tmp_header.cylinders = 75
DEBUG (MAXI Disk plugin): tmp_header.bytesPerSector = 69
DEBUG (MAXI Disk plugin): tmp_header.sectorsPerTrack = 78
DEBUG (MAXI Disk plugin): tmp_header.unknown2 = 95
                             _header.unknown3 = 67
Identifying image format... ⡿ing plugin Microsoft VHDX
                             DEBUG (Format detection): Trying plugin Nero Burning ROM image
DEBUG (Nero plugin): imageStream.Length = 415824
DEBUG (Nero plugin): footerV1.ChunkID = 0xFFFFFFFF
DEBUG (Nero plugin): footerV1.FirstChunkOffset = 4294967295
DEBUG (Nero plugin): footerV2.ChunkID = 0xFFFFFFFF
DEBUG (Nero plugin): footerV2.FirstChunkOffset = 18446744073709551615
DEBUG (Format detection): Trying plugin Parallels disk image
DEBUG (Format detection): Trying plugin PartClone disk image
DEBUG (Format detection): Trying plugin Partimage disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image v2
DEBUG (QCOW plugin): qHdr.magic = 0x44454E4B
DEBUG (QCOW plugin): qHdr.version = 1162764099
DEBUG (Format detection): Trying plugin QEMU Enhanced Disk image
DEBUG (Format detection): Trying plugin Ray Arachelian's Disk IMage
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature = DENKEN_CG_DEMO
DEBUG (Ray Arachelian's Disk IMage plugin): header.diskType = 16
DEBUG (Ray Arachelian's Disk IMage plugin): header.heads = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.cylinders = 243
DEBUG (Ray Arachelian's Disk IMage plugin): header.sectorsPerTrack = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature matches? = False
DEBUG (Format detection): Trying plugin RS-IDE Hard Disk Image
DEBUG (Format detection): Trying plugin Spectrum Floppy Disk Image
DEBUG (Format detection): Trying plugin SuperCardPro
DEBUG (Format detection): Trying plugin Sydex CopyQM
DEBUG (Format detection): Trying plugin Sydex TeleDisk
DEBUG (Format detection): Trying plugin T98 Hard Disk Image
DEBUG (Format detection): Trying plugin T98-Next NHD r0 Disk Image
DEBUG (Format detection): Trying plugin Virtual98 Disk Image
DEBUG (Format detection): Trying plugin VirtualBox Disk Image
DEBUG (Format detection): Trying plugin VirtualPC
DEBUG (Format detection): Trying plugin VMware disk image
DEBUG (Format detection): Trying plugin Atari Lynx
DEBUG (Format detection): Trying plugin iNES
DEBUG (Format detection): Trying plugin Nintendo 64
DEBUG (Format detection): Trying plugin Nintendo Game Boy
DEBUG (Format detection): Trying plugin Nintendo Game Boy Advance
DEBUG (Format detection): Trying plugin Sega Game Gear / Master System
DEBUG (Format detection): Trying plugin Sega Mega Drive / 32X / Pico
Unable to recognize image format, not printing
claunia commented 10 months ago

Bug confirmed, seems that some images contain a header that is making the parses go nuts.

claunia commented 10 months ago

Some D88 images do not pass header parsing.