aaru-dps/Aaru

NEC PC-88 disk images are not recognized

Opened this issue · 2 comments

Version

6.0.0~alpha9+e10c237e

Commit hash

No response

Tested debug version?

  • Yes

Which operating systems have you used?

  • Windows
  • Linux
  • macOS
  • Other

What is the architectural bit size you're using?

  • 32-bit
  • 64-bit
  • Unsure or unknown

What processor are you using?

  • An Intel or AMD
  • An ARM or Apple Silicon
  • Unsure or unknown

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

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