Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PS1 Mode 2 file extraction issues #805

Open
5 of 20 tasks
HeroponRikiBestest opened this issue Feb 25, 2023 · 1 comment
Open
5 of 20 tasks

PS1 Mode 2 file extraction issues #805

HeroponRikiBestest opened this issue Feb 25, 2023 · 1 comment

Comments

@HeroponRikiBestest
Copy link

HeroponRikiBestest commented Feb 25, 2023

Version

Development commit

Commit hash

6.0.0~alpha9+5164a154

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

Image format

bin/cue

Application that created the image

DiscImageCreator/Redump

What were you doing when it failed?

  • I was converting the image to another format...
  • I was retrieving image information...
  • I was retrieving filesystem information...
  • I was listing the filesystem contents...
  • I was extracting the filesystem contents...
  • I was creating a metadata sidecar...
  • I was checksumming the image...
  • I was verifying the image...
  • I was calculating the image entropy...

Destination image format

No response

Filesystem

No response

Description

I was trying to extract blazing dragons on ps1 for use with scummvm. It says on their wiki "follow a guide to extract the *.STR and DTSPEECH.XA" where it talks about how The data is stored as CD-ROM Mode 2 Form 1 (video frames) and CD-ROM Mode 2 Form 2 (audio frames). We require that the data be dumped as raw off the disc, meaning it contains all 2352 bytes/sector. and that most things that extract the files strip them down to 2048 bytes per sector. When i try and extract the files with aaru, it sure enough tells me the str and xa files havent been extracted properly. Tested with and without -x on 5.3.2~rc2+35725afa, the latest release of 6.0 on the releases page, and 6.0.0~alpha9+5164a154, although it crashes with -x on the latter of the three. Also, -d crashes on the latest commit too.

Exact command line used

./aaru fs extract -x "Blazing Dragons (USA).cue" "/media/bestest/A49876039875D470/ps1/Blazing Dragons (USA)/dfg"

Expected behavior

I expected the .str and .xa files to be extracted properly from the filesystem.

Actual behavior

The .str and .xa files were not extracted properly from the filesystem, although I am not sure what the particular issue is.

Output of command execution with debug output enabled

General:


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

Image format identified by CDRWin cuesheet.
1 partitions found.

Partition 0:
Identified by ISO9660.
Written 21640 bytes of file ARC1.BIN to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARC1.BIN
Written 21568 bytes of file ARC2.BIN to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARC2.BIN
Written 18920 bytes of file ARC3.BIN to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARC3.BIN
Written 7096 bytes of file ARC4.BIN to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARC4.BIN
Written 12564 bytes of file ARC5.BIN to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARC5.BIN
Written 36 bytes of file ARCCKSUM.DAT to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ARCCKSUM.DAT
Written 44990464 bytes of file BIGFILE.DAT to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/BIGFILE.DAT
Written 3733504 bytes of file CRYSTALD.STR to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/CRYSTALD.STR
Written 368640 bytes of file DRAGON.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/DRAGON.EXE
Written 200704 bytes of file DTPREVUE.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/DTPREVUE.EXE
Written 158597120 bytes of file DTSPEECH.XA to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/DTSPEECH.XA
Written 405504 bytes of file DTTITLE.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/DTTITLE.EXE
Written 198656 bytes of file FMV2.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/FMV2.EXE
Written 3930112 bytes of file ILLUSION.STR to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/ILLUSION.STR
Written 15235072 bytes of file LABINTRO.STR to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/LABINTRO.STR
Written 128020 bytes of file LOADPIC.TIM to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/LOADPIC.TIM
Written 28088320 bytes of file PREVIEWS.STR to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/PREVIEWS.STR
Written 110592 bytes of file RELOADER.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/RELOADER.EXE
Written 112640 bytes of file RELOADTT.EXE to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/RELOADTT.EXE
Written 198656 bytes of file SLUS_001.00 to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/SLUS_001.00
Written 60 bytes of file SYSTEM.CNF to 
/media/bestest/A49876039875D470/ps1/Blazing Dragons 
(USA)/dfg/iso9660/SLUS_00100/SYSTEM.CNF

-x on the latest commit:

DEBUG (Extract-Files command): --debug=True
DEBUG (Extract-Files command): --encoding=
DEBUG (Extract-Files command): --input=Blazing Dragons (USA).cue
DEBUG (Extract-Files command): --options=
DEBUG (Extract-Files command): 
--output=/media/bestest/A49876039875D470/ps1/Blazing Dragons (USA)/dfg
DEBUG (Extract-Files command): --verbose=False
DEBUG (Extract-Files command): --xattrs=True
DEBUG (Extract-Files command): Parsed options:
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 = 1162627398
DEBUG (Anex86 plugin): fdihdr.hddtype = 1816273440
DEBUG (Anex86 plugin): fdihdr.hdrSize = 1852406369
DEBUG (Anex86 plugin): fdihdr.dskSize = 1917067367
DEBUG (Anex86 plugin): fdihdr.bps = 1852794721
DEBUG (Anex86 plugin): fdihdr.spt = 1428693107
DEBUG (Anex86 plugin): fdihdr.heads = 774455635
DEBUG (Anex86 plugin): fdihdr.cylinders = 577661282
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
Image format identified by CDRWin cuesheet.
DEBUG (CDRWin plugin): Found FILE at line 1
DEBUG (CDRWin plugin): File "Blazing Dragons (USA).bin" found
DEBUG (CDRWin plugin): Found TRACK at line 2
DEBUG (CDRWin plugin): Setting currentTrack.sequence to 1
DEBUG (CDRWin plugin): Found INDEX at line 3
DEBUG (CDRWin plugin): Sets currentFile.offset to 0
DEBUG (CDRWin plugin): Disc image parsing results
DEBUG (CDRWin plugin): Disc CD-TEXT:
DEBUG (CDRWin plugin): 	Arranger is not set.
DEBUG (CDRWin plugin): 	Composer is not set.
DEBUG (CDRWin plugin): 	Genre is not set.
DEBUG (CDRWin plugin): 	Performer is not set.
DEBUG (CDRWin plugin): 	Songwriter is not set.
DEBUG (CDRWin plugin): 	Title is not set.
DEBUG (CDRWin plugin): 	CD-TEXT binary file not set.
DEBUG (CDRWin plugin): Disc information:
DEBUG (CDRWin plugin): 	ISOBuster disc type not set.
DEBUG (CDRWin plugin): 	Guessed disk type: CDROMXA
DEBUG (CDRWin plugin): 	Barcode not set.
DEBUG (CDRWin plugin): 	Disc ID not set.
DEBUG (CDRWin plugin): 	MCN not set.
DEBUG (CDRWin plugin): 	Comment: ""
DEBUG (CDRWin plugin): Track information:
DEBUG (CDRWin plugin): 	Disc contains 1 tracks
DEBUG (CDRWin plugin): 	Track 1 information:
DEBUG (CDRWin plugin): 		2352 bytes per sector
DEBUG (CDRWin plugin): 		Pregap: 150 sectors
DEBUG (CDRWin plugin): 		Data: 125364 sectors
DEBUG (CDRWin plugin): 		Postgap: 0 sectors
DEBUG (CDRWin plugin): 		Track resides in file Blazing Dragons (USA).bin, type 
defined as BINARY, starting at byte 0
DEBUG (CDRWin plugin): 		Indexes:
DEBUG (CDRWin plugin): 			Index 1 starts at sector 0
DEBUG (CDRWin plugin): 		ISRC is not set.
DEBUG (CDRWin plugin): 		Arranger is not set.
DEBUG (CDRWin plugin): 		Composer is not set.
DEBUG (CDRWin plugin): 		Genre is not set.
DEBUG (CDRWin plugin): 		Performer is not set.
DEBUG (CDRWin plugin): 		Songwriter is not set.
DEBUG (CDRWin plugin): 		Title is not set.
DEBUG (CDRWin plugin): Session information:
DEBUG (CDRWin plugin): 	Disc contains 1 sessions
DEBUG (CDRWin plugin): 	Session 1 information:
DEBUG (CDRWin plugin): 		Starting track: 1
DEBUG (CDRWin plugin): 		Starting sector: 0
DEBUG (CDRWin plugin): 		Ending track: 1
DEBUG (CDRWin plugin): 		Ending sector: 125363
DEBUG (CDRWin plugin): Building offset map
DEBUG (CDRWin plugin): printing partition map
DEBUG (CDRWin plugin): Partition sequence: 0
DEBUG (CDRWin plugin): 	Partition name: 
DEBUG (CDRWin plugin): 	Partition description: Track 1.
DEBUG (CDRWin plugin): 	Partition type: MODE2/2352
DEBUG (CDRWin plugin): 	Partition starting sector: 0
DEBUG (CDRWin plugin): 	Partition sectors: 125364
DEBUG (CDRWin plugin): 	Partition starting offset: 0
DEBUG (CDRWin plugin): 	Partition size in bytes: 294856128
DEBUG (Extract-Files command): Correctly opened image file.
DEBUG (Extract-Files command): Image without headers is 294856128 bytes.
DEBUG (Extract-Files command): Image has 125364 sectors.
DEBUG (Extract-Files command): Image identifies disk type as CDROMXA.
DEBUG (Apricot partitions): label.version = ""
DEBUG (Apricot partitions): label.operatingSystem = 0 (Invalid)
DEBUG (Apricot partitions): label.writeProtected = False
DEBUG (Apricot partitions): label.copyProtected = False
DEBUG (Apricot partitions): label.bootType = 0 (Non-bootable)
DEBUG (Apricot partitions): label.partitionCount = 0
DEBUG (Apricot partitions): label.winchester = False
DEBUG (Apricot partitions): label.sectorSize = 0
DEBUG (Apricot partitions): label.spt = 0
DEBUG (Apricot partitions): label.cylinders = 0
DEBUG (Apricot partitions): label.heads = 0
DEBUG (Apricot partitions): label.interleave = 0
DEBUG (Apricot partitions): label.skew = 0
DEBUG (Apricot partitions): label.bootLocation = 0
DEBUG (Apricot partitions): label.bootSize = 0
DEBUG (Apricot partitions): label.bootAddress = 0x00000000
DEBUG (Apricot partitions): label.bootOffset:label.bootSegment = 0000:0000
DEBUG (Apricot partitions): label.firstDataBlock = 0
DEBUG (Apricot partitions): label.generation = 0
DEBUG (Apricot partitions): label.copyCount = 0
DEBUG (Apricot partitions): label.maxCopies = 0
DEBUG (Apricot partitions): label.serialNumber = ""
DEBUG (Apricot partitions): label.partNumber = ""
DEBUG (Apricot partitions): label.copyright = ""
DEBUG (Apricot partitions): label.mainBPB.bps = 0
DEBUG (Apricot partitions): label.mainBPB.spc = 0
DEBUG (Apricot partitions): label.mainBPB.rsectors = 0
DEBUG (Apricot partitions): label.mainBPB.fats_no = 0
DEBUG (Apricot partitions): label.mainBPB.root_ent = 0
DEBUG (Apricot partitions): label.mainBPB.sectors = 0
DEBUG (Apricot partitions): label.mainBPB.media = 0
DEBUG (Apricot partitions): label.mainBPB.spfat = 0
DEBUG (Apricot partitions): label.mainBPB.diskType = 0 (MF1DD 70-track)
DEBUG (Apricot partitions): label.mainBPB.startSector = 0
DEBUG (Apricot partitions): label.fontName = ""
DEBUG (Apricot partitions): label.keyboardName = ""
DEBUG (Apricot partitions): label.biosMajorVersion = 0
DEBUG (Apricot partitions): label.biosMinorVersion = 0
DEBUG (Apricot partitions): label.diagnosticsFlag = False
DEBUG (Apricot partitions): label.prnDevice = 0 (Parallel)
DEBUG (Apricot partitions): label.bellVolume = 0
DEBUG (Apricot partitions): label.enableCache = False
DEBUG (Apricot partitions): label.enableGraphics = False
DEBUG (Apricot partitions): label.dosLength = 0
DEBUG (Apricot partitions): label.fontLength = 0
DEBUG (Apricot partitions): label.keyboardLength = 0
DEBUG (Apricot partitions): label.dosStart = 0
DEBUG (Apricot partitions): label.fontStart = 0
DEBUG (Apricot partitions): label.keyboardStart = 0
DEBUG (Apricot partitions): label.keyboardVolume = 0
DEBUG (Apricot partitions): label.autorepeat = False
DEBUG (Apricot partitions): label.autorepeatLeadIn = 0
DEBUG (Apricot partitions): label.autorepeatInterval = 0
DEBUG (Apricot partitions): label.microscreenMode = 0
DEBUG (Apricot partitions): label.spareKeyboard is null? = True
DEBUG (Apricot partitions): label.lineMode = 0 (256 lines)
DEBUG (Apricot partitions): label.lineWidth = 0 (80 columns)
DEBUG (Apricot partitions): label.imageOff = False
DEBUG (Apricot partitions): label.spareScreen is null? = True
DEBUG (Apricot partitions): label.txBaudRate = 0 (50 bps)
DEBUG (Apricot partitions): label.rxBaudRate = 0 (50 bps)
DEBUG (Apricot partitions): label.txBits = 0
DEBUG (Apricot partitions): label.rxBits = 0
DEBUG (Apricot partitions): label.stopBits = 0 (1 bits)
DEBUG (Apricot partitions): label.parityCheck = False
DEBUG (Apricot partitions): label.parityType = 0 (None)
DEBUG (Apricot partitions): label.txXonXoff = False
DEBUG (Apricot partitions): label.rxXonXoff = False
DEBUG (Apricot partitions): label.xonCharacter = 0
DEBUG (Apricot partitions): label.xoffCharacter = 0
DEBUG (Apricot partitions): label.rxXonXoffBuffer = 0
DEBUG (Apricot partitions): label.dtrDsr = False
DEBUG (Apricot partitions): label.ctsRts = False
DEBUG (Apricot partitions): label.nullsAfterCr = 0
DEBUG (Apricot partitions): label.nullsAfterFF = 0
DEBUG (Apricot partitions): label.lfAfterCRSerial = False
DEBUG (Apricot partitions): label.biosErrorReportSerial = False
DEBUG (Apricot partitions): label.spareSerial is null? = True
DEBUG (Apricot partitions): label.lfAfterCrParallel = False
DEBUG (Apricot partitions): label.selectLine = False
DEBUG (Apricot partitions): label.paperEmpty = False
DEBUG (Apricot partitions): label.faultLine = False
DEBUG (Apricot partitions): label.biosErrorReportParallel = False
DEBUG (Apricot partitions): label.spareParallel is null? = True
DEBUG (Apricot partitions): label.spareWinchester is null? = True
DEBUG (Apricot partitions): label.parkingEnabled = False
DEBUG (Apricot partitions): label.formatProtection = False
DEBUG (Apricot partitions): label.spareRamDisk is null? = True
Error reading file: Unbalanced markup stack. Did you forget to close a tag?
Unhandled exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.InvalidOperationException: Could not find color or style ''.
   at Spectre.Console.StyleParser.Parse(String text) in /_/src/Spectre.Console/StyleParser.cs:line 10
   at Spectre.Console.MarkupParser.Parse(String text, Style style) in /_/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs:line 29
   at Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, String value) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:line 77
   at Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, IFormatProvider provider, String format, Object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:line 47
   at Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, IFormatProvider provider, String format, Object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:line 129
   at Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, String format, Object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:line 88
   at Aaru.Commands.Filesystem.ExtractFilesCommand.<>c__DisplayClass2_1.<Invoke>b__2(String format, Object[] objects) in /home/bestest/Aaru/Aaru/Commands/Filesystem/ExtractFiles.cs:line 113
   at Aaru.Console.AaruConsole.DebugWriteLine(String module, String value) in /home/bestest/Aaru/Aaru.Console/AaruConsole.cs:line 233
   at Aaru.Commands.Filesystem.ExtractFilesCommand.Invoke(Boolean debug, Boolean verbose, String encoding, Boolean xattrs, String imagePath, String namespace, String outputDir, String options) in /home/bestest/Aaru/Aaru/Commands/Filesystem/ExtractFiles.cs:line 383
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   --- End of inner exception stack trace ---
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.InvokeWithManyArguments(RuntimeMethodInfo mi, Int32 argCount, Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.CommandLine.NamingConventionBinder.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.NamingConventionBinder.ModelBindingCommandHandler.Invoke(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
Uploading statistics

Affected image

http://redump.org/disc/7300/

@HeroponRikiBestest
Copy link
Author

Oh, something thats a lot easier to check; if you try and open/scan the STR file with https://github.com/m35/jpsxdec (ps1 FMV/AUDIO format convertor) it won't find anything if it hasn't been extracted as 2352 byes/sector.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant