joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.66k stars 378 forks source link

Add ATAPI READ CD command to IDE emulation [Dosbox-X not booting PTS-DOS from CD] #585

Open Asure opened 6 years ago

Asure commented 6 years ago

CD-Rom works & is bootable in VMWare 12 for example.

Steps:

  1. Grab the ISO from update.photoplay.com/photoplay/dvd/old/IGO2/ for example.
  2. Add it to conf as usual imgmount d: e:\dosbox\cd\BE_IGO2_CD1.iso -t iso -fs none imgmount 0 -el-torito d: -t floppy -fs none
  3. Boot, with boot -l a

From the console: LOG: Booting guest OS stack_seg=0x7000 load_seg=0x07c0 LOG: Removing UMB block 0xcb00-0xdfff LOG: Alright: DOS kernel shutdown, booting a guest OS LOG: CS:IP=0000:7c00 SS:SP=7000:0100 AX=0000 BX=7c00 CX=0001 DX=0000 LOG: 52143235 ERROR CPU:Write 500 to rom at f0078 LOG: 52143236 ERROR CPU:Write 0 to rom at f007a LOG: 52143505 ERROR BIOS:Disk 2 not active LOG: 52160883 ERROR BIOS:INT13: Function 15 called on drive 80 (dos drive 2) LOG: 52160899 ERROR BIOS:Disk 2 not active LOG: 52160923 ERROR BIOS:INT13: Function 15 called on drive 81 (dos drive 3) LOG: 52160939 ERROR BIOS:Disk 3 not active LOG: 52160963 ERROR BIOS:INT13: Function 15 called on drive 82 (dos drive 4) LOG: 52160979 ERROR BIOS:Disk 4 non-existant LOG: 52161003 ERROR BIOS:INT13: Function 15 called on drive 83 (dos drive 5) LOG: 52161019 ERROR BIOS:Disk 5 non-existant LOG: 52161045 ERROR BIOS:Disk 127 non-existant

Dosbox displays "Booting pts-dos" But then it fails to find command interpreter on the floppy :(

  1. Optional, observe a similar issue with CD2 which has a 2MB floppy in it, but this one is not detected as el-torito at all.

The floppy (CD1) works if extracted from the ISO by isobuster, just not from the CD itself.

alex-taffe commented 4 years ago

@Asure did you find a solution to this?

Wengier commented 4 years ago

I checked that the reason for the failure is that DOSBox-X currently does not implement the ATAPI command "BE" (Read CD). Thus it is not able to find the file when booted from CD.

alex-taffe commented 4 years ago

Ahh ok, thanks!

joncampbell123 commented 4 years ago

READ CD includes flags that enable reading not only the data, but the ECC fields all the way up to the raw 2352 byte sector (which is also what makes CDDA/CD audio extraction possible).

READ CD is also required for reading VideoCDs properly, because VideoCD data sectors omit the larger error correction field to pack more MPEG-1 video into a sector.

The initial implementation will add only the data sector reading in a future release, which should allow PTS-DOS to find itself.

joncampbell123 commented 4 years ago

http://hackipedia.org/browse.cgi/Computer/Platform/PC%2c%20IBM%20compatible/IDE/SFF%2d8020i%20ATA%20Packet%20Interface%20%28ATAPI%29%20for%20CD%2dROMs%20%281996%2d01%2d22%29%20v2%2e6%2epdf

Firefox_Screenshot_2020-04-30T16-02-42 799Z

joncampbell123 commented 4 years ago

Firefox_Screenshot_2020-04-30T16-03-31 560Z